Mercurial > emacs
annotate lisp/textmodes/underline.el @ 26370:5f52cc1417ab
Use block statements in cases and declare v1 and v2
locally there. Rearrange case statements so that thos most
frequently executed come first. Avoid goto's in frequently
executed cases.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Sun, 07 Nov 1999 13:06:59 +0000 |
parents | 3796fd32e28d |
children | 253f761ad37b |
rev | line source |
---|---|
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
258
diff
changeset
|
1 ;;; underline.el --- insert/remove underlining (done by overstriking) in Emacs. |
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
258
diff
changeset
|
2 |
841 | 3 ;; Copyright (C) 1985 Free Software Foundation, Inc. |
4 | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
5 ;; Maintainer: FSF |
814
38b2499cb3e9
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
6 ;; Keywords: wp |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
7 |
36 | 8 ;; This file is part of GNU Emacs. |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
12 ;; the Free Software Foundation; either version 2, or (at your option) |
36 | 13 ;; any later version. |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
14169 | 21 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
23 ;; Boston, MA 02111-1307, USA. | |
36 | 24 |
2319
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
841
diff
changeset
|
25 ;;; Commentary: |
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
841
diff
changeset
|
26 |
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
841
diff
changeset
|
27 ;; This package deals with the primitive form of underlining |
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
841
diff
changeset
|
28 ;; consisting of prefixing each character with "_\^h". The entry |
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
841
diff
changeset
|
29 ;; point `underline-region' performs such underlining on a region. |
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
841
diff
changeset
|
30 ;; The entry point `ununderline-region' removes it. |
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
841
diff
changeset
|
31 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
32 ;;; Code: |
36 | 33 |
258 | 34 ;;;###autoload |
36 | 35 (defun underline-region (start end) |
36 "Underline all nonblank characters in the region. | |
37 Works by overstriking underscores. | |
38 Called from program, takes two arguments START and END | |
39 which specify the range to operate on." | |
24970
3796fd32e28d
(underline-region, ununderline-region): Add * to interactive spec.
Dave Love <fx@gnu.org>
parents:
18383
diff
changeset
|
40 (interactive "*r") |
36 | 41 (save-excursion |
42 (let ((end1 (make-marker))) | |
43 (move-marker end1 (max start end)) | |
44 (goto-char (min start end)) | |
45 (while (< (point) end1) | |
46 (or (looking-at "[_\^@- ]") | |
6340
e9c46ef0a877
(underline-region, ununderline-region): Use printable escapes instead of
Karl Heuer <kwzh@gnu.org>
parents:
2319
diff
changeset
|
47 (insert "_\b")) |
36 | 48 (forward-char 1))))) |
49 | |
258 | 50 ;;;###autoload |
36 | 51 (defun ununderline-region (start end) |
52 "Remove all underlining (overstruck underscores) in the region. | |
53 Called from program, takes two arguments START and END | |
54 which specify the range to operate on." | |
24970
3796fd32e28d
(underline-region, ununderline-region): Add * to interactive spec.
Dave Love <fx@gnu.org>
parents:
18383
diff
changeset
|
55 (interactive "*r") |
36 | 56 (save-excursion |
57 (let ((end1 (make-marker))) | |
58 (move-marker end1 (max start end)) | |
59 (goto-char (min start end)) | |
6340
e9c46ef0a877
(underline-region, ununderline-region): Use printable escapes instead of
Karl Heuer <kwzh@gnu.org>
parents:
2319
diff
changeset
|
60 (while (re-search-forward "_\b\\|\b_" end1 t) |
36 | 61 (delete-char -2))))) |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
258
diff
changeset
|
62 |
18383 | 63 (provide 'underline) |
64 | |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
258
diff
changeset
|
65 ;;; underline.el ends here |