XEmacs 21.2.14.
authortomo <tomo>
Mon, 17 May 1999 09:41:29 +0000 (09:41 +0000)
committertomo <tomo>
Mon, 17 May 1999 09:41:29 +0000 (09:41 +0000)
lisp/iso8859-1.el [new file with mode: 0644]

diff --git a/lisp/iso8859-1.el b/lisp/iso8859-1.el
new file mode 100644 (file)
index 0000000..50bd40a
--- /dev/null
@@ -0,0 +1,206 @@
+;;; iso8859-1.el --- Set case and syntax tables for Latin 1
+
+;; Copyright (C) 1992, 1997 Free Software Foundation, Inc.
+
+;; Author: Jamie Zawinski <jwz@netscape.com>
+;; Created: 19-aug-92
+;; Maintainer: XEmacs Development Team
+;; Keywords: internal, dumped
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Synched up with:  Not synched
+
+;;; Commentary:
+
+;; created by jwz, 19-aug-92.
+;; Sets the case and syntax tables for the ISO-8859/1 character set.
+
+;;; Code:
+
+(let ((table (standard-syntax-table)))
+  ;;
+  ;; The symbol characters
+  ;;
+  (modify-syntax-entry ?\240 "_"     table)   ; nobreakspace
+  (modify-syntax-entry ?\241 "."     table)   ; exclamdown
+  (modify-syntax-entry ?\242 "_"     table)   ; cent
+  (modify-syntax-entry ?\243 "_"     table)   ; sterling
+  (modify-syntax-entry ?\244 "_"     table)   ; currency
+  (modify-syntax-entry ?\245 "_"     table)   ; yen
+  (modify-syntax-entry ?\246 "_"     table)   ; brokenbar
+  (modify-syntax-entry ?\247 "_"     table)   ; section
+  (modify-syntax-entry ?\250 "_"     table)   ; diaeresis
+  (modify-syntax-entry ?\251 "_"     table)   ; copyright
+  (modify-syntax-entry ?\252 "_"     table)   ; ordfeminine
+  (modify-syntax-entry ?\253 "(\273" table)   ; guillemotleft
+  (modify-syntax-entry ?\254 "_"     table)   ; notsign
+  (modify-syntax-entry ?\255 "_"     table)   ; hyphen
+  (modify-syntax-entry ?\256 "_"     table)   ; registered
+  (modify-syntax-entry ?\257 "_"     table)   ; macron
+  (modify-syntax-entry ?\260 "_"     table)   ; degree
+  (modify-syntax-entry ?\261 "_"     table)   ; plusminus
+  (modify-syntax-entry ?\262 "_"     table)   ; twosuperior
+  (modify-syntax-entry ?\263 "_"     table)   ; threesuperior
+  (modify-syntax-entry ?\264 "_"     table)   ; acute
+  (modify-syntax-entry ?\265 "_"     table)   ; mu
+  (modify-syntax-entry ?\266 "_"     table)   ; paragraph
+  (modify-syntax-entry ?\267 "_"     table)   ; periodcentered
+  (modify-syntax-entry ?\270 "_"     table)   ; cedilla
+  (modify-syntax-entry ?\271 "_"     table)   ; onesuperior
+  (modify-syntax-entry ?\272 "_"     table)   ; masculine
+  (modify-syntax-entry ?\273 ")\253" table)   ; guillemotright
+  (modify-syntax-entry ?\274 "_"     table)   ; onequarter
+  (modify-syntax-entry ?\275 "_"     table)   ; onehalf
+  (modify-syntax-entry ?\276 "_"     table)   ; threequarters
+  (modify-syntax-entry ?\277 "_"     table)   ; questiondown
+  ;;
+  ;; the upper-case characters (plus "multiply" and "ssharp") 
+  ;;
+  (modify-syntax-entry ?\300 "w" table)   ; Agrave
+  (modify-syntax-entry ?\301 "w" table)   ; Aacute
+  (modify-syntax-entry ?\302 "w" table)   ; Acircumflex
+  (modify-syntax-entry ?\303 "w" table)   ; Atilde
+  (modify-syntax-entry ?\304 "w" table)   ; Adiaeresis
+  (modify-syntax-entry ?\305 "w" table)   ; Aring
+  (modify-syntax-entry ?\306 "w" table)   ; AE
+  (modify-syntax-entry ?\307 "w" table)   ; Ccedilla
+  (modify-syntax-entry ?\310 "w" table)   ; Egrave
+  (modify-syntax-entry ?\311 "w" table)   ; Eacute
+  (modify-syntax-entry ?\312 "w" table)   ; Ecircumflex
+  (modify-syntax-entry ?\313 "w" table)   ; Ediaeresis
+  (modify-syntax-entry ?\314 "w" table)   ; Igrave
+  (modify-syntax-entry ?\315 "w" table)   ; Iacute
+  (modify-syntax-entry ?\316 "w" table)   ; Icircumflex
+  (modify-syntax-entry ?\317 "w" table)   ; Idiaeresis
+  (modify-syntax-entry ?\320 "w" table)   ; ETH
+  (modify-syntax-entry ?\321 "w" table)   ; Ntilde
+  (modify-syntax-entry ?\322 "w" table)   ; Ograve
+  (modify-syntax-entry ?\323 "w" table)   ; Oacute
+  (modify-syntax-entry ?\324 "w" table)   ; Ocircumflex
+  (modify-syntax-entry ?\325 "w" table)   ; Otilde
+  (modify-syntax-entry ?\326 "w" table)   ; Odiaeresis
+  (modify-syntax-entry ?\327 "_" table)   ; multiply
+  (modify-syntax-entry ?\330 "w" table)   ; Ooblique
+  (modify-syntax-entry ?\331 "w" table)   ; Ugrave
+  (modify-syntax-entry ?\332 "w" table)   ; Uacute
+  (modify-syntax-entry ?\333 "w" table)   ; Ucircumflex
+  (modify-syntax-entry ?\334 "w" table)   ; Udiaeresis
+  (modify-syntax-entry ?\335 "w" table)   ; Yacute
+  (modify-syntax-entry ?\336 "w" table)   ; THORN
+  (modify-syntax-entry ?\337 "w" table)   ; ssharp
+  ;;
+  ;; the lower-case characters (plus "division" and "ydiaeresis")
+  ;;
+  (modify-syntax-entry ?\340 "w" table)   ; agrave
+  (modify-syntax-entry ?\341 "w" table)   ; aacute
+  (modify-syntax-entry ?\342 "w" table)   ; acircumflex
+  (modify-syntax-entry ?\343 "w" table)   ; atilde
+  (modify-syntax-entry ?\344 "w" table)   ; adiaeresis
+  (modify-syntax-entry ?\345 "w" table)   ; aring
+  (modify-syntax-entry ?\346 "w" table)   ; ae
+  (modify-syntax-entry ?\347 "w" table)   ; ccedilla
+  (modify-syntax-entry ?\350 "w" table)   ; egrave
+  (modify-syntax-entry ?\351 "w" table)   ; eacute
+  (modify-syntax-entry ?\352 "w" table)   ; ecircumflex
+  (modify-syntax-entry ?\353 "w" table)   ; ediaeresis
+  (modify-syntax-entry ?\354 "w" table)   ; igrave
+  (modify-syntax-entry ?\355 "w" table)   ; iacute
+  (modify-syntax-entry ?\356 "w" table)   ; icircumflex
+  (modify-syntax-entry ?\357 "w" table)   ; idiaeresis
+  (modify-syntax-entry ?\360 "w" table)   ; eth
+  (modify-syntax-entry ?\361 "w" table)   ; ntilde
+  (modify-syntax-entry ?\362 "w" table)   ; ograve
+  (modify-syntax-entry ?\363 "w" table)   ; oacute
+  (modify-syntax-entry ?\364 "w" table)   ; ocircumflex
+  (modify-syntax-entry ?\365 "w" table)   ; otilde
+  (modify-syntax-entry ?\366 "w" table)   ; odiaeresis
+  (modify-syntax-entry ?\367 "_" table)   ; division
+  (modify-syntax-entry ?\370 "w" table)   ; ooblique
+  (modify-syntax-entry ?\371 "w" table)   ; ugrave
+  (modify-syntax-entry ?\372 "w" table)   ; uacute
+  (modify-syntax-entry ?\373 "w" table)   ; ucircumflex
+  (modify-syntax-entry ?\374 "w" table)   ; udiaeresis
+  (modify-syntax-entry ?\375 "w" table)   ; yacute
+  (modify-syntax-entry ?\376 "w" table)   ; thorn
+  (modify-syntax-entry ?\377 "w" table)   ; ydiaeresis
+  )
+
+\f
+(defconst iso8859/1-case-table nil
+  "The case table for ISO-8859/1 characters.")
+
+;;; This macro expands into
+;;;  (setq iso8859/1-case-table (purecopy '("..." nil nil nil)))
+;;; doing the computation of the case table at compile-time.
+
+((macro
+  . (lambda (&rest pairs)
+      (let ((downcase (make-string 256 0))
+           (i 0))
+       (while (< i 256)
+         (aset downcase i (if (and (>= i ?A) (<= i ?Z)) (+ i 32) i))
+         (setq i (1+ i)))
+       (while pairs
+         (aset downcase (car (car pairs)) (car (cdr (car pairs))))
+         (setq pairs (cdr pairs)))
+       (cons 'setq
+             (cons 'iso8859/1-case-table
+                   (list (list 'purecopy
+                               (list 'quote
+                                     (list downcase nil nil nil)))))))))
+ (?\300  ?\340)                ; Agrave
+ (?\301  ?\341)                ; Aacute
+ (?\302  ?\342)                ; Acircumflex
+ (?\303  ?\343)                ; Atilde
+ (?\304  ?\344)                ; Adiaeresis
+ (?\305  ?\345)                ; Aring
+ (?\306  ?\346)                ; AE
+ (?\307  ?\347)                ; Ccedilla
+ (?\310  ?\350)                ; Egrave
+ (?\311  ?\351)                ; Eacute
+ (?\312  ?\352)                ; Ecircumflex
+ (?\313  ?\353)                ; Ediaeresis
+ (?\314  ?\354)                ; Igrave
+ (?\315  ?\355)                ; Iacute
+ (?\316  ?\356)                ; Icircumflex
+ (?\317  ?\357)                ; Idiaeresis
+ (?\320  ?\360)                ; ETH
+ (?\321  ?\361)                ; Ntilde
+ (?\322  ?\362)                ; Ograve
+ (?\323  ?\363)                ; Oacute
+ (?\324  ?\364)                ; Ocircumflex
+ (?\325  ?\365)                ; Otilde
+ (?\326  ?\366)                ; Odiaeresis
+ (?\330  ?\370)                ; Ooblique
+ (?\331  ?\371)                ; Ugrave
+ (?\332  ?\372)                ; Uacute
+ (?\333  ?\373)                ; Ucircumflex
+ (?\334  ?\374)                ; Udiaeresis
+ (?\335  ?\375)                ; Yacute
+ (?\336  ?\376)                ; THORN
+ )
+
+(set-standard-case-table (mapcar 'copy-sequence iso8859/1-case-table))
+
+(setq-default ctl-arrow 'iso-8859/1)
+
+(provide 'iso8859-1)
+
+;;; iso8859-1.el ends here