Mercurial > emacs
changeset 104328:4d1464dfdc96
(ucs-normalize-version): Changed to 1.1.
(ucs-normalize-hfs-nfd-pre-write-conversion): New function.
(utf-8-hfs): Make it perform normalization on encoding too.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Tue, 18 Aug 2009 01:26:05 +0000 |
parents | 8b4fe89f2b29 |
children | 724a789deb07 |
files | lisp/international/ucs-normalize.el |
diffstat | 1 files changed, 14 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/international/ucs-normalize.el Tue Aug 18 01:21:01 2009 +0000 +++ b/lisp/international/ucs-normalize.el Tue Aug 18 01:26:05 2009 +0000 @@ -108,7 +108,7 @@ ;;; Code: -(defconst ucs-normalize-version "1.1beta2") +(defconst ucs-normalize-version "1.1") (eval-when-compile (require 'cl)) @@ -589,19 +589,26 @@ (ucs-normalize-HFS-NFC-region (point-min) (point-max)) (- (point-max) (point-min)))))) +;; Pre-write conversion for `utf-8-hfs'. +(defun ucs-normalize-hfs-nfd-pre-write-conversion (from to) + (let ((old-buf (current-buffer))) + (set-buffer (generate-new-buffer " *temp*")) + (if (stringp from) + (insert from) + (insert-buffer-substring old-buf from to)) + (ucs-normalize-HFS-NFD-region (point-min) (point-max)) + nil)) + ;;; coding-system definition (define-coding-system 'utf-8-hfs - "UTF-8 base coding system with normalization on decoding. + "UTF-8 based coding system for MacOS HFS file names. The singleton characters in HFS normalization exclusion will not -be decomposed. It doesn't perform normalization on encoding." +be decomposed." :coding-type 'utf-8 :mnemonic ?U :charset-list '(unicode) - ;; :decode-translation-table (not necessary) :post-read-conversion 'ucs-normalize-hfs-nfd-post-read-conversion - ;; NFD encoder is not necessary because MacOS will automatically do it. - ;; :encode-translation-table 'nfd-encode-translation-table - ;; :pre-write-conversion 'nfd-encode-function + :pre-write-conversion 'ucs-normalize-hfs-nfd-pre-write-conversion ) (provide 'ucs-normalize)