[PATCH] Call #'find-coding-system as appropriate in #'write-region.

Aidan Kehoe kehoea at parhasard.net
Thu Nov 15 09:36:57 EST 2007



 Ar an cúigiú lá déag de mí na Samhain, scríobh Vin Shelton: 

 > Thank you for that fix.  It fixed my -debug and non-mule builds, but
 > my -mule build is still failing (sorry I didn't mention previously
 > that all 3 of my builds were failing).  Here's the relevant info from
 > the build failure here at work:

Thanks for the report. Does this fix the issue for you? I wasn’t seeing the
problem locally when developing because the ELC files were not rebuilt every
time; you need to have a fresh checkout to provoke the problem.

lisp/ChangeLog addition:

2007-11-15  Aidan Kehoe  <kehoea at parhasard.net>

	* code-files.el (write-region):
	Call #'find-coding-system on the (possible) coding system argument
	before checking it with #'coding-system-p; the latter function
	gives false results when passed coding system names as symbols. 

	Preserve the old order of determination of the coding system
	better.


XEmacs Trunk source patch:
Diff command:   cvs -q diff -u
Files affected: lisp/code-files.el
===================================================================
RCS

Index: lisp/code-files.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/code-files.el,v
retrieving revision 1.23
diff -u -r1.23 code-files.el
--- lisp/code-files.el	2007/11/14 18:51:31	1.23
+++ lisp/code-files.el	2007/11/15 14:32:36
@@ -559,14 +559,19 @@
                'write-region-pre-hook
                start end filename append visit lockname
                coding-system-or-mustbenew)
-              coding-system
+              (if (and coding-system-or-mustbenew
+		       (coding-system-p
+			(find-coding-system coding-system-or-mustbenew)))
+		  coding-system-or-mustbenew)
               buffer-file-coding-system
               (find-file-coding-system-for-write-from-filename filename)))
     (if (consp hook-result)
         ;; One of the `write-region-pre-hook' functions wrote the file. 
         hook-result
       ;; The hooks didn't do the work; do it ourselves.
-      (setq mustbenew (unless (coding-system-p coding-system-or-mustbenew)
+      (setq hook-result (find-coding-system hook-result)
+	    mustbenew (unless (coding-system-p
+			       (find-coding-system coding-system-or-mustbenew))
                         coding-system-or-mustbenew)
             coding-system (cond ((coding-system-p hook-result) hook-result)
                                 ((null mustbenew) coding-system-or-mustbenew))

-- 
¿Dónde estará ahora mi sobrino Yoghurtu Nghé, que tuvo que huir
precipitadamente de la aldea por culpo de la escasez de rinocerontes?



More information about the XEmacs-Beta mailing list