# HG changeset patch # User Kenichi Handa # Date 1014948554 0 # Node ID 4135242fe433420920e89144fbc14ea5d98af21a # Parent 9ae36aa886d5e94e9f802e691806d338b3296b21 (titdic-convert): Bind coding-system-for-write to 'iso-2022-7bit. Don't work on unibyte buffer. diff -r 9ae36aa886d5 -r 4135242fe433 lisp/international/titdic-cnv.el --- a/lisp/international/titdic-cnv.el Fri Mar 01 02:08:45 2002 +0000 +++ b/lisp/international/titdic-cnv.el Fri Mar 01 02:09:14 2002 +0000 @@ -465,50 +465,48 @@ 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) - (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) + ;; 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)) - (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")) + (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 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))))) + ;; Process the body part. + (tit-process-body)))))) ;;;###autoload (defun batch-titdic-convert (&optional force)