It looks like it worked correctly in cvs20040528. Upstream made a change that rewrites the "coding: " info without setting the buffer coding system, and without reading the previous coding system. The attached patch reverts upstream's change and only writes the "coding: " info if it is not already present. I've tested it, and with the patch applied, it seems to work correctly again.

<bbdb.patch>

--
Hubert Chan - email & Jabber: [EMAIL PROTECTED] - http://www.uhoreg.ca/
PGP/GnuPG key: 1024D/124B61FA   (Key available at wwwkeys.pgp.net)
Fingerprint: 96C5 012F 5F74 A5F7 1FF7  5291 AF29 C719 124B 61FA
--- bbdb-2.35.cvs20060204/lisp/bbdb.el
+++ bbdb-2.35.cvs20060204/lisp/bbdb.el
@@ -2444,13 +2444,11 @@
   (save-restriction
     (widen)
     (goto-char (point-min))
-
-    ;; this always rewrites the coding cookie, which is a bit
-    ;; wasteful, but safer than alternatives
-    (if (looking-at ";; *-\\*-coding:")
-        (delete-region (point) (progn (forward-line) (point))))
-    (insert-before-markers (format ";; -*-coding: %s;-*-\n"
-                                   bbdb-file-coding-system)))
+    ;; Fixme: probably this should check any existing cookie for
+    ;; consistency with bbdb-file-coding-system.
+    (unless (looking-at ";; *-\\*-coding:")
+      (insert-before-markers (format ";; -*-coding: %s;-*-\n"
+                     bbdb-file-coding-system))))
   (setq bbdb-modified-p nil
         bbdb-changed-records nil)
   (let ((buf (get-buffer bbdb-buffer-name)))

Reply via email to