[Bug: 21.5-b27] font-lock-fontify-* / infinite loop

Wulf C. Krueger wk at mailstation.de
Tue Jan 9 02:37:11 EST 2007


Hallo Stephen!

"SJT" == Stephen J Turnbull <stephen at xemacs.org> writes:

 >> font locking runs into an infinite loop while "Fontifying *wide
 >> reply to <recipient>*... (regexps).." is shown in the status bar.
 SJT> Does this happen with all replies, or just for a particular
 SJT> message?

It always happens. I just found out it doesn't even happen with replies
only but even for new messages. The following backtrace is being
generated (this time *without* the inf. loop and without aborting):

(40) (general/warning) Error in unknown: Invalid function: (macro . #<compiled-function (&rest cdr) "...(6)" [cdr function lambda] 3 737017>)

Backtrace follows:

  lambda(284)
  # bind (highlights matcher keyword nkeywords iter old-progress progress bufname keywords case-fold-search loudly loudvar end start)
  font-lock-fontify-keywords-region(1 284 nil)
  # (unwind-protect ...)
  # bind (modified buffer-undo-list inhibit-read-only old-syntax-table buffer-file-name buffer-file-truename loudly end beg)
  font-lock-default-fontify-region(1 284 nil)
  # bind (loudly end beg)
  font-lock-fontify-region(1 284)
  # bind (val end beg)
  #<compiled-function (beg end val) "...(5)" [end beg font-lock-fontify-region] 3>(1 284 t)
  map-range-table(#<compiled-function (beg end val) "...(5)" [end beg font-lock-fontify-region] 3> #<range-table [1 284) t 0x59b3b>)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # bind (dummy buffer)
  #<compiled-function (buffer dummy) "...(47)" [font-lock-pending-buffer-table font-lock-range-table buffer remhash buffer-live-p clear-range-table map-extents #<compiled-function (ex dummy-maparg) "...(32)" [font-lock-range-table ex end beg extent-start-position extent-end-position 0 1 put-range-table t] 5> nil font-lock-pending t put-text-property map-range-table #<compiled-function (beg end val) "...(5)" [end beg font-lock-fontify-region] 3>] 9>(#<buffer "*mail*<2>"> t)
  # (unwind-protect ...)
  maphash(#<compiled-function (buffer dummy) "...(47)" [font-lock-pending-buffer-table font-lock-range-table buffer remhash buffer-live-p clear-range-table map-extents #<compiled-function (ex dummy-maparg) "...(32)" [font-lock-range-table ex end beg extent-start-position extent-end-position 0 1 put-range-table t] 5> nil font-lock-pending t put-text-property map-range-table #<compiled-function (beg end val) "...(5)" [end beg font-lock-fontify-region] 3>] 9> #<hash-table size 0/29 weakness key 0x59b36>)
  # (unwind-protect ...)
  # bind (match-data)
  font-lock-fontify-pending-extents()
  #<compiled-function nil "...(10)" [font-lock-pending-buffer-table hash-table-count 0 font-lock-fontify-pending-extents] 2>()
  # (unwind-protect ...)
  call-with-condition-handler(#<compiled-function (__call_trapping_errors_arg__) "...(17)" [__call_trapping_errors_arg__ errstr error-message-string lwarn general warning "Error in %s: %s\n\nBacktrace follows:\n\n%s" "unknown" backtrace-in-condition-handler-eliminating-handler] 8> #<compiled-function nil "...(10)" [font-lock-pending-buffer-table hash-table-count 0 font-lock-fontify-pending-extents] 2>)
  # (condition-case ... . ((error)))
  font-lock-pre-idle-hook()
  # (unwind-protect ...)
  # (catch #<INTERNAL OBJECT (XEmacs bug?) (opaque, size=0) 0xab0f28> ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # bind (inhibit-quit)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # bind (inhibit-quit)
  # (condition-case ... . error)
  # (catch top-level ...)

 >> Oh, btw, why is my XEmacs standard menu ("File", etc.) suddenly in
 >> German?
 >> LC_CTYPE=de_DE.utf8 LC_MESSAGES=en_US.utf8
 SJT> Probably XEmacs just looks at the LC_CTYPE [...]
 SJT> I would guess this should follow LC_MESSAGES rather than LC_CTYPE,

That would indeed be the correct way to determine the language
environment if LANG is not set or usable, I think.

 SJT> Do you consider this a bug or a feature?  (Well, "feature" is a
 SJT> little strong, maybe "hint at better things are possible". :-)

Usually, I'd call it a "feature" (MS-style feature ;) ) but in this case
it's worse because I now have an English/German mixture (i. e. "Neuer
Schirm" (en: "new frame") but "Close Frame") both inside the menus and
even among the menu titles ("Datei" (en: "File) but "View") which is
fairly disturbing.

And even though German is my native language I would never have guessed
that "Schirm" (colloquial for "monitor" and "umbrella" in German) is
supposed to refer to a frame. :)

Anyway, I'll proceed with removing the package for now but I'd really be
grateful if this could be corrected.

-- 
Grüße, Wulf



More information about the XEmacs-Beta mailing list