emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Re: Crash of emacs when using SHIFT-TAB


From: Rainer M Krug
Subject: Re: [Orgmode] Re: Crash of emacs when using SHIFT-TAB
Date: Mon, 5 Jul 2010 22:34:06 +0200



On Mon, Jul 5, 2010 at 7:40 PM, Jason Dunsmore <address@hidden> wrote:
Carsten Dominik <address@hidden> writes:

>> Hi
>>
>> my emacs is crashing quite regularly when I am using org-babel. Is
>> there a way to get a traceback or something similar which I could
>> submit to get an idea what is causing it?
>
> I think this has probably nothing to do with org-babel.  More likely,
> you are using org-indent-mode, on an Emacs version where it does not
> work.  Check the Org manual for the exact version of Emacs you need.

I was bitten by this same bug.  I narrowed it down to org-indent, but I
had no idea I should look in the manual to see which version of emacs
org-indent was compatible with.

Here's a patch that will make emacs display an error if org-indent is
loaded with an incompatible version of emacs:

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/org-indent.el b/lisp/org-indent.el
index 77411af..0ef8456 100644
--- a/lisp/org-indent.el
+++ b/lisp/org-indent.el
@@ -131,6 +131,18 @@ FIXME:  How to update when broken?"
      (setq org-indent-mode nil)
    (if org-indent-mode
       (progn
+          (destructuring-bind (maj min bld)
+              (mapcar 'string-to-number (split-string emacs-version "[.]"))
+            (let ((msg "Emacs 23.1.50.3 or greater is recommended for org-indent
+              (when (< maj 23)
+                (display-warning 'org msg :warning))
+              (when (= maj 23)
+                (unless (>= bld 50)
+                  (display-warning 'org msg :warning)))
+              (when (and (= maj 23)
+                         (= bld 50))
+                (unless (>= min 1)
+                  (display-warning 'org msg :warning)))))
         (org-set-local 'indent-tabs-mode nil)
         (or org-indent-strings (org-indent-initialize))
         (when org-indent-mode-turns-off-org-adapt-indentation
--8<---------------cut here---------------end--------------->8---

Perhaps this would be better as a separate function:

--8<---------------cut here---------------start------------->8---
(defun org-version-check (version feature level)
 (destructuring-bind (rmaj rmin rbld)
     (mapcar 'string-to-number (split-string version "[.]"))
   (destructuring-bind (maj min bld)
       (mapcar 'string-to-number (split-string emacs-version "[.]"))
     (let ((msg (format "Emacs %s or greater is recommended for %s" version
                        feature)))
       (when (< maj rmaj)
         (display-warning 'org msg level))
       (when (= maj rmaj)
         (unless (>= min rmin)
           (display-warning 'org msg level)))
       (when (and (= maj rmaj)
                  (= min rmin))
         (unless (>= bld rbld)
           (display-warning 'org msg level)))))))
--8<---------------cut here---------------end--------------->8---

It could then be called with:

(org-version-check "23.1.50" "org-indent" :warning)

I made it display a warning because org-indent seems to work almost
perfectly with the version of emacs I'm running (23.1.1).

I think that is a brilliant idea, especially as the repositories from ubuntu do not yet include emacs 23.2.

Cheers,

Rainer


Regards,
Jason

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode



--
NEW GERMAN FAX NUMBER!!!

Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Cell:           +27 - (0)83 9479 042
Fax:            +27 - (0)86 516 2782
Fax:            +49 - (0)321 2125 2244
email:          address@hidden

Skype:          RMkrug
Google:         address@hidden


reply via email to

[Prev in Thread] Current Thread [Next in Thread]