Commit | Line | Data |
---|---|---|
55535639 | 1 | ;;; iso-ascii.el --- set up char tables for ISO 8859/1 on ASCII terminals |
e5167999 | 2 | |
d4877ac1 | 3 | ;; Copyright (C) 1987, 1995, 1998, 2001, 2002, 2003, 2004, |
e3fe4da0 | 4 | ;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
9750e079 | 5 | |
e5167999 ER |
6 | ;; Author: Howard Gayle |
7 | ;; Maintainer: FSF | |
a1d15b3e | 8 | ;; Keywords: i18n |
3b4a6e27 JB |
9 | |
10 | ;; This file is part of GNU Emacs. | |
11 | ||
12 | ;; GNU Emacs is free software; you can redistribute it and/or modify | |
13 | ;; it under the terms of the GNU General Public License as published by | |
e5086daf | 14 | ;; the Free Software Foundation; either version 3, or (at your option) |
3b4a6e27 JB |
15 | ;; any later version. |
16 | ||
17 | ;; GNU Emacs is distributed in the hope that it will be useful, | |
18 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | ;; GNU General Public License for more details. | |
21 | ||
22 | ;; You should have received a copy of the GNU General Public License | |
b578f267 | 23 | ;; along with GNU Emacs; see the file COPYING. If not, write to the |
3a35cf56 LK |
24 | ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
25 | ;; Boston, MA 02110-1301, USA. | |
3b4a6e27 | 26 | |
e5167999 | 27 | ;;; Commentary: |
3b4a6e27 JB |
28 | |
29 | ;; Written by Howard Gayle. See display-table.el for details. | |
30 | ||
31 | ;; This code sets up to display ISO 8859/1 characters on plain | |
32 | ;; ASCII terminals. The display strings for the characters are | |
33 | ;; more-or-less based on TeX. | |
34 | ||
e5167999 ER |
35 | ;;; Code: |
36 | ||
3b4a6e27 JB |
37 | (require 'disp-table) |
38 | ||
d876a0a0 SE |
39 | (defgroup iso-ascii nil |
40 | "Set up char tables for ISO 8859/1 on ASCII terminals." | |
41 | :prefix "iso-ascii-" | |
42 | :group 'i18n) | |
43 | ||
44 | (defcustom iso-ascii-convenient nil | |
45 | "*Non-nil means `iso-ascii' should aim for convenience, not precision." | |
46 | :type 'boolean | |
47 | :group 'iso-ascii) | |
64690f3d | 48 | |
207d5f17 RS |
49 | (defvar iso-ascii-display-table (make-display-table) |
50 | "Display table used for ISO-ASCII mode.") | |
51 | ||
52 | (defvar iso-ascii-standard-display-table nil | |
53 | "Display table used when not in ISO-ASCII mode.") | |
54 | ;; Don't alter iso-ascii-standard-display-table if this file is loaded again, | |
55 | ;; or even by using C-M-x on any of the expressions. | |
56 | (unless iso-ascii-standard-display-table | |
57 | (setq iso-ascii-standard-display-table | |
58 | standard-display-table)) | |
59 | ||
64690f3d KH |
60 | (defun iso-ascii-display (code string &optional convenient-string) |
61 | (if iso-ascii-convenient | |
62 | (setq string (or convenient-string string)) | |
63 | (setq string (concat "{" string "}"))) | |
10a6a1b6 | 64 | ;; unibyte |
207d5f17 | 65 | (aset iso-ascii-display-table code string) |
10a6a1b6 | 66 | ;; multibyte |
207d5f17 RS |
67 | (aset iso-ascii-display-table (make-char 'latin-iso8859-1 (- code 128)) |
68 | string)) | |
64690f3d KH |
69 | |
70 | (iso-ascii-display 160 "_" " ") ; NBSP (no-break space) | |
71 | (iso-ascii-display 161 "!") ; inverted exclamation mark | |
72 | (iso-ascii-display 162 "c") ; cent sign | |
73 | (iso-ascii-display 163 "GBP") ; pound sign | |
74 | (iso-ascii-display 164 "$") ; general currency sign | |
75 | (iso-ascii-display 165 "JPY") ; yen sign | |
76 | (iso-ascii-display 166 "|") ; broken vertical line | |
77 | (iso-ascii-display 167 "S" "(S)") ; section sign | |
78 | (iso-ascii-display 168 "\"") ; diaeresis | |
79 | (iso-ascii-display 169 "C" "(C)") ; copyright sign | |
80 | (iso-ascii-display 170 "_a") ; ordinal indicator, feminine | |
81 | (iso-ascii-display 171 "<<") ; left angle quotation mark | |
82 | (iso-ascii-display 172 "~") ; not sign | |
83 | (iso-ascii-display 173 "-") ; soft hyphen | |
84 | (iso-ascii-display 174 "R" "(R)") ; registered sign | |
85 | (iso-ascii-display 175 "=") ; macron | |
86 | (iso-ascii-display 176 "o") ; degree sign | |
87 | (iso-ascii-display 177 "+-") ; plus or minus sign | |
88 | (iso-ascii-display 178 "2") ; superscript two | |
89 | (iso-ascii-display 179 "3") ; superscript three | |
90 | (iso-ascii-display 180 "'") ; acute accent | |
91 | (iso-ascii-display 181 "u") ; micro sign | |
10a6a1b6 | 92 | (iso-ascii-display 182 "P" "(P)") ; pilcrow |
64690f3d KH |
93 | (iso-ascii-display 183 ".") ; middle dot |
94 | (iso-ascii-display 184 ",") ; cedilla | |
95 | (iso-ascii-display 185 "1") ; superscript one | |
96 | (iso-ascii-display 186 "_o") ; ordinal indicator, masculine | |
97 | (iso-ascii-display 187 ">>") ; right angle quotation mark | |
98 | (iso-ascii-display 188 "1/4") ; fraction one-quarter | |
99 | (iso-ascii-display 189 "1/2") ; fraction one-half | |
100 | (iso-ascii-display 190 "3/4") ; fraction three-quarters | |
101 | (iso-ascii-display 191 "?") ; inverted question mark | |
102 | (iso-ascii-display 192 "`A") ; A with grave accent | |
103 | (iso-ascii-display 193 "'A") ; A with acute accent | |
104 | (iso-ascii-display 194 "^A") ; A with circumflex accent | |
105 | (iso-ascii-display 195 "~A") ; A with tilde | |
106 | (iso-ascii-display 196 "\"A") ; A with diaeresis or umlaut mark | |
107 | (iso-ascii-display 197 "AA") ; A with ring | |
108 | (iso-ascii-display 198 "AE") ; AE diphthong | |
109 | (iso-ascii-display 199 ",C") ; C with cedilla | |
110 | (iso-ascii-display 200 "`E") ; E with grave accent | |
111 | (iso-ascii-display 201 "'E") ; E with acute accent | |
112 | (iso-ascii-display 202 "^E") ; E with circumflex accent | |
113 | (iso-ascii-display 203 "\"E") ; E with diaeresis or umlaut mark | |
114 | (iso-ascii-display 204 "`I") ; I with grave accent | |
115 | (iso-ascii-display 205 "'I") ; I with acute accent | |
116 | (iso-ascii-display 206 "^I") ; I with circumflex accent | |
117 | (iso-ascii-display 207 "\"I") ; I with diaeresis or umlaut mark | |
118 | (iso-ascii-display 208 "-D") ; D with stroke, Icelandic eth | |
119 | (iso-ascii-display 209 "~N") ; N with tilde | |
120 | (iso-ascii-display 210 "`O") ; O with grave accent | |
121 | (iso-ascii-display 211 "'O") ; O with acute accent | |
122 | (iso-ascii-display 212 "^O") ; O with circumflex accent | |
123 | (iso-ascii-display 213 "~O") ; O with tilde | |
124 | (iso-ascii-display 214 "\"O") ; O with diaeresis or umlaut mark | |
125 | (iso-ascii-display 215 "x") ; multiplication sign | |
126 | (iso-ascii-display 216 "/O") ; O with slash | |
127 | (iso-ascii-display 217 "`U") ; U with grave accent | |
128 | (iso-ascii-display 218 "'U") ; U with acute accent | |
129 | (iso-ascii-display 219 "^U") ; U with circumflex accent | |
130 | (iso-ascii-display 220 "\"U") ; U with diaeresis or umlaut mark | |
131 | (iso-ascii-display 221 "'Y") ; Y with acute accent | |
132 | (iso-ascii-display 222 "TH") ; capital thorn, Icelandic | |
133 | (iso-ascii-display 223 "ss") ; small sharp s, German | |
134 | (iso-ascii-display 224 "`a") ; a with grave accent | |
135 | (iso-ascii-display 225 "'a") ; a with acute accent | |
136 | (iso-ascii-display 226 "^a") ; a with circumflex accent | |
137 | (iso-ascii-display 227 "~a") ; a with tilde | |
138 | (iso-ascii-display 228 "\"a") ; a with diaeresis or umlaut mark | |
139 | (iso-ascii-display 229 "aa") ; a with ring | |
140 | (iso-ascii-display 230 "ae") ; ae diphthong | |
141 | (iso-ascii-display 231 ",c") ; c with cedilla | |
142 | (iso-ascii-display 232 "`e") ; e with grave accent | |
143 | (iso-ascii-display 233 "'e") ; e with acute accent | |
144 | (iso-ascii-display 234 "^e") ; e with circumflex accent | |
145 | (iso-ascii-display 235 "\"e") ; e with diaeresis or umlaut mark | |
146 | (iso-ascii-display 236 "`i") ; i with grave accent | |
147 | (iso-ascii-display 237 "'i") ; i with acute accent | |
148 | (iso-ascii-display 238 "^i") ; i with circumflex accent | |
149 | (iso-ascii-display 239 "\"i") ; i with diaeresis or umlaut mark | |
150 | (iso-ascii-display 240 "-d") ; d with stroke, Icelandic eth | |
151 | (iso-ascii-display 241 "~n") ; n with tilde | |
152 | (iso-ascii-display 242 "`o") ; o with grave accent | |
153 | (iso-ascii-display 243 "'o") ; o with acute accent | |
154 | (iso-ascii-display 244 "^o") ; o with circumflex accent | |
155 | (iso-ascii-display 245 "~o") ; o with tilde | |
156 | (iso-ascii-display 246 "\"o") ; o with diaeresis or umlaut mark | |
157 | (iso-ascii-display 247 "/") ; division sign | |
158 | (iso-ascii-display 248 "/o") ; o with slash | |
159 | (iso-ascii-display 249 "`u") ; u with grave accent | |
160 | (iso-ascii-display 250 "'u") ; u with acute accent | |
161 | (iso-ascii-display 251 "^u") ; u with circumflex accent | |
162 | (iso-ascii-display 252 "\"u") ; u with diaeresis or umlaut mark | |
163 | (iso-ascii-display 253 "'y") ; y with acute accent | |
164 | (iso-ascii-display 254 "th") ; small thorn, Icelandic | |
165 | (iso-ascii-display 255 "\"y") ; small y with diaeresis or umlaut mark | |
3b4a6e27 | 166 | |
207d5f17 RS |
167 | (defun iso-ascii-mode (arg) |
168 | "Toggle ISO-ASCII mode." | |
169 | (interactive "P") | |
170 | (unless arg | |
171 | (setq arg (eq standard-display-table iso-ascii-standard-display-table))) | |
172 | (setq standard-display-table | |
173 | (if arg | |
174 | iso-ascii-display-table | |
175 | iso-ascii-standard-display-table))) | |
176 | ||
10d5cec6 | 177 | (provide 'iso-ascii) |
1a06eabd | 178 | |
ab5796a9 | 179 | ;;; arch-tag: 687edf0d-f792-471e-b50e-be805938359a |
1a06eabd | 180 | ;;; iso-ascii.el ends here |