]> git.eshelyaron.com Git - emacs.git/commitdiff
(dos-codepage-setup): Compute the unibyte
authorEli Zaretskii <eliz@gnu.org>
Tue, 16 Mar 1999 14:14:55 +0000 (14:14 +0000)
committerEli Zaretskii <eliz@gnu.org>
Tue, 16 Mar 1999 14:14:55 +0000 (14:14 +0000)
syntax table and bind unibyte-display-via-language-environment
here, rather than at top level, so that resetting to unibyte in
.emacs works as expected.

lisp/term/internal.el

index c1be9aed3c492208900964edb9cd8d0e7a2a1b76..30b0d3d0b7fabb273777fb54ef657f425dfb0bee 100644 (file)
@@ -274,6 +274,58 @@ list.  You can (and should) also run it whenever the value of
                                                          "-unix"))))
     (IT-display-table-setup cp)
     (prefer-coding-system (intern (concat cp "-dos")))
+    (if default-enable-multibyte-characters
+       ;; We want this in multibyte version only, since unibyte version
+       ;; should not convert non-ASCII characters at all.
+       (setq unibyte-display-via-language-environment t)
+      ;; Let the unibyte version behave as Emacs 19 did.  In particular,
+      ;; let it use and display native codepage-specific glyphs for
+      ;; non-ASCII characters.  For this to work correctly, we need to
+      ;; establish the correspondence between lower-case letters and their
+      ;; upper-case brethren, as appropriate for the codepage in use.  The
+      ;; code below makes this happen.
+      ;; (In the multibyte mode, the appropriate tables are prepared
+      ;; elsewhere, since multibyte Emacs uses normal MULE character sets,
+      ;; which are supported on all platforms.)
+      (let* ((i 128)
+            (modify (function
+                     (lambda (ch sy) 
+                       (modify-syntax-entry ch sy text-mode-syntax-table)
+                       (if (boundp 'tex-mode-syntax-table)
+                           (modify-syntax-entry ch sy tex-mode-syntax-table))
+                       (modify-syntax-entry ch sy (standard-syntax-table))
+                       )))
+            (table (standard-case-table))
+            ;; The following are strings of letters, first lower then
+            ;; upper case.  This will look funny on terminals which
+            ;; display other code pages.  In particular, what is
+            ;; displayed as blanks or triangles are not what they
+            ;; look lile at all!  (Use `C-x =' to see what they
+            ;; really are.)
+            (chars
+             (cond
+              ((= dos-codepage 850)
+               "\87\80\81\9a\82\90\83\84\8e\85·\86\8fÆÇ µ\88Ò\89Ó\8aÔ\8bØ\8c×\8dÞ¡Ö\91\92\93â\94\99\95ã¢à\9b\9d\96ê£é\97ë\98Yìí¡I£é¤¥ÐÑçè")
+              ((= dos-codepage 865)
+               "\87\80\81\9a\82\90\83A\84\8e\85A\86\8f\88E\89E\8aE\8bI\8cI\8dI\91\92\93O\94\99\95O\96U£U\98Y\9b\9d A¡I¢O£U¤¥")
+              ;; default is 437
+              (t "\87\80\81\9a\82\90\83A\84\8e\85A\86\8f\88E\89E\8aE\8bI\8cI\8dI\91\92\93O\94\99\95O\96U£U\98Y A¡I¢O£U¤¥"))))
+
+       (while (< i 256)
+         (funcall modify i "_")
+         (setq i (1+ i)))
+
+       (setq i 0)
+       (while (< i (length chars))
+         (let ((ch1 (aref chars i))
+               (ch2 (aref chars (1+ i))))
+           (if (> ch2 127)
+               (set-case-syntax-pair ch2 ch1 table))
+           (setq i (+ i 2))))
+       (save-excursion
+         (mapcar (lambda (b) (set-buffer b) (set-case-table table))
+                 (buffer-list)))
+       (set-standard-case-table table)))
     ;; Some codepages have sporadic support for Latin-1, Greek, and
     ;; symbol glyphs, which don't belong to their native character
     ;; set.  It's a nuisance to have all those glyphs here, for all
@@ -295,56 +347,5 @@ list.  You can (and should) also run it whenever the value of
 ;; characters to arrive at our display code verbatim.
 (standard-display-8bit 127 255)
 
-(if default-enable-multibyte-characters
-    ;; We want this in multibyte version only, since unibyte version
-    ;; should not convert non-ASCII characters at all.
-    (setq unibyte-display-via-language-environment t)
-  ;; Let the unibyte version behave as Emacs 19 did.  In particular,
-  ;; let it use and display native codepage-specific glyphs for
-  ;; non-ASCII characters.  For this to work correctly, we need to
-  ;; establish the correspondence between lower-case letters and their
-  ;; upper-case brethren, as appropriate for the codepage in use.  The
-  ;; code below makes this happen.
-  ;; (In the multibyte mode, the appropriate tables are prepared
-  ;; elsewhere, since multibyte Emacs uses normal MULE character sets,
-  ;; which are supported on all platforms.)
-  (let* ((i 128)
-        (modify (function
-                 (lambda (ch sy) 
-                   (modify-syntax-entry ch sy text-mode-syntax-table)
-                   (if (boundp 'tex-mode-syntax-table)
-                       (modify-syntax-entry ch sy tex-mode-syntax-table))
-                   (modify-syntax-entry ch sy (standard-syntax-table))
-                   )))
-        (table (standard-case-table))
-        ;; The following are strings of letters, first lower then upper case.
-        ;; This will look funny on terminals which display other code pages.
-        ;; In particular, what is displayed as blanks are not blanks
-        ;; at all!  (Use `C-x =' to see what they really are.)
-        (chars
-         (cond
-          ((= dos-codepage 850)
-           "\87\80\81\9a\82\90\83\84\8e\85·\86\8fÆÇ µ\88Ò\89Ó\8aÔ\8bØ\8c×\8dÞ¡Ö\91\92\93â\94\99\95ã¢à\9b\9d\96ê£é\97ë\98Yìí¡I£é¤¥ÐÑçè")
-          ((= dos-codepage 865)
-           "\87\80\81\9a\82\90\83A\84\8e\85A\86\8f\88E\89E\8aE\8bI\8cI\8dI\91\92\93O\94\99\95O\96U£U\98Y\9b\9d A¡I¢O£U¤¥")
-          ;; default is 437
-          (t "\87\80\81\9a\82\90\83A\84\8e\85A\86\8f\88E\89E\8aE\8bI\8cI\8dI\91\92\93O\94\99\95O\96U£U\98Y A¡I¢O£U¤¥"))))
-
-    (while (< i 256)
-      (funcall modify i "_")
-      (setq i (1+ i)))
-
-    (setq i 0)
-    (while (< i (length chars))
-      (let ((ch1 (aref chars i))
-           (ch2 (aref chars (1+ i))))
-       (if (> ch2 127)
-           (set-case-syntax-pair ch2 ch1 table))
-       (setq i (+ i 2))))
-    (save-excursion
-      (mapcar (lambda (b) (set-buffer b) (set-case-table table))
-             (buffer-list)))
-    (set-standard-case-table table)))
-
 ;;; internal.el ends here