[COMMIT] Don't assume multiple values are lists, mmm-class.el
Marcus Harnisch
marcus.harnisch at gmx.net
Wed Feb 17 16:41:21 EST 2010
Hi Aidan
Aidan Kehoe <kehoea at parhasard.net> writes:
> APPROVE COMMIT
>
> NOTE: This patch has been committed.
>
> ChangeLog addition:
>
> 2010-02-07 Aidan Kehoe <kehoea at parhasard.net>
>
> * mmm-class.el: Add compiler magic so code using multiple values
> compiled on 21.4 works on 21.5.
> (mmm-ify): Call #'multiple-value-bind here instead of assuming
> #'values always returns a list; thanks for the bug report, Marcus.
Somethings still fishy. When opening files that had been treated fine
by mmm-mode in the past, XEmacs now hangs. After hitting C-g, the file
displays and the proper mode is applied to certain regions. Without
fontification however. In any case, I got this stack trace:
Debugger entered--Lisp error: (quit)
("(in map-extents-internal)" "[internal]")
map-extents(#<compiled-function (ex junk) "...(8)" [ex function *result* nil] 2> nil 969 971 nil all-extents-closed-open overlay nil)
mapcar-extents(identity nil nil 969 971 all-extents-closed-open overlay)
overlays-in(969 971)
mmm-overlays-at(970 beg)
mmm-submode-at(970 beg)
mmm-valid-submode-region(asm-mode 970 1134)
mmm-make-region(asm-mode 970 1134 :face mmm-code-submode-face :front nil :back nil :evaporation front :match-front "__asm void func_asm(struct bf1_31 \\*p, int n, int a)\n{" :match-back "}" :beg-sticky t :end-sticky t :name nil :delimiter-mode fundamental-mode :front-face nil :back-face nil :creation-hook nil)
byte-code("..." [face matched-face end beg submode matched-submode mmm-make-region :face :front :back :evaporation front :match-front :match-back :beg-sticky :end-sticky :name :delimiter-mode :front-face :back-face :creation-hook front-pos back-pos matched-front matched-back beg-sticky end-sticky matched-name delimiter-mode front-face back-face creation-hook ok-resume] 30)
mmm-ify(:start 1 :stop 1316 :submode asm-mode :face mmm-code-submode-face :front "__asm\\b.+?)[ \n ]*\\({\\)" :back mmm-end-of-sexp :private t :face nil)
apply(mmm-ify :start 1 :stop 1316 (:submode asm-mode :face mmm-code-submode-face :front "__asm\\b.+?)[ \n ]*\\({\\)" :back mmm-end-of-sexp :private t :face nil))
mmm-apply-class(c-asm-1 1 1316 nil)
mmm-apply-classes((c-asm-1 c-asm-2 c-asm-4 c-asm-5) :start 1 :stop 1316 :face nil)
mmm-ify(:start 1 :stop 1316 :classes (c-asm-1 c-asm-2 c-asm-4 c-asm-5) :face nil)
apply(mmm-ify :start 1 :stop 1316 (:classes (c-asm-1 c-asm-2 c-asm-4 c-asm-5) :face nil))
mmm-apply-class(c 1 1316 nil)
mmm-apply-classes((universal c) :start 1 :stop 1316)
mmm-apply-all()
mmm-mode-on()
mmm-mode-on-maybe()
funcall(mmm-mode-on-maybe)
mmm-run-major-mode-hook()
mmm-check-changed-buffers()
(dispatch-event "[internal]")
I'll try to find out more, but maybe this rings a bell already.
Thanks
Marcus
More information about the XEmacs-Patches
mailing list