]> code.delx.au - gnu-emacs/blobdiff - lisp/international/titdic-cnv.el
(titdic-convert): Bind coding-system-for-write to 'iso-2022-7bit.
[gnu-emacs] / lisp / international / titdic-cnv.el
index b7ac8a93fd0db6baef1a1e5c61f42b8fad44c274..93313428099d6ddeec455f194dd6782dcbafd18d 100644 (file)
@@ -465,50 +465,48 @@ SPC, 6, 3, 4, or 7 specifing a tone (SPC:\e$(0?v(N\e(B, 6:\e$(0Dm(N\e(B, 3:\e$(0&9Vy\e
 Optional argument DIRNAME if specified is the directory name under which
 the generated Quail package is saved."
   (interactive "FTIT dictionary file: ")
-  (with-temp-file  (tit-make-quail-package-file-name filename dirname)
-    (set-buffer-file-coding-system 'iso-2022-7bit)
-    (let ((standard-output (current-buffer)))
-      (with-temp-buffer
-       (let ((coding-system-for-read 'no-conversion))
-         (insert-file-contents (expand-file-name filename)))
-       (set-buffer-multibyte t)
+  (let ((coding-system-for-write 'iso-2022-7bit))
+    (with-temp-file  (tit-make-quail-package-file-name filename dirname)
+      (set-buffer-file-coding-system 'iso-2022-7bit)
+      (let ((standard-output (current-buffer)))
+       (with-temp-buffer
+         (let ((coding-system-for-read 'no-conversion))
+           (insert-file-contents (expand-file-name filename)))
+         (set-buffer-multibyte t)
        
        ;; Decode the buffer contents from the encoding specified by a
-       ;; value of the key "ENCODE:".
-       (if (not (search-forward "\nBEGIN" nil t))
-           (error "TIT dictionary doesn't have body part"))
-       (let ((limit (point))
-             coding-system slot)
+         ;; value of the key "ENCODE:".
+         (if (not (search-forward "\nBEGIN" nil t))
+             (error "TIT dictionary doesn't have body part"))
+         (let ((limit (point))
+               coding-system slot)
+           (goto-char (point-min))
+           (if (re-search-forward "^ENCODE:[ \t]*" limit t)
+               (progn
+                 (goto-char (match-end 0))
+                 (setq tit-encode (tit-read-key-value)))
+             (setq tit-encode tit-default-encode))
+           (setq slot (assoc tit-encode tit-encode-list))
+           (if (not slot)
+               (error "Invalid ENCODE: value in TIT dictionary"))
+           (setq coding-system (nth 1 slot))
+           (message "Decoding with coding system %s..." coding-system)
+           (goto-char (point-min))
+           (decode-coding-region (point-min) (point-max) coding-system))
+
+         ;; Set point the starting position of the body part.
          (goto-char (point-min))
-         (if (re-search-forward "^ENCODE:[ \t]*" limit t)
-             (progn
-               (goto-char (match-end 0))
-               (setq tit-encode (tit-read-key-value)))
-           (setq tit-encode tit-default-encode))
-         (setq slot (assoc tit-encode tit-encode-list))
-         (if (not slot)
-             (error "Invalid ENCODE: value in TIT dictionary"))
-         (setq coding-system (nth 1 slot))
-         (message "Decoding with coding system %s..." coding-system)
-         (goto-char (point-min))
-         (decode-coding-region (point-min) (point-max) coding-system))
-
-       ;; Set point the starting position of the body part.
-       (goto-char (point-min))
-       (if (not (search-forward "\nBEGIN" nil t))
-           (error "TIT dictionary can't be decoded correctly"))
-
-       ;; Process the header part.
-       (forward-line 1)
-       (narrow-to-region (point-min) (point))
-       (tit-process-header filename)
-       (widen)
-
-       ;; Process the body part.  For speed, we turn off multibyte facility.
-       (with-current-buffer standard-output
-         (set-buffer-multibyte nil))
-       (set-buffer-multibyte nil)
-       (tit-process-body)))))
+         (if (not (search-forward "\nBEGIN" nil t))
+             (error "TIT dictionary can't be decoded correctly"))
+
+         ;; Process the header part.
+         (forward-line 1)
+         (narrow-to-region (point-min) (point))
+         (tit-process-header filename)
+         (widen)
+
+         ;; Process the body part.
+         (tit-process-body))))))
 
 ;;;###autoload
 (defun batch-titdic-convert (&optional force)