"-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
;; 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