Use utf-8 if safe for writing to abbrev file
and fall back on emacs-mule or utf-8-emacs.
This commit is contained in:
parent
0b1596c6ad
commit
4b978a677c
2 changed files with 28 additions and 14 deletions
|
@ -1,3 +1,9 @@
|
|||
2011-03-22 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* abbrev.el (write-abbrev-file): Use utf-8 for writing if it can
|
||||
encode all chars in abbrevs; otherwise use emacs-mule or
|
||||
utf-8-emacs. (Bug#8308)
|
||||
|
||||
2011-03-22 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* simple.el (backward-delete-char-untabify):
|
||||
|
|
|
@ -225,21 +225,29 @@ specified in `abbrev-file-name' is used."
|
|||
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 (See Bug#8308)
|
||||
'emacs-mule)))
|
||||
(goto-char (point-min))
|
||||
(insert (format ";;-*-coding: %s;-*-\n" coding-system-for-write))
|
||||
(write-region nil nil file nil 0))))
|
||||
|
||||
(defun add-mode-abbrev (arg)
|
||||
"Define mode-specific abbrev for last word(s) before point.
|
||||
|
|
Loading…
Add table
Reference in a new issue