diff options
author | Carsten Dominik <carsten.dominik@gmail.com> | 2010-07-06 10:23:41 +0200 |
---|---|---|
committer | Carsten Dominik <carsten.dominik@gmail.com> | 2010-07-06 10:23:41 +0200 |
commit | 85c90e96fd7e8164a263824046d975ede148217d (patch) | |
tree | fc88f1dbc60f9e64e0702c56bd2064a0b87f2993 | |
parent | c80d5b9c2763e368481fcedc3ab5cf7bcdbca405 (diff) | |
download | org-mode-85c90e96fd7e8164a263824046d975ede148217d.tar.gz |
Allow org-indent-mode only on Emacsen that do support it
* lisp/org-compat.el (org-version-check): New function.
* lisp/org-indent.el (org-indent-mode): Check for exact emacs version.
-rw-r--r-- | lisp/org-compat.el | 24 | ||||
-rw-r--r-- | lisp/org-indent.el | 7 |
2 files changed, 28 insertions, 3 deletions
diff --git a/lisp/org-compat.el b/lisp/org-compat.el index bfd4f8e..573b9ff 100644 --- a/lisp/org-compat.el +++ b/lisp/org-compat.el @@ -89,6 +89,30 @@ any other entries, and any resulting duplicates will be removed entirely." (t specs))) (put 'org-compatible-face 'lisp-indent-function 1) +(defun org-version-check (version feature level) + (let* ((v1 (mapcar 'string-to-number (split-string version "[.]"))) + (v2 (mapcar 'string-to-number (split-string emacs-version "[.]"))) + (rmaj (or (nth 0 v1) 99)) + (rmin (or (nth 1 v1) 99)) + (rbld (or (nth 2 v1) 99)) + (maj (or (nth 0 v2) 0)) + (min (or (nth 1 v2) 0)) + (bld (or (nth 2 v2) 0))) + (if (or (< maj rmaj) + (and (= maj rmaj) + (< min rmin)) + (and (= maj rmaj) + (= min rmin) + (< bld rbld))) + (if (eq level :predicate) + ;; just return if we have the version + nil + (let ((msg (format "Emacs %s or greater is recommended for %s" + version feature))) + (display-warning 'org msg level) + t)) + t))) + ;;;; Emacs/XEmacs compatibility ;; Keys diff --git a/lisp/org-indent.el b/lisp/org-indent.el index 70618cb..48b10b7 100644 --- a/lisp/org-indent.el +++ b/lisp/org-indent.el @@ -130,10 +130,11 @@ FIXME: How to update when broken?" (cond ((org-bound-and-true-p org-inhibit-startup) (setq org-indent-mode nil)) + ((and org-indent-mode (featurep 'xemacs)) + (message "org-indent-mode does not work in XEmacs - refused to turn it on") + (setq org-indent-mode nil)) ((and org-indent-mode - (or (< emacs-major-version 23) - (and (= emacs-major-version 23) - (< emacs-minor-version 2)))) + (not (org-version-check "23.1.50" "Org Indent mode" :predicate))) (message "org-indent-mode is can crash Emacs 23.1 - refused to turn it on!") (ding) (sit-for 1) |