home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 1 / 1131 < prev    next >
Encoding:
Internet Message Format  |  1990-12-28  |  26.2 KB

  1. From: howard@hasse.ericsson.se (Howard Gayle)
  2. Newsgroups: alt.sources
  3. Subject: GNU Emacs 8-bit mods part 04 of 12
  4. Message-ID: <1990Apr5.133516.8786@ericsson.se>
  5. Date: 5 Apr 90 13:35:16 GMT
  6.  
  7. #! /bin/sh
  8. # This is a shell archive.  Remove anything before this line, then feed it
  9. # into a shell via "sh file" or similar.  To overwrite existing files,
  10. # type "sh file -c".
  11. # The tool that generated this appeared in the comp.sources.unix newsgroup;
  12. # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
  13. # If this archive is complete, you will see the following message at the end:
  14. #        "End of archive 4 (of 4)."
  15. # Contents:  lisp/char-table-vt100.el lisp/rot13.el lisp/sort-table.el
  16. #   lisp/term/id100.el lisp/trans-table.el src/casetab.h src/chartab.h
  17. #   src/sorttab.h src/transtab.h
  18. # Wrapped by howard@hasse on Thu Apr  5 15:28:07 1990
  19. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  20. if test -f 'lisp/char-table-vt100.el' -a "${1}" != "-c" ; then 
  21.   echo shar: Will not clobber existing file \"'lisp/char-table-vt100.el'\"
  22. else
  23. echo shar: Extracting \"'lisp/char-table-vt100.el'\" \(2762 characters\)
  24. sed "s/^X//" >'lisp/char-table-vt100.el' <<'END_OF_FILE'
  25. X;; Functions for dealing with char tables for VT-100 terminals.
  26. X;; Copyright (C) 1987 Free Software Foundation, Inc.
  27. X
  28. X;; This file is part of GNU Emacs.
  29. X
  30. X;; GNU Emacs is distributed in the hope that it will be useful,
  31. X;; but WITHOUT ANY WARRANTY.  No author or distributor
  32. X;; accepts responsibility to anyone for the consequences of using it
  33. X;; or for whether it serves any particular purpose or works at all,
  34. X;; unless he says so in writing.  Refer to the GNU Emacs General Public
  35. X;; License for full details.
  36. X
  37. X;; Everyone is granted permission to copy, modify and redistribute
  38. X;; GNU Emacs, but only under the conditions described in the
  39. X;; GNU Emacs General Public License.   A copy of this license is
  40. X;; supposed to have been given to you along with GNU Emacs so you
  41. X;; can know your rights and responsibilities.  It should be in a
  42. X;; file named COPYING.  Among other things, the copyright notice
  43. X;; and this notice must be preserved on all copies.
  44. X
  45. X
  46. X;; Written by Howard Gayle.  See case-table.el for details.
  47. X
  48. X(defun standard-char-graphic (c gc)
  49. X   "Display character C as graphic set character GC in
  50. X   backslash-char-table and ctl-arrow-char-table."
  51. X   (let     ((r (vector (new-glyf (concat "\e(0" (char-to-string gc) "\e(B")))))
  52. X      (put-char-table-dispr (backslash-char-table) c r)
  53. X      (put-char-table-dispr (ctl-arrow-char-table) c r)
  54. X      r
  55. X   )
  56. X)
  57. X
  58. X(defun standard-char-underline (c uc)
  59. X   "Display character C as character UC underlined in
  60. X   backslash-char-table and ctl-arrow-char-table."
  61. X   (let     ((r (vector (new-glyf (concat "\e[4m" (char-to-string uc) "\e[m")))))
  62. X      (put-char-table-dispr (backslash-char-table) c r)
  63. X      (put-char-table-dispr (ctl-arrow-char-table) c r)
  64. X      r
  65. X   )
  66. X)
  67. X
  68. X(defun standard-frameg-graphic (gc)
  69. X   "For the frame glyf, use graphic set character GC in
  70. X   backslash-char-table and ctl-arrow-char-table."
  71. X   (let     ((g (new-glyf (concat "\e(0" (char-to-string gc) "\e(B"))))
  72. X      (put-char-table-frameg (backslash-char-table) g)
  73. X      (put-char-table-frameg (ctl-arrow-char-table) g)
  74. X      g
  75. X   )
  76. X)
  77. X
  78. X(defun standard-truncg-graphic (gc)
  79. X   "For the truncation glyf, use graphic set character GC in
  80. X   backslash-char-table and ctl-arrow-char-table."
  81. X   (let     ((g (new-glyf (concat "\e(0" (char-to-string gc) "\e(B"))))
  82. X      (put-char-table-truncg (backslash-char-table) g)
  83. X      (put-char-table-truncg (ctl-arrow-char-table) g)
  84. X      g
  85. X   )
  86. X)
  87. X
  88. X(defun standard-wrapg-graphic (gc)
  89. X   "For the line wrap glyf, use graphic set character GC in
  90. X   backslash-char-table and ctl-arrow-char-table."
  91. X   (let     ((g (new-glyf (concat "\e(0" (char-to-string gc) "\e(B"))))
  92. X      (put-char-table-wrapg (backslash-char-table) g)
  93. X      (put-char-table-wrapg (ctl-arrow-char-table) g)
  94. X      g
  95. X   )
  96. X)
  97. X
  98. X(provide 'char-table-vt100)
  99. END_OF_FILE
  100. if test 2762 -ne `wc -c <'lisp/char-table-vt100.el'`; then
  101.     echo shar: \"'lisp/char-table-vt100.el'\" unpacked with wrong size!
  102. fi
  103. # end of 'lisp/char-table-vt100.el'
  104. fi
  105. if test -f 'lisp/rot13.el' -a "${1}" != "-c" ; then 
  106.   echo shar: Will not clobber existing file \"'lisp/rot13.el'\"
  107. else
  108. echo shar: Extracting \"'lisp/rot13.el'\" \(2103 characters\)
  109. sed "s/^X//" >'lisp/rot13.el' <<'END_OF_FILE'
  110. X;; Display a buffer in rot13.
  111. X;; Copyright (C) 1987 Free Software Foundation, Inc.
  112. X
  113. X;; This file is part of GNU Emacs.
  114. X
  115. X;; GNU Emacs is distributed in the hope that it will be useful,
  116. X;; but WITHOUT ANY WARRANTY.  No author or distributor
  117. X;; accepts responsibility to anyone for the consequences of using it
  118. X;; or for whether it serves any particular purpose or works at all,
  119. X;; unless he says so in writing.  Refer to the GNU Emacs General Public
  120. X;; License for full details.
  121. X
  122. X;; Everyone is granted permission to copy, modify and redistribute
  123. X;; GNU Emacs, but only under the conditions described in the
  124. X;; GNU Emacs General Public License.   A copy of this license is
  125. X;; supposed to have been given to you along with GNU Emacs so you
  126. X;; can know your rights and responsibilities.  It should be in a
  127. X;; file named COPYING.  Among other things, the copyright notice
  128. X;; and this notice must be preserved on all copies.
  129. X
  130. X
  131. X;; Written by Howard Gayle.  See case-table.el for details.
  132. X
  133. X;; This hack is mainly to show off the char table stuff.
  134. X
  135. X(defvar rot13-char-table nil "Char table for rot 13 display.")
  136. X
  137. X(if rot13-char-table nil
  138. X   (setq rot13-char-table (copy-char-table))
  139. X   (let* (
  140. X     (i ?A)       ; Current character.
  141. X     (j (+ i 13)) ; Rotated character.
  142. X     )
  143. X      (while (<= i ?Z)
  144. X     (put-char-table-dispr rot13-char-table j
  145. X        (get-char-table-dispr (default-value 'buffer-char-table) i))
  146. X     (setq i (1+ i))
  147. X     (setq j (if (= j ?Z) ?A (1+ j)))
  148. X      )
  149. X      (setq i ?a)
  150. X      (setq j (+ i 13))
  151. X      (while (<= i ?z)
  152. X     (put-char-table-dispr rot13-char-table j
  153. X        (get-char-table-dispr (default-value 'buffer-char-table) i))
  154. X     (setq i (1+ i))
  155. X     (setq j (if (= j ?z) ?a (1+ j)))
  156. X      )
  157. X   )
  158. X)
  159. X
  160. X(defun rot13-other-window ()
  161. X   "Display current buffer in rot 13 in another window."
  162. X   (interactive)
  163. X   (if (one-window-p t) (split-window-vertically))
  164. X   (let     (
  165. X           (w (get-lru-window))
  166. X           )
  167. X      (save-excursion
  168. X           (beginning-of-line)
  169. X     (set-window-buffer w (current-buffer))
  170. X     (set-window-start w (point) t)
  171. X     (set-window-char-table rot13-char-table w)
  172. X      )
  173. X   )
  174. X)
  175. X
  176. X(provide 'rot13)
  177. END_OF_FILE
  178. if test 2103 -ne `wc -c <'lisp/rot13.el'`; then
  179.     echo shar: \"'lisp/rot13.el'\" unpacked with wrong size!
  180. fi
  181. # end of 'lisp/rot13.el'
  182. fi
  183. if test -f 'lisp/sort-table.el' -a "${1}" != "-c" ; then 
  184.   echo shar: Will not clobber existing file \"'lisp/sort-table.el'\"
  185. else
  186. echo shar: Extracting \"'lisp/sort-table.el'\" \(4009 characters\)
  187. sed "s/^X//" >'lisp/sort-table.el' <<'END_OF_FILE'
  188. X;; Functions for dealing with sort tables.
  189. X;; Copyright (C) 1987 Free Software Foundation, Inc.
  190. X
  191. X;; This file is part of GNU Emacs.
  192. X
  193. X;; GNU Emacs is distributed in the hope that it will be useful,
  194. X;; but WITHOUT ANY WARRANTY.  No author or distributor
  195. X;; accepts responsibility to anyone for the consequences of using it
  196. X;; or for whether it serves any particular purpose or works at all,
  197. X;; unless he says so in writing.  Refer to the GNU Emacs General Public
  198. X;; License for full details.
  199. X
  200. X;; Everyone is granted permission to copy, modify and redistribute
  201. X;; GNU Emacs, but only under the conditions described in the
  202. X;; GNU Emacs General Public License.   A copy of this license is
  203. X;; supposed to have been given to you along with GNU Emacs so you
  204. X;; can know your rights and responsibilities.  It should be in a
  205. X;; file named COPYING.  Among other things, the copyright notice
  206. X;; and this notice must be preserved on all copies.
  207. X
  208. X
  209. X;; Written by Howard Gayle.  See case-table.el for details.
  210. X
  211. X(require 'case-table)
  212. X
  213. X(defun describe-case-distinct-table ()
  214. X   "Describe the case-distinct sort table of the current buffer."
  215. X   (interactive)
  216. X   (describe-sort-table (case-distinct-table))
  217. X)
  218. X
  219. X(defun describe-case-fold-table ()
  220. X   "Describe the case-fold sort table of the current buffer."
  221. X   (interactive)
  222. X   (describe-sort-table (case-fold-table))
  223. X)
  224. X
  225. X(defun describe-sort-table (st)
  226. X   "Describe the given sort table in a help buffer.  The
  227. Xequivalence classes are listed one per line in increasing order."
  228. X   (let     (
  229. X           e
  230. X           (i 0)                           ; Current character.
  231. X     j                               ; Steps through EC.
  232. X           (v (make-vector 256 nil)) ; v[i] is EC containing char i.
  233. X           )
  234. X      (with-output-to-temp-buffer "*Help*"
  235. X     (while (<= i 255)
  236. X        (setq e (get-sort-table-ec-num i st))
  237. X        (aset v e (get-sort-table-ec i st))
  238. X        (setq i (1+ i))
  239. X     )
  240. X     (setq i 0)
  241. X     (setq e (aref v i))
  242. X     (while e
  243. X        (setq j 0)
  244. X        (while (< j (length e))
  245. X           (describe-character (aref e j))
  246. X           (setq j (1+ j))
  247. X        )
  248. X        (princ "\n")
  249. X        (setq i (1+ i))
  250. X        (setq e (aref v i))
  251. X     )
  252. X     (print-help-return-message)
  253. X      )
  254. X   )
  255. X)
  256. X
  257. X(defun expand-sort-table-list (lst)
  258. X   "One argument: a list of elements in increasing order.  Each
  259. Xelement is either a single character, which represents a
  260. Xsingleton equivalence class, or a pair (lo . hi), which is
  261. Xshort for all single elements in the range lo .. hi, or a list
  262. Xof characters, all in the same equivalence class.  Returns a
  263. Xlist suitable for make-sort-table.  Checks for errors."
  264. X   (let     (
  265. X           c1 ; Current character.
  266. X           c2 ; Last character in dotted pair.
  267. X           ce ; Current element in lst.
  268. X     (cvr (make-vector 256 nil)) ; Flag set when each char covered.
  269. X     (p lst) ; Steps through lst.
  270. X     q1 ; Steps through sublist.
  271. X           z ; Result.
  272. X           )
  273. X      (while p
  274. X           (setq ce (car p))
  275. X     (cond
  276. X        ((numberp ce)
  277. X           (if (aref cvr ce)
  278. X                 (message "Attempt to redefine %c (%d)" ce ce)
  279. X          (setq z (cons (list ce) z))
  280. X          (aset cvr ce t)
  281. X           ))
  282. X        ((numberp (cdr ce))
  283. X           (setq c1 (car ce))
  284. X           (setq c2 (cdr ce))
  285. X           (while (<= c1 c2)
  286. X          (if (aref cvr c1)
  287. X             (message "Attempt to redefine %c (%d)" c1 c1)
  288. X             (setq z (cons (list c1) z))
  289. X             (aset cvr c1 t)
  290. X             (setq c1 (1+ c1))
  291. X          )
  292. X           ))
  293. X        (t
  294. X           (setq q1 ce)
  295. X           (while q1
  296. X          (setq c1 (car q1))
  297. X          (if (aref cvr c1)
  298. X             (message "Attempt to redefine %c (%d)" c1 c1)
  299. X             (aset cvr c1 t)
  300. X          )
  301. X          (setq q1 (cdr q1))
  302. X           )
  303. X           (setq z (cons ce z))
  304. X        )
  305. X     )
  306. X           (setq p (cdr p))
  307. X      )
  308. X      (setq c1 0)
  309. X      (while (<= c1 255)
  310. X           (if (null (aref cvr c1))
  311. X        (progn
  312. X           (message "Character %c (%d) uncovered" c1 c1)
  313. X           (sit-for 1)
  314. X        )
  315. X     )
  316. X           (setq c1 (1+ c1))
  317. X      )
  318. X      (reverse z)
  319. X   )
  320. X)
  321. X
  322. X(defun new-sort-table (lst)
  323. X   "Return a new sort table.  Argument same as for
  324. Xexpand-sort-table-list."
  325. X   (make-sort-table (expand-sort-table-list lst))
  326. X)
  327. X
  328. X(provide 'sort-table)
  329. END_OF_FILE
  330. if test 4009 -ne `wc -c <'lisp/sort-table.el'`; then
  331.     echo shar: \"'lisp/sort-table.el'\" unpacked with wrong size!
  332. fi
  333. # end of 'lisp/sort-table.el'
  334. fi
  335. if test -f 'lisp/term/id100.el' -a "${1}" != "-c" ; then 
  336.   echo shar: Will not clobber existing file \"'lisp/term/id100.el'\"
  337. else
  338. echo shar: Extracting \"'lisp/term/id100.el'\" \(3213 characters\)
  339. sed "s/^X//" >'lisp/term/id100.el' <<'END_OF_FILE'
  340. X;;; Set up ID Systems Corporation ID-100V terminal.
  341. X
  342. X(require 'iso8859-1-ascii)
  343. X(require 'char-table-vt100)
  344. X(require 'keypad)
  345. X(require 'vt100-led)
  346. X
  347. X(defvar CSI-map nil
  348. X  "The CSI-map maps the CSI function keys on the keyboard.
  349. XThe CSI keys are the arrow keys.")
  350. X
  351. X(if (not CSI-map)
  352. X    (progn
  353. X     (setq CSI-map (lookup-key global-map "\e["))
  354. X     (if (not (keymapp CSI-map))
  355. X     (setq CSI-map (make-sparse-keymap)))  ;; <ESC>[ commands
  356. X     (setup-terminal-keymap CSI-map '(
  357. X        ("A"   . ?u) ; up arrow
  358. X    ("B"   . ?d) ; down-arrow
  359. X    ("C"   . ?r) ; right-arrow
  360. X    ("D"   . ?l) ; left-arrow
  361. X    ("H"   . ?h) ; home
  362. X))))
  363. X
  364. X(defun enable-arrow-keys ()
  365. X  "Enable the use of the ID-100 arrow keys for cursor motion.
  366. XBecause of the nature of the ID-100, this unavoidably breaks
  367. Xthe standard Emacs command ESC [; therefore, it is not done by default,
  368. Xbut only if you give this command."
  369. X  (interactive)
  370. X  (global-set-key "\e[" CSI-map)
  371. X)
  372. X
  373. X(defvar SS3a-map nil
  374. X  "SS3a-map maps the SS3 function keys on the ID-100 keyboard.
  375. XThe SS3 keys are the numeric keypad keys in keypad application mode
  376. X\(DECKPAM).  SS3 is DEC's name for the sequence <ESC>O which is
  377. Xthe common prefix of what these keys transmit.")
  378. X
  379. X(if (not SS3a-map)
  380. X    (progn
  381. X     (setq SS3a-map (lookup-key global-map "\eO"))
  382. X     (if (not (keymapp SS3a-map))
  383. X     (setq SS3a-map (make-keymap)))  ;; <ESC>O commands
  384. X     (setup-terminal-keymap SS3a-map
  385. X        '(("A" . ?u)       ; up arrow
  386. X          ("B" . ?d)       ; down-arrow
  387. X          ("C" . ?r)       ; right-arrow
  388. X          ("D" . ?l)       ; left-arrow
  389. X          ("M" . ?e)       ; Enter
  390. X          ("P" . ?\C-a)       ; PF1
  391. X          ("Q" . ?\C-b)       ; PF2
  392. X          ("R" . ?\C-c)       ; PF3
  393. X          ("S" . ?\C-d)       ; PF4
  394. X          ("l" . ?,)       ; ,
  395. X          ("m" . ?-)       ; -
  396. X          ("n" . ?.)       ; .
  397. X          ("p" . ?0)       ; 0
  398. X          ("q" . ?1)       ; 1
  399. X          ("r" . ?2)       ; 2
  400. X          ("s" . ?3)       ; 3
  401. X          ("t" . ?4)       ; 4
  402. X          ("u" . ?5)       ; 5
  403. X          ("v" . ?6)       ; 6
  404. X          ("w" . ?7)       ; 7
  405. X          ("x" . ?8)       ; 8
  406. X          ("y" . ?9)))))       ; 9
  407. X
  408. X(defun keypad-application-mode ()
  409. X  "Switch on keypad application mode."
  410. X  (interactive)
  411. X  (send-string-to-terminal "\e=")
  412. X  (global-set-key "\eO" SS3a-map))
  413. X
  414. X(defvar SS3n-map nil
  415. X  "SS3n-map maps the SS3 function keys on the ID-100 keyboard.
  416. XThe SS3 keys are the numeric keypad keys in keypad numeric mode
  417. X\(DECKPAM).  SS3 is DEC's name for the sequence <ESC>O which is
  418. Xthe common prefix of what these keys transmit.")
  419. X
  420. X(if (not SS3n-map)
  421. X    (progn
  422. X     (setq SS3n-map (lookup-key global-map "\eO"))
  423. X     (if (not (keymapp SS3n-map))
  424. X     (setq SS3n-map (make-sparse-keymap)))  ;; <ESC>O commands
  425. X     (setup-terminal-keymap SS3n-map '(
  426. X          ("P" . ?\C-a)       ; PF1
  427. X          ("Q" . ?\C-b)       ; PF2
  428. X          ("R" . ?\C-c)       ; PF3
  429. X          ("S" . ?\C-d)       ; PF4
  430. X     ))
  431. X    (global-set-key "\eO" SS3n-map)
  432. X))
  433. X
  434. X(standard-char-graphic   176 ?f) ; degree sign
  435. X(standard-char-graphic   177 ?g) ; plus or minus sign
  436. X(standard-char-graphic   183 ?~) ; middle dot
  437. X(standard-frameg-graphic ?x)     ; Vertical bar.
  438. X(standard-truncg-graphic ?t)     ; Left T.
  439. X(standard-wrapg-graphic  ?k)     ; Upper right corner.
  440. X
  441. X(setq start-emphasis "\e[4m") ; Foreground yellow.
  442. X(setq stop-emphasis  "\e[m")  ; Foreground white.
  443. END_OF_FILE
  444. if test 3213 -ne `wc -c <'lisp/term/id100.el'`; then
  445.     echo shar: \"'lisp/term/id100.el'\" unpacked with wrong size!
  446. fi
  447. # end of 'lisp/term/id100.el'
  448. fi
  449. if test -f 'lisp/trans-table.el' -a "${1}" != "-c" ; then 
  450.   echo shar: Will not clobber existing file \"'lisp/trans-table.el'\"
  451. else
  452. echo shar: Extracting \"'lisp/trans-table.el'\" \(1880 characters\)
  453. sed "s/^X//" >'lisp/trans-table.el' <<'END_OF_FILE'
  454. X;; Functions for dealing with trans tables.
  455. X;; Copyright (C) 1987 Free Software Foundation, Inc.
  456. X
  457. X;; This file is part of GNU Emacs.
  458. X
  459. X;; GNU Emacs is distributed in the hope that it will be useful,
  460. X;; but WITHOUT ANY WARRANTY.  No author or distributor
  461. X;; accepts responsibility to anyone for the consequences of using it
  462. X;; or for whether it serves any particular purpose or works at all,
  463. X;; unless he says so in writing.  Refer to the GNU Emacs General Public
  464. X;; License for full details.
  465. X
  466. X;; Everyone is granted permission to copy, modify and redistribute
  467. X;; GNU Emacs, but only under the conditions described in the
  468. X;; GNU Emacs General Public License.   A copy of this license is
  469. X;; supposed to have been given to you along with GNU Emacs so you
  470. X;; can know your rights and responsibilities.  It should be in a
  471. X;; file named COPYING.  Among other things, the copyright notice
  472. X;; and this notice must be preserved on all copies.
  473. X
  474. X
  475. X;; Written by Howard Gayle.  See case-table.el for details.
  476. X
  477. X(require 'case-table)
  478. X
  479. X(defun describe-downcase-table ()
  480. X   "Describe the downcase table of the current buffer."
  481. X   (interactive)
  482. X   (describe-trans-table (downcase-table))
  483. X)
  484. X
  485. X(defun describe-trans-table (tt)
  486. X   "Describe the given trans table in a help buffer.  Don't
  487. Xmention identity translations."
  488. X   (let  (
  489. X           (i 0) ; Current character.
  490. X     j     ; Translated character.
  491. X     )
  492. X      (with-output-to-temp-buffer "*Help*"
  493. X     (while (<= i 255)
  494. X        (setq j (get-trans-table-to i tt))
  495. X        (if (not (= i j))
  496. X           (progn
  497. X                 (describe-character i)
  498. X          (princ "->")
  499. X                 (describe-character j)
  500. X          (princ "\n")
  501. X           )
  502. X        )
  503. X        (setq i (1+ i))
  504. X     )
  505. X     (print-help-return-message)
  506. X      )
  507. X   )
  508. X)
  509. X
  510. X(defun describe-upcase-table ()
  511. X   "Describe the upcase table of the current buffer."
  512. X   (interactive)
  513. X   (describe-trans-table (upcase-table))
  514. X)
  515. X
  516. X(provide 'trans-table)
  517. END_OF_FILE
  518. if test 1880 -ne `wc -c <'lisp/trans-table.el'`; then
  519.     echo shar: \"'lisp/trans-table.el'\" unpacked with wrong size!
  520. fi
  521. # end of 'lisp/trans-table.el'
  522. fi
  523. if test -f 'src/casetab.h' -a "${1}" != "-c" ; then 
  524.   echo shar: Will not clobber existing file \"'src/casetab.h'\"
  525. else
  526. echo shar: Extracting \"'src/casetab.h'\" \(1965 characters\)
  527. sed "s/^X//" >'src/casetab.h' <<'END_OF_FILE'
  528. X/* Declarations for case tables.
  529. X   Copyright (C) 1987, 1990 Free Software Foundation, Inc.
  530. X
  531. XThis file is part of GNU Emacs.
  532. X
  533. XGNU Emacs is distributed in the hope that it will be useful,
  534. Xbut WITHOUT ANY WARRANTY.  No author or distributor
  535. Xaccepts responsibility to anyone for the consequences of using it
  536. Xor for whether it serves any particular purpose or works at all,
  537. Xunless he says so in writing.  Refer to the GNU Emacs General Public
  538. XLicense for full details.
  539. X
  540. XEveryone is granted permission to copy, modify and redistribute
  541. XGNU Emacs, but only under the conditions described in the
  542. XGNU Emacs General Public License.   A copy of this license is
  543. Xsupposed to have been given to you along with GNU Emacs so you
  544. Xcan know your rights and responsibilities.  It should be in a
  545. Xfile named COPYING.  Among other things, the copyright notice
  546. Xand this notice must be preserved on all copies.  */
  547. X
  548. X/* Written by Howard Gayle.  See chartab.c for details. */
  549. X
  550. X#define NULL_CASE_TABLE ((struct Lisp_Casetab *) 0)
  551. X
  552. X/* The following macros extract case table information: */
  553. X#define CASETAB_CASE(c,t)     (t->cas_case[c])
  554. X#define CASETAB_ISNOCASE(c,t) (nocase_e    == CASETAB_CASE(c,t))
  555. X#define CASETAB_ISLOWER(c,t)  (lowercase_e == CASETAB_CASE(c,t))
  556. X#define CASETAB_ISUPPER(c,t)  (uppercase_e == CASETAB_CASE(c,t))
  557. X
  558. X/* Each buffer has an associated case table.  The following
  559. Xmacros use the case table of the current buffer: */
  560. X#define LOCAL_CASE(c)       CASETAB_CASE (c, bf_cur->case_table_v)
  561. X#define LOCAL_ISNOCASE(c) (nocase_e    == LOCAL_CASE(c))
  562. X#define LOCAL_ISLOWER(c)  (lowercase_e == LOCAL_CASE(c))
  563. X#define LOCAL_ISUPPER(c)  (uppercase_e == LOCAL_CASE(c))
  564. X
  565. X/* There is also a standard case table, that is used whenever no
  566. Xbuffer case table is appropriate.  The following macros use the
  567. Xstandard case table: */
  568. X#define UPPERCASEP(c) (uppercase_e==buffer_defaults.case_table_v->cas_case[c])
  569. X#define LOWERCASEP(c) (lowercase_e==buffer_defaults.case_table_v->cas_case[c])
  570. END_OF_FILE
  571. if test 1965 -ne `wc -c <'src/casetab.h'`; then
  572.     echo shar: \"'src/casetab.h'\" unpacked with wrong size!
  573. fi
  574. # end of 'src/casetab.h'
  575. fi
  576. if test -f 'src/chartab.h' -a "${1}" != "-c" ; then 
  577.   echo shar: Will not clobber existing file \"'src/chartab.h'\"
  578. else
  579. echo shar: Extracting \"'src/chartab.h'\" \(2262 characters\)
  580. sed "s/^X//" >'src/chartab.h' <<'END_OF_FILE'
  581. X/* Declarations for character tables.
  582. X   Copyright (C) 1987, 1990 Free Software Foundation, Inc.
  583. X
  584. XThis file is part of GNU Emacs.
  585. X
  586. XGNU Emacs is distributed in the hope that it will be useful,
  587. Xbut WITHOUT ANY WARRANTY.  No author or distributor
  588. Xaccepts responsibility to anyone for the consequences of using it
  589. Xor for whether it serves any particular purpose or works at all,
  590. Xunless he says so in writing.  Refer to the GNU Emacs General Public
  591. XLicense for full details.
  592. X
  593. XEveryone is granted permission to copy, modify and redistribute
  594. XGNU Emacs, but only under the conditions described in the
  595. XGNU Emacs General Public License.   A copy of this license is
  596. Xsupposed to have been given to you along with GNU Emacs so you
  597. Xcan know your rights and responsibilities.  It should be in a
  598. Xfile named COPYING.  Among other things, the copyright notice
  599. Xand this notice must be preserved on all copies.  */
  600. X
  601. X/* Written by Howard Gayle.  See chartab.c for details. */
  602. X
  603. X/* The following definitions are placed here in order to ease
  604. Xfuture modifications: */
  605. X#define HTAB    ('\t')
  606. X#define HYPHEN  ('-')
  607. X#define NEWLINE ('\n')
  608. X#define SPACE   (' ')
  609. X
  610. X/* There are two built-in character tables, one that displays
  611. Xcontrol characters with backslash followed by an octal number,
  612. Xand one that displays them with ^.  Both start off initialized
  613. Xfor ASCII, but can be modified. */
  614. Xextern Lisp_Object Vctl_arrow_char_table;
  615. X
  616. X#define NULL_CHAR_TABLE ((struct Lisp_Chartab *) 0)
  617. X
  618. X/* Each window has a char table.  This macro returns the char
  619. Xtable of the selected window: */
  620. X#define SELECTED_CHAR_TABLE XCHARTAB ((XWINDOW (selected_window)->window_char_table))
  621. X
  622. X/* This macro returns the char table of the given window. */
  623. X#define WINDOW_CHAR_TABLE(w) XCHARTAB (w->window_char_table)
  624. X
  625. XLisp_Object check_char_table ();
  626. X
  627. X/* The length of the rope corresponding to character c in char table t: */
  628. X#define ROPE_LEN(c,t) (t->ct_dispr[c].r_len)
  629. X
  630. X/* A glyf is represented as an index in glyf_table[].  The
  631. Xfirst byte gives the length, followed by the characters in the
  632. Xglyf.  There is no NUL at the end. */
  633. Xextern char_t *glyf_table;
  634. X
  635. X#define SPACEGLYF ((1 << 8) + ' ') /* Glyf for a space. */
  636. X
  637. Xint     glyf_len(); /* Length of a glyf. */
  638. Xchar_t *glyf_str(); /* Pointer to first byte in glyf. */
  639. END_OF_FILE
  640. if test 2262 -ne `wc -c <'src/chartab.h'`; then
  641.     echo shar: \"'src/chartab.h'\" unpacked with wrong size!
  642. fi
  643. # end of 'src/chartab.h'
  644. fi
  645. if test -f 'src/sorttab.h' -a "${1}" != "-c" ; then 
  646.   echo shar: Will not clobber existing file \"'src/sorttab.h'\"
  647. else
  648. echo shar: Extracting \"'src/sorttab.h'\" \(1472 characters\)
  649. sed "s/^X//" >'src/sorttab.h' <<'END_OF_FILE'
  650. X/* Declarations for sort tables.
  651. X   Copyright (C) 1987 Free Software Foundation, Inc.
  652. X
  653. XThis file is part of GNU Emacs.
  654. X
  655. XGNU Emacs is distributed in the hope that it will be useful,
  656. Xbut WITHOUT ANY WARRANTY.  No author or distributor
  657. Xaccepts responsibility to anyone for the consequences of using it
  658. Xor for whether it serves any particular purpose or works at all,
  659. Xunless he says so in writing.  Refer to the GNU Emacs General Public
  660. XLicense for full details.
  661. X
  662. XEveryone is granted permission to copy, modify and redistribute
  663. XGNU Emacs, but only under the conditions described in the
  664. XGNU Emacs General Public License.   A copy of this license is
  665. Xsupposed to have been given to you along with GNU Emacs so you
  666. Xcan know your rights and responsibilities.  It should be in a
  667. Xfile named COPYING.  Among other things, the copyright notice
  668. Xand this notice must be preserved on all copies.  */
  669. X
  670. X/* Written by Howard Gayle.  See chartab.c for details. */
  671. X
  672. X#define NULL_SORT_TABLE ((struct Lisp_Sorttab *) 0)
  673. X
  674. X/* Each buffer has two sort tables: one for use when
  675. Xcase-fold-search is nil, and another for use when it is not
  676. Xnil.  The following function returns the appropriate sort table: */
  677. Xstruct Lisp_Sorttab *current_sort_table ();
  678. X
  679. X/* Each sort table contains an equivalence class table that
  680. Xmaps characters to their corresponding equivalence classes.
  681. XThe following function returns the equivalence class table for
  682. Xthe current sort table: */
  683. Xchar_t *current_equiv_class_table ();
  684. END_OF_FILE
  685. if test 1472 -ne `wc -c <'src/sorttab.h'`; then
  686.     echo shar: \"'src/sorttab.h'\" unpacked with wrong size!
  687. fi
  688. # end of 'src/sorttab.h'
  689. fi
  690. if test -f 'src/transtab.h' -a "${1}" != "-c" ; then 
  691.   echo shar: Will not clobber existing file \"'src/transtab.h'\"
  692. else
  693. echo shar: Extracting \"'src/transtab.h'\" \(1598 characters\)
  694. sed "s/^X//" >'src/transtab.h' <<'END_OF_FILE'
  695. X/* Declarations for translate tables.
  696. X   Copyright (C) 1987 Free Software Foundation, Inc.
  697. X
  698. XThis file is part of GNU Emacs.
  699. X
  700. XGNU Emacs is distributed in the hope that it will be useful,
  701. Xbut WITHOUT ANY WARRANTY.  No author or distributor
  702. Xaccepts responsibility to anyone for the consequences of using it
  703. Xor for whether it serves any particular purpose or works at all,
  704. Xunless he says so in writing.  Refer to the GNU Emacs General Public
  705. XLicense for full details.
  706. X
  707. XEveryone is granted permission to copy, modify and redistribute
  708. XGNU Emacs, but only under the conditions described in the
  709. XGNU Emacs General Public License.   A copy of this license is
  710. Xsupposed to have been given to you along with GNU Emacs so you
  711. Xcan know your rights and responsibilities.  It should be in a
  712. Xfile named COPYING.  Among other things, the copyright notice
  713. Xand this notice must be preserved on all copies.  */
  714. X
  715. X/* Written by Howard Gayle.  See chartab.c for details. */
  716. X
  717. X#define NULL_TRANS_TABLE ((struct Lisp_Transtab *) 0)
  718. X
  719. X/* Associated with each buffer are two trans tables, one for
  720. Xconversion to lower case and one for upper case.  The following
  721. Xmacros use those tables: */
  722. X#define LOCAL_TOLOWER(c) (bf_cur->downcase_table_v->trt_to[c])
  723. X#define LOCAL_TOUPPER(c) (bf_cur->upcase_table_v->trt_to[c])
  724. X
  725. X/* There are also standard upper and lower case conversion
  726. Xtables that are used whenever no buffer trans tables are
  727. Xappropriate.  The following macros use the standard trans tables: */
  728. X#define DOWNCASE(c) (buffer_defaults.downcase_table_v->trt_to[c])
  729. X#define UPCASE(c)   (buffer_defaults.upcase_table_v->trt_to[c])
  730. END_OF_FILE
  731. if test 1598 -ne `wc -c <'src/transtab.h'`; then
  732.     echo shar: \"'src/transtab.h'\" unpacked with wrong size!
  733. fi
  734. # end of 'src/transtab.h'
  735. fi
  736. echo shar: End of archive 4 \(of 4\).
  737. cp /dev/null ark4isdone
  738. MISSING=""
  739. for I in 1 2 3 4 ; do
  740.     if test ! -f ark${I}isdone ; then
  741.     MISSING="${MISSING} ${I}"
  742.     fi
  743. done
  744. if test "${MISSING}" = "" ; then
  745.     echo You have unpacked all 4 archives.
  746.     rm -f ark[1-9]isdone
  747. else
  748.     echo You still need to unpack the following archives:
  749.     echo "        " ${MISSING}
  750. fi
  751. ##  End of shell archive.
  752. exit 0
  753.