Disable "in-tree" builds.
[sxemacs] / lisp / iso8859-1.el
1 ;;; iso8859-1.el --- Set case and syntax tables for Latin 1
2
3 ;; Copyright (C) 1992, 1997 Free Software Foundation, Inc.
4
5 ;; Author: Jamie Zawinski <jwz@jwz.org>
6 ;; Created: 19-aug-92
7 ;; Maintainer: SXEmacs Development Team
8 ;; Keywords: internal, dumped
9
10 ;; This file is part of SXEmacs.
11
12 ;; SXEmacs is free software: you can redistribute it and/or modify
13 ;; it under the terms of the GNU General Public License as published by
14 ;; the Free Software Foundation, either version 3 of the License, or
15 ;; (at your option) any later version.
16
17 ;; SXEmacs 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
23 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
24
25 ;;; Synched up with:  Not synched
26
27 ;;; Commentary:
28
29 ;; created by jwz, 19-aug-92.
30 ;; Sets the case and syntax tables for the ISO-8859/1 character set.
31
32 ;;; Code:
33
34 (let ((table (standard-syntax-table)))
35   ;;
36   ;; The symbol characters
37   ;;
38   (modify-syntax-entry ?\240 "_"     table)   ; nobreakspace
39   (modify-syntax-entry ?\241 "."     table)   ; exclamdown
40   (modify-syntax-entry ?\242 "_"     table)   ; cent
41   (modify-syntax-entry ?\243 "_"     table)   ; sterling
42   (modify-syntax-entry ?\244 "_"     table)   ; currency
43   (modify-syntax-entry ?\245 "_"     table)   ; yen
44   (modify-syntax-entry ?\246 "_"     table)   ; brokenbar
45   (modify-syntax-entry ?\247 "_"     table)   ; section
46   (modify-syntax-entry ?\250 "_"     table)   ; diaeresis
47   (modify-syntax-entry ?\251 "_"     table)   ; copyright
48   (modify-syntax-entry ?\252 "_"     table)   ; ordfeminine
49   (modify-syntax-entry ?\253 "(\273" table)   ; guillemotleft
50   (modify-syntax-entry ?\254 "_"     table)   ; notsign
51   (modify-syntax-entry ?\255 "_"     table)   ; hyphen
52   (modify-syntax-entry ?\256 "_"     table)   ; registered
53   (modify-syntax-entry ?\257 "_"     table)   ; macron
54   (modify-syntax-entry ?\260 "_"     table)   ; degree
55   (modify-syntax-entry ?\261 "_"     table)   ; plusminus
56   (modify-syntax-entry ?\262 "_"     table)   ; twosuperior
57   (modify-syntax-entry ?\263 "_"     table)   ; threesuperior
58   (modify-syntax-entry ?\264 "_"     table)   ; acute
59   (modify-syntax-entry ?\265 "_"     table)   ; mu
60   (modify-syntax-entry ?\266 "_"     table)   ; paragraph
61   (modify-syntax-entry ?\267 "_"     table)   ; periodcentered
62   (modify-syntax-entry ?\270 "_"     table)   ; cedilla
63   (modify-syntax-entry ?\271 "_"     table)   ; onesuperior
64   (modify-syntax-entry ?\272 "_"     table)   ; masculine
65   (modify-syntax-entry ?\273 ")\253" table)   ; guillemotright
66   (modify-syntax-entry ?\274 "_"     table)   ; onequarter
67   (modify-syntax-entry ?\275 "_"     table)   ; onehalf
68   (modify-syntax-entry ?\276 "_"     table)   ; threequarters
69   (modify-syntax-entry ?\277 "_"     table)   ; questiondown
70   ;;
71   ;; the upper-case characters (plus "multiply" and "ssharp")
72   ;;
73   (modify-syntax-entry ?\300 "w" table)   ; Agrave
74   (modify-syntax-entry ?\301 "w" table)   ; Aacute
75   (modify-syntax-entry ?\302 "w" table)   ; Acircumflex
76   (modify-syntax-entry ?\303 "w" table)   ; Atilde
77   (modify-syntax-entry ?\304 "w" table)   ; Adiaeresis
78   (modify-syntax-entry ?\305 "w" table)   ; Aring
79   (modify-syntax-entry ?\306 "w" table)   ; AE
80   (modify-syntax-entry ?\307 "w" table)   ; Ccedilla
81   (modify-syntax-entry ?\310 "w" table)   ; Egrave
82   (modify-syntax-entry ?\311 "w" table)   ; Eacute
83   (modify-syntax-entry ?\312 "w" table)   ; Ecircumflex
84   (modify-syntax-entry ?\313 "w" table)   ; Ediaeresis
85   (modify-syntax-entry ?\314 "w" table)   ; Igrave
86   (modify-syntax-entry ?\315 "w" table)   ; Iacute
87   (modify-syntax-entry ?\316 "w" table)   ; Icircumflex
88   (modify-syntax-entry ?\317 "w" table)   ; Idiaeresis
89   (modify-syntax-entry ?\320 "w" table)   ; ETH
90   (modify-syntax-entry ?\321 "w" table)   ; Ntilde
91   (modify-syntax-entry ?\322 "w" table)   ; Ograve
92   (modify-syntax-entry ?\323 "w" table)   ; Oacute
93   (modify-syntax-entry ?\324 "w" table)   ; Ocircumflex
94   (modify-syntax-entry ?\325 "w" table)   ; Otilde
95   (modify-syntax-entry ?\326 "w" table)   ; Odiaeresis
96   (modify-syntax-entry ?\327 "_" table)   ; multiply
97   (modify-syntax-entry ?\330 "w" table)   ; Ooblique
98   (modify-syntax-entry ?\331 "w" table)   ; Ugrave
99   (modify-syntax-entry ?\332 "w" table)   ; Uacute
100   (modify-syntax-entry ?\333 "w" table)   ; Ucircumflex
101   (modify-syntax-entry ?\334 "w" table)   ; Udiaeresis
102   (modify-syntax-entry ?\335 "w" table)   ; Yacute
103   (modify-syntax-entry ?\336 "w" table)   ; THORN
104   (modify-syntax-entry ?\337 "w" table)   ; ssharp
105   ;;
106   ;; the lower-case characters (plus "division" and "ydiaeresis")
107   ;;
108   (modify-syntax-entry ?\340 "w" table)   ; agrave
109   (modify-syntax-entry ?\341 "w" table)   ; aacute
110   (modify-syntax-entry ?\342 "w" table)   ; acircumflex
111   (modify-syntax-entry ?\343 "w" table)   ; atilde
112   (modify-syntax-entry ?\344 "w" table)   ; adiaeresis
113   (modify-syntax-entry ?\345 "w" table)   ; aring
114   (modify-syntax-entry ?\346 "w" table)   ; ae
115   (modify-syntax-entry ?\347 "w" table)   ; ccedilla
116   (modify-syntax-entry ?\350 "w" table)   ; egrave
117   (modify-syntax-entry ?\351 "w" table)   ; eacute
118   (modify-syntax-entry ?\352 "w" table)   ; ecircumflex
119   (modify-syntax-entry ?\353 "w" table)   ; ediaeresis
120   (modify-syntax-entry ?\354 "w" table)   ; igrave
121   (modify-syntax-entry ?\355 "w" table)   ; iacute
122   (modify-syntax-entry ?\356 "w" table)   ; icircumflex
123   (modify-syntax-entry ?\357 "w" table)   ; idiaeresis
124   (modify-syntax-entry ?\360 "w" table)   ; eth
125   (modify-syntax-entry ?\361 "w" table)   ; ntilde
126   (modify-syntax-entry ?\362 "w" table)   ; ograve
127   (modify-syntax-entry ?\363 "w" table)   ; oacute
128   (modify-syntax-entry ?\364 "w" table)   ; ocircumflex
129   (modify-syntax-entry ?\365 "w" table)   ; otilde
130   (modify-syntax-entry ?\366 "w" table)   ; odiaeresis
131   (modify-syntax-entry ?\367 "_" table)   ; division
132   (modify-syntax-entry ?\370 "w" table)   ; ooblique
133   (modify-syntax-entry ?\371 "w" table)   ; ugrave
134   (modify-syntax-entry ?\372 "w" table)   ; uacute
135   (modify-syntax-entry ?\373 "w" table)   ; ucircumflex
136   (modify-syntax-entry ?\374 "w" table)   ; udiaeresis
137   (modify-syntax-entry ?\375 "w" table)   ; yacute
138   (modify-syntax-entry ?\376 "w" table)   ; thorn
139   (modify-syntax-entry ?\377 "w" table)   ; ydiaeresis
140   )
141
142 \f
143 (defconst iso8859/1-case-table nil
144   "The case table for ISO-8859/1 characters.")
145
146 ;;; This macro expands into
147 ;;;  (setq iso8859/1-case-table (purecopy '("..." nil nil nil)))
148 ;;; doing the computation of the case table at compile-time.
149
150 ((macro
151   . (lambda (&rest pairs)
152       (let ((downcase (make-string 256 0))
153             (i 0))
154         (while (< i 256)
155           (aset downcase i (if (and (>= i ?A) (<= i ?Z)) (+ i 32) i))
156           (setq i (1+ i)))
157         (while pairs
158           (aset downcase (car (car pairs)) (car (cdr (car pairs))))
159           (setq pairs (cdr pairs)))
160         (cons 'setq
161               (cons 'iso8859/1-case-table
162                     (list
163                      (list 'quote
164                            (list downcase nil nil nil))))))))
165
166  (?\300  ?\340)         ; Agrave
167  (?\301  ?\341)         ; Aacute
168  (?\302  ?\342)         ; Acircumflex
169  (?\303  ?\343)         ; Atilde
170  (?\304  ?\344)         ; Adiaeresis
171  (?\305  ?\345)         ; Aring
172  (?\306  ?\346)         ; AE
173  (?\307  ?\347)         ; Ccedilla
174  (?\310  ?\350)         ; Egrave
175  (?\311  ?\351)         ; Eacute
176  (?\312  ?\352)         ; Ecircumflex
177  (?\313  ?\353)         ; Ediaeresis
178  (?\314  ?\354)         ; Igrave
179  (?\315  ?\355)         ; Iacute
180  (?\316  ?\356)         ; Icircumflex
181  (?\317  ?\357)         ; Idiaeresis
182  (?\320  ?\360)         ; ETH
183  (?\321  ?\361)         ; Ntilde
184  (?\322  ?\362)         ; Ograve
185  (?\323  ?\363)         ; Oacute
186  (?\324  ?\364)         ; Ocircumflex
187  (?\325  ?\365)         ; Otilde
188  (?\326  ?\366)         ; Odiaeresis
189  (?\330  ?\370)         ; Ooblique
190  (?\331  ?\371)         ; Ugrave
191  (?\332  ?\372)         ; Uacute
192  (?\333  ?\373)         ; Ucircumflex
193  (?\334  ?\374)         ; Udiaeresis
194  (?\335  ?\375)         ; Yacute
195  (?\336  ?\376)         ; THORN
196  )
197
198 (set-standard-case-table (mapcar 'copy-sequence iso8859/1-case-table))
199
200 (setq-default ctl-arrow 'iso-8859/1)
201
202 (provide 'iso8859-1)
203
204 ;;; iso8859-1.el ends here