Initial revision

This commit is contained in:
Jim Blandy 1992-03-16 20:39:05 +00:00
parent 71e40adf62
commit 3b4a6e271d
7 changed files with 4112 additions and 0 deletions

2979
lisp/emerge.el Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,126 @@
;; Set up char tables for ISO 8859/1 character set for ASCII terminals.
;; Copyright (C) 1987 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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 1, or (at your option)
;; any later version.
;; GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
;; Written by Howard Gayle. See display-table.el for details.
;; This code sets up to display ISO 8859/1 characters on plain
;; ASCII terminals. The display strings for the characters are
;; more-or-less based on TeX.
(require 'disp-table)
(standard-display-ascii 160 "{_}") ; NBSP (no-break space)
(standard-display-ascii 161 "{!}") ; inverted exclamation mark
(standard-display-ascii 162 "{c}") ; cent sign
(standard-display-ascii 163 "{GBP}") ; pound sign
(standard-display-ascii 164 "{$}") ; general currency sign
(standard-display-ascii 165 "{JPY}") ; yen sign
(standard-display-ascii 166 "{|}") ; broken vertical line
(standard-display-ascii 167 "{S}") ; section sign
(standard-display-ascii 168 "{\"}") ; diaeresis
(standard-display-ascii 169 "{C}") ; copyright sign
(standard-display-ascii 170 "{_a}") ; ordinal indicator, feminine
(standard-display-ascii 171 "{<<}") ; left angle quotation mark
(standard-display-ascii 172 "{~}") ; not sign
(standard-display-ascii 173 "{-}") ; soft hyphen
(standard-display-ascii 174 "{R}") ; registered sign
(standard-display-ascii 175 "{=}") ; macron
(standard-display-ascii 176 "{o}") ; degree sign
(standard-display-ascii 177 "{+-}") ; plus or minus sign
(standard-display-ascii 178 "{2}") ; superscript two
(standard-display-ascii 179 "{3}") ; superscript three
(standard-display-ascii 180 "{'}") ; acute accent
(standard-display-ascii 181 "{u}") ; micro sign
(standard-display-ascii 182 "{P}") ; pilcrow
(standard-display-ascii 183 "{.}") ; middle dot
(standard-display-ascii 184 "{,}") ; cedilla
(standard-display-ascii 185 "{1}") ; superscript one
(standard-display-ascii 186 "{_o}") ; ordinal indicator, masculine
(standard-display-ascii 187 "{>>}") ; right angle quotation mark
(standard-display-ascii 188 "{1/4}") ; fraction one-quarter
(standard-display-ascii 189 "{1/2}") ; fraction one-half
(standard-display-ascii 190 "{3/4}") ; fraction three-quarters
(standard-display-ascii 191 "{?}") ; inverted question mark
(standard-display-ascii 192 "{`A}") ; A with grave accent
(standard-display-ascii 193 "{'A}") ; A with acute accent
(standard-display-ascii 194 "{^A}") ; A with circumflex accent
(standard-display-ascii 195 "{~A}") ; A with tilde
(standard-display-ascii 196 "{\"A}") ; A with diaeresis or umlaut mark
(standard-display-ascii 197 "{AA}") ; A with ring
(standard-display-ascii 198 "{AE}") ; AE diphthong
(standard-display-ascii 199 "{,C}") ; C with cedilla
(standard-display-ascii 200 "{`E}") ; E with grave accent
(standard-display-ascii 201 "{'E}") ; E with acute accent
(standard-display-ascii 202 "{^E}") ; E with circumflex accent
(standard-display-ascii 203 "{\"E}") ; E with diaeresis or umlaut mark
(standard-display-ascii 204 "{`I}") ; I with grave accent
(standard-display-ascii 205 "{'I}") ; I with acute accent
(standard-display-ascii 206 "{^I}") ; I with circumflex accent
(standard-display-ascii 207 "{\"I}") ; I with diaeresis or umlaut mark
(standard-display-ascii 208 "{-D}") ; D with stroke, Icelandic eth
(standard-display-ascii 209 "{~N}") ; N with tilde
(standard-display-ascii 210 "{`O}") ; O with grave accent
(standard-display-ascii 211 "{'O}") ; O with acute accent
(standard-display-ascii 212 "{^O}") ; O with circumflex accent
(standard-display-ascii 213 "{~O}") ; O with tilde
(standard-display-ascii 214 "{\"O}") ; O with diaeresis or umlaut mark
(standard-display-ascii 215 "{x}") ; multiplication sign
(standard-display-ascii 216 "{/O}") ; O with slash
(standard-display-ascii 217 "{`U}") ; U with grave accent
(standard-display-ascii 218 "{'U}") ; U with acute accent
(standard-display-ascii 219 "{^U}") ; U with circumflex accent
(standard-display-ascii 220 "{\"U}") ; U with diaeresis or umlaut mark
(standard-display-ascii 221 "{'Y}") ; Y with acute accent
(standard-display-ascii 222 "{TH}") ; capital thorn, Icelandic
(standard-display-ascii 223 "{ss}") ; small sharp s, German
(standard-display-ascii 224 "{`a}") ; a with grave accent
(standard-display-ascii 225 "{'a}") ; a with acute accent
(standard-display-ascii 226 "{^a}") ; a with circumflex accent
(standard-display-ascii 227 "{~a}") ; a with tilde
(standard-display-ascii 228 "{\"a}") ; a with diaeresis or umlaut mark
(standard-display-ascii 229 "{aa}") ; a with ring
(standard-display-ascii 230 "{ae}") ; ae diphthong
(standard-display-ascii 231 "{,c}") ; c with cedilla
(standard-display-ascii 232 "{`e}") ; e with grave accent
(standard-display-ascii 233 "{'e}") ; e with acute accent
(standard-display-ascii 234 "{^e}") ; e with circumflex accent
(standard-display-ascii 235 "{\"e}") ; e with diaeresis or umlaut mark
(standard-display-ascii 236 "{`i}") ; i with grave accent
(standard-display-ascii 237 "{'i}") ; i with acute accent
(standard-display-ascii 238 "{^i}") ; i with circumflex accent
(standard-display-ascii 239 "{\"i}") ; i with diaeresis or umlaut mark
(standard-display-ascii 240 "{-d}") ; d with stroke, Icelandic eth
(standard-display-ascii 241 "{~n}") ; n with tilde
(standard-display-ascii 242 "{`o}") ; o with grave accent
(standard-display-ascii 243 "{'o}") ; o with acute accent
(standard-display-ascii 244 "{^o}") ; o with circumflex accent
(standard-display-ascii 245 "{~o}") ; o with tilde
(standard-display-ascii 246 "{\"o}") ; o with diaeresis or umlaut mark
(standard-display-ascii 247 "{/}") ; division sign
(standard-display-ascii 248 "{/o}") ; o with slash
(standard-display-ascii 249 "{`u}") ; u with grave accent
(standard-display-ascii 250 "{'u}") ; u with acute accent
(standard-display-ascii 251 "{^u}") ; u with circumflex accent
(standard-display-ascii 252 "{\"u}") ; u with diaeresis or umlaut mark
(standard-display-ascii 253 "{'y}") ; y with acute accent
(standard-display-ascii 254 "{th}") ; small thorn, Icelandic
(standard-display-ascii 255 "{\"y}") ; small y with diaeresis or umlaut mark
(provide 'iso8859-1-ascii)

View file

@ -0,0 +1,620 @@
;; Insert functions for ISO 8859/1.
;; Copyright (C) 1987 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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 1, or (at your option)
;; any later version.
;; GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
;; Written by Howard Gayle. See case-table.el for details.
(defun insert-no-break-space ()
(interactive "*")
(insert 160)
)
(defun insert-inverted-exclamation-mark ()
(interactive "*")
(insert 161)
)
(defun insert-cent-sign ()
(interactive "*")
(insert 162)
)
(defun insert-pound-sign ()
(interactive "*")
(insert 163)
)
(defun insert-general-currency-sign ()
(interactive "*")
(insert 164)
)
(defun insert-yen-sign ()
(interactive "*")
(insert 165)
)
(defun insert-broken-vertical-line ()
(interactive "*")
(insert 166)
)
(defun insert-section-sign ()
(interactive "*")
(insert 167)
)
(defun insert-diaeresis ()
(interactive "*")
(insert 168)
)
(defun insert-copyright-sign ()
(interactive "*")
(insert 169)
)
(defun insert-ordinal-indicator-feminine ()
(interactive "*")
(insert 170)
)
(defun insert-angle-quotation-mark-left ()
(interactive "*")
(insert 171)
)
(defun insert-not-sign ()
(interactive "*")
(insert 172)
)
(defun insert-soft-hyphen ()
(interactive "*")
(insert 173)
)
(defun insert-registered-sign ()
(interactive "*")
(insert 174)
)
(defun insert-macron ()
(interactive "*")
(insert 175)
)
(defun insert-degree-sign ()
(interactive "*")
(insert 176)
)
(defun insert-plus-or-minus-sign ()
(interactive "*")
(insert 177)
)
(defun insert-superscript-two ()
(interactive "*")
(insert 178)
)
(defun insert-superscript-three ()
(interactive "*")
(insert 179)
)
(defun insert-acute-accent ()
(interactive "*")
(insert 180)
)
(defun insert-micro-sign ()
(interactive "*")
(insert 181)
)
(defun insert-pilcrow ()
(interactive "*")
(insert 182)
)
(defun insert-middle-dot ()
(interactive "*")
(insert 183)
)
(defun insert-cedilla ()
(interactive "*")
(insert 184)
)
(defun insert-superscript-one ()
(interactive "*")
(insert 185)
)
(defun insert-ordinal-indicator-masculine ()
(interactive "*")
(insert 186)
)
(defun insert-angle-quotation-mark-right ()
(interactive "*")
(insert 187)
)
(defun insert-fraction-one-quarter ()
(interactive "*")
(insert 188)
)
(defun insert-fraction-one-half ()
(interactive "*")
(insert 189)
)
(defun insert-fraction-three-quarters ()
(interactive "*")
(insert 190)
)
(defun insert-inverted-question-mark ()
(interactive "*")
(insert 191)
)
(defun insert-A-grave ()
(interactive "*")
(insert 192)
)
(defun insert-A-acute ()
(interactive "*")
(insert 193)
)
(defun insert-A-circumflex ()
(interactive "*")
(insert 194)
)
(defun insert-A-tilde ()
(interactive "*")
(insert 195)
)
(defun insert-A-umlaut ()
(interactive "*")
(insert 196)
)
(defun insert-A-ring ()
(interactive "*")
(insert 197)
)
(defun insert-AE ()
(interactive "*")
(insert 198)
)
(defun insert-C-cedilla ()
(interactive "*")
(insert 199)
)
(defun insert-E-grave ()
(interactive "*")
(insert 200)
)
(defun insert-E-acute ()
(interactive "*")
(insert 201)
)
(defun insert-E-circumflex ()
(interactive "*")
(insert 202)
)
(defun insert-E-umlaut ()
(interactive "*")
(insert 203)
)
(defun insert-I-grave ()
(interactive "*")
(insert 204)
)
(defun insert-I-acute ()
(interactive "*")
(insert 205)
)
(defun insert-I-circumflex ()
(interactive "*")
(insert 206)
)
(defun insert-I-umlaut ()
(interactive "*")
(insert 207)
)
(defun insert-D-stroke ()
(interactive "*")
(insert 208)
)
(defun insert-N-tilde ()
(interactive "*")
(insert 209)
)
(defun insert-O-grave ()
(interactive "*")
(insert 210)
)
(defun insert-O-acute ()
(interactive "*")
(insert 211)
)
(defun insert-O-circumflex ()
(interactive "*")
(insert 212)
)
(defun insert-O-tilde ()
(interactive "*")
(insert 213)
)
(defun insert-O-umlaut ()
(interactive "*")
(insert 214)
)
(defun insert-multiplication-sign ()
(interactive "*")
(insert 215)
)
(defun insert-O-slash ()
(interactive "*")
(insert 216)
)
(defun insert-U-grave ()
(interactive "*")
(insert 217)
)
(defun insert-U-acute ()
(interactive "*")
(insert 218)
)
(defun insert-U-circumflex ()
(interactive "*")
(insert 219)
)
(defun insert-U-umlaut ()
(interactive "*")
(insert 220)
)
(defun insert-Y-acute ()
(interactive "*")
(insert 221)
)
(defun insert-THORN ()
(interactive "*")
(insert 222)
)
(defun insert-ss ()
(interactive "*")
(insert 223)
)
(defun insert-a-grave ()
(interactive "*")
(insert 224)
)
(defun insert-a-acute ()
(interactive "*")
(insert 225)
)
(defun insert-a-circumflex ()
(interactive "*")
(insert 226)
)
(defun insert-a-tilde ()
(interactive "*")
(insert 227)
)
(defun insert-a-umlaut ()
(interactive "*")
(insert 228)
)
(defun insert-a-ring ()
(interactive "*")
(insert 229)
)
(defun insert-ae ()
(interactive "*")
(insert 230)
)
(defun insert-c-cedilla ()
(interactive "*")
(insert 231)
)
(defun insert-e-grave ()
(interactive "*")
(insert 232)
)
(defun insert-e-acute ()
(interactive "*")
(insert 233)
)
(defun insert-e-circumflex ()
(interactive "*")
(insert 234)
)
(defun insert-e-umlaut ()
(interactive "*")
(insert 235)
)
(defun insert-i-grave ()
(interactive "*")
(insert 236)
)
(defun insert-i-acute ()
(interactive "*")
(insert 237)
)
(defun insert-i-circumflex ()
(interactive "*")
(insert 238)
)
(defun insert-i-umlaut ()
(interactive "*")
(insert 239)
)
(defun insert-d-stroke ()
(interactive "*")
(insert 240)
)
(defun insert-n-tilde ()
(interactive "*")
(insert 241)
)
(defun insert-o-grave ()
(interactive "*")
(insert 242)
)
(defun insert-o-acute ()
(interactive "*")
(insert 243)
)
(defun insert-o-circumflex ()
(interactive "*")
(insert 244)
)
(defun insert-o-tilde ()
(interactive "*")
(insert 245)
)
(defun insert-o-umlaut ()
(interactive "*")
(insert 246)
)
(defun insert-division-sign ()
(interactive "*")
(insert 247)
)
(defun insert-o-slash ()
(interactive "*")
(insert 248)
)
(defun insert-u-grave ()
(interactive "*")
(insert 249)
)
(defun insert-u-acute ()
(interactive "*")
(insert 250)
)
(defun insert-u-circumflex ()
(interactive "*")
(insert 251)
)
(defun insert-u-umlaut ()
(interactive "*")
(insert 252)
)
(defun insert-y-acute ()
(interactive "*")
(insert 253)
)
(defun insert-thorn ()
(interactive "*")
(insert 254)
)
(defun insert-y-umlaut ()
(interactive "*")
(insert 255)
)
(defvar 8859-1-map nil "Keymap for ISO 8859/1 character insertion.")
(if 8859-1-map nil
(setq 8859-1-map (make-keymap))
(define-key 8859-1-map " " 'insert-no-break-space)
(define-key 8859-1-map "!" 'insert-inverted-exclamation-mark)
(define-key 8859-1-map "\"" (make-sparse-keymap))
(define-key 8859-1-map "\"\"" 'insert-diaeresis)
(define-key 8859-1-map "\"A" 'insert-A-umlaut)
(define-key 8859-1-map "\"E" 'insert-E-umlaut)
(define-key 8859-1-map "\"I" 'insert-I-umlaut)
(define-key 8859-1-map "\"O" 'insert-O-umlaut)
(define-key 8859-1-map "\"U" 'insert-U-umlaut)
(define-key 8859-1-map "\"a" 'insert-a-umlaut)
(define-key 8859-1-map "\"e" 'insert-e-umlaut)
(define-key 8859-1-map "\"i" 'insert-i-umlaut)
(define-key 8859-1-map "\"o" 'insert-o-umlaut)
(define-key 8859-1-map "\"u" 'insert-u-umlaut)
(define-key 8859-1-map "\"y" 'insert-y-umlaut)
(define-key 8859-1-map "'" (make-sparse-keymap))
(define-key 8859-1-map "''" 'insert-acute-accent)
(define-key 8859-1-map "'A" 'insert-A-acute)
(define-key 8859-1-map "'E" 'insert-E-acute)
(define-key 8859-1-map "'I" 'insert-I-acute)
(define-key 8859-1-map "'O" 'insert-O-acute)
(define-key 8859-1-map "'U" 'insert-U-acute)
(define-key 8859-1-map "'Y" 'insert-Y-acute)
(define-key 8859-1-map "'a" 'insert-a-acute)
(define-key 8859-1-map "'e" 'insert-e-acute)
(define-key 8859-1-map "'i" 'insert-i-acute)
(define-key 8859-1-map "'o" 'insert-o-acute)
(define-key 8859-1-map "'u" 'insert-u-acute)
(define-key 8859-1-map "'y" 'insert-y-acute)
(define-key 8859-1-map "$" 'insert-general-currency-sign)
(define-key 8859-1-map "+" 'insert-plus-or-minus-sign)
(define-key 8859-1-map "," (make-sparse-keymap))
(define-key 8859-1-map ",," 'insert-cedilla)
(define-key 8859-1-map ",C" 'insert-C-cedilla)
(define-key 8859-1-map ",c" 'insert-c-cedilla)
(define-key 8859-1-map "-" 'insert-soft-hyphen)
(define-key 8859-1-map "." 'insert-middle-dot)
(define-key 8859-1-map "/" (make-sparse-keymap))
(define-key 8859-1-map "//" 'insert-division-sign)
(define-key 8859-1-map "/O" 'insert-O-slash)
(define-key 8859-1-map "/o" 'insert-o-slash)
(define-key 8859-1-map "1" (make-sparse-keymap))
(define-key 8859-1-map "1/" (make-sparse-keymap))
(define-key 8859-1-map "1/2" 'insert-fraction-one-half)
(define-key 8859-1-map "1/4" 'insert-fraction-one-quarter)
(define-key 8859-1-map "3" (make-sparse-keymap))
(define-key 8859-1-map "3/" (make-sparse-keymap))
(define-key 8859-1-map "3/4" 'insert-fraction-three-quarters)
(define-key 8859-1-map "<" 'insert-angle-quotation-mark-left)
(define-key 8859-1-map "=" 'insert-macron)
(define-key 8859-1-map ">" 'insert-angle-quotation-mark-right)
(define-key 8859-1-map "?" 'insert-inverted-question-mark)
(define-key 8859-1-map "A" (make-sparse-keymap))
(define-key 8859-1-map "AA" 'insert-A-ring)
(define-key 8859-1-map "AE" 'insert-AE)
(define-key 8859-1-map "C" 'insert-copyright-sign)
(define-key 8859-1-map "D" 'insert-D-stroke)
(define-key 8859-1-map "L" 'insert-pound-sign)
(define-key 8859-1-map "P" 'insert-pilcrow)
(define-key 8859-1-map "R" 'insert-registered-sign)
(define-key 8859-1-map "S" 'insert-section-sign)
(define-key 8859-1-map "T" 'insert-THORN)
(define-key 8859-1-map "Y" 'insert-yen-sign)
(define-key 8859-1-map "^" (make-sparse-keymap))
(define-key 8859-1-map "^1" 'insert-superscript-one)
(define-key 8859-1-map "^2" 'insert-superscript-two)
(define-key 8859-1-map "^3" 'insert-superscript-three)
(define-key 8859-1-map "^A" 'insert-A-circumflex)
(define-key 8859-1-map "^E" 'insert-E-circumflex)
(define-key 8859-1-map "^I" 'insert-I-circumflex)
(define-key 8859-1-map "^O" 'insert-O-circumflex)
(define-key 8859-1-map "^U" 'insert-U-circumflex)
(define-key 8859-1-map "^a" 'insert-a-circumflex)
(define-key 8859-1-map "^e" 'insert-e-circumflex)
(define-key 8859-1-map "^i" 'insert-i-circumflex)
(define-key 8859-1-map "^o" 'insert-o-circumflex)
(define-key 8859-1-map "^u" 'insert-u-circumflex)
(define-key 8859-1-map "_" (make-sparse-keymap))
(define-key 8859-1-map "_a" 'insert-ordinal-indicator-feminine)
(define-key 8859-1-map "_o" 'insert-ordinal-indicator-masculine)
(define-key 8859-1-map "`" (make-sparse-keymap))
(define-key 8859-1-map "`A" 'insert-A-grave)
(define-key 8859-1-map "`E" 'insert-E-grave)
(define-key 8859-1-map "`I" 'insert-I-grave)
(define-key 8859-1-map "`O" 'insert-O-grave)
(define-key 8859-1-map "`U" 'insert-U-grave)
(define-key 8859-1-map "`a" 'insert-a-grave)
(define-key 8859-1-map "`e" 'insert-e-grave)
(define-key 8859-1-map "`i" 'insert-i-grave)
(define-key 8859-1-map "`o" 'insert-o-grave)
(define-key 8859-1-map "`u" 'insert-u-grave)
(define-key 8859-1-map "a" (make-sparse-keymap))
(define-key 8859-1-map "aa" 'insert-a-ring)
(define-key 8859-1-map "ae" 'insert-ae)
(define-key 8859-1-map "c" 'insert-cent-sign)
(define-key 8859-1-map "d" 'insert-d-stroke)
(define-key 8859-1-map "o" 'insert-degree-sign)
(define-key 8859-1-map "s" 'insert-ss)
(define-key 8859-1-map "t" 'insert-thorn)
(define-key 8859-1-map "u" 'insert-micro-sign)
(define-key 8859-1-map "x" 'insert-multiplication-sign)
(define-key 8859-1-map "|" 'insert-broken-vertical-line)
(define-key 8859-1-map "~" (make-sparse-keymap))
(define-key 8859-1-map "~A" 'insert-A-tilde)
(define-key 8859-1-map "~N" 'insert-N-tilde)
(define-key 8859-1-map "~O" 'insert-O-tilde)
(define-key 8859-1-map "~a" 'insert-a-tilde)
(define-key 8859-1-map "~n" 'insert-n-tilde)
(define-key 8859-1-map "~o" 'insert-o-tilde)
(define-key 8859-1-map "~~" 'insert-not-sign)
(if (not (lookup-key global-map "\C-x8"))
(define-key global-map "\C-x8" 8859-1-map))
)
(provide 'iso8859-1-insert)

View file

@ -0,0 +1,140 @@
;; Set up char tables for ISO 8859/1 for Swedish/Finnish terminals.
;; Copyright (C) 1987 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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 1, or (at your option)
;; any later version.
;; GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
;; Written by Howard Gayle. See case-table.el for details.
;; This code sets up to display ISO 8859/1 characters on
;; terminals that have ASCII in the G0 set and a Swedish/Finnish
;; version of ISO 646 in the G1 set. The G1 set differs from
;; ASCII as follows:
;;
;; ASCII G1
;; $ general currency sign
;; @ capital E with acute accent
;; [ capital A with diaeresis or umlaut mark
;; \ capital O with diaeresis or umlaut mark
;; ] capital A with ring
;; ^ capital U with diaeresis or umlaut mark
;; ` small e with acute accent
;; { small a with diaeresis or umlaut mark
;; | small o with diaeresis or umlaut mark
;; } small a with ring
;; ~ small u with diaeresis or umlaut mark
(require 'disp-table)
(standard-display-ascii 160 "{_}") ; NBSP (no-break space)
(standard-display-ascii 161 "{!}") ; inverted exclamation mark
(standard-display-ascii 162 "{c}") ; cent sign
(standard-display-ascii 163 "{GBP}") ; pound sign
(standard-display-g1 164 ?$) ; general currency sign
(standard-display-ascii 165 "{JPY}") ; yen sign
(standard-display-ascii 166 "{|}") ; broken vertical line
(standard-display-ascii 167 "{S}") ; section sign
(standard-display-ascii 168 "{\"}") ; diaeresis
(standard-display-ascii 169 "{C}") ; copyright sign
(standard-display-ascii 170 "{_a}") ; ordinal indicator, feminine
(standard-display-ascii 171 "{<<}") ; left angle quotation mark
(standard-display-ascii 172 "{~}") ; not sign
(standard-display-ascii 173 "{-}") ; soft hyphen
(standard-display-ascii 174 "{R}") ; registered sign
(standard-display-ascii 175 "{=}") ; macron
(standard-display-ascii 176 "{o}") ; degree sign
(standard-display-ascii 177 "{+-}") ; plus or minus sign
(standard-display-ascii 178 "{2}") ; superscript two
(standard-display-ascii 179 "{3}") ; superscript three
(standard-display-ascii 180 "{'}") ; acute accent
(standard-display-ascii 181 "{u}") ; micro sign
(standard-display-ascii 182 "{P}") ; pilcrow
(standard-display-ascii 183 "{.}") ; middle dot
(standard-display-ascii 184 "{,}") ; cedilla
(standard-display-ascii 185 "{1}") ; superscript one
(standard-display-ascii 186 "{_o}") ; ordinal indicator, masculine
(standard-display-ascii 187 "{>>}") ; right angle quotation mark
(standard-display-ascii 188 "{1/4}") ; fraction one-quarter
(standard-display-ascii 189 "{1/2}") ; fraction one-half
(standard-display-ascii 190 "{3/4}") ; fraction three-quarters
(standard-display-ascii 191 "{?}") ; inverted question mark
(standard-display-ascii 192 "{`A}") ; A with grave accent
(standard-display-ascii 193 "{'A}") ; A with acute accent
(standard-display-ascii 194 "{^A}") ; A with circumflex accent
(standard-display-ascii 195 "{~A}") ; A with tilde
(standard-display-g1 196 ?[) ; A with diaeresis or umlaut mark
(standard-display-g1 197 ?]) ; A with ring
(standard-display-ascii 198 "{AE}") ; AE diphthong
(standard-display-ascii 199 "{,C}") ; C with cedilla
(standard-display-ascii 200 "{`E}") ; E with grave accent
(standard-display-g1 201 ?@) ; E with acute accent
(standard-display-ascii 202 "{^E}") ; E with circumflex accent
(standard-display-ascii 203 "{\"E}") ; E with diaeresis or umlaut mark
(standard-display-ascii 204 "{`I}") ; I with grave accent
(standard-display-ascii 205 "{'I}") ; I with acute accent
(standard-display-ascii 206 "{^I}") ; I with circumflex accent
(standard-display-ascii 207 "{\"I}") ; I with diaeresis or umlaut mark
(standard-display-ascii 208 "{-D}") ; D with stroke, Icelandic eth
(standard-display-ascii 209 "{~N}") ; N with tilde
(standard-display-ascii 210 "{`O}") ; O with grave accent
(standard-display-ascii 211 "{'O}") ; O with acute accent
(standard-display-ascii 212 "{^O}") ; O with circumflex accent
(standard-display-ascii 213 "{~O}") ; O with tilde
(standard-display-g1 214 ?\\) ; O with diaeresis or umlaut mark
(standard-display-ascii 215 "{x}") ; multiplication sign
(standard-display-ascii 216 "{/O}") ; O with slash
(standard-display-ascii 217 "{`U}") ; U with grave accent
(standard-display-ascii 218 "{'U}") ; U with acute accent
(standard-display-ascii 219 "{^U}") ; U with circumflex accent
(standard-display-g1 220 ?^) ; U with diaeresis or umlaut mark
(standard-display-ascii 221 "{'Y}") ; Y with acute accent
(standard-display-ascii 222 "{TH}") ; capital thorn, Icelandic
(standard-display-ascii 223 "{ss}") ; small sharp s, German
(standard-display-ascii 224 "{`a}") ; a with grave accent
(standard-display-ascii 225 "{'a}") ; a with acute accent
(standard-display-ascii 226 "{^a}") ; a with circumflex accent
(standard-display-ascii 227 "{~a}") ; a with tilde
(standard-display-g1 228 ?{) ; a with diaeresis or umlaut mark
(standard-display-g1 229 ?}) ; a with ring
(standard-display-ascii 230 "{ae}") ; ae diphthong
(standard-display-ascii 231 "{,c}") ; c with cedilla
(standard-display-ascii 232 "{`e}") ; e with grave accent
(standard-display-g1 233 ?`) ; e with acute accent
(standard-display-ascii 234 "{^e}") ; e with circumflex accent
(standard-display-ascii 235 "{\"e}") ; e with diaeresis or umlaut mark
(standard-display-ascii 236 "{`i}") ; i with grave accent
(standard-display-ascii 237 "{'i}") ; i with acute accent
(standard-display-ascii 238 "{^i}") ; i with circumflex accent
(standard-display-ascii 239 "{\"i}") ; i with diaeresis or umlaut mark
(standard-display-ascii 240 "{-d}") ; d with stroke, Icelandic eth
(standard-display-ascii 241 "{~n}") ; n with tilde
(standard-display-ascii 242 "{`o}") ; o with grave accent
(standard-display-ascii 243 "{'o}") ; o with acute accent
(standard-display-ascii 244 "{^o}") ; o with circumflex accent
(standard-display-ascii 245 "{~o}") ; o with tilde
(standard-display-g1 246 ?|) ; o with diaeresis or umlaut mark
(standard-display-ascii 247 "{/}") ; division sign
(standard-display-ascii 248 "{/o}") ; o with slash
(standard-display-ascii 249 "{`u}") ; u with grave accent
(standard-display-ascii 250 "{'u}") ; u with acute accent
(standard-display-ascii 251 "{^u}") ; u with circumflex accent
(standard-display-g1 252 ?~) ; u with diaeresis or umlaut mark
(standard-display-ascii 253 "{'y}") ; y with acute accent
(standard-display-ascii 254 "{th}") ; small thorn, Icelandic
(standard-display-ascii 255 "{\"y}") ; small y with diaeresis or umlaut mark
(provide 'iso8859-1-swedish)

View file

@ -0,0 +1,145 @@
;; Miscellaneous functions for dealing with Swedish.
;; Copyright (C) 1988 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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 1, or (at your option)
;; any later version.
;; GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
;; Written by Howard Gayle. See case-table.el for details.
;; See iso-swed.el for a description of the character set.
(require 'iso-syntax)
(defvar swedish-re
"[ \t\n]\\(och\\|att\\|en\\|{r\\|\\[R\\|p}\\|P\\]\\|som\\|det\\|av\\|den\\|f|r\\|F\\\\R\\)[ \t\n.,?!:;'\")}]"
"Regular expression for common Swedish words.")
(defvar swascii-to-8859-trans
(let ((string (make-string 256 ? ))
(i 0))
(while (< i 256)
(aset string i i)
(setq i (1+ i)))
(aset string ?\[ 196)
(aset string ?\] 197)
(aset string ?\\ 214)
(aset string ?^ 220)
(aset string ?\{ 228)
(aset string ?\} 229)
(aset string ?\` 233)
(aset string ?\| 246)
(aset string ?~ 252)
string)
"Trans table from SWASCII to 8859.")
; $ is not converted because it almost always means US
; dollars, not general currency sign. @ is not converted
; because it is more likely to be an at sign in a mail address
; than an E with acute accent.
(defun swascii-to-8859-buffer ()
"Convert characters in buffer from Swedish/Finnish-ascii to ISO 8859/1.
Works even on read-only buffers. `$' and `@' are not converted."
(interactive)
(let ((buffer-read-only nil))
(translate-region (point-min) (point-max) swascii-to-8859-trans)))
(defun swascii-to-8859-buffer-maybe ()
"Call swascii-to-8859-buffer if the buffer looks like Swedish-ascii.
Leaves point just after the word that looks Swedish."
(interactive)
(let ((case-fold-search t))
(if (re-search-forward swedish-re nil t)
(swascii-to-8859-buffer))))
(setq rmail-show-message-hook 'swascii-to-8859-buffer-maybe)
(or (boundp 'news-group-hook-alist) (setq news-group-hook-alist nil))
(setq news-group-hook-alist
(append '(("^swnet." . swascii-to-8859-buffer-maybe))
news-group-hook-alist))
(defvar 8859-to-swascii-trans
(let ((string (make-string 256 ? ))
(i 0))
(while (< i 256)
(aset string i i)
(setq i (1+ i)))
(aset string 164 ?$)
(aset string 196 ?\[)
(aset string 197 ?\])
(aset string 201 ?@)
(aset string 214 ?\\)
(aset string 220 ?^)
(aset string 228 ?\{)
(aset string 229 ?\})
(aset string 233 ?\`)
(aset string 246 ?\|)
(aset string 252 ?~)
string)
"8859 to SWASCII trans table.")
(defun 8859-to-swascii-buffer ()
"Convert characters in buffer from ISO 8859/1 to Swedish/Finnish-ascii."
(interactive "*")
(translate-region (point-min) (point-max) 8859-to-swascii-trans))
(setq mail-send-hook '8859-to-swascii-buffer)
(setq news-inews-hook '8859-to-swascii-buffer)
;; It's not clear what purpose is served by a separate
;; Swedish mode that differs from Text mode only in having
;; a separate abbrev table. Nothing says that the abbrevs you
;; define in Text mode have to be English!
;(defvar swedish-mode-abbrev-table nil
; "Abbrev table used while in swedish mode.")
;(define-abbrev-table 'swedish-mode-abbrev-table ())
;(defun swedish-mode ()
; "Major mode for editing Swedish text intended for humans to
;read. Special commands:\\{text-mode-map}
;Turning on swedish-mode calls the value of the variable
;text-mode-hook, if that value is non-nil."
; (interactive)
; (kill-all-local-variables)
; (use-local-map text-mode-map)
; (setq mode-name "Swedish")
; (setq major-mode 'swedish-mode)
; (setq local-abbrev-table swedish-mode-abbrev-table)
; (set-syntax-table text-mode-syntax-table)
; (run-hooks 'text-mode-hook))
;(defun indented-swedish-mode ()
; "Major mode for editing indented Swedish text intended for
;humans to read.\\{indented-text-mode-map}
;Turning on indented-swedish-mode calls the value of the
;variable text-mode-hook, if that value is non-nil."
; (interactive)
; (kill-all-local-variables)
; (use-local-map text-mode-map)
; (define-abbrev-table 'swedish-mode-abbrev-table ())
; (setq local-abbrev-table swedish-mode-abbrev-table)
; (set-syntax-table text-mode-syntax-table)
; (make-local-variable 'indent-line-function)
; (setq indent-line-function 'indent-relative-maybe)
; (use-local-map indented-text-mode-map)
; (setq mode-name "Indented Swedish")
; (setq major-mode 'indented-swedish-mode)
; (run-hooks 'text-mode-hook))
(provide 'swedish)

41
lisp/rot13.el Normal file
View file

@ -0,0 +1,41 @@
;; Display a buffer in rot13.
;; Copyright (C) 1988 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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 1, or (at your option)
;; any later version.
;; GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
;; Written by Howard Gayle. See case-table.el for details.
;; This hack is mainly to show off the char table stuff.
(defvar rot13-display-table
(let ((table (make-display-table))
(i 0))
(while (< i 26)
(aset table (+ i ?a) (make-rope (+ (% (+ i 13) 26) ?a)))
(aset table (+ i ?A) (make-rope (+ (% (+ i 13) 26) ?A)))
(setq i (1+ i)))
table)
"Char table for rot 13 display.")
(defun rot13-other-window ()
"Display current buffer in rot 13 in another window."
(interactive)
(let ((w (display-buffer (current-buffer) t)))
(set-window-display-table w rot13-display-table)))
(provide 'rot13)

61
lisp/vt100-led.el Normal file
View file

@ -0,0 +1,61 @@
;; Functions for controlling the LEDs on VT-100 terminals & clones.
;; Copyright (C) 1988 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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 1, or (at your option)
;; any later version.
;; GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
;; Written by Howard Gayle.
(defvar led-state (make-vector 5 nil)
"The internal state of the LEDs. Choices are nil, t, `flash.
Element 0 is not used.")
(defun led-flash (l)
"Flash LED l."
(aset led-state l 'flash)
(led-update))
(defun led-off (&optional l)
"Turn off vt100 led number L. With no argument, turn them all off."
(interactive "P")
(if l
(aset led-state (prefix-numeric-value l) nil)
(fillarray led-state nil))
(led-update))
(defun led-on (l)
"Turn on LED l."
(aset led-state l t)
(led-update))
(defun led-update ()
"Update the terminal's LEDs to reflect the internal state."
(let ((f "\e[?0") ; String to flash.
(o "\e[0") ; String for steady on.
(l 1)) ; Current LED number.
(while (/= l 5)
(let ((s (aref led-state l)))
(cond
((eq s 'flash)
(setq f (concat f ";" (int-to-string l))))
(s
(setq o (concat o ";" (int-to-string l))))))
(setq l (1+ l)))
(setq o (concat o "q" f "t"))
(send-string-to-terminal o)))
(provide 'vt100-led)