Mercurial > emacs
comparison lisp/international/utf-7.el @ 51630:90215b7be64d
Adjusted for the name change: xxx-utf-16-{le,be} -> xxx-utf-16{le,be}.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Sat, 21 Jun 2003 02:25:38 +0000 |
parents | 289523dd4fa7 |
children | 695cf19ef79e |
comparison
equal
deleted
inserted
replaced
51629:0333f026178a | 51630:90215b7be64d |
---|---|
38 | 38 |
39 (make-coding-system | 39 (make-coding-system |
40 'utf-7 0 ?U | 40 'utf-7 0 ?U |
41 "UTF-7 encoding of Unicode (RFC 2152)" | 41 "UTF-7 encoding of Unicode (RFC 2152)" |
42 nil | 42 nil |
43 `((safe-chars . ,(coding-system-get 'utf-16-be 'safe-chars)) | 43 `((safe-chars . ,(coding-system-get 'utf-16be 'safe-chars)) |
44 (mime-charset . utf-7) | 44 (mime-charset . utf-7) |
45 (pre-write-conversion . utf-7-pre-write-conversion) | 45 (pre-write-conversion . utf-7-pre-write-conversion) |
46 (post-read-conversion . utf-7-post-read-conversion))) | 46 (post-read-conversion . utf-7-post-read-conversion))) |
47 | 47 |
48 ;; (make-coding-system | 48 ;; (make-coding-system |
49 ;; 'utf-7-imap 0 ?u | 49 ;; 'utf-7-imap 0 ?u |
50 ;; "UTF-7 encoding of Unicode, IMAP version (RFC 2060)" | 50 ;; "UTF-7 encoding of Unicode, IMAP version (RFC 2060)" |
51 ;; nil | 51 ;; nil |
52 ;; `((safe-chars . ,(coding-system-get 'utf-16-be 'safe-chars)) | 52 ;; `((safe-chars . ,(coding-system-get 'utf-16be 'safe-chars)) |
53 ;; (pre-write-conversion . utf-7-imap-pre-write-conversion) | 53 ;; (pre-write-conversion . utf-7-imap-pre-write-conversion) |
54 ;; (post-read-conversion . utf-7-imap-post-read-conversion))) | 54 ;; (post-read-conversion . utf-7-imap-post-read-conversion))) |
55 | 55 |
56 (defun utf-7-decode (len imap) | 56 (defun utf-7-decode (len imap) |
57 "Decode LEN bytes of UTF-7 at point. | 57 "Decode LEN bytes of UTF-7 at point. |
73 (let ((pl (mod (- run-length) 4))) | 73 (let ((pl (mod (- run-length) 4))) |
74 (insert-char ?= pl) | 74 (insert-char ?= pl) |
75 (if imap | 75 (if imap |
76 (subst-char-in-region p (point) ?, ?/)) | 76 (subst-char-in-region p (point) ?, ?/)) |
77 (base64-decode-region p (point))) | 77 (base64-decode-region p (point))) |
78 (decode-coding-region p (point) 'utf-16-be) | 78 (decode-coding-region p (point) 'utf-16be) |
79 (save-excursion | 79 (save-excursion |
80 (goto-char p) | 80 (goto-char p) |
81 (delete-backward-char 1))))))) | 81 (delete-backward-char 1))))))) |
82 (- (point-max) (point-min))))) | 82 (- (point-max) (point-min))))) |
83 | 83 |
114 (let ((p (point))) | 114 (let ((p (point))) |
115 (skip-chars-forward not-skip-chars) | 115 (skip-chars-forward not-skip-chars) |
116 (save-restriction | 116 (save-restriction |
117 ;; encode-coding-region doesn't preserve point | 117 ;; encode-coding-region doesn't preserve point |
118 (narrow-to-region p (point)) | 118 (narrow-to-region p (point)) |
119 (encode-coding-region p (point-max) 'utf-16-be) | 119 (encode-coding-region p (point-max) 'utf-16be) |
120 (base64-encode-region p (point-max)) | 120 (base64-encode-region p (point-max)) |
121 (if imap | 121 (if imap |
122 (subst-char-in-region p (point-max) ?/ ?,)) | 122 (subst-char-in-region p (point-max) ?/ ?,)) |
123 (goto-char p) | 123 (goto-char p) |
124 ;; As I read the RFC, this isn't correct, but it's | 124 ;; As I read the RFC, this isn't correct, but it's |