[PATCH packages] [Bug: 21.4.19] XEmacs hangs at exit with "No such coding system: iso-2022-8"

Stephen J. Turnbull stephen at xemacs.org
Tue Jul 25 00:43:20 EDT 2006


>>>>> "Murray" == Murray Eisenberg <murray at math.umass.edu> writes:

    Murray> At first I thought this was caused by AUCTeX, but AUCTeX
    Murray> expert David Kastrup says the problem is "very clearly an
    Murray> XEmacs-internal" one that has no particular relation to
    Murray> AUCTeX.

    Murray> Debugger entered--Lisp error: (error "No such coding system" iso-2022-8)

Actually, the problem is not XEmacs-internal.  It's due to a library
that was coded by somebody who assumed that Mule facilities are always
available, but XEmacs 21.4 on Windows doesn't support Mule well, and
it's almost never available in that configuration.

The included patch should work.  To test without patching and
recompiling, you can put the following form in your init.el:

(setq savehist-coding-system
      (if (featurep 'xemacs)
	  (if (fboundp 'find-coding-system)
	      (or (find-coding-system 'utf-8)
		  (find-coding-system 'iso-2022-8)
		  ;; support --with-file-coding
		  (find-coding-system 'binary))
	    ;; drop back 15 and punt!
	    'binary)
	;; assume Emacs 20, at least
	'utf-8))

Please let me know if that does work for you.  If so, I'll apply it to
CVS and we should have a package release in short order.

If you do decide to apply the patch locally, it will not interfere
with future upgrades of the package in any way (but if you upgrade
"too soon" you'll lose the patch).  Don't forget to recompile with M-x
byte-compile-file.

Index: xemacs-packages/edit-utils/ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/ChangeLog,v
retrieving revision 1.222
diff -u -U0 -r1.222 ChangeLog
--- xemacs-packages/edit-utils/ChangeLog	28 Jun 2006 07:58:06 -0000	1.222
+++ xemacs-packages/edit-utils/ChangeLog	25 Jul 2006 04:28:16 -0000
@@ -0,0 +1,5 @@
+2006-07-25  Stephen J. Turnbull  <stephen at xemacs.org>
+
+	* savehist.el (savehist-coding-system): Get a usable value
+	regardless of presence of file-coding.  Document the issue.
+

Index: xemacs-packages/edit-utils/savehist.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/savehist.el,v
retrieving revision 1.4
diff -u -r1.4 savehist.el
--- xemacs-packages/edit-utils/savehist.el	14 Nov 2005 07:05:54 -0000	1.4
+++ xemacs-packages/edit-utils/savehist.el	25 Jul 2006 04:28:21 -0000
@@ -135,12 +135,23 @@
 
 ;; This should be capable of representing characters used by Emacs.
 ;; We prefer UTF-8 over ISO 2022 because it is well-known outside
-;; Mule.  XEmacs prir to 21.5 had UTF-8 provided by an external
-;; package which may not be loaded, which is why we check for version.
-(defvar savehist-coding-system (if (and (featurep 'xemacs)
-					(<= emacs-major-version 21)
-					(< emacs-minor-version 5))
-				   'iso-2022-8 'utf-8)
+;; Mule.
+;; XEmacs 21.1 or 21.4 may not have Mule, especially on Windows, so
+;; we check for existence of *any* coding system at all.
+;; #### Use of 'binary' as the fallback for non-Mule XEmacsen should
+;; sort-of work because it's only used (a) as a coding cookie and (b) by
+;; binding `coding-system-for-write', but maybe we should error if there
+;; is a non-binary coding cookie in that case.  Needs thought....
+(defvar savehist-coding-system (if (featurep 'xemacs)
+				   (if (fboundp 'find-coding-system)
+				       (or (find-coding-system 'utf-8)
+					   (find-coding-system 'iso-2022-8)
+					   ;; support --with-file-coding
+					   (find-coding-system 'binary))
+				     ;; drop back 15 and punt!
+				     'binary)
+				 ;; assume Emacs 20, at least
+				 'utf-8))
   "The coding system savehist uses for saving the minibuffer history.
 Changing this value while Emacs is running is supported, but considered
 unwise, unless you know what you are doing.")


-- 
School of Systems and Information Engineering http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
               Ask not how you can "do" free software business;
              ask what your business can "do for" free software.




More information about the XEmacs-Beta mailing list