Mercurial > emacs
diff lisp/term/mac-win.el @ 83386:db4e74787e6f
Merged from miles@gnu.org--gnu-2005 (patch 133-141, 596-609)
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-596
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-597
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-598
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-599
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-600
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-601
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-602
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-603
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-604
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-605
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-606
Remove lisp/toolbar directory
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-607
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-608
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-609
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-133
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-134
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-135
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-136
Merge from emacs--cvs-trunk--0
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-137
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-138
Update from CVS: texi/gnus.texi (RSS): Fix key description.
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-139
Merge from emacs--cvs-trunk--0
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-140
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-141
Update from CVS: texi/gnus.texi (Document Server Internals): Addition.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-426
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Wed, 19 Oct 2005 14:06:17 +0000 |
parents | 2a679c81f552 bfc846e38bba |
children | 7d093d9d4479 |
line wrap: on
line diff
--- a/lisp/term/mac-win.el Wed Oct 19 14:03:44 2005 +0000 +++ b/lisp/term/mac-win.el Wed Oct 19 14:06:17 2005 +0000 @@ -54,8 +54,6 @@ ;; -font *font ;; -foreground *foreground ;; -geometry .geometry -;; -i .iconType -;; -itype .iconType ;; -iconic .iconic ;; -name .name ;; -reverse *reverseVideo @@ -1199,15 +1197,21 @@ (when (and (stringp data) (setq data-type (get-text-property 0 'foreign-selection data))) (cond ((eq data-type 'public.utf16-plain-text) - (let ((encoded (and (fboundp 'mac-code-convert-string) - (mac-code-convert-string data - 'utf-16 coding)))) - (if encoded - (let ((coding-save last-coding-system-used)) - (setq data (decode-coding-string encoded coding)) - (setq last-coding-system-used coding-save)) - (setq data - (decode-coding-string data 'utf-16))))) + (if (fboundp 'mac-code-convert-string) + (let ((s (mac-code-convert-string data nil coding))) + (if s + (setq data (decode-coding-string s coding)) + (setq data + ;; (decode-coding-string data 'utf-16) is + ;; not correct because + ;; public.utf16-plain-text is defined as + ;; native byte order, no BOM. + (decode-coding-string + (mac-code-convert-string data nil 'utf-8) + 'utf-8)))) + ;; No `mac-code-convert-string' means non-Carbon, which + ;; implies big endian. + (setq data (decode-coding-string data 'utf-16be)))) ((eq data-type 'com.apple.traditional-mac-plain-text) (setq data (decode-coding-string data coding))) ((eq data-type 'public.file-url) @@ -1324,14 +1328,25 @@ (remove-text-properties 0 (length str) '(composition nil) str) (cond ((eq type 'public.utf16-plain-text) - (let (s) - (when (and (fboundp 'mac-code-convert-string) - (memq coding (find-coding-systems-string str))) - (setq coding (coding-system-change-eol-conversion coding 'mac)) - (setq s (mac-code-convert-string - (encode-coding-string str coding) - coding 'utf-16))) - (setq str (or s (encode-coding-string str 'utf-16-mac))))) + (if (fboundp 'mac-code-convert-string) + (let (s) + (when (memq coding (find-coding-systems-string str)) + (setq coding + (coding-system-change-eol-conversion coding 'mac)) + (setq s (mac-code-convert-string + (encode-coding-string str coding) + coding nil))) + (setq str (or s + ;; (encode-coding-string str + ;; 'utf-16-mac) is not correct because + ;; public.utf16-plain-text is defined + ;; as native byte order, no BOM. + (mac-code-convert-string + (encode-coding-string str 'utf-8-mac) + 'utf-8 nil)))) + ;; No `mac-code-convert-string' means non-Carbon, which + ;; implies big endian. + (setq str (encode-coding-string str 'utf-16be-mac)))) ((eq type 'com.apple.traditional-mac-plain-text) (let ((encodables (find-coding-systems-string str)) (rest mac-script-code-coding-systems))