-(defvar IT-character-translations
- '(
- (latin-iso8859-1
- . [255 "!I" "|c" "Pd" "$$" "Ye" "|" "SE" "\"" "(c)"
- "_a" "<<" "~" "--" "(R)" "'-" "^o" "+-" "^2" "^3"
- "'" "u" ".P" "^." "'," "^1" "_o" ">>" "1/4" "1/2"
- "3/4" "?I" "`A" "A'" "A^" "~A" "\"A" "Ao" "AE" ",C"
- "`E" "E'" "E^" "\"E" "`I" "I'" "I^" "\"I" "-D" "~N"
- "`O" "O'" "O^" "~O" "\"O" "*x" "/O" "`U" "U'" "U^"
- "\"U" "Y'" "-P" "ss" "`a" "a'" "a^" "~a" "\"a" "ao"
- "ae" ",c" "`e" "e'" "e^" "\"e" "`i" "i'" "i^" "\"i"
- "-d" "~n" "`o" "o'" "o^" "~o" "\"o" "-:" "/o" "`u"
- "u'" "u^" "\"u" "y'" "-p" "\"y"]
- )
- (latin-iso8859-2
- . [255 "A;" "'(" "/L" "$$" "L<" "S'" "SE" "\"" "S<"
- ",S" "T<" "Z'" "--" "Z<" "Z^." "^o" "a;" "';" "/l"
- "'" "l<" "s'" "'<" "'," "s<" ",s" "t<" "z'" "'"
- "z<" "z^." "R'" "A'" "A^" "A(" "\"A" "L'" "C'" ",C"
- "C<" "E'" "E;" "E:" "E<" "I'" "I^" "D<" "/D" "N'"
- "N<" "O'" "O^" "O''" "\"O" "*x" "R<" "U^0" "U'" "U''"
- "\"U" "Y'" ",T" "ss" "r'" "a'" "a^" "a(" "\"a" "l'"
- "c'" ",c" "c<" "e'" "e;" "\"e" "e<" "i'" "i^" "d<"
- "/d" "n'" "n<" "o'" "o^" "o''" "\"o" "-:" "r<" "u^0"
- "u'" "u''" "\"u" "y'" ",t" "'."]
- )
- (latin-iso8859-3
- . [255 "/H" "'(" "Pd" "$$" " " "H^" "SE" "\"" "I^."
- ",S" "G(" "J^" "--" " " "Z^." "^o" "/h" "^2" "^3"
- "'" "u" "h^" "." "'," "i^." ",s" "g(" "j^" "1/2"
- " " "z^." "`A" "A'" "A^" " " "\"A" "C^." "C^" ",C"
- "`E" "E'" "E^" "\"E" "`I" "I'" "I^" "\"I" " " "~N"
- "`O" "O'" "O^" "G^." "\"O" "*x" "G^" "`U" "U'" "U^"
- "\"U" "U(" "S^" "ss" "`a" "a'" "a^" " " "\"a" "c^."
- "c^" ",c" "`e" "e'" "e^" "\"e" "`i" "i'" "i^" "\"i"
- " " "~n" "`o" "o'" "o^" "g^." "\"o" "-:" "g^" "`u"
- "u'" "u^" "\"u" "u(" "s^" "^."]
- )
- (latin-iso8859-4
- . [255 "A;" "kk" ",R" "$$" "?I" ",L" "SE" "\"" "S<"
- "E-" ",G" "/T" "--" "Z<" "'-" "^o" "a;" "';" ",r"
- "'" "~i" ",l" "'<" "'," "s<" "e-" ",g" "/t" "NG"
- "z<" "ng" "A-" "A'" "A^" "~A" "\"A" "Ao" "AE" "I;"
- "C<" "E'" "E;" "\"E" "E^." "I'" "I^" "I-" "/D" ",N"
- "O-" ",K" "O^" "~O" "\"O" "*x" "/O" "U;" "U'" "U^"
- "\"U" "~U" "U-" "ss" "a-" "a'" "a^" "~a" "\"a" "ao"
- "ae" "i;" "c<" "e'" "e;" "\"e" "e^." "i'" "i^" "i-"
- "/d" ",n" "o-" ",k" "o^" "~o" "\"o" "-:" "/o" "u;"
- "u'" "u^" "\"u" "~u" "u-" "^."]
- )
- (cyrillic-iso8859-5
- . [255 "\"E" "Dj" "Gj" "IE" "Dz" "Ii" "Ji" "JE" "Lj"
- "Nj" "Ts" "Kj" 240 "V%" "Dzh" 65 "B=" 66 226
- 68 69 "Z%" 51 85 "J=" 75 "L=" 77 72
- 79 "P=" 80 67 84 89 232 88 "C=" "C%"
- "S%" "Sc" "=\"" "Y=" "%\"" "Ee" "Yu" "Ya" 97 98
- "v=" "g=" 103 101 "z%" "z=" 117 "j=" 107 "l="
- "m=" "n=" 111 110 112 99 "t=" 121 "f=" 120
- "c=" "c%" "s%" "sc" "='" "y=" "%'" "ee" "yu" "ya"
- "N0" "\"e" "dj" "gj" "ie" "dz" "ii" "ji" "je" "lj"
- "nj" "ts" "kj" 21 "v%" "dzh"]
- )
- (arabic-iso8859-6
- . [255 nil nil nil "$$" nil nil nil nil nil
- nil nil ",+" "--" nil nil nil nil nil nil
- nil nil nil nil nil nil nil ";+" nil nil
- nil "?+" nil "H'" "aM" "aH" "wH" "ah" "yH"
- "a+" "b+" "tm" "t+" "tk" "g+" "hk" "x+" "d+" "dk"
- "r+" "z+" "s+" "sn" "c+" "dd" "tj" "zH" "e+" "i+"
- nil nil nil nil nil "++" "f+" "q+" "k+" "l+"
- "m+" "n+" "h+" "w+" "j+" "y+" ":+" "\"+" "=+" "/+"
- "'+" "1+" "3+" "0+" nil nil nil nil nil nil
- nil nil nil nil nil nil nil]
- )
- (greek-iso8859-7
- . [255 "9'" "'9" "Pd" nil nil "|" "SE" "\"" "(c)"
- nil "<<" "~" "--" nil "-M" "^o" "+-" "^2" "^3"
- "'" "'%" "'A" "^." "'E" "'H" "'I" ">>" "'O" "1/2"
- "'Y" "W%" "i3" 65 66 "G*" "D*" 69 90 72
- "TH" 73 74 "L*" 77 78 "C*" 79 "P*" 80
- nil "S*" 84 89 "F*" 88 "Q*" "W*" "\"I" "\"Y"
- "a%" "e%" "y%" "i%" "u3" "a*" "b*" "g*" "d*" "e*"
- "z*" "y*" "h*" "i*" 107 "l*" "m*" "n*" "c*" 111
- "p*" "r*" "*s" "s*" "t*" 117 "f*" "x*" "q*" "w*"
- "\"i" "\"u" "'o" "'u" "'w" nil]
- )
- ;; Note: some of the characters undefined according to ISO 8859-8
- ;; in the ranges 190..220 and 250..255 are replaced with SI 1311-1
- ;; points (Niqud) and bidi formatting characters
- (hebrew-iso8859-8
- . [255 nil "|c" "Pd" "$$" "Ye" "|" "SE" "\"" "(c)"
- "*x" "<<" "~" "--" "(R)" "'-" "^o" "+-" "^2" "^3"
- "'" "u" ".P" "^." "'," "^1" "-:" ">>" "1/4" "1/2"
- "3/4" nil ":'" "v:" "-:" "-':" ".'" ".." "v'" "-'"
- "-," "`." nil "\\." "(.)" "|'" "`-" "`=" "||" nil
- nil "::" nil nil nil nil nil nil nil "LRO"
- "RLO" "PDF" nil "=2" "A+" "B+" "G+" "D+" "H+" "W+"
- "Z+" "X+" "Tj" "J+" "K%" "K+" "L+" "M%" "M+" "N%"
- "N+" "S+" "E+" "P%" "P+" "Zj" "ZJ" "Q+" "R+" "Sh"
- "T+" "LRE" "RLE" "LRM" "RLM" nil]
- )
- (latin-iso8859-9
- . [255 "!I" "|c" "Pd" "$$" "Ye" "|" "SE" "\"" "(c)"
- "_a" "<<" "~" "--" "(R)" "'-" "^o" "+-" "^2" "^3"
- "'" "u" ".P" "^." "'," "^1" "_o" ">>" "1/4" "1/2"
- "3/4" "?I" "`A" "A'" "A^" "~A" "\"A" "Ao" "AE" ",C"
- "`E" "E'" "E^" "\"E" "`I" "I'" "I^" "\"I" "G(" "~N"
- "`O" "O'" "O^" "~O" "\"O" "*x" "/O" "`U" "U'" "U^"
- "\"U" "I^." ",S" "ss" "`a" "a'" "a^" "~a" "\"a" "ao"
- "ae" ",c" "`e" "e'" "e<" "\"e" "e^." "i'" "i^" "i-"
- "g(" "~n" "`o" "o'" "o^" "~o" "\"o" "-:" "/o" "`u"
- "u'" "u^" "\"u" "i." ",s" "\"y"]
- )
- (latin-iso8859-14
- . [255 "B`" "b`" "Pd" "C`" "c`" "D`" "SE" "`W" "(c)"
- "W'" "d`" "`Y" "--" "(R)" "\"Y" "F`" "f`" "G`" "g`"
- "M`" "m`" ".P" "P`" "`w" "p`" "w'" "S`" "`y" "\"W"
- "\"w" "s`" "`A" "A'" "A^" "~A" "\"A" "Ao" "AE" ",C"
- "`E" "E'" "E^" "\"E" "`I" "I'" "I^" "\"I" "W^" "~N"
- "`O" "O'" "O^" "~O" "\"O" "T`" "/O" "`U" "U'" "U^"
- "\"U" "Y'" "Y^" "ss" "`a" "a'" "a^" "~a" "\"a" "ao"
- "ae" ",c" "`e" "e'" "e^" "\"e" "`i" "i'" "i^" "\"i"
- "w^" "~n" "`o" "o'" "o^" "~o" "\"o" "t`" "/o" "`u"
- "u'" "u^" "\"u" "y'" "y^" "\"y"]
- )
- (latin-iso8859-15
- . [255 "!I" "|c" "Pd" "E=" "Ye" "S<" "SE" "s<" "(c)"
- "_a" "<<" "~" "--" "(R)" "'-" "^o" "+-" "^2" "^3"
- "Z<" "u" ".P" "^." "z<" "^1" "_o" ">>" "OE" "oe"
- "\"Y" "?I" "`A" "A'" "A^" "~A" "\"A" "Ao" "AE" ",C"
- "`E" "E'" "E^" "\"E" "`I" "I'" "I^" "\"I" "-D" "~N"
- "`O" "O'" "O^" "~O" "\"O" "*x" "/O" "`U" "U'" "U^"
- "\"U" "Y'" "|P" "ss" "`a" "a'" "a^" "~a" "\"a" "ao"
- "ae" ",c" "`e" "e'" "e^" "\"e" "`i" "i'" "i^" "\"i"
- "-d" "~n" "`o" "o'" "o^" "~o" "\"o" "-:" "/o" "`u"
- "u'" "u^" "\"u" "y'" "|p" "\"y"]
- )
- )
- "An alist of MULE ISO-8859 character sets and the strings that
-should be used to represent the characters from each set on a DOS
-terminal which does not have corresponding glyphs built into the
-installed codepage.")
-
-(defun IT-display-table-setup (codepage &optional table)
- "Set up display table TABLE for a DOS terminal which supports
-glyphs built into the codepage CODEPAGE.
-
-If TABLE is nil or omitted, `standard-display-table' is used."
- (let* ((surrogates IT-character-translations)
- (disp-tab (or table standard-display-table))
- (built-in-set (cp-charset-for-codepage codepage))
- (offset (cp-offset-for-codepage codepage))
- (cp-decoder
- (symbol-value (intern-soft (format "%s-decode-table" codepage))))
- (cp-decoder-len (length cp-decoder))
- (c offset)
- association chset)
- ;; Undo the effects of previous call (where they may have used
- ;; a different codepage) by reverting the display table for the
- ;; built-in charset to its pristine shape.
- (while (< c 256)
- (aset disp-tab (make-char built-in-set c) nil)
- (setq c (1+ c)))
- (while surrogates
- (setq association (car surrogates))
- (setq chset (car association))
- (let* ((vector (cdr association))
- (veclen (length vector))
- (i 0)
- glyph)
- (while (< i veclen)
- (setq glyph (aref vector i))
- (or glyph (setq glyph dos-unsupported-char-glyph))
- (if (or (not (equal chset built-in-set))
- (>= i cp-decoder-len)
- (null (aref cp-decoder i)))
- (aset disp-tab (make-char chset (+ i (logand offset 127)))
- (vconcat
- (if (numberp glyph)
- (char-to-string glyph)
- (if (> (length glyph) 1) (concat "{" glyph "}")
- glyph)))))
- (setq i (1+ i))))
- (setq surrogates (cdr surrogates)))))
-