]> git.eshelyaron.com Git - emacs.git/commitdiff
(cp-coding-system-for-codepage-1): Give `safe-chars' property to
authorKenichi Handa <handa@m17n.org>
Thu, 27 Jul 2000 06:15:33 +0000 (06:15 +0000)
committerKenichi Handa <handa@m17n.org>
Thu, 27 Jul 2000 06:15:33 +0000 (06:15 +0000)
make-coding-system.

lisp/international/codepage.el

index 5f4b76fe6e7587c302968408d3c0ec846677c318..65b2ce2c64b8dbfa1588915afb8f1708ada222b5 100644 (file)
@@ -58,6 +58,7 @@ external DOS codepage codes."
                          (logand dos-unsupported-char-glyph 255)
                        127)
                    ??))
+          (safe-chars (make-char-table 'safe-chars))
           (ccl-decoder
            (ccl-compile
             ;; The 4 here supplies the buf_magnification parameter
@@ -84,6 +85,16 @@ external DOS codepage codes."
                                 (write r1)))))
                       (write-repeat r1))))))
 
+      ;; Set elements of safe multibyte characters for this codepage
+      ;; to t in the char-table safe-chars.
+      (let ((tbl (get decoder 'translation-table))
+           (i 128)
+           ch)
+       (while (< i 256)
+         (setq ch (aref tbl i))
+         (if ch (aset safe-chars ch t))
+         (setq i (1+ i))))
+
       ;; Make coding system CODING.
       (make-coding-system
        coding 4 mnemonic
@@ -91,6 +102,7 @@ external DOS codepage codes."
               " characters using IBM codepage " coding-name)
        (cons ccl-decoder ccl-encoder)
        `((safe-charsets ascii eight-bit-control eight-bit-graphic ,iso-name)
+        (safe-chars . ,safe-chars)
         (valid-codes (0 . 255)))))))
 
 (defun cp-decoding-vector-for-codepage (table charset offset)