From: Leo <sdl.web@gmail.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: bug-gnu-emacs@gnu.org
Subject: bug#8308: 23.3; Use utf-8 for writing abbrev file
Date: Tue, 22 Mar 2011 11:47:21 +0800 [thread overview]
Message-ID: <m1zkonzuie.fsf@gmail.com> (raw)
In-Reply-To: <jwvwrjreuue.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Mon, 21 Mar 2011 22:48:40 -0400")
On 2011-03-22 10:48 +0800, Stefan Monnier wrote:
> I think it might be OK to do it for Emacs-25, but since Emacs-22 can't
> handle utf-8-emacs, I think it's a bit early to switch to it in
> Emacs-24. If utf-8 is sufficient, OTOH it's the best choice. So maybe
> we should check the buffer first to see if utf-8 is safe, and only fall
> back to emacs-mule if utf-8 is not safe.
I think default to utf-8 is good, which is sufficient for most people.
Any comments on the following patch? I don't know how to introduce a
char unencodable with utf-8 to the abbrevs. So it is only partially
tested.
=== modified file 'lisp/abbrev.el'
--- lisp/abbrev.el 2011-01-25 04:08:28 +0000
+++ lisp/abbrev.el 2011-03-22 03:30:52 +0000
@@ -225,21 +225,29 @@
abbrev-file-name)))
(or (and file (> (length file) 0))
(setq file abbrev-file-name))
- (let ((coding-system-for-write 'emacs-mule))
- (with-temp-file file
- (insert ";;-*-coding: emacs-mule;-*-\n")
+ (let ((coding-system-for-write 'utf-8))
+ (with-temp-buffer
(dolist (table
- ;; We sort the table in order to ease the automatic
- ;; merging of different versions of the user's abbrevs
- ;; file. This is useful, for example, for when the
- ;; user keeps their home directory in a revision
- ;; control system, and is therefore keeping multiple
- ;; slightly-differing copies loosely synchronized.
- (sort (copy-sequence abbrev-table-name-list)
- (lambda (s1 s2)
- (string< (symbol-name s1)
- (symbol-name s2)))))
- (insert-abbrev-table-description table nil)))))
+ ;; We sort the table in order to ease the automatic
+ ;; merging of different versions of the user's abbrevs
+ ;; file. This is useful, for example, for when the
+ ;; user keeps their home directory in a revision
+ ;; control system, and is therefore keeping multiple
+ ;; slightly-differing copies loosely synchronized.
+ (sort (copy-sequence abbrev-table-name-list)
+ (lambda (s1 s2)
+ (string< (symbol-name s1)
+ (symbol-name s2)))))
+ (insert-abbrev-table-description table nil))
+ (when (unencodable-char-position (point-min) (point-max) 'utf-8)
+ (setq coding-system-for-write
+ (if (> emacs-major-version 24)
+ 'utf-8-emacs
+ ;; For compatibility with Emacs 22
+ 'emacs-mule)))
+ (goto-char (point-min))
+ (insert (format ";;-*-coding: %s;-*-\n" coding-system-for-write))
+ (write-region nil nil file nil 0))))
\f
(defun add-mode-abbrev (arg)
"Define mode-specific abbrev for last word(s) before point.
next prev parent reply other threads:[~2011-03-22 3:47 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-21 6:22 bug#8308: 23.3; Use utf-8 for writing abbrev file Leo
2011-03-21 9:00 ` Eli Zaretskii
2011-03-21 10:01 ` Leo
2011-03-21 10:54 ` Eli Zaretskii
2011-03-21 11:26 ` Andreas Röhler
2011-03-21 14:50 ` Stefan Monnier
2011-03-21 15:37 ` Leo
2011-03-21 18:45 ` Eli Zaretskii
2011-03-22 1:00 ` Leo
2011-03-22 2:48 ` Stefan Monnier
2011-03-22 3:47 ` Leo [this message]
2011-03-22 5:24 ` Stefan Monnier
2011-03-22 10:41 ` Leo
2011-03-22 18:27 ` Stefan Monnier
2011-03-23 0:42 ` Leo
2011-03-21 18:24 ` Andreas Röhler
2011-03-21 18:53 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m1zkonzuie.fsf@gmail.com \
--to=sdl.web@gmail.com \
--cc=bug-gnu-emacs@gnu.org \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.