-(defun emacs-version>= (major &optional minor)
- "Return true if the Emacs version is >= to the given MAJOR and MINOR numbers.
-The MAJOR version number argument is required, but the MINOR version number
-argument is optional. If the minor version number is not specified (or is the
-symbol `nil') then only the major version numbers are considered in the test."
- (if (null minor)
- (>= emacs-major-version major)
- (or (> emacs-major-version major)
- (and (= emacs-major-version major)
- (>= emacs-minor-version minor)))))
+(defun emacs-version>= (major &optional minor patch)
+ "Return true if the Emacs version is >= to the given MAJOR, MINOR,
+ and PATCH numbers.
+The MAJOR version number argument is required, but the other arguments
+argument are optional. Only the Non-nil arguments are used in the test."
+ (let ((emacs-patch (or emacs-patch-level emacs-beta-version -1)))
+ (cond ((> emacs-major-version major))
+ ((< emacs-major-version major) nil)
+ ((null minor))
+ ((> emacs-minor-version minor))
+ ((< emacs-minor-version minor) nil)
+ ((null patch))
+ ((>= emacs-patch patch)))))