aboutsummaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
Diffstat (limited to 'etc')
-rw-r--r--etc/ChangeLog142
-rw-r--r--etc/ETAGS.EBNF21
-rw-r--r--etc/FTP5
-rw-r--r--etc/HELLO21
-rw-r--r--etc/LEDIT77
-rw-r--r--etc/LPF43
-rw-r--r--etc/MACHINES18
-rw-r--r--etc/MAILINGLISTS18
-rw-r--r--etc/MORE.STUFF17
-rw-r--r--etc/MOTIVATION3
-rw-r--r--etc/NEWS9440
-rw-r--r--etc/NEWS.1-17 (renamed from etc/ONEWS.2)1188
-rw-r--r--etc/NEWS.18 (renamed from etc/ONEWS.3)19
-rw-r--r--etc/NEWS.19 (renamed from etc/ONEWS)69
-rw-r--r--etc/NEWS.204513
-rw-r--r--etc/NEWS.214900
-rw-r--r--etc/ONEWS.11167
-rw-r--r--etc/ONEWS.41693
-rw-r--r--etc/ORDERS5
-rw-r--r--etc/PROBLEMS2
-rw-r--r--etc/README16
-rw-r--r--etc/SERVICE10
-rw-r--r--etc/TERMS21
-rw-r--r--etc/TODO24
-rw-r--r--etc/Xkeymap.txt16
-rw-r--r--etc/compilation.txt22
-rw-r--r--etc/cs-refcard.tex3
-rw-r--r--etc/de-refcard.tex518
-rw-r--r--etc/emacs.csh16
-rw-r--r--etc/enriched.doc21
-rw-r--r--etc/fr-refcard.tex3
-rw-r--r--etc/grep.txt24
-rw-r--r--etc/ledit.l152
-rw-r--r--etc/ms-7bkermit19
-rw-r--r--etc/orgcard.tex103
-rw-r--r--etc/pl-refcard.tex9
-rw-r--r--etc/pt-br-refcard.ps2527
-rw-r--r--etc/pt-br-refcard.tex686
-rw-r--r--etc/refcard.tex3
-rw-r--r--etc/ru-refcard.tex8
-rw-r--r--etc/ses-example.ses20
-rw-r--r--etc/sk-refcard.tex3
-rw-r--r--etc/spook.linesbin3804 -> 4447 bytes
-rw-r--r--etc/tree-widget/default/close.pngbin999 -> 300 bytes
-rw-r--r--etc/tree-widget/default/close.xpm315
-rw-r--r--etc/tree-widget/default/empty.pngbin999 -> 298 bytes
-rw-r--r--etc/tree-widget/default/empty.xpm315
-rw-r--r--etc/tree-widget/default/end-guide.pngbin913 -> 181 bytes
-rw-r--r--etc/tree-widget/default/end-guide.xpm308
-rw-r--r--etc/tree-widget/default/guide.pngbin911 -> 180 bytes
-rw-r--r--etc/tree-widget/default/guide.xpm308
-rw-r--r--etc/tree-widget/default/handle.pngbin916 -> 180 bytes
-rw-r--r--etc/tree-widget/default/handle.xpm308
-rw-r--r--etc/tree-widget/default/leaf.pngbin994 -> 277 bytes
-rw-r--r--etc/tree-widget/default/leaf.xpm315
-rw-r--r--etc/tree-widget/default/no-guide.pngbin914 -> 170 bytes
-rw-r--r--etc/tree-widget/default/no-guide.xpm307
-rw-r--r--etc/tree-widget/default/no-handle.pngbin914 -> 173 bytes
-rw-r--r--etc/tree-widget/default/no-handle.xpm307
-rw-r--r--etc/tree-widget/default/open.pngbin1006 -> 313 bytes
-rw-r--r--etc/tree-widget/default/open.xpm317
-rw-r--r--etc/tree-widget/folder/close.pngbin981 -> 298 bytes
-rw-r--r--etc/tree-widget/folder/close.xpm323
-rw-r--r--etc/tree-widget/folder/empty.pngbin1008 -> 305 bytes
-rw-r--r--etc/tree-widget/folder/empty.xpm318
-rw-r--r--etc/tree-widget/folder/end-guide.pngbin942 -> 177 bytes
-rw-r--r--etc/tree-widget/folder/end-guide.xpm310
-rw-r--r--etc/tree-widget/folder/guide.pngbin940 -> 178 bytes
-rw-r--r--etc/tree-widget/folder/guide.xpm310
-rw-r--r--etc/tree-widget/folder/handle.pngbin915 -> 180 bytes
-rw-r--r--etc/tree-widget/folder/handle.xpm310
-rw-r--r--etc/tree-widget/folder/leaf.pngbin980 -> 336 bytes
-rw-r--r--etc/tree-widget/folder/leaf.xpm317
-rw-r--r--etc/tree-widget/folder/no-guide.pngbin934 -> 171 bytes
-rw-r--r--etc/tree-widget/folder/no-guide.xpm309
-rw-r--r--etc/tree-widget/folder/no-handle.pngbin942 -> 173 bytes
-rw-r--r--etc/tree-widget/folder/no-handle.xpm309
-rw-r--r--etc/tree-widget/folder/open.pngbin1019 -> 344 bytes
-rw-r--r--etc/tree-widget/folder/open.xpm322
-rw-r--r--etc/ulimit.hack19
80 files changed, 15301 insertions, 17931 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 8d911dcb578..5532a00c1bb 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,113 @@
12006-06-07 Kenichi Handa <handa@m17n.org>
2
3 * NEWS: Mention how to disable character translation for a file.
4
52006-06-04 Sven Joachim <svenjoac@gmx.de>
6
7 * de-refcard.tex: Update for Emacs 22: Use German quotes
8 and umlauts; fix overfull /hboxes; many rewordings.
9
102006-06-04 Kim F. Storm <storm@cua.dk>
11
12 * NEWS: Move news for pre-22 versions into...
13 * NEWS.21, NEWS.20: ... new files for Emacs 21 and Emacs 20 news.
14 * ONEWS, ONEWS.1, ONEWS.2, ONEWS.3, ONEWS.4: Remove (rename) files ...
15 * NEWS.19, NEWS.18, NEWS.1-17: ... and organize news about older Emacs
16 versions in separte files. Update copyright notices.
17
182006-06-03 Eli Zaretskii <eliz@gnu.org>
19
20 * LPF, LEDIT: Remove files.
21
22 * FTP, README, HELLO, MACHINES, MAILINGLISTS, MORE.STUFF, ETAGS.EBNF:
23 * MOTIVATION, ORDERS, SERVICE, TERMS, TODO:
24 * enriched.doc, ulimit.hack, ses-example.ses, ms-7bkermit, emacs.csh:
25 * Xkeymap.txt, compilation.txt, grep.txt:
26 Add copyright notice and copying permissions.
27
282006-05-31 David Ponce <david@dponce.com>
29
30 * tree-widget/default/close.png, tree-widget/default/close.xpm:
31 * tree-widget/default/empty.png, tree-widget/default/empty.xpm:
32 * tree-widget/default/end-guide.png, tree-widget/default/end-guide.xpm:
33 * tree-widget/default/guide.png, tree-widget/default/guide.xpm:
34 * tree-widget/default/handle.png, tree-widget/default/handle.xpm:
35 * tree-widget/default/leaf.png, tree-widget/default/leaf.xpm:
36 * tree-widget/default/no-guide.png, tree-widget/default/no-guide.xpm:
37 * tree-widget/default/no-handle.png, tree-widget/default/no-handle.xpm:
38 * tree-widget/default/open.png, tree-widget/default/open.xpm:
39 * tree-widget/folder/close.png, tree-widget/folder/close.xpm:
40 * tree-widget/folder/empty.png, tree-widget/folder/empty.xpm:
41 * tree-widget/folder/end-guide.png, tree-widget/folder/end-guide.xpm:
42 * tree-widget/folder/guide.png, tree-widget/folder/guide.xpm:
43 * tree-widget/folder/handle.png, tree-widget/folder/handle.xpm:
44 * tree-widget/folder/leaf.png, tree-widget/folder/leaf.xpm:
45 * tree-widget/folder/no-guide.png, tree-widget/folder/no-guide.xpm:
46 * tree-widget/folder/no-handle.png, tree-widget/folder/no-handle.xpm:
47 * tree-widget/folder/open.png, tree-widget/folder/open.xpm:
48 Reduce the size of images.
49
502006-05-29 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
51
52 * NEWS: Mention F10 for Gtk+/Leddtif/Lucid menus.
53
542006-05-26 Eli Zaretskii <eliz@gnu.org>
55
56 * ledit.l: Remove file.
57
582006-05-26 Kenichi Handa <handa@m17n.org>
59
60 * NEWS (find-operation-coding-system): Mention the new argument
61 format.
62
632006-05-24 Carsten Dominik <dominik@science.uva.nl>
64
65 * orgcard.tex: (section{Motion}): Added the item navigation
66 commands.
67 (section{Publishing}): New section.
68 (section{Links}): Documented elisp and shell links.
69
702006-05-20 Rodrigo Real <rreal@ucpel.tche.br>
71
72 * pt-br-refcard.tex: Update.
73
742006-05-23 Reiner Steib <Reiner.Steib@gmx.de>
75
76 * pl-refcard.tex (Local variables): Add compile-command.
77
78 * ru-refcard.tex (Local variables): Add compile-command and
79 coding.
80
81 * pt-br-refcard.tex: Don't \input psfig.
82
83 * refcard.tex (section{Info}): Add `i'. Use `s' instead of `M-s'.
84
85 * de-refcard.tex (section{Info}): Ditto.
86
87 * fr-refcard.tex (section{Info}): Ditto. Translation suggested by
88 Stefan Monnier <monnier@iro.umontreal.ca>.
89
90 * pl-refcard.tex (section{Info}): Ditto. Translation suggested by
91 Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se>.
92
93 * cs-refcard.tex (section{Info}): Use `s' instead of `M-s'. Entry
94 for `i' is not translated yet.
95
96 * pt-br-refcard.tex (section{Info}): Ditto.
97
98 * ru-refcard.tex (section{Info}): Ditto.
99
100 * sk-refcard.tex (section{Info}): Ditto.
101
1022006-05-22 Reiner Steib <Reiner.Steib@gmx.de>
103
104 * MORE.STUFF: Update AUCTeX entry.
105
1062006-05-20 Rodrigo Real <rreal@ucpel.tche.br>
107
108 * pt-br-refcard.tex:
109 * pt-br-refcard.ps: New files.
110
12006-05-15 Reiner Steib <Reiner.Steib@gmx.de> 1112006-05-15 Reiner Steib <Reiner.Steib@gmx.de>
2 112
3 * sk-refcard.tex: Add coding cookie. 113 * sk-refcard.tex: Add coding cookie.
@@ -44,8 +154,8 @@
44 154
452006-04-18 Reiner Steib <Reiner.Steib@gmx.de> 1552006-04-18 Reiner Steib <Reiner.Steib@gmx.de>
46 156
47 * gnus-refcard.tex: Bump version to 5.11. Remove duplicate 157 * gnus-refcard.tex: Bump version to 5.11. Remove duplicate \def's.
48 \def's. Update date. 158 Update date.
49 159
502006-04-18 Bill Wohler <wohler@newt.com> 1602006-04-18 Bill Wohler <wohler@newt.com>
51 161
@@ -82,8 +192,7 @@
82 * images/README: Update with following information. 192 * images/README: Update with following information.
83 193
84 * images/data-save.xpm, images/mail/flag-for-followup.xpm: 194 * images/data-save.xpm, images/mail/flag-for-followup.xpm:
85 * images/zoom-in.xpm, images/zoom-out.xpm: New images from GNOME 195 * images/zoom-in.xpm, images/zoom-out.xpm: New images from GNOME 2.12.
86 2.12.
87 196
88 * images/contact.pbm, images/data-save.pbm, images/delete.pbm: 197 * images/contact.pbm, images/data-save.pbm, images/delete.pbm:
89 * images/mail/flag-for-followup.pbm, images/mail/inbox.pbm: 198 * images/mail/flag-for-followup.pbm, images/mail/inbox.pbm:
@@ -115,8 +224,7 @@
115 * images/mail/alias.xpm, images/mail/refile.pbm: 224 * images/mail/alias.xpm, images/mail/refile.pbm:
116 * images/mail/refile.xpm, images/page-down.pbm: 225 * images/mail/refile.xpm, images/page-down.pbm:
117 * images/page-down.xpm, images/widen.pbm, images/widen.xpm: Remove 226 * images/page-down.xpm, images/widen.pbm, images/widen.xpm: Remove
118 custom MH-E icons since MH-E is now using the equivalent GTK/GNOME 227 custom MH-E icons -- MH-E is now using the equivalent GTK/GNOME icons.
119 icons.
120 228
1212006-03-23 Romain Francoise <romain@orebokech.com> 2292006-03-23 Romain Francoise <romain@orebokech.com>
122 230
@@ -147,8 +255,7 @@
147 * images/mail/save.xpm, images/mail/send.xpm: 255 * images/mail/save.xpm, images/mail/send.xpm:
148 * images/mail/spam.xpm, images/next-page.xpm: 256 * images/mail/spam.xpm, images/next-page.xpm:
149 * images/refresh.xpm, images/separator.xpm: 257 * images/refresh.xpm, images/separator.xpm:
150 * images/sort-ascending.xpm: 258 * images/sort-ascending.xpm, images/sort-column-ascending.xpm:
151 * images/sort-column-ascending.xpm:
152 * images/sort-criteria.xpm, images/sort-descending.xpm: 259 * images/sort-criteria.xpm, images/sort-descending.xpm:
153 * images/sort-row-ascending.xpm: 260 * images/sort-row-ascending.xpm:
154 New icons, copied from Gnus trunk (originally from Gnome 2.6). 261 New icons, copied from Gnus trunk (originally from Gnome 2.6).
@@ -637,21 +744,10 @@
637 744
638 Update FSF's address in GPL notices. 745 Update FSF's address in GPL notices.
639 746
640 * INTERVIEW: 747 * INTERVIEW, calccard.tex, cs-dired-ref.tex, cs-refcard.tex:
641 * calccard.tex: 748 * dired-ref.tex, fr-drdref.tex, fr-refcard.tex, gfdl.1:
642 * cs-dired-ref.tex: 749 * pl-refcard.tex, refcard.tex, ru-refcard.tex, sk-dired-ref.tex:
643 * cs-refcard.tex: 750 * sk-refcard.tex, vipcard.tex, viperCard.tex: Update FSF's address.
644 * dired-ref.tex:
645 * fr-drdref.tex:
646 * fr-refcard.tex:
647 * gfdl.1:
648 * pl-refcard.tex:
649 * refcard.tex:
650 * ru-refcard.tex:
651 * sk-dired-ref.tex:
652 * sk-refcard.tex:
653 * vipcard.tex:
654 * viperCard.tex: Update FSF's address.
655 751
6562005-07-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 7522005-07-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
657 753
diff --git a/etc/ETAGS.EBNF b/etc/ETAGS.EBNF
index 4d09eaa581d..395080b9c0a 100644
--- a/etc/ETAGS.EBNF
+++ b/etc/ETAGS.EBNF
@@ -1,5 +1,7 @@
1-*- indented-text -*- 1-*- indented-text -*-
2 2
3See the end of this file for copyright information.
4
3This file contains two sections: 5This file contains two sections:
4 6
51) An EBNF (Extended Backus-Naur Form) description of the format of 71) An EBNF (Extended Backus-Naur Form) description of the format of
@@ -91,3 +93,22 @@ rightmost consecutive characters in the pattern which are not one of
91those. 93those.
92 94
93===================== end of discussion of tag names ===================== 95===================== end of discussion of tag names =====================
96
97Copyright (c) 2002, 2004, 2006
98Free software Foundation, Inc.
99
100COPYING PERMISSIONS:
101
102 This document is free software; you can redistribute it and/or modify
103 it under the terms of the GNU General Public License as published by
104 the Free Software Foundation; either version 2 of the License, or
105 (at your option) any later version.
106
107 This program is distributed in the hope that it will be useful,
108 but WITHOUT ANY WARRANTY; without even the implied warranty of
109 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
110 GNU General Public License for more details.
111
112 You should have received a copy of the GNU General Public License
113 along with this program; if not, write to the Free Software
114 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/etc/FTP b/etc/FTP
index 45048af4160..ea8d50f23de 100644
--- a/etc/FTP
+++ b/etc/FTP
@@ -1,2 +1,7 @@
1Please refer to <http://www.gnu.org/software/emacs/> for information 1Please refer to <http://www.gnu.org/software/emacs/> for information
2about obtaining Emacs. 2about obtaining Emacs.
3
4Copyright (c) 2000, 2006 Free Software Foundation, Inc.
5
6Verbatim copying and distribution is permitted in any medium
7provided this notice is preserved.
diff --git a/etc/HELLO b/etc/HELLO
index 2e5181fc41b..ae7b85b49ff 100644
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -66,3 +66,24 @@ Maltese (Malti) Bon,Cu(Bu, Sa,C11(Ba
66;;; Local Variables: 66;;; Local Variables:
67;;; tab-width: 32 67;;; tab-width: 32
68;;; End: 68;;; End:
69
70
71
72Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006
73Free software Foundation, Inc.
74
75COPYING PERMISSIONS:
76
77 This document is free software; you can redistribute it and/or modify
78 it under the terms of the GNU General Public License as published by
79 the Free Software Foundation; either version 2 of the License, or
80 (at your option) any later version.
81
82 This program is distributed in the hope that it will be useful,
83 but WITHOUT ANY WARRANTY; without even the implied warranty of
84 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
85 GNU General Public License for more details.
86
87 You should have received a copy of the GNU General Public License
88 along with this program; if not, write to the Free Software
89 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/etc/LEDIT b/etc/LEDIT
deleted file mode 100644
index 009243f5ec0..00000000000
--- a/etc/LEDIT
+++ /dev/null
@@ -1,77 +0,0 @@
1Date: 17 Apr 85 15:45:42 EST (Wed)
2From: Martin David Connor <mdc@MIT-HTVAX.ARPA>
3
4 Date: Sat, 13 Apr 85 16:28:15 est
5 From: Richard M. Stallman <rms@mit-prep>
6
7 Can you help this person? Also, can you give me the rest of ledit
8 to distribute, plus some info on how to use it?
9
10I have put the files "ledit.l" and "leditcfns.c" on prep:~mdc.
11Much to my disgust ledit.l relied on some bogus little package of
12functions on HT, so I had to massage it a bit.
13
14To get it to work, one must:
15
16 - Compile leditcfns.c with something like:
17
18 cc leditcfns.c
19
20 - Edit ledit.l, changing the line beginning "(cfasl" to
21 have the right pathname for the cfns file you compiled in
22 the last step.
23
24 - Compile ledit.l with:
25
26 liszt ledit.l
27
28Then put the following lines in your .lisprc file:
29
30 ;load in functions for emacs interface
31 (load "//src//mdc//ledit//ledit") ; Location of Ledit library
32 (set-proc-str "%gnumacs") ; Name of editor
33
34Then you can use ^E <RETURN> to get from LISP back to gnumacs.
35
36Here is the part of my .emacs file that pertains to ledit.
37
38 ;;; Set up ledit mode
39 (setq ledit-go-to-lisp-string "%lisp")
40 (setq lisp-mode-hook 'ledit-from-lisp-mode)
41
42 Date: Sat, 13 Apr 85 11:26:32 cst
43 From: neves@wisc-ai.arpa (David Neves)
44
45 This is a documentation question.
46 I cannot figure out how to use Ledit. I suspect I need some
47 function on the Franz Lisp end of things to go to Emacs and read in
48 the temporary file. Is this true? Is the Lisp job started within
49 Emacs or outside of emacs? I'm just plain confused. Perhaps a couple
50 of words from someone in the know would help.
51
52 A related question. I have been using a shell buffer when interacting
53 with Lisp (ie. put a definition in the kill buffer and then yank it
54 into the shell buffer to redefine it). This is nice but tends to fill
55 up the shell buffer with lots of code (I'd rather keep calls to functions
56 in the shell and not the functions themselves).
57 My question: Is using the shell buffer "better" than ledit? Am I using
58 it in the best way (i.e. copying definitions from an edit buffer to the
59 shell buffer)? -Thanks, David Neves
60
61I have found that ledit works well for doing programming development
62when you are changing lots of little pieces of a file and don't wish
63to recompile the whole file. Of course M-X Compile is very nice for
64calling up a liszt on a buffer and watching it in the another window.
65Of course the interface of something like NIL is even better because
66you can compile your function directly into your lisp. But since NIL
67doesn't run under Unix, this is probably the next best thing.
68
69I have tried the 2 window method (shell in lower window, lisp code in
70upper), and have found it a little awkward. It does have certain
71advantages, but most of the time, I get be fine using M-C-D to save a
72defun for lisp, and C-X Z to jump back to LISP. C-E RETURN from lisp
73is also mnemonic for getting back to gnumacs.
74
75I hope this helps somewhat.
76
77
diff --git a/etc/LPF b/etc/LPF
deleted file mode 100644
index 02c7d28d150..00000000000
--- a/etc/LPF
+++ /dev/null
@@ -1,43 +0,0 @@
1 Protect Your Freedom to Write Programs
2 Join the League for Programming Freedom
3 (Version of February 3, 1994)
4
5Ten years ago, programmers were allowed to write programs using all
6the techniques they knew, and providing whatever features they felt
7were useful. This is no longer the case. New monopolies, known as
8software patents and interface copyrights, have taken away our freedom
9of expression and our ability to do a good job.
10
11"Look and feel" lawsuits attempt to monopolize well-known command
12languages; some have succeeded. Copyrights on command languages
13enforce gratuitous incompatibility, close opportunities for
14competition, and stifle incremental improvements.
15
16Software patents are even more dangerous; they make every design
17decision in the development of a program carry a risk of a lawsuit,
18with draconian pretrial seizure. It is difficult and expensive to
19find out whether the techniques you consider using are patented; it is
20impossible to find out whether they will be patented in the future.
21
22The League for Programming Freedom is a grass-roots organization of
23professors, students, businessmen, programmers and users dedicated to
24bringing back the freedom to write programs. The League is not
25opposed to the legal system that Congress expressly established for
26software--copyright on individual programs. Our aim is to reverse the
27recent changes that prevent programmers from doing their work.
28
29The League works to abolish the new monopolies by publishing articles,
30talking with public officials, denouncing egregious offenders, and
31filing amicus curiae briefs, most notably against Lotus in its suit
32against Borland. We testified twice at the recent Patent Office
33hearings on software patents. We welcome suggestions for other
34activities, as well as help in carrying them out.
35
36
37(Added 2003) The League for Programming Freedom is inactive nowadays,
38though its web site www.programming-freedom.org is still maintained.
39It would be very useful to find a person who could take the initiative
40to get the LPF operating again. It will be a substantial job,
41requiring persistence and working with a lawyer. If you want to do
42it, please write to rms@gnu.org.
43
diff --git a/etc/MACHINES b/etc/MACHINES
index ee57fc6d0b0..9d7e81ebb97 100644
--- a/etc/MACHINES
+++ b/etc/MACHINES
@@ -1,3 +1,9 @@
1Emacs machines list
2
3Copyright (c) 1989, 1990, 1992, 1993, 1998, 2001, 2003, 2006
4Free software Foundation, Inc.
5See the end of the file for copying permissions.
6
1This is a list of the status of GNU Emacs on various machines and systems. 7This is a list of the status of GNU Emacs on various machines and systems.
2 8
3For each system and machine, we give the configuration name you should 9For each system and machine, we give the configuration name you should
@@ -1470,5 +1476,17 @@ mode: indented-text
1470fill-prefix: " " 1476fill-prefix: " "
1471End: 1477End:
1472 1478
1479COPYING PERMISSIONS:
1480
1481 Permission is hereby granted, free of charge, to any person obtaining
1482 a copy of this file, to deal in the file without restriction, including
1483 without limitation the rights to use, copy, modify, merge, publish,
1484 distribute, sublicense, and/or sell copies of the file, and to
1485 permit persons to whom the file is furnished to do so, subject to
1486 the following condition:
1487
1488 The above copyright notice and this permission notice shall be
1489 included in all copies or substantial portions of the file.
1490
1473 1491
1474arch-tag: 7d2e93c7-e982-40ec-9055-3cd064042473 1492arch-tag: 7d2e93c7-e982-40ec-9055-3cd064042473
diff --git a/etc/MAILINGLISTS b/etc/MAILINGLISTS
index ff3d5013b74..531e57522ee 100644
--- a/etc/MAILINGLISTS
+++ b/etc/MAILINGLISTS
@@ -1,8 +1,10 @@
1 GNU Project Electronic Mailing Lists and gnUSENET Newsgroups 1 GNU Project Electronic Mailing Lists and gnUSENET Newsgroups
2 Last Updated 2004-10-19 2 Last Updated 2006-06-03
3 3
4 Please report improvements to: gnu@gnu.org 4 Please report improvements to: gnu@gnu.org
5 5
6 See the end of this file for copyright notice and copying conditions
7
6* Mailing list archives 8* Mailing list archives
7 9
8The GNU mailing lists are archived at http://lists.gnu.org. 10The GNU mailing lists are archived at http://lists.gnu.org.
@@ -316,4 +318,18 @@ mode: outline
316fill-column: 72 318fill-column: 72
317End: 319End:
318 320
321Copyright (c) 1999, 2003, 2004, 2006
322Free software Foundation, Inc.
323
324 Permission is hereby granted, free of charge, to any person obtaining
325 a copy of this file, to deal in the file without restriction, including
326 without limitation the rights to use, copy, modify, merge, publish,
327 distribute, sublicense, and/or sell copies of the file, and to
328 permit persons to whom the file is furnished to do so, subject to
329 the following condition:
330
331 The above copyright notice and this permission notice shall be
332 included in all copies or substantial portions of the file.
333
334
319arch-tag: 6e42bba8-7532-4a23-8486-99dbc5770a8e 335arch-tag: 6e42bba8-7532-4a23-8486-99dbc5770a8e
diff --git a/etc/MORE.STUFF b/etc/MORE.STUFF
index 69bdd2d2bfb..b3ccc33dda6 100644
--- a/etc/MORE.STUFF
+++ b/etc/MORE.STUFF
@@ -1,4 +1,7 @@
1More Neat Stuff for your Emacs 1More Neat Stuff for your Emacs
2Copyright (c) 1993, 1999, 2003, 2004, 2005, 2006
3Free software Foundation, Inc.
4See the end of the file for copying permissions.
2 5
3This file describes GNU Emacs programs and resources that are 6This file describes GNU Emacs programs and resources that are
4maintained by other people. Some of these may become part of the 7maintained by other people. Some of these may become part of the
@@ -117,9 +120,9 @@ the future.
117You might like to check whether they are packaged for your system. 120You might like to check whether they are packaged for your system.
118Several are for Debian GNU/Linux in particular. 121Several are for Debian GNU/Linux in particular.
119 122
120 * AUCTeX: fancy (La)TeX support: <URL:http://www.gnu.org/software/auctex/> 123 * AUCTeX: <URL:http://www.gnu.org/software/auctex/>
121 There's an AUCTeX mail list/newsgroup: 124 An extensible package that supports writing and formatting TeX
122 <URL:news://sunsite.dk/emacs.auctex>. 125 files (including AMS-TeX, LaTeX, Texinfo, ConTeXt, and docTeX).
123 126
124 * BBDB: personal Info Rolodex integrated with mail/news: 127 * BBDB: personal Info Rolodex integrated with mail/news:
125 <URL:http://bbdb.sourceforge.net/> 128 <URL:http://bbdb.sourceforge.net/>
@@ -269,4 +272,12 @@ mode: view
269eval: (goto-address) 272eval: (goto-address)
270End: 273End:
271 274
275COPYING PERMISSIONS
276 Permission to use, copy, modify, and distribute this
277 software and its documentation for any purpose and without
278 fee is hereby granted, provided that the above copyright
279 notice appear in all copies and that both that copyright
280 notice and this permission notice appear in supporting
281 documentation.
282
272arch-tag: c1d4e7c8-db85-44e6-909e-659e2b20fefa 283arch-tag: c1d4e7c8-db85-44e6-909e-659e2b20fefa
diff --git a/etc/MOTIVATION b/etc/MOTIVATION
index 267a2333f76..50194925f13 100644
--- a/etc/MOTIVATION
+++ b/etc/MOTIVATION
@@ -7,6 +7,9 @@ Special to the Boston Globe
7[reprinted with permission of the author 7[reprinted with permission of the author
8 from the Monday 19 January 1987 Boston Globe] 8 from the Monday 19 January 1987 Boston Globe]
9 9
10Verbatim copying and distribution is permitted in any medium
11provided this notice is preserved.
12
10In the laboratory, rats get Rice Krispies. In the classroom the top 13In the laboratory, rats get Rice Krispies. In the classroom the top
11students get A's, and in the factory or office the best workers get 14students get A's, and in the factory or office the best workers get
12raises. It's an article of faith for most of us that rewards promote 15raises. It's an article of faith for most of us that rewards promote
diff --git a/etc/NEWS b/etc/NEWS
index 8be4da9a7e1..d46f23596b9 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1,12 +1,18 @@
1GNU Emacs NEWS -- history of user-visible changes. 2003-05-21 1GNU Emacs NEWS -- history of user-visible changes. 2006-06-04
2Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 2Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4See the end for copying conditions. 4See the end for copying conditions.
5 5
6Please send Emacs bug reports to bug-gnu-emacs@gnu.org. 6Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
7For older news, see the file ONEWS 7If possible, use M-x report-emacs-bug.
8You can narrow news to the specific version by calling 8
9`view-emacs-news' with a prefix argument or by typing C-u C-h C-n. 9This file is about changes in emacs version 22.
10
11See files NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17 for changes
12in older emacs versions.
13
14You can narrow news to a specific version by calling `view-emacs-news'
15with a prefix argument or by typing C-u C-h C-n.
10 16
11Temporary note: 17Temporary note:
12 +++ indicates that the appropriate manual has already been updated. 18 +++ indicates that the appropriate manual has already been updated.
@@ -147,6 +153,12 @@ Type `C-u C-h t' to choose one of them in case your language setup
147doesn't automatically select the right one. 153doesn't automatically select the right one.
148 154
149--- 155---
156** A Portuguese translation of Emacs' reference card has been added.
157Its name is `pt-br-refcard.tex'. The corresponding PostScript file is
158also included.
159
160
161---
150** A French translation of the `Emacs Survival Guide' is available. 162** A French translation of the `Emacs Survival Guide' is available.
151 163
152--- 164---
@@ -828,7 +840,7 @@ it remains unchanged.
828+++ 840+++
829*** New user option `history-delete-duplicates'. 841*** New user option `history-delete-duplicates'.
830If set to t when adding a new history element, all previous identical 842If set to t when adding a new history element, all previous identical
831elements are deleted. 843elements are deleted from the history list.
832 844
833** Redisplay changes: 845** Redisplay changes:
834 846
@@ -1059,6 +1071,11 @@ disabled by customizing the variable `use-file-dialog'.
1059be navigated with the arrow keys (like Gtk+, Mac and W32). 1071be navigated with the arrow keys (like Gtk+, Mac and W32).
1060 1072
1061+++ 1073+++
1074*** The menu bar for Motif/Lesstif/Lucid/Gtk+ can be navigated with keys.
1075Pressing F10 shows the first menu in the menu bar. Navigation is done with
1076the arrow keys, select with the return key and cancel with the escape keys.
1077
1078+++
1062*** The Lucid menus can display multilingual text in your locale. You have 1079*** The Lucid menus can display multilingual text in your locale. You have
1063to explicitly specify a fontSet resource for this to work, for example 1080to explicitly specify a fontSet resource for this to work, for example
1064`-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. 1081`-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'.
@@ -1148,6 +1165,18 @@ mouse-wheel-inhibit-click-time variables.
1148 1165
1149** Multilingual Environment (Mule) changes: 1166** Multilingual Environment (Mule) changes:
1150 1167
1168*** You can disable character translation for a file using the -*-
1169construct. Include `enable-character-translation: nil' inside the
1170-*-...-*- to disable any character translation that may happen by
1171various global and per-coding-system translation tables. You can also
1172specify it in a local variable list at the end of the file. For
1173shortcut, instead of using this long variable name, you can append the
1174character "!" at the end of coding-system name specified in -*-
1175construct or in a local variable list. For example, if a file has the
1176following header, it is decoded by the coding system `iso-latin-1'
1177without any character translation:
1178;; -*- coding: iso-latin-1!; -*-
1179
1151--- 1180---
1152*** Language environment and various default coding systems are setup 1181*** Language environment and various default coding systems are setup
1153more correctly according to the current locale name. If the locale 1182more correctly according to the current locale name. If the locale
@@ -1368,6 +1397,10 @@ with different file attributes in two dired buffers.
1368of marked files with the value entered in the minibuffer. 1397of marked files with the value entered in the minibuffer.
1369 1398
1370+++ 1399+++
1400*** The Dired command `dired-goto-file' is now bound to j, not M-g.
1401This is to avoid hiding the global key binding of M-g.
1402
1403+++
1371*** In Dired's ! command (dired-do-shell-command), `*' and `?' now 1404*** In Dired's ! command (dired-do-shell-command), `*' and `?' now
1372control substitution of the file names only when they are surrounded 1405control substitution of the file names only when they are surrounded
1373by whitespace. This means you can now use them as shell wildcards 1406by whitespace. This means you can now use them as shell wildcards
@@ -1376,8 +1409,8 @@ double quotes make no difference in the shell, but they prevent
1376special treatment in `dired-do-shell-command'. 1409special treatment in `dired-do-shell-command'.
1377 1410
1378+++ 1411+++
1379*** In Dired, the w command now copies the current line's file name 1412*** In Dired, the w command now stores the current line's file name
1380into the kill ring. With a zero prefix arg, copies absolute file names. 1413into the kill ring. With a zero prefix arg, it stores the absolute file name.
1381 1414
1382+++ 1415+++
1383*** In Dired-x, Omitting files is now a minor mode, dired-omit-mode. 1416*** In Dired-x, Omitting files is now a minor mode, dired-omit-mode.
@@ -2057,12 +2090,18 @@ subprocess are controlled by the user options `scheme-trace-command',
2057`scheme-untrace-command' and `scheme-expand-current-form'. 2090`scheme-untrace-command' and `scheme-expand-current-form'.
2058 2091
2059--- 2092---
2060** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake. 2093** Changes in Makefile mode
2094
2095*** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
2061 2096
2062The former two couldn't be differentiated before, and the latter three 2097The former two couldn't be differentiated before, and the latter three
2063are new. Font-locking is robust now and offers new customizable 2098are new. Font-locking is robust now and offers new customizable
2064faces. 2099faces.
2065 2100
2101*** The variable `makefile-query-one-target-method' has been renamed
2102to `makefile-query-one-target-method-function'. The old name is still
2103available as alias.
2104
2066+++ 2105+++
2067** In Outline mode, `hide-body' no longer hides lines at the top 2106** In Outline mode, `hide-body' no longer hides lines at the top
2068of the file that precede the first header line. 2107of the file that precede the first header line.
@@ -2678,6 +2717,10 @@ i.e., there is always a closing tag.
2678By default, its setting is inferred on a buffer-by-buffer basis 2717By default, its setting is inferred on a buffer-by-buffer basis
2679from the file name or buffer contents. 2718from the file name or buffer contents.
2680 2719
2720*** The variable `sgml-transformation' has been renamed to
2721`sgml-transformation-function'. The old name is still available as
2722alias.
2723
2681+++ 2724+++
2682*** `xml-mode' is now an alias for `sgml-mode', which has XML support. 2725*** `xml-mode' is now an alias for `sgml-mode', which has XML support.
2683 2726
@@ -2755,6 +2798,10 @@ extracting the content of a BibTeX field.
2755`bibtex-autokey-titleword-case-convert-function'. The old names are 2798`bibtex-autokey-titleword-case-convert-function'. The old names are
2756still available as aliases. 2799still available as aliases.
2757 2800
2801** In Artist mode the variable `artist-text-renderer' has been
2802renamed to `artist-text-renderer-function'. The old name is still
2803available as alias.
2804
2758+++ 2805+++
2759** In Enriched mode, `set-left-margin' and `set-right-margin' are now 2806** In Enriched mode, `set-left-margin' and `set-right-margin' are now
2760by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' 2807by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
@@ -3366,7 +3413,9 @@ C-x C-f passes the file name to `find-file' with non-nil WILDCARDS
3366argument, which visits multiple files, and C-x d passes it to `dired'. 3413argument, which visits multiple files, and C-x d passes it to `dired'.
3367 3414
3368--- 3415---
3369** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction. 3416** Changes in Skeleton
3417
3418*** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
3370 3419
3371`@' has reverted to only setting `skeleton-positions' and no longer 3420`@' has reverted to only setting `skeleton-positions' and no longer
3372sets `skeleton-point'. Skeletons which used @ to mark 3421sets `skeleton-point'. Skeletons which used @ to mark
@@ -3374,6 +3423,12 @@ sets `skeleton-point'. Skeletons which used @ to mark
3374updated `skeleton-insert' docstring explains these new features along 3423updated `skeleton-insert' docstring explains these new features along
3375with other details of skeleton construction. 3424with other details of skeleton construction.
3376 3425
3426*** The variables `skeleton-transformation', `skeleton-filter', and
3427`skeleton-pair-filter' have been renamed to
3428`skeleton-transformation-function', `skeleton-filter-function', and
3429`skeleton-pair-filter-function'. The old names are still available
3430as aliases.
3431
3377--- 3432---
3378** Hideshow mode changes 3433** Hideshow mode changes
3379 3434
@@ -3483,6 +3538,27 @@ variable `calculator-radix-grouping-mode'.
3483 3538
3484--- 3539---
3485** cplus-md.el has been deleted. 3540** cplus-md.el has been deleted.
3541
3542** Ewoc changes
3543
3544*** The new function `ewoc-delete' deletes specified nodes.
3545
3546*** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of
3547a newline after each pretty-printed entry and after the header and footer.
3548This allows you to create multiple-entry ewocs on a single line and to
3549effect "invisible" nodes by arranging for the pretty-printer to not print
3550anything for those nodes.
3551
3552For example, these two sequences of expressions behave identically:
3553
3554;; NOSEP nil
3555(defun PP (data) (insert (format "%S" data)))
3556(ewoc-create 'PP "start\n")
3557
3558;; NOSEP t
3559(defun PP (data) (insert (format "%S\n" data)))
3560(ewoc-create 'PP "start\n\n" "\n" t)
3561
3486 3562
3487* Changes in Emacs 22.1 on non-free operating systems 3563* Changes in Emacs 22.1 on non-free operating systems
3488 3564
@@ -3600,6 +3676,9 @@ w32-use-full-screen-buffer to t.
3600 3676
3601* Incompatible Lisp Changes in Emacs 22.1 3677* Incompatible Lisp Changes in Emacs 22.1
3602 3678
3679** The function find-operation-coding-system accepts a cons (FILENAME
3680. BUFFER) in an argument correponding to the target.
3681
3603--- 3682---
3604** The variables post-command-idle-hook and post-command-idle-delay have 3683** The variables post-command-idle-hook and post-command-idle-delay have
3605 been removed. Use run-with-idle-timer instead. 3684 been removed. Use run-with-idle-timer instead.
@@ -3630,6 +3709,7 @@ deleting the part of subprocess output that matches the input.
3630+++ 3709+++
3631** The variable `memory-full' now remains t until 3710** The variable `memory-full' now remains t until
3632there is no longer a shortage of memory. 3711there is no longer a shortage of memory.
3712
3633 3713
3634* Lisp Changes in Emacs 22.1 3714* Lisp Changes in Emacs 22.1
3635 3715
@@ -4276,11 +4356,6 @@ ignore the leading dots in file names, so that file names such as
4276`.emacs' are treated as extensionless. 4356`.emacs' are treated as extensionless.
4277 4357
4278+++ 4358+++
4279*** `copy-file' now takes an additional option arg MUSTBENEW.
4280
4281This argument works like the MUSTBENEW argument of write-file.
4282
4283+++
4284*** `visited-file-modtime' and `calendar-time-from-absolute' now return 4359*** `visited-file-modtime' and `calendar-time-from-absolute' now return
4285a list of two integers, instead of a cons. 4360a list of two integers, instead of a cons.
4286 4361
@@ -4374,10 +4449,6 @@ defaults to the current buffer.
4374was selected when entering the minibuffer. 4449was selected when entering the minibuffer.
4375 4450
4376+++ 4451+++
4377*** `read-from-minibuffer' now accepts an additional argument KEEP-ALL
4378saying to put all inputs in the history list, even empty ones.
4379
4380+++
4381*** The `read-file-name' function now takes an additional argument which 4452*** The `read-file-name' function now takes an additional argument which
4382specifies a predicate which the file name read must satisfy. The 4453specifies a predicate which the file name read must satisfy. The
4383new variable `read-file-name-predicate' contains the predicate argument 4454new variable `read-file-name-predicate' contains the predicate argument
@@ -4399,6 +4470,12 @@ whether completion ignores case when reading a file name with the
4399It is like `read-file-name' except that the defaulting works better 4470It is like `read-file-name' except that the defaulting works better
4400for directories, and completion inside it shows only directories. 4471for directories, and completion inside it shows only directories.
4401 4472
4473+++
4474*** The new variable `history-add-new-input' specifies whether to add new
4475elements in history. If set to nil, minibuffer reading functions don't
4476add new elements to the history list, so it is possible to do this
4477afterwards by calling `add-to-history' explicitly.
4478
4402** Completion changes: 4479** Completion changes:
4403 4480
4404+++ 4481+++
@@ -5672,9335 +5749,14 @@ red splotch. It is an error if the argument to `noreturn' does
5672return. The macro `1value' suppresses a brown splotch for its argument. 5749return. The macro `1value' suppresses a brown splotch for its argument.
5673This macro is a no-op except during test-coverage -- then it signals 5750This macro is a no-op except during test-coverage -- then it signals
5674an error if the argument actually returns differing values. 5751an error if the argument actually returns differing values.
5675
5676* Installation changes in Emacs 21.3
5677
5678** Support for GNU/Linux on little-endian MIPS and on IBM S390 has
5679been added.
5680
5681
5682* Changes in Emacs 21.3
5683
5684** The obsolete C mode (c-mode.el) has been removed to avoid problems
5685with Custom.
5686
5687** UTF-16 coding systems are available, encoding the same characters
5688as mule-utf-8.
5689
5690** There is a new language environment for UTF-8 (set up automatically
5691in UTF-8 locales).
5692
5693** Translation tables are available between equivalent characters in
5694different Emacs charsets -- for instance `e with acute' coming from the
5695Latin-1 and Latin-2 charsets. User options `unify-8859-on-encoding-mode'
5696and `unify-8859-on-decoding-mode' respectively turn on translation
5697between ISO 8859 character sets (`unification') on encoding
5698(e.g. writing a file) and decoding (e.g. reading a file). Note that
5699`unify-8859-on-encoding-mode' is useful and safe, but
5700`unify-8859-on-decoding-mode' can cause text to change when you read
5701it and write it out again without edits, so it is not generally advisable.
5702By default `unify-8859-on-encoding-mode' is turned on.
5703
5704** In Emacs running on the X window system, the default value of
5705`selection-coding-system' is now `compound-text-with-extensions'.
5706
5707If you want the old behavior, set selection-coding-system to
5708compound-text, which may be significantly more efficient. Using
5709compound-text-with-extensions seems to be necessary only for decoding
5710text from applications under XFree86 4.2, whose behavior is actually
5711contrary to the compound text specification.
5712
5713
5714* Installation changes in Emacs 21.2
5715
5716** Support for BSD/OS 5.0 has been added.
5717
5718** Support for AIX 5.1 was added.
5719
5720
5721* Changes in Emacs 21.2
5722
5723** Emacs now supports compound-text extended segments in X selections.
5724
5725X applications can use `extended segments' to encode characters in
5726compound text that belong to character sets which are not part of the
5727list of approved standard encodings for X, e.g. Big5. To paste
5728selections with such characters into Emacs, use the new coding system
5729compound-text-with-extensions as the value of selection-coding-system.
5730
5731** The default values of `tooltip-delay' and `tooltip-hide-delay'
5732were changed.
5733
5734** On terminals whose erase-char is ^H (Backspace), Emacs
5735now uses normal-erase-is-backspace-mode.
5736
5737** When the *scratch* buffer is recreated, its mode is set from
5738initial-major-mode, which normally is lisp-interaction-mode,
5739instead of using default-major-mode.
5740
5741** The new option `Info-scroll-prefer-subnodes' causes Info to behave
5742like the stand-alone Info reader (from the GNU Texinfo package) as far
5743as motion between nodes and their subnodes is concerned. If it is t
5744(the default), Emacs behaves as before when you type SPC in a menu: it
5745visits the subnode pointed to by the first menu entry. If this option
5746is nil, SPC scrolls to the end of the current node, and only then goes
5747to the first menu item, like the stand-alone reader does.
5748
5749This change was already in Emacs 21.1, but wasn't advertised in the
5750NEWS.
5751
5752
5753* Lisp Changes in Emacs 21.2
5754
5755** The meanings of scroll-up-aggressively and scroll-down-aggressively
5756have been interchanged, so that the former now controls scrolling up,
5757and the latter now controls scrolling down.
5758
5759** The variable `compilation-parse-errors-filename-function' can
5760be used to transform filenames found in compilation output.
5761
5762
5763* Installation Changes in Emacs 21.1
5764
5765See the INSTALL file for information on installing extra libraries and
5766fonts to take advantage of the new graphical features and extra
5767charsets in this release.
5768
5769** Support for GNU/Linux on IA64 machines has been added.
5770
5771** Support for LynxOS has been added.
5772
5773** There are new configure options associated with the support for
5774images and toolkit scrollbars. Use the --help option in `configure'
5775to list them.
5776
5777** You can build a 64-bit Emacs for SPARC/Solaris systems which
5778support 64-bit executables and also on Irix 6.5. This increases the
5779maximum buffer size. See etc/MACHINES for instructions. Changes to
5780build on other 64-bit systems should be straightforward modulo any
5781necessary changes to unexec.
5782
5783** There is a new configure option `--disable-largefile' to omit
5784Unix-98-style support for large files if that is available.
5785
5786** There is a new configure option `--without-xim' that instructs
5787Emacs to not use X Input Methods (XIM), if these are available.
5788
5789** `movemail' defaults to supporting POP. You can turn this off using
5790the --without-pop configure option, should that be necessary.
5791
5792** This version can be built for the Macintosh, but does not implement
5793all of the new display features described below. The port currently
5794lacks unexec, asynchronous processes, and networking support. See the
5795"Emacs and the Mac OS" appendix in the Emacs manual, for the
5796description of aspects specific to the Mac.
5797
5798** Note that the MS-Windows port does not yet implement various of the
5799new display features described below.
5800
5801
5802* Changes in Emacs 21.1
5803
5804** Emacs has a new redisplay engine.
5805
5806The new redisplay handles characters of variable width and height.
5807Italic text can be used without redisplay problems. Fonts containing
5808oversized characters, i.e. characters larger than the logical height
5809of a font can be used. Images of various formats can be displayed in
5810the text.
5811
5812** Emacs has a new face implementation.
5813
5814The new faces no longer fundamentally use X font names to specify the
5815font. Instead, each face has several independent attributes--family,
5816height, width, weight and slant--that it may or may not specify.
5817These attributes can be merged from various faces, and then together
5818specify a font.
5819
5820Faces are supported on terminals that can display color or fonts.
5821These terminal capabilities are auto-detected. Details can be found
5822under Lisp changes, below.
5823
5824** Emacs can display faces on TTY frames.
5825
5826Emacs automatically detects terminals that are able to display colors.
5827Faces with a weight greater than normal are displayed extra-bright, if
5828the terminal supports it. Faces with a weight less than normal and
5829italic faces are displayed dimmed, if the terminal supports it.
5830Underlined faces are displayed underlined if possible. Other face
5831attributes such as `overline', `strike-through', and `box' are ignored
5832on terminals.
5833
5834The command-line options `-fg COLOR', `-bg COLOR', and `-rv' are now
5835supported on character terminals.
5836
5837Emacs automatically remaps all X-style color specifications to one of
5838the colors supported by the terminal. This means you could have the
5839same color customizations that work both on a windowed display and on
5840a TTY or when Emacs is invoked with the -nw option.
5841
5842** New default font is Courier 12pt under X.
5843
5844** Sound support
5845
5846Emacs supports playing sound files on GNU/Linux and FreeBSD (Voxware
5847driver and native BSD driver, a.k.a. Luigi's driver). Currently
5848supported file formats are RIFF-WAVE (*.wav) and Sun Audio (*.au).
5849You must configure Emacs with the option `--with-sound=yes' to enable
5850sound support.
5851
5852** Emacs now resizes mini-windows if appropriate.
5853
5854If a message is longer than one line, or minibuffer contents are
5855longer than one line, Emacs can resize the minibuffer window unless it
5856is on a frame of its own. You can control resizing and the maximum
5857minibuffer window size by setting the following variables:
5858
5859- User option: max-mini-window-height
5860
5861Maximum height for resizing mini-windows. If a float, it specifies a
5862fraction of the mini-window frame's height. If an integer, it
5863specifies a number of lines.
5864
5865Default is 0.25.
5866
5867- User option: resize-mini-windows
5868
5869How to resize mini-windows. If nil, don't resize. If t, always
5870resize to fit the size of the text. If `grow-only', let mini-windows
5871grow only, until they become empty, at which point they are shrunk
5872again.
5873
5874Default is `grow-only'.
5875
5876** LessTif support.
5877
5878Emacs now runs with the LessTif toolkit (see
5879<http://www.lesstif.org>). You will need version 0.92.26, or later.
5880
5881** LessTif/Motif file selection dialog.
5882
5883When Emacs is configured to use LessTif or Motif, reading a file name
5884from a menu will pop up a file selection dialog if `use-dialog-box' is
5885non-nil.
5886
5887** File selection dialog on MS-Windows is supported.
5888
5889When a file is visited by clicking File->Open, the MS-Windows version
5890now pops up a standard file selection dialog where you can select a
5891file to visit. File->Save As also pops up that dialog.
5892
5893** Toolkit scroll bars.
5894
5895Emacs now uses toolkit scroll bars if available. When configured for
5896LessTif/Motif, it will use that toolkit's scroll bar. Otherwise, when
5897configured for Lucid and Athena widgets, it will use the Xaw3d scroll
5898bar if Xaw3d is available. You can turn off the use of toolkit scroll
5899bars by specifying `--with-toolkit-scroll-bars=no' when configuring
5900Emacs.
5901
5902When you encounter problems with the Xaw3d scroll bar, watch out how
5903Xaw3d is compiled on your system. If the Makefile generated from
5904Xaw3d's Imakefile contains a `-DNARROWPROTO' compiler option, and your
5905Emacs system configuration file `s/your-system.h' does not contain a
5906define for NARROWPROTO, you might consider adding it. Take
5907`s/freebsd.h' as an example.
5908
5909Alternatively, if you don't have access to the Xaw3d source code, take
5910a look at your system's imake configuration file, for example in the
5911directory `/usr/X11R6/lib/X11/config' (paths are different on
5912different systems). You will find files `*.cf' there. If your
5913system's cf-file contains a line like `#define NeedWidePrototypes NO',
5914add a `#define NARROWPROTO' to your Emacs system configuration file.
5915
5916The reason for this is that one Xaw3d function uses `double' or
5917`float' function parameters depending on the setting of NARROWPROTO.
5918This is not a problem when Imakefiles are used because each system's
5919imake configuration file contains the necessary information. Since
5920Emacs doesn't use imake, this has do be done manually.
5921
5922** Tool bar support.
5923
5924Emacs supports a tool bar at the top of a frame under X. For details
5925of how to define a tool bar, see the page describing Lisp-level
5926changes. Tool-bar global minor mode controls whether or not it is
5927displayed and is on by default. The appearance of the bar is improved
5928if Emacs has been built with XPM image support. Otherwise monochrome
5929icons will be used.
5930
5931To make the tool bar more useful, we need contributions of extra icons
5932for specific modes (with copyright assignments).
5933
5934** Tooltips.
5935
5936Tooltips are small X windows displaying a help string at the current
5937mouse position. The Lisp package `tooltip' implements them. You can
5938turn them off via the user option `tooltip-mode'.
5939
5940Tooltips also provides support for GUD debugging. If activated,
5941variable values can be displayed in tooltips by pointing at them with
5942the mouse in source buffers. You can customize various aspects of the
5943tooltip display in the group `tooltip'.
5944
5945** Automatic Hscrolling
5946
5947Horizontal scrolling now happens automatically if
5948`automatic-hscrolling' is set (the default). This setting can be
5949customized.
5950
5951If a window is scrolled horizontally with set-window-hscroll, or
5952scroll-left/scroll-right (C-x <, C-x >), this serves as a lower bound
5953for automatic horizontal scrolling. Automatic scrolling will scroll
5954the text more to the left if necessary, but won't scroll the text more
5955to the right than the column set with set-window-hscroll etc.
5956
5957** When using a windowing terminal, each Emacs window now has a cursor
5958of its own. By default, when a window is selected, the cursor is
5959solid; otherwise, it is hollow. The user-option
5960`cursor-in-non-selected-windows' controls how to display the
5961cursor in non-selected windows. If nil, no cursor is shown, if
5962non-nil a hollow box cursor is shown.
5963
5964** Fringes to the left and right of windows are used to display
5965truncation marks, continuation marks, overlay arrows and alike. The
5966foreground, background, and stipple of these areas can be changed by
5967customizing face `fringe'.
5968
5969** The mode line under X is now drawn with shadows by default.
5970You can change its appearance by modifying the face `mode-line'.
5971In particular, setting the `:box' attribute to nil turns off the 3D
5972appearance of the mode line. (The 3D appearance makes the mode line
5973occupy more space, and thus might cause the first or the last line of
5974the window to be partially obscured.)
5975
5976The variable `mode-line-inverse-video', which was used in older
5977versions of emacs to make the mode-line stand out, is now deprecated.
5978However, setting it to nil will cause the `mode-line' face to be
5979ignored, and mode-lines to be drawn using the default text face.
5980
5981** Mouse-sensitive mode line.
5982
5983Different parts of the mode line have been made mouse-sensitive on all
5984systems which support the mouse. Moving the mouse to a
5985mouse-sensitive part in the mode line changes the appearance of the
5986mouse pointer to an arrow, and help about available mouse actions is
5987displayed either in the echo area, or in the tooltip window if you
5988have enabled one.
5989
5990Currently, the following actions have been defined:
5991
5992- Mouse-1 on the buffer name in the mode line goes to the next buffer.
5993
5994- Mouse-3 on the buffer-name goes to the previous buffer.
5995
5996- Mouse-2 on the read-only or modified status in the mode line (`%' or
5997`*') toggles the status.
5998
5999- Mouse-3 on the major mode name displays a major mode menu.
6000
6001- Mouse-3 on the mode name displays a minor-mode menu.
6002
6003** Hourglass pointer
6004
6005Emacs can optionally display an hourglass pointer under X. You can
6006turn the display on or off by customizing group `cursor'.
6007
6008** Blinking cursor
6009
6010M-x blink-cursor-mode toggles a blinking cursor under X and on
6011terminals having terminal capabilities `vi', `vs', and `ve'. Blinking
6012and related parameters like frequency and delay can be customized in
6013the group `cursor'.
6014
6015** New font-lock support mode `jit-lock-mode'.
6016
6017This support mode is roughly equivalent to `lazy-lock' but is
6018generally faster. It supports stealth and deferred fontification.
6019See the documentation of the function `jit-lock-mode' for more
6020details.
6021
6022Font-lock uses jit-lock-mode as default support mode, so you don't
6023have to do anything to activate it.
6024
6025** The default binding of the Delete key has changed.
6026
6027The new user-option `normal-erase-is-backspace' can be set to
6028determine the effect of the Delete and Backspace function keys.
6029
6030On window systems, the default value of this option is chosen
6031according to the keyboard used. If the keyboard has both a Backspace
6032key and a Delete key, and both are mapped to their usual meanings, the
6033option's default value is set to t, so that Backspace can be used to
6034delete backward, and Delete can be used to delete forward. On
6035keyboards which either have only one key (usually labeled DEL), or two
6036keys DEL and BS which produce the same effect, the option's value is
6037set to nil, and these keys delete backward.
6038
6039If not running under a window system, setting this option accomplishes
6040a similar effect by mapping C-h, which is usually generated by the
6041Backspace key, to DEL, and by mapping DEL to C-d via
6042`keyboard-translate'. The former functionality of C-h is available on
6043the F1 key. You should probably not use this setting on a text-only
6044terminal if you don't have both Backspace, Delete and F1 keys.
6045
6046Programmatically, you can call function normal-erase-is-backspace-mode
6047to toggle the behavior of the Delete and Backspace keys.
6048
6049** The default for user-option `next-line-add-newlines' has been
6050changed to nil, i.e. C-n will no longer add newlines at the end of a
6051buffer by default.
6052
6053** The <home> and <end> keys now move to the beginning or end of the
6054current line, respectively. C-<home> and C-<end> move to the
6055beginning and end of the buffer.
6056
6057** Emacs now checks for recursive loads of Lisp files. If the
6058recursion depth exceeds `recursive-load-depth-limit', an error is
6059signaled.
6060
6061** When an error is signaled during the loading of the user's init
6062file, Emacs now pops up the *Messages* buffer.
6063
6064** Emacs now refuses to load compiled Lisp files which weren't
6065compiled with Emacs. Set `load-dangerous-libraries' to t to change
6066this behavior.
6067
6068The reason for this change is an incompatible change in XEmacs's byte
6069compiler. Files compiled with XEmacs can contain byte codes that let
6070Emacs dump core.
6071
6072** Toggle buttons and radio buttons in menus.
6073
6074When compiled with LessTif (or Motif) support, Emacs uses toolkit
6075widgets for radio and toggle buttons in menus. When configured for
6076Lucid, Emacs draws radio buttons and toggle buttons similar to Motif.
6077
6078** The menu bar configuration has changed. The new configuration is
6079more CUA-compliant. The most significant change is that Options is
6080now a separate menu-bar item, with Mule and Customize as its submenus.
6081
6082** Item Save Options on the Options menu allows saving options set
6083using that menu.
6084
6085** Highlighting of trailing whitespace.
6086
6087When `show-trailing-whitespace' is non-nil, Emacs displays trailing
6088whitespace in the face `trailing-whitespace'. Trailing whitespace is
6089defined as spaces or tabs at the end of a line. To avoid busy
6090highlighting when entering new text, trailing whitespace is not
6091displayed if point is at the end of the line containing the
6092whitespace.
6093
6094** C-x 5 1 runs the new command delete-other-frames which deletes
6095all frames except the selected one.
6096
6097** The new user-option `confirm-kill-emacs' can be customized to
6098let Emacs ask for confirmation before exiting.
6099
6100** The header line in an Info buffer is now displayed as an emacs
6101header-line (which is like a mode-line, but at the top of the window),
6102so that it remains visible even when the buffer has been scrolled.
6103This behavior may be disabled by customizing the option
6104`Info-use-header-line'.
6105
6106** Polish, Czech, German, and French translations of Emacs' reference card
6107have been added. They are named `pl-refcard.tex', `cs-refcard.tex',
6108`de-refcard.tex' and `fr-refcard.tex'. Postscript files are included.
6109
6110** An `Emacs Survival Guide', etc/survival.tex, is available.
6111
6112** A reference card for Dired has been added. Its name is
6113`dired-ref.tex'. A French translation is available in
6114`fr-drdref.tex'.
6115
6116** C-down-mouse-3 is bound differently. Now if the menu bar is not
6117displayed it pops up a menu containing the items which would be on the
6118menu bar. If the menu bar is displayed, it pops up the major mode
6119menu or the Edit menu if there is no major mode menu.
6120
6121** Variable `load-path' is no longer customizable through Customize.
6122
6123You can no longer use `M-x customize-variable' to customize `load-path'
6124because it now contains a version-dependent component. You can still
6125use `add-to-list' and `setq' to customize this variable in your
6126`~/.emacs' init file or to modify it from any Lisp program in general.
6127
6128** C-u C-x = provides detailed information about the character at
6129point in a pop-up window.
6130
6131** Emacs can now support 'wheeled' mice (such as the MS IntelliMouse)
6132under XFree86. To enable this, use the `mouse-wheel-mode' command, or
6133customize the variable `mouse-wheel-mode'.
6134
6135The variables `mouse-wheel-follow-mouse' and `mouse-wheel-scroll-amount'
6136determine where and by how much buffers are scrolled.
6137
6138** Emacs' auto-save list files are now by default stored in a
6139sub-directory `.emacs.d/auto-save-list/' of the user's home directory.
6140(On MS-DOS, this subdirectory's name is `_emacs.d/auto-save.list/'.)
6141You can customize `auto-save-list-file-prefix' to change this location.
6142
6143** The function `getenv' is now callable interactively.
6144
6145** The new user-option `even-window-heights' can be set to nil
6146to prevent `display-buffer' from evening out window heights.
6147
6148** The new command M-x delete-trailing-whitespace RET will delete the
6149trailing whitespace within the current restriction. You can also add
6150this function to `write-file-hooks' or `local-write-file-hooks'.
6151
6152** When visiting a file with M-x find-file-literally, no newlines will
6153be added to the end of the buffer even if `require-final-newline' is
6154non-nil.
6155
6156** The new user-option `find-file-suppress-same-file-warnings' can be
6157set to suppress warnings ``X and Y are the same file'' when visiting a
6158file that is already visited under a different name.
6159
6160** The new user-option `electric-help-shrink-window' can be set to
6161nil to prevent adjusting the help window size to the buffer size.
6162
6163** New command M-x describe-character-set reads a character set name
6164and displays information about that.
6165
6166** The new variable `auto-mode-interpreter-regexp' contains a regular
6167expression matching interpreters, for file mode determination.
6168
6169This regular expression is matched against the first line of a file to
6170determine the file's mode in `set-auto-mode' when Emacs can't deduce a
6171mode from the file's name. If it matches, the file is assumed to be
6172interpreted by the interpreter matched by the second group of the
6173regular expression. The mode is then determined as the mode
6174associated with that interpreter in `interpreter-mode-alist'.
6175
6176** New function executable-make-buffer-file-executable-if-script-p is
6177suitable as an after-save-hook as an alternative to `executable-chmod'.
6178
6179** The most preferred coding-system is now used to save a buffer if
6180buffer-file-coding-system is `undecided' and it is safe for the buffer
6181contents. (The most preferred is set by set-language-environment or
6182by M-x prefer-coding-system.) Thus if you visit an ASCII file and
6183insert a non-ASCII character from your current language environment,
6184the file will be saved silently with the appropriate coding.
6185Previously you would be prompted for a safe coding system.
6186
6187** The many obsolete language `setup-...-environment' commands have
6188been removed -- use `set-language-environment'.
6189
6190** The new Custom option `keyboard-coding-system' specifies a coding
6191system for keyboard input.
6192
6193** New variable `inhibit-iso-escape-detection' determines if Emacs'
6194coding system detection algorithm should pay attention to ISO2022's
6195escape sequences. If this variable is non-nil, the algorithm ignores
6196such escape sequences. The default value is nil, and it is
6197recommended not to change it except for the special case that you
6198always want to read any escape code verbatim. If you just want to
6199read a specific file without decoding escape codes, use C-x RET c
6200(`universal-coding-system-argument'). For instance, C-x RET c latin-1
6201RET C-x C-f filename RET.
6202
6203** Variable `default-korean-keyboard' is initialized properly from the
6204environment variable `HANGUL_KEYBOARD_TYPE'.
6205
6206** New command M-x list-charset-chars reads a character set name and
6207displays all characters in that character set.
6208
6209** M-x set-terminal-coding-system (C-x RET t) now allows CCL-based
6210coding systems such as cpXXX and cyrillic-koi8.
6211
6212** Emacs now attempts to determine the initial language environment
6213and preferred and locale coding systems systematically from the
6214LC_ALL, LC_CTYPE, and LANG environment variables during startup.
6215
6216** New language environments `Polish', `Latin-8' and `Latin-9'.
6217Latin-8 and Latin-9 correspond respectively to the ISO character sets
62188859-14 (Celtic) and 8859-15 (updated Latin-1, with the Euro sign).
6219GNU Intlfonts doesn't support these yet but recent X releases have
62208859-15. See etc/INSTALL for information on obtaining extra fonts.
6221There are new Leim input methods for Latin-8 and Latin-9 prefix (only)
6222and Polish `slash'.
6223
6224** New language environments `Dutch' and `Spanish'.
6225These new environments mainly select appropriate translations
6226of the tutorial.
6227
6228** In Ethiopic language environment, special key bindings for
6229function keys are changed as follows. This is to conform to "Emacs
6230Lisp Coding Convention".
6231
6232 new command old-binding
6233 --- ------- -----------
6234 f3 ethio-fidel-to-sera-buffer f5
6235 S-f3 ethio-fidel-to-sera-region f5
6236 C-f3 ethio-fidel-to-sera-mail-or-marker f5
6237
6238 f4 ethio-sera-to-fidel-buffer unchanged
6239 S-f4 ethio-sera-to-fidel-region unchanged
6240 C-f4 ethio-sera-to-fidel-mail-or-marker unchanged
6241
6242 S-f5 ethio-toggle-punctuation f3
6243 S-f6 ethio-modify-vowel f6
6244 S-f7 ethio-replace-space f7
6245 S-f8 ethio-input-special-character f8
6246 S-f9 ethio-replace-space unchanged
6247 C-f9 ethio-toggle-space f2
6248
6249** There are new Leim input methods.
6250New input methods "turkish-postfix", "turkish-alt-postfix",
6251"greek-mizuochi", "TeX", and "greek-babel" are now part of the Leim
6252package.
6253
6254** The rule of input method "slovak" is slightly changed. Now the
6255rules for translating "q" and "Q" to "`" (backquote) are deleted, thus
6256typing them inserts "q" and "Q" respectively. Rules for translating
6257"=q", "+q", "=Q", and "+Q" to "`" are also deleted. Now, to input
6258"`", you must type "=q".
6259
6260** When your terminal can't display characters from some of the ISO
62618859 character sets but can display Latin-1, you can display
6262more-or-less mnemonic sequences of ASCII/Latin-1 characters instead of
6263empty boxes (under a window system) or question marks (not under a
6264window system). Customize the option `latin1-display' to turn this
6265on.
6266
6267** M-; now calls comment-dwim which tries to do something clever based
6268on the context. M-x kill-comment is now an alias to comment-kill,
6269defined in newcomment.el. You can choose different styles of region
6270commenting with the variable `comment-style'.
6271
6272** New user options `display-time-mail-face' and
6273`display-time-use-mail-icon' control the appearance of mode-line mail
6274indicator used by the display-time package. On a suitable display the
6275indicator can be an icon and is mouse-sensitive.
6276
6277** On window-systems, additional space can be put between text lines
6278on the display using several methods
6279
6280- By setting frame parameter `line-spacing' to PIXELS. PIXELS must be
6281a positive integer, and specifies that PIXELS number of pixels should
6282be put below text lines on the affected frame or frames.
6283
6284- By setting X resource `lineSpacing', class `LineSpacing'. This is
6285equivalent to specifying the frame parameter.
6286
6287- By specifying `--line-spacing=N' or `-lsp N' on the command line.
6288
6289- By setting buffer-local variable `line-spacing'. The meaning is
6290the same, but applies to the a particular buffer only.
6291
6292** The new command `clone-indirect-buffer' can be used to create
6293an indirect buffer that is a twin copy of the current buffer. The
6294command `clone-indirect-buffer-other-window', bound to C-x 4 c,
6295does the same but displays the indirect buffer in another window.
6296
6297** New user options `backup-directory-alist' and
6298`make-backup-file-name-function' control the placement of backups,
6299typically in a single directory or in an invisible sub-directory.
6300
6301** New commands iso-iso2sgml and iso-sgml2iso convert between Latin-1
6302characters and the corresponding SGML (HTML) entities.
6303
6304** New X resources recognized
6305
6306*** The X resource `synchronous', class `Synchronous', specifies
6307whether Emacs should run in synchronous mode. Synchronous mode
6308is useful for debugging X problems.
6309
6310Example:
6311
6312 emacs.synchronous: true
6313
6314*** The X resource `visualClass, class `VisualClass', specifies the
6315visual Emacs should use. The resource's value should be a string of
6316the form `CLASS-DEPTH', where CLASS is the name of the visual class,
6317and DEPTH is the requested color depth as a decimal number. Valid
6318visual class names are
6319
6320 TrueColor
6321 PseudoColor
6322 DirectColor
6323 StaticColor
6324 GrayScale
6325 StaticGray
6326
6327Visual class names specified as X resource are case-insensitive, i.e.
6328`pseudocolor', `Pseudocolor' and `PseudoColor' all have the same
6329meaning.
6330
6331The program `xdpyinfo' can be used to list the visual classes
6332supported on your display, and which depths they have. If
6333`visualClass' is not specified, Emacs uses the display's default
6334visual.
6335
6336Example:
6337
6338 emacs.visualClass: TrueColor-8
6339
6340*** The X resource `privateColormap', class `PrivateColormap',
6341specifies that Emacs should use a private colormap if it is using the
6342default visual, and that visual is of class PseudoColor. Recognized
6343resource values are `true' or `on'.
6344
6345Example:
6346
6347 emacs.privateColormap: true
6348
6349** Faces and frame parameters.
6350
6351There are four new faces `scroll-bar', `border', `cursor' and `mouse'.
6352Setting the frame parameters `scroll-bar-foreground' and
6353`scroll-bar-background' sets foreground and background color of face
6354`scroll-bar' and vice versa. Setting frame parameter `border-color'
6355sets the background color of face `border' and vice versa. Likewise
6356for frame parameters `cursor-color' and face `cursor', and frame
6357parameter `mouse-color' and face `mouse'.
6358
6359Changing frame parameter `font' sets font-related attributes of the
6360`default' face and vice versa. Setting frame parameters
6361`foreground-color' or `background-color' sets the colors of the
6362`default' face and vice versa.
6363
6364** New face `menu'.
6365
6366The face `menu' can be used to change colors and font of Emacs' menus.
6367
6368** New frame parameter `screen-gamma' for gamma correction.
6369
6370The new frame parameter `screen-gamma' specifies gamma-correction for
6371colors. Its value may be nil, the default, in which case no gamma
6372correction occurs, or a number > 0, usually a float, that specifies
6373the screen gamma of a frame's display.
6374
6375PC monitors usually have a screen gamma of 2.2. smaller values result
6376in darker colors. You might want to try a screen gamma of 1.5 for LCD
6377color displays. The viewing gamma Emacs uses is 0.4545. (1/2.2).
6378
6379The X resource name of this parameter is `screenGamma', class
6380`ScreenGamma'.
6381
6382** Tabs and variable-width text.
6383
6384Tabs are now displayed with stretch properties; the width of a tab is
6385defined as a multiple of the normal character width of a frame, and is
6386independent of the fonts used in the text where the tab appears.
6387Thus, tabs can be used to line up text in different fonts.
6388
6389** Enhancements of the Lucid menu bar
6390
6391*** The Lucid menu bar now supports the resource "margin".
6392
6393 emacs.pane.menubar.margin: 5
6394
6395The default margin is 4 which makes the menu bar appear like the
6396LessTif/Motif one.
6397
6398*** Arrows that indicate sub-menus are now drawn with shadows, as in
6399LessTif and Motif.
6400
6401** A block cursor can be drawn as wide as the glyph under it under X.
6402
6403As an example: if a block cursor is over a tab character, it will be
6404drawn as wide as that tab on the display. To do this, set
6405`x-stretch-cursor' to a non-nil value.
6406
6407** Empty display lines at the end of a buffer may be marked with a
6408bitmap (this is similar to the tilde displayed by vi and Less).
6409
6410This behavior is activated by setting the buffer-local variable
6411`indicate-empty-lines' to a non-nil value. The default value of this
6412variable is found in `default-indicate-empty-lines'.
6413
6414** There is a new "aggressive" scrolling method.
6415
6416When scrolling up because point is above the window start, if the
6417value of the buffer-local variable `scroll-up-aggressively' is a
6418number, Emacs chooses a new window start so that point ends up that
6419fraction of the window's height from the top of the window.
6420
6421When scrolling down because point is below the window end, if the
6422value of the buffer-local variable `scroll-down-aggressively' is a
6423number, Emacs chooses a new window start so that point ends up that
6424fraction of the window's height from the bottom of the window.
6425
6426** You can now easily create new *Info* buffers using either
6427M-x clone-buffer, C-u m <entry> RET or C-u g <entry> RET.
6428M-x clone-buffer can also be used on *Help* and several other special
6429buffers.
6430
6431** The command `Info-search' now uses a search history.
6432
6433** Listing buffers with M-x list-buffers (C-x C-b) now shows
6434abbreviated file names. Abbreviations can be customized by changing
6435`directory-abbrev-alist'.
6436
6437** A new variable, backup-by-copying-when-privileged-mismatch, gives
6438the highest file uid for which backup-by-copying-when-mismatch will be
6439forced on. The assumption is that uids less than or equal to this
6440value are special uids (root, bin, daemon, etc.--not real system
6441users) and that files owned by these users should not change ownership,
6442even if your system policy allows users other than root to edit them.
6443
6444The default is 200; set the variable to nil to disable the feature.
6445
6446** The rectangle commands now avoid inserting undesirable spaces,
6447notably at the end of lines.
6448
6449All these functions have been rewritten to avoid inserting unwanted
6450spaces, and an optional prefix now allows them to behave the old way.
6451
6452** The function `replace-rectangle' is an alias for `string-rectangle'.
6453
6454** The new command M-x string-insert-rectangle is like `string-rectangle',
6455but inserts text instead of replacing it.
6456
6457** The new command M-x query-replace-regexp-eval acts like
6458query-replace-regexp, but takes a Lisp expression which is evaluated
6459after each match to get the replacement text.
6460
6461** M-x query-replace recognizes a new command `e' (or `E') that lets
6462you edit the replacement string.
6463
6464** The new command mail-abbrev-complete-alias, bound to `M-TAB'
6465(if you load the library `mailabbrev'), lets you complete mail aliases
6466in the text, analogous to lisp-complete-symbol.
6467
6468** The variable `echo-keystrokes' may now have a floating point value.
6469
6470** If your init file is compiled (.emacs.elc), `user-init-file' is set
6471to the source name (.emacs.el), if that exists, after loading it.
6472
6473** The help string specified for a menu-item whose definition contains
6474the property `:help HELP' is now displayed under X, on MS-Windows, and
6475MS-DOS, either in the echo area or with tooltips. Many standard menus
6476displayed by Emacs now have help strings.
6477
6478--
6479** New user option `read-mail-command' specifies a command to use to
6480read mail from the menu etc.
6481
6482** The environment variable `EMACSLOCKDIR' is no longer used on MS-Windows.
6483This environment variable was used when creating lock files. Emacs on
6484MS-Windows does not use this variable anymore. This change was made
6485before Emacs 21.1, but wasn't documented until now.
6486
6487** Highlighting of mouse-sensitive regions is now supported in the
6488MS-DOS version of Emacs.
6489
6490** The new command `msdos-set-mouse-buttons' forces the MS-DOS version
6491of Emacs to behave as if the mouse had a specified number of buttons.
6492This comes handy with mice that don't report their number of buttons
6493correctly. One example is the wheeled mice, which report 3 buttons,
6494but clicks on the middle button are not passed to the MS-DOS version
6495of Emacs.
6496
6497** Customize changes
6498
6499*** Customize now supports comments about customized items. Use the
6500`State' menu to add comments, or give a prefix argument to
6501M-x customize-set-variable or M-x customize-set-value. Note that
6502customization comments will cause the customizations to fail in
6503earlier versions of Emacs.
6504
6505*** The new option `custom-buffer-done-function' says whether to kill
6506Custom buffers when you've done with them or just bury them (the
6507default).
6508
6509*** If Emacs was invoked with the `-q' or `--no-init-file' options, it
6510does not allow you to save customizations in your `~/.emacs' init
6511file. This is because saving customizations from such a session would
6512wipe out all the other customizationss you might have on your init
6513file.
6514
6515** If Emacs was invoked with the `-q' or `--no-init-file' options, it
6516does not save disabled and enabled commands for future sessions, to
6517avoid overwriting existing customizations of this kind that are
6518already in your init file.
6519
6520** New features in evaluation commands
6521
6522*** The commands to evaluate Lisp expressions, such as C-M-x in Lisp
6523modes, C-j in Lisp Interaction mode, and M-:, now bind the variables
6524print-level, print-length, and debug-on-error based on the new
6525customizable variables eval-expression-print-level,
6526eval-expression-print-length, and eval-expression-debug-on-error.
6527
6528The default values for the first two of these variables are 12 and 4
6529respectively, which means that `eval-expression' now prints at most
6530the first 12 members of a list and at most 4 nesting levels deep (if
6531the list is longer or deeper than that, an ellipsis `...' is
6532printed).
6533
6534<RET> or <mouse-2> on the printed text toggles between an abbreviated
6535printed representation and an unabbreviated one.
6536
6537The default value of eval-expression-debug-on-error is t, so any error
6538during evaluation produces a backtrace.
6539
6540*** The function `eval-defun' (C-M-x) now loads Edebug and instruments
6541code when called with a prefix argument.
6542
6543** CC mode changes.
6544
6545Note: This release contains changes that might not be compatible with
6546current user setups (although it's believed that these
6547incompatibilities will only show in very uncommon circumstances).
6548However, since the impact is uncertain, these changes may be rolled
6549back depending on user feedback. Therefore there's no forward
6550compatibility guarantee wrt the new features introduced in this
6551release.
6552
6553*** The hardcoded switch to "java" style in Java mode is gone.
6554CC Mode used to automatically set the style to "java" when Java mode
6555is entered. This has now been removed since it caused too much
6556confusion.
6557
6558However, to keep backward compatibility to a certain extent, the
6559default value for c-default-style now specifies the "java" style for
6560java-mode, but "gnu" for all other modes (as before). So you won't
6561notice the change if you haven't touched that variable.
6562
6563*** New cleanups, space-before-funcall and compact-empty-funcall.
6564Two new cleanups have been added to c-cleanup-list:
6565
6566space-before-funcall causes a space to be inserted before the opening
6567parenthesis of a function call, which gives the style "foo (bar)".
6568
6569compact-empty-funcall causes any space before a function call opening
6570parenthesis to be removed if there are no arguments to the function.
6571It's typically useful together with space-before-funcall to get the
6572style "foo (bar)" and "foo()".
6573
6574*** Some keywords now automatically trigger reindentation.
6575Keywords like "else", "while", "catch" and "finally" have been made
6576"electric" to make them reindent automatically when they continue an
6577earlier statement. An example:
6578
6579for (i = 0; i < 17; i++)
6580 if (a[i])
6581 res += a[i]->offset;
6582else
6583
6584Here, the "else" should be indented like the preceding "if", since it
6585continues that statement. CC Mode will automatically reindent it after
6586the "else" has been typed in full, since it's not until then it's
6587possible to decide whether it's a new statement or a continuation of
6588the preceding "if".
6589
6590CC Mode uses Abbrev mode to achieve this, which is therefore turned on
6591by default.
6592
6593*** M-a and M-e now moves by sentence in multiline strings.
6594Previously these two keys only moved by sentence in comments, which
6595meant that sentence movement didn't work in strings containing
6596documentation or other natural language text.
6597
6598The reason it's only activated in multiline strings (i.e. strings that
6599contain a newline, even when escaped by a '\') is to avoid stopping in
6600the short strings that often reside inside statements. Multiline
6601strings almost always contain text in a natural language, as opposed
6602to other strings that typically contain format specifications,
6603commands, etc. Also, it's not that bothersome that M-a and M-e misses
6604sentences in single line strings, since they're short anyway.
6605
6606*** Support for autodoc comments in Pike mode.
6607Autodoc comments for Pike are used to extract documentation from the
6608source, like Javadoc in Java. Pike mode now recognize this markup in
6609comment prefixes and paragraph starts.
6610
6611*** The comment prefix regexps on c-comment-prefix may be mode specific.
6612When c-comment-prefix is an association list, it specifies the comment
6613line prefix on a per-mode basis, like c-default-style does. This
6614change came about to support the special autodoc comment prefix in
6615Pike mode only.
6616
6617*** Better handling of syntactic errors.
6618The recovery after unbalanced parens earlier in the buffer has been
6619improved; CC Mode now reports them by dinging and giving a message
6620stating the offending line, but still recovers and indent the
6621following lines in a sane way (most of the time). An "else" with no
6622matching "if" is handled similarly. If an error is discovered while
6623indenting a region, the whole region is still indented and the error
6624is reported afterwards.
6625
6626*** Lineup functions may now return absolute columns.
6627A lineup function can give an absolute column to indent the line to by
6628returning a vector with the desired column as the first element.
6629
6630*** More robust and warning-free byte compilation.
6631Although this is strictly not a user visible change (well, depending
6632on the view of a user), it's still worth mentioning that CC Mode now
6633can be compiled in the standard ways without causing trouble. Some
6634code have also been moved between the subpackages to enhance the
6635modularity somewhat. Thanks to Martin Buchholz for doing the
6636groundwork.
6637
6638*** c-style-variables-are-local-p now defaults to t.
6639This is an incompatible change that has been made to make the behavior
6640of the style system wrt global variable settings less confusing for
6641non-advanced users. If you know what this variable does you might
6642want to set it to nil in your .emacs, otherwise you probably don't
6643have to bother.
6644
6645Defaulting c-style-variables-are-local-p to t avoids the confusing
6646situation that occurs when a user sets some style variables globally
6647and edits both a Java and a non-Java file in the same Emacs session.
6648If the style variables aren't buffer local in this case, loading of
6649the second file will cause the default style (either "gnu" or "java"
6650by default) to override the global settings made by the user.
6651
6652*** New initialization procedure for the style system.
6653When the initial style for a buffer is determined by CC Mode (from the
6654variable c-default-style), the global values of style variables now
6655take precedence over the values specified by the chosen style. This
6656is different than the old behavior: previously, the style-specific
6657settings would override the global settings. This change makes it
6658possible to do simple configuration in the intuitive way with
6659Customize or with setq lines in one's .emacs file.
6660
6661By default, the global value of every style variable is the new
6662special symbol set-from-style, which causes the value to be taken from
6663the style system. This means that in effect, only an explicit setting
6664of a style variable will cause the "overriding" behavior described
6665above.
6666
6667Also note that global settings override style-specific settings *only*
6668when the initial style of a buffer is chosen by a CC Mode major mode
6669function. When a style is chosen in other ways --- for example, by a
6670call like (c-set-style "gnu") in a hook, or via M-x c-set-style ---
6671then the style-specific values take precedence over any global style
6672values. In Lisp terms, global values override style-specific values
6673only when the new second argument to c-set-style is non-nil; see the
6674function documentation for more info.
6675
6676The purpose of these changes is to make it easier for users,
6677especially novice users, to do simple customizations with Customize or
6678with setq in their .emacs files. On the other hand, the new system is
6679intended to be compatible with advanced users' customizations as well,
6680such as those that choose styles in hooks or whatnot. This new system
6681is believed to be almost entirely compatible with current
6682configurations, in spite of the changed precedence between style and
6683global variable settings when a buffer's default style is set.
6684
6685(Thanks to Eric Eide for clarifying this explanation a bit.)
6686
6687**** c-offsets-alist is now a customizable variable.
6688This became possible as a result of the new initialization behavior.
6689
6690This variable is treated slightly differently from the other style
6691variables; instead of using the symbol set-from-style, it will be
6692completed with the syntactic symbols it doesn't already contain when
6693the style is first initialized. This means it now defaults to the
6694empty list to make all syntactic elements get their values from the
6695style system.
6696
6697**** Compatibility variable to restore the old behavior.
6698In case your configuration doesn't work with this change, you can set
6699c-old-style-variable-behavior to non-nil to get the old behavior back
6700as far as possible.
6701
6702*** Improvements to line breaking and text filling.
6703CC Mode now handles this more intelligently and seamlessly wrt the
6704surrounding code, especially inside comments. For details see the new
6705chapter about this in the manual.
6706
6707**** New variable to recognize comment line prefix decorations.
6708The variable c-comment-prefix-regexp has been added to properly
6709recognize the line prefix in both block and line comments. It's
6710primarily used to initialize the various paragraph recognition and
6711adaptive filling variables that the text handling functions uses.
6712
6713**** New variable c-block-comment-prefix.
6714This is a generalization of the now obsolete variable
6715c-comment-continuation-stars to handle arbitrary strings.
6716
6717**** CC Mode now uses adaptive fill mode.
6718This to make it adapt better to the paragraph style inside comments.
6719
6720It's also possible to use other adaptive filling packages inside CC
6721Mode, notably Kyle E. Jones' Filladapt mode (http://wonderworks.com/).
6722A new convenience function c-setup-filladapt sets up Filladapt for use
6723inside CC Mode.
6724
6725Note though that the 2.12 version of Filladapt lacks a feature that
6726causes it to work suboptimally when c-comment-prefix-regexp can match
6727the empty string (which it commonly does). A patch for that is
6728available from the CC Mode web site (http://www.python.org/emacs/
6729cc-mode/).
6730
6731**** The variables `c-hanging-comment-starter-p' and
6732`c-hanging-comment-ender-p', which controlled how comment starters and
6733enders were filled, are not used anymore. The new version of the
6734function `c-fill-paragraph' keeps the comment starters and enders as
6735they were before the filling.
6736
6737**** It's now possible to selectively turn off auto filling.
6738The variable c-ignore-auto-fill is used to ignore auto fill mode in
6739specific contexts, e.g. in preprocessor directives and in string
6740literals.
6741
6742**** New context sensitive line break function c-context-line-break.
6743It works like newline-and-indent in normal code, and adapts the line
6744prefix according to the comment style when used inside comments. If
6745you're normally using newline-and-indent, you might want to switch to
6746this function.
6747
6748*** Fixes to IDL mode.
6749It now does a better job in recognizing only the constructs relevant
6750to IDL. E.g. it no longer matches "class" as the beginning of a
6751struct block, but it does match the CORBA 2.3 "valuetype" keyword.
6752Thanks to Eric Eide.
6753
6754*** Improvements to the Whitesmith style.
6755It now keeps the style consistently on all levels and both when
6756opening braces hangs and when they don't.
6757
6758**** New lineup function c-lineup-whitesmith-in-block.
6759
6760*** New lineup functions c-lineup-template-args and c-indent-multi-line-block.
6761See their docstrings for details. c-lineup-template-args does a
6762better job of tracking the brackets used as parens in C++ templates,
6763and is used by default to line up continued template arguments.
6764
6765*** c-lineup-comment now preserves alignment with a comment on the
6766previous line. It used to instead preserve comments that started in
6767the column specified by comment-column.
6768
6769*** c-lineup-C-comments handles "free form" text comments.
6770In comments with a long delimiter line at the start, the indentation
6771is kept unchanged for lines that start with an empty comment line
6772prefix. This is intended for the type of large block comments that
6773contain documentation with its own formatting. In these you normally
6774don't want CC Mode to change the indentation.
6775
6776*** The `c' syntactic symbol is now relative to the comment start
6777instead of the previous line, to make integers usable as lineup
6778arguments.
6779
6780*** All lineup functions have gotten docstrings.
6781
6782*** More preprocessor directive movement functions.
6783c-down-conditional does the reverse of c-up-conditional.
6784c-up-conditional-with-else and c-down-conditional-with-else are
6785variants of these that also stops at "#else" lines (suggested by Don
6786Provan).
6787
6788*** Minor improvements to many movement functions in tricky situations.
6789
6790** Dired changes
6791
6792*** New variable `dired-recursive-deletes' determines if the delete
6793command will delete non-empty directories recursively. The default
6794is, delete only empty directories.
6795
6796*** New variable `dired-recursive-copies' determines if the copy
6797command will copy directories recursively. The default is, do not
6798copy directories recursively.
6799
6800*** In command `dired-do-shell-command' (usually bound to `!') a `?'
6801in the shell command has a special meaning similar to `*', but with
6802the difference that the command will be run on each file individually.
6803
6804*** The new command `dired-find-alternate-file' (usually bound to `a')
6805replaces the Dired buffer with the buffer for an alternate file or
6806directory.
6807
6808*** The new command `dired-show-file-type' (usually bound to `y') shows
6809a message in the echo area describing what type of file the point is on.
6810This command invokes the external program `file' do its work, and so
6811will only work on systems with that program, and will be only as
6812accurate or inaccurate as it is.
6813
6814*** Dired now properly handles undo changes of adding/removing `-R'
6815from ls switches.
6816
6817*** Dired commands that prompt for a destination file now allow the use
6818of the `M-n' command in the minibuffer to insert the source filename,
6819which the user can then edit. This only works if there is a single
6820source file, not when operating on multiple marked files.
6821
6822** Gnus changes.
6823
6824The Gnus NEWS entries are short, but they reflect sweeping changes in
6825four areas: Article display treatment, MIME treatment,
6826internationalization and mail-fetching.
6827
6828*** The mail-fetching functions have changed. See the manual for the
6829many details. In particular, all procmail fetching variables are gone.
6830
6831If you used procmail like in
6832
6833(setq nnmail-use-procmail t)
6834(setq nnmail-spool-file 'procmail)
6835(setq nnmail-procmail-directory "~/mail/incoming/")
6836(setq nnmail-procmail-suffix "\\.in")
6837
6838this now has changed to
6839
6840(setq mail-sources
6841 '((directory :path "~/mail/incoming/"
6842 :suffix ".in")))
6843
6844More information is available in the info doc at Select Methods ->
6845Getting Mail -> Mail Sources
6846
6847*** Gnus is now a MIME-capable reader. This affects many parts of
6848Gnus, and adds a slew of new commands. See the manual for details.
6849Separate MIME packages like RMIME, mime-compose etc., will probably no
6850longer work; remove them and use the native facilities.
6851
6852The FLIM/SEMI package still works with Emacs 21, but if you want to
6853use the native facilities, you must remove any mailcap.el[c] that was
6854installed by FLIM/SEMI version 1.13 or earlier.
6855
6856*** Gnus has also been multilingualized. This also affects too many
6857parts of Gnus to summarize here, and adds many new variables. There
6858are built-in facilities equivalent to those of gnus-mule.el, which is
6859now just a compatibility layer.
6860
6861*** gnus-mule.el is now just a compatibility layer over the built-in
6862Gnus facilities.
6863
6864*** gnus-auto-select-first can now be a function to be
6865called to position point.
6866
6867*** The user can now decide which extra headers should be included in
6868summary buffers and NOV files.
6869
6870*** `gnus-article-display-hook' has been removed. Instead, a number
6871of variables starting with `gnus-treat-' have been added.
6872
6873*** The Gnus posting styles have been redone again and now work in a
6874subtly different manner.
6875
6876*** New web-based backends have been added: nnslashdot, nnwarchive
6877and nnultimate. nnweb has been revamped, again, to keep up with
6878ever-changing layouts.
6879
6880*** Gnus can now read IMAP mail via nnimap.
6881
6882*** There is image support of various kinds and some sound support.
6883
6884** Changes in Texinfo mode.
6885
6886*** A couple of new key bindings have been added for inserting Texinfo
6887macros
6888
6889 Key binding Macro
6890 -------------------------
6891 C-c C-c C-s @strong
6892 C-c C-c C-e @emph
6893 C-c C-c u @uref
6894 C-c C-c q @quotation
6895 C-c C-c m @email
6896 C-c C-o @<block> ... @end <block>
6897 M-RET @item
6898
6899*** The " key now inserts either " or `` or '' depending on context.
6900
6901** Changes in Outline mode.
6902
6903There is now support for Imenu to index headings. A new command
6904`outline-headers-as-kill' copies the visible headings in the region to
6905the kill ring, e.g. to produce a table of contents.
6906
6907** Changes to Emacs Server
6908
6909*** The new option `server-kill-new-buffers' specifies what to do
6910with buffers when done with them. If non-nil, the default, buffers
6911are killed, unless they were already present before visiting them with
6912Emacs Server. If nil, `server-temp-file-regexp' specifies which
6913buffers to kill, as before.
6914
6915Please note that only buffers are killed that still have a client,
6916i.e. buffers visited with `emacsclient --no-wait' are never killed in
6917this way.
6918
6919** Both emacsclient and Emacs itself now accept command line options
6920of the form +LINE:COLUMN in addition to +LINE.
6921
6922** Changes to Show Paren mode.
6923
6924*** Overlays used by Show Paren mode now use a priority property.
6925The new user option show-paren-priority specifies the priority to
6926use. Default is 1000.
6927
6928** New command M-x check-parens can be used to find unbalanced paren
6929groups and strings in buffers in Lisp mode (or other modes).
6930
6931** Changes to hideshow.el
6932
6933*** Generalized block selection and traversal
6934
6935A block is now recognized by its start and end regexps (both strings),
6936and an integer specifying which sub-expression in the start regexp
6937serves as the place where a `forward-sexp'-like function can operate.
6938See the documentation of variable `hs-special-modes-alist'.
6939
6940*** During incremental search, if Hideshow minor mode is active,
6941hidden blocks are temporarily shown. The variable `hs-headline' can
6942be used in the mode line format to show the line at the beginning of
6943the open block.
6944
6945*** User option `hs-hide-all-non-comment-function' specifies a
6946function to be called at each top-level block beginning, instead of
6947the normal block-hiding function.
6948
6949*** The command `hs-show-region' has been removed.
6950
6951*** The key bindings have changed to fit the Emacs conventions,
6952roughly imitating those of Outline minor mode. Notably, the prefix
6953for all bindings is now `C-c @'. For details, see the documentation
6954for `hs-minor-mode'.
6955
6956*** The variable `hs-show-hidden-short-form' has been removed, and
6957hideshow.el now always behaves as if this variable were set to t.
6958
6959** Changes to Change Log mode and Add-Log functions
6960
6961*** If you invoke `add-change-log-entry' from a backup file, it makes
6962an entry appropriate for the file's parent. This is useful for making
6963log entries by comparing a version with deleted functions.
6964
6965**** New command M-x change-log-merge merges another log into the
6966current buffer.
6967
6968*** New command M-x change-log-redate fixes any old-style date entries
6969in a log file.
6970
6971*** Change Log mode now adds a file's version number to change log
6972entries if user-option `change-log-version-info-enabled' is non-nil.
6973Unless the file is under version control the search for a file's
6974version number is performed based on regular expressions from
6975`change-log-version-number-regexp-list' which can be customized.
6976Version numbers are only found in the first 10 percent of a file.
6977
6978*** Change Log mode now defines its own faces for font-lock highlighting.
6979
6980** Changes to cmuscheme
6981
6982*** The user-option `scheme-program-name' has been renamed
6983`cmuscheme-program-name' due to conflicts with xscheme.el.
6984
6985** Changes in Font Lock
6986
6987*** The new function `font-lock-remove-keywords' can be used to remove
6988font-lock keywords from the current buffer or from a specific major mode.
6989
6990*** Multi-line patterns are now supported. Modes using this, should
6991set font-lock-multiline to t in their font-lock-defaults.
6992
6993*** `font-lock-syntactic-face-function' allows major-modes to choose
6994the face used for each string/comment.
6995
6996*** A new standard face `font-lock-doc-face'.
6997Meant for Lisp docstrings, Javadoc comments and other "documentation in code".
6998
6999** Changes to Shell mode
7000
7001*** The `shell' command now accepts an optional argument to specify the buffer
7002to use, which defaults to "*shell*". When used interactively, a
7003non-default buffer may be specified by giving the `shell' command a
7004prefix argument (causing it to prompt for the buffer name).
7005
7006** Comint (subshell) changes
7007
7008These changes generally affect all modes derived from comint mode, which
7009include shell-mode, gdb-mode, scheme-interaction-mode, etc.
7010
7011*** Comint now by default interprets some carriage-control characters.
7012Comint now removes CRs from CR LF sequences, and treats single CRs and
7013BSs in the output in a way similar to a terminal (by deleting to the
7014beginning of the line, or deleting the previous character,
7015respectively). This is achieved by adding `comint-carriage-motion' to
7016the `comint-output-filter-functions' hook by default.
7017
7018*** By default, comint no longer uses the variable `comint-prompt-regexp'
7019to distinguish prompts from user-input. Instead, it notices which
7020parts of the text were output by the process, and which entered by the
7021user, and attaches `field' properties to allow emacs commands to use
7022this information. Common movement commands, notably beginning-of-line,
7023respect field boundaries in a fairly natural manner. To disable this
7024feature, and use the old behavior, customize the user option
7025`comint-use-prompt-regexp-instead-of-fields'.
7026
7027*** Comint now includes new features to send commands to running processes
7028and redirect the output to a designated buffer or buffers.
7029
7030*** The command M-x comint-redirect-send-command reads a command and
7031buffer name from the mini-buffer. The command is sent to the current
7032buffer's process, and its output is inserted into the specified buffer.
7033
7034The command M-x comint-redirect-send-command-to-process acts like
7035M-x comint-redirect-send-command but additionally reads the name of
7036the buffer whose process should be used from the mini-buffer.
7037
7038*** Packages based on comint now highlight user input and program prompts,
7039and support choosing previous input with mouse-2. To control these features,
7040see the user-options `comint-highlight-input' and `comint-highlight-prompt'.
7041
7042*** The new command `comint-write-output' (usually bound to `C-c C-s')
7043saves the output from the most recent command to a file. With a prefix
7044argument, it appends to the file.
7045
7046*** The command `comint-kill-output' has been renamed `comint-delete-output'
7047(usually bound to `C-c C-o'); the old name is aliased to it for
7048compatibility.
7049
7050*** The new function `comint-add-to-input-history' adds commands to the input
7051ring (history).
7052
7053*** The new variable `comint-input-history-ignore' is a regexp for
7054identifying history lines that should be ignored, like tcsh time-stamp
7055strings, starting with a `#'. The default value of this variable is "^#".
7056
7057** Changes to Rmail mode
7058
7059*** The new user-option rmail-user-mail-address-regexp can be
7060set to fine tune the identification of the correspondent when
7061receiving new mail. If it matches the address of the sender, the
7062recipient is taken as correspondent of a mail. If nil, the default,
7063`user-login-name' and `user-mail-address' are used to exclude yourself
7064as correspondent.
7065
7066Usually you don't have to set this variable, except if you collect
7067mails sent by you under different user names. Then it should be a
7068regexp matching your mail addresses.
7069
7070*** The new user-option rmail-confirm-expunge controls whether and how
7071to ask for confirmation before expunging deleted messages from an
7072Rmail file. You can choose between no confirmation, confirmation
7073with y-or-n-p, or confirmation with yes-or-no-p. Default is to ask
7074for confirmation with yes-or-no-p.
7075
7076*** RET is now bound in the Rmail summary to rmail-summary-goto-msg,
7077like `j'.
7078
7079*** There is a new user option `rmail-digest-end-regexps' that
7080specifies the regular expressions to detect the line that ends a
7081digest message.
7082
7083*** The new user option `rmail-automatic-folder-directives' specifies
7084in which folder to put messages automatically.
7085
7086*** The new function `rmail-redecode-body' allows to fix a message
7087with non-ASCII characters if Emacs happens to decode it incorrectly
7088due to missing or malformed "charset=" header.
7089
7090** The new user-option `mail-envelope-from' can be used to specify
7091an envelope-from address different from user-mail-address.
7092
7093** The variable mail-specify-envelope-from controls whether to
7094use the -f option when sending mail.
7095
7096** The Rmail command `o' (`rmail-output-to-rmail-file') now writes the
7097current message in the internal `emacs-mule' encoding, rather than in
7098the encoding taken from the variable `buffer-file-coding-system'.
7099This allows to save messages whose characters cannot be safely encoded
7100by the buffer's coding system, and makes sure the message will be
7101displayed correctly when you later visit the target Rmail file.
7102
7103If you want your Rmail files be encoded in a specific coding system
7104other than `emacs-mule', you can customize the variable
7105`rmail-file-coding-system' to set its value to that coding system.
7106
7107** Changes to TeX mode
7108
7109*** The default mode has been changed from `plain-tex-mode' to
7110`latex-mode'.
7111
7112*** latex-mode now has a simple indentation algorithm.
7113
7114*** M-f and M-p jump around \begin...\end pairs.
7115
7116*** Added support for outline-minor-mode.
7117
7118** Changes to RefTeX mode
7119
7120*** RefTeX has new support for index generation. Index entries can be
7121 created with `C-c <', with completion available on index keys.
7122 Pressing `C-c /' indexes the word at the cursor with a default
7123 macro. `C-c >' compiles all index entries into an alphabetically
7124 sorted *Index* buffer which looks like the final index. Entries
7125 can be edited from that buffer.
7126
7127*** Label and citation key selection now allow to select several
7128 items and reference them together (use `m' to mark items, `a' or
7129 `A' to use all marked entries).
7130
7131*** reftex.el has been split into a number of smaller files to reduce
7132 memory use when only a part of RefTeX is being used.
7133
7134*** a new command `reftex-view-crossref-from-bibtex' (bound to `C-c &'
7135 in BibTeX-mode) can be called in a BibTeX database buffer in order
7136 to show locations in LaTeX documents where a particular entry has
7137 been cited.
7138
7139** Emacs Lisp mode now allows multiple levels of outline headings.
7140The level of a heading is determined from the number of leading
7141semicolons in a heading line. Toplevel forms starting with a `('
7142in column 1 are always made leaves.
7143
7144** The M-x time-stamp command (most commonly used on write-file-hooks)
7145has the following new features:
7146
7147*** The patterns for finding the time stamp and for updating a pattern
7148may match text spanning multiple lines. For example, some people like
7149to have the filename and date on separate lines. The new variable
7150time-stamp-inserts-lines controls the matching for multi-line patterns.
7151
7152*** More than one time stamp can be updated in the same file. This
7153feature is useful if you need separate time stamps in a program source
7154file to both include in formatted documentation and insert in the
7155compiled binary. The same time-stamp will be written at each matching
7156pattern. The variable time-stamp-count enables this new feature; it
7157defaults to 1.
7158
7159** Partial Completion mode now completes environment variables in
7160file names.
7161
7162** Ispell changes
7163
7164*** The command `ispell' now spell-checks a region if
7165transient-mark-mode is on, and the mark is active. Otherwise it
7166spell-checks the current buffer.
7167
7168*** Support for synchronous subprocesses - DOS/Windoze - has been
7169added.
7170
7171*** An "alignment error" bug was fixed when a manual spelling
7172correction is made and re-checked.
7173
7174*** Italian, Portuguese, and Slovak dictionary definitions have been added.
7175
7176*** Region skipping performance has been vastly improved in some
7177cases.
7178
7179*** Spell checking HTML buffers has been improved and isn't so strict
7180on syntax errors.
7181
7182*** The buffer-local words are now always placed on a new line at the
7183end of the buffer.
7184
7185*** Spell checking now works in the MS-DOS version of Emacs.
7186
7187** Makefile mode changes
7188
7189*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
7190
7191*** Conditionals and include statements are now highlighted when
7192Fontlock mode is active.
7193
7194** Isearch changes
7195
7196*** Isearch now puts a call to `isearch-resume' in the command history,
7197so that searches can be resumed.
7198
7199*** In Isearch mode, C-M-s and C-M-r are now bound like C-s and C-r,
7200respectively, i.e. you can repeat a regexp isearch with the same keys
7201that started the search.
7202
7203*** In Isearch mode, mouse-2 in the echo area now yanks the current
7204selection into the search string rather than giving an error.
7205
7206*** There is a new lazy highlighting feature in incremental search.
7207
7208Lazy highlighting is switched on/off by customizing variable
7209`isearch-lazy-highlight'. When active, all matches for the current
7210search string are highlighted. The current match is highlighted as
7211before using face `isearch' or `region'. All other matches are
7212highlighted using face `isearch-lazy-highlight-face' which defaults to
7213`secondary-selection'.
7214
7215The extra highlighting makes it easier to anticipate where the cursor
7216will end up each time you press C-s or C-r to repeat a pending search.
7217Highlighting of these additional matches happens in a deferred fashion
7218using "idle timers," so the cycles needed do not rob isearch of its
7219usual snappy response.
7220
7221If `isearch-lazy-highlight-cleanup' is set to t, highlights for
7222matches are automatically cleared when you end the search. If it is
7223set to nil, you can remove the highlights manually with `M-x
7224isearch-lazy-highlight-cleanup'.
7225
7226** VC Changes
7227
7228VC has been overhauled internally. It is now modular, making it
7229easier to plug-in arbitrary version control backends. (See Lisp
7230Changes for details on the new structure.) As a result, the mechanism
7231to enable and disable support for particular version systems has
7232changed: everything is now controlled by the new variable
7233`vc-handled-backends'. Its value is a list of symbols that identify
7234version systems; the default is '(RCS CVS SCCS). When finding a file,
7235each of the backends in that list is tried in order to see whether the
7236file is registered in that backend.
7237
7238When registering a new file, VC first tries each of the listed
7239backends to see if any of them considers itself "responsible" for the
7240directory of the file (e.g. because a corresponding subdirectory for
7241master files exists). If none of the backends is responsible, then
7242the first backend in the list that could register the file is chosen.
7243As a consequence, the variable `vc-default-back-end' is now obsolete.
7244
7245The old variable `vc-master-templates' is also obsolete, although VC
7246still supports it for backward compatibility. To define templates for
7247RCS or SCCS, you should rather use the new variables
7248vc-{rcs,sccs}-master-templates. (There is no such feature under CVS
7249where it doesn't make sense.)
7250
7251The variables `vc-ignore-vc-files' and `vc-handle-cvs' are also
7252obsolete now, you must set `vc-handled-backends' to nil or exclude
7253`CVS' from the list, respectively, to achieve their effect now.
7254
7255*** General Changes
7256
7257The variable `vc-checkout-carefully' is obsolete: the corresponding
7258checks are always done now.
7259
7260VC Dired buffers are now kept up-to-date during all version control
7261operations.
7262
7263`vc-diff' output is now displayed in `diff-mode'.
7264`vc-print-log' uses `log-view-mode'.
7265`vc-log-mode' (used for *VC-Log*) has been replaced by `log-edit-mode'.
7266
7267The command C-x v m (vc-merge) now accepts an empty argument as the
7268first revision number. This means that any recent changes on the
7269current branch should be picked up from the repository and merged into
7270the working file (``merge news'').
7271
7272The commands C-x v s (vc-create-snapshot) and C-x v r
7273(vc-retrieve-snapshot) now ask for a directory name from which to work
7274downwards.
7275
7276*** Multiple Backends
7277
7278VC now lets you register files in more than one backend. This is
7279useful, for example, if you are working with a slow remote CVS
7280repository. You can then use RCS for local editing, and occasionally
7281commit your changes back to CVS, or pick up changes from CVS into your
7282local RCS archives.
7283
7284To make this work, the ``more local'' backend (RCS in our example)
7285should come first in `vc-handled-backends', and the ``more remote''
7286backend (CVS) should come later. (The default value of
7287`vc-handled-backends' already has it that way.)
7288
7289You can then commit changes to another backend (say, RCS), by typing
7290C-u C-x v v RCS RET (i.e. vc-next-action now accepts a backend name as
7291a revision number). VC registers the file in the more local backend
7292if that hasn't already happened, and commits to a branch based on the
7293current revision number from the more remote backend.
7294
7295If a file is registered in multiple backends, you can switch to
7296another one using C-x v b (vc-switch-backend). This does not change
7297any files, it only changes VC's perspective on the file. Use this to
7298pick up changes from CVS while working under RCS locally.
7299
7300After you are done with your local RCS editing, you can commit your
7301changes back to CVS using C-u C-x v v CVS RET. In this case, the
7302local RCS archive is removed after the commit, and the log entry
7303buffer is initialized to contain the entire RCS change log of the file.
7304
7305*** Changes for CVS
7306
7307There is a new user option, `vc-cvs-stay-local'. If it is `t' (the
7308default), then VC avoids network queries for files registered in
7309remote repositories. The state of such files is then only determined
7310by heuristics and past information. `vc-cvs-stay-local' can also be a
7311regexp to match against repository hostnames; only files from hosts
7312that match it are treated locally. If the variable is nil, then VC
7313queries the repository just as often as it does for local files.
7314
7315If `vc-cvs-stay-local' is on, then VC also makes local backups of
7316repository versions. This means that ordinary diffs (C-x v =) and
7317revert operations (C-x v u) can be done completely locally, without
7318any repository interactions at all. The name of a local version
7319backup of FILE is FILE.~REV.~, where REV is the repository version
7320number. This format is similar to that used by C-x v ~
7321(vc-version-other-window), except for the trailing dot. As a matter
7322of fact, the two features can each use the files created by the other,
7323the only difference being that files with a trailing `.' are deleted
7324automatically after commit. (This feature doesn't work on MS-DOS,
7325since DOS disallows more than a single dot in the trunk of a file
7326name.)
7327
7328If `vc-cvs-stay-local' is on, and there have been changes in the
7329repository, VC notifies you about it when you actually try to commit.
7330If you want to check for updates from the repository without trying to
7331commit, you can either use C-x v m RET to perform an update on the
7332current file, or you can use C-x v r RET to get an update for an
7333entire directory tree.
7334
7335The new user option `vc-cvs-use-edit' indicates whether VC should call
7336"cvs edit" to make files writeable; it defaults to `t'. (This option
7337is only meaningful if the CVSREAD variable is set, or if files are
7338"watched" by other developers.)
7339
7340The commands C-x v s (vc-create-snapshot) and C-x v r
7341(vc-retrieve-snapshot) are now also implemented for CVS. If you give
7342an empty snapshot name to the latter, that performs a `cvs update',
7343starting at the given directory.
7344
7345*** Lisp Changes in VC
7346
7347VC has been restructured internally to make it modular. You can now
7348add support for arbitrary version control backends by writing a
7349library that provides a certain set of backend-specific functions, and
7350then telling VC to use that library. For example, to add support for
7351a version system named SYS, you write a library named vc-sys.el, which
7352provides a number of functions vc-sys-... (see commentary at the top
7353of vc.el for a detailed list of them). To make VC use that library,
7354you need to put it somewhere into Emacs' load path and add the symbol
7355`SYS' to the list `vc-handled-backends'.
7356
7357** The customizable EDT emulation package now supports the EDT
7358SUBS command and EDT scroll margins. It also works with more
7359terminal/keyboard configurations and it now works under XEmacs.
7360See etc/edt-user.doc for more information.
7361
7362** New modes and packages
7363
7364*** The new global minor mode `minibuffer-electric-default-mode'
7365automatically hides the `(default ...)' part of minibuffer prompts when
7366the default is not applicable.
7367
7368*** Artist is an Emacs lisp package that allows you to draw lines,
7369rectangles and ellipses by using your mouse and/or keyboard. The
7370shapes are made up with the ascii characters |, -, / and \.
7371
7372Features are:
7373
7374- Intersecting: When a `|' intersects with a `-', a `+' is
7375 drawn, like this: | \ /
7376 --+-- X
7377 | / \
7378
7379- Rubber-banding: When drawing lines you can interactively see the
7380 result while holding the mouse button down and moving the mouse. If
7381 your machine is not fast enough (a 386 is a bit too slow, but a
7382 pentium is well enough), you can turn this feature off. You will
7383 then see 1's and 2's which mark the 1st and 2nd endpoint of the line
7384 you are drawing.
7385
7386- Arrows: After having drawn a (straight) line or a (straight)
7387 poly-line, you can set arrows on the line-ends by typing < or >.
7388
7389- Flood-filling: You can fill any area with a certain character by
7390 flood-filling.
7391
7392- Cut copy and paste: You can cut, copy and paste rectangular
7393 regions. Artist also interfaces with the rect package (this can be
7394 turned off if it causes you any trouble) so anything you cut in
7395 artist can be yanked with C-x r y and vice versa.
7396
7397- Drawing with keys: Everything you can do with the mouse, you can
7398 also do without the mouse.
7399
7400- Aspect-ratio: You can set the variable artist-aspect-ratio to
7401 reflect the height-width ratio for the font you are using. Squares
7402 and circles are then drawn square/round. Note, that once your
7403 ascii-file is shown with font with a different height-width ratio,
7404 the squares won't be square and the circles won't be round.
7405
7406- Drawing operations: The following drawing operations are implemented:
7407
7408 lines straight-lines
7409 rectangles squares
7410 poly-lines straight poly-lines
7411 ellipses circles
7412 text (see-thru) text (overwrite)
7413 spray-can setting size for spraying
7414 vaporize line vaporize lines
7415 erase characters erase rectangles
7416
7417 Straight lines are lines that go horizontally, vertically or
7418 diagonally. Plain lines go in any direction. The operations in
7419 the right column are accessed by holding down the shift key while
7420 drawing.
7421
7422 It is possible to vaporize (erase) entire lines and connected lines
7423 (rectangles for example) as long as the lines being vaporized are
7424 straight and connected at their endpoints. Vaporizing is inspired
7425 by the drawrect package by Jari Aalto <jari.aalto@poboxes.com>.
7426
7427- Picture mode compatibility: Artist is picture mode compatible (this
7428 can be turned off).
7429
7430*** The new package Eshell is an operating system command shell
7431implemented entirely in Emacs Lisp. Use `M-x eshell' to invoke it.
7432It functions similarly to bash and zsh, and allows running of Lisp
7433functions and external commands using the same syntax. It supports
7434history lists, aliases, extended globbing, smart scrolling, etc. It
7435will work on any platform Emacs has been ported to. And since most of
7436the basic commands -- ls, rm, mv, cp, ln, du, cat, etc. -- have been
7437rewritten in Lisp, it offers an operating-system independent shell,
7438all within the scope of your Emacs process.
7439
7440*** The new package timeclock.el is a mode is for keeping track of time
7441intervals. You can use it for whatever purpose you like, but the
7442typical scenario is to keep track of how much time you spend working
7443on certain projects.
7444
7445*** The new package hi-lock.el provides commands to highlight matches
7446of interactively entered regexps. For example,
7447
7448 M-x highlight-regexp RET clearly RET RET
7449
7450will highlight all occurrences of `clearly' using a yellow background
7451face. New occurrences of `clearly' will be highlighted as they are
7452typed. `M-x unhighlight-regexp RET' will remove the highlighting.
7453Any existing face can be used for highlighting and a set of
7454appropriate faces is provided. The regexps can be written into the
7455current buffer in a form that will be recognized the next time the
7456corresponding file is read. There are commands to highlight matches
7457to phrases and to highlight entire lines containing a match.
7458
7459*** The new package zone.el plays games with Emacs' display when
7460Emacs is idle.
7461
7462*** The new package tildify.el allows to add hard spaces or other text
7463fragments in accordance with the current major mode.
7464
7465*** The new package xml.el provides a simple but generic XML
7466parser. It doesn't parse the DTDs however.
7467
7468*** The comment operations are now provided by the newcomment.el
7469package which allows different styles of comment-region and should
7470be more robust while offering the same functionality.
7471`comment-region' now doesn't always comment a-line-at-a-time, but only
7472comments the region, breaking the line at point if necessary.
7473
7474*** The Ebrowse package implements a C++ class browser and tags
7475facilities tailored for use with C++. It is documented in a
7476separate Texinfo file.
7477
7478*** The PCL-CVS package available by either running M-x cvs-examine or
7479by visiting a CVS administrative directory (with a prefix argument)
7480provides an alternative interface to VC-dired for CVS. It comes with
7481`log-view-mode' to view RCS and SCCS logs and `log-edit-mode' used to
7482enter check-in log messages.
7483
7484*** The new package called `woman' allows to browse Unix man pages
7485without invoking external programs.
7486
7487The command `M-x woman' formats manual pages entirely in Emacs Lisp
7488and then displays them, like `M-x manual-entry' does. Unlike
7489`manual-entry', `woman' does not invoke any external programs, so it
7490is useful on systems such as MS-DOS/MS-Windows where the `man' and
7491Groff or `troff' commands are not readily available.
7492
7493The command `M-x woman-find-file' asks for the file name of a man
7494page, then formats and displays it like `M-x woman' does.
7495
7496*** The new command M-x re-builder offers a convenient interface for
7497authoring regular expressions with immediate visual feedback.
7498
7499The buffer from which the command was called becomes the target for
7500the regexp editor popping up in a separate window. Matching text in
7501the target buffer is immediately color marked during the editing.
7502Each sub-expression of the regexp will show up in a different face so
7503even complex regexps can be edited and verified on target data in a
7504single step.
7505
7506On displays not supporting faces the matches instead blink like
7507matching parens to make them stand out. On such a setup you will
7508probably also want to use the sub-expression mode when the regexp
7509contains such to get feedback about their respective limits.
7510
7511*** glasses-mode is a minor mode that makes
7512unreadableIdentifiersLikeThis readable. It works as glasses, without
7513actually modifying content of a buffer.
7514
7515*** The package ebnf2ps translates an EBNF to a syntactic chart in
7516PostScript.
7517
7518Currently accepts ad-hoc EBNF, ISO EBNF and Bison/Yacc.
7519
7520The ad-hoc default EBNF syntax has the following elements:
7521
7522 ; comment (until end of line)
7523 A non-terminal
7524 "C" terminal
7525 ?C? special
7526 $A default non-terminal
7527 $"C" default terminal
7528 $?C? default special
7529 A = B. production (A is the header and B the body)
7530 C D sequence (C occurs before D)
7531 C | D alternative (C or D occurs)
7532 A - B exception (A excluding B, B without any non-terminal)
7533 n * A repetition (A repeats n (integer) times)
7534 (C) group (expression C is grouped together)
7535 [C] optional (C may or not occurs)
7536 C+ one or more occurrences of C
7537 {C}+ one or more occurrences of C
7538 {C}* zero or more occurrences of C
7539 {C} zero or more occurrences of C
7540 C / D equivalent to: C {D C}*
7541 {C || D}+ equivalent to: C {D C}*
7542 {C || D}* equivalent to: [C {D C}*]
7543 {C || D} equivalent to: [C {D C}*]
7544
7545Please, see ebnf2ps documentation for EBNF syntax and how to use it.
7546
7547*** The package align.el will align columns within a region, using M-x
7548align. Its mode-specific rules, based on regular expressions,
7549determine where the columns should be split. In C and C++, for
7550example, it will align variable names in declaration lists, or the
7551equal signs of assignments.
7552
7553*** `paragraph-indent-minor-mode' is a new minor mode supporting
7554paragraphs in the same style as `paragraph-indent-text-mode'.
7555
7556*** bs.el is a new package for buffer selection similar to
7557list-buffers or electric-buffer-list. Use M-x bs-show to display a
7558buffer menu with this package. See the Custom group `bs'.
7559
7560*** find-lisp.el is a package emulating the Unix find command in Lisp.
7561
7562*** calculator.el is a small calculator package that is intended to
7563replace desktop calculators such as xcalc and calc.exe. Actually, it
7564is not too small - it has more features than most desktop calculators,
7565and can be customized easily to get many more functions. It should
7566not be confused with "calc" which is a much bigger mathematical tool
7567which answers different needs.
7568
7569*** The minor modes cwarn-mode and global-cwarn-mode highlights
7570suspicious C and C++ constructions. Currently, assignments inside
7571expressions, semicolon following `if', `for' and `while' (except, of
7572course, after a `do .. while' statement), and C++ functions with
7573reference parameters are recognized. The modes require font-lock mode
7574to be enabled.
7575
7576*** smerge-mode.el provides `smerge-mode', a simple minor-mode for files
7577containing diff3-style conflict markers, such as generated by RCS.
7578
7579*** 5x5.el is a simple puzzle game.
7580
7581*** hl-line.el provides `hl-line-mode', a minor mode to highlight the
7582current line in the current buffer. It also provides
7583`global-hl-line-mode' to provide the same behavior in all buffers.
7584
7585*** ansi-color.el translates ANSI terminal escapes into text-properties.
7586
7587Please note: if `ansi-color-for-comint-mode' and
7588`global-font-lock-mode' are non-nil, loading ansi-color.el will
7589disable font-lock and add `ansi-color-apply' to
7590`comint-preoutput-filter-functions' for all shell-mode buffers. This
7591displays the output of "ls --color=yes" using the correct foreground
7592and background colors.
7593
7594*** delphi.el provides a major mode for editing the Delphi (Object
7595Pascal) language.
7596
7597*** quickurl.el provides a simple method of inserting a URL based on
7598the text at point.
7599
7600*** sql.el provides an interface to SQL data bases.
7601
7602*** fortune.el uses the fortune program to create mail/news signatures.
7603
7604*** whitespace.el is a package for warning about and cleaning bogus
7605whitespace in a file.
7606
7607*** PostScript mode (ps-mode) is a new major mode for editing PostScript
7608files. It offers: interaction with a PostScript interpreter, including
7609(very basic) error handling; fontification, easily customizable for
7610interpreter messages; auto-indentation; insertion of EPSF templates and
7611often used code snippets; viewing of BoundingBox; commenting out /
7612uncommenting regions; conversion of 8bit characters to PostScript octal
7613codes. All functionality is accessible through a menu.
7614
7615*** delim-col helps to prettify columns in a text region or rectangle.
7616
7617Here is an example of columns:
7618
7619horse apple bus
7620dog pineapple car EXTRA
7621porcupine strawberry airplane
7622
7623Doing the following settings:
7624
7625 (setq delimit-columns-str-before "[ ")
7626 (setq delimit-columns-str-after " ]")
7627 (setq delimit-columns-str-separator ", ")
7628 (setq delimit-columns-separator "\t")
7629
7630
7631Selecting the lines above and typing:
7632
7633 M-x delimit-columns-region
7634
7635It results:
7636
7637[ horse , apple , bus , ]
7638[ dog , pineapple , car , EXTRA ]
7639[ porcupine, strawberry, airplane, ]
7640
7641delim-col has the following options:
7642
7643 delimit-columns-str-before Specify a string to be inserted
7644 before all columns.
7645
7646 delimit-columns-str-separator Specify a string to be inserted
7647 between each column.
7648
7649 delimit-columns-str-after Specify a string to be inserted
7650 after all columns.
7651
7652 delimit-columns-separator Specify a regexp which separates
7653 each column.
7654
7655delim-col has the following commands:
7656
7657 delimit-columns-region Prettify all columns in a text region.
7658 delimit-columns-rectangle Prettify all columns in a text rectangle.
7659
7660*** Recentf mode maintains a menu for visiting files that were
7661operated on recently. User option recentf-menu-filter specifies a
7662menu filter function to change the menu appearance. For example, the
7663recent file list can be displayed:
7664
7665- organized by major modes, directories or user defined rules.
7666- sorted by file paths, file names, ascending or descending.
7667- showing paths relative to the current default-directory
7668
7669The `recentf-filter-changer' menu filter function allows to
7670dynamically change the menu appearance.
7671
7672*** elide-head.el provides a mechanism for eliding boilerplate header
7673text.
7674
7675*** footnote.el provides `footnote-mode', a minor mode supporting use
7676of footnotes. It is intended for use with Message mode, but isn't
7677specific to Message mode.
7678
7679*** diff-mode.el provides `diff-mode', a major mode for
7680viewing/editing context diffs (patches). It is selected for files
7681with extension `.diff', `.diffs', `.patch' and `.rej'.
7682
7683*** EUDC, the Emacs Unified Directory Client, provides a common user
7684interface to access directory servers using different directory
7685protocols. It has a separate manual.
7686
7687*** autoconf.el provides a major mode for editing configure.in files
7688for Autoconf, selected automatically.
7689
7690*** windmove.el provides moving between windows.
7691
7692*** crm.el provides a facility to read multiple strings from the
7693minibuffer with completion.
7694
7695*** todo-mode.el provides management of TODO lists and integration
7696with the diary features.
7697
7698*** autoarg.el provides a feature reported from Twenex Emacs whereby
7699numeric keys supply prefix args rather than self inserting.
7700
7701*** The function `turn-off-auto-fill' unconditionally turns off Auto
7702Fill mode.
7703
7704*** pcomplete.el is a library that provides programmable completion
7705facilities for Emacs, similar to what zsh and tcsh offer. The main
7706difference is that completion functions are written in Lisp, meaning
7707they can be profiled, debugged, etc.
7708
7709*** antlr-mode is a new major mode for editing ANTLR grammar files.
7710It is automatically turned on for files whose names have the extension
7711`.g'.
7712
7713** Changes in sort.el
7714
7715The function sort-numeric-fields interprets numbers starting with `0'
7716as octal and numbers starting with `0x' or `0X' as hexadecimal. The
7717new user-option sort-numeric-base can be used to specify a default
7718numeric base.
7719
7720** Changes to Ange-ftp
7721
7722*** Ange-ftp allows you to specify of a port number in remote file
7723names cleanly. It is appended to the host name, separated by a hash
7724sign, e.g. `/foo@bar.org#666:mumble'. (This syntax comes from EFS.)
7725
7726*** If the new user-option `ange-ftp-try-passive-mode' is set, passive
7727ftp mode will be used if the ftp client supports that.
7728
7729*** Ange-ftp handles the output of the w32-style clients which
7730output ^M at the end of lines.
7731
7732** The recommended way of using Iswitchb is via the new global minor
7733mode `iswitchb-mode'.
7734
7735** Just loading the msb package doesn't switch on Msb mode anymore.
7736If you have `(require 'msb)' in your .emacs, please replace it with
7737`(msb-mode 1)'.
7738
7739** Flyspell mode has various new options. See the `flyspell' Custom
7740group.
7741
7742** The user option `backward-delete-char-untabify-method' controls the
7743behavior of `backward-delete-char-untabify'. The following values
7744are recognized:
7745
7746`untabify' -- turn a tab to many spaces, then delete one space;
7747`hungry' -- delete all whitespace, both tabs and spaces;
7748`all' -- delete all whitespace, including tabs, spaces and newlines;
7749nil -- just delete one character.
7750
7751Default value is `untabify'.
7752
7753[This change was made in Emacs 20.3 but not mentioned then.]
7754
7755** In Cperl mode `cperl-invalid-face' should now be a normal face
7756symbol, not double-quoted.
7757
7758** Some packages are declared obsolete, to be removed in a future
7759version. They are: auto-show, c-mode, hilit19, hscroll, ooutline,
7760profile, rnews, rnewspost, and sc. Their implementations have been
7761moved to lisp/obsolete.
7762
7763** auto-compression mode is no longer enabled just by loading jka-compr.el.
7764To control it, set `auto-compression-mode' via Custom or use the
7765`auto-compression-mode' command.
7766
7767** `browse-url-gnome-moz' is a new option for
7768`browse-url-browser-function', invoking Mozilla in GNOME, and
7769`browse-url-kde' can be chosen for invoking the KDE browser.
7770
7771** The user-option `browse-url-new-window-p' has been renamed to
7772`browse-url-new-window-flag'.
7773
7774** The functions `keep-lines', `flush-lines' and `how-many' now
7775operate on the active region in Transient Mark mode.
7776
7777** `gnus-user-agent' is a new possibility for `mail-user-agent'. It
7778is like `message-user-agent', but with all the Gnus paraphernalia.
7779
7780** The Strokes package has been updated. If your Emacs has XPM
7781support, you can use it for pictographic editing. In Strokes mode,
7782use C-mouse-2 to compose a complex stoke and insert it into the
7783buffer. You can encode or decode a strokes buffer with new commands
7784M-x strokes-encode-buffer and M-x strokes-decode-buffer. There is a
7785new command M-x strokes-list-strokes.
7786
7787** Hexl contains a new command `hexl-insert-hex-string' which inserts
7788a string of hexadecimal numbers read from the mini-buffer.
7789
7790** Hexl mode allows to insert non-ASCII characters.
7791
7792The non-ASCII characters are encoded using the same encoding as the
7793file you are visiting in Hexl mode.
7794
7795** Shell script mode changes.
7796
7797Shell script mode (sh-script) can now indent scripts for shells
7798derived from sh and rc. The indentation style is customizable, and
7799sh-script can attempt to "learn" the current buffer's style.
7800
7801** Etags changes.
7802
7803*** In DOS, etags looks for file.cgz if it cannot find file.c.
7804
7805*** New option --ignore-case-regex is an alternative to --regex. It is now
7806possible to bind a regexp to a language, by prepending the regexp with
7807{lang}, where lang is one of the languages that `etags --help' prints out.
7808This feature is useful especially for regex files, where each line contains
7809a regular expression. The manual contains details.
7810
7811*** In C and derived languages, etags creates tags for function
7812declarations when given the --declarations option.
7813
7814*** In C++, tags are created for "operator". The tags have the form
7815"operator+", without spaces between the keyword and the operator.
7816
7817*** You shouldn't generally need any more the -C or -c++ option: etags
7818automatically switches to C++ parsing when it meets the `class' or
7819`template' keywords.
7820
7821*** Etags now is able to delve at arbitrary deeps into nested structures in
7822C-like languages. Previously, it was limited to one or two brace levels.
7823
7824*** New language Ada: tags are functions, procedures, packages, tasks, and
7825types.
7826
7827*** In Fortran, `procedure' is not tagged.
7828
7829*** In Java, tags are created for "interface".
7830
7831*** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
7832are now tagged.
7833
7834*** In makefiles, tags the targets.
7835
7836*** In Perl, the --globals option tags global variables. my and local
7837variables are tagged.
7838
7839*** New language Python: def and class at the beginning of a line are tags.
7840
7841*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
7842for PSWrap.
7843
7844** Changes in etags.el
7845
7846*** The new user-option tags-case-fold-search can be used to make
7847tags operations case-sensitive or case-insensitive. The default
7848is to use the same setting as case-fold-search.
7849
7850*** You can display additional output with M-x tags-apropos by setting
7851the new variable tags-apropos-additional-actions.
7852
7853If non-nil, the variable's value should be a list of triples (TITLE
7854FUNCTION TO-SEARCH). For each triple, M-x tags-apropos processes
7855TO-SEARCH and lists tags from it. TO-SEARCH should be an alist,
7856obarray, or symbol. If it is a symbol, the symbol's value is used.
7857
7858TITLE is a string to use to label the list of tags from TO-SEARCH.
7859
7860FUNCTION is a function to call when an entry is selected in the Tags
7861List buffer. It is called with one argument, the selected symbol.
7862
7863A useful example value for this variable might be something like:
7864
7865 '(("Emacs Lisp" Info-goto-emacs-command-node obarray)
7866 ("Common Lisp" common-lisp-hyperspec common-lisp-hyperspec-obarray)
7867 ("SCWM" scwm-documentation scwm-obarray))
7868
7869*** The face tags-tag-face can be used to customize the appearance
7870of tags in the output of M-x tags-apropos.
7871
7872*** Setting tags-apropos-verbose to a non-nil value displays the
7873names of tags files in the *Tags List* buffer.
7874
7875*** You can now search for tags that are part of the filename itself.
7876If you have tagged the files topfile.c subdir/subfile.c
7877/tmp/tempfile.c, you can now search for tags "topfile.c", "subfile.c",
7878"dir/sub", "tempfile", "tempfile.c". If the tag matches the file name,
7879point will go to the beginning of the file.
7880
7881*** Compressed files are now transparently supported if
7882auto-compression-mode is active. You can tag (with Etags) and search
7883(with find-tag) both compressed and uncompressed files.
7884
7885*** Tags commands like M-x tags-search no longer change point
7886in buffers where no match is found. In buffers where a match is
7887found, the original value of point is pushed on the marker ring.
7888
7889** Fortran mode has a new command `fortran-strip-sequence-nos' to
7890remove text past column 72. The syntax class of `\' in Fortran is now
7891appropriate for C-style escape sequences in strings.
7892
7893** SGML mode's default `sgml-validate-command' is now `nsgmls'.
7894
7895** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
7896
7897** The Dabbrev package has a new user-option `dabbrev-ignored-regexps'
7898containing a list of regular expressions. Buffers matching a regular
7899expression from that list, are not checked.
7900
7901** Emacs can now figure out modification times of remote files.
7902When you do C-x C-f /user@host:/path/file RET and edit the file,
7903and someone else modifies the file, you will be prompted to revert
7904the buffer, just like for the local files.
7905
7906** The buffer menu (C-x C-b) no longer lists the *Buffer List* buffer.
7907
7908** When invoked with a prefix argument, the command `list-abbrevs' now
7909displays local abbrevs, only.
7910
7911** Refill minor mode provides preliminary support for keeping
7912paragraphs filled as you modify them.
7913
7914** The variable `double-click-fuzz' specifies how much the mouse
7915may be moved between clicks that are recognized as a pair. Its value
7916is measured in pixels.
7917
7918** The new global minor mode `auto-image-file-mode' allows image files
7919to be visited as images.
7920
7921** Two new user-options `grep-command' and `grep-find-command'
7922were added to compile.el.
7923
7924** Withdrawn packages
7925
7926*** mldrag.el has been removed. mouse.el provides the same
7927functionality with aliases for the mldrag functions.
7928
7929*** eval-reg.el has been obsoleted by changes to edebug.el and removed.
7930
7931*** ph.el has been obsoleted by EUDC and removed.
7932
7933
7934* Incompatible Lisp changes
7935
7936There are a few Lisp changes which are not backwards-compatible and
7937may require changes to existing code. Here is a list for reference.
7938See the sections below for details.
7939
7940** Since `format' preserves text properties, the idiom
7941`(format "%s" foo)' no longer works to copy and remove properties.
7942Use `copy-sequence' to copy the string, then use `set-text-properties'
7943to remove the properties of the copy.
7944
7945** Since the `keymap' text property now has significance, some code
7946which uses both `local-map' and `keymap' properties (for portability)
7947may, for instance, give rise to duplicate menus when the keymaps from
7948these properties are active.
7949
7950** The change in the treatment of non-ASCII characters in search
7951ranges may affect some code.
7952
7953** A non-nil value for the LOCAL arg of add-hook makes the hook
7954buffer-local even if `make-local-hook' hasn't been called, which might
7955make a difference to some code.
7956
7957** The new treatment of the minibuffer prompt might affect code which
7958operates on the minibuffer.
7959
7960** The new character sets `eight-bit-control' and `eight-bit-graphic'
7961cause `no-conversion' and `emacs-mule-unix' coding systems to produce
7962different results when reading files with non-ASCII characters
7963(previously, both coding systems would produce the same results).
7964Specifically, `no-conversion' interprets each 8-bit byte as a separate
7965character. This makes `no-conversion' inappropriate for reading
7966multibyte text, e.g. buffers written to disk in their internal MULE
7967encoding (auto-saving does that, for example). If a Lisp program
7968reads such files with `no-conversion', each byte of the multibyte
7969sequence, including the MULE leading codes such as \201, is treated as
7970a separate character, which prevents them from being interpreted in
7971the buffer as multibyte characters.
7972
7973Therefore, Lisp programs that read files which contain the internal
7974MULE encoding should use `emacs-mule-unix'. `no-conversion' is only
7975appropriate for reading truly binary files.
7976
7977** Code that relies on the obsolete `before-change-function' and
7978`after-change-function' to detect buffer changes will now fail. Use
7979`before-change-functions' and `after-change-functions' instead.
7980
7981** Code that uses `concat' with integer args now gets an error, as
7982long promised. So does any code that uses derivatives of `concat',
7983such as `mapconcat'.
7984
7985** The function base64-decode-string now always returns a unibyte
7986string.
7987
7988** Not a Lisp incompatibility as such but, with the introduction of
7989extra private charsets, there is now only one slot free for a new
7990dimension-2 private charset. User code which tries to add more than
7991one extra will fail unless you rebuild Emacs with some standard
7992charset(s) removed; that is probably inadvisable because it changes
7993the emacs-mule encoding. Also, files stored in the emacs-mule
7994encoding using Emacs 20 with additional private charsets defined will
7995probably not be read correctly by Emacs 21.
7996
7997** The variable `directory-sep-char' is slated for removal.
7998Not really a change (yet), but a projected one that you should be
7999aware of: The variable `directory-sep-char' is deprecated, and should
8000not be used. It was always ignored on GNU/Linux and Unix systems and
8001on MS-DOS, but the MS-Windows port tried to support it by adapting the
8002behavior of certain primitives to the value of this variable. It
8003turned out that such support cannot be reliable, so it was decided to
8004remove this variable in the near future. Lisp programs are well
8005advised not to set it to anything but '/', because any different value
8006will not have any effect when support for this variable is removed.
8007
8008
8009* Lisp changes made after edition 2.6 of the Emacs Lisp Manual,
8010(Display-related features are described in a page of their own below.)
8011
8012** Function assq-delete-all replaces function assoc-delete-all.
8013
8014** The new function animate-string, from lisp/play/animate.el
8015allows the animated display of strings.
8016
8017** The new function `interactive-form' can be used to obtain the
8018interactive form of a function.
8019
8020** The keyword :set-after in defcustom allows to specify dependencies
8021between custom options. Example:
8022
8023 (defcustom default-input-method nil
8024 "*Default input method for multilingual text (a string).
8025 This is the input method activated automatically by the command
8026 `toggle-input-method' (\\[toggle-input-method])."
8027 :group 'mule
8028 :type '(choice (const nil) string)
8029 :set-after '(current-language-environment))
8030
8031This specifies that default-input-method should be set after
8032current-language-environment even if default-input-method appears
8033first in a custom-set-variables statement.
8034
8035** The new hook `kbd-macro-termination-hook' is run at the end of
8036function execute-kbd-macro. Functions on this hook are called with no
8037args. The hook is run independent of how the macro was terminated
8038(signal or normal termination).
8039
8040** Functions `butlast' and `nbutlast' for removing trailing elements
8041from a list are now available without requiring the CL package.
8042
8043** The new user-option `even-window-heights' can be set to nil
8044to prevent `display-buffer' from evening out window heights.
8045
8046** The user-option `face-font-registry-alternatives' specifies
8047alternative font registry names to try when looking for a font.
8048
8049** Function `md5' calculates the MD5 "message digest"/"checksum".
8050
8051** Function `delete-frame' runs `delete-frame-hook' before actually
8052deleting the frame. The hook is called with one arg, the frame
8053being deleted.
8054
8055** `add-hook' now makes the hook local if called with a non-nil LOCAL arg.
8056
8057** The treatment of non-ASCII characters in search ranges has changed.
8058If a range in a regular expression or the arg of
8059skip-chars-forward/backward starts with a unibyte character C and ends
8060with a multibyte character C2, the range is divided into two: one is
8061C..?\377, the other is C1..C2, where C1 is the first character of C2's
8062charset.
8063
8064** The new function `display-message-or-buffer' displays a message in
8065the echo area or pops up a buffer, depending on the length of the
8066message.
8067
8068** The new macro `with-auto-compression-mode' allows evaluating an
8069expression with auto-compression-mode enabled.
8070
8071** In image specifications, `:heuristic-mask' has been replaced
8072with the more general `:mask' property.
8073
8074** Image specifications accept more `:conversion's.
8075
8076** A `?' can be used in a symbol name without escaping it with a
8077backslash.
8078
8079** Reading from the mini-buffer now reads from standard input if Emacs
8080is running in batch mode. For example,
8081
8082 (message "%s" (read t))
8083
8084will read a Lisp expression from standard input and print the result
8085to standard output.
8086
8087** The argument of `down-list', `backward-up-list', `up-list',
8088`kill-sexp', `backward-kill-sexp' and `mark-sexp' is now optional.
8089
8090** If `display-buffer-reuse-frames' is set, function `display-buffer'
8091will raise frames displaying a buffer, instead of creating a new
8092frame or window.
8093
8094** Two new functions for removing elements from lists/sequences
8095were added
8096
8097- Function: remove ELT SEQ
8098
8099Return a copy of SEQ with all occurrences of ELT removed. SEQ must be
8100a list, vector, or string. The comparison is done with `equal'.
8101
8102- Function: remq ELT LIST
8103
8104Return a copy of LIST with all occurrences of ELT removed. The
8105comparison is done with `eq'.
8106
8107** The function `delete' now also works with vectors and strings.
8108
8109** The meaning of the `:weakness WEAK' argument of make-hash-table
8110has been changed: WEAK can now have new values `key-or-value' and
8111`key-and-value', in addition to `nil', `key', `value', and `t'.
8112
8113** Function `aset' stores any multibyte character in any string
8114without signaling "Attempt to change char length of a string". It may
8115convert a unibyte string to multibyte if necessary.
8116
8117** The value of the `help-echo' text property is called as a function
8118or evaluated, if it is not a string already, to obtain a help string.
8119
8120** Function `make-obsolete' now has an optional arg to say when the
8121function was declared obsolete.
8122
8123** Function `plist-member' is renamed from `widget-plist-member' (which is
8124retained as an alias).
8125
8126** Easy-menu's :filter now takes the unconverted form of the menu and
8127the result is automatically converted to Emacs' form.
8128
8129** The new function `window-list' has been defined
8130
8131- Function: window-list &optional FRAME WINDOW MINIBUF
8132
8133Return a list of windows on FRAME, starting with WINDOW. FRAME nil or
8134omitted means use the selected frame. WINDOW nil or omitted means use
8135the selected window. MINIBUF t means include the minibuffer window,
8136even if it isn't active. MINIBUF nil or omitted means include the
8137minibuffer window only if it's active. MINIBUF neither nil nor t
8138means never include the minibuffer window.
8139
8140** There's a new function `get-window-with-predicate' defined as follows
8141
8142- Function: get-window-with-predicate PREDICATE &optional MINIBUF ALL-FRAMES DEFAULT
8143
8144Return a window satisfying PREDICATE.
8145
8146This function cycles through all visible windows using `walk-windows',
8147calling PREDICATE on each one. PREDICATE is called with a window as
8148argument. The first window for which PREDICATE returns a non-nil
8149value is returned. If no window satisfies PREDICATE, DEFAULT is
8150returned.
8151
8152Optional second arg MINIBUF t means count the minibuffer window even
8153if not active. MINIBUF nil or omitted means count the minibuffer iff
8154it is active. MINIBUF neither t nor nil means not to count the
8155minibuffer even if it is active.
8156
8157Several frames may share a single minibuffer; if the minibuffer
8158counts, all windows on all frames that share that minibuffer count
8159too. Therefore, if you are using a separate minibuffer frame
8160and the minibuffer is active and MINIBUF says it counts,
8161`walk-windows' includes the windows in the frame from which you
8162entered the minibuffer, as well as the minibuffer window.
8163
8164ALL-FRAMES is the optional third argument.
8165ALL-FRAMES nil or omitted means cycle within the frames as specified above.
8166ALL-FRAMES = `visible' means include windows on all visible frames.
8167ALL-FRAMES = 0 means include windows on all visible and iconified frames.
8168ALL-FRAMES = t means include windows on all frames including invisible frames.
8169If ALL-FRAMES is a frame, it means include windows on that frame.
8170Anything else means restrict to the selected frame.
8171
8172** The function `single-key-description' now encloses function key and
8173event names in angle brackets. When called with a second optional
8174argument non-nil, angle brackets won't be printed.
8175
8176** If the variable `message-truncate-lines' is bound to t around a
8177call to `message', the echo area will not be resized to display that
8178message; it will be truncated instead, as it was done in 20.x.
8179Default value is nil.
8180
8181** The user option `line-number-display-limit' can now be set to nil,
8182meaning no limit.
8183
8184** The new user option `line-number-display-limit-width' controls
8185the maximum width of lines in a buffer for which Emacs displays line
8186numbers in the mode line. The default is 200.
8187
8188** `select-safe-coding-system' now also checks the most preferred
8189coding-system if buffer-file-coding-system is `undecided' and
8190DEFAULT-CODING-SYSTEM is not specified,
8191
8192** The function `subr-arity' provides information about the argument
8193list of a primitive.
8194
8195** `where-is-internal' now also accepts a list of keymaps.
8196
8197** The text property `keymap' specifies a key map which overrides the
8198buffer's local map and the map specified by the `local-map' property.
8199This is probably what most current uses of `local-map' want, rather
8200than replacing the local map.
8201
8202** The obsolete variables `before-change-function' and
8203`after-change-function' are no longer acted upon and have been
8204removed. Use `before-change-functions' and `after-change-functions'
8205instead.
8206
8207** The function `apropos-mode' runs the hook `apropos-mode-hook'.
8208
8209** `concat' no longer accepts individual integer arguments,
8210as promised long ago.
8211
8212** The new function `float-time' returns the current time as a float.
8213
8214** The new variable auto-coding-regexp-alist specifies coding systems
8215for reading specific files, analogous to auto-coding-alist, but
8216patterns are checked against file contents instead of file names.
8217
8218
8219* Lisp changes in Emacs 21.1 (see following page for display-related features)
8220
8221** The new package rx.el provides an alternative sexp notation for
8222regular expressions.
8223
8224- Function: rx-to-string SEXP
8225
8226Translate SEXP into a regular expression in string notation.
8227
8228- Macro: rx SEXP
8229
8230Translate SEXP into a regular expression in string notation.
8231
8232The following are valid subforms of regular expressions in sexp
8233notation.
8234
8235STRING
8236 matches string STRING literally.
8237
8238CHAR
8239 matches character CHAR literally.
8240
8241`not-newline'
8242 matches any character except a newline.
8243 .
8244`anything'
8245 matches any character
8246
8247`(any SET)'
8248 matches any character in SET. SET may be a character or string.
8249 Ranges of characters can be specified as `A-Z' in strings.
8250
8251'(in SET)'
8252 like `any'.
8253
8254`(not (any SET))'
8255 matches any character not in SET
8256
8257`line-start'
8258 matches the empty string, but only at the beginning of a line
8259 in the text being matched
8260
8261`line-end'
8262 is similar to `line-start' but matches only at the end of a line
8263
8264`string-start'
8265 matches the empty string, but only at the beginning of the
8266 string being matched against.
8267
8268`string-end'
8269 matches the empty string, but only at the end of the
8270 string being matched against.
8271
8272`buffer-start'
8273 matches the empty string, but only at the beginning of the
8274 buffer being matched against.
8275
8276`buffer-end'
8277 matches the empty string, but only at the end of the
8278 buffer being matched against.
8279
8280`point'
8281 matches the empty string, but only at point.
8282
8283`word-start'
8284 matches the empty string, but only at the beginning or end of a
8285 word.
8286
8287`word-end'
8288 matches the empty string, but only at the end of a word.
8289
8290`word-boundary'
8291 matches the empty string, but only at the beginning or end of a
8292 word.
8293
8294`(not word-boundary)'
8295 matches the empty string, but not at the beginning or end of a
8296 word.
8297
8298`digit'
8299 matches 0 through 9.
8300
8301`control'
8302 matches ASCII control characters.
8303
8304`hex-digit'
8305 matches 0 through 9, a through f and A through F.
8306
8307`blank'
8308 matches space and tab only.
8309
8310`graphic'
8311 matches graphic characters--everything except ASCII control chars,
8312 space, and DEL.
8313
8314`printing'
8315 matches printing characters--everything except ASCII control chars
8316 and DEL.
8317
8318`alphanumeric'
8319 matches letters and digits. (But at present, for multibyte characters,
8320 it matches anything that has word syntax.)
8321
8322`letter'
8323 matches letters. (But at present, for multibyte characters,
8324 it matches anything that has word syntax.)
8325
8326`ascii'
8327 matches ASCII (unibyte) characters.
8328
8329`nonascii'
8330 matches non-ASCII (multibyte) characters.
8331
8332`lower'
8333 matches anything lower-case.
8334
8335`upper'
8336 matches anything upper-case.
8337
8338`punctuation'
8339 matches punctuation. (But at present, for multibyte characters,
8340 it matches anything that has non-word syntax.)
8341
8342`space'
8343 matches anything that has whitespace syntax.
8344
8345`word'
8346 matches anything that has word syntax.
8347
8348`(syntax SYNTAX)'
8349 matches a character with syntax SYNTAX. SYNTAX must be one
8350 of the following symbols.
8351
8352 `whitespace' (\\s- in string notation)
8353 `punctuation' (\\s.)
8354 `word' (\\sw)
8355 `symbol' (\\s_)
8356 `open-parenthesis' (\\s()
8357 `close-parenthesis' (\\s))
8358 `expression-prefix' (\\s')
8359 `string-quote' (\\s\")
8360 `paired-delimiter' (\\s$)
8361 `escape' (\\s\\)
8362 `character-quote' (\\s/)
8363 `comment-start' (\\s<)
8364 `comment-end' (\\s>)
8365
8366`(not (syntax SYNTAX))'
8367 matches a character that has not syntax SYNTAX.
8368
8369`(category CATEGORY)'
8370 matches a character with category CATEGORY. CATEGORY must be
8371 either a character to use for C, or one of the following symbols.
8372
8373 `consonant' (\\c0 in string notation)
8374 `base-vowel' (\\c1)
8375 `upper-diacritical-mark' (\\c2)
8376 `lower-diacritical-mark' (\\c3)
8377 `tone-mark' (\\c4)
8378 `symbol' (\\c5)
8379 `digit' (\\c6)
8380 `vowel-modifying-diacritical-mark' (\\c7)
8381 `vowel-sign' (\\c8)
8382 `semivowel-lower' (\\c9)
8383 `not-at-end-of-line' (\\c<)
8384 `not-at-beginning-of-line' (\\c>)
8385 `alpha-numeric-two-byte' (\\cA)
8386 `chinse-two-byte' (\\cC)
8387 `greek-two-byte' (\\cG)
8388 `japanese-hiragana-two-byte' (\\cH)
8389 `indian-two-byte' (\\cI)
8390 `japanese-katakana-two-byte' (\\cK)
8391 `korean-hangul-two-byte' (\\cN)
8392 `cyrillic-two-byte' (\\cY)
8393 `ascii' (\\ca)
8394 `arabic' (\\cb)
8395 `chinese' (\\cc)
8396 `ethiopic' (\\ce)
8397 `greek' (\\cg)
8398 `korean' (\\ch)
8399 `indian' (\\ci)
8400 `japanese' (\\cj)
8401 `japanese-katakana' (\\ck)
8402 `latin' (\\cl)
8403 `lao' (\\co)
8404 `tibetan' (\\cq)
8405 `japanese-roman' (\\cr)
8406 `thai' (\\ct)
8407 `vietnamese' (\\cv)
8408 `hebrew' (\\cw)
8409 `cyrillic' (\\cy)
8410 `can-break' (\\c|)
8411
8412`(not (category CATEGORY))'
8413 matches a character that has not category CATEGORY.
8414
8415`(and SEXP1 SEXP2 ...)'
8416 matches what SEXP1 matches, followed by what SEXP2 matches, etc.
8417
8418`(submatch SEXP1 SEXP2 ...)'
8419 like `and', but makes the match accessible with `match-end',
8420 `match-beginning', and `match-string'.
8421
8422`(group SEXP1 SEXP2 ...)'
8423 another name for `submatch'.
8424
8425`(or SEXP1 SEXP2 ...)'
8426 matches anything that matches SEXP1 or SEXP2, etc. If all
8427 args are strings, use `regexp-opt' to optimize the resulting
8428 regular expression.
8429
8430`(minimal-match SEXP)'
8431 produce a non-greedy regexp for SEXP. Normally, regexps matching
8432 zero or more occurrences of something are \"greedy\" in that they
8433 match as much as they can, as long as the overall regexp can
8434 still match. A non-greedy regexp matches as little as possible.
8435
8436`(maximal-match SEXP)'
8437 produce a greedy regexp for SEXP. This is the default.
8438
8439`(zero-or-more SEXP)'
8440 matches zero or more occurrences of what SEXP matches.
8441
8442`(0+ SEXP)'
8443 like `zero-or-more'.
8444
8445`(* SEXP)'
8446 like `zero-or-more', but always produces a greedy regexp.
8447
8448`(*? SEXP)'
8449 like `zero-or-more', but always produces a non-greedy regexp.
8450
8451`(one-or-more SEXP)'
8452 matches one or more occurrences of A.
8453
8454`(1+ SEXP)'
8455 like `one-or-more'.
8456
8457`(+ SEXP)'
8458 like `one-or-more', but always produces a greedy regexp.
8459
8460`(+? SEXP)'
8461 like `one-or-more', but always produces a non-greedy regexp.
8462
8463`(zero-or-one SEXP)'
8464 matches zero or one occurrences of A.
8465
8466`(optional SEXP)'
8467 like `zero-or-one'.
8468
8469`(? SEXP)'
8470 like `zero-or-one', but always produces a greedy regexp.
8471
8472`(?? SEXP)'
8473 like `zero-or-one', but always produces a non-greedy regexp.
8474
8475`(repeat N SEXP)'
8476 matches N occurrences of what SEXP matches.
8477
8478`(repeat N M SEXP)'
8479 matches N to M occurrences of what SEXP matches.
8480
8481`(eval FORM)'
8482 evaluate FORM and insert result. If result is a string,
8483 `regexp-quote' it.
8484
8485`(regexp REGEXP)'
8486 include REGEXP in string notation in the result.
8487
8488*** The features `md5' and `overlay' are now provided by default.
8489
8490*** The special form `save-restriction' now works correctly even if the
8491buffer is widened inside the save-restriction and changes made outside
8492the original restriction. Previously, doing this would cause the saved
8493restriction to be restored incorrectly.
8494
8495*** The functions `find-charset-region' and `find-charset-string' include
8496`eight-bit-control' and/or `eight-bit-graphic' in the returned list
8497when they find 8-bit characters. Previously, they included `ascii' in a
8498multibyte buffer and `unknown' in a unibyte buffer.
8499
8500*** The functions `set-buffer-multibyte', `string-as-multibyte' and
8501`string-as-unibyte' change the byte sequence of a buffer or a string
8502if it contains a character from the `eight-bit-control' character set.
8503
8504*** The handling of multibyte sequences in a multibyte buffer is
8505changed. Previously, a byte sequence matching the pattern
8506[\200-\237][\240-\377]+ was interpreted as a single character
8507regardless of the length of the trailing bytes [\240-\377]+. Thus, if
8508the sequence was longer than what the leading byte indicated, the
8509extra trailing bytes were ignored by Lisp functions. Now such extra
8510bytes are independent 8-bit characters belonging to the charset
8511eight-bit-graphic.
8512
8513** Fontsets are now implemented using char-tables.
8514
8515A fontset can now be specified for each independent character, for
8516a group of characters or for a character set rather than just for a
8517character set as previously.
8518
8519*** The arguments of the function `set-fontset-font' are changed.
8520They are NAME, CHARACTER, FONTNAME, and optional FRAME. The function
8521modifies fontset NAME to use FONTNAME for CHARACTER.
8522
8523CHARACTER may be a cons (FROM . TO), where FROM and TO are non-generic
8524characters. In that case FONTNAME is used for all characters in the
8525range FROM and TO (inclusive). CHARACTER may be a charset. In that
8526case FONTNAME is used for all character in the charset.
8527
8528FONTNAME may be a cons (FAMILY . REGISTRY), where FAMILY is the family
8529name of a font and REGISTRY is a registry name of a font.
8530
8531*** Variable x-charset-registry has been deleted. The default charset
8532registries of character sets are set in the default fontset
8533"fontset-default".
8534
8535*** The function `create-fontset-from-fontset-spec' ignores the second
8536argument STYLE-VARIANT. It never creates style-variant fontsets.
8537
8538** The method of composing characters is changed. Now character
8539composition is done by a special text property `composition' in
8540buffers and strings.
8541
8542*** Charset composition is deleted. Emacs never creates a `composite
8543character' which is an independent character with a unique character
8544code. Thus the following functions handling `composite characters'
8545have been deleted: composite-char-component,
8546composite-char-component-count, composite-char-composition-rule,
8547composite-char-composition-rule and decompose-composite-char delete.
8548The variables leading-code-composition and min-composite-char have
8549also been deleted.
8550
8551*** Three more glyph reference points are added. They can be used to
8552specify a composition rule. See the documentation of the variable
8553`reference-point-alist' for more detail.
8554
8555*** The function `compose-region' takes new arguments COMPONENTS and
8556MODIFICATION-FUNC. With COMPONENTS, you can specify not only a
8557composition rule but also characters to be composed. Such characters
8558may differ between buffer and string text.
8559
8560*** The function `compose-string' takes new arguments START, END,
8561COMPONENTS, and MODIFICATION-FUNC.
8562
8563*** The function `compose-string' puts text property `composition'
8564directly on the argument STRING instead of returning a new string.
8565Likewise, the function `decompose-string' just removes text property
8566`composition' from STRING.
8567
8568*** The new function `find-composition' returns information about
8569a composition at a specified position in a buffer or a string.
8570
8571*** The function `decompose-composite-char' is now labeled as
8572obsolete.
8573
8574** The new coding system `mac-roman' is primarily intended for use on
8575the Macintosh but may be used generally for Macintosh-encoded text.
8576
8577** The new character sets `mule-unicode-0100-24ff',
8578`mule-unicode-2500-33ff', and `mule-unicode-e000-ffff' have been
8579introduced for Unicode characters in the range U+0100..U+24FF,
8580U+2500..U+33FF, U+E000..U+FFFF respectively.
8581
8582Note that the character sets are not yet unified in Emacs, so
8583characters which belong to charsets such as Latin-2, Greek, Hebrew,
8584etc. and the same characters in the `mule-unicode-*' charsets are
8585different characters, as far as Emacs is concerned. For example, text
8586which includes Unicode characters from the Latin-2 locale cannot be
8587encoded by Emacs with ISO 8859-2 coding system.
8588
8589** The new coding system `mule-utf-8' has been added.
8590It provides limited support for decoding/encoding UTF-8 text. For
8591details, please see the documentation string of this coding system.
8592
8593** The new character sets `japanese-jisx0213-1' and
8594`japanese-jisx0213-2' have been introduced for the new Japanese
8595standard JIS X 0213 Plane 1 and Plane 2.
8596
8597** The new character sets `latin-iso8859-14' and `latin-iso8859-15'
8598have been introduced.
8599
8600** The new character sets `eight-bit-control' and `eight-bit-graphic'
8601have been introduced for 8-bit characters in the ranges 0x80..0x9F and
86020xA0..0xFF respectively. Note that the multibyte representation of
8603eight-bit-control is never exposed; this leads to an exception in the
8604emacs-mule coding system, which encodes everything else to the
8605buffer/string internal representation. Note that to search for
8606eight-bit-graphic characters in a multibyte buffer, the search string
8607must be multibyte, otherwise such characters will be converted to
8608their multibyte equivalent.
8609
8610** If the APPEND argument of `write-region' is an integer, it seeks to
8611that offset in the file before writing.
8612
8613** The function `add-minor-mode' has been added for convenience and
8614compatibility with XEmacs (and is used internally by define-minor-mode).
8615
8616** The function `shell-command' now sets the default directory of the
8617`*Shell Command Output*' buffer to the default directory of the buffer
8618from which the command was issued.
8619
8620** The functions `query-replace', `query-replace-regexp',
8621`query-replace-regexp-eval' `map-query-replace-regexp',
8622`replace-string', `replace-regexp', and `perform-replace' take two
8623additional optional arguments START and END that specify the region to
8624operate on.
8625
8626** The new function `count-screen-lines' is a more flexible alternative
8627to `window-buffer-height'.
8628
8629- Function: count-screen-lines &optional BEG END COUNT-FINAL-NEWLINE WINDOW
8630
8631Return the number of screen lines in the region between BEG and END.
8632The number of screen lines may be different from the number of actual
8633lines, due to line breaking, display table, etc.
8634
8635Optional arguments BEG and END default to `point-min' and `point-max'
8636respectively.
8637
8638If region ends with a newline, ignore it unless optional third argument
8639COUNT-FINAL-NEWLINE is non-nil.
8640
8641The optional fourth argument WINDOW specifies the window used for
8642obtaining parameters such as width, horizontal scrolling, and so
8643on. The default is to use the selected window's parameters.
8644
8645Like `vertical-motion', `count-screen-lines' always uses the current
8646buffer, regardless of which buffer is displayed in WINDOW. This makes
8647possible to use `count-screen-lines' in any buffer, whether or not it
8648is currently displayed in some window.
8649
8650** The new function `mapc' is like `mapcar' but doesn't collect the
8651argument function's results.
8652
8653** The functions base64-decode-region and base64-decode-string now
8654signal an error instead of returning nil if decoding fails. Also,
8655`base64-decode-string' now always returns a unibyte string (in Emacs
865620, it returned a multibyte string when the result was a valid multibyte
8657sequence).
8658
8659** The function sendmail-user-agent-compose now recognizes a `body'
8660header in the list of headers passed to it.
8661
8662** The new function member-ignore-case works like `member', but
8663ignores differences in case and text representation.
8664
8665** The buffer-local variable cursor-type can be used to specify the
8666cursor to use in windows displaying a buffer. Values are interpreted
8667as follows:
8668
8669 t use the cursor specified for the frame (default)
8670 nil don't display a cursor
8671 `bar' display a bar cursor with default width
8672 (bar . WIDTH) display a bar cursor with width WIDTH
8673 others display a box cursor.
8674
8675** The variable open-paren-in-column-0-is-defun-start controls whether
8676an open parenthesis in column 0 is considered to be the start of a
8677defun. If set, the default, it is considered a defun start. If not
8678set, an open parenthesis in column 0 has no special meaning.
8679
8680** The new function `string-to-syntax' can be used to translate syntax
8681specifications in string form as accepted by `modify-syntax-entry' to
8682the cons-cell form that is used for the values of the `syntax-table'
8683text property, and in `font-lock-syntactic-keywords'.
8684
8685Example:
8686
8687 (string-to-syntax "()")
8688 => (4 . 41)
8689
8690** Emacs' reader supports CL read syntax for integers in bases
8691other than 10.
8692
8693*** `#BINTEGER' or `#bINTEGER' reads INTEGER in binary (radix 2).
8694INTEGER optionally contains a sign.
8695
8696 #b1111
8697 => 15
8698 #b-1111
8699 => -15
8700
8701*** `#OINTEGER' or `#oINTEGER' reads INTEGER in octal (radix 8).
8702
8703 #o666
8704 => 438
8705
8706*** `#XINTEGER' or `#xINTEGER' reads INTEGER in hexadecimal (radix 16).
8707
8708 #xbeef
8709 => 48815
8710
8711*** `#RADIXrINTEGER' reads INTEGER in radix RADIX, 2 <= RADIX <= 36.
8712
8713 #2R-111
8714 => -7
8715 #25rah
8716 => 267
8717
8718** The function `documentation-property' now evaluates the value of
8719the given property to obtain a string if it doesn't refer to etc/DOC
8720and isn't a string.
8721
8722** If called for a symbol, the function `documentation' now looks for
8723a `function-documentation' property of that symbol. If it has a non-nil
8724value, the documentation is taken from that value. If the value is
8725not a string, it is evaluated to obtain a string.
8726
8727** The last argument of `define-key-after' defaults to t for convenience.
8728
8729** The new function `replace-regexp-in-string' replaces all matches
8730for a regexp in a string.
8731
8732** `mouse-position' now runs the abnormal hook
8733`mouse-position-function'.
8734
8735** The function string-to-number now returns a float for numbers
8736that don't fit into a Lisp integer.
8737
8738** The variable keyword-symbols-constants-flag has been removed.
8739Keywords are now always considered constants.
8740
8741** The new function `delete-and-extract-region' deletes text and
8742returns it.
8743
8744** The function `clear-this-command-keys' now also clears the vector
8745returned by function `recent-keys'.
8746
8747** Variables `beginning-of-defun-function' and `end-of-defun-function'
8748can be used to define handlers for the functions that find defuns.
8749Major modes can define these locally instead of rebinding C-M-a
8750etc. if the normal conventions for defuns are not appropriate for the
8751mode.
8752
8753** easy-mmode-define-minor-mode now takes an additional BODY argument
8754and is renamed `define-minor-mode'.
8755
8756** If an abbrev has a hook function which is a symbol, and that symbol
8757has a non-nil `no-self-insert' property, the return value of the hook
8758function specifies whether an expansion has been done or not. If it
8759returns nil, abbrev-expand also returns nil, meaning "no expansion has
8760been performed."
8761
8762When abbrev expansion is done by typing a self-inserting character,
8763and the abbrev has a hook with the `no-self-insert' property, and the
8764hook function returns non-nil meaning expansion has been done,
8765then the self-inserting character is not inserted.
8766
8767** The function `intern-soft' now accepts a symbol as first argument.
8768In this case, that exact symbol is looked up in the specified obarray,
8769and the function's value is nil if it is not found.
8770
8771** The new macro `with-syntax-table' can be used to evaluate forms
8772with the syntax table of the current buffer temporarily set to a
8773specified table.
8774
8775 (with-syntax-table TABLE &rest BODY)
8776
8777Evaluate BODY with syntax table of current buffer set to a copy of
8778TABLE. The current syntax table is saved, BODY is evaluated, and the
8779saved table is restored, even in case of an abnormal exit. Value is
8780what BODY returns.
8781
8782** Regular expressions now support intervals \{n,m\} as well as
8783Perl's shy-groups \(?:...\) and non-greedy *? +? and ?? operators.
8784Also back-references like \2 are now considered as an error if the
8785corresponding subgroup does not exist (or is not closed yet).
8786Previously it would have been silently turned into `2' (ignoring the `\').
8787
8788** The optional argument BUFFER of function file-local-copy has been
8789removed since it wasn't used by anything.
8790
8791** The file name argument of function `file-locked-p' is now required
8792instead of being optional.
8793
8794** The new built-in error `text-read-only' is signaled when trying to
8795modify read-only text.
8796
8797** New functions and variables for locales.
8798
8799The new variable `locale-coding-system' specifies how to encode and
8800decode strings passed to low-level message functions like strerror and
8801time functions like strftime. The new variables
8802`system-messages-locale' and `system-time-locale' give the system
8803locales to be used when invoking these two types of functions.
8804
8805The new function `set-locale-environment' sets the language
8806environment, preferred coding system, and locale coding system from
8807the system locale as specified by the LC_ALL, LC_CTYPE, and LANG
8808environment variables. Normally, it is invoked during startup and need
8809not be invoked thereafter. It uses the new variables
8810`locale-language-names', `locale-charset-language-names', and
8811`locale-preferred-coding-systems' to make its decisions.
8812
8813** syntax tables now understand nested comments.
8814To declare a comment syntax as allowing nesting, just add an `n'
8815modifier to either of the characters of the comment end and the comment
8816start sequences.
8817
8818** The function `pixmap-spec-p' has been renamed `bitmap-spec-p'
8819because `bitmap' is more in line with the usual X terminology.
8820
8821** New function `propertize'
8822
8823The new function `propertize' can be used to conveniently construct
8824strings with text properties.
8825
8826- Function: propertize STRING &rest PROPERTIES
8827
8828Value is a copy of STRING with text properties assigned as specified
8829by PROPERTIES. PROPERTIES is a sequence of pairs PROPERTY VALUE, with
8830PROPERTY being the name of a text property and VALUE being the
8831specified value of that property. Example:
8832
8833 (propertize "foo" 'face 'bold 'read-only t)
8834
8835** push and pop macros.
8836
8837Simple versions of the push and pop macros of Common Lisp
8838are now defined in Emacs Lisp. These macros allow only symbols
8839as the place that holds the list to be changed.
8840
8841(push NEWELT LISTNAME) add NEWELT to the front of LISTNAME's value.
8842(pop LISTNAME) return first elt of LISTNAME, and remove it
8843 (thus altering the value of LISTNAME).
8844
8845** New dolist and dotimes macros.
8846
8847Simple versions of the dolist and dotimes macros of Common Lisp
8848are now defined in Emacs Lisp.
8849
8850(dolist (VAR LIST [RESULT]) BODY...)
8851 Execute body once for each element of LIST,
8852 using the variable VAR to hold the current element.
8853 Then return the value of RESULT, or nil if RESULT is omitted.
8854
8855(dotimes (VAR COUNT [RESULT]) BODY...)
8856 Execute BODY with VAR bound to successive integers running from 0,
8857 inclusive, to COUNT, exclusive.
8858 Then return the value of RESULT, or nil if RESULT is omitted.
8859
8860** Regular expressions now support Posix character classes such as
8861[:alpha:], [:space:] and so on. These must be used within a character
8862class--for instance, [-[:digit:].+] matches digits or a period
8863or a sign.
8864
8865[:digit:] matches 0 through 9
8866[:cntrl:] matches ASCII control characters
8867[:xdigit:] matches 0 through 9, a through f and A through F.
8868[:blank:] matches space and tab only
8869[:graph:] matches graphic characters--everything except ASCII control chars,
8870 space, and DEL.
8871[:print:] matches printing characters--everything except ASCII control chars
8872 and DEL.
8873[:alnum:] matches letters and digits.
8874 (But at present, for multibyte characters,
8875 it matches anything that has word syntax.)
8876[:alpha:] matches letters.
8877 (But at present, for multibyte characters,
8878 it matches anything that has word syntax.)
8879[:ascii:] matches ASCII (unibyte) characters.
8880[:nonascii:] matches non-ASCII (multibyte) characters.
8881[:lower:] matches anything lower-case.
8882[:punct:] matches punctuation.
8883 (But at present, for multibyte characters,
8884 it matches anything that has non-word syntax.)
8885[:space:] matches anything that has whitespace syntax.
8886[:upper:] matches anything upper-case.
8887[:word:] matches anything that has word syntax.
8888
8889** Emacs now has built-in hash tables.
8890
8891The following functions are defined for hash tables:
8892
8893- Function: make-hash-table ARGS
8894
8895The argument list ARGS consists of keyword/argument pairs. All arguments
8896are optional. The following arguments are defined:
8897
8898:test TEST
8899
8900TEST must be a symbol specifying how to compare keys. Default is `eql'.
8901Predefined are `eq', `eql' and `equal'. If TEST is not predefined,
8902it must have been defined with `define-hash-table-test'.
8903
8904:size SIZE
8905
8906SIZE must be an integer > 0 giving a hint to the implementation how
8907many elements will be put in the hash table. Default size is 65.
8908
8909:rehash-size REHASH-SIZE
8910
8911REHASH-SIZE specifies by how much to grow a hash table once it becomes
8912full. If REHASH-SIZE is an integer, add that to the hash table's old
8913size to get the new size. Otherwise, REHASH-SIZE must be a float >
89141.0, and the new size is computed by multiplying REHASH-SIZE with the
8915old size. Default rehash size is 1.5.
8916
8917:rehash-threshold THRESHOLD
8918
8919THRESHOLD must be a float > 0 and <= 1.0 specifying when to resize the
8920hash table. It is resized when the ratio of (number of entries) /
8921(size of hash table) is >= THRESHOLD. Default threshold is 0.8.
8922
8923:weakness WEAK
8924
8925WEAK must be either nil, one of the symbols `key, `value',
8926`key-or-value', `key-and-value', or t, meaning the same as
8927`key-and-value'. Entries are removed from weak tables during garbage
8928collection if their key and/or value are not referenced elsewhere
8929outside of the hash table. Default are non-weak hash tables.
8930
8931- Function: makehash &optional TEST
8932
8933Similar to make-hash-table, but only TEST can be specified.
8934
8935- Function: hash-table-p TABLE
8936
8937Returns non-nil if TABLE is a hash table object.
8938
8939- Function: copy-hash-table TABLE
8940
8941Returns a copy of TABLE. Only the table itself is copied, keys and
8942values are shared.
8943
8944- Function: hash-table-count TABLE
8945
8946Returns the number of entries in TABLE.
8947
8948- Function: hash-table-rehash-size TABLE
8949
8950Returns the rehash size of TABLE.
8951
8952- Function: hash-table-rehash-threshold TABLE
8953
8954Returns the rehash threshold of TABLE.
8955
8956- Function: hash-table-rehash-size TABLE
8957
8958Returns the size of TABLE.
8959
8960- Function: hash-table-test TABLE
8961
8962Returns the test TABLE uses to compare keys.
8963
8964- Function: hash-table-weakness TABLE
8965
8966Returns the weakness specified for TABLE.
8967
8968- Function: clrhash TABLE
8969
8970Clear TABLE.
8971
8972- Function: gethash KEY TABLE &optional DEFAULT
8973
8974Look up KEY in TABLE and return its associated VALUE or DEFAULT if
8975not found.
8976
8977- Function: puthash KEY VALUE TABLE
8978
8979Associate KEY with VALUE in TABLE. If KEY is already associated with
8980another value, replace the old value with VALUE.
8981
8982- Function: remhash KEY TABLE
8983
8984Remove KEY from TABLE if it is there.
8985
8986- Function: maphash FUNCTION TABLE
8987
8988Call FUNCTION for all elements in TABLE. FUNCTION must take two
8989arguments KEY and VALUE.
8990
8991- Function: sxhash OBJ
8992
8993Return a hash code for Lisp object OBJ.
8994
8995- Function: define-hash-table-test NAME TEST-FN HASH-FN
8996
8997Define a new hash table test named NAME. If NAME is specified as
8998a test in `make-hash-table', the table created will use TEST-FN for
8999comparing keys, and HASH-FN to compute hash codes for keys. Test
9000and hash function are stored as symbol property `hash-table-test'
9001of NAME with a value of (TEST-FN HASH-FN).
9002
9003TEST-FN must take two arguments and return non-nil if they are the same.
9004
9005HASH-FN must take one argument and return an integer that is the hash
9006code of the argument. The function should use the whole range of
9007integer values for hash code computation, including negative integers.
9008
9009Example: The following creates a hash table whose keys are supposed to
9010be strings that are compared case-insensitively.
9011
9012 (defun case-fold-string= (a b)
9013 (compare-strings a nil nil b nil nil t))
9014
9015 (defun case-fold-string-hash (a)
9016 (sxhash (upcase a)))
9017
9018 (define-hash-table-test 'case-fold 'case-fold-string=
9019 'case-fold-string-hash))
9020
9021 (make-hash-table :test 'case-fold)
9022
9023** The Lisp reader handles circular structure.
9024
9025It now works to use the #N= and #N# constructs to represent
9026circular structures. For example, #1=(a . #1#) represents
9027a cons cell which is its own cdr.
9028
9029** The Lisp printer handles circular structure.
9030
9031If you bind print-circle to a non-nil value, the Lisp printer outputs
9032#N= and #N# constructs to represent circular and shared structure.
9033
9034** If the second argument to `move-to-column' is anything but nil or
9035t, that means replace a tab with spaces if necessary to reach the
9036specified column, but do not add spaces at the end of the line if it
9037is too short to reach that column.
9038
9039** perform-replace has a new feature: the REPLACEMENTS argument may
9040now be a cons cell (FUNCTION . DATA). This means to call FUNCTION
9041after each match to get the replacement text. FUNCTION is called with
9042two arguments: DATA, and the number of replacements already made.
9043
9044If the FROM-STRING contains any upper-case letters,
9045perform-replace also turns off `case-fold-search' temporarily
9046and inserts the replacement text without altering case in it.
9047
9048** The function buffer-size now accepts an optional argument
9049to specify which buffer to return the size of.
9050
9051** The calendar motion commands now run the normal hook
9052calendar-move-hook after moving point.
9053
9054** The new variable small-temporary-file-directory specifies a
9055directory to use for creating temporary files that are likely to be
9056small. (Certain Emacs features use this directory.) If
9057small-temporary-file-directory is nil, they use
9058temporary-file-directory instead.
9059
9060** The variable `inhibit-modification-hooks', if non-nil, inhibits all
9061the hooks that track changes in the buffer. This affects
9062`before-change-functions' and `after-change-functions', as well as
9063hooks attached to text properties and overlay properties.
9064
9065** assq-delete-all is a new function that deletes all the
9066elements of an alist which have a car `eq' to a particular value.
9067
9068** make-temp-file provides a more reliable way to create a temporary file.
9069
9070make-temp-file is used like make-temp-name, except that it actually
9071creates the file before it returns. This prevents a timing error,
9072ensuring that no other job can use the same name for a temporary file.
9073
9074** New exclusive-open feature in `write-region'
9075
9076The optional seventh arg is now called MUSTBENEW. If non-nil, it insists
9077on a check for an existing file with the same name. If MUSTBENEW
9078is `excl', that means to get an error if the file already exists;
9079never overwrite. If MUSTBENEW is neither nil nor `excl', that means
9080ask for confirmation before overwriting, but do go ahead and
9081overwrite the file if the user gives confirmation.
9082
9083If the MUSTBENEW argument in `write-region' is `excl',
9084that means to use a special feature in the `open' system call
9085to get an error if the file exists at that time.
9086The error reported is `file-already-exists'.
9087
9088** Function `format' now handles text properties.
9089
9090Text properties of the format string are applied to the result string.
9091If the result string is longer than the format string, text properties
9092ending at the end of the format string are extended to the end of the
9093result string.
9094
9095Text properties from string arguments are applied to the result
9096string where arguments appear in the result string.
9097
9098Example:
9099
9100 (let ((s1 "hello, %s")
9101 (s2 "world"))
9102 (put-text-property 0 (length s1) 'face 'bold s1)
9103 (put-text-property 0 (length s2) 'face 'italic s2)
9104 (format s1 s2))
9105
9106results in a bold-face string with an italic `world' at the end.
9107
9108** Messages can now be displayed with text properties.
9109
9110Text properties are handled as described above for function `format'.
9111The following example displays a bold-face message with an italic
9112argument in it.
9113
9114 (let ((msg "hello, %s!")
9115 (arg "world"))
9116 (put-text-property 0 (length msg) 'face 'bold msg)
9117 (put-text-property 0 (length arg) 'face 'italic arg)
9118 (message msg arg))
9119
9120** Sound support
9121
9122Emacs supports playing sound files on GNU/Linux and the free BSDs
9123(Voxware driver and native BSD driver, aka as Luigi's driver).
9124
9125Currently supported file formats are RIFF-WAVE (*.wav) and Sun Audio
9126(*.au). You must configure Emacs with the option `--with-sound=yes'
9127to enable sound support.
9128
9129Sound files can be played by calling (play-sound SOUND). SOUND is a
9130list of the form `(sound PROPERTY...)'. The function is only defined
9131when sound support is present for the system on which Emacs runs. The
9132functions runs `play-sound-functions' with one argument which is the
9133sound to play, before playing the sound.
9134
9135The following sound properties are supported:
9136
9137- `:file FILE'
9138
9139FILE is a file name. If FILE isn't an absolute name, it will be
9140searched relative to `data-directory'.
9141
9142- `:data DATA'
9143
9144DATA is a string containing sound data. Either :file or :data
9145may be present, but not both.
9146
9147- `:volume VOLUME'
9148
9149VOLUME must be an integer in the range 0..100 or a float in the range
91500..1. This property is optional.
9151
9152- `:device DEVICE'
9153
9154DEVICE is a string specifying the system device on which to play the
9155sound. The default device is system-dependent.
9156
9157Other properties are ignored.
9158
9159An alternative interface is called as
9160(play-sound-file FILE &optional VOLUME DEVICE).
9161
9162** `multimedia' is a new Finder keyword and Custom group.
9163
9164** keywordp is a new predicate to test efficiently for an object being
9165a keyword symbol.
9166
9167** Changes to garbage collection
9168
9169*** The function garbage-collect now additionally returns the number
9170of live and free strings.
9171
9172*** There is a new variable `strings-consed' holding the number of
9173strings that have been consed so far.
9174
9175
9176* Lisp-level Display features added after release 2.6 of the Emacs
9177Lisp Manual
9178
9179** The user-option `resize-mini-windows' controls how Emacs resizes
9180mini-windows.
9181
9182** The function `pos-visible-in-window-p' now has a third optional
9183argument, PARTIALLY. If a character is only partially visible, nil is
9184returned, unless PARTIALLY is non-nil.
9185
9186** On window systems, `glyph-table' is no longer used.
9187
9188** Help strings in menu items are now used to provide `help-echo' text.
9189
9190** The function `image-size' can be used to determine the size of an
9191image.
9192
9193- Function: image-size SPEC &optional PIXELS FRAME
9194
9195Return the size of an image as a pair (WIDTH . HEIGHT).
9196
9197SPEC is an image specification. PIXELS non-nil means return sizes
9198measured in pixels, otherwise return sizes measured in canonical
9199character units (fractions of the width/height of the frame's default
9200font). FRAME is the frame on which the image will be displayed.
9201FRAME nil or omitted means use the selected frame.
9202
9203** The function `image-mask-p' can be used to determine if an image
9204has a mask bitmap.
9205
9206- Function: image-mask-p SPEC &optional FRAME
9207
9208Return t if image SPEC has a mask bitmap.
9209FRAME is the frame on which the image will be displayed. FRAME nil
9210or omitted means use the selected frame.
9211
9212** The function `find-image' can be used to find a usable image
9213satisfying one of a list of specifications.
9214
9215** The STRING argument of `put-image' and `insert-image' is now
9216optional.
9217
9218** Image specifications may contain the property `:ascent center' (see
9219below).
9220
9221
9222* New Lisp-level Display features in Emacs 21.1
9223
9224** The function tty-suppress-bold-inverse-default-colors can be used
9225to make Emacs avoid displaying text with bold black foreground on TTYs.
9226
9227Some terminals, notably PC consoles, emulate bold text by displaying
9228text in brighter colors. On such a console, a bold black foreground
9229is displayed in a gray color. If this turns out to be hard to read on
9230your monitor---the problem occurred with the mode line on
9231laptops---you can instruct Emacs to ignore the text's boldness, and to
9232just display it black instead.
9233
9234This situation can't be detected automatically. You will have to put
9235a line like
9236
9237 (tty-suppress-bold-inverse-default-colors t)
9238
9239in your `.emacs'.
9240
9241** New face implementation.
9242
9243Emacs faces have been reimplemented from scratch. They don't use XLFD
9244font names anymore and face merging now works as expected.
9245
9246*** New faces.
9247
9248Each face can specify the following display attributes:
9249
9250 1. Font family or fontset alias name.
9251
9252 2. Relative proportionate width, aka character set width or set
9253 width (swidth), e.g. `semi-compressed'.
9254
9255 3. Font height in 1/10pt
9256
9257 4. Font weight, e.g. `bold'.
9258
9259 5. Font slant, e.g. `italic'.
9260
9261 6. Foreground color.
9262
9263 7. Background color.
9264
9265 8. Whether or not characters should be underlined, and in what color.
9266
9267 9. Whether or not characters should be displayed in inverse video.
9268
9269 10. A background stipple, a bitmap.
9270
9271 11. Whether or not characters should be overlined, and in what color.
9272
9273 12. Whether or not characters should be strike-through, and in what
9274 color.
9275
9276 13. Whether or not a box should be drawn around characters, its
9277 color, the width of the box lines, and 3D appearance.
9278
9279Faces are frame-local by nature because Emacs allows to define the
9280same named face (face names are symbols) differently for different
9281frames. Each frame has an alist of face definitions for all named
9282faces. The value of a named face in such an alist is a Lisp vector
9283with the symbol `face' in slot 0, and a slot for each of the face
9284attributes mentioned above.
9285
9286There is also a global face alist `face-new-frame-defaults'. Face
9287definitions from this list are used to initialize faces of newly
9288created frames.
9289
9290A face doesn't have to specify all attributes. Those not specified
9291have a nil value. Faces specifying all attributes are called
9292`fully-specified'.
9293
9294*** Face merging.
9295
9296The display style of a given character in the text is determined by
9297combining several faces. This process is called `face merging'. Any
9298aspect of the display style that isn't specified by overlays or text
9299properties is taken from the `default' face. Since it is made sure
9300that the default face is always fully-specified, face merging always
9301results in a fully-specified face.
9302
9303*** Face realization.
9304
9305After all face attributes for a character have been determined by
9306merging faces of that character, that face is `realized'. The
9307realization process maps face attributes to what is physically
9308available on the system where Emacs runs. The result is a `realized
9309face' in form of an internal structure which is stored in the face
9310cache of the frame on which it was realized.
9311
9312Face realization is done in the context of the charset of the
9313character to display because different fonts and encodings are used
9314for different charsets. In other words, for characters of different
9315charsets, different realized faces are needed to display them.
9316
9317Except for composite characters, faces are always realized for a
9318specific character set and contain a specific font, even if the face
9319being realized specifies a fontset. The reason is that the result of
9320the new font selection stage is better than what can be done with
9321statically defined font name patterns in fontsets.
9322
9323In unibyte text, Emacs' charsets aren't applicable; function
9324`char-charset' reports ASCII for all characters, including those >
93250x7f. The X registry and encoding of fonts to use is determined from
9326the variable `face-default-registry' in this case. The variable is
9327initialized at Emacs startup time from the font the user specified for
9328Emacs.
9329
9330Currently all unibyte text, i.e. all buffers with
9331`enable-multibyte-characters' nil are displayed with fonts of the same
9332registry and encoding `face-default-registry'. This is consistent
9333with the fact that languages can also be set globally, only.
9334
9335**** Clearing face caches.
9336
9337The Lisp function `clear-face-cache' can be called to clear face caches
9338on all frames. If called with a non-nil argument, it will also unload
9339unused fonts.
9340
9341*** Font selection.
9342
9343Font selection tries to find the best available matching font for a
9344given (charset, face) combination. This is done slightly differently
9345for faces specifying a fontset, or a font family name.
9346
9347If the face specifies a fontset name, that fontset determines a
9348pattern for fonts of the given charset. If the face specifies a font
9349family, a font pattern is constructed. Charset symbols have a
9350property `x-charset-registry' for that purpose that maps a charset to
9351an XLFD registry and encoding in the font pattern constructed.
9352
9353Available fonts on the system on which Emacs runs are then matched
9354against the font pattern. The result of font selection is the best
9355match for the given face attributes in this font list.
9356
9357Font selection can be influenced by the user.
9358
9359The user can specify the relative importance he gives the face
9360attributes width, height, weight, and slant by setting
9361face-font-selection-order (faces.el) to a list of face attribute
9362names. The default is (:width :height :weight :slant), and means
9363that font selection first tries to find a good match for the font
9364width specified by a face, then---within fonts with that width---tries
9365to find a best match for the specified font height, etc.
9366
9367Setting `face-font-family-alternatives' allows the user to specify
9368alternative font families to try if a family specified by a face
9369doesn't exist.
9370
9371Setting `face-font-registry-alternatives' allows the user to specify
9372all alternative font registry names to try for a face specifying a
9373registry.
9374
9375Please note that the interpretations of the above two variables are
9376slightly different.
9377
9378Setting face-ignored-fonts allows the user to ignore specific fonts.
9379
9380
9381**** Scalable fonts
9382
9383Emacs can make use of scalable fonts but doesn't do so by default,
9384since the use of too many or too big scalable fonts may crash XFree86
9385servers.
9386
9387To enable scalable font use, set the variable
9388`scalable-fonts-allowed'. A value of nil, the default, means never use
9389scalable fonts. A value of t means any scalable font may be used.
9390Otherwise, the value must be a list of regular expressions. A
9391scalable font may then be used if it matches a regular expression from
9392that list. Example:
9393
9394 (setq scalable-fonts-allowed '("muleindian-2$"))
9395
9396allows the use of scalable fonts with registry `muleindian-2'.
9397
9398*** Functions and variables related to font selection.
9399
9400- Function: x-family-fonts &optional FAMILY FRAME
9401
9402Return a list of available fonts of family FAMILY on FRAME. If FAMILY
9403is omitted or nil, list all families. Otherwise, FAMILY must be a
9404string, possibly containing wildcards `?' and `*'.
9405
9406If FRAME is omitted or nil, use the selected frame. Each element of
9407the result is a vector [FAMILY WIDTH POINT-SIZE WEIGHT SLANT FIXED-P
9408FULL REGISTRY-AND-ENCODING]. FAMILY is the font family name.
9409POINT-SIZE is the size of the font in 1/10 pt. WIDTH, WEIGHT, and
9410SLANT are symbols describing the width, weight and slant of the font.
9411These symbols are the same as for face attributes. FIXED-P is non-nil
9412if the font is fixed-pitch. FULL is the full name of the font, and
9413REGISTRY-AND-ENCODING is a string giving the registry and encoding of
9414the font. The result list is sorted according to the current setting
9415of the face font sort order.
9416
9417- Function: x-font-family-list
9418
9419Return a list of available font families on FRAME. If FRAME is
9420omitted or nil, use the selected frame. Value is a list of conses
9421(FAMILY . FIXED-P) where FAMILY is a font family, and FIXED-P is
9422non-nil if fonts of that family are fixed-pitch.
9423
9424- Variable: font-list-limit
9425
9426Limit for font matching. If an integer > 0, font matching functions
9427won't load more than that number of fonts when searching for a
9428matching font. The default is currently 100.
9429
9430*** Setting face attributes.
9431
9432For the most part, the new face implementation is interface-compatible
9433with the old one. Old face attribute related functions are now
9434implemented in terms of the new functions `set-face-attribute' and
9435`face-attribute'.
9436
9437Face attributes are identified by their names which are keyword
9438symbols. All attributes can be set to `unspecified'.
9439
9440The following attributes are recognized:
9441
9442`:family'
9443
9444VALUE must be a string specifying the font family, e.g. ``courier'',
9445or a fontset alias name. If a font family is specified, wild-cards `*'
9446and `?' are allowed.
9447
9448`:width'
9449
9450VALUE specifies the relative proportionate width of the font to use.
9451It must be one of the symbols `ultra-condensed', `extra-condensed',
9452`condensed', `semi-condensed', `normal', `semi-expanded', `expanded',
9453`extra-expanded', or `ultra-expanded'.
9454
9455`:height'
9456
9457VALUE must be either an integer specifying the height of the font to use
9458in 1/10 pt, a floating point number specifying the amount by which to
9459scale any underlying face, or a function, which is called with the old
9460height (from the underlying face), and should return the new height.
9461
9462`:weight'
9463
9464VALUE specifies the weight of the font to use. It must be one of the
9465symbols `ultra-bold', `extra-bold', `bold', `semi-bold', `normal',
9466`semi-light', `light', `extra-light', `ultra-light'.
9467
9468`:slant'
9469
9470VALUE specifies the slant of the font to use. It must be one of the
9471symbols `italic', `oblique', `normal', `reverse-italic', or
9472`reverse-oblique'.
9473
9474`:foreground', `:background'
9475
9476VALUE must be a color name, a string.
9477
9478`:underline'
9479
9480VALUE specifies whether characters in FACE should be underlined. If
9481VALUE is t, underline with foreground color of the face. If VALUE is
9482a string, underline with that color. If VALUE is nil, explicitly
9483don't underline.
9484
9485`:overline'
9486
9487VALUE specifies whether characters in FACE should be overlined. If
9488VALUE is t, overline with foreground color of the face. If VALUE is a
9489string, overline with that color. If VALUE is nil, explicitly don't
9490overline.
9491
9492`:strike-through'
9493
9494VALUE specifies whether characters in FACE should be drawn with a line
9495striking through them. If VALUE is t, use the foreground color of the
9496face. If VALUE is a string, strike-through with that color. If VALUE
9497is nil, explicitly don't strike through.
9498
9499`:box'
9500
9501VALUE specifies whether characters in FACE should have a box drawn
9502around them. If VALUE is nil, explicitly don't draw boxes. If
9503VALUE is t, draw a box with lines of width 1 in the foreground color
9504of the face. If VALUE is a string, the string must be a color name,
9505and the box is drawn in that color with a line width of 1. Otherwise,
9506VALUE must be a property list of the form `(:line-width WIDTH
9507:color COLOR :style STYLE)'. If a keyword/value pair is missing from
9508the property list, a default value will be used for the value, as
9509specified below. WIDTH specifies the width of the lines to draw; it
9510defaults to 1. COLOR is the name of the color to draw in, default is
9511the foreground color of the face for simple boxes, and the background
9512color of the face for 3D boxes. STYLE specifies whether a 3D box
9513should be draw. If STYLE is `released-button', draw a box looking
9514like a released 3D button. If STYLE is `pressed-button' draw a box
9515that appears like a pressed button. If STYLE is nil, the default if
9516the property list doesn't contain a style specification, draw a 2D
9517box.
9518
9519`:inverse-video'
9520
9521VALUE specifies whether characters in FACE should be displayed in
9522inverse video. VALUE must be one of t or nil.
9523
9524`:stipple'
9525
9526If VALUE is a string, it must be the name of a file of pixmap data.
9527The directories listed in the `x-bitmap-file-path' variable are
9528searched. Alternatively, VALUE may be a list of the form (WIDTH
9529HEIGHT DATA) where WIDTH and HEIGHT are the size in pixels, and DATA
9530is a string containing the raw bits of the bitmap. VALUE nil means
9531explicitly don't use a stipple pattern.
9532
9533For convenience, attributes `:family', `:width', `:height', `:weight',
9534and `:slant' may also be set in one step from an X font name:
9535
9536`:font'
9537
9538Set font-related face attributes from VALUE. VALUE must be a valid
9539XLFD font name. If it is a font name pattern, the first matching font
9540is used--this is for compatibility with the behavior of previous
9541versions of Emacs.
9542
9543For compatibility with Emacs 20, keywords `:bold' and `:italic' can
9544be used to specify that a bold or italic font should be used. VALUE
9545must be t or nil in that case. A value of `unspecified' is not allowed."
9546
9547Please see also the documentation of `set-face-attribute' and
9548`defface'.
9549
9550`:inherit'
9551
9552VALUE is the name of a face from which to inherit attributes, or a list
9553of face names. Attributes from inherited faces are merged into the face
9554like an underlying face would be, with higher priority than underlying faces.
9555
9556*** Face attributes and X resources
9557
9558The following X resource names can be used to set face attributes
9559from X resources:
9560
9561 Face attribute X resource class
9562-----------------------------------------------------------------------
9563 :family attributeFamily . Face.AttributeFamily
9564 :width attributeWidth Face.AttributeWidth
9565 :height attributeHeight Face.AttributeHeight
9566 :weight attributeWeight Face.AttributeWeight
9567 :slant attributeSlant Face.AttributeSlant
9568 foreground attributeForeground Face.AttributeForeground
9569 :background attributeBackground . Face.AttributeBackground
9570 :overline attributeOverline Face.AttributeOverline
9571 :strike-through attributeStrikeThrough Face.AttributeStrikeThrough
9572 :box attributeBox Face.AttributeBox
9573 :underline attributeUnderline Face.AttributeUnderline
9574 :inverse-video attributeInverse Face.AttributeInverse
9575 :stipple attributeStipple Face.AttributeStipple
9576 or attributeBackgroundPixmap
9577 Face.AttributeBackgroundPixmap
9578 :font attributeFont Face.AttributeFont
9579 :bold attributeBold Face.AttributeBold
9580 :italic attributeItalic . Face.AttributeItalic
9581 :font attributeFont Face.AttributeFont
9582
9583*** Text property `face'.
9584
9585The value of the `face' text property can now be a single face
9586specification or a list of such specifications. Each face
9587specification can be
9588
95891. A symbol or string naming a Lisp face.
9590
95912. A property list of the form (KEYWORD VALUE ...) where each
9592 KEYWORD is a face attribute name, and VALUE is an appropriate value
9593 for that attribute. Please see the doc string of `set-face-attribute'
9594 for face attribute names.
9595
95963. Conses of the form (FOREGROUND-COLOR . COLOR) or
9597 (BACKGROUND-COLOR . COLOR) where COLOR is a color name. This is
9598 for compatibility with previous Emacs versions.
9599
9600** Support functions for colors on text-only terminals.
9601
9602The function `tty-color-define' can be used to define colors for use
9603on TTY and MSDOS frames. It maps a color name to a color number on
9604the terminal. Emacs defines a couple of common color mappings by
9605default. You can get defined colors with a call to
9606`defined-colors'. The function `tty-color-clear' can be
9607used to clear the mapping table.
9608
9609** Unified support for colors independent of frame type.
9610
9611The new functions `defined-colors', `color-defined-p', `color-values',
9612and `display-color-p' work for any type of frame. On frames whose
9613type is neither x nor w32, these functions transparently map X-style
9614color specifications to the closest colors supported by the frame
9615display. Lisp programs should use these new functions instead of the
9616old `x-defined-colors', `x-color-defined-p', `x-color-values', and
9617`x-display-color-p'. (The old function names are still available for
9618compatibility; they are now aliases of the new names.) Lisp programs
9619should no more look at the value of the variable window-system to
9620modify their color-related behavior.
9621
9622The primitives `color-gray-p' and `color-supported-p' also work for
9623any frame type.
9624
9625** Platform-independent functions to describe display capabilities.
9626
9627The new functions `display-mouse-p', `display-popup-menus-p',
9628`display-graphic-p', `display-selections-p', `display-screens',
9629`display-pixel-width', `display-pixel-height', `display-mm-width',
9630`display-mm-height', `display-backing-store', `display-save-under',
9631`display-planes', `display-color-cells', `display-visual-class', and
9632`display-grayscale-p' describe the basic capabilities of a particular
9633display. Lisp programs should call these functions instead of testing
9634the value of the variables `window-system' or `system-type', or calling
9635platform-specific functions such as `x-display-pixel-width'.
9636
9637The new function `display-images-p' returns non-nil if a particular
9638display can display image files.
9639
9640** The minibuffer prompt is now actually inserted in the minibuffer.
9641
9642This makes it possible to scroll through the prompt, if you want to.
9643To disallow this completely (like previous versions of emacs), customize
9644the variable `minibuffer-prompt-properties', and turn on the
9645`Inviolable' option.
9646
9647The function `minibuffer-prompt-end' returns the current position of the
9648end of the minibuffer prompt, if the minibuffer is current.
9649Otherwise, it returns `(point-min)'.
9650
9651** New `field' abstraction in buffers.
9652
9653There is now code to support an abstraction called `fields' in emacs
9654buffers. A field is a contiguous region of text with the same `field'
9655property (which can be a text property or an overlay).
9656
9657Many emacs functions, such as forward-word, forward-sentence,
9658forward-paragraph, beginning-of-line, etc., stop moving when they come
9659to the boundary between fields; beginning-of-line and end-of-line will
9660not let the point move past the field boundary, but other movement
9661commands continue into the next field if repeated. Stopping at field
9662boundaries can be suppressed programmatically by binding
9663`inhibit-field-text-motion' to a non-nil value around calls to these
9664functions.
9665
9666Now that the minibuffer prompt is inserted into the minibuffer, it is in
9667a separate field from the user-input part of the buffer, so that common
9668editing commands treat the user's text separately from the prompt.
9669
9670The following functions are defined for operating on fields:
9671
9672- Function: constrain-to-field NEW-POS OLD-POS &optional ESCAPE-FROM-EDGE ONLY-IN-LINE INHIBIT-CAPTURE-PROPERTY
9673
9674Return the position closest to NEW-POS that is in the same field as OLD-POS.
9675
9676A field is a region of text with the same `field' property.
9677If NEW-POS is nil, then the current point is used instead, and set to the
9678constrained position if that is different.
9679
9680If OLD-POS is at the boundary of two fields, then the allowable
9681positions for NEW-POS depends on the value of the optional argument
9682ESCAPE-FROM-EDGE: If ESCAPE-FROM-EDGE is nil, then NEW-POS is
9683constrained to the field that has the same `field' char-property
9684as any new characters inserted at OLD-POS, whereas if ESCAPE-FROM-EDGE
9685is non-nil, NEW-POS is constrained to the union of the two adjacent
9686fields. Additionally, if two fields are separated by another field with
9687the special value `boundary', then any point within this special field is
9688also considered to be `on the boundary'.
9689
9690If the optional argument ONLY-IN-LINE is non-nil and constraining
9691NEW-POS would move it to a different line, NEW-POS is returned
9692unconstrained. This useful for commands that move by line, like
9693C-n or C-a, which should generally respect field boundaries
9694only in the case where they can still move to the right line.
9695
9696If the optional argument INHIBIT-CAPTURE-PROPERTY is non-nil, and OLD-POS has
9697a non-nil property of that name, then any field boundaries are ignored.
9698
9699Field boundaries are not noticed if `inhibit-field-text-motion' is non-nil.
9700
9701- Function: delete-field &optional POS
9702
9703Delete the field surrounding POS.
9704A field is a region of text with the same `field' property.
9705If POS is nil, the value of point is used for POS.
9706
9707- Function: field-beginning &optional POS ESCAPE-FROM-EDGE
9708
9709Return the beginning of the field surrounding POS.
9710A field is a region of text with the same `field' property.
9711If POS is nil, the value of point is used for POS.
9712If ESCAPE-FROM-EDGE is non-nil and POS is at the beginning of its
9713field, then the beginning of the *previous* field is returned.
9714
9715- Function: field-end &optional POS ESCAPE-FROM-EDGE
9716
9717Return the end of the field surrounding POS.
9718A field is a region of text with the same `field' property.
9719If POS is nil, the value of point is used for POS.
9720If ESCAPE-FROM-EDGE is non-nil and POS is at the end of its field,
9721then the end of the *following* field is returned.
9722
9723- Function: field-string &optional POS
9724
9725Return the contents of the field surrounding POS as a string.
9726A field is a region of text with the same `field' property.
9727If POS is nil, the value of point is used for POS.
9728
9729- Function: field-string-no-properties &optional POS
9730
9731Return the contents of the field around POS, without text-properties.
9732A field is a region of text with the same `field' property.
9733If POS is nil, the value of point is used for POS.
9734
9735** Image support.
9736
9737Emacs can now display images. Images are inserted into text by giving
9738strings or buffer text a `display' text property containing one of
9739(AREA IMAGE) or IMAGE. The display of the `display' property value
9740replaces the display of the characters having that property.
9741
9742If the property value has the form (AREA IMAGE), AREA must be one of
9743`(margin left-margin)', `(margin right-margin)' or `(margin nil)'. If
9744AREA is `(margin nil)', IMAGE will be displayed in the text area of a
9745window, otherwise it will be displayed in the left or right marginal
9746area.
9747
9748IMAGE is an image specification.
9749
9750*** Image specifications
9751
9752Image specifications are lists of the form `(image PROPS)' where PROPS
9753is a property list whose keys are keyword symbols. Each
9754specifications must contain a property `:type TYPE' with TYPE being a
9755symbol specifying the image type, e.g. `xbm'. Properties not
9756described below are ignored.
9757
9758The following is a list of properties all image types share.
9759
9760`:ascent ASCENT'
9761
9762ASCENT must be a number in the range 0..100, or the symbol `center'.
9763If it is a number, it specifies the percentage of the image's height
9764to use for its ascent.
9765
9766If not specified, ASCENT defaults to the value 50 which means that the
9767image will be centered with the base line of the row it appears in.
9768
9769If ASCENT is `center' the image is vertically centered around a
9770centerline which is the vertical center of text drawn at the position
9771of the image, in the manner specified by the text properties and
9772overlays that apply to the image.
9773
9774`:margin MARGIN'
9775
9776MARGIN must be either a number >= 0 specifying how many pixels to put
9777as margin around the image, or a pair (X . Y) with X specifying the
9778horizontal margin and Y specifying the vertical margin. Default is 0.
9779
9780`:relief RELIEF'
9781
9782RELIEF is analogous to the `:relief' attribute of faces. Puts a relief
9783around an image.
9784
9785`:conversion ALGO'
9786
9787Apply an image algorithm to the image before displaying it.
9788
9789ALGO `laplace' or `emboss' means apply a Laplace or ``emboss''
9790edge-detection algorithm to the image.
9791
9792ALGO `(edge-detection :matrix MATRIX :color-adjust ADJUST)' means
9793apply a general edge-detection algorithm. MATRIX must be either a
9794nine-element list or a nine-element vector of numbers. A pixel at
9795position x/y in the transformed image is computed from original pixels
9796around that position. MATRIX specifies, for each pixel in the
9797neighborhood of x/y, a factor with which that pixel will influence the
9798transformed pixel; element 0 specifies the factor for the pixel at
9799x-1/y-1, element 1 the factor for the pixel at x/y-1 etc. as shown
9800below.
9801
9802 (x-1/y-1 x/y-1 x+1/y-1
9803 x-1/y x/y x+1/y
9804 x-1/y+1 x/y+1 x+1/y+1)
9805
9806The resulting pixel is computed from the color intensity of the color
9807resulting from summing up the RGB values of surrounding pixels,
9808multiplied by the specified factors, and dividing that sum by the sum
9809of the factors' absolute values.
9810
9811Laplace edge-detection currently uses a matrix of
9812
9813 (1 0 0
9814 0 0 0
9815 9 9 -1)
9816
9817Emboss edge-detection uses a matrix of
9818
9819 ( 2 -1 0
9820 -1 0 1
9821 0 1 -2)
9822
9823ALGO `disabled' means transform the image so that it looks
9824``disabled''.
9825
9826`:mask MASK'
9827
9828If MASK is `heuristic' or `(heuristic BG)', build a clipping mask for
9829the image, so that the background of a frame is visible behind the
9830image. If BG is not specified, or if BG is t, determine the
9831background color of the image by looking at the 4 corners of the
9832image, assuming the most frequently occurring color from the corners is
9833the background color of the image. Otherwise, BG must be a list `(RED
9834GREEN BLUE)' specifying the color to assume for the background of the
9835image.
9836
9837If MASK is nil, remove a mask from the image, if it has one. Images
9838in some formats include a mask which can be removed by specifying
9839`:mask nil'.
9840
9841`:file FILE'
9842
9843Load image from FILE. If FILE is not absolute after expanding it,
9844search for the image in `data-directory'. Some image types support
9845building images from data. When this is done, no `:file' property
9846may be present in the image specification.
9847
9848`:data DATA'
9849
9850Get image data from DATA. (As of this writing, this is not yet
9851supported for image type `postscript'). Either :file or :data may be
9852present in an image specification, but not both. All image types
9853support strings as DATA, some types allow additional types of DATA.
9854
9855*** Supported image types
9856
9857**** XBM, image type `xbm'.
9858
9859XBM images don't require an external library. Additional image
9860properties supported are:
9861
9862`:foreground FG'
9863
9864FG must be a string specifying the image foreground color, or nil
9865meaning to use the default. Default is the frame's foreground color.
9866
9867`:background BG'
9868
9869BG must be a string specifying the image background color, or nil
9870meaning to use the default. Default is the frame's background color.
9871
9872XBM images can be constructed from data instead of file. In this
9873case, the image specification must contain the following properties
9874instead of a `:file' property.
9875
9876`:width WIDTH'
9877
9878WIDTH specifies the width of the image in pixels.
9879
9880`:height HEIGHT'
9881
9882HEIGHT specifies the height of the image in pixels.
9883
9884`:data DATA'
9885
9886DATA must be either
9887
9888 1. a string large enough to hold the bitmap data, i.e. it must
9889 have a size >= (WIDTH + 7) / 8 * HEIGHT
9890
9891 2. a bool-vector of size >= WIDTH * HEIGHT
9892
9893 3. a vector of strings or bool-vectors, one for each line of the
9894 bitmap.
9895
9896 4. a string that's an in-memory XBM file. Neither width nor
9897 height may be specified in this case because these are defined
9898 in the file.
9899
9900**** XPM, image type `xpm'
9901
9902XPM images require the external library `libXpm', package
9903`xpm-3.4k.tar.gz', version 3.4k or later. Make sure the library is
9904found when Emacs is configured by supplying appropriate paths via
9905`--x-includes' and `--x-libraries'.
9906
9907Additional image properties supported are:
9908
9909`:color-symbols SYMBOLS'
9910
9911SYMBOLS must be a list of pairs (NAME . COLOR), with NAME being the
9912name of color as it appears in an XPM file, and COLOR being an X color
9913name.
9914
9915XPM images can be built from memory instead of files. In that case,
9916add a `:data' property instead of a `:file' property.
9917
9918The XPM library uses libz in its implementation so that it is able
9919to display compressed images.
9920
9921**** PBM, image type `pbm'
9922
9923PBM images don't require an external library. Color, gray-scale and
9924mono images are supported. Additional image properties supported for
9925mono images are:
9926
9927`:foreground FG'
9928
9929FG must be a string specifying the image foreground color, or nil
9930meaning to use the default. Default is the frame's foreground color.
9931
9932`:background FG'
9933
9934BG must be a string specifying the image background color, or nil
9935meaning to use the default. Default is the frame's background color.
9936
9937**** JPEG, image type `jpeg'
9938
9939Support for JPEG images requires the external library `libjpeg',
9940package `jpegsrc.v6a.tar.gz', or later. There are no additional image
9941properties defined.
9942
9943**** TIFF, image type `tiff'
9944
9945Support for TIFF images requires the external library `libtiff',
9946package `tiff-v3.4-tar.gz', or later. There are no additional image
9947properties defined.
9948
9949**** GIF, image type `gif'
9950
9951Support for GIF images requires the external library `libungif', package
9952`libungif-4.1.0', or later.
9953 5752
9954Additional image properties supported are:
9955
9956`:index INDEX'
9957
9958INDEX must be an integer >= 0. Load image number INDEX from a
9959multi-image GIF file. If INDEX is too large, the image displays
9960as a hollow box.
9961
9962This could be used to implement limited support for animated GIFs.
9963For example, the following function displays a multi-image GIF file
9964at point-min in the current buffer, switching between sub-images
9965every 0.1 seconds.
9966
9967(defun show-anim (file max)
9968 "Display multi-image GIF file FILE which contains MAX subimages."
9969 (display-anim (current-buffer) file 0 max t))
9970
9971(defun display-anim (buffer file idx max first-time)
9972 (when (= idx max)
9973 (setq idx 0))
9974 (let ((img (create-image file nil nil :index idx)))
9975 (save-excursion
9976 (set-buffer buffer)
9977 (goto-char (point-min))
9978 (unless first-time (delete-char 1))
9979 (insert-image img "x"))
9980 (run-with-timer 0.1 nil 'display-anim buffer file (1+ idx) max nil)))
9981
9982**** PNG, image type `png'
9983
9984Support for PNG images requires the external library `libpng',
9985package `libpng-1.0.2.tar.gz', or later. There are no additional image
9986properties defined.
9987
9988**** Ghostscript, image type `postscript'.
9989
9990Additional image properties supported are:
9991
9992`:pt-width WIDTH'
9993
9994WIDTH is width of the image in pt (1/72 inch). WIDTH must be an
9995integer. This is a required property.
9996
9997`:pt-height HEIGHT'
9998
9999HEIGHT specifies the height of the image in pt (1/72 inch). HEIGHT
10000must be a integer. This is an required property.
10001
10002`:bounding-box BOX'
10003
10004BOX must be a list or vector of 4 integers giving the bounding box of
10005the PS image, analogous to the `BoundingBox' comment found in PS
10006files. This is an required property.
10007
10008Part of the Ghostscript interface is implemented in Lisp. See
10009lisp/gs.el.
10010
10011*** Lisp interface.
10012
10013The variable `image-types' contains a list of those image types
10014which are supported in the current configuration.
10015
10016Images are stored in an image cache and removed from the cache when
10017they haven't been displayed for `image-cache-eviction-delay seconds.
10018The function `clear-image-cache' can be used to clear the image cache
10019manually. Images in the cache are compared with `equal', i.e. all
10020images with `equal' specifications share the same image.
10021
10022*** Simplified image API, image.el
10023
10024The new Lisp package image.el contains functions that simplify image
10025creation and putting images into text. The function `create-image'
10026can be used to create images. The macro `defimage' can be used to
10027define an image based on available image types. The functions
10028`put-image' and `insert-image' can be used to insert an image into a
10029buffer.
10030
10031** Display margins.
10032
10033Windows can now have margins which are used for special text
10034and images.
10035
10036To give a window margins, either set the buffer-local variables
10037`left-margin-width' and `right-margin-width', or call
10038`set-window-margins'. The function `window-margins' can be used to
10039obtain the current settings. To make `left-margin-width' and
10040`right-margin-width' take effect, you must set them before displaying
10041the buffer in a window, or use `set-window-buffer' to force an update
10042of the display margins.
10043
10044You can put text in margins by giving it a `display' text property
10045containing a pair of the form `(LOCATION . VALUE)', where LOCATION is
10046one of `left-margin' or `right-margin' or nil. VALUE can be either a
10047string, an image specification or a stretch specification (see later
10048in this file).
10049
10050** Help display
10051
10052Emacs displays short help messages in the echo area, when the mouse
10053moves over a tool-bar item or a piece of text that has a text property
10054`help-echo'. This feature also applies to strings in the mode line
10055that have a `help-echo' property.
10056
10057If the value of the `help-echo' property is a function, that function
10058is called with three arguments WINDOW, OBJECT and POSITION. WINDOW is
10059the window in which the help was found.
10060
10061If OBJECT is a buffer, POS is the position in the buffer where the
10062`help-echo' text property was found.
10063
10064If OBJECT is an overlay, that overlay has a `help-echo' property, and
10065POS is the position in the overlay's buffer under the mouse.
10066
10067If OBJECT is a string (an overlay string or a string displayed with
10068the `display' property), POS is the position in that string under the
10069mouse.
10070
10071If the value of the `help-echo' property is neither a function nor a
10072string, it is evaluated to obtain a help string.
10073
10074For tool-bar and menu-bar items, their key definition is used to
10075determine the help to display. If their definition contains a
10076property `:help FORM', FORM is evaluated to determine the help string.
10077For tool-bar items without a help form, the caption of the item is
10078used as help string.
10079
10080The hook `show-help-function' can be set to a function that displays
10081the help string differently. For example, enabling a tooltip window
10082causes the help display to appear there instead of in the echo area.
10083
10084** Vertical fractional scrolling.
10085
10086The display of text in windows can be scrolled smoothly in pixels.
10087This is useful, for example, for making parts of large images visible.
10088
10089The function `window-vscroll' returns the current value of vertical
10090scrolling, a non-negative fraction of the canonical character height.
10091The function `set-window-vscroll' can be used to set the vertical
10092scrolling value. Here is an example of how these function might be
10093used.
10094
10095 (global-set-key [A-down]
10096 #'(lambda ()
10097 (interactive)
10098 (set-window-vscroll (selected-window)
10099 (+ 0.5 (window-vscroll)))))
10100 (global-set-key [A-up]
10101 #'(lambda ()
10102 (interactive)
10103 (set-window-vscroll (selected-window)
10104 (- (window-vscroll) 0.5)))))
10105
10106** New hook `fontification-functions'.
10107
10108Functions from `fontification-functions' are called from redisplay
10109when it encounters a region of text that is not yet fontified. This
10110variable automatically becomes buffer-local when set. Each function
10111is called with one argument, POS.
10112
10113At least one of the hook functions should fontify one or more
10114characters starting at POS in the current buffer. It should mark them
10115as fontified by giving them a non-nil value of the `fontified' text
10116property. It may be reasonable for these functions to check for the
10117`fontified' property and not put it back on, but they do not have to.
10118
10119** Tool bar support.
10120
10121Emacs supports a tool bar at the top of a frame under X. The frame
10122parameter `tool-bar-lines' (X resource "toolBar", class "ToolBar")
10123controls how may lines to reserve for the tool bar. A zero value
10124suppresses the tool bar. If the value is non-zero and
10125`auto-resize-tool-bars' is non-nil the tool bar's size will be changed
10126automatically so that all tool bar items are visible.
10127
10128*** Tool bar item definitions
10129
10130Tool bar items are defined using `define-key' with a prefix-key
10131`tool-bar'. For example `(define-key global-map [tool-bar item1] ITEM)'
10132where ITEM is a list `(menu-item CAPTION BINDING PROPS...)'.
10133
10134CAPTION is the caption of the item, If it's not a string, it is
10135evaluated to get a string. The caption is currently not displayed in
10136the tool bar, but it is displayed if the item doesn't have a `:help'
10137property (see below).
10138
10139BINDING is the tool bar item's binding. Tool bar items with keymaps as
10140binding are currently ignored.
10141
10142The following properties are recognized:
10143
10144`:enable FORM'.
10145
10146FORM is evaluated and specifies whether the tool bar item is enabled
10147or disabled.
10148
10149`:visible FORM'
10150
10151FORM is evaluated and specifies whether the tool bar item is displayed.
10152
10153`:filter FUNCTION'
10154
10155FUNCTION is called with one parameter, the same list BINDING in which
10156FUNCTION is specified as the filter. The value FUNCTION returns is
10157used instead of BINDING to display this item.
10158
10159`:button (TYPE SELECTED)'
10160
10161TYPE must be one of `:radio' or `:toggle'. SELECTED is evaluated
10162and specifies whether the button is selected (pressed) or not.
10163
10164`:image IMAGES'
10165
10166IMAGES is either a single image specification or a vector of four
10167image specifications. If it is a vector, this table lists the
10168meaning of each of the four elements:
10169
10170 Index Use when item is
10171 ----------------------------------------
10172 0 enabled and selected
10173 1 enabled and deselected
10174 2 disabled and selected
10175 3 disabled and deselected
10176
10177If IMAGE is a single image specification, a Laplace edge-detection
10178algorithm is used on that image to draw the image in disabled state.
10179
10180`:help HELP-STRING'.
10181
10182Gives a help string to display for the tool bar item. This help
10183is displayed when the mouse is moved over the item.
10184
10185The function `toolbar-add-item' is a convenience function for adding
10186toolbar items generally, and `tool-bar-add-item-from-menu' can be used
10187to define a toolbar item with a binding copied from an item on the
10188menu bar.
10189
10190The default bindings use a menu-item :filter to derive the tool-bar
10191dynamically from variable `tool-bar-map' which may be set
10192buffer-locally to override the global map.
10193
10194*** Tool-bar-related variables.
10195
10196If `auto-resize-tool-bar' is non-nil, the tool bar will automatically
10197resize to show all defined tool bar items. It will never grow larger
10198than 1/4 of the frame's size.
10199
10200If `auto-raise-tool-bar-buttons' is non-nil, tool bar buttons will be
10201raised when the mouse moves over them.
10202
10203You can add extra space between tool bar items by setting
10204`tool-bar-button-margin' to a positive integer specifying a number of
10205pixels, or a pair of integers (X . Y) specifying horizontal and
10206vertical margins . Default is 1.
10207
10208You can change the shadow thickness of tool bar buttons by setting
10209`tool-bar-button-relief' to an integer. Default is 3.
10210
10211*** Tool-bar clicks with modifiers.
10212
10213You can bind commands to clicks with control, shift, meta etc. on
10214a tool bar item. If
10215
10216 (define-key global-map [tool-bar shell]
10217 '(menu-item "Shell" shell
10218 :image (image :type xpm :file "shell.xpm")))
10219
10220is the original tool bar item definition, then
10221
10222 (define-key global-map [tool-bar S-shell] 'some-command)
10223
10224makes a binding to run `some-command' for a shifted click on the same
10225item.
10226
10227** Mode line changes.
10228
10229*** Mouse-sensitive mode line.
10230
10231The mode line can be made mouse-sensitive by displaying strings there
10232that have a `local-map' text property. There are three ways to display
10233a string with a `local-map' property in the mode line.
10234
102351. The mode line spec contains a variable whose string value has
10236a `local-map' text property.
10237
102382. The mode line spec contains a format specifier (e.g. `%12b'), and
10239that format specifier has a `local-map' property.
10240
102413. The mode line spec contains a list containing `:eval FORM'. FORM
10242is evaluated. If the result is a string, and that string has a
10243`local-map' property.
10244
10245The same mechanism is used to determine the `face' and `help-echo'
10246properties of strings in the mode line. See `bindings.el' for an
10247example.
10248
10249*** If a mode line element has the form `(:eval FORM)', FORM is
10250evaluated and the result is used as mode line element.
10251
10252*** You can suppress mode-line display by setting the buffer-local
10253variable mode-line-format to nil.
10254
10255*** A headerline can now be displayed at the top of a window.
10256
10257This mode line's contents are controlled by the new variable
10258`header-line-format' and `default-header-line-format' which are
10259completely analogous to `mode-line-format' and
10260`default-mode-line-format'. A value of nil means don't display a top
10261line.
10262
10263The appearance of top mode lines is controlled by the face
10264`header-line'.
10265
10266The function `coordinates-in-window-p' returns `header-line' for a
10267position in the header-line.
10268
10269** Text property `display'
10270
10271The `display' text property is used to insert images into text,
10272replace text with other text, display text in marginal area, and it is
10273also used to control other aspects of how text displays. The value of
10274the `display' property should be a display specification, as described
10275below, or a list or vector containing display specifications.
10276
10277*** Replacing text, displaying text in marginal areas
10278
10279To replace the text having the `display' property with some other
10280text, use a display specification of the form `(LOCATION STRING)'.
10281
10282If LOCATION is `(margin left-margin)', STRING is displayed in the left
10283marginal area, if it is `(margin right-margin)', it is displayed in
10284the right marginal area, and if LOCATION is `(margin nil)' STRING
10285is displayed in the text. In the latter case you can also use the
10286simpler form STRING as property value.
10287
10288*** Variable width and height spaces
10289
10290To display a space of fractional width or height, use a display
10291specification of the form `(LOCATION STRECH)'. If LOCATION is
10292`(margin left-margin)', the space is displayed in the left marginal
10293area, if it is `(margin right-margin)', it is displayed in the right
10294marginal area, and if LOCATION is `(margin nil)' the space is
10295displayed in the text. In the latter case you can also use the
10296simpler form STRETCH as property value.
10297
10298The stretch specification STRETCH itself is a list of the form `(space
10299PROPS)', where PROPS is a property list which can contain the
10300properties described below.
10301
10302The display of the fractional space replaces the display of the
10303characters having the `display' property.
10304
10305- :width WIDTH
10306
10307Specifies that the space width should be WIDTH times the normal
10308character width. WIDTH can be an integer or floating point number.
10309
10310- :relative-width FACTOR
10311
10312Specifies that the width of the stretch should be computed from the
10313first character in a group of consecutive characters that have the
10314same `display' property. The computation is done by multiplying the
10315width of that character by FACTOR.
10316
10317- :align-to HPOS
10318
10319Specifies that the space should be wide enough to reach HPOS. The
10320value HPOS is measured in units of the normal character width.
10321
10322Exactly one of the above properties should be used.
10323
10324- :height HEIGHT
10325
10326Specifies the height of the space, as HEIGHT, measured in terms of the
10327normal line height.
10328
10329- :relative-height FACTOR
10330
10331The height of the space is computed as the product of the height
10332of the text having the `display' property and FACTOR.
10333
10334- :ascent ASCENT
10335
10336Specifies that ASCENT percent of the height of the stretch should be
10337used for the ascent of the stretch, i.e. for the part above the
10338baseline. The value of ASCENT must be a non-negative number less or
10339equal to 100.
10340
10341You should not use both `:height' and `:relative-height' together.
10342
10343*** Images
10344
10345A display specification for an image has the form `(LOCATION
10346. IMAGE)', where IMAGE is an image specification. The image replaces,
10347in the display, the characters having this display specification in
10348their `display' text property. If LOCATION is `(margin left-margin)',
10349the image will be displayed in the left marginal area, if it is
10350`(margin right-margin)' it will be displayed in the right marginal
10351area, and if LOCATION is `(margin nil)' the image will be displayed in
10352the text. In the latter case you can also use the simpler form IMAGE
10353as display specification.
10354
10355*** Other display properties
10356
10357- (space-width FACTOR)
10358
10359Specifies that space characters in the text having that property
10360should be displayed FACTOR times as wide as normal; FACTOR must be an
10361integer or float.
10362
10363- (height HEIGHT)
10364
10365Display text having this property in a font that is smaller or larger.
10366
10367If HEIGHT is a list of the form `(+ N)', where N is an integer, that
10368means to use a font that is N steps larger. If HEIGHT is a list of
10369the form `(- N)', that means to use a font that is N steps smaller. A
10370``step'' is defined by the set of available fonts; each size for which
10371a font is available counts as a step.
10372
10373If HEIGHT is a number, that means to use a font that is HEIGHT times
10374as tall as the frame's default font.
10375
10376If HEIGHT is a symbol, it is called as a function with the current
10377height as argument. The function should return the new height to use.
10378
10379Otherwise, HEIGHT is evaluated to get the new height, with the symbol
10380`height' bound to the current specified font height.
10381
10382- (raise FACTOR)
10383
10384FACTOR must be a number, specifying a multiple of the current
10385font's height. If it is positive, that means to display the characters
10386raised. If it is negative, that means to display them lower down. The
10387amount of raising or lowering is computed without taking account of the
10388`height' subproperty.
10389
10390*** Conditional display properties
10391
10392All display specifications can be conditionalized. If a specification
10393has the form `(when CONDITION . SPEC)', the specification SPEC applies
10394only when CONDITION yields a non-nil value when evaluated. During the
10395evaluation, `object' is bound to the string or buffer having the
10396conditional display property; `position' and `buffer-position' are
10397bound to the position within `object' and the buffer position where
10398the display property was found, respectively. Both positions can be
10399different when object is a string.
10400
10401The normal specification consisting of SPEC only is equivalent to
10402`(when t . SPEC)'.
10403
10404** New menu separator types.
10405
10406Emacs now supports more than one menu separator type. Menu items with
10407item names consisting of dashes only (including zero dashes) are
10408treated like before. In addition, the following item names are used
10409to specify other menu separator types.
10410
10411- `--no-line' or `--space', or `--:space', or `--:noLine'
10412
10413No separator lines are drawn, but a small space is inserted where the
10414separator occurs.
10415
10416- `--single-line' or `--:singleLine'
10417
10418A single line in the menu's foreground color.
10419
10420- `--double-line' or `--:doubleLine'
10421
10422A double line in the menu's foreground color.
10423
10424- `--single-dashed-line' or `--:singleDashedLine'
10425
10426A single dashed line in the menu's foreground color.
10427
10428- `--double-dashed-line' or `--:doubleDashedLine'
10429
10430A double dashed line in the menu's foreground color.
10431
10432- `--shadow-etched-in' or `--:shadowEtchedIn'
10433
10434A single line with 3D sunken appearance. This is the form
10435displayed for item names consisting of dashes only.
10436
10437- `--shadow-etched-out' or `--:shadowEtchedOut'
10438
10439A single line with 3D raised appearance.
10440
10441- `--shadow-etched-in-dash' or `--:shadowEtchedInDash'
10442
10443A single dashed line with 3D sunken appearance.
10444
10445- `--shadow-etched-out-dash' or `--:shadowEtchedOutDash'
10446
10447A single dashed line with 3D raise appearance.
10448
10449- `--shadow-double-etched-in' or `--:shadowDoubleEtchedIn'
10450
10451Two lines with 3D sunken appearance.
10452
10453- `--shadow-double-etched-out' or `--:shadowDoubleEtchedOut'
10454
10455Two lines with 3D raised appearance.
10456
10457- `--shadow-double-etched-in-dash' or `--:shadowDoubleEtchedInDash'
10458
10459Two dashed lines with 3D sunken appearance.
10460
10461- `--shadow-double-etched-out-dash' or `--:shadowDoubleEtchedOutDash'
10462
10463Two dashed lines with 3D raised appearance.
10464
10465Under LessTif/Motif, the last four separator types are displayed like
10466the corresponding single-line separators.
10467
10468** New frame parameters for scroll bar colors.
10469
10470The new frame parameters `scroll-bar-foreground' and
10471`scroll-bar-background' can be used to change scroll bar colors.
10472Their value must be either a color name, a string, or nil to specify
10473that scroll bars should use a default color. For toolkit scroll bars,
10474default colors are toolkit specific. For non-toolkit scroll bars, the
10475default background is the background color of the frame, and the
10476default foreground is black.
10477
10478The X resource name of these parameters are `scrollBarForeground'
10479(class ScrollBarForeground) and `scrollBarBackground' (class
10480`ScrollBarBackground').
10481
10482Setting these parameters overrides toolkit specific X resource
10483settings for scroll bar colors.
10484
10485** You can set `redisplay-dont-pause' to a non-nil value to prevent
10486display updates from being interrupted when input is pending.
10487
10488** Changing a window's width may now change its window start if it
10489starts on a continuation line. The new window start is computed based
10490on the window's new width, starting from the start of the continued
10491line as the start of the screen line with the minimum distance from
10492the original window start.
10493
10494** The variable `hscroll-step' and the functions
10495`hscroll-point-visible' and `hscroll-window-column' have been removed
10496now that proper horizontal scrolling is implemented.
10497
10498** Windows can now be made fixed-width and/or fixed-height.
10499
10500A window is fixed-size if its buffer has a buffer-local variable
10501`window-size-fixed' whose value is not nil. A value of `height' makes
10502windows fixed-height, a value of `width' makes them fixed-width, any
10503other non-nil value makes them both fixed-width and fixed-height.
10504
10505The following code makes all windows displaying the current buffer
10506fixed-width and fixed-height.
10507
10508 (set (make-local-variable 'window-size-fixed) t)
10509
10510A call to enlarge-window on a window gives an error if that window is
10511fixed-width and it is tried to change the window's width, or if the
10512window is fixed-height, and it is tried to change its height. To
10513change the size of a fixed-size window, bind `window-size-fixed'
10514temporarily to nil, for example
10515
10516 (let ((window-size-fixed nil))
10517 (enlarge-window 10))
10518
10519Likewise, an attempt to split a fixed-height window vertically,
10520or a fixed-width window horizontally results in a error.
10521
10522** The cursor-type frame parameter is now supported on MS-DOS
10523terminals. When Emacs starts, it by default changes the cursor shape
10524to a solid box, as it does on Unix. The `cursor-type' frame parameter
10525overrides this as it does on Unix, except that the bar cursor is
10526horizontal rather than vertical (since the MS-DOS display doesn't
10527support a vertical-bar cursor).
10528
10529
10530
10531* Emacs 20.7 is a bug-fix release with few user-visible changes
10532
10533** It is now possible to use CCL-based coding systems for keyboard
10534input.
10535
10536** ange-ftp now handles FTP security extensions, like Kerberos.
10537
10538** Rmail has been extended to recognize more forms of digest messages.
10539
10540** Now, most coding systems set in keyboard coding system work not
10541only for character input, but also in incremental search. The
10542exceptions are such coding systems that handle 2-byte character sets
10543(e.g euc-kr, euc-jp) and that use ISO's escape sequence
10544(e.g. iso-2022-jp). They are ignored in incremental search.
10545
10546** Support for Macintosh PowerPC-based machines running GNU/Linux has
10547been added.
10548 5753
10549 5754
10550* Emacs 20.6 is a bug-fix release with one user-visible change
10551
10552** Support for ARM-based non-RISCiX machines has been added.
10553
10554
10555
10556* Emacs 20.5 is a bug-fix release with no user-visible changes.
10557
10558** Not new, but not mentioned before:
10559M-w when Transient Mark mode is enabled disables the mark.
10560
10561* Changes in Emacs 20.4
10562
10563** Init file may be called .emacs.el.
10564
10565You can now call the Emacs init file `.emacs.el'.
10566Formerly the name had to be `.emacs'. If you use the name
10567`.emacs.el', you can byte-compile the file in the usual way.
10568
10569If both `.emacs' and `.emacs.el' exist, the latter file
10570is the one that is used.
10571
10572** shell-command, and shell-command-on-region, now return
10573the exit code of the command (unless it is asynchronous).
10574Also, you can specify a place to put the error output,
10575separate from the command's regular output.
10576Interactively, the variable shell-command-default-error-buffer
10577says where to put error output; set it to a buffer name.
10578In calls from Lisp, an optional argument ERROR-BUFFER specifies
10579the buffer name.
10580
10581When you specify a non-nil error buffer (or buffer name), any error
10582output is inserted before point in that buffer, with \f\n to separate
10583it from the previous batch of error output. The error buffer is not
10584cleared, so error output from successive commands accumulates there.
10585
10586** Setting the default value of enable-multibyte-characters to nil in
10587the .emacs file, either explicitly using setq-default, or via Custom,
10588is now essentially equivalent to using --unibyte: all buffers
10589created during startup will be made unibyte after loading .emacs.
10590
10591** C-x C-f now handles the wildcards * and ? in file names. For
10592example, typing C-x C-f c*.c RET visits all the files whose names
10593match c*.c. To visit a file whose name contains * or ?, add the
10594quoting sequence /: to the beginning of the file name.
10595
10596** The M-x commands keep-lines, flush-lines and count-matches
10597now have the same feature as occur and query-replace:
10598if the pattern contains any upper case letters, then
10599they never ignore case.
10600
10601** The end-of-line format conversion feature previously mentioned
10602under `* Emacs 20.1 changes for MS-DOS and MS-Windows' actually
10603applies to all operating systems. Emacs recognizes from the contents
10604of a file what convention it uses to separate lines--newline, CRLF, or
10605just CR--and automatically converts the contents to the normal Emacs
10606convention (using newline to separate lines) for editing. This is a
10607part of the general feature of coding system conversion.
10608
10609If you subsequently save the buffer, Emacs converts the text back to
10610the same format that was used in the file before.
10611
10612You can turn off end-of-line conversion by setting the variable
10613`inhibit-eol-conversion' to non-nil, e.g. with Custom in the MULE group.
10614
10615** The character set property `prefered-coding-system' has been
10616renamed to `preferred-coding-system', for the sake of correct spelling.
10617This is a fairly internal feature, so few programs should be affected.
10618
10619** Mode-line display of end-of-line format is changed.
10620The indication of the end-of-line format of the file visited by a
10621buffer is now more explicit when that format is not the usual one for
10622your operating system. For example, the DOS-style end-of-line format
10623is displayed as "(DOS)" on Unix and GNU/Linux systems. The usual
10624end-of-line format is still displayed as a single character (colon for
10625Unix, backslash for DOS and Windows, and forward slash for the Mac).
10626
10627The values of the variables eol-mnemonic-unix, eol-mnemonic-dos,
10628eol-mnemonic-mac, and eol-mnemonic-undecided, which are strings,
10629control what is displayed in the mode line for each end-of-line
10630format. You can now customize these variables.
10631
10632** In the previous version of Emacs, tar-mode didn't work well if a
10633filename contained non-ASCII characters. Now this is fixed. Such a
10634filename is decoded by file-name-coding-system if the default value of
10635enable-multibyte-characters is non-nil.
10636
10637** The command temp-buffer-resize-mode toggles a minor mode
10638in which temporary buffers (such as help buffers) are given
10639windows just big enough to hold the whole contents.
10640
10641** If you use completion.el, you must now run the function
10642dynamic-completion-mode to enable it. Just loading the file
10643doesn't have any effect.
10644
10645** In Flyspell mode, the default is now to make just one Ispell process,
10646not one per buffer.
10647
10648** If you use iswitchb but do not call (iswitchb-default-keybindings) to
10649use the default keybindings, you will need to add the following line:
10650 (add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup)
10651
10652** Auto-show mode is no longer enabled just by loading auto-show.el.
10653To control it, set `auto-show-mode' via Custom or use the
10654`auto-show-mode' command.
10655
10656** Handling of X fonts' ascent/descent parameters has been changed to
10657avoid redisplay problems. As a consequence, compared with previous
10658versions the line spacing and frame size now differ with some font
10659choices, typically increasing by a pixel per line. This change
10660occurred in version 20.3 but was not documented then.
10661
10662** If you select the bar cursor style, it uses the frame's
10663cursor-color, rather than the cursor foreground pixel.
10664
10665** In multibyte mode, Rmail decodes incoming MIME messages using the
10666character set specified in the message. If you want to disable this
10667feature, set the variable rmail-decode-mime-charset to nil.
10668
10669** Not new, but not mentioned previously in NEWS: when you use #! at
10670the beginning of a file to make it executable and specify an
10671interpreter program, Emacs looks on the second line for the -*- mode
10672and variable specification, as well as on the first line.
10673
10674** Support for IBM codepage encoding of non-ASCII characters.
10675
10676The new command M-x codepage-setup creates a special coding system
10677that can be used to convert text between a specific IBM codepage and
10678one of the character sets built into Emacs which matches that
10679codepage. For example, codepage 850 corresponds to Latin-1 character
10680set, codepage 855 corresponds to Cyrillic-ISO character set, etc.
10681
10682Windows codepages 1250, 1251 and some others, where Windows deviates
10683from the corresponding ISO character set, are also supported.
10684
10685IBM box-drawing characters and other glyphs which don't have
10686equivalents in the corresponding ISO character set, are converted to
10687a character defined by dos-unsupported-char-glyph on MS-DOS, and to
10688`?' on other systems.
10689
10690IBM codepages are widely used on MS-DOS and MS-Windows, so this
10691feature is most useful on those platforms, but it can also be used on
10692Unix.
10693
10694Emacs compiled for MS-DOS automatically loads the support for the
10695current codepage when it starts.
10696
10697** Mail changes
10698
10699*** When mail is sent using compose-mail (C-x m), and if
10700`mail-send-nonascii' is set to the new default value `mime',
10701appropriate MIME headers are added. The headers are added only if
10702non-ASCII characters are present in the body of the mail, and no other
10703MIME headers are already present. For example, the following three
10704headers are added if the coding system used in the *mail* buffer is
10705latin-1:
10706
10707 MIME-version: 1.0
10708 Content-type: text/plain; charset=iso-8859-1
10709 Content-Transfer-Encoding: 8bit
10710
10711*** The new variable default-sendmail-coding-system specifies the
10712default way to encode outgoing mail. This has higher priority than
10713default-buffer-file-coding-system but has lower priority than
10714sendmail-coding-system and the local value of
10715buffer-file-coding-system.
10716
10717You should not set this variable manually. Instead, set
10718sendmail-coding-system to specify a fixed encoding for all outgoing
10719mail.
10720
10721*** When you try to send a message that contains non-ASCII characters,
10722if the coding system specified by those variables doesn't handle them,
10723Emacs will ask you to select a suitable coding system while showing a
10724list of possible coding systems.
10725
10726** CC Mode changes
10727
10728*** c-default-style can now take an association list that maps major
10729modes to style names. When this variable is an alist, Java mode no
10730longer hardcodes a setting to "java" style. See the variable's
10731docstring for details.
10732
10733*** It's now possible to put a list as the offset on a syntactic
10734symbol. The list is evaluated recursively until a non-nil offset is
10735found. This is useful to combine several lineup functions to act in a
10736prioritized order on a single line. However, none of the supplied
10737lineup functions use this feature currently.
10738
10739*** New syntactic symbol catch-clause, which is used on the "catch" and
10740"finally" lines in try-catch constructs in C++ and Java.
10741
10742*** New cleanup brace-catch-brace on c-cleanup-list, which does for
10743"catch" lines what brace-elseif-brace does for "else if" lines.
10744
10745*** The braces of Java anonymous inner classes are treated separately
10746from the braces of other classes in auto-newline mode. Two new
10747symbols inexpr-class-open and inexpr-class-close may be used on
10748c-hanging-braces-alist to control the automatic newlines used for
10749anonymous classes.
10750
10751*** Support for the Pike language added, along with new Pike specific
10752syntactic symbols: inlambda, lambda-intro-cont
10753
10754*** Support for Java anonymous classes via new syntactic symbol
10755inexpr-class. New syntactic symbol inexpr-statement for Pike
10756support and gcc-style statements inside expressions. New lineup
10757function c-lineup-inexpr-block.
10758
10759*** New syntactic symbol brace-entry-open which is used in brace lists
10760(i.e. static initializers) when a list entry starts with an open
10761brace. These used to be recognized as brace-list-entry's.
10762c-electric-brace also recognizes brace-entry-open braces
10763(brace-list-entry's can no longer be electrified).
10764
10765*** New command c-indent-line-or-region, not bound by default.
10766
10767*** `#' is only electric when typed in the indentation of a line.
10768
10769*** Parentheses are now electric (via the new command c-electric-paren)
10770for auto-reindenting lines when parens are typed.
10771
10772*** In "gnu" style, inline-open offset is now set to zero.
10773
10774*** Uniform handling of the inclass syntactic symbol. The indentation
10775associated with it is now always relative to the class opening brace.
10776This means that the indentation behavior has changed in some
10777circumstances, but only if you've put anything besides 0 on the
10778class-open syntactic symbol (none of the default styles do that).
10779
10780** Gnus changes.
10781
10782*** New functionality for using Gnus as an offline newsreader has been
10783added. A plethora of new commands and modes have been added. See the
10784Gnus manual for the full story.
10785
10786*** The nndraft backend has returned, but works differently than
10787before. All Message buffers are now also articles in the nndraft
10788group, which is created automatically.
10789
10790*** `gnus-alter-header-function' can now be used to alter header
10791values.
10792
10793*** `gnus-summary-goto-article' now accept Message-ID's.
10794
10795*** A new Message command for deleting text in the body of a message
10796outside the region: `C-c C-v'.
10797
10798*** You can now post to component group in nnvirtual groups with
10799`C-u C-c C-c'.
10800
10801*** `nntp-rlogin-program' -- new variable to ease customization.
10802
10803*** `C-u C-c C-c' in `gnus-article-edit-mode' will now inhibit
10804re-highlighting of the article buffer.
10805
10806*** New element in `gnus-boring-article-headers' -- `long-to'.
10807
10808*** `M-i' symbolic prefix command. See the section "Symbolic
10809Prefixes" in the Gnus manual for details.
10810
10811*** `L' and `I' in the summary buffer now take the symbolic prefix
10812`a' to add the score rule to the "all.SCORE" file.
10813
10814*** `gnus-simplify-subject-functions' variable to allow greater
10815control over simplification.
10816
10817*** `A T' -- new command for fetching the current thread.
10818
10819*** `/ T' -- new command for including the current thread in the
10820limit.
10821
10822*** `M-RET' is a new Message command for breaking cited text.
10823
10824*** \\1-expressions are now valid in `nnmail-split-methods'.
10825
10826*** The `custom-face-lookup' function has been removed.
10827If you used this function in your initialization files, you must
10828rewrite them to use `face-spec-set' instead.
10829
10830*** Canceling now uses the current select method. Symbolic prefix
10831`a' forces normal posting method.
10832
10833*** New command to translate M******** sm*rtq**t*s into proper text
10834-- `W d'.
10835
10836*** For easier debugging of nntp, you can set `nntp-record-commands'
10837to a non-nil value.
10838
10839*** nntp now uses ~/.authinfo, a .netrc-like file, for controlling
10840where and how to send AUTHINFO to NNTP servers.
10841
10842*** A command for editing group parameters from the summary buffer
10843has been added.
10844
10845*** A history of where mails have been split is available.
10846
10847*** A new article date command has been added -- `article-date-iso8601'.
10848
10849*** Subjects can be simplified when threading by setting
10850`gnus-score-thread-simplify'.
10851
10852*** A new function for citing in Message has been added --
10853`message-cite-original-without-signature'.
10854
10855*** `article-strip-all-blank-lines' -- new article command.
10856
10857*** A new Message command to kill to the end of the article has
10858been added.
10859
10860*** A minimum adaptive score can be specified by using the
10861`gnus-adaptive-word-minimum' variable.
10862
10863*** The "lapsed date" article header can be kept continually
10864updated by the `gnus-start-date-timer' command.
10865
10866*** Web listserv archives can be read with the nnlistserv backend.
10867
10868*** Old dejanews archives can now be read by nnweb.
10869
10870*** `gnus-posting-styles' has been re-activated.
10871
10872** Changes to TeX and LaTeX mode
10873
10874*** The new variable `tex-start-options-string' can be used to give
10875options for the TeX run. The default value causes TeX to run in
10876nonstopmode. For an interactive TeX run set it to nil or "".
10877
10878*** The command `tex-feed-input' sends input to the Tex Shell. In a
10879TeX buffer it is bound to the keys C-RET, C-c RET, and C-c C-m (some
10880of these keys may not work on all systems). For instance, if you run
10881TeX interactively and if the TeX run stops because of an error, you
10882can continue it without leaving the TeX buffer by typing C-RET.
10883
10884*** The Tex Shell Buffer is now in `compilation-shell-minor-mode'.
10885All error-parsing commands of the Compilation major mode are available
10886but bound to keys that don't collide with the shell. Thus you can use
10887the Tex Shell for command line executions like a usual shell.
10888
10889*** The commands `tex-validate-region' and `tex-validate-buffer' check
10890the matching of braces and $'s. The errors are listed in a *Occur*
10891buffer and you can use C-c C-c or mouse-2 to go to a particular
10892mismatch.
10893
10894** Changes to RefTeX mode
10895
10896*** The table of contents buffer can now also display labels and
10897file boundaries in addition to sections. Use `l', `i', and `c' keys.
10898
10899*** Labels derived from context (the section heading) are now
10900lowercase by default. To make the label legal in LaTeX, latin-1
10901characters will lose their accent. All Mule characters will be
10902removed from the label.
10903
10904*** The automatic display of cross reference information can also use
10905a window instead of the echo area. See variable `reftex-auto-view-crossref'.
10906
10907*** kpsewhich can be used by RefTeX to find TeX and BibTeX files. See the
10908customization group `reftex-finding-files'.
10909
10910*** The option `reftex-bibfile-ignore-list' has been renamed to
10911`reftex-bibfile-ignore-regexps' and indeed can be fed with regular
10912expressions.
10913
10914*** Multiple Selection buffers are now hidden buffers.
10915
10916** New/deleted modes and packages
10917
10918*** The package snmp-mode.el provides major modes for editing SNMP and
10919SNMPv2 MIBs. It has entries on `auto-mode-alist'.
10920
10921*** The package sql.el provides a major mode, M-x sql-mode, for
10922editing SQL files, and M-x sql-interactive-mode for interacting with
10923SQL interpreters. It has an entry on `auto-mode-alist'.
10924
10925*** ispell4.el has been deleted. It got in the way of ispell.el and
10926this was hard to fix reliably. It has long been obsolete -- use
10927Ispell 3.1 and ispell.el.
10928
10929* MS-DOS changes in Emacs 20.4
10930
10931** Emacs compiled for MS-DOS now supports MULE features better.
10932This includes support for display of all ISO 8859-N character sets,
10933conversion to and from IBM codepage encoding of non-ASCII characters,
10934and automatic setup of the MULE environment at startup. For details,
10935check out the section `MS-DOS and MULE' in the manual.
10936
10937The MS-DOS installation procedure automatically configures and builds
10938Emacs with input method support if it finds an unpacked Leim
10939distribution when the config.bat script is run.
10940
10941** Formerly, the value of lpr-command did not affect printing on
10942MS-DOS unless print-region-function was set to nil, but now it
10943controls whether an external program is invoked or output is written
10944directly to a printer port. Similarly, in the previous version of
10945Emacs, the value of ps-lpr-command did not affect PostScript printing
10946on MS-DOS unless ps-printer-name was set to something other than a
10947string (eg. t or `pipe'), but now it controls whether an external
10948program is used. (These changes were made so that configuration of
10949printing variables would be almost identical across all platforms.)
10950
10951** In the previous version of Emacs, PostScript and non-PostScript
10952output was piped to external programs, but because most print programs
10953available for MS-DOS and MS-Windows cannot read data from their standard
10954input, on those systems the data to be output is now written to a
10955temporary file whose name is passed as the last argument to the external
10956program.
10957
10958An exception is made for `print', a standard program on Windows NT,
10959and `nprint', a standard program on Novell Netware. For both of these
10960programs, the command line is constructed in the appropriate syntax
10961automatically, using only the value of printer-name or ps-printer-name
10962as appropriate--the value of the relevant `-switches' variable is
10963ignored, as both programs have no useful switches.
10964
10965** The value of the variable dos-printer (cf. dos-ps-printer), if it has
10966a value, overrides the value of printer-name (cf. ps-printer-name), on
10967MS-DOS and MS-Windows only. This has been true since version 20.3, but
10968was not documented clearly before.
10969
10970** All the Emacs games now work on MS-DOS terminals.
10971This includes Tetris and Snake.
10972
10973* Lisp changes in Emacs 20.4
10974
10975** New functions line-beginning-position and line-end-position
10976return the position of the beginning or end of the current line.
10977They both accept an optional argument, which has the same
10978meaning as the argument to beginning-of-line or end-of-line.
10979
10980** find-file and allied functions now have an optional argument
10981WILDCARD. If this is non-nil, they do wildcard processing,
10982and visit all files that match the wildcard pattern.
10983
10984** Changes in the file-attributes function.
10985
10986*** The file size returned by file-attributes may be an integer or a float.
10987It is an integer if the size fits in a Lisp integer, float otherwise.
10988
10989*** The inode number returned by file-attributes may be an integer (if
10990the number fits in a Lisp integer) or a cons cell containing two
10991integers.
10992
10993** The new function directory-files-and-attributes returns a list of
10994files in a directory and their attributes. It accepts the same
10995arguments as directory-files and has similar semantics, except that
10996file names and attributes are returned.
10997
10998** The new function file-attributes-lessp is a helper function for
10999sorting the list generated by directory-files-and-attributes. It
11000accepts two arguments, each a list of a file name and its attributes.
11001It compares the file names of each according to string-lessp and
11002returns the result.
11003
11004** The new function file-expand-wildcards expands a wildcard-pattern
11005to produce a list of existing files that match the pattern.
11006
11007** New functions for base64 conversion:
11008
11009The function base64-encode-region converts a part of the buffer
11010into the base64 code used in MIME. base64-decode-region
11011performs the opposite conversion. Line-breaking is supported
11012optionally.
11013
11014Functions base64-encode-string and base64-decode-string do a similar
11015job on the text in a string. They return the value as a new string.
11016
11017**
11018The new function process-running-child-p
11019will tell you if a subprocess has given control of its
11020terminal to its own child process.
11021
11022** interrupt-process and such functions have a new feature:
11023when the second argument is `lambda', they send a signal
11024to the running child of the subshell, if any, but if the shell
11025itself owns its terminal, no signal is sent.
11026
11027** There are new widget types `plist' and `alist' which can
11028be used for customizing variables whose values are plists or alists.
11029
11030** easymenu.el now understands `:key-sequence' and `:style button'.
11031:included is an alias for :visible.
11032
11033easy-menu-add-item now understands the values returned by
11034easy-menu-remove-item and easy-menu-item-present-p. This can be used
11035to move or copy menu entries.
11036
11037** Multibyte editing changes
11038
11039*** The definitions of sref and char-bytes are changed. Now, sref is
11040an alias of aref and char-bytes always returns 1. This change is to
11041make some Emacs Lisp code which works on 20.2 and earlier also
11042work on the latest Emacs. Such code uses a combination of sref and
11043char-bytes in a loop typically as below:
11044 (setq char (sref str idx)
11045 idx (+ idx (char-bytes idx)))
11046The byte-compiler now warns that this is obsolete.
11047
11048If you want to know how many bytes a specific multibyte character
11049(say, CH) occupies in a multibyte buffer, use this code:
11050 (charset-bytes (char-charset ch))
11051
11052*** In multibyte mode, when you narrow a buffer to some region, and the
11053region is preceded or followed by non-ASCII codes, inserting or
11054deleting at the head or the end of the region may signal this error:
11055
11056 Byte combining across boundary of accessible buffer text inhibited
11057
11058This is to avoid some bytes being combined together into a character
11059across the boundary.
11060
11061*** The functions find-charset-region and find-charset-string include
11062`unknown' in the returned list in the following cases:
11063 o The current buffer or the target string is unibyte and
11064 contains 8-bit characters.
11065 o The current buffer or the target string is multibyte and
11066 contains invalid characters.
11067
11068*** The functions decode-coding-region and encode-coding-region remove
11069text properties of the target region. Ideally, they should correctly
11070preserve text properties, but for the moment, it's hard. Removing
11071text properties is better than preserving them in a less-than-correct
11072way.
11073
11074*** prefer-coding-system sets EOL conversion of default coding systems.
11075If the argument to prefer-coding-system specifies a certain type of
11076end of line conversion, the default coding systems set by
11077prefer-coding-system will specify that conversion type for end of line.
11078
11079*** The new function thai-compose-string can be used to properly
11080compose Thai characters in a string.
11081
11082** The primitive `define-prefix-command' now takes an optional third
11083argument NAME, which should be a string. It supplies the menu name
11084for the created keymap. Keymaps created in order to be displayed as
11085menus should always use the third argument.
11086
11087** The meanings of optional second arguments for read-char,
11088read-event, and read-char-exclusive are flipped. Now the second
11089arguments are INHERIT-INPUT-METHOD. These functions use the current
11090input method (if any) if and only if INHERIT-INPUT-METHOD is non-nil.
11091
11092** The new function clear-this-command-keys empties out the contents
11093of the vector that (this-command-keys) returns. This is useful in
11094programs that read passwords, to prevent the passwords from echoing
11095inadvertently as part of the next command in certain cases.
11096
11097** The new macro `with-temp-message' displays a temporary message in
11098the echo area, while executing some Lisp code. Like `progn', it
11099returns the value of the last form, but it also restores the previous
11100echo area contents.
11101
11102 (with-temp-message MESSAGE &rest BODY)
11103
11104** The function `require' now takes an optional third argument
11105NOERROR. If it is non-nil, then there is no error if the
11106requested feature cannot be loaded.
11107
11108** In the function modify-face, an argument of (nil) for the
11109foreground color, background color or stipple pattern
11110means to clear out that attribute.
11111
11112** The `outer-window-id' frame property of an X frame
11113gives the window number of the outermost X window for the frame.
11114
11115** Temporary buffers made with with-output-to-temp-buffer are now
11116read-only by default, and normally use the major mode Help mode
11117unless you put them in some other non-Fundamental mode before the
11118end of with-output-to-temp-buffer.
11119
11120** The new functions gap-position and gap-size return information on
11121the gap of the current buffer.
11122
11123** The new functions position-bytes and byte-to-position provide a way
11124to convert between character positions and byte positions in the
11125current buffer.
11126
11127** vc.el defines two new macros, `edit-vc-file' and `with-vc-file', to
11128facilitate working with version-controlled files from Lisp programs.
11129These macros check out a given file automatically if needed, and check
11130it back in after any modifications have been made.
11131
11132* Installation Changes in Emacs 20.3
11133
11134** The default value of load-path now includes most subdirectories of
11135the site-specific directories /usr/local/share/emacs/site-lisp and
11136/usr/local/share/emacs/VERSION/site-lisp, in addition to those
11137directories themselves. Both immediate subdirectories and
11138subdirectories multiple levels down are added to load-path.
11139
11140Not all subdirectories are included, though. Subdirectories whose
11141names do not start with a letter or digit are excluded.
11142Subdirectories named RCS or CVS are excluded. Also, a subdirectory
11143which contains a file named `.nosearch' is excluded. You can use
11144these methods to prevent certain subdirectories from being searched.
11145
11146Emacs finds these subdirectories and adds them to load-path when it
11147starts up. While it would be cleaner to find the subdirectories each
11148time Emacs loads a file, that would be much slower.
11149
11150This feature is an incompatible change. If you have stored some Emacs
11151Lisp files in a subdirectory of the site-lisp directory specifically
11152to prevent them from being used, you will need to rename the
11153subdirectory to start with a non-alphanumeric character, or create a
11154`.nosearch' file in it, in order to continue to achieve the desired
11155results.
11156
11157** Emacs no longer includes an old version of the C preprocessor from
11158GCC. This was formerly used to help compile Emacs with C compilers
11159that had limits on the significant length of an identifier, but in
11160fact we stopped supporting such compilers some time ago.
11161
11162* Changes in Emacs 20.3
11163
11164** The new command C-x z (repeat) repeats the previous command
11165including its argument. If you repeat the z afterward,
11166it repeats the command additional times; thus, you can
11167perform many repetitions with one keystroke per repetition.
11168
11169** Emacs now supports "selective undo" which undoes only within a
11170specified region. To do this, set point and mark around the desired
11171region and type C-u C-x u (or C-u C-_). You can then continue undoing
11172further, within the same region, by repeating the ordinary undo
11173command C-x u or C-_. This will keep undoing changes that were made
11174within the region you originally specified, until either all of them
11175are undone, or it encounters a change which crosses the edge of that
11176region.
11177
11178In Transient Mark mode, undoing when a region is active requests
11179selective undo.
11180
11181** If you specify --unibyte when starting Emacs, then all buffers are
11182unibyte, except when a Lisp program specifically creates a multibyte
11183buffer. Setting the environment variable EMACS_UNIBYTE has the same
11184effect. The --no-unibyte option overrides EMACS_UNIBYTE and directs
11185Emacs to run normally in multibyte mode.
11186
11187The option --unibyte does not affect the reading of Emacs Lisp files,
11188though. If you want a Lisp file to be read in unibyte mode, use
11189-*-unibyte: t;-*- on its first line. That will force Emacs to
11190load that file in unibyte mode, regardless of how Emacs was started.
11191
11192** toggle-enable-multibyte-characters no longer has a key binding and
11193no longer appears in the menu bar. We've realized that changing the
11194enable-multibyte-characters variable in an existing buffer is
11195something that most users not do.
11196
11197** You can specify a coding system to use for the next cut or paste
11198operations through the window system with the command C-x RET X.
11199The coding system can make a difference for communication with other
11200applications.
11201
11202C-x RET x specifies a coding system for all subsequent cutting and
11203pasting operations.
11204
11205** You can specify the printer to use for commands that do printing by
11206setting the variable `printer-name'. Just what a printer name looks
11207like depends on your operating system. You can specify a different
11208printer for the Postscript printing commands by setting
11209`ps-printer-name'.
11210
11211** Emacs now supports on-the-fly spell checking by the means of a
11212minor mode. It is called M-x flyspell-mode. You don't have to remember
11213any other special commands to use it, and you will hardly notice it
11214except when you make a spelling error. Flyspell works by highlighting
11215incorrect words as soon as they are completed or as soon as the cursor
11216hits a new word.
11217
11218Flyspell mode works with whichever dictionary you have selected for
11219Ispell in Emacs. In TeX mode, it understands TeX syntax so as not
11220to be confused by TeX commands.
11221
11222You can correct a misspelled word by editing it into something
11223correct. You can also correct it, or accept it as correct, by
11224clicking on the word with Mouse-2; that gives you a pop-up menu
11225of various alternative replacements and actions.
11226
11227Flyspell mode also proposes "automatic" corrections. M-TAB replaces
11228the current misspelled word with a possible correction. If several
11229corrections are made possible, M-TAB cycles through them in
11230alphabetical order, or in order of decreasing likelihood if
11231flyspell-sort-corrections is nil.
11232
11233Flyspell mode also flags an error when a word is repeated, if
11234flyspell-mark-duplications-flag is non-nil.
11235
11236** Changes in input method usage.
11237
11238Now you can use arrow keys (right, left, down, up) for selecting among
11239the alternatives just the same way as you do by C-f, C-b, C-n, and C-p
11240respectively.
11241
11242You can use the ENTER key to accept the current conversion.
11243
11244If you type TAB to display a list of alternatives, you can select one
11245of the alternatives with Mouse-2.
11246
11247The meaning of the variable `input-method-verbose-flag' is changed so
11248that you can set it to t, nil, `default', or `complex-only'.
11249
11250 If the value is nil, extra guidance is never given.
11251
11252 If the value is t, extra guidance is always given.
11253
11254 If the value is `complex-only', extra guidance is always given only
11255 when you are using complex input methods such as chinese-py.
11256
11257 If the value is `default' (this is the default), extra guidance is
11258 given in the following case:
11259 o When you are using a complex input method.
11260 o When you are using a simple input method but not in the minibuffer.
11261
11262If you are using Emacs through a very slow line, setting
11263input-method-verbose-flag to nil or to complex-only is a good choice,
11264and if you are using an input method you are not familiar with,
11265setting it to t is helpful.
11266
11267The old command select-input-method is now called set-input-method.
11268
11269In the language environment "Korean", you can use the following
11270keys:
11271 Shift-SPC toggle-korean-input-method
11272 C-F9 quail-hangul-switch-symbol-ksc
11273 F9 quail-hangul-switch-hanja
11274These key bindings are canceled when you switch to another language
11275environment.
11276
11277** The minibuffer history of file names now records the specified file
11278names, not the entire minibuffer input. For example, if the
11279minibuffer starts out with /usr/foo/, you might type in /etc/passwd to
11280get
11281
11282 /usr/foo//etc/passwd
11283
11284which stands for the file /etc/passwd.
11285
11286Formerly, this used to put /usr/foo//etc/passwd in the history list.
11287Now this puts just /etc/passwd in the history list.
11288
11289** If you are root, Emacs sets backup-by-copying-when-mismatch to t
11290at startup, so that saving a file will be sure to preserve
11291its owner and group.
11292
11293** find-func.el can now also find the place of definition of Emacs
11294Lisp variables in user-loaded libraries.
11295
11296** C-x r t (string-rectangle) now deletes the existing rectangle
11297contents before inserting the specified string on each line.
11298
11299** There is a new command delete-whitespace-rectangle
11300which deletes whitespace starting from a particular column
11301in all the lines on a rectangle. The column is specified
11302by the left edge of the rectangle.
11303
11304** You can now store a number into a register with C-u NUMBER C-x r n REG,
11305increment it by INC with C-u INC C-x r + REG (to increment by one, omit
11306C-u INC), and insert it in the buffer with C-x r g REG. This is useful
11307for writing keyboard macros.
11308
11309** The new command M-x speedbar displays a frame in which directories,
11310files, and tags can be displayed, manipulated, and jumped to. The
11311frame defaults to 20 characters in width, and is the same height as
11312the frame that it was started from. Some major modes define
11313additional commands for the speedbar, including Rmail, GUD/GDB, and
11314info.
11315
11316** query-replace-regexp is now bound to C-M-%.
11317
11318** In Transient Mark mode, when the region is active, M-x
11319query-replace and the other replace commands now operate on the region
11320contents only.
11321
11322** M-x write-region, when used interactively, now asks for
11323confirmation before overwriting an existing file. When you call
11324the function from a Lisp program, a new optional argument CONFIRM
11325says whether to ask for confirmation in this case.
11326
11327** If you use find-file-literally and the file is already visited
11328non-literally, the command asks you whether to revisit the file
11329literally. If you say no, it signals an error.
11330
11331** Major modes defined with the "derived mode" feature
11332now use the proper name for the mode hook: WHATEVER-mode-hook.
11333Formerly they used the name WHATEVER-mode-hooks, but that is
11334inconsistent with Emacs conventions.
11335
11336** shell-command-on-region (and shell-command) reports success or
11337failure if the command produces no output.
11338
11339** Set focus-follows-mouse to nil if your window system or window
11340manager does not transfer focus to another window when you just move
11341the mouse.
11342
11343** mouse-menu-buffer-maxlen has been renamed to
11344mouse-buffer-menu-maxlen to be consistent with the other related
11345function and variable names.
11346
11347** The new variable auto-coding-alist specifies coding systems for
11348reading specific files. This has higher priority than
11349file-coding-system-alist.
11350
11351** If you set the variable unibyte-display-via-language-environment to
11352t, then Emacs displays non-ASCII characters are displayed by
11353converting them to the equivalent multibyte characters according to
11354the current language environment. As a result, they are displayed
11355according to the current fontset.
11356
11357** C-q's handling of codes in the range 0200 through 0377 is changed.
11358
11359The codes in the range 0200 through 0237 are inserted as one byte of
11360that code regardless of the values of nonascii-translation-table and
11361nonascii-insert-offset.
11362
11363For the codes in the range 0240 through 0377, if
11364enable-multibyte-characters is non-nil and nonascii-translation-table
11365nor nonascii-insert-offset can't convert them to valid multibyte
11366characters, they are converted to Latin-1 characters.
11367
11368** If you try to find a file that is not read-accessible, you now get
11369an error, rather than an empty buffer and a warning.
11370
11371** In the minibuffer history commands M-r and M-s, an upper case
11372letter in the regular expression forces case-sensitive search.
11373
11374** In the *Help* buffer, cross-references to commands and variables
11375are inferred and hyperlinked. Use C-h m in Help mode for the relevant
11376command keys.
11377
11378** M-x apropos-command, with a prefix argument, no longer looks for
11379user option variables--instead it looks for noninteractive functions.
11380
11381Meanwhile, the command apropos-variable normally searches for
11382user option variables; with a prefix argument, it looks at
11383all variables that have documentation.
11384
11385** When you type a long line in the minibuffer, and the minibuffer
11386shows just one line, automatically scrolling works in a special way
11387that shows you overlap with the previous line of text. The variable
11388minibuffer-scroll-overlap controls how many characters of overlap
11389it should show; the default is 20.
11390
11391Meanwhile, Resize Minibuffer mode is still available; in that mode,
11392the minibuffer grows taller (up to a point) as needed to show the whole
11393of your input.
11394
11395** The new command M-x customize-changed-options lets you customize
11396all the options whose meanings or default values have changed in
11397recent Emacs versions. You specify a previous Emacs version number as
11398argument, and the command creates a customization buffer showing all
11399the customizable options which were changed since that version.
11400Newly added options are included as well.
11401
11402If you don't specify a particular version number argument,
11403then the customization buffer shows all the customizable options
11404for which Emacs versions of changes are recorded.
11405
11406This function is also bound to the Changed Options entry in the
11407Customize menu.
11408
11409** When you run M-x grep with a prefix argument, it figures out
11410the tag around point and puts that into the default grep command.
11411
11412** The new command M-* (pop-tag-mark) pops back through a history of
11413buffer positions from which M-. or other tag-finding commands were
11414invoked.
11415
11416** The new variable comment-padding specifies the number of spaces
11417that `comment-region' will insert before the actual text of the comment.
11418The default is 1.
11419
11420** In Fortran mode the characters `.', `_' and `$' now have symbol
11421syntax, not word syntax. Fortran mode now supports `imenu' and has
11422new commands fortran-join-line (M-^) and fortran-narrow-to-subprogram
11423(C-x n d). M-q can be used to fill a statement or comment block
11424sensibly.
11425
11426** GUD now supports jdb, the Java debugger, and pdb, the Python debugger.
11427
11428** If you set the variable add-log-keep-changes-together to a non-nil
11429value, the command `C-x 4 a' will automatically notice when you make
11430two entries in one day for one file, and combine them.
11431
11432** You can use the command M-x diary-mail-entries to mail yourself a
11433reminder about upcoming diary entries. See the documentation string
11434for a sample shell script for calling this function automatically
11435every night.
11436
11437** Desktop changes
11438
11439*** All you need to do to enable use of the Desktop package, is to set
11440the variable desktop-enable to t with Custom.
11441
11442*** Minor modes are now restored. Which minor modes are restored
11443and how modes are restored is controlled by `desktop-minor-mode-table'.
11444
11445** There is no need to do anything special, now, to enable Gnus to
11446read and post multi-lingual articles.
11447
11448** Outline mode has now support for showing hidden outlines when
11449doing an isearch. In order for this to happen search-invisible should
11450be set to open (the default). If an isearch match is inside a hidden
11451outline the outline is made visible. If you continue pressing C-s and
11452the match moves outside the formerly invisible outline, the outline is
11453made invisible again.
11454
11455** Mail reading and sending changes
11456
11457*** The Rmail e command now switches to displaying the whole header of
11458the message before it lets you edit the message. This is so that any
11459changes you make in the header will not be lost if you subsequently
11460toggle.
11461
11462*** The w command in Rmail, which writes the message body into a file,
11463now works in the summary buffer as well. (The command to delete the
11464summary buffer is now Q.) The default file name for the w command, if
11465the message has no subject, is stored in the variable
11466rmail-default-body-file.
11467
11468*** Most of the commands and modes that operate on mail and netnews no
11469longer depend on the value of mail-header-separator. Instead, they
11470handle whatever separator the buffer happens to use.
11471
11472*** If you set mail-signature to a value which is not t, nil, or a string,
11473it should be an expression. When you send a message, this expression
11474is evaluated to insert the signature.
11475
11476*** The new Lisp library feedmail.el (version 8) enhances processing of
11477outbound email messages. It works in coordination with other email
11478handling packages (e.g., rmail, VM, gnus) and is responsible for
11479putting final touches on messages and actually submitting them for
11480transmission. Users of the emacs program "fakemail" might be
11481especially interested in trying feedmail.
11482
11483feedmail is not enabled by default. See comments at the top of
11484feedmail.el for set-up instructions. Among the bigger features
11485provided by feedmail are:
11486
11487**** you can park outgoing messages into a disk-based queue and
11488stimulate sending some or all of them later (handy for laptop users);
11489there is also a queue for draft messages
11490
11491**** you can get one last look at the prepped outbound message and
11492be prompted for confirmation
11493
11494**** does smart filling of address headers
11495
11496**** can generate a MESSAGE-ID: line and a DATE: line; the date can be
11497the time the message was written or the time it is being sent; this
11498can make FCC copies more closely resemble copies that recipients get
11499
11500**** you can specify an arbitrary function for actually transmitting
11501the message; included in feedmail are interfaces for /bin/[r]mail,
11502/usr/lib/sendmail, and Emacs Lisp smtpmail; it's easy to write a new
11503function for something else (10-20 lines of Lisp code).
11504
11505** Dired changes
11506
11507*** The Dired function dired-do-toggle, which toggles marked and unmarked
11508files, is now bound to "t" instead of "T".
11509
11510*** dired-at-point has been added to ffap.el. It allows one to easily
11511run Dired on the directory name at point.
11512
11513*** Dired has a new command: %g. It searches the contents of
11514files in the directory and marks each file that contains a match
11515for a specified regexp.
11516
11517** VC Changes
11518
11519*** New option vc-ignore-vc-files lets you turn off version control
11520conveniently.
11521
11522*** VC Dired has been completely rewritten. It is now much
11523faster, especially for CVS, and works very similar to ordinary
11524Dired.
11525
11526VC Dired is invoked by typing C-x v d and entering the name of the
11527directory to display. By default, VC Dired gives you a recursive
11528listing of all files at or below the given directory which are
11529currently locked (for CVS, all files not up-to-date are shown).
11530
11531You can change the listing format by setting vc-dired-recurse to nil,
11532then it shows only the given directory, and you may also set
11533vc-dired-terse-display to nil, then it shows all files under version
11534control plus the names of any subdirectories, so that you can type `i'
11535on such lines to insert them manually, as in ordinary Dired.
11536
11537All Dired commands operate normally in VC Dired, except for `v', which
11538is redefined as the version control prefix. That means you may type
11539`v l', `v =' etc. to invoke `vc-print-log', `vc-diff' and the like on
11540the file named in the current Dired buffer line. `v v' invokes
11541`vc-next-action' on this file, or on all files currently marked.
11542
11543The new command `v t' (vc-dired-toggle-terse-mode) allows you to
11544toggle between terse display (only locked files) and full display (all
11545VC files plus subdirectories). There is also a special command,
11546`* l', to mark all files currently locked.
11547
11548Giving a prefix argument to C-x v d now does the same thing as in
11549ordinary Dired: it allows you to supply additional options for the ls
11550command in the minibuffer, to fine-tune VC Dired's output.
11551
11552*** Under CVS, if you merge changes from the repository into a working
11553file, and CVS detects conflicts, VC now offers to start an ediff
11554session to resolve them.
11555
11556Alternatively, you can use the new command `vc-resolve-conflicts' to
11557resolve conflicts in a file at any time. It works in any buffer that
11558contains conflict markers as generated by rcsmerge (which is what CVS
11559uses as well).
11560
11561*** You can now transfer changes between branches, using the new
11562command vc-merge (C-x v m). It is implemented for RCS and CVS. When
11563you invoke it in a buffer under version-control, you can specify
11564either an entire branch or a pair of versions, and the changes on that
11565branch or between the two versions are merged into the working file.
11566If this results in any conflicts, they may be resolved interactively,
11567using ediff.
11568
11569** Changes in Font Lock
11570
11571*** The face and variable previously known as font-lock-reference-face
11572are now called font-lock-constant-face to better reflect their typical
11573use for highlighting constants and labels. (Its face properties are
11574unchanged.) The variable font-lock-reference-face remains for now for
11575compatibility reasons, but its value is font-lock-constant-face.
11576
11577** Frame name display changes
11578
11579*** The command set-frame-name lets you set the name of the current
11580frame. You can use the new command select-frame-by-name to select and
11581raise a frame; this is mostly useful on character-only terminals, or
11582when many frames are invisible or iconified.
11583
11584*** On character-only terminal (not a window system), changing the
11585frame name is now reflected on the mode line and in the Buffers/Frames
11586menu.
11587
11588** Comint (subshell) changes
11589
11590*** In Comint modes, the commands to kill, stop or interrupt a
11591subjob now also kill pending input. This is for compatibility
11592with ordinary shells, where the signal characters do this.
11593
11594*** There are new commands in Comint mode.
11595
11596C-c C-x fetches the "next" line from the input history;
11597that is, the line after the last line you got.
11598You can use this command to fetch successive lines, one by one.
11599
11600C-c SPC accumulates lines of input. More precisely, it arranges to
11601send the current line together with the following line, when you send
11602the following line.
11603
11604C-c C-a if repeated twice consecutively now moves to the process mark,
11605which separates the pending input from the subprocess output and the
11606previously sent input.
11607
11608C-c M-r now runs comint-previous-matching-input-from-input;
11609it searches for a previous command, using the current pending input
11610as the search string.
11611
11612*** New option compilation-scroll-output can be set to scroll
11613automatically in compilation-mode windows.
11614
11615** C mode changes
11616
11617*** Multiline macros are now handled, both as they affect indentation,
11618and as recognized syntax. New syntactic symbol cpp-macro-cont is
11619assigned to second and subsequent lines of a multiline macro
11620definition.
11621
11622*** A new style "user" which captures all non-hook-ified
11623(i.e. top-level) .emacs file variable settings and customizations.
11624Style "cc-mode" is an alias for "user" and is deprecated. "gnu"
11625style is still the default however.
11626
11627*** "java" style now conforms to Sun's JDK coding style.
11628
11629*** There are new commands c-beginning-of-defun, c-end-of-defun which
11630are alternatives which you could bind to C-M-a and C-M-e if you prefer
11631them. They do not have key bindings by default.
11632
11633*** New and improved implementations of M-a (c-beginning-of-statement)
11634and M-e (c-end-of-statement).
11635
11636*** C++ namespace blocks are supported, with new syntactic symbols
11637namespace-open, namespace-close, and innamespace.
11638
11639*** File local variable settings of c-file-style and c-file-offsets
11640makes the style variables local to that buffer only.
11641
11642*** New indentation functions c-lineup-close-paren,
11643c-indent-one-line-block, c-lineup-dont-change.
11644
11645*** Improvements (hopefully!) to the way CC Mode is loaded. You
11646should now be able to do a (require 'cc-mode) to get the entire
11647package loaded properly for customization in your .emacs file. A new
11648variable c-initialize-on-load controls this and is t by default.
11649
11650** Changes to hippie-expand.
11651
11652*** New customization variable `hippie-expand-dabbrev-skip-space'. If
11653non-nil, trailing spaces may be included in the abbreviation to search for,
11654which then gives the same behavior as the original `dabbrev-expand'.
11655
11656*** New customization variable `hippie-expand-dabbrev-as-symbol'. If
11657non-nil, characters of syntax '_' is considered part of the word when
11658expanding dynamically.
11659
11660*** New customization variable `hippie-expand-no-restriction'. If
11661non-nil, narrowed buffers are widened before they are searched.
11662
11663*** New customization variable `hippie-expand-only-buffers'. If
11664non-empty, buffers searched are restricted to the types specified in
11665this list. Useful for example when constructing new special-purpose
11666expansion functions with `make-hippie-expand-function'.
11667
11668*** Text properties of the expansion are no longer copied.
11669
11670** Changes in BibTeX mode.
11671
11672*** Any titleword matching a regexp in the new variable
11673bibtex-autokey-titleword-ignore (case sensitive) is ignored during
11674automatic key generation. This replaces variable
11675bibtex-autokey-titleword-first-ignore, which only checked for matches
11676against the first word in the title.
11677
11678*** Autokey generation now uses all words from the title, not just
11679capitalized words. To avoid conflicts with existing customizations,
11680bibtex-autokey-titleword-ignore is set up such that words starting with
11681lowerkey characters will still be ignored. Thus, if you want to use
11682lowercase words from the title, you will have to overwrite the
11683bibtex-autokey-titleword-ignore standard setting.
11684
11685*** Case conversion of names and title words for automatic key
11686generation is more flexible. Variable bibtex-autokey-preserve-case is
11687replaced by bibtex-autokey-titleword-case-convert and
11688bibtex-autokey-name-case-convert.
11689
11690** Changes in vcursor.el.
11691
11692*** Support for character terminals is available: there is a new keymap
11693and the vcursor will appear as an arrow between buffer text. A
11694variable `vcursor-interpret-input' allows input from the vcursor to be
11695entered exactly as if typed. Numerous functions, including
11696`vcursor-compare-windows', have been rewritten to improve consistency
11697in the selection of windows and corresponding keymaps.
11698
11699*** vcursor options can now be altered with M-x customize under the
11700Editing group once the package is loaded.
11701
11702*** Loading vcursor now does not define keys by default, as this is
11703generally a bad side effect. Use M-x customize to set
11704vcursor-key-bindings to t to restore the old behavior.
11705
11706*** vcursor-auto-disable can be `copy', which turns off copying from the
11707vcursor, but doesn't disable it, after any non-vcursor command.
11708
11709** Ispell changes.
11710
11711*** You can now spell check comments and strings in the current
11712buffer with M-x ispell-comments-and-strings. Comments and strings
11713are identified by syntax tables in effect.
11714
11715*** Generic region skipping implemented.
11716A single buffer can be broken into a number of regions where text will
11717and will not be checked. The definitions of the regions can be user
11718defined. New applications and improvements made available by this
11719include:
11720
11721 o URLs are automatically skipped
11722 o EMail message checking is vastly improved.
11723
11724*** Ispell can highlight the erroneous word even on non-window terminals.
11725
11726** Changes to RefTeX mode
11727
11728RefTeX has been updated in order to make it more usable with very
11729large projects (like a several volume math book). The parser has been
11730re-written from scratch. To get maximum speed from RefTeX, check the
11731section `Optimizations' in the manual.
11732
11733*** New recursive parser.
11734
11735The old version of RefTeX created a single large buffer containing the
11736entire multifile document in order to parse the document. The new
11737recursive parser scans the individual files.
11738
11739*** Parsing only part of a document.
11740
11741Reparsing of changed document parts can now be made faster by enabling
11742partial scans. To use this feature, read the documentation string of
11743the variable `reftex-enable-partial-scans' and set the variable to t.
11744
11745 (setq reftex-enable-partial-scans t)
11746
11747*** Storing parsing information in a file.
11748
11749This can improve startup times considerably. To turn it on, use
11750
11751 (setq reftex-save-parse-info t)
11752
11753*** Using multiple selection buffers
11754
11755If the creation of label selection buffers is too slow (this happens
11756for large documents), you can reuse these buffers by setting
11757
11758 (setq reftex-use-multiple-selection-buffers t)
11759
11760*** References to external documents.
11761
11762The LaTeX package `xr' allows to cross-reference labels in external
11763documents. RefTeX can provide information about the external
11764documents as well. To use this feature, set up the \externaldocument
11765macros required by the `xr' package and rescan the document with
11766RefTeX. The external labels can then be accessed with the `x' key in
11767the selection buffer provided by `reftex-reference' (bound to `C-c )').
11768The `x' key also works in the table of contents buffer.
11769
11770*** Many more labeled LaTeX environments are recognized by default.
11771
11772The built-in command list now covers all the standard LaTeX commands,
11773and all of the major packages included in the LaTeX distribution.
11774
11775Also, RefTeX now understands the \appendix macro and changes
11776the enumeration of sections in the *toc* buffer accordingly.
11777
11778*** Mouse support for selection and *toc* buffers
11779
11780The mouse can now be used to select items in the selection and *toc*
11781buffers. See also the new option `reftex-highlight-selection'.
11782
11783*** New keymaps for selection and table of contents modes.
11784
11785The selection processes for labels and citation keys, and the table of
11786contents buffer now have their own keymaps: `reftex-select-label-map',
11787`reftex-select-bib-map', `reftex-toc-map'. The selection processes
11788have a number of new keys predefined. In particular, TAB lets you
11789enter a label with completion. Check the on-the-fly help (press `?'
11790at the selection prompt) or read the Info documentation to find out
11791more.
11792
11793*** Support for the varioref package
11794
11795The `v' key in the label selection buffer toggles \ref versus \vref.
11796
11797*** New hooks
11798
11799Three new hooks can be used to redefine the way labels, references,
11800and citations are created. These hooks are
11801`reftex-format-label-function', `reftex-format-ref-function',
11802`reftex-format-cite-function'.
11803
11804*** Citations outside LaTeX
11805
11806The command `reftex-citation' may also be used outside LaTeX (e.g. in
11807a mail buffer). See the Info documentation for details.
11808
11809*** Short context is no longer fontified.
11810
11811The short context in the label menu no longer copies the
11812fontification from the text in the buffer. If you prefer it to be
11813fontified, use
11814
11815 (setq reftex-refontify-context t)
11816
11817** file-cache-minibuffer-complete now accepts a prefix argument.
11818With a prefix argument, it does not try to do completion of
11819the file name within its directory; it only checks for other
11820directories that contain the same file name.
11821
11822Thus, given the file name Makefile, and assuming that a file
11823Makefile.in exists in the same directory, ordinary
11824file-cache-minibuffer-complete will try to complete Makefile to
11825Makefile.in and will therefore never look for other directories that
11826have Makefile. A prefix argument tells it not to look for longer
11827names such as Makefile.in, so that instead it will look for other
11828directories--just as if the name were already complete in its present
11829directory.
11830
11831** New modes and packages
11832
11833*** There is a new alternative major mode for Perl, Cperl mode.
11834It has many more features than Perl mode, and some people prefer
11835it, but some do not.
11836
11837*** There is a new major mode, M-x vhdl-mode, for editing files of VHDL
11838code.
11839
11840*** M-x which-function-mode enables a minor mode that displays the
11841current function name continuously in the mode line, as you move
11842around in a buffer.
11843
11844Which Function mode is effective in major modes which support Imenu.
11845
11846*** Gametree is a major mode for editing game analysis trees. The author
11847uses it for keeping notes about his postal Chess games, but it should
11848be helpful for other two-player games as well, as long as they have an
11849established system of notation similar to Chess.
11850
11851*** The new minor mode checkdoc-minor-mode provides Emacs Lisp
11852documentation string checking for style and spelling. The style
11853guidelines are found in the Emacs Lisp programming manual.
11854
11855*** The net-utils package makes some common networking features
11856available in Emacs. Some of these functions are wrappers around
11857system utilities (ping, nslookup, etc.); others are implementations of
11858simple protocols (finger, whois) in Emacs Lisp. There are also
11859functions to make simple connections to TCP/IP ports for debugging and
11860the like.
11861
11862*** highlight-changes-mode is a minor mode that uses colors to
11863identify recently changed parts of the buffer text.
11864
11865*** The new package `midnight' lets you specify things to be done
11866within Emacs at midnight--by default, kill buffers that you have not
11867used in a considerable time. To use this feature, customize
11868the user option `midnight-mode' to t.
11869
11870*** The file generic-x.el defines a number of simple major modes.
11871
11872 apache-generic-mode: For Apache and NCSA httpd configuration files
11873 samba-generic-mode: Samba configuration files
11874 fvwm-generic-mode: For fvwm initialization files
11875 x-resource-generic-mode: For X resource files
11876 hosts-generic-mode: For hosts files (.rhosts, /etc/hosts, etc.)
11877 mailagent-rules-generic-mode: For mailagent .rules files
11878 javascript-generic-mode: For JavaScript files
11879 vrml-generic-mode: For VRML files
11880 java-manifest-generic-mode: For Java MANIFEST files
11881 java-properties-generic-mode: For Java property files
11882 mailrc-generic-mode: For .mailrc files
11883
11884 Platform-specific modes:
11885
11886 prototype-generic-mode: For Solaris/Sys V prototype files
11887 pkginfo-generic-mode: For Solaris/Sys V pkginfo files
11888 alias-generic-mode: For C shell alias files
11889 inf-generic-mode: For MS-Windows INF files
11890 ini-generic-mode: For MS-Windows INI files
11891 reg-generic-mode: For MS-Windows Registry files
11892 bat-generic-mode: For MS-Windows BAT scripts
11893 rc-generic-mode: For MS-Windows Resource files
11894 rul-generic-mode: For InstallShield scripts
11895
11896* Lisp changes in Emacs 20.3 since the Emacs Lisp Manual was published
11897
11898** If you want a Lisp file to be read in unibyte mode,
11899use -*-unibyte: t;-*- on its first line.
11900That will force Emacs to read that file in unibyte mode.
11901Otherwise, the file will be loaded and byte-compiled in multibyte mode.
11902
11903Thus, each lisp file is read in a consistent way regardless of whether
11904you started Emacs with --unibyte, so that a Lisp program gives
11905consistent results regardless of how Emacs was started.
11906
11907** The new function assoc-default is useful for searching an alist,
11908and using a default value if the key is not found there. You can
11909specify a comparison predicate, so this function is useful for
11910searching comparing a string against an alist of regular expressions.
11911
11912** The functions unibyte-char-to-multibyte and
11913multibyte-char-to-unibyte convert between unibyte and multibyte
11914character codes, in a way that is appropriate for the current language
11915environment.
11916
11917** The functions read-event, read-char and read-char-exclusive now
11918take two optional arguments. PROMPT, if non-nil, specifies a prompt
11919string. SUPPRESS-INPUT-METHOD, if non-nil, says to disable the
11920current input method for reading this one event.
11921
11922** Two new variables print-escape-nonascii and print-escape-multibyte
11923now control whether to output certain characters as
11924backslash-sequences. print-escape-nonascii applies to single-byte
11925non-ASCII characters; print-escape-multibyte applies to multibyte
11926characters. Both of these variables are used only when printing
11927in readable fashion (prin1 uses them, princ does not).
11928
11929* Lisp changes in Emacs 20.3 before the Emacs Lisp Manual was published
11930
11931** Compiled Emacs Lisp files made with the modified "MBSK" version
11932of Emacs 20.2 do not work in Emacs 20.3.
11933
11934** Buffer positions are now measured in characters, as they were
11935in Emacs 19 and before. This means that (forward-char 1)
11936always increases point by 1.
11937
11938The function chars-in-region now just subtracts its arguments. It is
11939considered obsolete. The function char-boundary-p has been deleted.
11940
11941See below for additional changes relating to multibyte characters.
11942
11943** defcustom, defface and defgroup now accept the keyword `:version'.
11944Use this to specify in which version of Emacs a certain variable's
11945default value changed. For example,
11946
11947 (defcustom foo-max 34 "*Maximum number of foo's allowed."
11948 :type 'integer
11949 :group 'foo
11950 :version "20.3")
11951
11952 (defgroup foo-group nil "The foo group."
11953 :version "20.3")
11954
11955If an entire new group is added or the variables in it have the
11956default values changed, then just add a `:version' to that group. It
11957is recommended that new packages added to the distribution contain a
11958`:version' in the top level group.
11959
11960This information is used to control the customize-changed-options command.
11961
11962** It is now an error to change the value of a symbol whose name
11963starts with a colon--if it is interned in the standard obarray.
11964
11965However, setting such a symbol to its proper value, which is that
11966symbol itself, is not an error. This is for the sake of programs that
11967support previous Emacs versions by explicitly setting these variables
11968to themselves.
11969
11970If you set the variable keyword-symbols-constant-flag to nil,
11971this error is suppressed, and you can set these symbols to any
11972values whatever.
11973
11974** There is a new debugger command, R.
11975It evaluates an expression like e, but saves the result
11976in the buffer *Debugger-record*.
11977
11978** Frame-local variables.
11979
11980You can now make a variable local to various frames. To do this, call
11981the function make-variable-frame-local; this enables frames to have
11982local bindings for that variable.
11983
11984These frame-local bindings are actually frame parameters: you create a
11985frame-local binding in a specific frame by calling
11986modify-frame-parameters and specifying the variable name as the
11987parameter name.
11988
11989Buffer-local bindings take precedence over frame-local bindings.
11990Thus, if the current buffer has a buffer-local binding, that binding is
11991active; otherwise, if the selected frame has a frame-local binding,
11992that binding is active; otherwise, the default binding is active.
11993
11994It would not be hard to implement window-local bindings, but it is not
11995clear that this would be very useful; windows tend to come and go in a
11996very transitory fashion, so that trying to produce any specific effect
11997through a window-local binding would not be very robust.
11998
11999** `sregexq' and `sregex' are two new functions for constructing
12000"symbolic regular expressions." These are Lisp expressions that, when
12001evaluated, yield conventional string-based regexps. The symbolic form
12002makes it easier to construct, read, and maintain complex patterns.
12003See the documentation in sregex.el.
12004
12005** parse-partial-sexp's return value has an additional element which
12006is used to pass information along if you pass it to another call to
12007parse-partial-sexp, starting its scan where the first call ended.
12008The contents of this field are not yet finalized.
12009
12010** eval-region now accepts a fourth optional argument READ-FUNCTION.
12011If it is non-nil, that function is used instead of `read'.
12012
12013** unload-feature by default removes the feature's functions from
12014known hooks to avoid trouble, but a package providing FEATURE can
12015define a hook FEATURE-unload-hook to be run by unload-feature instead.
12016
12017** read-from-minibuffer no longer returns the argument DEFAULT-VALUE
12018when the user enters empty input. It now returns the null string, as
12019it did in Emacs 19. The default value is made available in the
12020history via M-n, but it is not applied here as a default.
12021
12022The other, more specialized minibuffer-reading functions continue to
12023return the default value (not the null string) when the user enters
12024empty input.
12025
12026** The new variable read-buffer-function controls which routine to use
12027for selecting buffers. For example, if you set this variable to
12028`iswitchb-read-buffer', iswitchb will be used to read buffer names.
12029Other functions can also be used if they accept the same arguments as
12030`read-buffer' and return the selected buffer name as a string.
12031
12032** The new function read-passwd reads a password from the terminal,
12033echoing a period for each character typed. It takes three arguments:
12034a prompt string, a flag which says "read it twice to make sure", and a
12035default password to use if the user enters nothing.
12036
12037** The variable fill-nobreak-predicate gives major modes a way to
12038specify not to break a line at certain places. Its value is a
12039function which is called with no arguments, with point located at the
12040place where a break is being considered. If the function returns
12041non-nil, then the line won't be broken there.
12042
12043** window-end now takes an optional second argument, UPDATE.
12044If this is non-nil, then the function always returns an accurate
12045up-to-date value for the buffer position corresponding to the
12046end of the window, even if this requires computation.
12047
12048** other-buffer now takes an optional argument FRAME
12049which specifies which frame's buffer list to use.
12050If it is nil, that means use the selected frame's buffer list.
12051
12052** The new variable buffer-display-time, always local in every buffer,
12053holds the value of (current-time) as of the last time that a window
12054was directed to display this buffer.
12055
12056** It is now meaningful to compare two window-configuration objects
12057with `equal'. Two window-configuration objects are equal if they
12058describe equivalent arrangements of windows, in the same frame--in
12059other words, if they would give the same results if passed to
12060set-window-configuration.
12061
12062** compare-window-configurations is a new function that compares two
12063window configurations loosely. It ignores differences in saved buffer
12064positions and scrolling, and considers only the structure and sizes of
12065windows and the choice of buffers to display.
12066
12067** The variable minor-mode-overriding-map-alist allows major modes to
12068override the key bindings of a minor mode. The elements of this alist
12069look like the elements of minor-mode-map-alist: (VARIABLE . KEYMAP).
12070
12071If the VARIABLE in an element of minor-mode-overriding-map-alist has a
12072non-nil value, the paired KEYMAP is active, and totally overrides the
12073map (if any) specified for the same variable in minor-mode-map-alist.
12074
12075minor-mode-overriding-map-alist is automatically local in all buffers,
12076and it is meant to be set by major modes.
12077
12078** The function match-string-no-properties is like match-string
12079except that it discards all text properties from the result.
12080
12081** The function load-average now accepts an optional argument
12082USE-FLOATS. If it is non-nil, the load average values are returned as
12083floating point numbers, rather than as integers to be divided by 100.
12084
12085** The new variable temporary-file-directory specifies the directory
12086to use for creating temporary files. The default value is determined
12087in a reasonable way for your operating system; on GNU and Unix systems
12088it is based on the TMP and TMPDIR environment variables.
12089
12090** Menu changes
12091
12092*** easymenu.el now uses the new menu item format and supports the
12093keywords :visible and :filter. The existing keyword :keys is now
12094better supported.
12095
12096The variable `easy-menu-precalculate-equivalent-keybindings' controls
12097a new feature which calculates keyboard equivalents for the menu when
12098you define the menu. The default is t. If you rarely use menus, you
12099can set the variable to nil to disable this precalculation feature;
12100then the calculation is done only if you use the menu bar.
12101
12102*** A new format for menu items is supported.
12103
12104In a keymap, a key binding that has the format
12105 (STRING . REAL-BINDING) or (STRING HELP-STRING . REAL-BINDING)
12106defines a menu item. Now a menu item definition may also be a list that
12107starts with the symbol `menu-item'.
12108
12109The format is:
12110 (menu-item ITEM-NAME) or
12111 (menu-item ITEM-NAME REAL-BINDING . ITEM-PROPERTY-LIST)
12112where ITEM-NAME is an expression which evaluates to the menu item
12113string, and ITEM-PROPERTY-LIST has the form of a property list.
12114The supported properties include
12115
12116:enable FORM Evaluate FORM to determine whether the
12117 item is enabled.
12118:visible FORM Evaluate FORM to determine whether the
12119 item should appear in the menu.
12120:filter FILTER-FN
12121 FILTER-FN is a function of one argument,
12122 which will be REAL-BINDING.
12123 It should return a binding to use instead.
12124:keys DESCRIPTION
12125 DESCRIPTION is a string that describes an equivalent keyboard
12126 binding for REAL-BINDING. DESCRIPTION is expanded with
12127 `substitute-command-keys' before it is used.
12128:key-sequence KEY-SEQUENCE
12129 KEY-SEQUENCE is a key-sequence for an equivalent
12130 keyboard binding.
12131:key-sequence nil
12132 This means that the command normally has no
12133 keyboard equivalent.
12134:help HELP HELP is the extra help string (not currently used).
12135:button (TYPE . SELECTED)
12136 TYPE is :toggle or :radio.
12137 SELECTED is a form, to be evaluated, and its
12138 value says whether this button is currently selected.
12139
12140Buttons are at the moment only simulated by prefixes in the menu.
12141Eventually ordinary X-buttons may be supported.
12142
12143(menu-item ITEM-NAME) defines unselectable item.
12144
12145** New event types
12146
12147*** The new event type `mouse-wheel' is generated by a wheel on a
12148mouse (such as the MS Intellimouse). The event contains a delta that
12149corresponds to the amount and direction that the wheel is rotated,
12150which is typically used to implement a scroll or zoom. The format is:
12151
12152 (mouse-wheel POSITION DELTA)
12153
12154where POSITION is a list describing the position of the event in the
12155same format as a mouse-click event, and DELTA is a signed number
12156indicating the number of increments by which the wheel was rotated. A
12157negative DELTA indicates that the wheel was rotated backwards, towards
12158the user, and a positive DELTA indicates that the wheel was rotated
12159forward, away from the user.
12160
12161As of now, this event type is generated only on MS Windows.
12162
12163*** The new event type `drag-n-drop' is generated when a group of
12164files is selected in an application outside of Emacs, and then dragged
12165and dropped onto an Emacs frame. The event contains a list of
12166filenames that were dragged and dropped, which are then typically
12167loaded into Emacs. The format is:
12168
12169 (drag-n-drop POSITION FILES)
12170
12171where POSITION is a list describing the position of the event in the
12172same format as a mouse-click event, and FILES is the list of filenames
12173that were dragged and dropped.
12174
12175As of now, this event type is generated only on MS Windows.
12176
12177** Changes relating to multibyte characters.
12178
12179*** The variable enable-multibyte-characters is now read-only;
12180any attempt to set it directly signals an error. The only way
12181to change this value in an existing buffer is with set-buffer-multibyte.
12182
12183*** In a string constant, `\ ' now stands for "nothing at all". You
12184can use it to terminate a hex escape which is followed by a character
12185that could otherwise be read as part of the hex escape.
12186
12187*** String indices are now measured in characters, as they were
12188in Emacs 19 and before.
12189
12190The function chars-in-string has been deleted.
12191The function concat-chars has been renamed to `string'.
12192
12193*** The function set-buffer-multibyte sets the flag in the current
12194buffer that says whether the buffer uses multibyte representation or
12195unibyte representation. If the argument is nil, it selects unibyte
12196representation. Otherwise it selects multibyte representation.
12197
12198This function does not change the contents of the buffer, viewed
12199as a sequence of bytes. However, it does change the contents
12200viewed as characters; a sequence of two bytes which is treated as
12201one character when the buffer uses multibyte representation
12202will count as two characters using unibyte representation.
12203
12204This function sets enable-multibyte-characters to record which
12205representation is in use. It also adjusts various data in the buffer
12206(including its markers, overlays and text properties) so that they are
12207consistent with the new representation.
12208
12209*** string-make-multibyte takes a string and converts it to multibyte
12210representation. Most of the time, you don't need to care
12211about the representation, because Emacs converts when necessary;
12212however, it makes a difference when you compare strings.
12213
12214The conversion of non-ASCII characters works by adding the value of
12215nonascii-insert-offset to each character, or by translating them
12216using the table nonascii-translation-table.
12217
12218*** string-make-unibyte takes a string and converts it to unibyte
12219representation. Most of the time, you don't need to care about the
12220representation, but it makes a difference when you compare strings.
12221
12222The conversion from multibyte to unibyte representation
12223loses information; the only time Emacs performs it automatically
12224is when inserting a multibyte string into a unibyte buffer.
12225
12226*** string-as-multibyte takes a string, and returns another string
12227which contains the same bytes, but treats them as multibyte.
12228
12229*** string-as-unibyte takes a string, and returns another string
12230which contains the same bytes, but treats them as unibyte.
12231
12232*** The new function compare-strings lets you compare
12233portions of two strings. Unibyte strings are converted to multibyte,
12234so that a unibyte string can match a multibyte string.
12235You can specify whether to ignore case or not.
12236
12237*** assoc-ignore-case now uses compare-strings so that
12238it can treat unibyte and multibyte strings as equal.
12239
12240*** Regular expression operations and buffer string searches now
12241convert the search pattern to multibyte or unibyte to accord with the
12242buffer or string being searched.
12243
12244One consequence is that you cannot always use \200-\377 inside of
12245[...] to match all non-ASCII characters. This does still work when
12246searching or matching a unibyte buffer or string, but not when
12247searching or matching a multibyte string. Unfortunately, there is no
12248obvious choice of syntax to use within [...] for that job. But, what
12249you want is just to match all non-ASCII characters, the regular
12250expression [^\0-\177] works for it.
12251
12252*** Structure of coding system changed.
12253
12254All coding systems (including aliases and subsidiaries) are named
12255by symbols; the symbol's `coding-system' property is a vector
12256which defines the coding system. Aliases share the same vector
12257as the principal name, so that altering the contents of this
12258vector affects the principal name and its aliases. You can define
12259your own alias name of a coding system by the function
12260define-coding-system-alias.
12261
12262The coding system definition includes a property list of its own. Use
12263the new functions `coding-system-get' and `coding-system-put' to
12264access such coding system properties as post-read-conversion,
12265pre-write-conversion, character-translation-table-for-decode,
12266character-translation-table-for-encode, mime-charset, and
12267safe-charsets. For instance, (coding-system-get 'iso-latin-1
12268'mime-charset) gives the corresponding MIME-charset parameter
12269`iso-8859-1'.
12270
12271Among the coding system properties listed above, safe-charsets is new.
12272The value of this property is a list of character sets which this
12273coding system can correctly encode and decode. For instance:
12274(coding-system-get 'iso-latin-1 'safe-charsets) => (ascii latin-iso8859-1)
12275
12276Here, "correctly encode" means that the encoded character sets can
12277also be handled safely by systems other than Emacs as far as they
12278are capable of that coding system. Though, Emacs itself can encode
12279the other character sets and read it back correctly.
12280
12281*** The new function select-safe-coding-system can be used to find a
12282proper coding system for encoding the specified region or string.
12283This function requires a user interaction.
12284
12285*** The new functions find-coding-systems-region and
12286find-coding-systems-string are helper functions used by
12287select-safe-coding-system. They return a list of all proper coding
12288systems to encode a text in some region or string. If you don't want
12289a user interaction, use one of these functions instead of
12290select-safe-coding-system.
12291
12292*** The explicit encoding and decoding functions, such as
12293decode-coding-region and encode-coding-string, now set
12294last-coding-system-used to reflect the actual way encoding or decoding
12295was done.
12296
12297*** The new function detect-coding-with-language-environment can be
12298used to detect a coding system of text according to priorities of
12299coding systems used by some specific language environment.
12300
12301*** The functions detect-coding-region and detect-coding-string always
12302return a list if the arg HIGHEST is nil. Thus, if only ASCII
12303characters are found, they now return a list of single element
12304`undecided' or its subsidiaries.
12305
12306*** The new functions coding-system-change-eol-conversion and
12307coding-system-change-text-conversion can be used to get a different
12308coding system than what specified only in how end-of-line or text is
12309converted.
12310
12311*** The new function set-selection-coding-system can be used to set a
12312coding system for communicating with other X clients.
12313
12314*** The function `map-char-table' now passes as argument only valid
12315character codes, plus generic characters that stand for entire
12316character sets or entire subrows of a character set. In other words,
12317each time `map-char-table' calls its FUNCTION argument, the key value
12318either will be a valid individual character code, or will stand for a
12319range of characters.
12320
12321*** The new function `char-valid-p' can be used for checking whether a
12322Lisp object is a valid character code or not.
12323
12324*** The new function `charset-after' returns a charset of a character
12325in the current buffer at position POS.
12326
12327*** Input methods are now implemented using the variable
12328input-method-function. If this is non-nil, its value should be a
12329function; then, whenever Emacs reads an input event that is a printing
12330character with no modifier bits, it calls that function, passing the
12331event as an argument. Often this function will read more input, first
12332binding input-method-function to nil.
12333
12334The return value should be a list of the events resulting from input
12335method processing. These events will be processed sequentially as
12336input, before resorting to unread-command-events. Events returned by
12337the input method function are not passed to the input method function,
12338not even if they are printing characters with no modifier bits.
12339
12340The input method function is not called when reading the second and
12341subsequent events of a key sequence.
12342
12343*** You can customize any language environment by using
12344set-language-environment-hook and exit-language-environment-hook.
12345
12346The hook `exit-language-environment-hook' should be used to undo
12347customizations that you made with set-language-environment-hook. For
12348instance, if you set up a special key binding for a specific language
12349environment by set-language-environment-hook, you should set up
12350exit-language-environment-hook to restore the normal key binding.
12351
12352* Changes in Emacs 20.1
12353
12354** Emacs has a new facility for customization of its many user
12355options. It is called M-x customize. With this facility you can look
12356at the many user options in an organized way; they are grouped into a
12357tree structure.
12358
12359M-x customize also knows what sorts of values are legitimate for each
12360user option and ensures that you don't use invalid values.
12361
12362With M-x customize, you can set options either for the present Emacs
12363session or permanently. (Permanent settings are stored automatically
12364in your .emacs file.)
12365
12366** Scroll bars are now on the left side of the window.
12367You can change this with M-x customize-option scroll-bar-mode.
12368
12369** The mode line no longer includes the string `Emacs'.
12370This makes more space in the mode line for other information.
12371
12372** When you select a region with the mouse, it is highlighted
12373immediately afterward. At that time, if you type the DELETE key, it
12374kills the region.
12375
12376The BACKSPACE key, and the ASCII character DEL, do not do this; they
12377delete the character before point, as usual.
12378
12379** In an incremental search the whole current match is highlighted
12380on terminals which support this. (You can disable this feature
12381by setting search-highlight to nil.)
12382
12383** In the minibuffer, in some cases, you can now use M-n to
12384insert the default value into the minibuffer as text. In effect,
12385the default value (if the minibuffer routines know it) is tacked
12386onto the history "in the future". (The more normal use of the
12387history list is to use M-p to insert minibuffer input used in the
12388past.)
12389
12390** In Text mode, now only blank lines separate paragraphs.
12391This makes it possible to get the full benefit of Adaptive Fill mode
12392in Text mode, and other modes derived from it (such as Mail mode).
12393TAB in Text mode now runs the command indent-relative; this
12394makes a practical difference only when you use indented paragraphs.
12395
12396As a result, the old Indented Text mode is now identical to Text mode,
12397and is an alias for it.
12398
12399If you want spaces at the beginning of a line to start a paragraph,
12400use the new mode, Paragraph Indent Text mode.
12401
12402** Scrolling changes
12403
12404*** Scroll commands to scroll a whole screen now preserve the screen
12405position of the cursor, if scroll-preserve-screen-position is non-nil.
12406
12407In this mode, if you scroll several screens back and forth, finishing
12408on the same screen where you started, the cursor goes back to the line
12409where it started.
12410
12411*** If you set scroll-conservatively to a small number, then when you
12412move point a short distance off the screen, Emacs will scroll the
12413screen just far enough to bring point back on screen, provided that
12414does not exceed `scroll-conservatively' lines.
12415
12416*** The new variable scroll-margin says how close point can come to the
12417top or bottom of a window. It is a number of screen lines; if point
12418comes within that many lines of the top or bottom of the window, Emacs
12419recenters the window.
12420
12421** International character set support (MULE)
12422
12423Emacs now supports a wide variety of international character sets,
12424including European variants of the Latin alphabet, as well as Chinese,
12425Devanagari (Hindi and Marathi), Ethiopian, Greek, IPA, Japanese,
12426Korean, Lao, Russian, Thai, Tibetan, and Vietnamese scripts. These
12427features have been merged from the modified version of Emacs known as
12428MULE (for "MULti-lingual Enhancement to GNU Emacs")
12429
12430Users of these scripts have established many more-or-less standard
12431coding systems for storing files. Emacs uses a single multibyte
12432character encoding within Emacs buffers; it can translate from a wide
12433variety of coding systems when reading a file and can translate back
12434into any of these coding systems when saving a file.
12435
12436Keyboards, even in the countries where these character sets are used,
12437generally don't have keys for all the characters in them. So Emacs
12438supports various "input methods", typically one for each script or
12439language, to make it possible to type them.
12440
12441The Emacs internal multibyte encoding represents a non-ASCII
12442character as a sequence of bytes in the range 0200 through 0377.
12443
12444The new prefix key C-x RET is used for commands that pertain
12445to multibyte characters, coding systems, and input methods.
12446
12447You can disable multibyte character support as follows:
12448
12449 (setq-default enable-multibyte-characters nil)
12450
12451Calling the function standard-display-european turns off multibyte
12452characters, unless you specify a non-nil value for the second
12453argument, AUTO. This provides compatibility for people who are
12454already using standard-display-european to continue using unibyte
12455characters for their work until they want to change.
12456
12457*** Input methods
12458
12459An input method is a kind of character conversion which is designed
12460specifically for interactive input. In Emacs, typically each language
12461has its own input method (though sometimes several languages which use
12462the same characters can share one input method). Some languages
12463support several input methods.
12464
12465The simplest kind of input method works by mapping ASCII letters into
12466another alphabet. This is how the Greek and Russian input methods
12467work.
12468
12469A more powerful technique is composition: converting sequences of
12470characters into one letter. Many European input methods use
12471composition to produce a single non-ASCII letter from a sequence which
12472consists of a letter followed by diacritics. For example, a' is one
12473sequence of two characters that might be converted into a single
12474letter.
12475
12476The input methods for syllabic scripts typically use mapping followed
12477by conversion. The input methods for Thai and Korean work this way.
12478First, letters are mapped into symbols for particular sounds or tone
12479marks; then, sequences of these which make up a whole syllable are
12480mapped into one syllable sign--most often a "composite character".
12481
12482None of these methods works very well for Chinese and Japanese, so
12483they are handled specially. First you input a whole word using
12484phonetic spelling; then, after the word is in the buffer, Emacs
12485converts it into one or more characters using a large dictionary.
12486
12487Since there is more than one way to represent a phonetically spelled
12488word using Chinese characters, Emacs can only guess which one to use;
12489typically these input methods give you a way to say "guess again" if
12490the first guess is wrong.
12491
12492*** The command C-x RET m (toggle-enable-multibyte-characters)
12493turns multibyte character support on or off for the current buffer.
12494
12495If multibyte character support is turned off in a buffer, then each
12496byte is a single character, even codes 0200 through 0377--exactly as
12497they did in Emacs 19.34. This includes the features for support for
12498the European characters, ISO Latin-1 and ISO Latin-2.
12499
12500However, there is no need to turn off multibyte character support to
12501use ISO Latin-1 or ISO Latin-2; the Emacs multibyte character set
12502includes all the characters in these character sets, and Emacs can
12503translate automatically to and from either one.
12504
12505*** Visiting a file in unibyte mode.
12506
12507Turning off multibyte character support in the buffer after visiting a
12508file with multibyte code conversion will display the multibyte
12509sequences already in the buffer, byte by byte. This is probably not
12510what you want.
12511
12512If you want to edit a file of unibyte characters (Latin-1, for
12513example), you can do it by specifying `no-conversion' as the coding
12514system when reading the file. This coding system also turns off
12515multibyte characters in that buffer.
12516
12517If you turn off multibyte character support entirely, this turns off
12518character conversion as well.
12519
12520*** Displaying international characters on X Windows.
12521
12522A font for X typically displays just one alphabet or script.
12523Therefore, displaying the entire range of characters Emacs supports
12524requires using many fonts.
12525
12526Therefore, Emacs now supports "fontsets". Each fontset is a
12527collection of fonts, each assigned to a range of character codes.
12528
12529A fontset has a name, like a font. Individual fonts are defined by
12530the X server; fontsets are defined within Emacs itself. But once you
12531have defined a fontset, you can use it in a face or a frame just as
12532you would use a font.
12533
12534If a fontset specifies no font for a certain character, or if it
12535specifies a font that does not exist on your system, then it cannot
12536display that character. It will display an empty box instead.
12537
12538The fontset height and width are determined by the ASCII characters
12539(that is, by the font in the fontset which is used for ASCII
12540characters).
12541
12542*** Defining fontsets.
12543
12544Emacs does not use any fontset by default. Its default font is still
12545chosen as in previous versions. You can tell Emacs to use a fontset
12546with the `-fn' option or the `Font' X resource.
12547
12548Emacs creates a standard fontset automatically according to the value
12549of standard-fontset-spec. This fontset's short name is
12550`fontset-standard'. Bold, italic, and bold-italic variants of the
12551standard fontset are created automatically.
12552
12553If you specify a default ASCII font with the `Font' resource or `-fn'
12554argument, a fontset is generated from it. This works by replacing the
12555FOUNDARY, FAMILY, ADD_STYLE, and AVERAGE_WIDTH fields of the font name
12556with `*' then using this to specify a fontset. This fontset's short
12557name is `fontset-startup'.
12558
12559Emacs checks resources of the form Fontset-N where N is 0, 1, 2...
12560The resource value should have this form:
12561 FONTSET-NAME, [CHARSET-NAME:FONT-NAME]...
12562FONTSET-NAME should have the form of a standard X font name, except:
12563 * most fields should be just the wild card "*".
12564 * the CHARSET_REGISTRY field should be "fontset"
12565 * the CHARSET_ENCODING field can be any nickname of the fontset.
12566The construct CHARSET-NAME:FONT-NAME can be repeated any number
12567of times; each time specifies the font for one character set.
12568CHARSET-NAME should be the name of a character set, and FONT-NAME
12569should specify an actual font to use for that character set.
12570
12571Each of these fontsets has an alias which is made from the
12572last two font name fields, CHARSET_REGISTRY and CHARSET_ENCODING.
12573You can refer to the fontset by that alias or by its full name.
12574
12575For any character sets that you don't mention, Emacs tries to choose a
12576font by substituting into FONTSET-NAME. For instance, with the
12577following resource,
12578 Emacs*Fontset-0: -*-fixed-medium-r-normal-*-24-*-*-*-*-*-fontset-24
12579the font for ASCII is generated as below:
12580 -*-fixed-medium-r-normal-*-24-*-ISO8859-1
12581Here is the substitution rule:
12582 Change CHARSET_REGISTRY and CHARSET_ENCODING to that of the charset
12583 defined in the variable x-charset-registries. For instance, ASCII has
12584 the entry (ascii . "ISO8859-1") in this variable. Then, reduce
12585 sequences of wild cards -*-...-*- with a single wildcard -*-.
12586 (This is to prevent use of auto-scaled fonts.)
12587
12588The function which processes the fontset resource value to create the
12589fontset is called create-fontset-from-fontset-spec. You can also call
12590that function explicitly to create a fontset.
12591
12592With the X resource Emacs.Font, you can specify a fontset name just
12593like an actual font name. But be careful not to specify a fontset
12594name in a wildcard resource like Emacs*Font--that tries to specify the
12595fontset for other purposes including menus, and they cannot handle
12596fontsets.
12597
12598*** The command M-x set-language-environment sets certain global Emacs
12599defaults for a particular choice of language.
12600
12601Selecting a language environment typically specifies a default input
12602method and which coding systems to recognize automatically when
12603visiting files. However, it does not try to reread files you have
12604already visited; the text in those buffers is not affected. The
12605language environment may also specify a default choice of coding
12606system for new files that you create.
12607
12608It makes no difference which buffer is current when you use
12609set-language-environment, because these defaults apply globally to the
12610whole Emacs session.
12611
12612For example, M-x set-language-environment RET Latin-1 RET
12613chooses the Latin-1 character set. In the .emacs file, you can do this
12614with (set-language-environment "Latin-1").
12615
12616*** The command C-x RET f (set-buffer-file-coding-system)
12617specifies the file coding system for the current buffer. This
12618specifies what sort of character code translation to do when saving
12619the file. As an argument, you must specify the name of one of the
12620coding systems that Emacs supports.
12621
12622*** The command C-x RET c (universal-coding-system-argument)
12623lets you specify a coding system when you read or write a file.
12624This command uses the minibuffer to read a coding system name.
12625After you exit the minibuffer, the specified coding system
12626is used for *the immediately following command*.
12627
12628So if the immediately following command is a command to read or
12629write a file, it uses the specified coding system for that file.
12630
12631If the immediately following command does not use the coding system,
12632then C-x RET c ultimately has no effect.
12633
12634For example, C-x RET c iso-8859-1 RET C-x C-f temp RET
12635visits the file `temp' treating it as ISO Latin-1.
12636
12637*** You can specify the coding system for a file using the -*-
12638construct. Include `coding: CODINGSYSTEM;' inside the -*-...-*-
12639to specify use of coding system CODINGSYSTEM. You can also
12640specify the coding system in a local variable list at the end
12641of the file.
12642
12643*** The command C-x RET t (set-terminal-coding-system) specifies
12644the coding system for terminal output. If you specify a character
12645code for terminal output, all characters output to the terminal are
12646translated into that character code.
12647
12648This feature is useful for certain character-only terminals built in
12649various countries to support the languages of those countries.
12650
12651By default, output to the terminal is not translated at all.
12652
12653*** The command C-x RET k (set-keyboard-coding-system) specifies
12654the coding system for keyboard input.
12655
12656Character code translation of keyboard input is useful for terminals
12657with keys that send non-ASCII graphic characters--for example,
12658some terminals designed for ISO Latin-1 or subsets of it.
12659
12660By default, keyboard input is not translated at all.
12661
12662Character code translation of keyboard input is similar to using an
12663input method, in that both define sequences of keyboard input that
12664translate into single characters. However, input methods are designed
12665to be convenient for interactive use, while the code translations are
12666designed to work with terminals.
12667
12668*** The command C-x RET p (set-buffer-process-coding-system)
12669specifies the coding system for input and output to a subprocess.
12670This command applies to the current buffer; normally, each subprocess
12671has its own buffer, and thus you can use this command to specify
12672translation to and from a particular subprocess by giving the command
12673in the corresponding buffer.
12674
12675By default, process input and output are not translated at all.
12676
12677*** The variable file-name-coding-system specifies the coding system
12678to use for encoding file names before operating on them.
12679It is also used for decoding file names obtained from the system.
12680
12681*** The command C-\ (toggle-input-method) activates or deactivates
12682an input method. If no input method has been selected before, the
12683command prompts for you to specify the language and input method you
12684want to use.
12685
12686C-u C-\ (select-input-method) lets you switch to a different input
12687method. C-h C-\ (or C-h I) describes the current input method.
12688
12689*** Some input methods remap the keyboard to emulate various keyboard
12690layouts commonly used for particular scripts. How to do this
12691remapping properly depends on your actual keyboard layout. To specify
12692which layout your keyboard has, use M-x quail-set-keyboard-layout.
12693
12694*** The command C-h C (describe-coding-system) displays
12695the coding systems currently selected for various purposes, plus
12696related information.
12697
12698*** The command C-h h (view-hello-file) displays a file called
12699HELLO, which has examples of text in many languages, using various
12700scripts.
12701
12702*** The command C-h L (describe-language-support) displays
12703information about the support for a particular language.
12704You specify the language as an argument.
12705
12706*** The mode line now contains a letter or character that identifies
12707the coding system used in the visited file. It normally follows the
12708first dash.
12709
12710A dash indicates the default state of affairs: no code conversion
12711(except CRLF => newline if appropriate). `=' means no conversion
12712whatsoever. The ISO 8859 coding systems are represented by digits
127131 through 9. Other coding systems are represented by letters:
12714
12715 A alternativnyj (Russian)
12716 B big5 (Chinese)
12717 C cn-gb-2312 (Chinese)
12718 C iso-2022-cn (Chinese)
12719 D in-is13194-devanagari (Indian languages)
12720 E euc-japan (Japanese)
12721 I iso-2022-cjk or iso-2022-ss2 (Chinese, Japanese, Korean)
12722 J junet (iso-2022-7) or old-jis (iso-2022-jp-1978-irv) (Japanese)
12723 K euc-korea (Korean)
12724 R koi8 (Russian)
12725 Q tibetan
12726 S shift_jis (Japanese)
12727 T lao
12728 T tis620 (Thai)
12729 V viscii or vscii (Vietnamese)
12730 i iso-2022-lock (Chinese, Japanese, Korean)
12731 k iso-2022-kr (Korean)
12732 v viqr (Vietnamese)
12733 z hz (Chinese)
12734
12735When you are using a character-only terminal (not a window system),
12736two additional characters appear in between the dash and the file
12737coding system. These two characters describe the coding system for
12738keyboard input, and the coding system for terminal output.
12739
12740*** The new variable rmail-file-coding-system specifies the code
12741conversion to use for RMAIL files. The default value is nil.
12742
12743When you read mail with Rmail, each message is decoded automatically
12744into Emacs' internal format. This has nothing to do with
12745rmail-file-coding-system. That variable controls reading and writing
12746Rmail files themselves.
12747
12748*** The new variable sendmail-coding-system specifies the code
12749conversion for outgoing mail. The default value is nil.
12750
12751Actually, there are three different ways of specifying the coding system
12752for sending mail:
12753
12754- If you use C-x RET f in the mail buffer, that takes priority.
12755- Otherwise, if you set sendmail-coding-system non-nil, that specifies it.
12756- Otherwise, the default coding system for new files is used,
12757 if that is non-nil. That comes from your language environment.
12758- Otherwise, Latin-1 is used.
12759
12760*** The command C-h t (help-with-tutorial) accepts a prefix argument
12761to specify the language for the tutorial file. Currently, English,
12762Japanese, Korean and Thai are supported. We welcome additional
12763translations.
12764
12765** An easy new way to visit a file with no code or format conversion
12766of any kind: Use M-x find-file-literally. There is also a command
12767insert-file-literally which inserts a file into the current buffer
12768without any conversion.
12769
12770** C-q's handling of octal character codes is changed.
12771You can now specify any number of octal digits.
12772RET terminates the digits and is discarded;
12773any other non-digit terminates the digits and is then used as input.
12774
12775** There are new commands for looking up Info documentation for
12776functions, variables and file names used in your programs.
12777
12778Type M-x info-lookup-symbol to look up a symbol in the buffer at point.
12779Type M-x info-lookup-file to look up a file in the buffer at point.
12780
12781Precisely which Info files are used to look it up depends on the major
12782mode. For example, in C mode, the GNU libc manual is used.
12783
12784** M-TAB in most programming language modes now runs the command
12785complete-symbol. This command performs completion on the symbol name
12786in the buffer before point.
12787
12788With a numeric argument, it performs completion based on the set of
12789symbols documented in the Info files for the programming language that
12790you are using.
12791
12792With no argument, it does completion based on the current tags tables,
12793just like the old binding of M-TAB (complete-tag).
12794
12795** File locking works with NFS now.
12796
12797The lock file for FILENAME is now a symbolic link named .#FILENAME,
12798in the same directory as FILENAME.
12799
12800This means that collision detection between two different machines now
12801works reasonably well; it also means that no file server or directory
12802can become a bottleneck.
12803
12804The new method does have drawbacks. It means that collision detection
12805does not operate when you edit a file in a directory where you cannot
12806create new files. Collision detection also doesn't operate when the
12807file server does not support symbolic links. But these conditions are
12808rare, and the ability to have collision detection while using NFS is
12809so useful that the change is worth while.
12810
12811When Emacs or a system crashes, this may leave behind lock files which
12812are stale. So you may occasionally get warnings about spurious
12813collisions. When you determine that the collision is spurious, just
12814tell Emacs to go ahead anyway.
12815
12816** If you wish to use Show Paren mode to display matching parentheses,
12817it is no longer sufficient to load paren.el. Instead you must call
12818show-paren-mode.
12819
12820** If you wish to use Delete Selection mode to replace a highlighted
12821selection when you insert new text, it is no longer sufficient to load
12822delsel.el. Instead you must call the function delete-selection-mode.
12823
12824** If you wish to use Partial Completion mode to complete partial words
12825within symbols or filenames, it is no longer sufficient to load
12826complete.el. Instead you must call the function partial-completion-mode.
12827
12828** If you wish to use uniquify to rename buffers for you,
12829it is no longer sufficient to load uniquify.el. You must also
12830set uniquify-buffer-name-style to one of the non-nil legitimate values.
12831
12832** Changes in View mode.
12833
12834*** Several new commands are available in View mode.
12835Do H in view mode for a list of commands.
12836
12837*** There are two new commands for entering View mode:
12838view-file-other-frame and view-buffer-other-frame.
12839
12840*** Exiting View mode does a better job of restoring windows to their
12841previous state.
12842
12843*** New customization variable view-scroll-auto-exit. If non-nil,
12844scrolling past end of buffer makes view mode exit.
12845
12846*** New customization variable view-exits-all-viewing-windows. If
12847non-nil, view-mode will at exit restore all windows viewing buffer,
12848not just the selected window.
12849
12850*** New customization variable view-read-only. If non-nil, visiting a
12851read-only file automatically enters View mode, and toggle-read-only
12852turns View mode on or off.
12853
12854*** New customization variable view-remove-frame-by-deleting controls
12855how to remove a not needed frame at view mode exit. If non-nil,
12856delete the frame, if nil make an icon of it.
12857
12858** C-x v l, the command to print a file's version control log,
12859now positions point at the entry for the file's current branch version.
12860
12861** C-x v =, the command to compare a file with the last checked-in version,
12862has a new feature. If the file is currently not locked, so that it is
12863presumably identical to the last checked-in version, the command now asks
12864which version to compare with.
12865
12866** When using hideshow.el, incremental search can temporarily show hidden
12867blocks if a match is inside the block.
12868
12869The block is hidden again if the search is continued and the next match
12870is outside the block. By customizing the variable
12871isearch-hide-immediately you can choose to hide all the temporarily
12872shown blocks only when exiting from incremental search.
12873
12874By customizing the variable hs-isearch-open you can choose what kind
12875of blocks to temporarily show during isearch: comment blocks, code
12876blocks, all of them or none.
12877
12878** The new command C-x 4 0 (kill-buffer-and-window) kills the
12879current buffer and deletes the selected window. It asks for
12880confirmation first.
12881
12882** C-x C-w, which saves the buffer into a specified file name,
12883now changes the major mode according to that file name.
12884However, the mode will not be changed if
12885(1) a local variables list or the `-*-' line specifies a major mode, or
12886(2) the current major mode is a "special" mode,
12887 not suitable for ordinary files, or
12888(3) the new file name does not particularly specify any mode.
12889
12890This applies to M-x set-visited-file-name as well.
12891
12892However, if you set change-major-mode-with-file-name to nil, then
12893these commands do not change the major mode.
12894
12895** M-x occur changes.
12896
12897*** If the argument to M-x occur contains upper case letters,
12898it performs a case-sensitive search.
12899
12900*** In the *Occur* buffer made by M-x occur,
12901if you type g or M-x revert-buffer, this repeats the search
12902using the same regular expression and the same buffer as before.
12903
12904** In Transient Mark mode, the region in any one buffer is highlighted
12905in just one window at a time. At first, it is highlighted in the
12906window where you set the mark. The buffer's highlighting remains in
12907that window unless you select to another window which shows the same
12908buffer--then the highlighting moves to that window.
12909
12910** The feature to suggest key bindings when you use M-x now operates
12911after the command finishes. The message suggesting key bindings
12912appears temporarily in the echo area. The previous echo area contents
12913come back after a few seconds, in case they contain useful information.
12914
12915** Each frame now independently records the order for recently
12916selected buffers, so that the default for C-x b is now based on the
12917buffers recently selected in the selected frame.
12918
12919** Outline mode changes.
12920
12921*** Outline mode now uses overlays (this is the former noutline.el).
12922
12923*** Incremental searches skip over invisible text in Outline mode.
12924
12925** When a minibuffer window is active but not the selected window, if
12926you try to use the minibuffer, you used to get a nested minibuffer.
12927Now, this not only gives an error, it also cancels the minibuffer that
12928was already active.
12929
12930The motive for this change is so that beginning users do not
12931unknowingly move away from minibuffers, leaving them active, and then
12932get confused by it.
12933
12934If you want to be able to have recursive minibuffers, you must
12935set enable-recursive-minibuffers to non-nil.
12936
12937** Changes in dynamic abbrevs.
12938
12939*** Expanding dynamic abbrevs with M-/ is now smarter about case
12940conversion. If the expansion has mixed case not counting the first
12941character, and the abbreviation matches the beginning of the expansion
12942including case, then the expansion is copied verbatim.
12943
12944The expansion is also copied verbatim if the abbreviation itself has
12945mixed case. And using SPC M-/ to copy an additional word always
12946copies it verbatim except when the previous copied word is all caps.
12947
12948*** The values of `dabbrev-case-replace' and `dabbrev-case-fold-search'
12949are no longer Lisp expressions. They have simply three possible
12950values.
12951
12952`dabbrev-case-replace' has these three values: nil (don't preserve
12953case), t (do), or `case-replace' (do like M-x query-replace).
12954`dabbrev-case-fold-search' has these three values: nil (don't ignore
12955case), t (do), or `case-fold-search' (do like search).
12956
12957** Minibuffer history lists are truncated automatically now to a
12958certain length. The variable history-length specifies how long they
12959can be. The default value is 30.
12960
12961** Changes in Mail mode.
12962
12963*** The key C-x m no longer runs the `mail' command directly.
12964Instead, it runs the command `compose-mail', which invokes the mail
12965composition mechanism you have selected with the variable
12966`mail-user-agent'. The default choice of user agent is
12967`sendmail-user-agent', which gives behavior compatible with the old
12968behavior.
12969
12970C-x 4 m now runs compose-mail-other-window, and C-x 5 m runs
12971compose-mail-other-frame.
12972
12973*** While composing a reply to a mail message, from Rmail, you can use
12974the command C-c C-r to cite just the region from the message you are
12975replying to. This copies the text which is the selected region in the
12976buffer that shows the original message.
12977
12978*** The command C-c C-i inserts a file at the end of the message,
12979with separator lines around the contents.
12980
12981*** The command M-x expand-mail-aliases expands all mail aliases
12982in suitable mail headers. Emacs automatically extracts mail alias
12983definitions from your mail alias file (e.g., ~/.mailrc). You do not
12984need to expand mail aliases yourself before sending mail.
12985
12986*** New features in the mail-complete command.
12987
12988**** The mail-complete command now inserts the user's full name,
12989for local users or if that is known. The variable mail-complete-style
12990controls the style to use, and whether to do this at all.
12991Its values are like those of mail-from-style.
12992
12993**** The variable mail-passwd-command lets you specify a shell command
12994to run to fetch a set of password-entries that add to the ones in
12995/etc/passwd.
12996
12997**** The variable mail-passwd-file now specifies a list of files to read
12998to get the list of user ids. By default, one file is used:
12999/etc/passwd.
13000
13001** You can "quote" a file name to inhibit special significance of
13002special syntax, by adding `/:' to the beginning. Thus, if you have a
13003directory named `/foo:', you can prevent it from being treated as a
13004reference to a remote host named `foo' by writing it as `/:/foo:'.
13005
13006Emacs uses this new construct automatically when necessary, such as
13007when you start it with a working directory whose name might otherwise
13008be taken to be magic.
13009
13010** There is a new command M-x grep-find which uses find to select
13011files to search through, and grep to scan them. The output is
13012available in a Compile mode buffer, as with M-x grep.
13013
13014M-x grep now uses the -e option if the grep program supports that.
13015(-e prevents problems if the search pattern starts with a dash.)
13016
13017** In Dired, the & command now flags for deletion the files whose names
13018suggest they are probably not needed in the long run.
13019
13020In Dired, * is now a prefix key for mark-related commands.
13021
13022new key dired.el binding old key
13023------- ---------------- -------
13024 * c dired-change-marks c
13025 * m dired-mark m
13026 * * dired-mark-executables * (binding deleted)
13027 * / dired-mark-directories / (binding deleted)
13028 * @ dired-mark-symlinks @ (binding deleted)
13029 * u dired-unmark u
13030 * DEL dired-unmark-backward DEL
13031 * ? dired-unmark-all-files C-M-?
13032 * ! dired-unmark-all-marks
13033 * % dired-mark-files-regexp % m
13034 * C-n dired-next-marked-file M-}
13035 * C-p dired-prev-marked-file M-{
13036
13037** Rmail changes.
13038
13039*** When Rmail cannot convert your incoming mail into Babyl format, it
13040saves the new mail in the file RMAILOSE.n, where n is an integer
13041chosen to make a unique name. This way, Rmail will not keep crashing
13042each time you run it.
13043
13044*** In Rmail, the variable rmail-summary-line-count-flag now controls
13045whether to include the line count in the summary. Non-nil means yes.
13046
13047*** In Rmail summary buffers, d and C-d (the commands to delete
13048messages) now take repeat counts as arguments. A negative argument
13049means to move in the opposite direction.
13050
13051*** In Rmail, the t command now takes an optional argument which lets
13052you specify whether to show the message headers in full or pruned.
13053
13054*** In Rmail, the new command w (rmail-output-body-to-file) writes
13055just the body of the current message into a file, without the headers.
13056It takes the file name from the message subject, by default, but you
13057can edit that file name in the minibuffer before it is actually used
13058for output.
13059
13060** Gnus changes.
13061
13062*** nntp.el has been totally rewritten in an asynchronous fashion.
13063
13064*** Article prefetching functionality has been moved up into
13065Gnus.
13066
13067*** Scoring can now be performed with logical operators like
13068`and', `or', `not', and parent redirection.
13069
13070*** Article washing status can be displayed in the
13071article mode line.
13072
13073*** gnus.el has been split into many smaller files.
13074
13075*** Suppression of duplicate articles based on Message-ID.
13076
13077(setq gnus-suppress-duplicates t)
13078
13079*** New variables for specifying what score and adapt files
13080are to be considered home score and adapt files. See
13081`gnus-home-score-file' and `gnus-home-adapt-files'.
13082
13083*** Groups can inherit group parameters from parent topics.
13084
13085*** Article editing has been revamped and is now usable.
13086
13087*** Signatures can be recognized in more intelligent fashions.
13088See `gnus-signature-separator' and `gnus-signature-limit'.
13089
13090*** Summary pick mode has been made to look more nn-like.
13091Line numbers are displayed and the `.' command can be
13092used to pick articles.
13093
13094*** Commands for moving the .newsrc.eld from one server to
13095another have been added.
13096
13097 `M-x gnus-change-server'
13098
13099*** A way to specify that "uninteresting" fields be suppressed when
13100generating lines in buffers.
13101
13102*** Several commands in the group buffer can be undone with
13103`C-M-_'.
13104
13105*** Scoring can be done on words using the new score type `w'.
13106
13107*** Adaptive scoring can be done on a Subject word-by-word basis:
13108
13109 (setq gnus-use-adaptive-scoring '(word))
13110
13111*** Scores can be decayed.
13112
13113 (setq gnus-decay-scores t)
13114
13115*** Scoring can be performed using a regexp on the Date header. The
13116Date is normalized to compact ISO 8601 format first.
13117
13118*** A new command has been added to remove all data on articles from
13119the native server.
13120
13121 `M-x gnus-group-clear-data-on-native-groups'
13122
13123*** A new command for reading collections of documents
13124(nndoc with nnvirtual on top) has been added -- `C-M-d'.
13125
13126*** Process mark sets can be pushed and popped.
13127
13128*** A new mail-to-news backend makes it possible to post
13129even when the NNTP server doesn't allow posting.
13130
13131*** A new backend for reading searches from Web search engines
13132(DejaNews, Alta Vista, InReference) has been added.
13133
13134 Use the `G w' command in the group buffer to create such
13135 a group.
13136
13137*** Groups inside topics can now be sorted using the standard
13138sorting functions, and each topic can be sorted independently.
13139
13140 See the commands under the `T S' submap.
13141
13142*** Subsets of the groups can be sorted independently.
13143
13144 See the commands under the `G P' submap.
13145
13146*** Cached articles can be pulled into the groups.
13147
13148 Use the `Y c' command.
13149
13150*** Score files are now applied in a more reliable order.
13151
13152*** Reports on where mail messages end up can be generated.
13153
13154 `M-x nnmail-split-history'
13155
13156*** More hooks and functions have been added to remove junk
13157from incoming mail before saving the mail.
13158
13159 See `nnmail-prepare-incoming-header-hook'.
13160
13161*** The nnml mail backend now understands compressed article files.
13162
13163*** To enable Gnus to read/post multi-lingual articles, you must execute
13164the following code, for instance, in your .emacs.
13165
13166 (add-hook 'gnus-startup-hook 'gnus-mule-initialize)
13167
13168Then, when you start Gnus, it will decode non-ASCII text automatically
13169and show appropriate characters. (Note: if you are using gnus-mime
13170from the SEMI package, formerly known as TM, you should NOT add this
13171hook to gnus-startup-hook; gnus-mime has its own method of handling
13172this issue.)
13173
13174Since it is impossible to distinguish all coding systems
13175automatically, you may need to specify a choice of coding system for a
13176particular news group. This can be done by:
13177
13178 (gnus-mule-add-group NEWSGROUP 'CODING-SYSTEM)
13179
13180Here NEWSGROUP should be a string which names a newsgroup or a tree
13181of newsgroups. If NEWSGROUP is "XXX.YYY", all news groups under
13182"XXX.YYY" (including "XXX.YYY.ZZZ") will use the specified coding
13183system. CODING-SYSTEM specifies which coding system to use (for both
13184for reading and posting).
13185
13186CODING-SYSTEM can also be a cons cell of the form
13187 (READ-CODING-SYSTEM . POST-CODING-SYSTEM)
13188Then READ-CODING-SYSTEM is used when you read messages from the
13189newsgroups, while POST-CODING-SYSTEM is used when you post messages
13190there.
13191
13192Emacs knows the right coding systems for certain newsgroups by
13193default. Here are some of these default settings:
13194
13195 (gnus-mule-add-group "fj" 'iso-2022-7)
13196 (gnus-mule-add-group "alt.chinese.text" 'hz-gb-2312)
13197 (gnus-mule-add-group "alt.hk" 'hz-gb-2312)
13198 (gnus-mule-add-group "alt.chinese.text.big5" 'cn-big5)
13199 (gnus-mule-add-group "soc.culture.vietnamese" '(nil . viqr))
13200
13201When you reply by mail to an article, these settings are ignored;
13202the mail is encoded according to sendmail-coding-system, as usual.
13203
13204** CC mode changes.
13205
13206*** If you edit primarily one style of C (or C++, Objective-C, Java)
13207code, you may want to make the CC Mode style variables have global
13208values so that you can set them directly in your .emacs file. To do
13209this, set c-style-variables-are-local-p to nil in your .emacs file.
13210Note that this only takes effect if you do it *before* cc-mode.el is
13211loaded.
13212
13213If you typically edit more than one style of C (or C++, Objective-C,
13214Java) code in a single Emacs session, you may want to make the CC Mode
13215style variables have buffer local values. By default, all buffers
13216share the same style variable settings; to make them buffer local, set
13217c-style-variables-are-local-p to t in your .emacs file. Note that you
13218must do this *before* CC Mode is loaded.
13219
13220*** The new variable c-indentation-style holds the C style name
13221of the current buffer.
13222
13223*** The variable c-block-comments-indent-p has been deleted, because
13224it is no longer necessary. C mode now handles all the supported styles
13225of block comments, with no need to say which one you will use.
13226
13227*** There is a new indentation style "python", which specifies the C
13228style that the Python developers like.
13229
13230*** There is a new c-cleanup-list option: brace-elseif-brace.
13231This says to put ...} else if (...) {... on one line,
13232just as brace-else-brace says to put ...} else {... on one line.
13233
13234** VC Changes [new]
13235
13236*** In vc-retrieve-snapshot (C-x v r), if you don't specify a snapshot
13237name, it retrieves the *latest* versions of all files in the current
13238directory and its subdirectories (aside from files already locked).
13239
13240This feature is useful if your RCS directory is a link to a common
13241master directory, and you want to pick up changes made by other
13242developers.
13243
13244You can do the same thing for an individual file by typing C-u C-x C-q
13245RET in a buffer visiting that file.
13246
13247*** VC can now handle files under CVS that are being "watched" by
13248other developers. Such files are made read-only by CVS. To get a
13249writable copy, type C-x C-q in a buffer visiting such a file. VC then
13250calls "cvs edit", which notifies the other developers of it.
13251
13252*** vc-version-diff (C-u C-x v =) now suggests reasonable defaults for
13253version numbers, based on the current state of the file.
13254
13255** Calendar changes.
13256
13257*** A new function, list-holidays, allows you list holidays or
13258subclasses of holidays for ranges of years. Related menu items allow
13259you do this for the year of the selected date, or the
13260following/previous years.
13261
13262*** There is now support for the Baha'i calendar system. Use `pb' in
13263the *Calendar* buffer to display the current Baha'i date. The Baha'i
13264calendar, or "Badi calendar" is a system of 19 months with 19 days
13265each, and 4 intercalary days (5 during a Gregorian leap year). The
13266calendar begins May 23, 1844, with each of the months named after a
13267supposed attribute of God.
13268
13269** ps-print changes
13270
13271There are some new user variables and subgroups for customizing the page
13272layout.
13273
13274*** Headers & Footers (subgroup)
13275
13276Some printer systems print a header page and force the first page to
13277be printed on the back of the header page when using duplex. If your
13278printer system has this behavior, set variable
13279`ps-banner-page-when-duplexing' to t.
13280
13281If variable `ps-banner-page-when-duplexing' is non-nil, it prints a
13282blank page as the very first printed page. So, it behaves as if the
13283very first character of buffer (or region) were a form feed ^L (\014).
13284
13285The variable `ps-spool-config' specifies who is responsible for
13286setting duplex mode and page size. Valid values are:
13287
13288 lpr-switches duplex and page size are configured by `ps-lpr-switches'.
13289 Don't forget to set `ps-lpr-switches' to select duplex
13290 printing for your printer.
13291
13292 setpagedevice duplex and page size are configured by ps-print using the
13293 setpagedevice PostScript operator.
13294
13295 nil duplex and page size are configured by ps-print *not* using
13296 the setpagedevice PostScript operator.
13297
13298The variable `ps-spool-tumble' specifies how the page images on
13299opposite sides of a sheet are oriented with respect to each other. If
13300`ps-spool-tumble' is nil, ps-print produces output suitable for
13301bindings on the left or right. If `ps-spool-tumble' is non-nil,
13302ps-print produces output suitable for bindings at the top or bottom.
13303This variable takes effect only if `ps-spool-duplex' is non-nil.
13304The default value is nil.
13305
13306The variable `ps-header-frame-alist' specifies a header frame
13307properties alist. Valid frame properties are:
13308
13309 fore-color Specify the foreground frame color.
13310 Value should be a float number between 0.0 (black
13311 color) and 1.0 (white color), or a string which is a
13312 color name, or a list of 3 float numbers which
13313 correspond to the Red Green Blue color scale, each
13314 float number between 0.0 (dark color) and 1.0 (bright
13315 color). The default is 0 ("black").
13316
13317 back-color Specify the background frame color (similar to fore-color).
13318 The default is 0.9 ("gray90").
13319
13320 shadow-color Specify the shadow color (similar to fore-color).
13321 The default is 0 ("black").
13322
13323 border-color Specify the border color (similar to fore-color).
13324 The default is 0 ("black").
13325
13326 border-width Specify the border width.
13327 The default is 0.4.
13328
13329Any other property is ignored.
13330
13331Don't change this alist directly; instead use Custom, or the
13332`ps-value', `ps-get', `ps-put' and `ps-del' functions (see there for
13333documentation).
13334
13335Ps-print can also print footers. The footer variables are:
13336`ps-print-footer', `ps-footer-offset', `ps-print-footer-frame',
13337`ps-footer-font-family', `ps-footer-font-size', `ps-footer-line-pad',
13338`ps-footer-lines', `ps-left-footer', `ps-right-footer' and
13339`ps-footer-frame-alist'. These variables are similar to those
13340controlling headers.
13341
13342*** Color management (subgroup)
13343
13344If `ps-print-color-p' is non-nil, the buffer's text will be printed in
13345color.
13346
13347*** Face Management (subgroup)
13348
13349If you need to print without worrying about face background colors,
13350set the variable `ps-use-face-background' which specifies if face
13351background should be used. Valid values are:
13352
13353 t always use face background color.
13354 nil never use face background color.
13355 (face...) list of faces whose background color will be used.
13356
13357*** N-up printing (subgroup)
13358
13359The variable `ps-n-up-printing' specifies the number of pages per
13360sheet of paper.
13361
13362The variable `ps-n-up-margin' specifies the margin in points (pt)
13363between the sheet border and the n-up printing.
13364
13365If variable `ps-n-up-border-p' is non-nil, a border is drawn around
13366each page.
13367
13368The variable `ps-n-up-filling' specifies how the page matrix is filled
13369on each sheet of paper. Following are the valid values for
13370`ps-n-up-filling' with a filling example using a 3x4 page matrix:
13371
13372 `left-top' 1 2 3 4 `left-bottom' 9 10 11 12
13373 5 6 7 8 5 6 7 8
13374 9 10 11 12 1 2 3 4
13375
13376 `right-top' 4 3 2 1 `right-bottom' 12 11 10 9
13377 8 7 6 5 8 7 6 5
13378 12 11 10 9 4 3 2 1
13379
13380 `top-left' 1 4 7 10 `bottom-left' 3 6 9 12
13381 2 5 8 11 2 5 8 11
13382 3 6 9 12 1 4 7 10
13383
13384 `top-right' 10 7 4 1 `bottom-right' 12 9 6 3
13385 11 8 5 2 11 8 5 2
13386 12 9 6 3 10 7 4 1
13387
13388Any other value is treated as `left-top'.
13389
13390*** Zebra stripes (subgroup)
13391
13392The variable `ps-zebra-color' controls the zebra stripes grayscale or
13393RGB color.
13394
13395The variable `ps-zebra-stripe-follow' specifies how zebra stripes
13396continue on next page. Visually, valid values are (the character `+'
13397to the right of each column indicates that a line is printed):
13398
13399 `nil' `follow' `full' `full-follow'
13400 Current Page -------- ----------- --------- ----------------
13401 1 XXXXX + 1 XXXXXXXX + 1 XXXXXX + 1 XXXXXXXXXXXXX +
13402 2 XXXXX + 2 XXXXXXXX + 2 XXXXXX + 2 XXXXXXXXXXXXX +
13403 3 XXXXX + 3 XXXXXXXX + 3 XXXXXX + 3 XXXXXXXXXXXXX +
13404 4 + 4 + 4 + 4 +
13405 5 + 5 + 5 + 5 +
13406 6 + 6 + 6 + 6 +
13407 7 XXXXX + 7 XXXXXXXX + 7 XXXXXX + 7 XXXXXXXXXXXXX +
13408 8 XXXXX + 8 XXXXXXXX + 8 XXXXXX + 8 XXXXXXXXXXXXX +
13409 9 XXXXX + 9 XXXXXXXX + 9 XXXXXX + 9 XXXXXXXXXXXXX +
13410 10 + 10 +
13411 11 + 11 +
13412 -------- ----------- --------- ----------------
13413 Next Page -------- ----------- --------- ----------------
13414 12 XXXXX + 12 + 10 XXXXXX + 10 +
13415 13 XXXXX + 13 XXXXXXXX + 11 XXXXXX + 11 +
13416 14 XXXXX + 14 XXXXXXXX + 12 XXXXXX + 12 +
13417 15 + 15 XXXXXXXX + 13 + 13 XXXXXXXXXXXXX +
13418 16 + 16 + 14 + 14 XXXXXXXXXXXXX +
13419 17 + 17 + 15 + 15 XXXXXXXXXXXXX +
13420 18 XXXXX + 18 + 16 XXXXXX + 16 +
13421 19 XXXXX + 19 XXXXXXXX + 17 XXXXXX + 17 +
13422 20 XXXXX + 20 XXXXXXXX + 18 XXXXXX + 18 +
13423 21 + 21 XXXXXXXX +
13424 22 + 22 +
13425 -------- ----------- --------- ----------------
13426
13427Any other value is treated as `nil'.
13428
13429
13430*** Printer management (subgroup)
13431
13432The variable `ps-printer-name-option' determines the option used by
13433some utilities to indicate the printer name; it's used only when
13434`ps-printer-name' is a non-empty string. If you're using the lpr
13435utility to print, for example, `ps-printer-name-option' should be set
13436to "-P".
13437
13438The variable `ps-manual-feed' indicates if the printer requires manual
13439paper feeding. If it's nil, automatic feeding takes place. If it's
13440non-nil, manual feeding takes place.
13441
13442The variable `ps-end-with-control-d' specifies whether C-d (\x04)
13443should be inserted at end of the generated PostScript. Non-nil means
13444do so.
13445
13446*** Page settings (subgroup)
13447
13448If variable `ps-warn-paper-type' is nil, it's *not* treated as an
13449error if the PostScript printer doesn't have a paper with the size
13450indicated by `ps-paper-type'; the default paper size will be used
13451instead. If `ps-warn-paper-type' is non-nil, an error is signaled if
13452the PostScript printer doesn't support a paper with the size indicated
13453by `ps-paper-type'. This is used when `ps-spool-config' is set to
13454`setpagedevice'.
13455
13456The variable `ps-print-upside-down' determines the orientation for
13457printing pages: nil means `normal' printing, non-nil means
13458`upside-down' printing (that is, the page is rotated by 180 degrees).
13459
13460The variable `ps-selected-pages' specifies which pages to print. If
13461it's nil, all pages are printed. If it's a list, list elements may be
13462integers specifying a single page to print, or cons cells (FROM . TO)
13463specifying to print from page FROM to TO. Invalid list elements, that
13464is integers smaller than one, or elements whose FROM is greater than
13465its TO, are ignored.
13466
13467The variable `ps-even-or-odd-pages' specifies how to print even/odd
13468pages. Valid values are:
13469
13470 nil print all pages.
13471
13472 `even-page' print only even pages.
13473
13474 `odd-page' print only odd pages.
13475
13476 `even-sheet' print only even sheets.
13477 That is, if `ps-n-up-printing' is 1, it behaves like
13478 `even-page', but for values greater than 1, it'll
13479 print only the even sheet of paper.
13480
13481 `odd-sheet' print only odd sheets.
13482 That is, if `ps-n-up-printing' is 1, it behaves like
13483 `odd-page'; but for values greater than 1, it'll print
13484 only the odd sheet of paper.
13485
13486Any other value is treated as nil.
13487
13488If you set `ps-selected-pages' (see there for documentation), pages
13489are filtered by `ps-selected-pages', and then by
13490`ps-even-or-odd-pages'. For example, if we have:
13491
13492 (setq ps-selected-pages '(1 4 (6 . 10) (12 . 16) 20))
13493
13494and we combine this with `ps-even-or-odd-pages' and
13495`ps-n-up-printing', we get:
13496
13497`ps-n-up-printing' = 1:
13498 `ps-even-or-odd-pages' PAGES PRINTED
13499 nil 1, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 20
13500 even-page 4, 6, 8, 10, 12, 14, 16, 20
13501 odd-page 1, 7, 9, 13, 15
13502 even-sheet 4, 6, 8, 10, 12, 14, 16, 20
13503 odd-sheet 1, 7, 9, 13, 15
13504
13505`ps-n-up-printing' = 2:
13506 `ps-even-or-odd-pages' PAGES PRINTED
13507 nil 1/4, 6/7, 8/9, 10/12, 13/14, 15/16, 20
13508 even-page 4/6, 8/10, 12/14, 16/20
13509 odd-page 1/7, 9/13, 15
13510 even-sheet 6/7, 10/12, 15/16
13511 odd-sheet 1/4, 8/9, 13/14, 20
13512
13513*** Miscellany (subgroup)
13514
13515The variable `ps-error-handler-message' specifies where error handler
13516messages should be sent.
13517
13518It is also possible to add a user-defined PostScript prologue code in
13519front of all generated prologue code by setting the variable
13520`ps-user-defined-prologue'.
13521
13522The variable `ps-line-number-font' specifies the font for line numbers.
13523
13524The variable `ps-line-number-font-size' specifies the font size in
13525points for line numbers.
13526
13527The variable `ps-line-number-color' specifies the color for line
13528numbers. See `ps-zebra-color' for documentation.
13529
13530The variable `ps-line-number-step' specifies the interval in which
13531line numbers are printed. For example, if `ps-line-number-step' is set
13532to 2, the printing will look like:
13533
13534 1 one line
13535 one line
13536 3 one line
13537 one line
13538 5 one line
13539 one line
13540 ...
13541
13542Valid values are:
13543
13544integer an integer specifying the interval in which line numbers are
13545 printed. If it's smaller than or equal to zero, 1
13546 is used.
13547
13548`zebra' specifies that only the line number of the first line in a
13549 zebra stripe is to be printed.
13550
13551Any other value is treated as `zebra'.
13552
13553The variable `ps-line-number-start' specifies the starting point in
13554the interval given by `ps-line-number-step'. For example, if
13555`ps-line-number-step' is set to 3, and `ps-line-number-start' is set to
135563, the output will look like:
13557
13558 one line
13559 one line
13560 3 one line
13561 one line
13562 one line
13563 6 one line
13564 one line
13565 one line
13566 9 one line
13567 one line
13568 ...
13569
13570The variable `ps-postscript-code-directory' specifies the directory
13571where the PostScript prologue file used by ps-print is found.
13572
13573The variable `ps-line-spacing' determines the line spacing in points,
13574for ordinary text, when generating PostScript (similar to
13575`ps-font-size').
13576
13577The variable `ps-paragraph-spacing' determines the paragraph spacing,
13578in points, for ordinary text, when generating PostScript (similar to
13579`ps-font-size').
13580
13581The variable `ps-paragraph-regexp' specifies the paragraph delimiter.
13582
13583The variable `ps-begin-cut-regexp' and `ps-end-cut-regexp' specify the
13584start and end of a region to cut out when printing.
13585
13586** hideshow changes.
13587
13588*** now supports hiding of blocks of single line comments (like // for
13589C++, ; for lisp).
13590
13591*** Support for java-mode added.
13592
13593*** When doing `hs-hide-all' it is now possible to also hide the comments
13594in the file if `hs-hide-comments-when-hiding-all' is set.
13595
13596*** The new function `hs-hide-initial-comment' hides the comments at
13597the beginning of the files. Finally those huge RCS logs don't stay in your
13598way! This is run by default when entering the `hs-minor-mode'.
13599
13600*** Now uses overlays instead of `selective-display', so is more
13601robust and a lot faster.
13602
13603*** A block beginning can span multiple lines.
13604
13605*** The new variable `hs-show-hidden-short-form' if t, directs hideshow
13606to show only the beginning of a block when it is hidden. See the
13607documentation for more details.
13608
13609** Changes in Enriched mode.
13610
13611*** When you visit a file in enriched-mode, Emacs will make sure it is
13612filled to the current fill-column. This behavior is now independent
13613of the size of the window. When you save the file, the fill-column in
13614use is stored as well, so that the whole buffer need not be refilled
13615the next time unless the fill-column is different.
13616
13617*** use-hard-newlines is now a minor mode. When it is enabled, Emacs
13618distinguishes between hard and soft newlines, and treats hard newlines
13619as paragraph boundaries. Otherwise all newlines inserted are marked
13620as soft, and paragraph boundaries are determined solely from the text.
13621
13622** Font Lock mode
13623
13624*** Custom support
13625
13626The variables font-lock-face-attributes, font-lock-display-type and
13627font-lock-background-mode are now obsolete; the recommended way to specify
13628the faces to use for Font Lock mode is with M-x customize-group on the new
13629custom group font-lock-faces. If you set font-lock-face-attributes in your
13630~/.emacs file, Font Lock mode will respect its value. However, you should
13631consider converting from setting that variable to using M-x customize.
13632
13633You can still use X resources to specify Font Lock face appearances.
13634
13635*** Maximum decoration
13636
13637Fontification now uses the maximum level of decoration supported by
13638default. Previously, fontification used a mode-specific default level
13639of decoration, which is typically the minimum level of decoration
13640supported. You can set font-lock-maximum-decoration to nil
13641to get the old behavior.
13642
13643*** New support
13644
13645Support is now provided for Java, Objective-C, AWK and SIMULA modes.
13646
13647Note that Font Lock mode can be turned on without knowing exactly what modes
13648support Font Lock mode, via the command global-font-lock-mode.
13649
13650*** Configurable support
13651
13652Support for C, C++, Objective-C and Java can be more easily configured for
13653additional types and classes via the new variables c-font-lock-extra-types,
13654c++-font-lock-extra-types, objc-font-lock-extra-types and, you guessed it,
13655java-font-lock-extra-types. These value of each of these variables should be a
13656list of regexps matching the extra type names. For example, the default value
13657of c-font-lock-extra-types is ("\\sw+_t") which means fontification follows the
13658convention that C type names end in _t. This results in slower fontification.
13659
13660Of course, you can change the variables that specify fontification in whatever
13661way you wish, typically by adding regexps. However, these new variables make
13662it easier to make specific and common changes for the fontification of types.
13663
13664*** Adding highlighting patterns to existing support
13665
13666You can use the new function font-lock-add-keywords to add your own
13667highlighting patterns, such as for project-local or user-specific constructs,
13668for any mode.
13669
13670For example, to highlight `FIXME:' words in C comments, put:
13671
13672 (font-lock-add-keywords 'c-mode '(("\\<FIXME:" 0 font-lock-warning-face t)))
13673
13674in your ~/.emacs.
13675
13676*** New faces
13677
13678Font Lock now defines two new faces, font-lock-builtin-face and
13679font-lock-warning-face. These are intended to highlight builtin keywords,
13680distinct from a language's normal keywords, and objects that should be brought
13681to user attention, respectively. Various modes now use these new faces.
13682
13683*** Changes to fast-lock support mode
13684
13685The fast-lock package, one of the two Font Lock support modes, can now process
13686cache files silently. You can use the new variable fast-lock-verbose, in the
13687same way as font-lock-verbose, to control this feature.
13688
13689*** Changes to lazy-lock support mode
13690
13691The lazy-lock package, one of the two Font Lock support modes, can now fontify
13692according to the true syntactic context relative to other lines. You can use
13693the new variable lazy-lock-defer-contextually to control this feature. If
13694non-nil, changes to the buffer will cause subsequent lines in the buffer to be
13695refontified after lazy-lock-defer-time seconds of idle time. If nil, then only
13696the modified lines will be refontified; this is the same as the previous Lazy
13697Lock mode behavior and the behavior of Font Lock mode.
13698
13699This feature is useful in modes where strings or comments can span lines.
13700For example, if a string or comment terminating character is deleted, then if
13701this feature is enabled subsequent lines in the buffer will be correctly
13702refontified to reflect their new syntactic context. Previously, only the line
13703containing the deleted character would be refontified and you would have to use
13704the command M-o M-o (font-lock-fontify-block) to refontify some lines.
13705
13706As a consequence of this new feature, two other variables have changed:
13707
13708Variable `lazy-lock-defer-driven' is renamed `lazy-lock-defer-on-scrolling'.
13709Variable `lazy-lock-defer-time' can now only be a time, i.e., a number.
13710Buffer modes for which on-the-fly deferral applies can be specified via the
13711new variable `lazy-lock-defer-on-the-fly'.
13712
13713If you set these variables in your ~/.emacs, then you may have to change those
13714settings.
13715
13716** Ada mode changes.
13717
13718*** There is now better support for using find-file.el with Ada mode.
13719If you switch between spec and body, the cursor stays in the same
13720procedure (modulo overloading). If a spec has no body file yet, but
13721you try to switch to its body file, Ada mode now generates procedure
13722stubs.
13723
13724*** There are two new commands:
13725 - `ada-make-local' : invokes gnatmake on the current buffer
13726 - `ada-check-syntax' : check syntax of current buffer.
13727
13728The user options `ada-compiler-make', `ada-make-options',
13729`ada-language-version', `ada-compiler-syntax-check', and
13730`ada-compile-options' are used within these commands.
13731
13732*** Ada mode can now work with Outline minor mode. The outline level
13733is calculated from the indenting, not from syntactic constructs.
13734Outlining does not work if your code is not correctly indented.
13735
13736*** The new function `ada-gnat-style' converts the buffer to the style of
13737formatting used in GNAT. It places two blanks after a comment start,
13738places one blank between a word end and an opening '(', and puts one
13739space between a comma and the beginning of a word.
13740
13741** Scheme mode changes.
13742
13743*** Scheme mode indentation now uses many of the facilities of Lisp
13744mode; therefore, the variables to customize it are the variables used
13745for Lisp mode which have names starting with `lisp-'. The variables
13746with names starting with `scheme-' which used to do this no longer
13747have any effect.
13748
13749If you want to use different indentation for Scheme and Lisp, this is
13750still possible, but now you must do it by adding a hook to
13751scheme-mode-hook, which could work by setting the `lisp-' indentation
13752variables as buffer-local variables.
13753
13754*** DSSSL mode is a variant of Scheme mode, for editing DSSSL scripts.
13755Use M-x dsssl-mode.
13756
13757** Changes to the emacsclient program
13758
13759*** If a socket can't be found, and environment variables LOGNAME or
13760USER are set, emacsclient now looks for a socket based on the UID
13761associated with the name. That is an emacsclient running as root
13762can connect to an Emacs server started by a non-root user.
13763
13764*** The emacsclient program now accepts an option --no-wait which tells
13765it to return immediately without waiting for you to "finish" the
13766buffer in Emacs.
13767
13768*** The new option --alternate-editor allows to specify an editor to
13769use if Emacs is not running. The environment variable
13770ALTERNATE_EDITOR can be used for the same effect; the command line
13771option takes precedence.
13772
13773** M-x eldoc-mode enables a minor mode in which the echo area
13774constantly shows the parameter list for function being called at point
13775(in Emacs Lisp and Lisp Interaction modes only).
13776
13777** C-x n d now runs the new command narrow-to-defun,
13778which narrows the accessible parts of the buffer to just
13779the current defun.
13780
13781** Emacs now handles the `--' argument in the standard way; all
13782following arguments are treated as ordinary file names.
13783
13784** On MSDOS and Windows, the bookmark file is now called _emacs.bmk,
13785and the saved desktop file is now called _emacs.desktop (truncated if
13786necessary).
13787
13788** When you kill a buffer that visits a file,
13789if there are any registers that save positions in the file,
13790these register values no longer become completely useless.
13791If you try to go to such a register with C-x j, then you are
13792asked whether to visit the file again. If you say yes,
13793it visits the file and then goes to the same position.
13794
13795** When you visit a file that changes frequently outside Emacs--for
13796example, a log of output from a process that continues to run--it may
13797be useful for Emacs to revert the file without querying you whenever
13798you visit the file afresh with C-x C-f.
13799
13800You can request this behavior for certain files by setting the
13801variable revert-without-query to a list of regular expressions. If a
13802file's name matches any of these regular expressions, find-file and
13803revert-buffer revert the buffer without asking for permission--but
13804only if you have not edited the buffer text yourself.
13805
13806** set-default-font has been renamed to set-frame-font
13807since it applies only to the current frame.
13808
13809** In TeX mode, you can use the variable tex-main-file to specify the
13810file for tex-file to run TeX on. (By default, tex-main-file is nil,
13811and tex-file runs TeX on the current visited file.)
13812
13813This is useful when you are editing a document that consists of
13814multiple files. In each of the included files, you can set up a local
13815variable list which specifies the top-level file of your document for
13816tex-main-file. Then tex-file will run TeX on the whole document
13817instead of just the file you are editing.
13818
13819** RefTeX mode
13820
13821RefTeX mode is a new minor mode with special support for \label, \ref
13822and \cite macros in LaTeX documents. RefTeX distinguishes labels of
13823different environments (equation, figure, ...) and has full support for
13824multifile documents. To use it, select a buffer with a LaTeX document and
13825turn the mode on with M-x reftex-mode. Here are the main user commands:
13826
13827C-c ( reftex-label
13828 Creates a label semi-automatically. RefTeX is context sensitive and
13829 knows which kind of label is needed.
13830
13831C-c ) reftex-reference
13832 Offers in a menu all labels in the document, along with context of the
13833 label definition. The selected label is referenced as \ref{LABEL}.
13834
13835C-c [ reftex-citation
13836 Prompts for a regular expression and displays a list of matching BibTeX
13837 database entries. The selected entry is cited with a \cite{KEY} macro.
13838
13839C-c & reftex-view-crossref
13840 Views the cross reference of a \ref or \cite command near point.
13841
13842C-c = reftex-toc
13843 Shows a table of contents of the (multifile) document. From there you
13844 can quickly jump to every section.
13845
13846Under X, RefTeX installs a "Ref" menu in the menu bar, with additional
13847commands. Press `?' to get help when a prompt mentions this feature.
13848Full documentation and customization examples are in the file
13849reftex.el. You can use the finder to view the file documentation:
13850C-h p --> tex --> reftex.el
13851
13852** Changes in BibTeX mode.
13853
13854*** Info documentation is now available.
13855
13856*** Don't allow parentheses in string constants anymore. This confused
13857both the BibTeX program and Emacs BibTeX mode.
13858
13859*** Renamed variable bibtex-mode-user-optional-fields to
13860bibtex-user-optional-fields.
13861
13862*** Removed variable bibtex-include-OPTannote
13863(use bibtex-user-optional-fields instead).
13864
13865*** New interactive functions to copy and kill fields and complete
13866entries to the BibTeX kill ring, from where they can be yanked back by
13867appropriate functions.
13868
13869*** New interactive functions for repositioning and marking of
13870entries. They are bound by default to C-M-l and C-M-h.
13871
13872*** New hook bibtex-clean-entry-hook. It is called after entry has
13873been cleaned.
13874
13875*** New variable bibtex-field-delimiters, which replaces variables
13876bibtex-field-{left|right}-delimiter.
13877
13878*** New variable bibtex-entry-delimiters to determine how entries
13879shall be delimited.
13880
13881*** Allow preinitialization of fields. See documentation of
13882bibtex-user-optional-fields, bibtex-entry-field-alist, and
13883bibtex-include-OPTkey for details.
13884
13885*** Book and InBook entries require either an author or an editor
13886field. This is now supported by bibtex.el. Alternative fields are
13887prefixed with `ALT'.
13888
13889*** New variable bibtex-entry-format, which replaces variable
13890bibtex-clean-entry-zap-empty-opts and allows specification of many
13891formatting options performed on cleaning an entry (see variable
13892documentation).
13893
13894*** Even more control on how automatic keys are generated. See
13895documentation of bibtex-generate-autokey for details. Transcriptions
13896for foreign languages other than German are now handled, too.
13897
13898*** New boolean user option bibtex-comma-after-last-field to decide if
13899comma should be inserted at end of last field.
13900
13901*** New boolean user option bibtex-align-at-equal-sign to determine if
13902alignment should be made at left side of field contents or at equal
13903signs. New user options to control entry layout (e.g. indentation).
13904
13905*** New function bibtex-fill-entry to realign entries.
13906
13907*** New function bibtex-reformat to reformat region or buffer.
13908
13909*** New function bibtex-convert-alien to convert a BibTeX database
13910from alien sources.
13911
13912*** New function bibtex-complete-key (similar to bibtex-complete-string)
13913to complete prefix to a key defined in buffer. Mainly useful in
13914crossref entries.
13915
13916*** New function bibtex-count-entries to count entries in buffer or
13917region.
13918
13919*** Added support for imenu.
13920
13921*** The function `bibtex-validate' now checks current region instead
13922of buffer if mark is active. Now it shows all errors of buffer in a
13923`compilation mode' buffer. You can use the normal commands (e.g.
13924`next-error') for compilation modes to jump to errors.
13925
13926*** New variable `bibtex-string-file-path' to determine where the files
13927from `bibtex-string-files' are searched.
13928
13929** Iso Accents mode now supports Latin-3 as an alternative.
13930
13931** The command next-error now opens blocks hidden by hideshow.
13932
13933** The function using-unix-filesystems has been replaced by the
13934functions add-untranslated-filesystem and remove-untranslated-filesystem.
13935Each of these functions takes the name of a drive letter or directory
13936as an argument.
13937
13938When a filesystem is added as untranslated, all files on it are read
13939and written in binary mode (no cr/lf translation is performed).
13940
13941** browse-url changes
13942
13943*** New methods for: Grail (browse-url-generic), MMM (browse-url-mmm),
13944Lynx in a separate xterm (browse-url-lynx-xterm) or in an Emacs window
13945(browse-url-lynx-emacs), remote W3 (browse-url-w3-gnudoit), generic
13946non-remote-controlled browsers (browse-url-generic) and associated
13947customization variables.
13948
13949*** New commands `browse-url-of-region' and `browse-url'.
13950
13951*** URLs marked up with <URL:...> (RFC1738) work if broken across
13952lines. Browsing methods can be associated with URL regexps
13953(e.g. mailto: URLs) via `browse-url-browser-function'.
13954
13955** Changes in Ediff
13956
13957*** Clicking Mouse-2 on a brief command description in Ediff control panel
13958pops up the Info file for this command.
13959
13960*** There is now a variable, ediff-autostore-merges, which controls whether
13961the result of a merge is saved in a file. By default, this is done only when
13962merge is done from a session group (eg, when merging files in two different
13963directories).
13964
13965*** Since Emacs 19.31 (this hasn't been announced before), Ediff can compare
13966and merge groups of files residing in different directories, or revisions of
13967files in the same directory.
13968
13969*** Since Emacs 19.31, Ediff can apply multi-file patches interactively.
13970The patches must be in the context format or GNU unified format. (The bug
13971related to the GNU format has now been fixed.)
13972
13973** Changes in Viper
13974
13975*** The startup file is now .viper instead of .vip
13976*** All variable/function names have been changed to start with viper-
13977 instead of vip-.
13978*** C-\ now simulates the meta-key in all Viper states.
13979*** C-z in Insert state now escapes to Vi for the duration of the next
13980Viper command. In Vi and Insert states, C-z behaves as before.
13981*** C-c \ escapes to Vi for one command if Viper is in Insert or Emacs states.
13982*** _ is no longer the meta-key in Vi state.
13983*** The variable viper-insert-state-cursor-color can be used to change cursor
13984color when Viper is in insert state.
13985*** If search lands the cursor near the top or the bottom of the window,
13986Viper pulls the window up or down to expose more context. The variable
13987viper-adjust-window-after-search controls this behavior.
13988
13989** Etags changes.
13990
13991*** In C, C++, Objective C and Java, Etags tags global variables by
13992default. The resulting tags files are inflated by 30% on average.
13993Use --no-globals to turn this feature off. Etags can also tag
13994variables which are members of structure-like constructs, but it does
13995not by default. Use --members to turn this feature on.
13996
13997*** C++ member functions are now recognized as tags.
13998
13999*** Java is tagged like C++. In addition, "extends" and "implements"
14000constructs are tagged. Files are recognized by the extension .java.
14001
14002*** Etags can now handle programs written in Postscript. Files are
14003recognized by the extensions .ps and .pdb (Postscript with C syntax).
14004In Postscript, tags are lines that start with a slash.
14005
14006*** Etags now handles Objective C and Objective C++ code. The usual C and
14007C++ tags are recognized in these languages; in addition, etags
14008recognizes special Objective C syntax for classes, class categories,
14009methods and protocols.
14010
14011*** Etags also handles Cobol. Files are recognized by the extension
14012.cobol. The tagged lines are those containing a word that begins in
14013column 8 and ends in a full stop, i.e. anything that could be a
14014paragraph name.
14015
14016*** Regexps in Etags now support intervals, as in ed or grep. The syntax of
14017an interval is \{M,N\}, and it means to match the preceding expression
14018at least M times and as many as N times.
14019
14020** The format for specifying a custom format for time-stamp to insert
14021in files has changed slightly.
14022
14023With the new enhancements to the functionality of format-time-string,
14024time-stamp-format will change to be eventually compatible with it.
14025This conversion is being done in two steps to maintain compatibility
14026with old time-stamp-format values.
14027
14028In the new scheme, alternate case is signified by the number-sign
14029(`#') modifier, rather than changing the case of the format character.
14030This feature is as yet incompletely implemented for compatibility
14031reasons.
14032
14033In the old time-stamp-format, all numeric fields defaulted to their
14034natural width. (With format-time-string, each format has a
14035fixed-width default.) In this version, you can specify the colon
14036(`:') modifier to a numeric conversion to mean "give me the historical
14037time-stamp-format width default." Do not use colon if you are
14038specifying an explicit width, as in "%02d".
14039
14040Numbers are no longer truncated to the requested width, except in the
14041case of "%02y", which continues to give a two-digit year. Digit
14042truncation probably wasn't being used for anything else anyway.
14043
14044The new formats will work with old versions of Emacs. New formats are
14045being recommended now to allow time-stamp-format to change in the
14046future to be compatible with format-time-string. The new forms being
14047recommended now will continue to work then.
14048
14049See the documentation string for the variable time-stamp-format for
14050details.
14051
14052** There are some additional major modes:
14053
14054dcl-mode, for editing VMS DCL files.
14055m4-mode, for editing files of m4 input.
14056meta-mode, for editing MetaFont and MetaPost source files.
14057
14058** In Shell mode, the command shell-copy-environment-variable lets you
14059copy the value of a specified environment variable from the subshell
14060into Emacs.
14061
14062** New Lisp packages include:
14063
14064*** battery.el displays battery status for laptops.
14065
14066*** M-x bruce (named after Lenny Bruce) is a program that might
14067be used for adding some indecent words to your email.
14068
14069*** M-x crisp-mode enables an emulation for the CRiSP editor.
14070
14071*** M-x dirtrack arranges for better tracking of directory changes
14072in shell buffers.
14073
14074*** The new library elint.el provides for linting of Emacs Lisp code.
14075See the documentation for `elint-initialize', `elint-current-buffer'
14076and `elint-defun'.
14077
14078*** M-x expand-add-abbrevs defines a special kind of abbrev which is
14079meant for programming constructs. These abbrevs expand like ordinary
14080ones, when you type SPC, but only at the end of a line and not within
14081strings or comments.
14082
14083These abbrevs can act as templates: you can define places within an
14084abbrev for insertion of additional text. Once you expand the abbrev,
14085you can then use C-x a p and C-x a n to move back and forth to these
14086insertion points. Thus you can conveniently insert additional text
14087at these points.
14088
14089*** filecache.el remembers the location of files so that you
14090can visit them by short forms of their names.
14091
14092*** find-func.el lets you find the definition of the user-loaded
14093Emacs Lisp function at point.
14094
14095*** M-x handwrite converts text to a "handwritten" picture.
14096
14097*** M-x iswitchb-buffer is a command for switching to a buffer, much like
14098switch-buffer, but it reads the argument in a more helpful way.
14099
14100*** M-x landmark implements a neural network for landmark learning.
14101
14102*** M-x locate provides a convenient interface to the `locate' program.
14103
14104*** M4 mode is a new mode for editing files of m4 input.
14105
14106*** mantemp.el creates C++ manual template instantiations
14107from the GCC error messages which indicate which instantiations are needed.
14108
14109*** mouse-copy.el provides a one-click copy and move feature.
14110You can drag a region with M-mouse-1, and it is automatically
14111inserted at point. M-Shift-mouse-1 deletes the text from its
14112original place after inserting the copy.
14113
14114*** mouse-drag.el lets you do scrolling by dragging Mouse-2
14115on the buffer.
14116
14117You click the mouse and move; that distance either translates into the
14118velocity to scroll (with mouse-drag-throw) or the distance to scroll
14119(with mouse-drag-drag). Horizontal scrolling is enabled when needed.
14120
14121Enable mouse-drag with:
14122 (global-set-key [down-mouse-2] 'mouse-drag-throw)
14123-or-
14124 (global-set-key [down-mouse-2] 'mouse-drag-drag)
14125
14126*** mspools.el is useful for determining which mail folders have
14127mail waiting to be read in them. It works with procmail.
14128
14129*** Octave mode is a major mode for editing files of input for Octave.
14130It comes with a facility for communicating with an Octave subprocess.
14131
14132*** ogonek
14133
14134The ogonek package provides functions for changing the coding of
14135Polish diacritic characters in buffers. Codings known from various
14136platforms are supported such as ISO8859-2, Mazovia, IBM Latin2, and
14137TeX. For example, you can change the coding from Mazovia to
14138ISO8859-2. Another example is a change of coding from ISO8859-2 to
14139prefix notation (in which `/a' stands for the aogonek character, for
14140instance) and vice versa.
14141
14142To use this package load it using
14143 M-x load-library [enter] ogonek
14144Then, you may get an explanation by calling one of
14145 M-x ogonek-jak -- in Polish
14146 M-x ogonek-how -- in English
14147The info specifies the commands and variables provided as well as the
14148ways of customization in `.emacs'.
14149
14150*** Interface to ph.
14151
14152Emacs provides a client interface to CCSO Nameservers (ph/qi)
14153
14154The CCSO nameserver is used in many universities to provide directory
14155services about people. ph.el provides a convenient Emacs interface to
14156these servers.
14157
14158*** uce.el is useful for replying to unsolicited commercial email.
14159
14160*** vcursor.el implements a "virtual cursor" feature.
14161You can move the virtual cursor with special commands
14162while the real cursor does not move.
14163
14164*** webjump.el is a "hot list" package which you can set up
14165for visiting your favorite web sites.
14166
14167*** M-x winner-mode is a minor mode which saves window configurations,
14168so you can move back to other configurations that you have recently used.
14169
14170** movemail change
14171
14172Movemail no longer needs to be installed setuid root in order for POP
14173mail retrieval to function properly. This is because it no longer
14174supports the RPOP (reserved-port POP) protocol; instead, it uses the
14175user's POP password to authenticate to the mail server.
14176
14177This change was made earlier, but not reported in NEWS before.
14178
14179* Emacs 20.1 changes for MS-DOS and MS-Windows.
14180
14181** Changes in handling MS-DOS/MS-Windows text files.
14182
14183Emacs handles three different conventions for representing
14184end-of-line: CRLF for MSDOS, LF for Unix and GNU, and CR (used on the
14185Macintosh). Emacs determines which convention is used in a specific
14186file based on the contents of that file (except for certain special
14187file names), and when it saves the file, it uses the same convention.
14188
14189To save the file and change the end-of-line convention, you can use
14190C-x RET f (set-buffer-file-coding-system) to specify a different
14191coding system for the buffer. Then, when you save the file, the newly
14192specified coding system will take effect. For example, to save with
14193LF, specify undecided-unix (or some other ...-unix coding system); to
14194save with CRLF, specify undecided-dos.
14195
14196* Lisp Changes in Emacs 20.1
14197
14198** Byte-compiled files made with Emacs 20 will, in general, work in
14199Emacs 19 as well, as long as the source code runs in Emacs 19. And
14200vice versa: byte-compiled files made with Emacs 19 should also run in
14201Emacs 20, as long as the program itself works in Emacs 20.
14202
14203** Windows-specific functions and variables have been renamed
14204to start with w32- instead of win32-.
14205
14206In hacker language, calling something a "win" is a form of praise. We
14207don't want to praise a non-free Microsoft system, so we don't call it
14208"win".
14209
14210** Basic Lisp changes
14211
14212*** A symbol whose name starts with a colon now automatically
14213evaluates to itself. Therefore such a symbol can be used as a constant.
14214
14215*** The defined purpose of `defconst' has been changed. It should now
14216be used only for values that should not be changed whether by a program
14217or by the user.
14218
14219The actual behavior of defconst has not been changed.
14220
14221*** There are new macros `when' and `unless'
14222
14223(when CONDITION BODY...) is short for (if CONDITION (progn BODY...))
14224(unless CONDITION BODY...) is short for (if CONDITION nil BODY...)
14225
14226*** Emacs now defines functions caar, cadr, cdar and cddr with their
14227usual Lisp meanings. For example, caar returns the car of the car of
14228its argument.
14229
14230*** equal, when comparing strings, now ignores their text properties.
14231
14232*** The new function `functionp' tests whether an object is a function.
14233
14234*** arrayp now returns t for char-tables and bool-vectors.
14235
14236*** Certain primitives which use characters (as integers) now get an
14237error if the integer is not a valid character code. These primitives
14238include insert-char, char-to-string, and the %c construct in the
14239`format' function.
14240
14241*** The `require' function now insists on adding a suffix, either .el
14242or .elc, to the file name. Thus, (require 'foo) will not use a file
14243whose name is just foo. It insists on foo.el or foo.elc.
14244
14245*** The `autoload' function, when the file name does not contain
14246either a directory name or the suffix .el or .elc, insists on
14247adding one of these suffixes.
14248
14249*** string-to-number now takes an optional second argument BASE
14250which specifies the base to use when converting an integer.
14251If BASE is omitted, base 10 is used.
14252
14253We have not implemented other radices for floating point numbers,
14254because that would be much more work and does not seem useful.
14255
14256*** substring now handles vectors as well as strings.
14257
14258*** The Common Lisp function eql is no longer defined normally.
14259You must load the `cl' library to define it.
14260
14261*** The new macro `with-current-buffer' lets you evaluate an expression
14262conveniently with a different current buffer. It looks like this:
14263
14264 (with-current-buffer BUFFER BODY-FORMS...)
14265
14266BUFFER is the expression that says which buffer to use.
14267BODY-FORMS say what to do in that buffer.
14268
14269*** The new primitive `save-current-buffer' saves and restores the
14270choice of current buffer, like `save-excursion', but without saving or
14271restoring the value of point or the mark. `with-current-buffer'
14272works using `save-current-buffer'.
14273
14274*** The new macro `with-temp-file' lets you do some work in a new buffer and
14275write the output to a specified file. Like `progn', it returns the value
14276of the last form.
14277
14278*** The new macro `with-temp-buffer' lets you do some work in a new buffer,
14279which is discarded after use. Like `progn', it returns the value of the
14280last form. If you wish to return the buffer contents, use (buffer-string)
14281as the last form.
14282
14283*** The new function split-string takes a string, splits it at certain
14284characters, and returns a list of the substrings in between the
14285matches.
14286
14287For example, (split-string "foo bar lose" " +") returns ("foo" "bar" "lose").
14288
14289*** The new macro with-output-to-string executes some Lisp expressions
14290with standard-output set up so that all output feeds into a string.
14291Then it returns that string.
14292
14293For example, if the current buffer name is `foo',
14294
14295(with-output-to-string
14296 (princ "The buffer is ")
14297 (princ (buffer-name)))
14298
14299returns "The buffer is foo".
14300
14301** Non-ASCII characters are now supported, if enable-multibyte-characters
14302is non-nil.
14303
14304These characters have character codes above 256. When inserted in the
14305buffer or stored in a string, they are represented as multibyte
14306characters that occupy several buffer positions each.
14307
14308*** When enable-multibyte-characters is non-nil, a single character in
14309a buffer or string can be two or more bytes (as many as four).
14310
14311Buffers and strings are still made up of unibyte elements;
14312character positions and string indices are always measured in bytes.
14313Therefore, moving forward one character can increase the buffer
14314position by 2, 3 or 4. The function forward-char moves by whole
14315characters, and therefore is no longer equivalent to
14316 (lambda (n) (goto-char (+ (point) n))).
14317
14318ASCII characters (codes 0 through 127) are still single bytes, always.
14319Sequences of byte values 128 through 255 are used to represent
14320non-ASCII characters. These sequences are called "multibyte
14321characters".
14322
14323The first byte of a multibyte character is always in the range 128
14324through 159 (octal 0200 through 0237). These values are called
14325"leading codes". The second and subsequent bytes are always in the
14326range 160 through 255 (octal 0240 through 0377). The first byte, the
14327leading code, determines how many bytes long the sequence is.
14328
14329*** The function forward-char moves over characters, and therefore
14330(forward-char 1) may increase point by more than 1 if it moves over a
14331multibyte character. Likewise, delete-char always deletes a
14332character, which may be more than one buffer position.
14333
14334This means that some Lisp programs, which assume that a character is
14335always one buffer position, need to be changed.
14336
14337However, all ASCII characters are always one buffer position.
14338
14339*** The regexp [\200-\377] no longer matches all non-ASCII characters,
14340because when enable-multibyte-characters is non-nil, these characters
14341have codes that are not in the range octal 200 to octal 377. However,
14342the regexp [^\000-\177] does match all non-ASCII characters,
14343guaranteed.
14344
14345*** The function char-boundary-p returns non-nil if position POS is
14346between two characters in the buffer (not in the middle of a
14347character).
14348
14349When the value is non-nil, it says what kind of character follows POS:
14350
14351 0 if POS is at an ASCII character or at the end of range,
14352 1 if POS is before a 2-byte length multi-byte form,
14353 2 if POS is at a head of 3-byte length multi-byte form,
14354 3 if POS is at a head of 4-byte length multi-byte form,
14355 4 if POS is at a head of multi-byte form of a composite character.
14356
14357*** The function char-bytes returns how many bytes the character CHAR uses.
14358
14359*** Strings can contain multibyte characters. The function
14360`length' returns the string length counting bytes, which may be
14361more than the number of characters.
14362
14363You can include a multibyte character in a string constant by writing
14364it literally. You can also represent it with a hex escape,
14365\xNNNNNNN..., using as many digits as necessary. Any character which
14366is not a valid hex digit terminates this construct. If you want to
14367follow it with a character that is a hex digit, write backslash and
14368newline in between; that will terminate the hex escape.
14369
14370*** The function concat-chars takes arguments which are characters
14371and returns a string containing those characters.
14372
14373*** The function sref access a multibyte character in a string.
14374(sref STRING INDX) returns the character in STRING at INDEX. INDEX
14375counts from zero. If INDEX is at a position in the middle of a
14376character, sref signals an error.
14377
14378*** The function chars-in-string returns the number of characters
14379in a string. This is less than the length of the string, if the
14380string contains multibyte characters (the length counts bytes).
14381
14382*** The function chars-in-region returns the number of characters
14383in a region from BEG to END. This is less than (- END BEG) if the
14384region contains multibyte characters (the length counts bytes).
14385
14386*** The function string-to-list converts a string to a list of
14387the characters in it. string-to-vector converts a string
14388to a vector of the characters in it.
14389
14390*** The function store-substring alters part of the contents
14391of a string. You call it as follows:
14392
14393 (store-substring STRING IDX OBJ)
14394
14395This says to alter STRING, by storing OBJ starting at index IDX in
14396STRING. OBJ may be either a character or a (smaller) string.
14397This function really does alter the contents of STRING.
14398Since it is impossible to change the length of an existing string,
14399it is an error if OBJ doesn't fit within STRING's actual length.
14400
14401*** char-width returns the width (in columns) of the character CHAR,
14402if it were displayed in the current buffer and the selected window.
14403
14404*** string-width returns the width (in columns) of the text in STRING,
14405if it were displayed in the current buffer and the selected window.
14406
14407*** truncate-string-to-width shortens a string, if necessary,
14408to fit within a certain number of columns. (Of course, it does
14409not alter the string that you give it; it returns a new string
14410which contains all or just part of the existing string.)
14411
14412(truncate-string-to-width STR END-COLUMN &optional START-COLUMN PADDING)
14413
14414This returns the part of STR up to column END-COLUMN.
14415
14416The optional argument START-COLUMN specifies the starting column.
14417If this is non-nil, then the first START-COLUMN columns of the string
14418are not included in the resulting value.
14419
14420The optional argument PADDING, if non-nil, is a padding character to be added
14421at the beginning and end the resulting string, to extend it to exactly
14422WIDTH columns. If PADDING is nil, that means do not pad; then, if STRING
14423is narrower than WIDTH, the value is equal to STRING.
14424
14425If PADDING and START-COLUMN are both non-nil, and if there is no clean
14426place in STRING that corresponds to START-COLUMN (because one
14427character extends across that column), then the padding character
14428PADDING is added one or more times at the beginning of the result
14429string, so that its columns line up as if it really did start at
14430column START-COLUMN.
14431
14432*** When the functions in the list after-change-functions are called,
14433the third argument is the number of bytes in the pre-change text, not
14434necessarily the number of characters. It is, in effect, the
14435difference in buffer position between the beginning and the end of the
14436changed text, before the change.
14437
14438*** The characters Emacs uses are classified in various character
14439sets, each of which has a name which is a symbol. In general there is
14440one character set for each script, not for each language.
14441
14442**** The function charsetp tests whether an object is a character set name.
14443
14444**** The variable charset-list holds a list of character set names.
14445
14446**** char-charset, given a character code, returns the name of the character
14447set that the character belongs to. (The value is a symbol.)
14448
14449**** split-char, given a character code, returns a list containing the
14450name of the character set, followed by one or two byte-values
14451which identify the character within that character set.
14452
14453**** make-char, given a character set name and one or two subsequent
14454byte-values, constructs a character code. This is roughly the
14455opposite of split-char.
14456
14457**** find-charset-region returns a list of the character sets
14458of all the characters between BEG and END.
14459
14460**** find-charset-string returns a list of the character sets
14461of all the characters in a string.
14462
14463*** Here are the Lisp facilities for working with coding systems
14464and specifying coding systems.
14465
14466**** The function coding-system-list returns a list of all coding
14467system names (symbols). With optional argument t, it returns a list
14468of all distinct base coding systems, not including variants.
14469(Variant coding systems are those like latin-1-dos, latin-1-unix
14470and latin-1-mac which specify the end-of-line conversion as well
14471as what to do about code conversion.)
14472
14473**** coding-system-p tests a symbol to see if it is a coding system
14474name. It returns t if so, nil if not.
14475
14476**** file-coding-system-alist specifies which coding systems to use
14477for certain file names. It works like network-coding-system-alist,
14478except that the PATTERN is matched against the file name.
14479
14480Each element has the format (PATTERN . VAL), where PATTERN determines
14481which file names the element applies to. PATTERN should be a regexp
14482to match against a file name.
14483
14484VAL is a coding system, a cons cell containing two coding systems, or
14485a function symbol. If VAL is a coding system, it is used for both
14486decoding what received from the network stream and encoding what sent
14487to the network stream. If VAL is a cons cell containing two coding
14488systems, the car specifies the coding system for decoding, and the cdr
14489specifies the coding system for encoding.
14490
14491If VAL is a function symbol, the function must return a coding system
14492or a cons cell containing two coding systems, which is used as above.
14493
14494**** The variable network-coding-system-alist specifies
14495the coding system to use for network sockets.
14496
14497Each element has the format (PATTERN . VAL), where PATTERN determines
14498which network sockets the element applies to. PATTERN should be
14499either a port number or a regular expression matching some network
14500service names.
14501
14502VAL is a coding system, a cons cell containing two coding systems, or
14503a function symbol. If VAL is a coding system, it is used for both
14504decoding what received from the network stream and encoding what sent
14505to the network stream. If VAL is a cons cell containing two coding
14506systems, the car specifies the coding system for decoding, and the cdr
14507specifies the coding system for encoding.
14508
14509If VAL is a function symbol, the function must return a coding system
14510or a cons cell containing two coding systems, which is used as above.
14511
14512**** process-coding-system-alist specifies which coding systems to use
14513for certain subprocess. It works like network-coding-system-alist,
14514except that the PATTERN is matched against the program name used to
14515start the subprocess.
14516
14517**** The variable default-process-coding-system specifies the coding
14518systems to use for subprocess (and net connection) input and output,
14519when nothing else specifies what to do. The value is a cons cell
14520(OUTPUT-CODING . INPUT-CODING). OUTPUT-CODING applies to output
14521to the subprocess, and INPUT-CODING applies to input from it.
14522
14523**** The variable coding-system-for-write, if non-nil, specifies the
14524coding system to use for writing a file, or for output to a synchronous
14525subprocess.
14526
14527It also applies to any asynchronous subprocess or network connection,
14528but in a different way: the value of coding-system-for-write when you
14529start the subprocess or connection affects that subprocess or
14530connection permanently or until overridden.
14531
14532The variable coding-system-for-write takes precedence over
14533file-coding-system-alist, process-coding-system-alist and
14534network-coding-system-alist, and all other methods of specifying a
14535coding system for output. But most of the time this variable is nil.
14536It exists so that Lisp programs can bind it to a specific coding
14537system for one operation at a time.
14538
14539**** coding-system-for-read applies similarly to input from
14540files, subprocesses or network connections.
14541
14542**** The function process-coding-system tells you what
14543coding systems(s) an existing subprocess is using.
14544The value is a cons cell,
14545 (DECODING-CODING-SYSTEM . ENCODING-CODING-SYSTEM)
14546where DECODING-CODING-SYSTEM is used for decoding output from
14547the subprocess, and ENCODING-CODING-SYSTEM is used for encoding
14548input to the subprocess.
14549
14550**** The function set-process-coding-system can be used to
14551change the coding systems in use for an existing subprocess.
14552
14553** Emacs has a new facility to help users manage the many
14554customization options. To make a Lisp program work with this facility,
14555you need to use the new macros defgroup and defcustom.
14556
14557You use defcustom instead of defvar, for defining a user option
14558variable. The difference is that you specify two additional pieces of
14559information (usually): the "type" which says what values are
14560legitimate, and the "group" which specifies the hierarchy for
14561customization.
14562
14563Thus, instead of writing
14564
14565 (defvar foo-blurgoze nil
14566 "*Non-nil means that foo will act very blurgozely.")
14567
14568you would now write this:
14569
14570 (defcustom foo-blurgoze nil
14571 "*Non-nil means that foo will act very blurgozely."
14572 :type 'boolean
14573 :group foo)
14574
14575The type `boolean' means that this variable has only
14576two meaningful states: nil and non-nil. Other type values
14577describe other possibilities; see the manual for Custom
14578for a description of them.
14579
14580The "group" argument is used to specify a group which the option
14581should belong to. You define a new group like this:
14582
14583 (defgroup ispell nil
14584 "Spell checking using Ispell."
14585 :group 'processes)
14586
14587The "group" argument in defgroup specifies the parent group. The root
14588group is called `emacs'; it should not contain any variables itself,
14589but only other groups. The immediate subgroups of `emacs' correspond
14590to the keywords used by C-h p. Under these subgroups come
14591second-level subgroups that belong to individual packages.
14592
14593Each Emacs package should have its own set of groups. A simple
14594package should have just one group; a more complex package should
14595have a hierarchy of its own groups. The sole or root group of a
14596package should be a subgroup of one or more of the "keyword"
14597first-level subgroups.
14598
14599** New `widget' library for inserting UI components in buffers.
14600
14601This library, used by the new custom library, is documented in a
14602separate manual that accompanies Emacs.
14603
14604** easy-mmode
14605
14606The easy-mmode package provides macros and functions that make
14607developing minor modes easier. Roughly, the programmer has to code
14608only the functionality of the minor mode. All the rest--toggles,
14609predicate, and documentation--can be done in one call to the macro
14610`easy-mmode-define-minor-mode' (see the documentation). See also
14611`easy-mmode-define-keymap'.
14612
14613** Text property changes
14614
14615*** The `intangible' property now works on overlays as well as on a
14616text property.
14617
14618*** The new functions next-char-property-change and
14619previous-char-property-change scan through the buffer looking for a
14620place where either a text property or an overlay might change. The
14621functions take two arguments, POSITION and LIMIT. POSITION is the
14622starting position for the scan. LIMIT says where to stop the scan.
14623
14624If no property change is found before LIMIT, the value is LIMIT. If
14625LIMIT is nil, scan goes to the beginning or end of the accessible part
14626of the buffer. If no property change is found, the value is the
14627position of the beginning or end of the buffer.
14628
14629*** In the `local-map' text property or overlay property, the property
14630value can now be a symbol whose function definition is a keymap. This
14631is an alternative to using the keymap itself.
14632
14633** Changes in invisibility features
14634
14635*** Isearch can now temporarily show parts of the buffer which are
14636hidden by an overlay with a invisible property, when the search match
14637is inside that portion of the buffer. To enable this the overlay
14638should have a isearch-open-invisible property which is a function that
14639would be called having the overlay as an argument, the function should
14640make the overlay visible.
14641
14642During incremental search the overlays are shown by modifying the
14643invisible and intangible properties, if beside this more actions are
14644needed the overlay should have a isearch-open-invisible-temporary
14645which is a function. The function is called with 2 arguments: one is
14646the overlay and the second is nil when it should show the overlay and
14647t when it should hide it.
14648
14649*** add-to-invisibility-spec, remove-from-invisibility-spec
14650
14651Modes that use overlays to hide portions of a buffer should set the
14652invisible property of the overlay to the mode's name (or another symbol)
14653and modify the `buffer-invisibility-spec' to include that symbol.
14654Use `add-to-invisibility-spec' and `remove-from-invisibility-spec' to
14655manipulate the `buffer-invisibility-spec'.
14656Here is an example of how to do this:
14657
14658 ;; If we want to display an ellipsis:
14659 (add-to-invisibility-spec '(my-symbol . t))
14660 ;; If you don't want ellipsis:
14661 (add-to-invisibility-spec 'my-symbol)
14662
14663 ...
14664 (overlay-put (make-overlay beginning end) 'invisible 'my-symbol)
14665
14666 ...
14667 ;; When done with the overlays:
14668 (remove-from-invisibility-spec '(my-symbol . t))
14669 ;; Or respectively:
14670 (remove-from-invisibility-spec 'my-symbol)
14671
14672** Changes in syntax parsing.
14673
14674*** The syntax-directed buffer-scan functions (such as
14675`parse-partial-sexp', `forward-word' and similar functions) can now
14676obey syntax information specified by text properties, if the variable
14677`parse-sexp-lookup-properties' is non-nil.
14678
14679If the value of `parse-sexp-lookup-properties' is nil, the behavior
14680is as before: the syntax-table of the current buffer is always
14681used to determine the syntax of the character at the position.
14682
14683When `parse-sexp-lookup-properties' is non-nil, the syntax of a
14684character in the buffer is calculated thus:
14685
14686 a) if the `syntax-table' text-property of that character
14687 is a cons, this cons becomes the syntax-type;
14688
14689 Valid values of `syntax-table' text-property are: nil, a valid
14690 syntax-table, and a valid syntax-table element, i.e.,
14691 a cons cell of the form (SYNTAX-CODE . MATCHING-CHAR).
14692
14693 b) if the character's `syntax-table' text-property
14694 is a syntax table, this syntax table is used
14695 (instead of the syntax-table of the current buffer) to
14696 determine the syntax type of the character.
14697
14698 c) otherwise the syntax-type is determined by the syntax-table
14699 of the current buffer.
14700
14701*** The meaning of \s in regular expressions is also affected by the
14702value of `parse-sexp-lookup-properties'. The details are the same as
14703for the syntax-directed buffer-scan functions.
14704
14705*** There are two new syntax-codes, `!' and `|' (numeric values 14
14706and 15). A character with a code `!' starts a comment which is ended
14707only by another character with the same code (unless quoted). A
14708character with a code `|' starts a string which is ended only by
14709another character with the same code (unless quoted).
14710
14711These codes are mainly meant for use as values of the `syntax-table'
14712text property.
14713
14714*** The function `parse-partial-sexp' has new semantics for the sixth
14715arg COMMENTSTOP. If it is `syntax-table', parse stops after the start
14716of a comment or a string, or after end of a comment or a string.
14717
14718*** The state-list which the return value from `parse-partial-sexp'
14719(and can also be used as an argument) now has an optional ninth
14720element: the character address of the start of last comment or string;
14721nil if none. The fourth and eighth elements have special values if the
14722string/comment is started by a "!" or "|" syntax-code.
14723
14724*** Since new features of `parse-partial-sexp' allow a complete
14725syntactic parsing, `font-lock' no longer supports
14726`font-lock-comment-start-regexp'.
14727
14728** Changes in face features
14729
14730*** The face functions are now unconditionally defined in Emacs, even
14731if it does not support displaying on a device that supports faces.
14732
14733*** The function face-documentation returns the documentation string
14734of a face (or nil if it doesn't have one).
14735
14736*** The function face-bold-p returns t if a face should be bold.
14737set-face-bold-p sets that flag.
14738
14739*** The function face-italic-p returns t if a face should be italic.
14740set-face-italic-p sets that flag.
14741
14742*** You can now specify foreground and background colors for text
14743by adding elements of the form (foreground-color . COLOR-NAME)
14744and (background-color . COLOR-NAME) to the list of faces in
14745the `face' property (either the character's text property or an
14746overlay property).
14747
14748This means that you no longer need to create named faces to use
14749arbitrary colors in a Lisp package.
14750
14751** Changes in file-handling functions
14752
14753*** File-access primitive functions no longer discard an extra redundant
14754directory name from the beginning of the file name. In other words,
14755they no longer do anything special with // or /~. That conversion
14756is now done only in substitute-in-file-name.
14757
14758This makes it possible for a Lisp program to open a file whose name
14759begins with ~.
14760
14761*** If copy-file is unable to set the date of the output file,
14762it now signals an error with the condition file-date-error.
14763
14764*** The inode number returned by file-attributes may be an integer (if
14765the number fits in a Lisp integer) or a list of integers.
14766
14767*** insert-file-contents can now read from a special file,
14768as long as the arguments VISIT and REPLACE are nil.
14769
14770*** The RAWFILE arg to find-file-noselect, if non-nil, now suppresses
14771character code conversion as well as other things.
14772
14773Meanwhile, this feature does work with remote file names
14774(formerly it did not).
14775
14776*** Lisp packages which create temporary files should use the TMPDIR
14777environment variable to decide which directory to put them in.
14778
14779*** interpreter-mode-alist elements now specify regexps
14780instead of constant strings.
14781
14782*** expand-file-name no longer treats `//' or `/~' specially. It used
14783to delete all the text of a file name up through the first slash of
14784any `//' or `/~' sequence. Now it passes them straight through.
14785
14786substitute-in-file-name continues to treat those sequences specially,
14787in the same way as before.
14788
14789*** The variable `format-alist' is more general now.
14790The FROM-FN and TO-FN in a format definition can now be strings
14791which specify shell commands to use as filters to perform conversion.
14792
14793*** The new function access-file tries to open a file, and signals an
14794error if that fails. If the open succeeds, access-file does nothing
14795else, and returns nil.
14796
14797*** The function insert-directory now signals an error if the specified
14798directory cannot be listed.
14799
14800** Changes in minibuffer input
14801
14802*** The functions read-buffer, read-variable, read-command, read-string
14803read-file-name, read-from-minibuffer and completing-read now take an
14804additional argument which specifies the default value. If this
14805argument is non-nil, it should be a string; that string is used in two
14806ways:
14807
14808 It is returned if the user enters empty input.
14809 It is available through the history command M-n.
14810
14811*** The functions read-string, read-from-minibuffer,
14812read-no-blanks-input and completing-read now take an additional
14813argument INHERIT-INPUT-METHOD. If this is non-nil, then the
14814minibuffer inherits the current input method and the setting of
14815enable-multibyte-characters from the previously current buffer.
14816
14817In an interactive spec, you can use M instead of s to read an
14818argument in this way.
14819
14820*** All minibuffer input functions discard text properties
14821from the text you enter in the minibuffer, unless the variable
14822minibuffer-allow-text-properties is non-nil.
14823
14824** Echo area features
14825
14826*** Clearing the echo area now runs the normal hook
14827echo-area-clear-hook. Note that the echo area can be used while the
14828minibuffer is active; in that case, the minibuffer is still active
14829after the echo area is cleared.
14830
14831*** The function current-message returns the message currently displayed
14832in the echo area, or nil if there is none.
14833
14834** Keyboard input features
14835
14836*** tty-erase-char is a new variable that reports which character was
14837set up as the terminal's erase character when time Emacs was started.
14838
14839*** num-nonmacro-input-events is the total number of input events
14840received so far from the terminal. It does not count those generated
14841by keyboard macros.
14842
14843** Frame-related changes
14844
14845*** make-frame runs the normal hook before-make-frame-hook just before
14846creating a frame, and just after creating a frame it runs the abnormal
14847hook after-make-frame-functions with the new frame as arg.
14848
14849*** The new hook window-configuration-change-hook is now run every time
14850the window configuration has changed. The frame whose configuration
14851has changed is the selected frame when the hook is run.
14852
14853*** Each frame now independently records the order for recently
14854selected buffers, in its buffer-list frame parameter, so that the
14855value of other-buffer is now based on the buffers recently displayed
14856in the selected frame.
14857
14858*** The value of the frame parameter vertical-scroll-bars
14859is now `left', `right' or nil. A non-nil value specifies
14860which side of the window to put the scroll bars on.
14861
14862** X Windows features
14863
14864*** You can examine X resources for other applications by binding
14865x-resource-class around a call to x-get-resource. The usual value of
14866x-resource-class is "Emacs", which is the correct value for Emacs.
14867
14868*** In menus, checkboxes and radio buttons now actually work.
14869The menu displays the current status of the box or button.
14870
14871*** The function x-list-fonts now takes an optional fourth argument
14872MAXIMUM which sets a limit on how many matching fonts to return.
14873A smaller value of MAXIMUM makes the function faster.
14874
14875If the only question is whether *any* font matches the pattern,
14876it is good to supply 1 for this argument.
14877
14878** Subprocess features
14879
14880*** A reminder: it is no longer necessary for subprocess filter
14881functions and sentinels to do save-match-data, because Emacs does this
14882automatically.
14883
14884*** The new function shell-command-to-string executes a shell command
14885and returns the output from the command as a string.
14886
14887*** The new function process-contact returns t for a child process,
14888and (HOSTNAME SERVICE) for a net connection.
14889
14890** An error in running pre-command-hook or post-command-hook
14891does clear the variable to nil. The documentation was wrong before.
14892
14893** In define-key-after, if AFTER is t, the new binding now always goes
14894at the end of the keymap. If the keymap is a menu, this means it
14895goes after the other menu items.
14896
14897** If you have a program that makes several changes in the same area
14898of the buffer, you can use the macro combine-after-change-calls
14899around that Lisp code to make it faster when after-change hooks
14900are in use.
14901
14902The macro arranges to call the after-change functions just once for a
14903series of several changes--if that seems safe.
14904
14905Don't alter the variables after-change-functions and
14906after-change-function within the body of a combine-after-change-calls
14907form.
14908
14909** If you define an abbrev (with define-abbrev) whose EXPANSION
14910is not a string, then the abbrev does not expand in the usual sense,
14911but its hook is still run.
14912
14913** Normally, the Lisp debugger is not used (even if you have enabled it)
14914for errors that are handled by condition-case.
14915
14916If you set debug-on-signal to a non-nil value, then the debugger is called
14917regardless of whether there is a handler for the condition. This is
14918useful for debugging problems that happen inside of a condition-case.
14919
14920This mode of operation seems to be unreliable in other ways. Errors that
14921are normal and ought to be handled, perhaps in timers or process
14922filters, will instead invoke the debugger. So don't say you weren't
14923warned.
14924
14925** The new variable ring-bell-function lets you specify your own
14926way for Emacs to "ring the bell".
14927
14928** If run-at-time's TIME argument is t, the action is repeated at
14929integral multiples of REPEAT from the epoch; this is useful for
14930functions like display-time.
14931
14932** You can use the function locate-library to find the precise file
14933name of a Lisp library. This isn't new, but wasn't documented before.
14934
14935** Commands for entering view mode have new optional arguments that
14936can be used from Lisp. Low-level entrance to and exit from view mode
14937is done by functions view-mode-enter and view-mode-exit.
14938
14939** batch-byte-compile-file now makes Emacs return a nonzero status code
14940if there is an error in compilation.
14941
14942** pop-to-buffer, switch-to-buffer-other-window and
14943switch-to-buffer-other-frame now accept an additional optional
14944argument NORECORD, much like switch-to-buffer. If it is non-nil,
14945they don't put the buffer at the front of the buffer list.
14946
14947** If your .emacs file leaves the *scratch* buffer non-empty,
14948Emacs does not display the startup message, so as to avoid changing
14949the *scratch* buffer.
14950
14951** The new function regexp-opt returns an efficient regexp to match a string.
14952The arguments are STRINGS and (optionally) PAREN. This function can be used
14953where regexp matching or searching is intensively used and speed is important,
14954e.g., in Font Lock mode.
14955
14956** The variable buffer-display-count is local to each buffer,
14957and is incremented each time the buffer is displayed in a window.
14958It starts at 0 when the buffer is created.
14959
14960** The new function compose-mail starts composing a mail message
14961using the user's chosen mail composition agent (specified with the
14962variable mail-user-agent). It has variants compose-mail-other-window
14963and compose-mail-other-frame.
14964
14965** The `user-full-name' function now takes an optional parameter which
14966can either be a number (the UID) or a string (the login name). The
14967full name of the specified user will be returned.
14968
14969** Lisp packages that load files of customizations, or any other sort
14970of user profile, should obey the variable init-file-user in deciding
14971where to find it. They should load the profile of the user name found
14972in that variable. If init-file-user is nil, meaning that the -q
14973option was used, then Lisp packages should not load the customization
14974files at all.
14975
14976** format-time-string now allows you to specify the field width
14977and type of padding. This works as in printf: you write the field
14978width as digits in the middle of a %-construct. If you start
14979the field width with 0, it means to pad with zeros.
14980
14981For example, %S normally specifies the number of seconds since the
14982minute; %03S means to pad this with zeros to 3 positions, %_3S to pad
14983with spaces to 3 positions. Plain %3S pads with zeros, because that
14984is how %S normally pads to two positions.
14985
14986** thing-at-point now supports a new kind of "thing": url.
14987
14988** imenu.el changes.
14989
14990You can now specify a function to be run when selecting an
14991item from menu created by imenu.
14992
14993An example of using this feature: if we define imenu items for the
14994#include directives in a C file, we can open the included file when we
14995select one of those items.
14996
14997* For older news, see the file ONEWS
14998
14999---------------------------------------------------------------------- 5755----------------------------------------------------------------------
15000Copyright information: 5756Copyright information:
15001 5757
15002Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 5758Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
15003 2005, 2006 Free Software Foundation, Inc. 5759 Free Software Foundation, Inc.
15004 5760
15005 Permission is granted to anyone to make or distribute verbatim copies 5761 Permission is granted to anyone to make or distribute verbatim copies
15006 of this document as received, in any medium, provided that the 5762 of this document as received, in any medium, provided that the
diff --git a/etc/ONEWS.2 b/etc/NEWS.1-17
index d9f75c278ed..0297c928b72 100644
--- a/etc/ONEWS.2
+++ b/etc/NEWS.1-17
@@ -1,8 +1,10 @@
1GNU Emacs NEWS -- history of user-visible changes. 26-Mar-1986 1GNU Emacs NEWS -- history of user-visible changes. 26-Mar-1986
2Copyright (C) 1986 Richard M. Stallman. 2Copyright (C) 1985, 1986, 2006 Richard M. Stallman.
3See the end for copying conditions. 3See the end for copying conditions.
4 4
5For older news, see the file ONEWS.1. 5This file is about changes in emacs versions 1 through 17.
6
7
6 8
7Changes in Emacs 17 9Changes in Emacs 17
8 10
@@ -407,6 +409,7 @@ By default it is still "--text follows this line--".
407 409
408Just before each garbage collection, all but the last 30 elements 410Just before each garbage collection, all but the last 30 elements
409of the command history are discarded. 411of the command history are discarded.
412
410 413
411Incompatible Lisp Programming Changes in Emacs 17 414Incompatible Lisp Programming Changes in Emacs 17
412 415
@@ -484,6 +487,7 @@ The functions `forward-to-word', `backward-to-word',
484`upcase-char', `mark-beginning-of-buffer' and `mark-end-of-buffer' 487`upcase-char', `mark-beginning-of-buffer' and `mark-end-of-buffer'
485have been removed. Their definitions can be found in file 488have been removed. Their definitions can be found in file
486lisp/unused.el if you need them. 489lisp/unused.el if you need them.
490
487 491
488Upward Compatible Lisp Programming Changes in Emacs 17 492Upward Compatible Lisp Programming Changes in Emacs 17
489 493
@@ -804,6 +808,8 @@ a period in `modify-syntax-entry'.
804 808
805Backup suffixes of all kinds are now stripped from a file's name 809Backup suffixes of all kinds are now stripped from a file's name
806before searching `auto-mode-alist'. 810before searching `auto-mode-alist'.
811
812
807 813
808Changes in Emacs 16 814Changes in Emacs 16
809 815
@@ -1325,13 +1331,1187 @@ except when `-batch' has been specified.
1325* Emacs can be built with output redirected to a file. 1331* Emacs can be built with output redirected to a file.
1326 1332
1327This is because -batch (see above) is now used in building Emacs. 1333This is because -batch (see above) is now used in building Emacs.
1334
1335
1336
1337Changes in Emacs 15
1338
1339* Emacs now runs on Sun and Megatest 68000 systems;
1340 also on at least one 16000 system running 4.2.
1341
1342* Emacs now alters the output-start and output-stop characters
1343 to prevent C-s and C-q from being considered as flow control
1344 by cretinous rlogin software in 4.2.
1345
1346* It is now possible convert Mocklisp code (for Gosling Emacs) to Lisp code
1347 that can run in GNU Emacs. M-x convert-mocklisp-buffer
1348 converts the contents of the current buffer from Mocklisp to
1349 GNU Emacs Lisp. You should then save the converted buffer with C-x C-w
1350 under a name ending in ".el"
1351
1352 There are probably some Mocklisp constructs that are not handled.
1353 If you encounter one, feel free to report the failure as a bug.
1354 The construct will be handled in a future Emacs release, if that is not
1355 not too hard to do.
1356
1357 Note that lisp code converted from Mocklisp code will not necessarily
1358 run as fast as code specifically written for GNU Emacs, nor will it use
1359 the many features of GNU Emacs which are not present in Gosling's emacs.
1360 (In particular, the byte-compiler (m-x byte-compile-file) knows little
1361 about compilation of code directly converted from mocklisp.)
1362 It is envisaged that old mocklisp code will be incrementally converted
1363 to GNU lisp code, with M-x convert-mocklisp-buffer being the first
1364 step in this process.
1365
1366* Control-x n (narrow-to-region) is now by default a disabled command.
1367
1368 This means that, if you issue this command, it will ask whether
1369 you really mean it. You have the opportunity to enable the
1370 command permanently at that time, so you will not be asked again.
1371 This will place the form "(put 'narrow-to-region 'disabled nil)" in your
1372 .emacs file.
1373
1374* Tags now prompts for the tag table file name to use.
1375
1376 All the tags commands ask for the tag table file name
1377 if you have not yet specified one.
1378
1379 Also, the command M-x visit-tag-table can now be used to
1380 specify the tag table file name initially, or to switch
1381 to a new tag table.
1382
1383* If truncate-partial-width-windows is non-nil (as it intially is),
1384 all windows less than the full screen width (that is,
1385 made by side-by-side splitting) truncate lines rather than continuing
1386 them.
1387
1388* Emacs now checks for Lisp stack overflow to avoid fatal errors.
1389 The depth in eval, apply and funcall may not exceed max-lisp-eval-depth.
1390 The depth in variable bindings and unwind-protects may not exceed
1391 max-specpdl-size. If either limit is exceeded, an error occurs.
1392 You can set the limits to larger values if you wish, but if you make them
1393 too large, you are vulnerable to a fatal error if you invoke
1394 Lisp code that does infinite recursion.
1395
1396* New hooks find-file-hook and write-file-hook.
1397 Both of these variables if non-nil should be functions of no arguments.
1398 At the time they are called (current-buffer) will be the buffer being
1399 read or written respectively.
1400
1401 find-file-hook is called whenever a file is read into its own buffer,
1402 such as by calling find-file, revert-buffer, etc. It is not called by
1403 functions such as insert-file which do not read the file into a buffer of
1404 its own.
1405 find-file-hook is called after the file has been read in and its
1406 local variables (if any) have been processed.
1407
1408 write-file-hook is called just before writing out a file from a buffer.
1409
1410* The initial value of shell-prompt-pattern is now "^[^#$%>]*[#$%>] *"
1411
1412* If the .emacs file sets inhibit-startup-message to non-nil,
1413 the messages normally printed by Emacs at startup time
1414 are inhibited.
1415
1416* Facility for run-time conditionalization on the basis of emacs features.
1417
1418 The new variable features is a list of symbols which represent "features"
1419 of the executing emacs, for use in run-time conditionalization.
1420
1421 The function featurep of one argument may be used to test for the
1422 presence of a feature. It is just the same as
1423 (not (null (memq FEATURE features))) where FEATURE is its argument.
1424 For example, (if (featurep 'magic-window-hack)
1425 (transmogrify-window 'vertical)
1426 (split-window-vertically))
1427
1428 The function provide of one argument "announces" that FEATURE is present.
1429 It is much the same as (if (not (featurep FEATURE))
1430 (setq features (cons FEATURE features)))
1431
1432 The function require with arguments FEATURE and FILE-NAME loads FILE-NAME
1433 (which should contain the form (provide FEATURE)) unless FEATURE is present.
1434 It is much the same as (if (not (featurep FEATURE))
1435 (progn (load FILE-NAME)
1436 (if (not featurep FEATURE) (error ...))))
1437 FILE-NAME is optional and defaults to FEATURE.
1438
1439* New function load-average.
1440
1441 This returns a list of three integers, which are
1442 the current 1 minute, 5 minute and 15 minute load averages,
1443 each multiplied by a hundred (since normally they are floating
1444 point numbers).
1445
1446* Per-terminal libraries loaded automatically.
1447
1448 Emacs when starting up on terminal type T automatically loads
1449 a library named term-T. T is the value of the TERM environment variable.
1450 Thus, on terminal type vt100, Emacs would do (load "term-vt100" t t).
1451 Such libraries are good places to set the character translation table.
1452
1453 It is a bad idea to redefine lots of commands in a per-terminal library,
1454 since this affects all users. Instead, define a command to do the
1455 redefinitions and let the user's init file, which is loaded later,
1456 call that command or not, as the user prefers.
1457
1458* Programmer's note: detecting killed buffers.
1459
1460 Buffers are eliminated by explicitly killing them, using
1461 the function kill-buffer. This does not eliminate or affect
1462 the pointers to the buffer which may exist in list structure.
1463 If you have a pointer to a buffer and wish to tell whether
1464 the buffer has been killed, use the function buffer-name.
1465 It returns nil on a killed buffer, and a string on a live buffer.
1466
1467* New ways to access the last command input character.
1468
1469 The function last-key-struck, which used to return the last
1470 input character that was read by command input, is eliminated.
1471 Instead, you can find this information as the value of the
1472 variable last-command-char. (This variable used to be called
1473 last-key).
1474
1475 Another new variable, last-input-char, holds the last character
1476 read from the command input stream regardless of what it was
1477 read for. last-input-char and last-command-char are different
1478 only inside a command that has called read-char to read input.
1479
1480* The new switch -kill causes Emacs to exit after processing the
1481 preceding command line arguments. Thus,
1482 emacs -l lib data -e do-it -kill
1483 means to load lib, find file data, call do-it on no arguments,
1484 and then exit.
1485
1486* The config.h file has been modularized.
1487
1488 Options that depend on the machine you are running on are defined
1489 in a file whose name starts with "m-", such as m-vax.h.
1490 Options that depend on the operating system software version you are
1491 running on are defined in a file whose name starts with "s-",
1492 such as s-bsd4.2.h.
1493
1494 config.h includes one m- file and one s- file. It also defines a
1495 few other options whose values do not follow from the machine type
1496 and system type being used. Installers normally will have to
1497 select the correct m- and s- files but will never have to change their
1498 contents.
1499
1500* Termcap AL and DL strings are understood.
1501
1502 If the termcap entry defines AL and DL strings, for insertion
1503 and deletion of multiple lines in one blow, Emacs now uses them.
1504 This matters most on certain bit map display terminals for which
1505 scrolling is comparatively slow.
1506
1507* Bias against scrolling screen far on fast terminals.
1508
1509 Emacs now prefers to redraw a few lines rather than
1510 shift them a long distance on the screen, when the terminal is fast.
1511
1512* New major mode, mim-mode.
1513
1514 This major mode is for editing MDL code. Perhaps a MDL
1515 user can explain why it is not called mdl-mode.
1516 You must load the library mim-mode explicitly to use this.
1517
1518* GNU documentation formatter `texinfo'.
1519
1520 The `texinfo' library defines a format for documentation
1521 files which can be passed through Tex to make a printed manual
1522 or passed through texinfo to make an Info file. Texinfo is
1523 documented fully by its own Info file; compare this file
1524 with its source, texinfo.texinfo, for additional guidance.
1525
1526 All documentation files for GNU utilities should be written
1527 in texinfo input format.
1528
1529 Tex processing of texinfo files requires the Botex macro package.
1530 This is not ready for distribution yet, but will appear at
1531 a later time.
1532
1533* New function read-from-string (emacs 15.29)
1534
1535 read-from-string takes three arguments: a string to read from,
1536 and optionally start and end indices which delimit a substring
1537 from which to read. (They default to 0 and the length of the string,
1538 respectively.)
1539
1540 This function returns a cons cell whose car is the object produced
1541 by reading from the string and whose cdr is a number giving the
1542 index in the string of the first character not read. That index may
1543 be passed as the second argument to a later call to read-from-string
1544 to read the next form represented by the string.
1545
1546 In addition, the function read now accepts a string as its argument.
1547 In this case, it calls read-from-string on the whole string, and
1548 returns the car of the result. (ie the actual object read.)
1549
1550
1551
1552Changes in Emacs 14
1553
1554* Completion now prints various messages such as [Sole Completion]
1555 or [Next Character Not Unique] to describe the results obtained.
1556 These messages appear after the text in the minibuffer, and remain
1557 on the screen until a few seconds go by or you type a key.
1558
1559* The buffer-read-only flag is implemented.
1560 Setting or binding this per-buffer variable to a non-nil value
1561 makes illegal any operation which would modify the textual content of
1562 the buffer. (Such operations signal a buffer-read-only error)
1563 The read-only state of a buffer may be altered using toggle-read-only
1564 (C-x C-q)
1565 The buffers used by Rmail, Dired, Rnews, and Info are now read-only
1566 by default to prevent accidental damage to the information in those
1567 buffers.
1568
1569* Functions car-safe and cdr-safe.
1570 These functions are like car and cdr when the argument is a cons.
1571 Given an argument not a cons, car-safe always returns nil, with
1572 no error; the same for cdr-safe.
1573
1574* The new function user-real-login-name returns the name corresponding
1575 to the real uid of the Emacs process. This is usually the same
1576 as what user-login-name returns; however, when Emacs is invoked
1577 from su, user-real-login-name returns "root" but user-login-name
1578 returns the name of the user who invoked su.
1579
1580
1581
1582Changes in Emacs 13
1583
1584* There is a new version numbering scheme.
1585
1586 What used to be the first version number, which was 1,
1587 has been discarded since it does not seem that I need three
1588 levels of version number.
1589
1590 However, a new third version number has been added to represent
1591 changes by user sites. This number will always be zero in
1592 Emacs when I distribute it; it will be incremented each time
1593 Emacs is built at another site.
1594
1595* There is now a reader syntax for Meta characters:
1596 \M-CHAR means CHAR or'ed with the Meta bit. For example:
1597
1598 ?\M-x is (+ ?x 128)
1599 ?\M-\n is (+ ?\n 128)
1600 ?\M-\^f is (+ ?\^f 128)
1601
1602 This syntax can be used in strings too. Note, however, that
1603 Meta characters are not meaningful in key sequences being passed
1604 to define-key or lookup-key; you must use ESC characters (\e)
1605 in them instead.
1606
1607 ?\C- can be used likewise for control characters. (13.9)
1608
1609* Installation change
1610 The string "../lisp" now adds to the front of the load-path
1611 used for searching for Lisp files during Emacs initialization.
1612 It used to replace the path specified in paths.h entirely.
1613 Now the directory ../lisp is searched first and the directoris
1614 specified in paths.h are searched afterward.
1615
1616
1617
1618Changes in Emacs 1.12
1619
1620* There is a new installation procedure.
1621 See the file INSTALL that comes in the top level
1622 directory in the tar file or tape.
1623
1624* The Meta key is now supported on terminals that have it.
1625 This is a shift key which causes the high bit to be turned on
1626 in all input characters typed while it is held down.
1627
1628 read-char now returns a value in the range 128-255 if
1629 a Meta character is typed. When interpreted as command
1630 input, a Meta character is equivalent to a two character
1631 sequence, the meta prefix character followed by the un-metized
1632 character (Meta-G unmetized is G).
1633
1634 The meta prefix character
1635 is specified by the value of the variable meta-prefix-char.
1636 If this character (normally Escape) has been redefined locally
1637 with a non-prefix definition (such as happens in completing
1638 minibuffers) then the local redefinition is suppressed when
1639 the character is not the last one in a key sequence.
1640 So the local redefinition is effective if you type the character
1641 explicitly, but not effective if the character comes from
1642 the use of the Meta key.
1643
1644* `-' is no longer a completion command in the minibuffer.
1645 It is an ordinary self-inserting character.
1646
1647* The list load-path of directories load to search for Lisp files
1648 is now controlled by the EMACSLOADPATH environment variable
1649[[ Note this was originally EMACS-LOAD-PATH and has been changed
1650 again; sh does not deal properly with hyphens in env variable names]]
1651 rather than the EPATH environment variable. This is to avoid
1652 conflicts with other Emacses.
1653
1654 While Emacs is being built initially, the load-path
1655 is now just ("../lisp"), ignoring paths.h. It does not
1656 ignore EMACSLOADPATH, however; you should avoid having
1657 this variable set while building Emacs.
1658
1659* You can now specify a translation table for keyboard
1660 input characters, as a way of exchanging or substituting
1661 keys on the keyboard.
1662
1663 If the value of keyboard-translate-table is a string,
1664 every character received from the keyboard is used as an
1665 index in that string, and the character at that index in
1666 the string is used as input instead of what was actually
1667 typed. If the actual input character is >= the length of
1668 the string, it is used unchanged.
1669
1670 One way this feature can be used is to fix bad keyboard
1671 designes. For example, on some terminals, Delete is
1672 Shift-Underscore. Since Delete is a more useful character
1673 than Underscore, it is an improvement to make the unshifted
1674 character Delete and the shifted one Underscore. This can
1675 be done with
1676
1677 ;; First make a translate table that does the identity translation.
1678 (setq keyboard-translate-table (make-string 128 0))
1679 (let ((i 0))
1680 (while (< i 128)
1681 (aset keyboard-translate-table i i)
1682 (setq i (1+ i))))
1683
1684 ;; Now alter translations of some characters.
1685 (aset keyboard-translate-table ?\_ ?\^?)
1686 (aset keyboard-translate-table ?\^? ?\_)
1687
1688 If your terminal has a Meta key and can therefore send
1689 codes up to 255, Meta characters are translated through
1690 elements 128 through 255 of the translate table, and therefore
1691 are translated independently of the corresponding non-Meta
1692 characters. You must therefore establish translations
1693 independently for the Meta characters if you want them too:
1694
1695 ;; First make a translate table that does the identity translation.
1696 (setq keyboard-translate-table (make-string 256 0))
1697 (let ((i 0))
1698 (while (< i 256)
1699 (aset keyboard-translate-table i i)
1700 (setq i (1+ i))))
1701
1702 ;; Now alter translations of some characters.
1703 (aset keyboard-translate-table ?\_ ?\^?)
1704 (aset keyboard-translate-table ?\^? ?\_)
1705
1706 ;; Now alter translations of some Meta characters.
1707 (aset keyboard-translate-table (+ 128 ?\_) (+ 128 ?\^?))
1708 (aset keyboard-translate-table (+ 128 ?\^?) (+ 128 ?\_))
1709
1710* (process-kill-without-query PROCESS)
1711
1712This marks the process so that, when you kill Emacs,
1713you will not on its account be queried about active subprocesses.
1714
1715
1716
1717Changes in Emacs 1.11
1718
1719* The commands C-c and C-z have been interchanged,
1720 for greater compatibility with normal Unix usage.
1721 C-z now runs suspend-emacs and C-c runs exit-recursive-edit.
1722
1723* The value returned by file-name-directory now ends
1724 with a slash. (file-name-directory "foo/bar") => "foo/".
1725 This avoids confusing results when dealing with files
1726 in the root directory.
1727
1728 The value of the per-buffer variable default-directory
1729 is also supposed to have a final slash now.
1730
1731* There are now variables to control the switches passed to
1732 `ls' by the C-x C-d command (list-directory).
1733 list-directory-brief-switches is a string, initially "-CF",
1734 used for brief listings, and list-directory-verbose-switches
1735 is a string, initially "-l", used for verbose ones.
1736
1737* For Ann Arbor Ambassador terminals, the termcap "ti" string
1738 is now used to initialize the screen geometry on entry to Emacs,
1739 and the "te" string is used to set it back on exit.
1740 If the termcap entry does not define the "ti" or "te" string,
1741 Emacs does what it used to do.
1742
1743
1744
1745Changes in Emacs 1.10
1746
1747* GNU Emacs has been made almost 1/3 smaller.
1748 It now dumps out as only 530kbytes on Vax 4.2bsd.
1749
1750* The term "checkpoint" has been replaced by "auto save"
1751 throughout the function names, variable names and documentation
1752 of GNU Emacs.
1753
1754* The function load now tries appending ".elc" and ".el"
1755 to the specified filename BEFORE it tries the filename
1756 without change.
1757
1758* rmail now makes the mode line display the total number
1759 of messages and the current message number.
1760 The "f" command now means forward a message to another user.
1761 The command to search through all messages for a string is now "F".
1762 The "u" command now means to move back to the previous
1763 message and undelete it. To undelete the selected message, use Meta-u.
1764
1765* The hyphen character is now equivalent to a Space while
1766 in completing minibuffers. Both mean to complete an additional word.
1767
1768* The Lisp function error now takes args like format
1769 which are used to construct the error message.
1770
1771* Redisplay will refuse to start its display at the end of the buffer.
1772 It will pick a new place to display from, rather than use that.
1773
1774* The value returned by garbage-collect has been changed.
1775 Its first element is no longer a number but a cons,
1776 whose car is the number of cons cells now in use,
1777 and whose cdr is the number of cons cells that have been
1778 made but are now free.
1779 The second element is similar but describes symbols rather than cons cells.
1780 The third element is similar but describes markers.
1781
1782* The variable buffer-name has been eliminated.
1783 The function buffer-name still exists. This is to prevent
1784 user programs from changing buffer names without going
1785 through the rename-buffer function.
1786
1787
1788
1789Changes in Emacs 1.9
1790
1791* When a fill prefix is in effect, paragraphs are started
1792 or separated by lines that do not start with the fill prefix.
1793 Also, a line which consists of the fill prefix followed by
1794 white space separates paragraphs.
1795
1796* C-x C-v runs the new function find-alternate-file.
1797 It finds the specified file, switches to that buffer,
1798 and kills the previous current buffer. (It requires
1799 confirmation if that buffer had changes.) This is
1800 most useful after you find the wrong file due to a typo.
1801
1802* Exiting the minibuffer moves the cursor to column 0,
1803 to show you that it has really been exited.
1804
1805* Meta-g (fill-region) now fills each paragraph in the
1806 region individually. To fill the region as if it were
1807 a single paragraph (for when the paragraph-delimiting mechanism
1808 does the wrong thing), use fill-region-as-paragraph.
1809
1810* Tab in text mode now runs the function tab-to-tab-stop.
1811 A new mode called indented-text-mode is like text-mode
1812 except that in it Tab runs the function indent-relative,
1813 which indents the line under the previous line.
1814 If auto fill is enabled while in indented-text-mode,
1815 the new lines that it makes are indented.
1816
1817* Functions kill-rectangle and yank-rectangle.
1818 kill-rectangle deletes the rectangle specified by dot and mark
1819 (or by two arguments) and saves it in the variable killed-rectangle.
1820 yank-rectangle inserts the rectangle in that variable.
1821
1822 Tab characters in a rectangle being saved are replaced
1823 by spaces in such a way that their appearance will
1824 not be changed if the rectangle is later reinserted
1825 at a different column position.
1826
1827* `+' in a regular expression now means
1828 to repeat the previous expression one or more times.
1829 `?' means to repeat it zero or one time.
1830 They are in all regards like `*' except for the
1831 number of repetitions they match.
1832
1833 \< in a regular expression now matches the null string
1834 when it is at the beginning of a word; \> matches
1835 the null string at the end of a word.
1836
1837* C-x p narrows the buffer so that only the current page
1838 is visible.
1839
1840* C-x ) with argument repeats the kbd macro just
1841 defined that many times, counting the definition
1842 as one repetition.
1843
1844* C-x ( with argument begins defining a kbd macro
1845 starting with the last one defined. It executes that
1846 previous kbd macro initially, just as if you began
1847 by typing it over again.
1848
1849* C-x q command queries the user during kbd macro execution.
1850 With prefix argument, enters recursive edit,
1851 reading keyboard commands even within a kbd macro.
1852 You can give different commands each time the macro executes.
1853 Without prefix argument, reads a character. Your options are:
1854 Space -- execute the rest of the macro.
1855 Delete -- skip the rest of the macro; start next repetition.
1856 C-d -- skip rest of the macro and don't repeat it any more.
1857 C-r -- enter a recursive edit, then on exit ask again for a character
1858 C-l -- redisplay screen and ask again."
1859
1860* write-kbd-macro and append-kbd-macro are used to save
1861 a kbd macro definition in a file (as Lisp code to
1862 redefine the macro when the file is loaded).
1863 These commands differ in that write-kbd-macro
1864 discards the previous contents of the file.
1865 If given a prefix argument, both commands
1866 record the keys which invoke the macro as well as the
1867 macro's definition.
1868
1869* The variable global-minor-modes is used to display
1870 strings in the mode line of all buffers. It should be
1871 a list of elements thaht are conses whose cdrs are strings
1872 to be displayed. This complements the variable
1873 minor-modes, which has the same effect but has a separate
1874 value in each buffer.
1875
1876* C-x = describes horizontal scrolling in effect, if any.
1877
1878* Return now auto-fills the line it is ending, in auto fill mode.
1879 Space with zero as argument auto-fills the line before it
1880 just like Space without an argument.
1881
1882
1883
1884Changes in Emacs 1.8
1885
1886This release mostly fixes bugs. There are a few new features:
1887
1888* apropos now sorts the symbols before displaying them.
1889 Also, it returns a list of the symbols found.
1890
1891 apropos now accepts a second arg PRED which should be a function
1892 of one argument; if PRED is non-nil, each symbol is tested
1893 with PRED and only symbols for which PRED returns non-nil
1894 appear in the output or the returned list.
1895
1896 If the third argument to apropos is non-nil, apropos does not
1897 display anything; it merely returns the list of symbols found.
1898
1899 C-h a now runs the new function command-apropos rather than
1900 apropos, and shows only symbols with definitions as commands.
1901
1902* M-x shell sends the command
1903 if (-f ~/.emacs_NAME)source ~/.emacs_NAME
1904 invisibly to the shell when it starts. Here NAME
1905 is replaced by the name of shell used,
1906 as it came from your ESHELL or SHELL environment variable
1907 but with directory name, if any, removed.
1908
1909* M-, now runs the command tags-loop-continue, which is used
1910 to resume a terminated tags-search or tags-query-replace.
1911
1912
1913
1914Changes in Emacs 1.7
1915
1916It's Beat CCA Week.
1917
1918* The initial buffer is now called "*scratch*" instead of "scratch",
1919 so that all buffer names used automatically by Emacs now have *'s.
1920
1921* Undo information is now stored separately for each buffer.
1922 The Undo command (C-x u) always applies to the current
1923 buffer only.
1924
1925 C-_ is now a synonym for C-x u.
1926
1927 (buffer-flush-undo BUFFER) causes undo information not to
1928 be kept for BUFFER, and frees the space that would have
1929 been used to hold it. In any case, no undo information is
1930 kept for buffers whose names start with spaces. (These
1931 buffers also do not appear in the C-x C-b display.)
1932
1933* Rectangle operations are now implemented.
1934 C-x r stores the rectangle described by dot and mark
1935 into a register; it reads the register name from the keyboard.
1936 C-x g, the command to insert the contents of a register,
1937 can be used to reinsert the rectangle elsewhere.
1938
1939 Other rectangle commands include
1940 open-rectangle:
1941 insert a blank rectangle in the position and size
1942 described by dot and mark, at its corners;
1943 the existing text is pushed to the right.
1944 clear-rectangle:
1945 replace the rectangle described by dot ane mark
1946 with blanks. The previous text is deleted.
1947 delete-rectangle:
1948 delete the text of the specified rectangle,
1949 moving the text beyond it on each line leftward.
1950
1951* Side-by-side windows are allowed. Use C-x 5 to split the
1952 current window into two windows side by side.
1953 C-x } makes the selected window ARG columns wider at the
1954 expense of the windows at its sides. C-x { makes the selected
1955 window ARG columns narrower. An argument to C-x 5 specifies
1956 how many columns to give to the leftmost of the two windows made.
1957
1958 C-x 2 now accepts a numeric argument to specify the number of
1959 lines to give to the uppermost of the two windows it makes.
1960
1961* Horizontal scrolling of the lines in a window is now implemented.
1962 C-x < (scroll-left) scrolls all displayed lines left,
1963 with the numeric argument (default 1) saying how far to scroll.
1964 When the window is scrolled left, some amount of the beginning
1965 of each nonempty line is replaced by an "$".
1966 C-x > scrolls right. If a window has no text hidden at the left
1967 margin, it cannot be scrolled any farther right than that.
1968 When nonzero leftwards scrolling is in effect in a window.
1969 lines are automatically truncated at the window's right margin
1970 regardless of the value of the variable truncate-lines in the
1971 buffer being displayed.
1972
1973* C-x C-d now uses the default output format of `ls',
1974 which gives just file names in multiple columns.
1975 C-u C-x C-d passes the -l switch to `ls'.
1976
1977* C-t at the end of a line now exchanges the two preceding characters.
1978
1979 All the transpose commands now interpret zero as an argument
1980 to mean to transpose the textual unit after or around dot
1981 with the one after or around the mark.
1982
1983* M-! executes a shell command in an inferior shell
1984 and displays the output from it. With a prefix argument,
1985 it inserts the output in the current buffer after dot
1986 and sets the mark after the output. The shell command
1987 gets /dev/null as its standard input.
1988
1989 M-| is like M-! but passes the contents of the region
1990 as input to the shell command. A prefix argument makes
1991 the output from the command replace the contents of the region.
1992
1993* The mode line will now say "Def" after the major mode
1994 while a keyboard macro is being defined.
1995
1996* The variable fill-prefix is now used by Meta-q.
1997 Meta-q removes the fill prefix from lines that start with it
1998 before filling, and inserts the fill prefix on each line
1999 after filling.
2000
2001 The command C-x . sets the fill prefix equal to the text
2002 on the current line before dot.
2003
2004* The new command Meta-j (indent-new-comment-line),
2005 is like Linefeed (indent-new-line) except when dot is inside a comment;
2006 in that case, Meta-j inserts a comment starter on the new line,
2007 indented under the comment starter above. It also inserts
2008 a comment terminator at the end of the line above,
2009 if the language being edited calls for one.
2010
2011* Rmail should work correctly now, and has some C-h m documentation.
2012
2013
2014
2015Changes in Emacs 1.6
2016
2017* save-buffers-kill-emacs is now on C-x C-c
2018 while C-x C-z does suspend-emacs. This is to make
2019 C-x C-c like the normal Unix meaning of C-c
2020 and C-x C-z linke the normal Unix meaning of C-z.
2021
2022* M-ESC (eval-expression) is now a disabled command by default.
2023 This prevents users who type ESC ESC accidentally from
2024 getting confusing results. Put
2025 (put 'eval-expression 'disabled nil)
2026 in your ~/.emacs file to enable the command.
2027
2028* Self-inserting text is grouped into bunches for undoing.
2029 Each C-x u command undoes up to 20 consecutive self-inserting
2030 characters.
2031
2032* Help f now uses as a default the function being called
2033 in the innermost Lisp expression that dot is in.
2034 This makes it more convenient to use while writing
2035 Lisp code to run in Emacs.
2036 (If the text around dot does not appear to be a call
2037 to a Lisp function, there is no default.)
2038
2039 Likewise, Help v uses the symbol around or before dot
2040 as a default, if that is a variable name.
2041
2042* Commands that read filenames now insert the default
2043 directory in the minibuffer, to become part of your input.
2044 This allows you to see what the default is.
2045 You may type a filename which goes at the end of the
2046 default directory, or you may edit the default directory
2047 as you like to create the input you want to give.
2048 You may also type an absolute pathname (starting with /)
2049 or refer to a home directory (input starting with ~)
2050 after the default; the presence of // or /~ causes
2051 everything up through the slash that precedes your
2052 type-in to be ignored.
2053
2054 Returning the default directory without change,
2055 including the terminating slash, requests the use
2056 of the default file name (usually the visited file's name).
2057
2058 Set the variable insert-default-directory to nil
2059 to turn off this feature.
2060
2061* M-x shell now uses the environment variable ESHELL,
2062 if it exists, as the file name of the shell to run.
2063 If there is no ESHELL variable, the SHELL variable is used.
2064 This is because some shells do not work properly as inferiors
2065 of Emacs (or anything like Emacs).
2066
2067* A new variable minor-modes now exists, with a separate value
2068 in each buffer. Its value should be an alist of elements
2069 (MODE-FUNCTION-SYMBOL . PRETTY-NAME-STRING), one for each
2070 minor mode that is turned on in the buffer. The pretty
2071 name strings are displayed in the mode line after the name of the
2072 major mode (with spaces between them). The mode function
2073 symbols should be symbols whose function definitions will
2074 turn on the minor mode if given 1 as an argument; they are present
2075 so that Help m can find their documentation strings.
2076
2077* The format of tag table files has been changed.
2078 The new format enables Emacs to find tags much faster.
2079
2080 A new program, etags, exists to make the kind of
2081 tag table that Emacs wants. etags is invoked just
2082 like ctags; in fact, if you give it any switches,
2083 it does exactly what ctags would do. Give it the
2084 empty switch ("-") to make it act like ctags with no switches.
2085
2086 etags names the tag table file "TAGS" rather than "tags",
2087 so that these tag tables and the standard Unix ones
2088 can coexist.
2089
2090 The tags library can no longer use standard ctags-style
2091 tag tables files.
2092
2093* The file of Lisp code Emacs reads on startup is now
2094 called ~/.emacs rather than ~/.emacs_pro.
2095
2096* copy-file now gives the copied file the same mode bits
2097 as the original file.
2098
2099* Output from a process inserted into the process's buffer
2100 no longer sets the buffer's mark. Instead it sets a
2101 marker associated with the process to point to the end
2102 of the inserted text. You can access this marker with
2103 (process-mark PROCESS)
2104 and then either examine its position with marker-position
2105 or set its position with set-marker.
2106
2107* completing-read takes a new optional fifth argument which,
2108 if non-nil, should be a string of text to insert into
2109 the minibuffer before reading user commands.
2110
2111* The Lisp function elt now exists:
2112 (elt ARRAY N) is like (aref ARRAY N),
2113 (elt LIST N) is like (nth N LIST).
2114
2115* rplaca is now a synonym for setcar, and rplacd for setcdr.
2116 eql is now a synonym for eq; it turns out that the Common Lisp
2117 distinction between eq and eql is insignificant in Emacs.
2118 numberp is a new synonym for integerp.
2119
2120* auto-save has been renamed to auto-save-mode.
2121
2122* Auto save file names for buffers are now created by the
2123 function make-auto-save-file-name. This is so you can
2124 redefine that function to change the way auto save file names
2125 are chosen.
2126
2127* expand-file-name no longer discards a final slash.
2128 (expand-file-name "foo" "/lose") => "/lose/foo"
2129 (expand-file-name "foo/" "/lose") => "/lose/foo/"
2130
2131 Also, expand-file-name no longer substitutes $ constructs.
2132 A new function substitute-in-file-name does this. Reading
2133 a file name with read-file-name or the `f' or`F' option
2134 of interactive calling uses substitute-in-file-name
2135 on the file name that was read and returns the result.
2136
2137 All I/O primitives including insert-file-contents and
2138 delete-file call expand-file-name on the file name supplied.
2139 This change makes them considerably faster in the usual case.
2140
2141* Interactive calling spec strings allow the new code letter 'D'
2142 which means to read a directory name. It is like 'f' except
2143 that the default if the user makes no change in the minibuffer
2144 is to return the current default directory rather than the
2145 current visited file name.
2146
2147
2148
2149Changes in Emacs 1.5
2150
2151* suspend-emacs now accepts an optional argument
2152 which is a string to be stuffed as terminal input
2153 to be read by Emacs's superior shell after Emacs exits.
2154
2155 A library called ledit exists which uses this feature
2156 to transmit text to a Lisp job running as a sibling of
2157 Emacs.
2158
2159* If find-file is given the name of a directory,
2160 it automatically invokes dired on that directory
2161 rather than reading in the binary data that make up
2162 the actual contents of the directory according to Unix.
2163
2164* Saving an Emacs buffer now preserves the file modes
2165 of any previously existing file with the same name.
2166 This works using new Lisp functions file-modes and
2167 set-file-modes, which can be used to read or set the mode
2168 bits of any file.
2169
2170* The Lisp function cond now exists, with its traditional meaning.
2171
2172* defvar and defconst now permit the documentation string
2173 to be omitted. defvar also permits the initial value
2174 to be omitted; then it acts only as a comment.
2175
2176
2177
2178Changes in Emacs 1.4
2179
2180* Auto-filling now normally indents the new line it creates
2181 by calling indent-according-to-mode. This function, meanwhile,
2182 has in Fundamental and Text modes the effect of making the line
2183 have an indentation of the value of left-margin, a per-buffer variable.
2184
2185 Tab no longer precisely does indent-according-to-mode;
2186 it does that in all modes that supply their own indentation routine,
2187 but in Fundamental, Text and allied modes it inserts a tab character.
2188
2189* The command M-x grep now invokes grep (on arguments
2190 supplied by the user) and reads the output from grep
2191 asynchronously into a buffer. The command C-x ` can
2192 be used to move to the lines that grep has found.
2193 This is an adaptation of the mechanism used for
2194 running compilations and finding the loci of error messages.
2195
2196 You can now use C-x ` even while grep or compilation
2197 is proceeding; as more matches or error messages arrive,
2198 C-x ` will parse them and be able to find them.
2199
2200* M-x mail now provides a command to send the message
2201 and "exit"--that is, return to the previously selected
2202 buffer. It is C-z C-z.
2203
2204* Tab in C mode now tries harder to adapt to all indentation styles.
2205 If the line being indented is a statement that is not the first
2206 one in the containing compound-statement, it is aligned under
2207 the beginning of the first statement.
2208
2209* The functions screen-width and screen-height return the
2210 total width and height of the screen as it is now being used.
2211 set-screen-width and set-screen-height tell Emacs how big
2212 to assume the screen is; they each take one argument,
2213 an integer.
2214
2215* The Lisp function 'function' now exists. function is the
2216 same as quote, except that it serves as a signal to the
2217 Lisp compiler that the argument should be compiled as
2218 a function. Example:
2219 (mapcar (function (lambda (x) (+ x 5))) list)
2220
2221* The function set-key has been renamed to global-set-key.
2222 undefine-key and local-undefine-key has been renamed to
2223 global-unset-key and local-unset-key.
2224
2225* Emacs now collects input from asynchronous subprocesses
2226 while waiting in the functions sleep-for and sit-for.
2227
2228* Shell mode's Newline command attempts to distinguish subshell
2229 prompts from user input when issued in the middle of the buffer.
2230 It no longer reexecutes from dot to the end of the line;
2231 it reeexecutes the entire line minus any prompt.
2232 The prompt is recognized by searching for the value of
2233 shell-prompt-pattern, starting from the beginning of the line.
2234 Anything thus skipped is not reexecuted.
2235
2236
1328 2237
1329For older news, see the file ONEWS.1. 2238Changes in Emacs 1.3
1330 2239
2240* An undo facility exists now. Type C-x u to undo a batch of
2241 changes (usually one command's changes, but some commands
2242 such as query-replace divide their changes into multiple
2243 batches. You can repeat C-x u to undo further. As long
2244 as no commands other than C-x u intervene, each one undoes
2245 another batch. A numeric argument to C-x u acts as a repeat
2246 count.
2247
2248 If you keep on undoing, eventually you may be told that
2249 you have used up all the recorded undo information.
2250 Some actions, such as reading in files, discard all
2251 undo information.
2252
2253 The undo information is not currently stored separately
2254 for each buffer, so it is mainly good if you do something
2255 totally spastic. [This has since been fixed.]
2256
2257* A learn-by-doing tutorial introduction to Emacs now exists.
2258 Type C-h t to enter it.
2259
2260* An Info documentation browser exists. Do M-x info to enter it.
2261 It contains a tutorial introduction so that no more documentation
2262 is needed here. As of now, the only documentation in it
2263 is that of Info itself.
2264
2265* Help k and Help c are now different. Help c prints just the
2266 name of the function which the specified key invokes. Help k
2267 prints the documentation of the function as well.
2268
2269* A document of the differences between GNU Emacs and Twenex Emacs
2270 now exists. It is called DIFF, in the same directory as this file.
2271
2272* C mode can now indent comments better, including multi-line ones.
2273 Meta-Control-q now reindents comment lines within the expression
2274 being aligned.
2275
2276* Insertion of a close-parenthesis now shows the matching open-parenthesis
2277 even if it is off screen, by printing the text following it on its line
2278 in the minibuffer.
2279
2280* A file can now contain a list of local variable values
2281 to be in effect when the file is edited. See the file DIFF
2282 in the same directory as this file for full details.
2283
2284* A function nth is defined. It means the same thing as in Common Lisp.
2285
2286* The function install-command has been renamed to set-key.
2287 It now takes the key sequence as the first argument
2288 and the definition for it as the second argument.
2289 Likewise, local-install-command has been renamed to local-set-key.
2290
2291
2292
2293Changes in Emacs 1.2
2294
2295* A Lisp single-stepping and debugging facility exists.
2296 To cause the debugger to be entered when an error
2297 occurs, set the variable debug-on-error non-nil.
2298
2299 To cause the debugger to be entered whenever function foo
2300 is called, do (debug-on-entry 'foo). To cancel this,
2301 do (cancel-debug-on-entry 'foo). debug-on-entry does
2302 not work for primitives (written in C), only functions
2303 written in Lisp. Most standard Emacs commands are in Lisp.
2304
2305 When the debugger is entered, the selected window shows
2306 a buffer called " *Backtrace" which displays a series
2307 of stack frames, most recently entered first. For each
2308 frame, the function name called is shown, usually followed
2309 by the argument values unless arguments are still being
2310 calculated. At the beginning of the buffer is a description
2311 of why the debugger was entered: function entry, function exit,
2312 error, or simply that the user called the function `debug'.
2313
2314 To exit the debugger and return to top level, type `q'.
2315
2316 In the debugger, you can evaluate Lisp expressions by
2317 typing `e'. This is equivalent to `M-ESC'.
2318
2319 When the debugger is entered due to an error, that is
2320 all you can do. When it is entered due to function entry
2321 (such as, requested by debug-on-entry), you have two
2322 options:
2323 Continue execution and reenter debugger after the
2324 completion of the function being entered. Type `c'.
2325 Continue execution but enter the debugger before
2326 the next subexpression. Type `d'.
2327
2328 You will see that some stack frames are marked with *.
2329 This means the debugger will be entered when those
2330 frames exit. You will see the value being returned
2331 in the first line of the backtrace buffer. Your options:
2332 Continue execution, and return that value. Type `c'.
2333 Continue execution, and return a specified value. Type `r'.
2334
2335 You can mark a frame to enter the debugger on exit
2336 with the `b' command, or clear such a mark with `u'.
2337
2338* Lisp macros now exist.
2339 For example, you can write
2340 (defmacro cadr (arg) (list 'car (list 'cdr arg)))
2341 and then the expression
2342 (cadr foo)
2343 will expand into
2344 (car (cdr foo))
2345
2346
2347
2348Changes in Emacs 1.1
2349
2350* The initial buffer is now called "scratch" and is in a
2351 new major mode, Lisp Interaction mode. This mode is
2352 intended for typing Lisp expressions, evaluating them,
2353 and having the values printed into the buffer.
2354
2355 Type Linefeed after a Lisp expression, to evaluate the
2356 expression and have its value printed into the buffer,
2357 advancing dot.
2358
2359 The other commands of Lisp mode are available.
2360
2361* The C-x C-e command for evaluating the Lisp expression
2362 before dot has been changed to print the value in the
2363 minibuffer line rather than insert it in the buffer.
2364 A numeric argument causes the printed value to appear
2365 in the buffer instead.
2366
2367* In Lisp mode, the command M-C-x evaluates the defun
2368 containing or following dot. The value is printed in
2369 the minibuffer.
2370
2371* The value of a Lisp expression evaluated using M-ESC
2372 is now printed in the minibuffer.
2373
2374* M-q now runs fill-paragraph, independent of major mode.
2375
2376* C-h m now prints documentation on the current buffer's
2377 major mode. What it prints is the documentation of the
2378 major mode name as a function. All major modes have been
2379 equipped with documentation that describes all commands
2380 peculiar to the major mode, for this purpose.
2381
2382* You can display a Unix manual entry with
2383 the M-x manual-entry command.
2384
2385* You can run a shell, displaying its output in a buffer,
2386 with the M-x shell command. The Return key sends input
2387 to the subshell. Output is printed inserted automatically
2388 in the buffer. Commands C-c, C-d, C-u, C-w and C-z are redefined
2389 for controlling the subshell and its subjobs.
2390 "cd", "pushd" and "popd" commands are recognized as you
2391 enter them, so that the default directory of the Emacs buffer
2392 always remains the same as that of the subshell.
2393
2394* C-x $ (that's a real dollar sign) controls line-hiding based
2395 on indentation. With a numeric arg N > 0, it causes all lines
2396 indented by N or more columns to become invisible.
2397 They are, effectively, tacked onto the preceding line, where
2398 they are represented by " ..." on the screen.
2399 (The end of the preceding visible line corresponds to a
2400 screen cursor position before the "...". Anywhere in the
2401 invisible lines that follow appears on the screen as a cursor
2402 position after the "...".)
2403 Currently, all editing commands treat invisible lines just
2404 like visible ones, except for C-n and C-p, which have special
2405 code to count visible lines only.
2406 C-x $ with no argument turns off this mode, which in any case
2407 is remembered separately for each buffer.
2408
2409* Outline mode is another form of selective display.
2410 It is a major mode invoked with M-x outline-mode.
2411 It is intended for editing files that are structured as
2412 outlines, with heading lines (lines that begin with one
2413 or more asterisks) and text lines (all other lines).
2414 The number of asterisks in a heading line are its level;
2415 the subheadings of a heading line are all following heading
2416 lines at higher levels, until but not including the next
2417 heading line at the same or a lower level, regardless
2418 of intervening text lines.
2419
2420 In outline mode, you have commands to hide (remove from display)
2421 or show the text or subheadings under each heading line
2422 independently. Hidden text or subheadings are invisibly
2423 attached to the end of the preceding heading line, so that
2424 if you kill the hading line and yank it back elsewhere
2425 all the invisible lines accompany it.
2426
2427 All editing commands treat hidden outline-mode lines
2428 as part of the preceding visible line.
2429
2430* C-x C-z runs save-buffers-kill-emacs
2431 offers to save each file buffer, then exits.
2432
2433* C-c's function is now called suspend-emacs.
2434
2435* The command C-x m runs mail, which switches to a buffer *mail*
2436 and lets you compose a message to send. C-x 4 m runs mail in
2437 another window. Type C-z C-s in the mail buffer to send the
2438 message according to what you have entered in the buffer.
2439
2440 You must separate the headers from the message text with
2441 an empty line.
2442
2443* You can now dired partial directories (specified with names
2444 containing *'s, etc, all processed by the shell). Also, you
2445 can dired more than one directory; dired names the buffer
2446 according to the filespec or directory name. Reinvoking
2447 dired on a directory already direded just switches back to
2448 the same directory used last time; do M-x revert if you want
2449 to read in the current contents of the directory.
2450
2451 C-x d runs dired, and C-x 4 d runs dired in another window.
2452
2453 C-x C-d (list-directory) also allows partial directories now.
2454
2455
2456Lisp programming changes
2457
2458* t as an output stream now means "print to the minibuffer".
2459 If there is already text in the minibuffer printed via t
2460 as an output stream, the new text is appended to the old
2461 (or is truncated and lost at the margin). If the minibuffer
2462 contains text put there for some other reason, it is cleared
2463 first.
2464
2465 t is now the top-level value of standard-output.
2466
2467 t as an input stream now means "read via the minibuffer".
2468 The minibuffer is used to read a line of input, with editing,
2469 and this line is then parsed. Any excess not used by `read'
2470 is ignored; each `read' from t reads fresh input.
2471 t is now the top-level value of standard-input.
2472
2473* A marker may be used as an input stream or an output stream.
2474 The effect is to grab input from where the marker points,
2475 advancing it over the characters read, or to insert output
2476 at the marker and advance it.
2477
2478* Output from an asynchronous subprocess is now inserted at
2479 the end of the associated buffer, not at the buffer's dot,
2480 and the buffer's mark is set to the end of the inserted output
2481 each time output is inserted.
2482
2483* (pos-visible-in-window-p POS WINDOW)
2484 returns t if position POS in WINDOW's buffer is in the range
2485 that is being displayed in WINDOW; nil if it is scrolled
2486 vertically out of visibility.
2487
2488 If display in WINDOW is not currently up to date, this function
2489 calculates carefully whether POS would appear if display were
2490 done immediately based on the current (window-start WINDOW).
2491
2492 POS defaults to (dot), and WINDOW to (selected-window).
2493
2494* Variable buffer-alist replaced by function (buffer-list).
2495 The actual alist of buffers used internally by Emacs is now
2496 no longer accessible, to prevent the user from crashing Emacs
2497 by modifying it. The function buffer-list returns a list
2498 of all existing buffers. Modifying this list cannot hurt anything
2499 as a new list is constructed by each call to buffer-list.
2500
2501* load now takes an optional third argument NOMSG which, if non-nil,
2502 prevents load from printing a message when it starts and when
2503 it is done.
2504
2505* byte-recompile-directory is a new function which finds all
2506 the .elc files in a directory, and regenerates each one which
2507 is older than the corresponding .el (Lisp source) file.
2508
2509
2510
1331---------------------------------------------------------------------- 2511----------------------------------------------------------------------
1332Copyright information: 2512Copyright information:
1333 2513
1334Copyright (C) 1985 Richard M. Stallman 2514Copyright (C) 1985, 1986, 2006 Richard M. Stallman
1335 2515
1336 Permission is granted to anyone to make or distribute verbatim copies 2516 Permission is granted to anyone to make or distribute verbatim copies
1337 of this document as received, in any medium, provided that the 2517 of this document as received, in any medium, provided that the
diff --git a/etc/ONEWS.3 b/etc/NEWS.18
index f7f36c4b1d1..9d68613d1ca 100644
--- a/etc/ONEWS.3
+++ b/etc/NEWS.18
@@ -1,8 +1,10 @@
1GNU Emacs NEWS -- history of user-visible changes. 17-Aug-1988 1GNU Emacs NEWS -- history of user-visible changes. 17-Aug-1988
2Copyright (C) 1988 Free Software Foundation, Inc. 2Copyright (C) 1988, 2006 Free Software Foundation, Inc.
3See the end for copying conditions. 3See the end for copying conditions.
4 4
5For older news, see the file ONEWS.2. 5This file is about changes in emacs version 18.
6
7
6 8
7Changes in version 18.52. 9Changes in version 18.52.
8 10
@@ -111,6 +113,8 @@ The second is used with the window system: it iconifies the Emacs window.
111** VMS: the new function `define-logical-name' allows you to create 113** VMS: the new function `define-logical-name' allows you to create
112job-wide logical names. The old function `define-dcl-symbol' has been 114job-wide logical names. The old function `define-dcl-symbol' has been
113removed. 115removed.
116
117
114 118
115Changes in version 18.50. 119Changes in version 18.50.
116 120
@@ -166,6 +170,8 @@ Emacs run. End of file causes Emacs to exit.
166These variables cannot really work because the 24-bit range of an 170These variables cannot really work because the 24-bit range of an
167integer in (most ports of) GNU Emacs is not large enough to hold their 171integer in (most ports of) GNU Emacs is not large enough to hold their
168values on many systems. 172values on many systems.
173
174
169 175
170Changes in version 18.45, since version 18.41. 176Changes in version 18.45, since version 18.41.
171 177
@@ -221,6 +227,8 @@ case. You can use either upper or lower case indiscriminately.
221 227
222This is a new name for the function formerly called 228This is a new name for the function formerly called
223`define-logical-name'. 229`define-logical-name'.
230
231
224 232
225Editing Changes in Emacs 18 233Editing Changes in Emacs 18
226 234
@@ -798,6 +806,7 @@ can put in requests at the same time.
798 806
799The client/server work only on Berkeley Unix, since they use the Berkeley 807The client/server work only on Berkeley Unix, since they use the Berkeley
800sockets mechanism for their communication. 808sockets mechanism for their communication.
809
801 810
802Changes in Lisp programming in Emacs version 18. 811Changes in Lisp programming in Emacs version 18.
803 812
@@ -1586,13 +1595,13 @@ LD_SWITCH_MACHINE can be defined by the m- file to specify extra `ld' switches.
1586C_DEBUG_SWITCH defines the switches to give `cc' when debugging. Default `-g'. 1595C_DEBUG_SWITCH defines the switches to give `cc' when debugging. Default `-g'.
1587C_OPTIMIZE_SWITCH defines the switches to give `cc' to optimize. Default `-O'. 1596C_OPTIMIZE_SWITCH defines the switches to give `cc' to optimize. Default `-O'.
1588C_SWITCH_MACHINE can be defined by the m- file to specify extra `cc' switches. 1597C_SWITCH_MACHINE can be defined by the m- file to specify extra `cc' switches.
1589
1590For older news, see the file ONEWS.2.
1591 1598
1599
1600
1592---------------------------------------------------------------------- 1601----------------------------------------------------------------------
1593Copyright information: 1602Copyright information:
1594 1603
1595Copyright (C) 1988 Free Software Foundation, Inc. 1604Copyright (C) 1988, 2006 Free Software Foundation, Inc.
1596 1605
1597 Permission is granted to anyone to make or distribute verbatim copies 1606 Permission is granted to anyone to make or distribute verbatim copies
1598 of this document as received, in any medium, provided that the 1607 of this document as received, in any medium, provided that the
diff --git a/etc/ONEWS b/etc/NEWS.19
index e92965c89d9..ce06d2a8bfa 100644
--- a/etc/ONEWS
+++ b/etc/NEWS.19
@@ -1,10 +1,14 @@
1GNU Emacs NEWS -- history of user-visible changes. 1992. 1GNU Emacs NEWS -- history of user-visible changes. 1992.
2Copyright (C) 1995, 2001 Free Software Foundation, Inc. 2Copyright (C) 1993, 1994, 1995, 2001, 2006 Free Software Foundation, Inc.
3See the end for copying conditions. 3See the end for copying conditions.
4 4
5For older news, see the file ONEWS.4. 5This file is about changes in emacs versions 19.
6
7
6 8
7* Emacs 19.34 is a bug-fix release with no user-visible changes. 9* Emacs 19.34 is a bug-fix release with no user-visible changes.
10
11
8 12
9* Changes in Emacs 19.33. 13* Changes in Emacs 19.33.
10 14
@@ -14,6 +18,8 @@ mode should do that--it is the user's choice.)
14** The variable normal-auto-fill-function specifies the function to 18** The variable normal-auto-fill-function specifies the function to
15use for auto-fill-function, if and when Auto Fill is turned on. 19use for auto-fill-function, if and when Auto Fill is turned on.
16Major modes can set this locally to alter how Auto Fill works. 20Major modes can set this locally to alter how Auto Fill works.
21
22
17 23
18* Editing Changes in Emacs 19.32 24* Editing Changes in Emacs 19.32
19 25
@@ -255,6 +261,7 @@ cited text to hide is now customizable.
255 261
256The Gnus manual has been expanded. It explains all these new features 262The Gnus manual has been expanded. It explains all these new features
257in greater detail. 263in greater detail.
264
258 265
259* Lisp Changes in Emacs 19.32 266* Lisp Changes in Emacs 19.32
260 267
@@ -279,6 +286,8 @@ name. In such a case, you should give that alias symbol a non-nil
279menu-alias property. That property tells the menu system to look for 286menu-alias property. That property tells the menu system to look for
280equivalent keys for the real name instead of equivalent keys for the 287equivalent keys for the real name instead of equivalent keys for the
281alias. 288alias.
289
290
282 291
283* Editing Changes in Emacs 19.31 292* Editing Changes in Emacs 19.31
284 293
@@ -583,6 +592,7 @@ implementation of Emacs timers, see below).
583**** `M-x list-colors-display' displays all the available colors. 592**** `M-x list-colors-display' displays all the available colors.
584 593
585**** The `TPU-EDT' package works. 594**** The `TPU-EDT' package works.
595
586 596
587* Lisp changes in Emacs 19.31. 597* Lisp changes in Emacs 19.31.
588 598
@@ -1029,7 +1039,7 @@ your working file with the latest version from the master.
1029*** RCS customization. 1039*** RCS customization.
1030 1040
1031There is a new variable vc-consult-headers. If it is t (the default), 1041There is a new variable vc-consult-headers. If it is t (the default),
1032VC searches for RCS headers in working files (like `$Id: ONEWS,v 1.8 2003/02/04 14:30:40 lektu Exp $') and 1042VC searches for RCS headers in working files (like `$Id: NEWS.19,v 1.1 2006/06/04 01:01:51 kfstorm Exp $') and
1033determines the state of the file from them, not from the master file. 1043determines the state of the file from them, not from the master file.
1034This is fast and more reliable when you use branches. (The variable 1044This is fast and more reliable when you use branches. (The variable
1035was already present in Emacs 19.29, but didn't get mentioned in the 1045was already present in Emacs 19.29, but didn't get mentioned in the
@@ -1290,6 +1300,7 @@ new file should include all the special entries from the old one.
1290This new file is under active development as part of the ncurses 1300This new file is under active development as part of the ncurses
1291project. If you have any questions about this file, or problems with 1301project. If you have any questions about this file, or problems with
1292an entry in it, email terminfo@ccil.org. 1302an entry in it, email terminfo@ccil.org.
1303
1293 1304
1294* Lisp changes in Emacs 19.30. 1305* Lisp changes in Emacs 19.30.
1295 1306
@@ -1453,6 +1464,8 @@ sequence containing the events that were used to invoke the command.
1453 1464
1454** The environment variable NAME, if set, now specifies the value of 1465** The environment variable NAME, if set, now specifies the value of
1455(user-full-name), when Emacs starts up. 1466(user-full-name), when Emacs starts up.
1467
1468
1456 1469
1457* User Editing Changes in Emacs 19.29 1470* User Editing Changes in Emacs 19.29
1458 1471
@@ -2155,6 +2168,7 @@ bibtex-sort-ignore-string-entries is now t.
2155used reference types are now on control-modified keys, mediocre used 2168used reference types are now on control-modified keys, mediocre used
2156types are on unmodified keys, seldom used types are on shift-modified 2169types are on unmodified keys, seldom used types are on shift-modified
2157keys and almost never used types on meta-modified keys. 2170keys and almost never used types on meta-modified keys.
2171
2158 2172
2159* Configuration Changes in Emacs 19.29 2173* Configuration Changes in Emacs 19.29
2160 2174
@@ -2171,6 +2185,7 @@ automatically enable X support if X is installed on your machine.)
2171mail-host-address to a string in the dumped Emacs, that string becomes 2185mail-host-address to a string in the dumped Emacs, that string becomes
2172the default host address for initializing user-mail-address. 2186the default host address for initializing user-mail-address.
2173It is used instead of the value of (system-name). 2187It is used instead of the value of (system-name).
2188
2174 2189
2175* Lisp-Level Changes in Emacs 19.29 2190* Lisp-Level Changes in Emacs 19.29
2176 2191
@@ -2906,6 +2921,8 @@ three integers.)
2906**** The new function encode-time converts specific items of time 2921**** The new function encode-time converts specific items of time
2907information--the second, minute, hour, day, month, year, and time 2922information--the second, minute, hour, day, month, year, and time
2908zone--into a time value. 2923zone--into a time value.
2924
2925
2909 2926
2910* Changes in Emacs 19.27 2927* Changes in Emacs 19.27
2911 2928
@@ -2921,6 +2938,8 @@ reach the end of a subnode, SPC moves into the next subnode, and so
2921on. 2938on.
2922 2939
2923DEL more or less scrolls through the same text in reverse order. 2940DEL more or less scrolls through the same text in reverse order.
2941
2942
2924 2943
2925* User Editing Changes in Emacs 19.26 2944* User Editing Changes in Emacs 19.26
2926 2945
@@ -2998,6 +3017,7 @@ for asking for a list of the subcommands of C-c C-v.
2998setting just one variable, user-mail-address. This currently applies 3017setting just one variable, user-mail-address. This currently applies
2999to posting news with GNUS and to making change log entries. It may 3018to posting news with GNUS and to making change log entries. It may
3000apply to additional Emacs features in the future. 3019apply to additional Emacs features in the future.
3020
3001 3021
3002* Lisp-Level Changes in Emacs 19.26: 3022* Lisp-Level Changes in Emacs 19.26:
3003 3023
@@ -3044,6 +3064,7 @@ delete-old-versions.
3044other window for C-M-v to scroll. 3064other window for C-M-v to scroll.
3045 3065
3046** Note that the function fceiling was mistakenly documented as fceil before. 3066** Note that the function fceiling was mistakenly documented as fceil before.
3067
3047 3068
3048* Changes in cc-mode.el in Emacs 19.26: 3069* Changes in cc-mode.el in Emacs 19.26:
3049 3070
@@ -3081,11 +3102,15 @@ other window for C-M-v to scroll.
3081 3102
3082** new buffer-local variable c-comment-start-regexp for (potential) 3103** new buffer-local variable c-comment-start-regexp for (potential)
3083 flexibility in adding new modes based on cc-mode.el 3104 flexibility in adding new modes based on cc-mode.el
3105
3106
3084 3107
3085* Changes in Emacs 19.25 3108* Changes in Emacs 19.25
3086 3109
3087The variable x-cross-pointer-shape (which didn't really exist) has 3110The variable x-cross-pointer-shape (which didn't really exist) has
3088been renamed to x-sensitive-text-pointer-shape, and now does exist. 3111been renamed to x-sensitive-text-pointer-shape, and now does exist.
3112
3113
3089 3114
3090* Changes in Emacs 19.24 3115* Changes in Emacs 19.24
3091 3116
@@ -3110,6 +3135,8 @@ s-region.el Set region by holding shift.
3110skeleton.el Templates for statement insertion. 3135skeleton.el Templates for statement insertion.
3111soundex.el Classifying words by how they sound. 3136soundex.el Classifying words by how they sound.
3112tempo.el Template insertion with hotspots. 3137tempo.el Template insertion with hotspots.
3138
3139
3113 3140
3114* User Editing Changes in 19.23. 3141* User Editing Changes in 19.23.
3115 3142
@@ -3407,6 +3434,7 @@ debugged.
3407 3434
3408*** A new command, top-level-nonstop, does not even stop for unwind-protect, 3435*** A new command, top-level-nonstop, does not even stop for unwind-protect,
3409as top-level would. 3436as top-level would.
3437
3410 3438
3411* Changes in CC mode in Emacs 19.23. 3439* Changes in CC mode in Emacs 19.23.
3412 3440
@@ -3577,6 +3605,7 @@ convention of VariableNamesWithoutUnderscoresButEachWordCapitalized.
3577 c-label-offset 3605 c-label-offset
3578 c-continued-statement-offset 3606 c-continued-statement-offset
3579 c-continued-brace-offset 3607 c-continued-brace-offset
3608
3580 3609
3581* Lisp programming changes in Emacs 19.23. 3610* Lisp programming changes in Emacs 19.23.
3582 3611
@@ -3977,6 +4006,8 @@ Now the file version.el contains only the first two version numbers.
3977The third component is now determined on the basis of the names of the 4006The third component is now determined on the basis of the names of the
3978existing executable files. This means that version.el is not altered 4007existing executable files. This means that version.el is not altered
3979by building Emacs. 4008by building Emacs.
4009
4010
3980 4011
3981* Changes in 19.22. 4012* Changes in 19.22.
3982 4013
@@ -4039,12 +4070,16 @@ greater than what it used to be. It is the position between the two
4039characters whose properties differ, which is one greater than the 4070characters whose properties differ, which is one greater than the
4040position of the first character found (while scanning back) with 4071position of the first character found (while scanning back) with
4041different properties. 4072different properties.
4073
4074
4042 4075
4043* User editing changes in version 19.21. 4076* User editing changes in version 19.21.
4044 4077
4045** ISO Accents mode supports four additional characters: 4078** ISO Accents mode supports four additional characters:
4046A-with-ring (entered as /A), AE ligature (entered as /E), 4079A-with-ring (entered as /A), AE ligature (entered as /E),
4047and their lower-case equivalents. 4080and their lower-case equivalents.
4081
4082
4048 4083
4049* User editing changes in version 19.20. 4084* User editing changes in version 19.20.
4050(See following page for Lisp programming changes.) 4085(See following page for Lisp programming changes.)
@@ -4265,6 +4300,7 @@ whether `pushd' behaves like `cd' if no argument is given
4265(`shell-pushd-dextract'), and only add directories to the directory 4300(`shell-pushd-dextract'), and only add directories to the directory
4266stack if they are not already on it (`shell-pushd-dunique'). The 4301stack if they are not already on it (`shell-pushd-dunique'). The
4267configuration you choose should match the underlying shell, of course. 4302configuration you choose should match the underlying shell, of course.
4303
4268 4304
4269* Emacs Lisp programming changes in Emacs 19.20. 4305* Emacs Lisp programming changes in Emacs 19.20.
4270 4306
@@ -4442,6 +4478,8 @@ delete-region in comint-previous-matching-input.
4442 4478
4443The input history retrieval commands still wrap-around the input ring, unlike 4479The input history retrieval commands still wrap-around the input ring, unlike
4444Emacs command history. 4480Emacs command history.
4481
4482
4445 4483
4446* Changes in version 19.19. 4484* Changes in version 19.19.
4447 4485
@@ -4474,6 +4512,8 @@ taken.
4474 4512
4475** `%' no longer allows floating point arguments, since the results were often 4513** `%' no longer allows floating point arguments, since the results were often
4476inconsistent with integer `%'. 4514inconsistent with integer `%'.
4515
4516
4477 4517
4478* Changes in version 19.18. 4518* Changes in version 19.18.
4479 4519
@@ -4614,6 +4654,8 @@ of the directory containing the Emacs executable that was run.
4614 4654
4615** The new function minibuffer-window-active-p takes one argument, a 4655** The new function minibuffer-window-active-p takes one argument, a
4616minibuffer window, and returns t if the window is currently active. 4656minibuffer window, and returns t if the window is currently active.
4657
4658
4617 4659
4618* Changes in version 19.17. 4660* Changes in version 19.17.
4619 4661
@@ -4801,6 +4843,7 @@ argument FRAME, which specifies which frames it should affect.
4801 + If FRAME is a frame, then `delete-windows-on' only deletes windows on 4843 + If FRAME is a frame, then `delete-windows-on' only deletes windows on
4802 the given frame; other frames are unaffected. 4844 the given frame; other frames are unaffected.
4803 4845
4846
4804 4847
4805* Changes in version 19.16. 4848* Changes in version 19.16.
4806 4849
@@ -4927,6 +4970,7 @@ in a singleton list when it first inserts the prefix, but doesn't
4927insert the prefix when processing events whose PLACE-SYMBOLs are 4970insert the prefix when processing events whose PLACE-SYMBOLs are
4928already thus enclosed. 4971already thus enclosed.
4929 4972
4973
4930 4974
4931* Changes in version 19.15. 4975* Changes in version 19.15.
4932 4976
@@ -4973,6 +5017,8 @@ it works the same in Emacs 18 and Emacs 19.
4973 5017
4974(This change actually took place earlier, but we didn't know about it 5018(This change actually took place earlier, but we didn't know about it
4975and thus didn't document it.) 5019and thus didn't document it.)
5020
5021
4976 5022
4977* Changes in version 19.14. 5023* Changes in version 19.14.
4978 5024
@@ -5017,6 +5063,8 @@ and END that specify which part of the file to insert. BEG defaults to
50170 (the beginning of the file), and END defaults to the end of the file. 50630 (the beginning of the file), and END defaults to the end of the file.
5018 5064
5019If you specify BEG or END, then the argument VISIT must be nil. 5065If you specify BEG or END, then the argument VISIT must be nil.
5066
5067
5020 5068
5021* Changes in version 19.13. 5069* Changes in version 19.13.
5022 5070
@@ -5035,11 +5083,15 @@ the search a case-sensitive one.
5035C-c LETTER, since those keys are reserved for users. 5083C-c LETTER, since those keys are reserved for users.
5036Those commands have been moved to C-c M-LETTER. 5084Those commands have been moved to C-c M-LETTER.
5037We may move them again for greater consistency with other modes. 5085We may move them again for greater consistency with other modes.
5086
5087
5038 5088
5039* Changes in version 19.12. 5089* Changes in version 19.12.
5040 5090
5041** You can now make many of the sort commands ignore case by setting 5091** You can now make many of the sort commands ignore case by setting
5042`sort-fold-case' to a non-nil value. 5092`sort-fold-case' to a non-nil value.
5093
5094
5043 5095
5044* Changes in version 19.11. 5096* Changes in version 19.11.
5045 5097
@@ -5057,6 +5109,8 @@ that you write. This is what `basic-save-buffer' does when
5057it writes a file in the usual way. 5109it writes a file in the usual way.
5058 5110
5059(This is not actually new, but wasn't documented before.) 5111(This is not actually new, but wasn't documented before.)
5112
5113
5060 5114
5061* Changes in version 19.10. 5115* Changes in version 19.10.
5062 5116
@@ -5069,6 +5123,8 @@ The reason for this change is to make function keys work after C-x.
5069the region is highlighted in windows other than the selected window 5123the region is highlighted in windows other than the selected window
5070(in Transient Mark mode only, of course, and currently only when 5124(in Transient Mark mode only, of course, and currently only when
5071using X). 5125using X).
5126
5127
5072 5128
5073* Changes in version 19.8. 5129* Changes in version 19.8.
5074 5130
@@ -6458,14 +6514,13 @@ distribution, using the contents of the source tree. Object files,
6458old file versions, executables, DOC files, and other 6514old file versions, executables, DOC files, and other
6459architecture-specific or easy-to-recreate files are not included in 6515architecture-specific or easy-to-recreate files are not included in
6460the tar file. 6516the tar file.
6461
6462* For older news, see the file ONEWS.4. For Lisp changes in (the first
6463* release of) Emacs 19, see the file LNEWS.
6464 6517
6518
6519
6465---------------------------------------------------------------------- 6520----------------------------------------------------------------------
6466Copyright information: 6521Copyright information:
6467 6522
6468Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. 6523Copyright (C) 1993, 1994, 1995, 2001, 2006 Free Software Foundation, Inc.
6469 6524
6470 Permission is granted to anyone to make or distribute verbatim copies 6525 Permission is granted to anyone to make or distribute verbatim copies
6471 of this document as received, in any medium, provided that the 6526 of this document as received, in any medium, provided that the
diff --git a/etc/NEWS.20 b/etc/NEWS.20
new file mode 100644
index 00000000000..44d5600ecb4
--- /dev/null
+++ b/etc/NEWS.20
@@ -0,0 +1,4513 @@
1GNU Emacs NEWS -- history of user-visible changes. 2006-05-31
2Copyright (C) 1999, 2000, 2001, 2006
3 Free Software Foundation, Inc.
4See the end for copying conditions.
5
6Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
7If possible, use M-x report-emacs-bug.
8
9This file is about changes in emacs version 20.
10
11
12
13* Emacs 20.7 is a bug-fix release with few user-visible changes
14
15** It is now possible to use CCL-based coding systems for keyboard
16input.
17
18** ange-ftp now handles FTP security extensions, like Kerberos.
19
20** Rmail has been extended to recognize more forms of digest messages.
21
22** Now, most coding systems set in keyboard coding system work not
23only for character input, but also in incremental search. The
24exceptions are such coding systems that handle 2-byte character sets
25(e.g euc-kr, euc-jp) and that use ISO's escape sequence
26(e.g. iso-2022-jp). They are ignored in incremental search.
27
28** Support for Macintosh PowerPC-based machines running GNU/Linux has
29been added.
30
31
32
33* Emacs 20.6 is a bug-fix release with one user-visible change
34
35** Support for ARM-based non-RISCiX machines has been added.
36
37
38
39* Emacs 20.5 is a bug-fix release with no user-visible changes.
40
41** Not new, but not mentioned before:
42M-w when Transient Mark mode is enabled disables the mark.
43
44
45
46* Changes in Emacs 20.4
47
48** Init file may be called .emacs.el.
49
50You can now call the Emacs init file `.emacs.el'.
51Formerly the name had to be `.emacs'. If you use the name
52`.emacs.el', you can byte-compile the file in the usual way.
53
54If both `.emacs' and `.emacs.el' exist, the latter file
55is the one that is used.
56
57** shell-command, and shell-command-on-region, now return
58the exit code of the command (unless it is asynchronous).
59Also, you can specify a place to put the error output,
60separate from the command's regular output.
61Interactively, the variable shell-command-default-error-buffer
62says where to put error output; set it to a buffer name.
63In calls from Lisp, an optional argument ERROR-BUFFER specifies
64the buffer name.
65
66When you specify a non-nil error buffer (or buffer name), any error
67output is inserted before point in that buffer, with \f\n to separate
68it from the previous batch of error output. The error buffer is not
69cleared, so error output from successive commands accumulates there.
70
71** Setting the default value of enable-multibyte-characters to nil in
72the .emacs file, either explicitly using setq-default, or via Custom,
73is now essentially equivalent to using --unibyte: all buffers
74created during startup will be made unibyte after loading .emacs.
75
76** C-x C-f now handles the wildcards * and ? in file names. For
77example, typing C-x C-f c*.c RET visits all the files whose names
78match c*.c. To visit a file whose name contains * or ?, add the
79quoting sequence /: to the beginning of the file name.
80
81** The M-x commands keep-lines, flush-lines and count-matches
82now have the same feature as occur and query-replace:
83if the pattern contains any upper case letters, then
84they never ignore case.
85
86** The end-of-line format conversion feature previously mentioned
87under `* Emacs 20.1 changes for MS-DOS and MS-Windows' actually
88applies to all operating systems. Emacs recognizes from the contents
89of a file what convention it uses to separate lines--newline, CRLF, or
90just CR--and automatically converts the contents to the normal Emacs
91convention (using newline to separate lines) for editing. This is a
92part of the general feature of coding system conversion.
93
94If you subsequently save the buffer, Emacs converts the text back to
95the same format that was used in the file before.
96
97You can turn off end-of-line conversion by setting the variable
98`inhibit-eol-conversion' to non-nil, e.g. with Custom in the MULE group.
99
100** The character set property `prefered-coding-system' has been
101renamed to `preferred-coding-system', for the sake of correct spelling.
102This is a fairly internal feature, so few programs should be affected.
103
104** Mode-line display of end-of-line format is changed.
105The indication of the end-of-line format of the file visited by a
106buffer is now more explicit when that format is not the usual one for
107your operating system. For example, the DOS-style end-of-line format
108is displayed as "(DOS)" on Unix and GNU/Linux systems. The usual
109end-of-line format is still displayed as a single character (colon for
110Unix, backslash for DOS and Windows, and forward slash for the Mac).
111
112The values of the variables eol-mnemonic-unix, eol-mnemonic-dos,
113eol-mnemonic-mac, and eol-mnemonic-undecided, which are strings,
114control what is displayed in the mode line for each end-of-line
115format. You can now customize these variables.
116
117** In the previous version of Emacs, tar-mode didn't work well if a
118filename contained non-ASCII characters. Now this is fixed. Such a
119filename is decoded by file-name-coding-system if the default value of
120enable-multibyte-characters is non-nil.
121
122** The command temp-buffer-resize-mode toggles a minor mode
123in which temporary buffers (such as help buffers) are given
124windows just big enough to hold the whole contents.
125
126** If you use completion.el, you must now run the function
127dynamic-completion-mode to enable it. Just loading the file
128doesn't have any effect.
129
130** In Flyspell mode, the default is now to make just one Ispell process,
131not one per buffer.
132
133** If you use iswitchb but do not call (iswitchb-default-keybindings) to
134use the default keybindings, you will need to add the following line:
135 (add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup)
136
137** Auto-show mode is no longer enabled just by loading auto-show.el.
138To control it, set `auto-show-mode' via Custom or use the
139`auto-show-mode' command.
140
141** Handling of X fonts' ascent/descent parameters has been changed to
142avoid redisplay problems. As a consequence, compared with previous
143versions the line spacing and frame size now differ with some font
144choices, typically increasing by a pixel per line. This change
145occurred in version 20.3 but was not documented then.
146
147** If you select the bar cursor style, it uses the frame's
148cursor-color, rather than the cursor foreground pixel.
149
150** In multibyte mode, Rmail decodes incoming MIME messages using the
151character set specified in the message. If you want to disable this
152feature, set the variable rmail-decode-mime-charset to nil.
153
154** Not new, but not mentioned previously in NEWS: when you use #! at
155the beginning of a file to make it executable and specify an
156interpreter program, Emacs looks on the second line for the -*- mode
157and variable specification, as well as on the first line.
158
159** Support for IBM codepage encoding of non-ASCII characters.
160
161The new command M-x codepage-setup creates a special coding system
162that can be used to convert text between a specific IBM codepage and
163one of the character sets built into Emacs which matches that
164codepage. For example, codepage 850 corresponds to Latin-1 character
165set, codepage 855 corresponds to Cyrillic-ISO character set, etc.
166
167Windows codepages 1250, 1251 and some others, where Windows deviates
168from the corresponding ISO character set, are also supported.
169
170IBM box-drawing characters and other glyphs which don't have
171equivalents in the corresponding ISO character set, are converted to
172a character defined by dos-unsupported-char-glyph on MS-DOS, and to
173`?' on other systems.
174
175IBM codepages are widely used on MS-DOS and MS-Windows, so this
176feature is most useful on those platforms, but it can also be used on
177Unix.
178
179Emacs compiled for MS-DOS automatically loads the support for the
180current codepage when it starts.
181
182** Mail changes
183
184*** When mail is sent using compose-mail (C-x m), and if
185`mail-send-nonascii' is set to the new default value `mime',
186appropriate MIME headers are added. The headers are added only if
187non-ASCII characters are present in the body of the mail, and no other
188MIME headers are already present. For example, the following three
189headers are added if the coding system used in the *mail* buffer is
190latin-1:
191
192 MIME-version: 1.0
193 Content-type: text/plain; charset=iso-8859-1
194 Content-Transfer-Encoding: 8bit
195
196*** The new variable default-sendmail-coding-system specifies the
197default way to encode outgoing mail. This has higher priority than
198default-buffer-file-coding-system but has lower priority than
199sendmail-coding-system and the local value of
200buffer-file-coding-system.
201
202You should not set this variable manually. Instead, set
203sendmail-coding-system to specify a fixed encoding for all outgoing
204mail.
205
206*** When you try to send a message that contains non-ASCII characters,
207if the coding system specified by those variables doesn't handle them,
208Emacs will ask you to select a suitable coding system while showing a
209list of possible coding systems.
210
211** CC Mode changes
212
213*** c-default-style can now take an association list that maps major
214modes to style names. When this variable is an alist, Java mode no
215longer hardcodes a setting to "java" style. See the variable's
216docstring for details.
217
218*** It's now possible to put a list as the offset on a syntactic
219symbol. The list is evaluated recursively until a non-nil offset is
220found. This is useful to combine several lineup functions to act in a
221prioritized order on a single line. However, none of the supplied
222lineup functions use this feature currently.
223
224*** New syntactic symbol catch-clause, which is used on the "catch" and
225"finally" lines in try-catch constructs in C++ and Java.
226
227*** New cleanup brace-catch-brace on c-cleanup-list, which does for
228"catch" lines what brace-elseif-brace does for "else if" lines.
229
230*** The braces of Java anonymous inner classes are treated separately
231from the braces of other classes in auto-newline mode. Two new
232symbols inexpr-class-open and inexpr-class-close may be used on
233c-hanging-braces-alist to control the automatic newlines used for
234anonymous classes.
235
236*** Support for the Pike language added, along with new Pike specific
237syntactic symbols: inlambda, lambda-intro-cont
238
239*** Support for Java anonymous classes via new syntactic symbol
240inexpr-class. New syntactic symbol inexpr-statement for Pike
241support and gcc-style statements inside expressions. New lineup
242function c-lineup-inexpr-block.
243
244*** New syntactic symbol brace-entry-open which is used in brace lists
245(i.e. static initializers) when a list entry starts with an open
246brace. These used to be recognized as brace-list-entry's.
247c-electric-brace also recognizes brace-entry-open braces
248(brace-list-entry's can no longer be electrified).
249
250*** New command c-indent-line-or-region, not bound by default.
251
252*** `#' is only electric when typed in the indentation of a line.
253
254*** Parentheses are now electric (via the new command c-electric-paren)
255for auto-reindenting lines when parens are typed.
256
257*** In "gnu" style, inline-open offset is now set to zero.
258
259*** Uniform handling of the inclass syntactic symbol. The indentation
260associated with it is now always relative to the class opening brace.
261This means that the indentation behavior has changed in some
262circumstances, but only if you've put anything besides 0 on the
263class-open syntactic symbol (none of the default styles do that).
264
265** Gnus changes.
266
267*** New functionality for using Gnus as an offline newsreader has been
268added. A plethora of new commands and modes have been added. See the
269Gnus manual for the full story.
270
271*** The nndraft backend has returned, but works differently than
272before. All Message buffers are now also articles in the nndraft
273group, which is created automatically.
274
275*** `gnus-alter-header-function' can now be used to alter header
276values.
277
278*** `gnus-summary-goto-article' now accept Message-ID's.
279
280*** A new Message command for deleting text in the body of a message
281outside the region: `C-c C-v'.
282
283*** You can now post to component group in nnvirtual groups with
284`C-u C-c C-c'.
285
286*** `nntp-rlogin-program' -- new variable to ease customization.
287
288*** `C-u C-c C-c' in `gnus-article-edit-mode' will now inhibit
289re-highlighting of the article buffer.
290
291*** New element in `gnus-boring-article-headers' -- `long-to'.
292
293*** `M-i' symbolic prefix command. See the section "Symbolic
294Prefixes" in the Gnus manual for details.
295
296*** `L' and `I' in the summary buffer now take the symbolic prefix
297`a' to add the score rule to the "all.SCORE" file.
298
299*** `gnus-simplify-subject-functions' variable to allow greater
300control over simplification.
301
302*** `A T' -- new command for fetching the current thread.
303
304*** `/ T' -- new command for including the current thread in the
305limit.
306
307*** `M-RET' is a new Message command for breaking cited text.
308
309*** \\1-expressions are now valid in `nnmail-split-methods'.
310
311*** The `custom-face-lookup' function has been removed.
312If you used this function in your initialization files, you must
313rewrite them to use `face-spec-set' instead.
314
315*** Canceling now uses the current select method. Symbolic prefix
316`a' forces normal posting method.
317
318*** New command to translate M******** sm*rtq**t*s into proper text
319-- `W d'.
320
321*** For easier debugging of nntp, you can set `nntp-record-commands'
322to a non-nil value.
323
324*** nntp now uses ~/.authinfo, a .netrc-like file, for controlling
325where and how to send AUTHINFO to NNTP servers.
326
327*** A command for editing group parameters from the summary buffer
328has been added.
329
330*** A history of where mails have been split is available.
331
332*** A new article date command has been added -- `article-date-iso8601'.
333
334*** Subjects can be simplified when threading by setting
335`gnus-score-thread-simplify'.
336
337*** A new function for citing in Message has been added --
338`message-cite-original-without-signature'.
339
340*** `article-strip-all-blank-lines' -- new article command.
341
342*** A new Message command to kill to the end of the article has
343been added.
344
345*** A minimum adaptive score can be specified by using the
346`gnus-adaptive-word-minimum' variable.
347
348*** The "lapsed date" article header can be kept continually
349updated by the `gnus-start-date-timer' command.
350
351*** Web listserv archives can be read with the nnlistserv backend.
352
353*** Old dejanews archives can now be read by nnweb.
354
355*** `gnus-posting-styles' has been re-activated.
356
357** Changes to TeX and LaTeX mode
358
359*** The new variable `tex-start-options-string' can be used to give
360options for the TeX run. The default value causes TeX to run in
361nonstopmode. For an interactive TeX run set it to nil or "".
362
363*** The command `tex-feed-input' sends input to the Tex Shell. In a
364TeX buffer it is bound to the keys C-RET, C-c RET, and C-c C-m (some
365of these keys may not work on all systems). For instance, if you run
366TeX interactively and if the TeX run stops because of an error, you
367can continue it without leaving the TeX buffer by typing C-RET.
368
369*** The Tex Shell Buffer is now in `compilation-shell-minor-mode'.
370All error-parsing commands of the Compilation major mode are available
371but bound to keys that don't collide with the shell. Thus you can use
372the Tex Shell for command line executions like a usual shell.
373
374*** The commands `tex-validate-region' and `tex-validate-buffer' check
375the matching of braces and $'s. The errors are listed in a *Occur*
376buffer and you can use C-c C-c or mouse-2 to go to a particular
377mismatch.
378
379** Changes to RefTeX mode
380
381*** The table of contents buffer can now also display labels and
382file boundaries in addition to sections. Use `l', `i', and `c' keys.
383
384*** Labels derived from context (the section heading) are now
385lowercase by default. To make the label legal in LaTeX, latin-1
386characters will lose their accent. All Mule characters will be
387removed from the label.
388
389*** The automatic display of cross reference information can also use
390a window instead of the echo area. See variable `reftex-auto-view-crossref'.
391
392*** kpsewhich can be used by RefTeX to find TeX and BibTeX files. See the
393customization group `reftex-finding-files'.
394
395*** The option `reftex-bibfile-ignore-list' has been renamed to
396`reftex-bibfile-ignore-regexps' and indeed can be fed with regular
397expressions.
398
399*** Multiple Selection buffers are now hidden buffers.
400
401** New/deleted modes and packages
402
403*** The package snmp-mode.el provides major modes for editing SNMP and
404SNMPv2 MIBs. It has entries on `auto-mode-alist'.
405
406*** The package sql.el provides a major mode, M-x sql-mode, for
407editing SQL files, and M-x sql-interactive-mode for interacting with
408SQL interpreters. It has an entry on `auto-mode-alist'.
409
410*** ispell4.el has been deleted. It got in the way of ispell.el and
411this was hard to fix reliably. It has long been obsolete -- use
412Ispell 3.1 and ispell.el.
413
414
415* MS-DOS changes in Emacs 20.4
416
417** Emacs compiled for MS-DOS now supports MULE features better.
418This includes support for display of all ISO 8859-N character sets,
419conversion to and from IBM codepage encoding of non-ASCII characters,
420and automatic setup of the MULE environment at startup. For details,
421check out the section `MS-DOS and MULE' in the manual.
422
423The MS-DOS installation procedure automatically configures and builds
424Emacs with input method support if it finds an unpacked Leim
425distribution when the config.bat script is run.
426
427** Formerly, the value of lpr-command did not affect printing on
428MS-DOS unless print-region-function was set to nil, but now it
429controls whether an external program is invoked or output is written
430directly to a printer port. Similarly, in the previous version of
431Emacs, the value of ps-lpr-command did not affect PostScript printing
432on MS-DOS unless ps-printer-name was set to something other than a
433string (eg. t or `pipe'), but now it controls whether an external
434program is used. (These changes were made so that configuration of
435printing variables would be almost identical across all platforms.)
436
437** In the previous version of Emacs, PostScript and non-PostScript
438output was piped to external programs, but because most print programs
439available for MS-DOS and MS-Windows cannot read data from their standard
440input, on those systems the data to be output is now written to a
441temporary file whose name is passed as the last argument to the external
442program.
443
444An exception is made for `print', a standard program on Windows NT,
445and `nprint', a standard program on Novell Netware. For both of these
446programs, the command line is constructed in the appropriate syntax
447automatically, using only the value of printer-name or ps-printer-name
448as appropriate--the value of the relevant `-switches' variable is
449ignored, as both programs have no useful switches.
450
451** The value of the variable dos-printer (cf. dos-ps-printer), if it has
452a value, overrides the value of printer-name (cf. ps-printer-name), on
453MS-DOS and MS-Windows only. This has been true since version 20.3, but
454was not documented clearly before.
455
456** All the Emacs games now work on MS-DOS terminals.
457This includes Tetris and Snake.
458
459
460* Lisp changes in Emacs 20.4
461
462** New functions line-beginning-position and line-end-position
463return the position of the beginning or end of the current line.
464They both accept an optional argument, which has the same
465meaning as the argument to beginning-of-line or end-of-line.
466
467** find-file and allied functions now have an optional argument
468WILDCARD. If this is non-nil, they do wildcard processing,
469and visit all files that match the wildcard pattern.
470
471** Changes in the file-attributes function.
472
473*** The file size returned by file-attributes may be an integer or a float.
474It is an integer if the size fits in a Lisp integer, float otherwise.
475
476*** The inode number returned by file-attributes may be an integer (if
477the number fits in a Lisp integer) or a cons cell containing two
478integers.
479
480** The new function directory-files-and-attributes returns a list of
481files in a directory and their attributes. It accepts the same
482arguments as directory-files and has similar semantics, except that
483file names and attributes are returned.
484
485** The new function file-attributes-lessp is a helper function for
486sorting the list generated by directory-files-and-attributes. It
487accepts two arguments, each a list of a file name and its attributes.
488It compares the file names of each according to string-lessp and
489returns the result.
490
491** The new function file-expand-wildcards expands a wildcard-pattern
492to produce a list of existing files that match the pattern.
493
494** New functions for base64 conversion:
495
496The function base64-encode-region converts a part of the buffer
497into the base64 code used in MIME. base64-decode-region
498performs the opposite conversion. Line-breaking is supported
499optionally.
500
501Functions base64-encode-string and base64-decode-string do a similar
502job on the text in a string. They return the value as a new string.
503
504**
505The new function process-running-child-p
506will tell you if a subprocess has given control of its
507terminal to its own child process.
508
509** interrupt-process and such functions have a new feature:
510when the second argument is `lambda', they send a signal
511to the running child of the subshell, if any, but if the shell
512itself owns its terminal, no signal is sent.
513
514** There are new widget types `plist' and `alist' which can
515be used for customizing variables whose values are plists or alists.
516
517** easymenu.el now understands `:key-sequence' and `:style button'.
518:included is an alias for :visible.
519
520easy-menu-add-item now understands the values returned by
521easy-menu-remove-item and easy-menu-item-present-p. This can be used
522to move or copy menu entries.
523
524** Multibyte editing changes
525
526*** The definitions of sref and char-bytes are changed. Now, sref is
527an alias of aref and char-bytes always returns 1. This change is to
528make some Emacs Lisp code which works on 20.2 and earlier also
529work on the latest Emacs. Such code uses a combination of sref and
530char-bytes in a loop typically as below:
531 (setq char (sref str idx)
532 idx (+ idx (char-bytes idx)))
533The byte-compiler now warns that this is obsolete.
534
535If you want to know how many bytes a specific multibyte character
536(say, CH) occupies in a multibyte buffer, use this code:
537 (charset-bytes (char-charset ch))
538
539*** In multibyte mode, when you narrow a buffer to some region, and the
540region is preceded or followed by non-ASCII codes, inserting or
541deleting at the head or the end of the region may signal this error:
542
543 Byte combining across boundary of accessible buffer text inhibited
544
545This is to avoid some bytes being combined together into a character
546across the boundary.
547
548*** The functions find-charset-region and find-charset-string include
549`unknown' in the returned list in the following cases:
550 o The current buffer or the target string is unibyte and
551 contains 8-bit characters.
552 o The current buffer or the target string is multibyte and
553 contains invalid characters.
554
555*** The functions decode-coding-region and encode-coding-region remove
556text properties of the target region. Ideally, they should correctly
557preserve text properties, but for the moment, it's hard. Removing
558text properties is better than preserving them in a less-than-correct
559way.
560
561*** prefer-coding-system sets EOL conversion of default coding systems.
562If the argument to prefer-coding-system specifies a certain type of
563end of line conversion, the default coding systems set by
564prefer-coding-system will specify that conversion type for end of line.
565
566*** The new function thai-compose-string can be used to properly
567compose Thai characters in a string.
568
569** The primitive `define-prefix-command' now takes an optional third
570argument NAME, which should be a string. It supplies the menu name
571for the created keymap. Keymaps created in order to be displayed as
572menus should always use the third argument.
573
574** The meanings of optional second arguments for read-char,
575read-event, and read-char-exclusive are flipped. Now the second
576arguments are INHERIT-INPUT-METHOD. These functions use the current
577input method (if any) if and only if INHERIT-INPUT-METHOD is non-nil.
578
579** The new function clear-this-command-keys empties out the contents
580of the vector that (this-command-keys) returns. This is useful in
581programs that read passwords, to prevent the passwords from echoing
582inadvertently as part of the next command in certain cases.
583
584** The new macro `with-temp-message' displays a temporary message in
585the echo area, while executing some Lisp code. Like `progn', it
586returns the value of the last form, but it also restores the previous
587echo area contents.
588
589 (with-temp-message MESSAGE &rest BODY)
590
591** The function `require' now takes an optional third argument
592NOERROR. If it is non-nil, then there is no error if the
593requested feature cannot be loaded.
594
595** In the function modify-face, an argument of (nil) for the
596foreground color, background color or stipple pattern
597means to clear out that attribute.
598
599** The `outer-window-id' frame property of an X frame
600gives the window number of the outermost X window for the frame.
601
602** Temporary buffers made with with-output-to-temp-buffer are now
603read-only by default, and normally use the major mode Help mode
604unless you put them in some other non-Fundamental mode before the
605end of with-output-to-temp-buffer.
606
607** The new functions gap-position and gap-size return information on
608the gap of the current buffer.
609
610** The new functions position-bytes and byte-to-position provide a way
611to convert between character positions and byte positions in the
612current buffer.
613
614** vc.el defines two new macros, `edit-vc-file' and `with-vc-file', to
615facilitate working with version-controlled files from Lisp programs.
616These macros check out a given file automatically if needed, and check
617it back in after any modifications have been made.
618
619
620
621* Installation Changes in Emacs 20.3
622
623** The default value of load-path now includes most subdirectories of
624the site-specific directories /usr/local/share/emacs/site-lisp and
625/usr/local/share/emacs/VERSION/site-lisp, in addition to those
626directories themselves. Both immediate subdirectories and
627subdirectories multiple levels down are added to load-path.
628
629Not all subdirectories are included, though. Subdirectories whose
630names do not start with a letter or digit are excluded.
631Subdirectories named RCS or CVS are excluded. Also, a subdirectory
632which contains a file named `.nosearch' is excluded. You can use
633these methods to prevent certain subdirectories from being searched.
634
635Emacs finds these subdirectories and adds them to load-path when it
636starts up. While it would be cleaner to find the subdirectories each
637time Emacs loads a file, that would be much slower.
638
639This feature is an incompatible change. If you have stored some Emacs
640Lisp files in a subdirectory of the site-lisp directory specifically
641to prevent them from being used, you will need to rename the
642subdirectory to start with a non-alphanumeric character, or create a
643`.nosearch' file in it, in order to continue to achieve the desired
644results.
645
646** Emacs no longer includes an old version of the C preprocessor from
647GCC. This was formerly used to help compile Emacs with C compilers
648that had limits on the significant length of an identifier, but in
649fact we stopped supporting such compilers some time ago.
650
651
652* Changes in Emacs 20.3
653
654** The new command C-x z (repeat) repeats the previous command
655including its argument. If you repeat the z afterward,
656it repeats the command additional times; thus, you can
657perform many repetitions with one keystroke per repetition.
658
659** Emacs now supports "selective undo" which undoes only within a
660specified region. To do this, set point and mark around the desired
661region and type C-u C-x u (or C-u C-_). You can then continue undoing
662further, within the same region, by repeating the ordinary undo
663command C-x u or C-_. This will keep undoing changes that were made
664within the region you originally specified, until either all of them
665are undone, or it encounters a change which crosses the edge of that
666region.
667
668In Transient Mark mode, undoing when a region is active requests
669selective undo.
670
671** If you specify --unibyte when starting Emacs, then all buffers are
672unibyte, except when a Lisp program specifically creates a multibyte
673buffer. Setting the environment variable EMACS_UNIBYTE has the same
674effect. The --no-unibyte option overrides EMACS_UNIBYTE and directs
675Emacs to run normally in multibyte mode.
676
677The option --unibyte does not affect the reading of Emacs Lisp files,
678though. If you want a Lisp file to be read in unibyte mode, use
679-*-unibyte: t;-*- on its first line. That will force Emacs to
680load that file in unibyte mode, regardless of how Emacs was started.
681
682** toggle-enable-multibyte-characters no longer has a key binding and
683no longer appears in the menu bar. We've realized that changing the
684enable-multibyte-characters variable in an existing buffer is
685something that most users not do.
686
687** You can specify a coding system to use for the next cut or paste
688operations through the window system with the command C-x RET X.
689The coding system can make a difference for communication with other
690applications.
691
692C-x RET x specifies a coding system for all subsequent cutting and
693pasting operations.
694
695** You can specify the printer to use for commands that do printing by
696setting the variable `printer-name'. Just what a printer name looks
697like depends on your operating system. You can specify a different
698printer for the Postscript printing commands by setting
699`ps-printer-name'.
700
701** Emacs now supports on-the-fly spell checking by the means of a
702minor mode. It is called M-x flyspell-mode. You don't have to remember
703any other special commands to use it, and you will hardly notice it
704except when you make a spelling error. Flyspell works by highlighting
705incorrect words as soon as they are completed or as soon as the cursor
706hits a new word.
707
708Flyspell mode works with whichever dictionary you have selected for
709Ispell in Emacs. In TeX mode, it understands TeX syntax so as not
710to be confused by TeX commands.
711
712You can correct a misspelled word by editing it into something
713correct. You can also correct it, or accept it as correct, by
714clicking on the word with Mouse-2; that gives you a pop-up menu
715of various alternative replacements and actions.
716
717Flyspell mode also proposes "automatic" corrections. M-TAB replaces
718the current misspelled word with a possible correction. If several
719corrections are made possible, M-TAB cycles through them in
720alphabetical order, or in order of decreasing likelihood if
721flyspell-sort-corrections is nil.
722
723Flyspell mode also flags an error when a word is repeated, if
724flyspell-mark-duplications-flag is non-nil.
725
726** Changes in input method usage.
727
728Now you can use arrow keys (right, left, down, up) for selecting among
729the alternatives just the same way as you do by C-f, C-b, C-n, and C-p
730respectively.
731
732You can use the ENTER key to accept the current conversion.
733
734If you type TAB to display a list of alternatives, you can select one
735of the alternatives with Mouse-2.
736
737The meaning of the variable `input-method-verbose-flag' is changed so
738that you can set it to t, nil, `default', or `complex-only'.
739
740 If the value is nil, extra guidance is never given.
741
742 If the value is t, extra guidance is always given.
743
744 If the value is `complex-only', extra guidance is always given only
745 when you are using complex input methods such as chinese-py.
746
747 If the value is `default' (this is the default), extra guidance is
748 given in the following case:
749 o When you are using a complex input method.
750 o When you are using a simple input method but not in the minibuffer.
751
752If you are using Emacs through a very slow line, setting
753input-method-verbose-flag to nil or to complex-only is a good choice,
754and if you are using an input method you are not familiar with,
755setting it to t is helpful.
756
757The old command select-input-method is now called set-input-method.
758
759In the language environment "Korean", you can use the following
760keys:
761 Shift-SPC toggle-korean-input-method
762 C-F9 quail-hangul-switch-symbol-ksc
763 F9 quail-hangul-switch-hanja
764These key bindings are canceled when you switch to another language
765environment.
766
767** The minibuffer history of file names now records the specified file
768names, not the entire minibuffer input. For example, if the
769minibuffer starts out with /usr/foo/, you might type in /etc/passwd to
770get
771
772 /usr/foo//etc/passwd
773
774which stands for the file /etc/passwd.
775
776Formerly, this used to put /usr/foo//etc/passwd in the history list.
777Now this puts just /etc/passwd in the history list.
778
779** If you are root, Emacs sets backup-by-copying-when-mismatch to t
780at startup, so that saving a file will be sure to preserve
781its owner and group.
782
783** find-func.el can now also find the place of definition of Emacs
784Lisp variables in user-loaded libraries.
785
786** C-x r t (string-rectangle) now deletes the existing rectangle
787contents before inserting the specified string on each line.
788
789** There is a new command delete-whitespace-rectangle
790which deletes whitespace starting from a particular column
791in all the lines on a rectangle. The column is specified
792by the left edge of the rectangle.
793
794** You can now store a number into a register with C-u NUMBER C-x r n REG,
795increment it by INC with C-u INC C-x r + REG (to increment by one, omit
796C-u INC), and insert it in the buffer with C-x r g REG. This is useful
797for writing keyboard macros.
798
799** The new command M-x speedbar displays a frame in which directories,
800files, and tags can be displayed, manipulated, and jumped to. The
801frame defaults to 20 characters in width, and is the same height as
802the frame that it was started from. Some major modes define
803additional commands for the speedbar, including Rmail, GUD/GDB, and
804info.
805
806** query-replace-regexp is now bound to C-M-%.
807
808** In Transient Mark mode, when the region is active, M-x
809query-replace and the other replace commands now operate on the region
810contents only.
811
812** M-x write-region, when used interactively, now asks for
813confirmation before overwriting an existing file. When you call
814the function from a Lisp program, a new optional argument CONFIRM
815says whether to ask for confirmation in this case.
816
817** If you use find-file-literally and the file is already visited
818non-literally, the command asks you whether to revisit the file
819literally. If you say no, it signals an error.
820
821** Major modes defined with the "derived mode" feature
822now use the proper name for the mode hook: WHATEVER-mode-hook.
823Formerly they used the name WHATEVER-mode-hooks, but that is
824inconsistent with Emacs conventions.
825
826** shell-command-on-region (and shell-command) reports success or
827failure if the command produces no output.
828
829** Set focus-follows-mouse to nil if your window system or window
830manager does not transfer focus to another window when you just move
831the mouse.
832
833** mouse-menu-buffer-maxlen has been renamed to
834mouse-buffer-menu-maxlen to be consistent with the other related
835function and variable names.
836
837** The new variable auto-coding-alist specifies coding systems for
838reading specific files. This has higher priority than
839file-coding-system-alist.
840
841** If you set the variable unibyte-display-via-language-environment to
842t, then Emacs displays non-ASCII characters are displayed by
843converting them to the equivalent multibyte characters according to
844the current language environment. As a result, they are displayed
845according to the current fontset.
846
847** C-q's handling of codes in the range 0200 through 0377 is changed.
848
849The codes in the range 0200 through 0237 are inserted as one byte of
850that code regardless of the values of nonascii-translation-table and
851nonascii-insert-offset.
852
853For the codes in the range 0240 through 0377, if
854enable-multibyte-characters is non-nil and nonascii-translation-table
855nor nonascii-insert-offset can't convert them to valid multibyte
856characters, they are converted to Latin-1 characters.
857
858** If you try to find a file that is not read-accessible, you now get
859an error, rather than an empty buffer and a warning.
860
861** In the minibuffer history commands M-r and M-s, an upper case
862letter in the regular expression forces case-sensitive search.
863
864** In the *Help* buffer, cross-references to commands and variables
865are inferred and hyperlinked. Use C-h m in Help mode for the relevant
866command keys.
867
868** M-x apropos-command, with a prefix argument, no longer looks for
869user option variables--instead it looks for noninteractive functions.
870
871Meanwhile, the command apropos-variable normally searches for
872user option variables; with a prefix argument, it looks at
873all variables that have documentation.
874
875** When you type a long line in the minibuffer, and the minibuffer
876shows just one line, automatically scrolling works in a special way
877that shows you overlap with the previous line of text. The variable
878minibuffer-scroll-overlap controls how many characters of overlap
879it should show; the default is 20.
880
881Meanwhile, Resize Minibuffer mode is still available; in that mode,
882the minibuffer grows taller (up to a point) as needed to show the whole
883of your input.
884
885** The new command M-x customize-changed-options lets you customize
886all the options whose meanings or default values have changed in
887recent Emacs versions. You specify a previous Emacs version number as
888argument, and the command creates a customization buffer showing all
889the customizable options which were changed since that version.
890Newly added options are included as well.
891
892If you don't specify a particular version number argument,
893then the customization buffer shows all the customizable options
894for which Emacs versions of changes are recorded.
895
896This function is also bound to the Changed Options entry in the
897Customize menu.
898
899** When you run M-x grep with a prefix argument, it figures out
900the tag around point and puts that into the default grep command.
901
902** The new command M-* (pop-tag-mark) pops back through a history of
903buffer positions from which M-. or other tag-finding commands were
904invoked.
905
906** The new variable comment-padding specifies the number of spaces
907that `comment-region' will insert before the actual text of the comment.
908The default is 1.
909
910** In Fortran mode the characters `.', `_' and `$' now have symbol
911syntax, not word syntax. Fortran mode now supports `imenu' and has
912new commands fortran-join-line (M-^) and fortran-narrow-to-subprogram
913(C-x n d). M-q can be used to fill a statement or comment block
914sensibly.
915
916** GUD now supports jdb, the Java debugger, and pdb, the Python debugger.
917
918** If you set the variable add-log-keep-changes-together to a non-nil
919value, the command `C-x 4 a' will automatically notice when you make
920two entries in one day for one file, and combine them.
921
922** You can use the command M-x diary-mail-entries to mail yourself a
923reminder about upcoming diary entries. See the documentation string
924for a sample shell script for calling this function automatically
925every night.
926
927** Desktop changes
928
929*** All you need to do to enable use of the Desktop package, is to set
930the variable desktop-enable to t with Custom.
931
932*** Minor modes are now restored. Which minor modes are restored
933and how modes are restored is controlled by `desktop-minor-mode-table'.
934
935** There is no need to do anything special, now, to enable Gnus to
936read and post multi-lingual articles.
937
938** Outline mode has now support for showing hidden outlines when
939doing an isearch. In order for this to happen search-invisible should
940be set to open (the default). If an isearch match is inside a hidden
941outline the outline is made visible. If you continue pressing C-s and
942the match moves outside the formerly invisible outline, the outline is
943made invisible again.
944
945** Mail reading and sending changes
946
947*** The Rmail e command now switches to displaying the whole header of
948the message before it lets you edit the message. This is so that any
949changes you make in the header will not be lost if you subsequently
950toggle.
951
952*** The w command in Rmail, which writes the message body into a file,
953now works in the summary buffer as well. (The command to delete the
954summary buffer is now Q.) The default file name for the w command, if
955the message has no subject, is stored in the variable
956rmail-default-body-file.
957
958*** Most of the commands and modes that operate on mail and netnews no
959longer depend on the value of mail-header-separator. Instead, they
960handle whatever separator the buffer happens to use.
961
962*** If you set mail-signature to a value which is not t, nil, or a string,
963it should be an expression. When you send a message, this expression
964is evaluated to insert the signature.
965
966*** The new Lisp library feedmail.el (version 8) enhances processing of
967outbound email messages. It works in coordination with other email
968handling packages (e.g., rmail, VM, gnus) and is responsible for
969putting final touches on messages and actually submitting them for
970transmission. Users of the emacs program "fakemail" might be
971especially interested in trying feedmail.
972
973feedmail is not enabled by default. See comments at the top of
974feedmail.el for set-up instructions. Among the bigger features
975provided by feedmail are:
976
977**** you can park outgoing messages into a disk-based queue and
978stimulate sending some or all of them later (handy for laptop users);
979there is also a queue for draft messages
980
981**** you can get one last look at the prepped outbound message and
982be prompted for confirmation
983
984**** does smart filling of address headers
985
986**** can generate a MESSAGE-ID: line and a DATE: line; the date can be
987the time the message was written or the time it is being sent; this
988can make FCC copies more closely resemble copies that recipients get
989
990**** you can specify an arbitrary function for actually transmitting
991the message; included in feedmail are interfaces for /bin/[r]mail,
992/usr/lib/sendmail, and Emacs Lisp smtpmail; it's easy to write a new
993function for something else (10-20 lines of Lisp code).
994
995** Dired changes
996
997*** The Dired function dired-do-toggle, which toggles marked and unmarked
998files, is now bound to "t" instead of "T".
999
1000*** dired-at-point has been added to ffap.el. It allows one to easily
1001run Dired on the directory name at point.
1002
1003*** Dired has a new command: %g. It searches the contents of
1004files in the directory and marks each file that contains a match
1005for a specified regexp.
1006
1007** VC Changes
1008
1009*** New option vc-ignore-vc-files lets you turn off version control
1010conveniently.
1011
1012*** VC Dired has been completely rewritten. It is now much
1013faster, especially for CVS, and works very similar to ordinary
1014Dired.
1015
1016VC Dired is invoked by typing C-x v d and entering the name of the
1017directory to display. By default, VC Dired gives you a recursive
1018listing of all files at or below the given directory which are
1019currently locked (for CVS, all files not up-to-date are shown).
1020
1021You can change the listing format by setting vc-dired-recurse to nil,
1022then it shows only the given directory, and you may also set
1023vc-dired-terse-display to nil, then it shows all files under version
1024control plus the names of any subdirectories, so that you can type `i'
1025on such lines to insert them manually, as in ordinary Dired.
1026
1027All Dired commands operate normally in VC Dired, except for `v', which
1028is redefined as the version control prefix. That means you may type
1029`v l', `v =' etc. to invoke `vc-print-log', `vc-diff' and the like on
1030the file named in the current Dired buffer line. `v v' invokes
1031`vc-next-action' on this file, or on all files currently marked.
1032
1033The new command `v t' (vc-dired-toggle-terse-mode) allows you to
1034toggle between terse display (only locked files) and full display (all
1035VC files plus subdirectories). There is also a special command,
1036`* l', to mark all files currently locked.
1037
1038Giving a prefix argument to C-x v d now does the same thing as in
1039ordinary Dired: it allows you to supply additional options for the ls
1040command in the minibuffer, to fine-tune VC Dired's output.
1041
1042*** Under CVS, if you merge changes from the repository into a working
1043file, and CVS detects conflicts, VC now offers to start an ediff
1044session to resolve them.
1045
1046Alternatively, you can use the new command `vc-resolve-conflicts' to
1047resolve conflicts in a file at any time. It works in any buffer that
1048contains conflict markers as generated by rcsmerge (which is what CVS
1049uses as well).
1050
1051*** You can now transfer changes between branches, using the new
1052command vc-merge (C-x v m). It is implemented for RCS and CVS. When
1053you invoke it in a buffer under version-control, you can specify
1054either an entire branch or a pair of versions, and the changes on that
1055branch or between the two versions are merged into the working file.
1056If this results in any conflicts, they may be resolved interactively,
1057using ediff.
1058
1059** Changes in Font Lock
1060
1061*** The face and variable previously known as font-lock-reference-face
1062are now called font-lock-constant-face to better reflect their typical
1063use for highlighting constants and labels. (Its face properties are
1064unchanged.) The variable font-lock-reference-face remains for now for
1065compatibility reasons, but its value is font-lock-constant-face.
1066
1067** Frame name display changes
1068
1069*** The command set-frame-name lets you set the name of the current
1070frame. You can use the new command select-frame-by-name to select and
1071raise a frame; this is mostly useful on character-only terminals, or
1072when many frames are invisible or iconified.
1073
1074*** On character-only terminal (not a window system), changing the
1075frame name is now reflected on the mode line and in the Buffers/Frames
1076menu.
1077
1078** Comint (subshell) changes
1079
1080*** In Comint modes, the commands to kill, stop or interrupt a
1081subjob now also kill pending input. This is for compatibility
1082with ordinary shells, where the signal characters do this.
1083
1084*** There are new commands in Comint mode.
1085
1086C-c C-x fetches the "next" line from the input history;
1087that is, the line after the last line you got.
1088You can use this command to fetch successive lines, one by one.
1089
1090C-c SPC accumulates lines of input. More precisely, it arranges to
1091send the current line together with the following line, when you send
1092the following line.
1093
1094C-c C-a if repeated twice consecutively now moves to the process mark,
1095which separates the pending input from the subprocess output and the
1096previously sent input.
1097
1098C-c M-r now runs comint-previous-matching-input-from-input;
1099it searches for a previous command, using the current pending input
1100as the search string.
1101
1102*** New option compilation-scroll-output can be set to scroll
1103automatically in compilation-mode windows.
1104
1105** C mode changes
1106
1107*** Multiline macros are now handled, both as they affect indentation,
1108and as recognized syntax. New syntactic symbol cpp-macro-cont is
1109assigned to second and subsequent lines of a multiline macro
1110definition.
1111
1112*** A new style "user" which captures all non-hook-ified
1113(i.e. top-level) .emacs file variable settings and customizations.
1114Style "cc-mode" is an alias for "user" and is deprecated. "gnu"
1115style is still the default however.
1116
1117*** "java" style now conforms to Sun's JDK coding style.
1118
1119*** There are new commands c-beginning-of-defun, c-end-of-defun which
1120are alternatives which you could bind to C-M-a and C-M-e if you prefer
1121them. They do not have key bindings by default.
1122
1123*** New and improved implementations of M-a (c-beginning-of-statement)
1124and M-e (c-end-of-statement).
1125
1126*** C++ namespace blocks are supported, with new syntactic symbols
1127namespace-open, namespace-close, and innamespace.
1128
1129*** File local variable settings of c-file-style and c-file-offsets
1130makes the style variables local to that buffer only.
1131
1132*** New indentation functions c-lineup-close-paren,
1133c-indent-one-line-block, c-lineup-dont-change.
1134
1135*** Improvements (hopefully!) to the way CC Mode is loaded. You
1136should now be able to do a (require 'cc-mode) to get the entire
1137package loaded properly for customization in your .emacs file. A new
1138variable c-initialize-on-load controls this and is t by default.
1139
1140** Changes to hippie-expand.
1141
1142*** New customization variable `hippie-expand-dabbrev-skip-space'. If
1143non-nil, trailing spaces may be included in the abbreviation to search for,
1144which then gives the same behavior as the original `dabbrev-expand'.
1145
1146*** New customization variable `hippie-expand-dabbrev-as-symbol'. If
1147non-nil, characters of syntax '_' is considered part of the word when
1148expanding dynamically.
1149
1150*** New customization variable `hippie-expand-no-restriction'. If
1151non-nil, narrowed buffers are widened before they are searched.
1152
1153*** New customization variable `hippie-expand-only-buffers'. If
1154non-empty, buffers searched are restricted to the types specified in
1155this list. Useful for example when constructing new special-purpose
1156expansion functions with `make-hippie-expand-function'.
1157
1158*** Text properties of the expansion are no longer copied.
1159
1160** Changes in BibTeX mode.
1161
1162*** Any titleword matching a regexp in the new variable
1163bibtex-autokey-titleword-ignore (case sensitive) is ignored during
1164automatic key generation. This replaces variable
1165bibtex-autokey-titleword-first-ignore, which only checked for matches
1166against the first word in the title.
1167
1168*** Autokey generation now uses all words from the title, not just
1169capitalized words. To avoid conflicts with existing customizations,
1170bibtex-autokey-titleword-ignore is set up such that words starting with
1171lowerkey characters will still be ignored. Thus, if you want to use
1172lowercase words from the title, you will have to overwrite the
1173bibtex-autokey-titleword-ignore standard setting.
1174
1175*** Case conversion of names and title words for automatic key
1176generation is more flexible. Variable bibtex-autokey-preserve-case is
1177replaced by bibtex-autokey-titleword-case-convert and
1178bibtex-autokey-name-case-convert.
1179
1180** Changes in vcursor.el.
1181
1182*** Support for character terminals is available: there is a new keymap
1183and the vcursor will appear as an arrow between buffer text. A
1184variable `vcursor-interpret-input' allows input from the vcursor to be
1185entered exactly as if typed. Numerous functions, including
1186`vcursor-compare-windows', have been rewritten to improve consistency
1187in the selection of windows and corresponding keymaps.
1188
1189*** vcursor options can now be altered with M-x customize under the
1190Editing group once the package is loaded.
1191
1192*** Loading vcursor now does not define keys by default, as this is
1193generally a bad side effect. Use M-x customize to set
1194vcursor-key-bindings to t to restore the old behavior.
1195
1196*** vcursor-auto-disable can be `copy', which turns off copying from the
1197vcursor, but doesn't disable it, after any non-vcursor command.
1198
1199** Ispell changes.
1200
1201*** You can now spell check comments and strings in the current
1202buffer with M-x ispell-comments-and-strings. Comments and strings
1203are identified by syntax tables in effect.
1204
1205*** Generic region skipping implemented.
1206A single buffer can be broken into a number of regions where text will
1207and will not be checked. The definitions of the regions can be user
1208defined. New applications and improvements made available by this
1209include:
1210
1211 o URLs are automatically skipped
1212 o EMail message checking is vastly improved.
1213
1214*** Ispell can highlight the erroneous word even on non-window terminals.
1215
1216** Changes to RefTeX mode
1217
1218RefTeX has been updated in order to make it more usable with very
1219large projects (like a several volume math book). The parser has been
1220re-written from scratch. To get maximum speed from RefTeX, check the
1221section `Optimizations' in the manual.
1222
1223*** New recursive parser.
1224
1225The old version of RefTeX created a single large buffer containing the
1226entire multifile document in order to parse the document. The new
1227recursive parser scans the individual files.
1228
1229*** Parsing only part of a document.
1230
1231Reparsing of changed document parts can now be made faster by enabling
1232partial scans. To use this feature, read the documentation string of
1233the variable `reftex-enable-partial-scans' and set the variable to t.
1234
1235 (setq reftex-enable-partial-scans t)
1236
1237*** Storing parsing information in a file.
1238
1239This can improve startup times considerably. To turn it on, use
1240
1241 (setq reftex-save-parse-info t)
1242
1243*** Using multiple selection buffers
1244
1245If the creation of label selection buffers is too slow (this happens
1246for large documents), you can reuse these buffers by setting
1247
1248 (setq reftex-use-multiple-selection-buffers t)
1249
1250*** References to external documents.
1251
1252The LaTeX package `xr' allows to cross-reference labels in external
1253documents. RefTeX can provide information about the external
1254documents as well. To use this feature, set up the \externaldocument
1255macros required by the `xr' package and rescan the document with
1256RefTeX. The external labels can then be accessed with the `x' key in
1257the selection buffer provided by `reftex-reference' (bound to `C-c )').
1258The `x' key also works in the table of contents buffer.
1259
1260*** Many more labeled LaTeX environments are recognized by default.
1261
1262The built-in command list now covers all the standard LaTeX commands,
1263and all of the major packages included in the LaTeX distribution.
1264
1265Also, RefTeX now understands the \appendix macro and changes
1266the enumeration of sections in the *toc* buffer accordingly.
1267
1268*** Mouse support for selection and *toc* buffers
1269
1270The mouse can now be used to select items in the selection and *toc*
1271buffers. See also the new option `reftex-highlight-selection'.
1272
1273*** New keymaps for selection and table of contents modes.
1274
1275The selection processes for labels and citation keys, and the table of
1276contents buffer now have their own keymaps: `reftex-select-label-map',
1277`reftex-select-bib-map', `reftex-toc-map'. The selection processes
1278have a number of new keys predefined. In particular, TAB lets you
1279enter a label with completion. Check the on-the-fly help (press `?'
1280at the selection prompt) or read the Info documentation to find out
1281more.
1282
1283*** Support for the varioref package
1284
1285The `v' key in the label selection buffer toggles \ref versus \vref.
1286
1287*** New hooks
1288
1289Three new hooks can be used to redefine the way labels, references,
1290and citations are created. These hooks are
1291`reftex-format-label-function', `reftex-format-ref-function',
1292`reftex-format-cite-function'.
1293
1294*** Citations outside LaTeX
1295
1296The command `reftex-citation' may also be used outside LaTeX (e.g. in
1297a mail buffer). See the Info documentation for details.
1298
1299*** Short context is no longer fontified.
1300
1301The short context in the label menu no longer copies the
1302fontification from the text in the buffer. If you prefer it to be
1303fontified, use
1304
1305 (setq reftex-refontify-context t)
1306
1307** file-cache-minibuffer-complete now accepts a prefix argument.
1308With a prefix argument, it does not try to do completion of
1309the file name within its directory; it only checks for other
1310directories that contain the same file name.
1311
1312Thus, given the file name Makefile, and assuming that a file
1313Makefile.in exists in the same directory, ordinary
1314file-cache-minibuffer-complete will try to complete Makefile to
1315Makefile.in and will therefore never look for other directories that
1316have Makefile. A prefix argument tells it not to look for longer
1317names such as Makefile.in, so that instead it will look for other
1318directories--just as if the name were already complete in its present
1319directory.
1320
1321** New modes and packages
1322
1323*** There is a new alternative major mode for Perl, Cperl mode.
1324It has many more features than Perl mode, and some people prefer
1325it, but some do not.
1326
1327*** There is a new major mode, M-x vhdl-mode, for editing files of VHDL
1328code.
1329
1330*** M-x which-function-mode enables a minor mode that displays the
1331current function name continuously in the mode line, as you move
1332around in a buffer.
1333
1334Which Function mode is effective in major modes which support Imenu.
1335
1336*** Gametree is a major mode for editing game analysis trees. The author
1337uses it for keeping notes about his postal Chess games, but it should
1338be helpful for other two-player games as well, as long as they have an
1339established system of notation similar to Chess.
1340
1341*** The new minor mode checkdoc-minor-mode provides Emacs Lisp
1342documentation string checking for style and spelling. The style
1343guidelines are found in the Emacs Lisp programming manual.
1344
1345*** The net-utils package makes some common networking features
1346available in Emacs. Some of these functions are wrappers around
1347system utilities (ping, nslookup, etc.); others are implementations of
1348simple protocols (finger, whois) in Emacs Lisp. There are also
1349functions to make simple connections to TCP/IP ports for debugging and
1350the like.
1351
1352*** highlight-changes-mode is a minor mode that uses colors to
1353identify recently changed parts of the buffer text.
1354
1355*** The new package `midnight' lets you specify things to be done
1356within Emacs at midnight--by default, kill buffers that you have not
1357used in a considerable time. To use this feature, customize
1358the user option `midnight-mode' to t.
1359
1360*** The file generic-x.el defines a number of simple major modes.
1361
1362 apache-generic-mode: For Apache and NCSA httpd configuration files
1363 samba-generic-mode: Samba configuration files
1364 fvwm-generic-mode: For fvwm initialization files
1365 x-resource-generic-mode: For X resource files
1366 hosts-generic-mode: For hosts files (.rhosts, /etc/hosts, etc.)
1367 mailagent-rules-generic-mode: For mailagent .rules files
1368 javascript-generic-mode: For JavaScript files
1369 vrml-generic-mode: For VRML files
1370 java-manifest-generic-mode: For Java MANIFEST files
1371 java-properties-generic-mode: For Java property files
1372 mailrc-generic-mode: For .mailrc files
1373
1374 Platform-specific modes:
1375
1376 prototype-generic-mode: For Solaris/Sys V prototype files
1377 pkginfo-generic-mode: For Solaris/Sys V pkginfo files
1378 alias-generic-mode: For C shell alias files
1379 inf-generic-mode: For MS-Windows INF files
1380 ini-generic-mode: For MS-Windows INI files
1381 reg-generic-mode: For MS-Windows Registry files
1382 bat-generic-mode: For MS-Windows BAT scripts
1383 rc-generic-mode: For MS-Windows Resource files
1384 rul-generic-mode: For InstallShield scripts
1385
1386
1387* Lisp changes in Emacs 20.3 since the Emacs Lisp Manual was published
1388
1389** If you want a Lisp file to be read in unibyte mode,
1390use -*-unibyte: t;-*- on its first line.
1391That will force Emacs to read that file in unibyte mode.
1392Otherwise, the file will be loaded and byte-compiled in multibyte mode.
1393
1394Thus, each lisp file is read in a consistent way regardless of whether
1395you started Emacs with --unibyte, so that a Lisp program gives
1396consistent results regardless of how Emacs was started.
1397
1398** The new function assoc-default is useful for searching an alist,
1399and using a default value if the key is not found there. You can
1400specify a comparison predicate, so this function is useful for
1401searching comparing a string against an alist of regular expressions.
1402
1403** The functions unibyte-char-to-multibyte and
1404multibyte-char-to-unibyte convert between unibyte and multibyte
1405character codes, in a way that is appropriate for the current language
1406environment.
1407
1408** The functions read-event, read-char and read-char-exclusive now
1409take two optional arguments. PROMPT, if non-nil, specifies a prompt
1410string. SUPPRESS-INPUT-METHOD, if non-nil, says to disable the
1411current input method for reading this one event.
1412
1413** Two new variables print-escape-nonascii and print-escape-multibyte
1414now control whether to output certain characters as
1415backslash-sequences. print-escape-nonascii applies to single-byte
1416non-ASCII characters; print-escape-multibyte applies to multibyte
1417characters. Both of these variables are used only when printing
1418in readable fashion (prin1 uses them, princ does not).
1419
1420
1421* Lisp changes in Emacs 20.3 before the Emacs Lisp Manual was published
1422
1423** Compiled Emacs Lisp files made with the modified "MBSK" version
1424of Emacs 20.2 do not work in Emacs 20.3.
1425
1426** Buffer positions are now measured in characters, as they were
1427in Emacs 19 and before. This means that (forward-char 1)
1428always increases point by 1.
1429
1430The function chars-in-region now just subtracts its arguments. It is
1431considered obsolete. The function char-boundary-p has been deleted.
1432
1433See below for additional changes relating to multibyte characters.
1434
1435** defcustom, defface and defgroup now accept the keyword `:version'.
1436Use this to specify in which version of Emacs a certain variable's
1437default value changed. For example,
1438
1439 (defcustom foo-max 34 "*Maximum number of foo's allowed."
1440 :type 'integer
1441 :group 'foo
1442 :version "20.3")
1443
1444 (defgroup foo-group nil "The foo group."
1445 :version "20.3")
1446
1447If an entire new group is added or the variables in it have the
1448default values changed, then just add a `:version' to that group. It
1449is recommended that new packages added to the distribution contain a
1450`:version' in the top level group.
1451
1452This information is used to control the customize-changed-options command.
1453
1454** It is now an error to change the value of a symbol whose name
1455starts with a colon--if it is interned in the standard obarray.
1456
1457However, setting such a symbol to its proper value, which is that
1458symbol itself, is not an error. This is for the sake of programs that
1459support previous Emacs versions by explicitly setting these variables
1460to themselves.
1461
1462If you set the variable keyword-symbols-constant-flag to nil,
1463this error is suppressed, and you can set these symbols to any
1464values whatever.
1465
1466** There is a new debugger command, R.
1467It evaluates an expression like e, but saves the result
1468in the buffer *Debugger-record*.
1469
1470** Frame-local variables.
1471
1472You can now make a variable local to various frames. To do this, call
1473the function make-variable-frame-local; this enables frames to have
1474local bindings for that variable.
1475
1476These frame-local bindings are actually frame parameters: you create a
1477frame-local binding in a specific frame by calling
1478modify-frame-parameters and specifying the variable name as the
1479parameter name.
1480
1481Buffer-local bindings take precedence over frame-local bindings.
1482Thus, if the current buffer has a buffer-local binding, that binding is
1483active; otherwise, if the selected frame has a frame-local binding,
1484that binding is active; otherwise, the default binding is active.
1485
1486It would not be hard to implement window-local bindings, but it is not
1487clear that this would be very useful; windows tend to come and go in a
1488very transitory fashion, so that trying to produce any specific effect
1489through a window-local binding would not be very robust.
1490
1491** `sregexq' and `sregex' are two new functions for constructing
1492"symbolic regular expressions." These are Lisp expressions that, when
1493evaluated, yield conventional string-based regexps. The symbolic form
1494makes it easier to construct, read, and maintain complex patterns.
1495See the documentation in sregex.el.
1496
1497** parse-partial-sexp's return value has an additional element which
1498is used to pass information along if you pass it to another call to
1499parse-partial-sexp, starting its scan where the first call ended.
1500The contents of this field are not yet finalized.
1501
1502** eval-region now accepts a fourth optional argument READ-FUNCTION.
1503If it is non-nil, that function is used instead of `read'.
1504
1505** unload-feature by default removes the feature's functions from
1506known hooks to avoid trouble, but a package providing FEATURE can
1507define a hook FEATURE-unload-hook to be run by unload-feature instead.
1508
1509** read-from-minibuffer no longer returns the argument DEFAULT-VALUE
1510when the user enters empty input. It now returns the null string, as
1511it did in Emacs 19. The default value is made available in the
1512history via M-n, but it is not applied here as a default.
1513
1514The other, more specialized minibuffer-reading functions continue to
1515return the default value (not the null string) when the user enters
1516empty input.
1517
1518** The new variable read-buffer-function controls which routine to use
1519for selecting buffers. For example, if you set this variable to
1520`iswitchb-read-buffer', iswitchb will be used to read buffer names.
1521Other functions can also be used if they accept the same arguments as
1522`read-buffer' and return the selected buffer name as a string.
1523
1524** The new function read-passwd reads a password from the terminal,
1525echoing a period for each character typed. It takes three arguments:
1526a prompt string, a flag which says "read it twice to make sure", and a
1527default password to use if the user enters nothing.
1528
1529** The variable fill-nobreak-predicate gives major modes a way to
1530specify not to break a line at certain places. Its value is a
1531function which is called with no arguments, with point located at the
1532place where a break is being considered. If the function returns
1533non-nil, then the line won't be broken there.
1534
1535** window-end now takes an optional second argument, UPDATE.
1536If this is non-nil, then the function always returns an accurate
1537up-to-date value for the buffer position corresponding to the
1538end of the window, even if this requires computation.
1539
1540** other-buffer now takes an optional argument FRAME
1541which specifies which frame's buffer list to use.
1542If it is nil, that means use the selected frame's buffer list.
1543
1544** The new variable buffer-display-time, always local in every buffer,
1545holds the value of (current-time) as of the last time that a window
1546was directed to display this buffer.
1547
1548** It is now meaningful to compare two window-configuration objects
1549with `equal'. Two window-configuration objects are equal if they
1550describe equivalent arrangements of windows, in the same frame--in
1551other words, if they would give the same results if passed to
1552set-window-configuration.
1553
1554** compare-window-configurations is a new function that compares two
1555window configurations loosely. It ignores differences in saved buffer
1556positions and scrolling, and considers only the structure and sizes of
1557windows and the choice of buffers to display.
1558
1559** The variable minor-mode-overriding-map-alist allows major modes to
1560override the key bindings of a minor mode. The elements of this alist
1561look like the elements of minor-mode-map-alist: (VARIABLE . KEYMAP).
1562
1563If the VARIABLE in an element of minor-mode-overriding-map-alist has a
1564non-nil value, the paired KEYMAP is active, and totally overrides the
1565map (if any) specified for the same variable in minor-mode-map-alist.
1566
1567minor-mode-overriding-map-alist is automatically local in all buffers,
1568and it is meant to be set by major modes.
1569
1570** The function match-string-no-properties is like match-string
1571except that it discards all text properties from the result.
1572
1573** The function load-average now accepts an optional argument
1574USE-FLOATS. If it is non-nil, the load average values are returned as
1575floating point numbers, rather than as integers to be divided by 100.
1576
1577** The new variable temporary-file-directory specifies the directory
1578to use for creating temporary files. The default value is determined
1579in a reasonable way for your operating system; on GNU and Unix systems
1580it is based on the TMP and TMPDIR environment variables.
1581
1582** Menu changes
1583
1584*** easymenu.el now uses the new menu item format and supports the
1585keywords :visible and :filter. The existing keyword :keys is now
1586better supported.
1587
1588The variable `easy-menu-precalculate-equivalent-keybindings' controls
1589a new feature which calculates keyboard equivalents for the menu when
1590you define the menu. The default is t. If you rarely use menus, you
1591can set the variable to nil to disable this precalculation feature;
1592then the calculation is done only if you use the menu bar.
1593
1594*** A new format for menu items is supported.
1595
1596In a keymap, a key binding that has the format
1597 (STRING . REAL-BINDING) or (STRING HELP-STRING . REAL-BINDING)
1598defines a menu item. Now a menu item definition may also be a list that
1599starts with the symbol `menu-item'.
1600
1601The format is:
1602 (menu-item ITEM-NAME) or
1603 (menu-item ITEM-NAME REAL-BINDING . ITEM-PROPERTY-LIST)
1604where ITEM-NAME is an expression which evaluates to the menu item
1605string, and ITEM-PROPERTY-LIST has the form of a property list.
1606The supported properties include
1607
1608:enable FORM Evaluate FORM to determine whether the
1609 item is enabled.
1610:visible FORM Evaluate FORM to determine whether the
1611 item should appear in the menu.
1612:filter FILTER-FN
1613 FILTER-FN is a function of one argument,
1614 which will be REAL-BINDING.
1615 It should return a binding to use instead.
1616:keys DESCRIPTION
1617 DESCRIPTION is a string that describes an equivalent keyboard
1618 binding for REAL-BINDING. DESCRIPTION is expanded with
1619 `substitute-command-keys' before it is used.
1620:key-sequence KEY-SEQUENCE
1621 KEY-SEQUENCE is a key-sequence for an equivalent
1622 keyboard binding.
1623:key-sequence nil
1624 This means that the command normally has no
1625 keyboard equivalent.
1626:help HELP HELP is the extra help string (not currently used).
1627:button (TYPE . SELECTED)
1628 TYPE is :toggle or :radio.
1629 SELECTED is a form, to be evaluated, and its
1630 value says whether this button is currently selected.
1631
1632Buttons are at the moment only simulated by prefixes in the menu.
1633Eventually ordinary X-buttons may be supported.
1634
1635(menu-item ITEM-NAME) defines unselectable item.
1636
1637** New event types
1638
1639*** The new event type `mouse-wheel' is generated by a wheel on a
1640mouse (such as the MS Intellimouse). The event contains a delta that
1641corresponds to the amount and direction that the wheel is rotated,
1642which is typically used to implement a scroll or zoom. The format is:
1643
1644 (mouse-wheel POSITION DELTA)
1645
1646where POSITION is a list describing the position of the event in the
1647same format as a mouse-click event, and DELTA is a signed number
1648indicating the number of increments by which the wheel was rotated. A
1649negative DELTA indicates that the wheel was rotated backwards, towards
1650the user, and a positive DELTA indicates that the wheel was rotated
1651forward, away from the user.
1652
1653As of now, this event type is generated only on MS Windows.
1654
1655*** The new event type `drag-n-drop' is generated when a group of
1656files is selected in an application outside of Emacs, and then dragged
1657and dropped onto an Emacs frame. The event contains a list of
1658filenames that were dragged and dropped, which are then typically
1659loaded into Emacs. The format is:
1660
1661 (drag-n-drop POSITION FILES)
1662
1663where POSITION is a list describing the position of the event in the
1664same format as a mouse-click event, and FILES is the list of filenames
1665that were dragged and dropped.
1666
1667As of now, this event type is generated only on MS Windows.
1668
1669** Changes relating to multibyte characters.
1670
1671*** The variable enable-multibyte-characters is now read-only;
1672any attempt to set it directly signals an error. The only way
1673to change this value in an existing buffer is with set-buffer-multibyte.
1674
1675*** In a string constant, `\ ' now stands for "nothing at all". You
1676can use it to terminate a hex escape which is followed by a character
1677that could otherwise be read as part of the hex escape.
1678
1679*** String indices are now measured in characters, as they were
1680in Emacs 19 and before.
1681
1682The function chars-in-string has been deleted.
1683The function concat-chars has been renamed to `string'.
1684
1685*** The function set-buffer-multibyte sets the flag in the current
1686buffer that says whether the buffer uses multibyte representation or
1687unibyte representation. If the argument is nil, it selects unibyte
1688representation. Otherwise it selects multibyte representation.
1689
1690This function does not change the contents of the buffer, viewed
1691as a sequence of bytes. However, it does change the contents
1692viewed as characters; a sequence of two bytes which is treated as
1693one character when the buffer uses multibyte representation
1694will count as two characters using unibyte representation.
1695
1696This function sets enable-multibyte-characters to record which
1697representation is in use. It also adjusts various data in the buffer
1698(including its markers, overlays and text properties) so that they are
1699consistent with the new representation.
1700
1701*** string-make-multibyte takes a string and converts it to multibyte
1702representation. Most of the time, you don't need to care
1703about the representation, because Emacs converts when necessary;
1704however, it makes a difference when you compare strings.
1705
1706The conversion of non-ASCII characters works by adding the value of
1707nonascii-insert-offset to each character, or by translating them
1708using the table nonascii-translation-table.
1709
1710*** string-make-unibyte takes a string and converts it to unibyte
1711representation. Most of the time, you don't need to care about the
1712representation, but it makes a difference when you compare strings.
1713
1714The conversion from multibyte to unibyte representation
1715loses information; the only time Emacs performs it automatically
1716is when inserting a multibyte string into a unibyte buffer.
1717
1718*** string-as-multibyte takes a string, and returns another string
1719which contains the same bytes, but treats them as multibyte.
1720
1721*** string-as-unibyte takes a string, and returns another string
1722which contains the same bytes, but treats them as unibyte.
1723
1724*** The new function compare-strings lets you compare
1725portions of two strings. Unibyte strings are converted to multibyte,
1726so that a unibyte string can match a multibyte string.
1727You can specify whether to ignore case or not.
1728
1729*** assoc-ignore-case now uses compare-strings so that
1730it can treat unibyte and multibyte strings as equal.
1731
1732*** Regular expression operations and buffer string searches now
1733convert the search pattern to multibyte or unibyte to accord with the
1734buffer or string being searched.
1735
1736One consequence is that you cannot always use \200-\377 inside of
1737[...] to match all non-ASCII characters. This does still work when
1738searching or matching a unibyte buffer or string, but not when
1739searching or matching a multibyte string. Unfortunately, there is no
1740obvious choice of syntax to use within [...] for that job. But, what
1741you want is just to match all non-ASCII characters, the regular
1742expression [^\0-\177] works for it.
1743
1744*** Structure of coding system changed.
1745
1746All coding systems (including aliases and subsidiaries) are named
1747by symbols; the symbol's `coding-system' property is a vector
1748which defines the coding system. Aliases share the same vector
1749as the principal name, so that altering the contents of this
1750vector affects the principal name and its aliases. You can define
1751your own alias name of a coding system by the function
1752define-coding-system-alias.
1753
1754The coding system definition includes a property list of its own. Use
1755the new functions `coding-system-get' and `coding-system-put' to
1756access such coding system properties as post-read-conversion,
1757pre-write-conversion, character-translation-table-for-decode,
1758character-translation-table-for-encode, mime-charset, and
1759safe-charsets. For instance, (coding-system-get 'iso-latin-1
1760'mime-charset) gives the corresponding MIME-charset parameter
1761`iso-8859-1'.
1762
1763Among the coding system properties listed above, safe-charsets is new.
1764The value of this property is a list of character sets which this
1765coding system can correctly encode and decode. For instance:
1766(coding-system-get 'iso-latin-1 'safe-charsets) => (ascii latin-iso8859-1)
1767
1768Here, "correctly encode" means that the encoded character sets can
1769also be handled safely by systems other than Emacs as far as they
1770are capable of that coding system. Though, Emacs itself can encode
1771the other character sets and read it back correctly.
1772
1773*** The new function select-safe-coding-system can be used to find a
1774proper coding system for encoding the specified region or string.
1775This function requires a user interaction.
1776
1777*** The new functions find-coding-systems-region and
1778find-coding-systems-string are helper functions used by
1779select-safe-coding-system. They return a list of all proper coding
1780systems to encode a text in some region or string. If you don't want
1781a user interaction, use one of these functions instead of
1782select-safe-coding-system.
1783
1784*** The explicit encoding and decoding functions, such as
1785decode-coding-region and encode-coding-string, now set
1786last-coding-system-used to reflect the actual way encoding or decoding
1787was done.
1788
1789*** The new function detect-coding-with-language-environment can be
1790used to detect a coding system of text according to priorities of
1791coding systems used by some specific language environment.
1792
1793*** The functions detect-coding-region and detect-coding-string always
1794return a list if the arg HIGHEST is nil. Thus, if only ASCII
1795characters are found, they now return a list of single element
1796`undecided' or its subsidiaries.
1797
1798*** The new functions coding-system-change-eol-conversion and
1799coding-system-change-text-conversion can be used to get a different
1800coding system than what specified only in how end-of-line or text is
1801converted.
1802
1803*** The new function set-selection-coding-system can be used to set a
1804coding system for communicating with other X clients.
1805
1806*** The function `map-char-table' now passes as argument only valid
1807character codes, plus generic characters that stand for entire
1808character sets or entire subrows of a character set. In other words,
1809each time `map-char-table' calls its FUNCTION argument, the key value
1810either will be a valid individual character code, or will stand for a
1811range of characters.
1812
1813*** The new function `char-valid-p' can be used for checking whether a
1814Lisp object is a valid character code or not.
1815
1816*** The new function `charset-after' returns a charset of a character
1817in the current buffer at position POS.
1818
1819*** Input methods are now implemented using the variable
1820input-method-function. If this is non-nil, its value should be a
1821function; then, whenever Emacs reads an input event that is a printing
1822character with no modifier bits, it calls that function, passing the
1823event as an argument. Often this function will read more input, first
1824binding input-method-function to nil.
1825
1826The return value should be a list of the events resulting from input
1827method processing. These events will be processed sequentially as
1828input, before resorting to unread-command-events. Events returned by
1829the input method function are not passed to the input method function,
1830not even if they are printing characters with no modifier bits.
1831
1832The input method function is not called when reading the second and
1833subsequent events of a key sequence.
1834
1835*** You can customize any language environment by using
1836set-language-environment-hook and exit-language-environment-hook.
1837
1838The hook `exit-language-environment-hook' should be used to undo
1839customizations that you made with set-language-environment-hook. For
1840instance, if you set up a special key binding for a specific language
1841environment by set-language-environment-hook, you should set up
1842exit-language-environment-hook to restore the normal key binding.
1843
1844
1845
1846* Changes in Emacs 20.1
1847
1848** Emacs has a new facility for customization of its many user
1849options. It is called M-x customize. With this facility you can look
1850at the many user options in an organized way; they are grouped into a
1851tree structure.
1852
1853M-x customize also knows what sorts of values are legitimate for each
1854user option and ensures that you don't use invalid values.
1855
1856With M-x customize, you can set options either for the present Emacs
1857session or permanently. (Permanent settings are stored automatically
1858in your .emacs file.)
1859
1860** Scroll bars are now on the left side of the window.
1861You can change this with M-x customize-option scroll-bar-mode.
1862
1863** The mode line no longer includes the string `Emacs'.
1864This makes more space in the mode line for other information.
1865
1866** When you select a region with the mouse, it is highlighted
1867immediately afterward. At that time, if you type the DELETE key, it
1868kills the region.
1869
1870The BACKSPACE key, and the ASCII character DEL, do not do this; they
1871delete the character before point, as usual.
1872
1873** In an incremental search the whole current match is highlighted
1874on terminals which support this. (You can disable this feature
1875by setting search-highlight to nil.)
1876
1877** In the minibuffer, in some cases, you can now use M-n to
1878insert the default value into the minibuffer as text. In effect,
1879the default value (if the minibuffer routines know it) is tacked
1880onto the history "in the future". (The more normal use of the
1881history list is to use M-p to insert minibuffer input used in the
1882past.)
1883
1884** In Text mode, now only blank lines separate paragraphs.
1885This makes it possible to get the full benefit of Adaptive Fill mode
1886in Text mode, and other modes derived from it (such as Mail mode).
1887TAB in Text mode now runs the command indent-relative; this
1888makes a practical difference only when you use indented paragraphs.
1889
1890As a result, the old Indented Text mode is now identical to Text mode,
1891and is an alias for it.
1892
1893If you want spaces at the beginning of a line to start a paragraph,
1894use the new mode, Paragraph Indent Text mode.
1895
1896** Scrolling changes
1897
1898*** Scroll commands to scroll a whole screen now preserve the screen
1899position of the cursor, if scroll-preserve-screen-position is non-nil.
1900
1901In this mode, if you scroll several screens back and forth, finishing
1902on the same screen where you started, the cursor goes back to the line
1903where it started.
1904
1905*** If you set scroll-conservatively to a small number, then when you
1906move point a short distance off the screen, Emacs will scroll the
1907screen just far enough to bring point back on screen, provided that
1908does not exceed `scroll-conservatively' lines.
1909
1910*** The new variable scroll-margin says how close point can come to the
1911top or bottom of a window. It is a number of screen lines; if point
1912comes within that many lines of the top or bottom of the window, Emacs
1913recenters the window.
1914
1915** International character set support (MULE)
1916
1917Emacs now supports a wide variety of international character sets,
1918including European variants of the Latin alphabet, as well as Chinese,
1919Devanagari (Hindi and Marathi), Ethiopian, Greek, IPA, Japanese,
1920Korean, Lao, Russian, Thai, Tibetan, and Vietnamese scripts. These
1921features have been merged from the modified version of Emacs known as
1922MULE (for "MULti-lingual Enhancement to GNU Emacs")
1923
1924Users of these scripts have established many more-or-less standard
1925coding systems for storing files. Emacs uses a single multibyte
1926character encoding within Emacs buffers; it can translate from a wide
1927variety of coding systems when reading a file and can translate back
1928into any of these coding systems when saving a file.
1929
1930Keyboards, even in the countries where these character sets are used,
1931generally don't have keys for all the characters in them. So Emacs
1932supports various "input methods", typically one for each script or
1933language, to make it possible to type them.
1934
1935The Emacs internal multibyte encoding represents a non-ASCII
1936character as a sequence of bytes in the range 0200 through 0377.
1937
1938The new prefix key C-x RET is used for commands that pertain
1939to multibyte characters, coding systems, and input methods.
1940
1941You can disable multibyte character support as follows:
1942
1943 (setq-default enable-multibyte-characters nil)
1944
1945Calling the function standard-display-european turns off multibyte
1946characters, unless you specify a non-nil value for the second
1947argument, AUTO. This provides compatibility for people who are
1948already using standard-display-european to continue using unibyte
1949characters for their work until they want to change.
1950
1951*** Input methods
1952
1953An input method is a kind of character conversion which is designed
1954specifically for interactive input. In Emacs, typically each language
1955has its own input method (though sometimes several languages which use
1956the same characters can share one input method). Some languages
1957support several input methods.
1958
1959The simplest kind of input method works by mapping ASCII letters into
1960another alphabet. This is how the Greek and Russian input methods
1961work.
1962
1963A more powerful technique is composition: converting sequences of
1964characters into one letter. Many European input methods use
1965composition to produce a single non-ASCII letter from a sequence which
1966consists of a letter followed by diacritics. For example, a' is one
1967sequence of two characters that might be converted into a single
1968letter.
1969
1970The input methods for syllabic scripts typically use mapping followed
1971by conversion. The input methods for Thai and Korean work this way.
1972First, letters are mapped into symbols for particular sounds or tone
1973marks; then, sequences of these which make up a whole syllable are
1974mapped into one syllable sign--most often a "composite character".
1975
1976None of these methods works very well for Chinese and Japanese, so
1977they are handled specially. First you input a whole word using
1978phonetic spelling; then, after the word is in the buffer, Emacs
1979converts it into one or more characters using a large dictionary.
1980
1981Since there is more than one way to represent a phonetically spelled
1982word using Chinese characters, Emacs can only guess which one to use;
1983typically these input methods give you a way to say "guess again" if
1984the first guess is wrong.
1985
1986*** The command C-x RET m (toggle-enable-multibyte-characters)
1987turns multibyte character support on or off for the current buffer.
1988
1989If multibyte character support is turned off in a buffer, then each
1990byte is a single character, even codes 0200 through 0377--exactly as
1991they did in Emacs 19.34. This includes the features for support for
1992the European characters, ISO Latin-1 and ISO Latin-2.
1993
1994However, there is no need to turn off multibyte character support to
1995use ISO Latin-1 or ISO Latin-2; the Emacs multibyte character set
1996includes all the characters in these character sets, and Emacs can
1997translate automatically to and from either one.
1998
1999*** Visiting a file in unibyte mode.
2000
2001Turning off multibyte character support in the buffer after visiting a
2002file with multibyte code conversion will display the multibyte
2003sequences already in the buffer, byte by byte. This is probably not
2004what you want.
2005
2006If you want to edit a file of unibyte characters (Latin-1, for
2007example), you can do it by specifying `no-conversion' as the coding
2008system when reading the file. This coding system also turns off
2009multibyte characters in that buffer.
2010
2011If you turn off multibyte character support entirely, this turns off
2012character conversion as well.
2013
2014*** Displaying international characters on X Windows.
2015
2016A font for X typically displays just one alphabet or script.
2017Therefore, displaying the entire range of characters Emacs supports
2018requires using many fonts.
2019
2020Therefore, Emacs now supports "fontsets". Each fontset is a
2021collection of fonts, each assigned to a range of character codes.
2022
2023A fontset has a name, like a font. Individual fonts are defined by
2024the X server; fontsets are defined within Emacs itself. But once you
2025have defined a fontset, you can use it in a face or a frame just as
2026you would use a font.
2027
2028If a fontset specifies no font for a certain character, or if it
2029specifies a font that does not exist on your system, then it cannot
2030display that character. It will display an empty box instead.
2031
2032The fontset height and width are determined by the ASCII characters
2033(that is, by the font in the fontset which is used for ASCII
2034characters).
2035
2036*** Defining fontsets.
2037
2038Emacs does not use any fontset by default. Its default font is still
2039chosen as in previous versions. You can tell Emacs to use a fontset
2040with the `-fn' option or the `Font' X resource.
2041
2042Emacs creates a standard fontset automatically according to the value
2043of standard-fontset-spec. This fontset's short name is
2044`fontset-standard'. Bold, italic, and bold-italic variants of the
2045standard fontset are created automatically.
2046
2047If you specify a default ASCII font with the `Font' resource or `-fn'
2048argument, a fontset is generated from it. This works by replacing the
2049FOUNDARY, FAMILY, ADD_STYLE, and AVERAGE_WIDTH fields of the font name
2050with `*' then using this to specify a fontset. This fontset's short
2051name is `fontset-startup'.
2052
2053Emacs checks resources of the form Fontset-N where N is 0, 1, 2...
2054The resource value should have this form:
2055 FONTSET-NAME, [CHARSET-NAME:FONT-NAME]...
2056FONTSET-NAME should have the form of a standard X font name, except:
2057 * most fields should be just the wild card "*".
2058 * the CHARSET_REGISTRY field should be "fontset"
2059 * the CHARSET_ENCODING field can be any nickname of the fontset.
2060The construct CHARSET-NAME:FONT-NAME can be repeated any number
2061of times; each time specifies the font for one character set.
2062CHARSET-NAME should be the name of a character set, and FONT-NAME
2063should specify an actual font to use for that character set.
2064
2065Each of these fontsets has an alias which is made from the
2066last two font name fields, CHARSET_REGISTRY and CHARSET_ENCODING.
2067You can refer to the fontset by that alias or by its full name.
2068
2069For any character sets that you don't mention, Emacs tries to choose a
2070font by substituting into FONTSET-NAME. For instance, with the
2071following resource,
2072 Emacs*Fontset-0: -*-fixed-medium-r-normal-*-24-*-*-*-*-*-fontset-24
2073the font for ASCII is generated as below:
2074 -*-fixed-medium-r-normal-*-24-*-ISO8859-1
2075Here is the substitution rule:
2076 Change CHARSET_REGISTRY and CHARSET_ENCODING to that of the charset
2077 defined in the variable x-charset-registries. For instance, ASCII has
2078 the entry (ascii . "ISO8859-1") in this variable. Then, reduce
2079 sequences of wild cards -*-...-*- with a single wildcard -*-.
2080 (This is to prevent use of auto-scaled fonts.)
2081
2082The function which processes the fontset resource value to create the
2083fontset is called create-fontset-from-fontset-spec. You can also call
2084that function explicitly to create a fontset.
2085
2086With the X resource Emacs.Font, you can specify a fontset name just
2087like an actual font name. But be careful not to specify a fontset
2088name in a wildcard resource like Emacs*Font--that tries to specify the
2089fontset for other purposes including menus, and they cannot handle
2090fontsets.
2091
2092*** The command M-x set-language-environment sets certain global Emacs
2093defaults for a particular choice of language.
2094
2095Selecting a language environment typically specifies a default input
2096method and which coding systems to recognize automatically when
2097visiting files. However, it does not try to reread files you have
2098already visited; the text in those buffers is not affected. The
2099language environment may also specify a default choice of coding
2100system for new files that you create.
2101
2102It makes no difference which buffer is current when you use
2103set-language-environment, because these defaults apply globally to the
2104whole Emacs session.
2105
2106For example, M-x set-language-environment RET Latin-1 RET
2107chooses the Latin-1 character set. In the .emacs file, you can do this
2108with (set-language-environment "Latin-1").
2109
2110*** The command C-x RET f (set-buffer-file-coding-system)
2111specifies the file coding system for the current buffer. This
2112specifies what sort of character code translation to do when saving
2113the file. As an argument, you must specify the name of one of the
2114coding systems that Emacs supports.
2115
2116*** The command C-x RET c (universal-coding-system-argument)
2117lets you specify a coding system when you read or write a file.
2118This command uses the minibuffer to read a coding system name.
2119After you exit the minibuffer, the specified coding system
2120is used for *the immediately following command*.
2121
2122So if the immediately following command is a command to read or
2123write a file, it uses the specified coding system for that file.
2124
2125If the immediately following command does not use the coding system,
2126then C-x RET c ultimately has no effect.
2127
2128For example, C-x RET c iso-8859-1 RET C-x C-f temp RET
2129visits the file `temp' treating it as ISO Latin-1.
2130
2131*** You can specify the coding system for a file using the -*-
2132construct. Include `coding: CODINGSYSTEM;' inside the -*-...-*-
2133to specify use of coding system CODINGSYSTEM. You can also
2134specify the coding system in a local variable list at the end
2135of the file.
2136
2137*** The command C-x RET t (set-terminal-coding-system) specifies
2138the coding system for terminal output. If you specify a character
2139code for terminal output, all characters output to the terminal are
2140translated into that character code.
2141
2142This feature is useful for certain character-only terminals built in
2143various countries to support the languages of those countries.
2144
2145By default, output to the terminal is not translated at all.
2146
2147*** The command C-x RET k (set-keyboard-coding-system) specifies
2148the coding system for keyboard input.
2149
2150Character code translation of keyboard input is useful for terminals
2151with keys that send non-ASCII graphic characters--for example,
2152some terminals designed for ISO Latin-1 or subsets of it.
2153
2154By default, keyboard input is not translated at all.
2155
2156Character code translation of keyboard input is similar to using an
2157input method, in that both define sequences of keyboard input that
2158translate into single characters. However, input methods are designed
2159to be convenient for interactive use, while the code translations are
2160designed to work with terminals.
2161
2162*** The command C-x RET p (set-buffer-process-coding-system)
2163specifies the coding system for input and output to a subprocess.
2164This command applies to the current buffer; normally, each subprocess
2165has its own buffer, and thus you can use this command to specify
2166translation to and from a particular subprocess by giving the command
2167in the corresponding buffer.
2168
2169By default, process input and output are not translated at all.
2170
2171*** The variable file-name-coding-system specifies the coding system
2172to use for encoding file names before operating on them.
2173It is also used for decoding file names obtained from the system.
2174
2175*** The command C-\ (toggle-input-method) activates or deactivates
2176an input method. If no input method has been selected before, the
2177command prompts for you to specify the language and input method you
2178want to use.
2179
2180C-u C-\ (select-input-method) lets you switch to a different input
2181method. C-h C-\ (or C-h I) describes the current input method.
2182
2183*** Some input methods remap the keyboard to emulate various keyboard
2184layouts commonly used for particular scripts. How to do this
2185remapping properly depends on your actual keyboard layout. To specify
2186which layout your keyboard has, use M-x quail-set-keyboard-layout.
2187
2188*** The command C-h C (describe-coding-system) displays
2189the coding systems currently selected for various purposes, plus
2190related information.
2191
2192*** The command C-h h (view-hello-file) displays a file called
2193HELLO, which has examples of text in many languages, using various
2194scripts.
2195
2196*** The command C-h L (describe-language-support) displays
2197information about the support for a particular language.
2198You specify the language as an argument.
2199
2200*** The mode line now contains a letter or character that identifies
2201the coding system used in the visited file. It normally follows the
2202first dash.
2203
2204A dash indicates the default state of affairs: no code conversion
2205(except CRLF => newline if appropriate). `=' means no conversion
2206whatsoever. The ISO 8859 coding systems are represented by digits
22071 through 9. Other coding systems are represented by letters:
2208
2209 A alternativnyj (Russian)
2210 B big5 (Chinese)
2211 C cn-gb-2312 (Chinese)
2212 C iso-2022-cn (Chinese)
2213 D in-is13194-devanagari (Indian languages)
2214 E euc-japan (Japanese)
2215 I iso-2022-cjk or iso-2022-ss2 (Chinese, Japanese, Korean)
2216 J junet (iso-2022-7) or old-jis (iso-2022-jp-1978-irv) (Japanese)
2217 K euc-korea (Korean)
2218 R koi8 (Russian)
2219 Q tibetan
2220 S shift_jis (Japanese)
2221 T lao
2222 T tis620 (Thai)
2223 V viscii or vscii (Vietnamese)
2224 i iso-2022-lock (Chinese, Japanese, Korean)
2225 k iso-2022-kr (Korean)
2226 v viqr (Vietnamese)
2227 z hz (Chinese)
2228
2229When you are using a character-only terminal (not a window system),
2230two additional characters appear in between the dash and the file
2231coding system. These two characters describe the coding system for
2232keyboard input, and the coding system for terminal output.
2233
2234*** The new variable rmail-file-coding-system specifies the code
2235conversion to use for RMAIL files. The default value is nil.
2236
2237When you read mail with Rmail, each message is decoded automatically
2238into Emacs' internal format. This has nothing to do with
2239rmail-file-coding-system. That variable controls reading and writing
2240Rmail files themselves.
2241
2242*** The new variable sendmail-coding-system specifies the code
2243conversion for outgoing mail. The default value is nil.
2244
2245Actually, there are three different ways of specifying the coding system
2246for sending mail:
2247
2248- If you use C-x RET f in the mail buffer, that takes priority.
2249- Otherwise, if you set sendmail-coding-system non-nil, that specifies it.
2250- Otherwise, the default coding system for new files is used,
2251 if that is non-nil. That comes from your language environment.
2252- Otherwise, Latin-1 is used.
2253
2254*** The command C-h t (help-with-tutorial) accepts a prefix argument
2255to specify the language for the tutorial file. Currently, English,
2256Japanese, Korean and Thai are supported. We welcome additional
2257translations.
2258
2259** An easy new way to visit a file with no code or format conversion
2260of any kind: Use M-x find-file-literally. There is also a command
2261insert-file-literally which inserts a file into the current buffer
2262without any conversion.
2263
2264** C-q's handling of octal character codes is changed.
2265You can now specify any number of octal digits.
2266RET terminates the digits and is discarded;
2267any other non-digit terminates the digits and is then used as input.
2268
2269** There are new commands for looking up Info documentation for
2270functions, variables and file names used in your programs.
2271
2272Type M-x info-lookup-symbol to look up a symbol in the buffer at point.
2273Type M-x info-lookup-file to look up a file in the buffer at point.
2274
2275Precisely which Info files are used to look it up depends on the major
2276mode. For example, in C mode, the GNU libc manual is used.
2277
2278** M-TAB in most programming language modes now runs the command
2279complete-symbol. This command performs completion on the symbol name
2280in the buffer before point.
2281
2282With a numeric argument, it performs completion based on the set of
2283symbols documented in the Info files for the programming language that
2284you are using.
2285
2286With no argument, it does completion based on the current tags tables,
2287just like the old binding of M-TAB (complete-tag).
2288
2289** File locking works with NFS now.
2290
2291The lock file for FILENAME is now a symbolic link named .#FILENAME,
2292in the same directory as FILENAME.
2293
2294This means that collision detection between two different machines now
2295works reasonably well; it also means that no file server or directory
2296can become a bottleneck.
2297
2298The new method does have drawbacks. It means that collision detection
2299does not operate when you edit a file in a directory where you cannot
2300create new files. Collision detection also doesn't operate when the
2301file server does not support symbolic links. But these conditions are
2302rare, and the ability to have collision detection while using NFS is
2303so useful that the change is worth while.
2304
2305When Emacs or a system crashes, this may leave behind lock files which
2306are stale. So you may occasionally get warnings about spurious
2307collisions. When you determine that the collision is spurious, just
2308tell Emacs to go ahead anyway.
2309
2310** If you wish to use Show Paren mode to display matching parentheses,
2311it is no longer sufficient to load paren.el. Instead you must call
2312show-paren-mode.
2313
2314** If you wish to use Delete Selection mode to replace a highlighted
2315selection when you insert new text, it is no longer sufficient to load
2316delsel.el. Instead you must call the function delete-selection-mode.
2317
2318** If you wish to use Partial Completion mode to complete partial words
2319within symbols or filenames, it is no longer sufficient to load
2320complete.el. Instead you must call the function partial-completion-mode.
2321
2322** If you wish to use uniquify to rename buffers for you,
2323it is no longer sufficient to load uniquify.el. You must also
2324set uniquify-buffer-name-style to one of the non-nil legitimate values.
2325
2326** Changes in View mode.
2327
2328*** Several new commands are available in View mode.
2329Do H in view mode for a list of commands.
2330
2331*** There are two new commands for entering View mode:
2332view-file-other-frame and view-buffer-other-frame.
2333
2334*** Exiting View mode does a better job of restoring windows to their
2335previous state.
2336
2337*** New customization variable view-scroll-auto-exit. If non-nil,
2338scrolling past end of buffer makes view mode exit.
2339
2340*** New customization variable view-exits-all-viewing-windows. If
2341non-nil, view-mode will at exit restore all windows viewing buffer,
2342not just the selected window.
2343
2344*** New customization variable view-read-only. If non-nil, visiting a
2345read-only file automatically enters View mode, and toggle-read-only
2346turns View mode on or off.
2347
2348*** New customization variable view-remove-frame-by-deleting controls
2349how to remove a not needed frame at view mode exit. If non-nil,
2350delete the frame, if nil make an icon of it.
2351
2352** C-x v l, the command to print a file's version control log,
2353now positions point at the entry for the file's current branch version.
2354
2355** C-x v =, the command to compare a file with the last checked-in version,
2356has a new feature. If the file is currently not locked, so that it is
2357presumably identical to the last checked-in version, the command now asks
2358which version to compare with.
2359
2360** When using hideshow.el, incremental search can temporarily show hidden
2361blocks if a match is inside the block.
2362
2363The block is hidden again if the search is continued and the next match
2364is outside the block. By customizing the variable
2365isearch-hide-immediately you can choose to hide all the temporarily
2366shown blocks only when exiting from incremental search.
2367
2368By customizing the variable hs-isearch-open you can choose what kind
2369of blocks to temporarily show during isearch: comment blocks, code
2370blocks, all of them or none.
2371
2372** The new command C-x 4 0 (kill-buffer-and-window) kills the
2373current buffer and deletes the selected window. It asks for
2374confirmation first.
2375
2376** C-x C-w, which saves the buffer into a specified file name,
2377now changes the major mode according to that file name.
2378However, the mode will not be changed if
2379(1) a local variables list or the `-*-' line specifies a major mode, or
2380(2) the current major mode is a "special" mode,
2381 not suitable for ordinary files, or
2382(3) the new file name does not particularly specify any mode.
2383
2384This applies to M-x set-visited-file-name as well.
2385
2386However, if you set change-major-mode-with-file-name to nil, then
2387these commands do not change the major mode.
2388
2389** M-x occur changes.
2390
2391*** If the argument to M-x occur contains upper case letters,
2392it performs a case-sensitive search.
2393
2394*** In the *Occur* buffer made by M-x occur,
2395if you type g or M-x revert-buffer, this repeats the search
2396using the same regular expression and the same buffer as before.
2397
2398** In Transient Mark mode, the region in any one buffer is highlighted
2399in just one window at a time. At first, it is highlighted in the
2400window where you set the mark. The buffer's highlighting remains in
2401that window unless you select to another window which shows the same
2402buffer--then the highlighting moves to that window.
2403
2404** The feature to suggest key bindings when you use M-x now operates
2405after the command finishes. The message suggesting key bindings
2406appears temporarily in the echo area. The previous echo area contents
2407come back after a few seconds, in case they contain useful information.
2408
2409** Each frame now independently records the order for recently
2410selected buffers, so that the default for C-x b is now based on the
2411buffers recently selected in the selected frame.
2412
2413** Outline mode changes.
2414
2415*** Outline mode now uses overlays (this is the former noutline.el).
2416
2417*** Incremental searches skip over invisible text in Outline mode.
2418
2419** When a minibuffer window is active but not the selected window, if
2420you try to use the minibuffer, you used to get a nested minibuffer.
2421Now, this not only gives an error, it also cancels the minibuffer that
2422was already active.
2423
2424The motive for this change is so that beginning users do not
2425unknowingly move away from minibuffers, leaving them active, and then
2426get confused by it.
2427
2428If you want to be able to have recursive minibuffers, you must
2429set enable-recursive-minibuffers to non-nil.
2430
2431** Changes in dynamic abbrevs.
2432
2433*** Expanding dynamic abbrevs with M-/ is now smarter about case
2434conversion. If the expansion has mixed case not counting the first
2435character, and the abbreviation matches the beginning of the expansion
2436including case, then the expansion is copied verbatim.
2437
2438The expansion is also copied verbatim if the abbreviation itself has
2439mixed case. And using SPC M-/ to copy an additional word always
2440copies it verbatim except when the previous copied word is all caps.
2441
2442*** The values of `dabbrev-case-replace' and `dabbrev-case-fold-search'
2443are no longer Lisp expressions. They have simply three possible
2444values.
2445
2446`dabbrev-case-replace' has these three values: nil (don't preserve
2447case), t (do), or `case-replace' (do like M-x query-replace).
2448`dabbrev-case-fold-search' has these three values: nil (don't ignore
2449case), t (do), or `case-fold-search' (do like search).
2450
2451** Minibuffer history lists are truncated automatically now to a
2452certain length. The variable history-length specifies how long they
2453can be. The default value is 30.
2454
2455** Changes in Mail mode.
2456
2457*** The key C-x m no longer runs the `mail' command directly.
2458Instead, it runs the command `compose-mail', which invokes the mail
2459composition mechanism you have selected with the variable
2460`mail-user-agent'. The default choice of user agent is
2461`sendmail-user-agent', which gives behavior compatible with the old
2462behavior.
2463
2464C-x 4 m now runs compose-mail-other-window, and C-x 5 m runs
2465compose-mail-other-frame.
2466
2467*** While composing a reply to a mail message, from Rmail, you can use
2468the command C-c C-r to cite just the region from the message you are
2469replying to. This copies the text which is the selected region in the
2470buffer that shows the original message.
2471
2472*** The command C-c C-i inserts a file at the end of the message,
2473with separator lines around the contents.
2474
2475*** The command M-x expand-mail-aliases expands all mail aliases
2476in suitable mail headers. Emacs automatically extracts mail alias
2477definitions from your mail alias file (e.g., ~/.mailrc). You do not
2478need to expand mail aliases yourself before sending mail.
2479
2480*** New features in the mail-complete command.
2481
2482**** The mail-complete command now inserts the user's full name,
2483for local users or if that is known. The variable mail-complete-style
2484controls the style to use, and whether to do this at all.
2485Its values are like those of mail-from-style.
2486
2487**** The variable mail-passwd-command lets you specify a shell command
2488to run to fetch a set of password-entries that add to the ones in
2489/etc/passwd.
2490
2491**** The variable mail-passwd-file now specifies a list of files to read
2492to get the list of user ids. By default, one file is used:
2493/etc/passwd.
2494
2495** You can "quote" a file name to inhibit special significance of
2496special syntax, by adding `/:' to the beginning. Thus, if you have a
2497directory named `/foo:', you can prevent it from being treated as a
2498reference to a remote host named `foo' by writing it as `/:/foo:'.
2499
2500Emacs uses this new construct automatically when necessary, such as
2501when you start it with a working directory whose name might otherwise
2502be taken to be magic.
2503
2504** There is a new command M-x grep-find which uses find to select
2505files to search through, and grep to scan them. The output is
2506available in a Compile mode buffer, as with M-x grep.
2507
2508M-x grep now uses the -e option if the grep program supports that.
2509(-e prevents problems if the search pattern starts with a dash.)
2510
2511** In Dired, the & command now flags for deletion the files whose names
2512suggest they are probably not needed in the long run.
2513
2514In Dired, * is now a prefix key for mark-related commands.
2515
2516new key dired.el binding old key
2517------- ---------------- -------
2518 * c dired-change-marks c
2519 * m dired-mark m
2520 * * dired-mark-executables * (binding deleted)
2521 * / dired-mark-directories / (binding deleted)
2522 * @ dired-mark-symlinks @ (binding deleted)
2523 * u dired-unmark u
2524 * DEL dired-unmark-backward DEL
2525 * ? dired-unmark-all-files C-M-?
2526 * ! dired-unmark-all-marks
2527 * % dired-mark-files-regexp % m
2528 * C-n dired-next-marked-file M-}
2529 * C-p dired-prev-marked-file M-{
2530
2531** Rmail changes.
2532
2533*** When Rmail cannot convert your incoming mail into Babyl format, it
2534saves the new mail in the file RMAILOSE.n, where n is an integer
2535chosen to make a unique name. This way, Rmail will not keep crashing
2536each time you run it.
2537
2538*** In Rmail, the variable rmail-summary-line-count-flag now controls
2539whether to include the line count in the summary. Non-nil means yes.
2540
2541*** In Rmail summary buffers, d and C-d (the commands to delete
2542messages) now take repeat counts as arguments. A negative argument
2543means to move in the opposite direction.
2544
2545*** In Rmail, the t command now takes an optional argument which lets
2546you specify whether to show the message headers in full or pruned.
2547
2548*** In Rmail, the new command w (rmail-output-body-to-file) writes
2549just the body of the current message into a file, without the headers.
2550It takes the file name from the message subject, by default, but you
2551can edit that file name in the minibuffer before it is actually used
2552for output.
2553
2554** Gnus changes.
2555
2556*** nntp.el has been totally rewritten in an asynchronous fashion.
2557
2558*** Article prefetching functionality has been moved up into
2559Gnus.
2560
2561*** Scoring can now be performed with logical operators like
2562`and', `or', `not', and parent redirection.
2563
2564*** Article washing status can be displayed in the
2565article mode line.
2566
2567*** gnus.el has been split into many smaller files.
2568
2569*** Suppression of duplicate articles based on Message-ID.
2570
2571(setq gnus-suppress-duplicates t)
2572
2573*** New variables for specifying what score and adapt files
2574are to be considered home score and adapt files. See
2575`gnus-home-score-file' and `gnus-home-adapt-files'.
2576
2577*** Groups can inherit group parameters from parent topics.
2578
2579*** Article editing has been revamped and is now usable.
2580
2581*** Signatures can be recognized in more intelligent fashions.
2582See `gnus-signature-separator' and `gnus-signature-limit'.
2583
2584*** Summary pick mode has been made to look more nn-like.
2585Line numbers are displayed and the `.' command can be
2586used to pick articles.
2587
2588*** Commands for moving the .newsrc.eld from one server to
2589another have been added.
2590
2591 `M-x gnus-change-server'
2592
2593*** A way to specify that "uninteresting" fields be suppressed when
2594generating lines in buffers.
2595
2596*** Several commands in the group buffer can be undone with
2597`C-M-_'.
2598
2599*** Scoring can be done on words using the new score type `w'.
2600
2601*** Adaptive scoring can be done on a Subject word-by-word basis:
2602
2603 (setq gnus-use-adaptive-scoring '(word))
2604
2605*** Scores can be decayed.
2606
2607 (setq gnus-decay-scores t)
2608
2609*** Scoring can be performed using a regexp on the Date header. The
2610Date is normalized to compact ISO 8601 format first.
2611
2612*** A new command has been added to remove all data on articles from
2613the native server.
2614
2615 `M-x gnus-group-clear-data-on-native-groups'
2616
2617*** A new command for reading collections of documents
2618(nndoc with nnvirtual on top) has been added -- `C-M-d'.
2619
2620*** Process mark sets can be pushed and popped.
2621
2622*** A new mail-to-news backend makes it possible to post
2623even when the NNTP server doesn't allow posting.
2624
2625*** A new backend for reading searches from Web search engines
2626(DejaNews, Alta Vista, InReference) has been added.
2627
2628 Use the `G w' command in the group buffer to create such
2629 a group.
2630
2631*** Groups inside topics can now be sorted using the standard
2632sorting functions, and each topic can be sorted independently.
2633
2634 See the commands under the `T S' submap.
2635
2636*** Subsets of the groups can be sorted independently.
2637
2638 See the commands under the `G P' submap.
2639
2640*** Cached articles can be pulled into the groups.
2641
2642 Use the `Y c' command.
2643
2644*** Score files are now applied in a more reliable order.
2645
2646*** Reports on where mail messages end up can be generated.
2647
2648 `M-x nnmail-split-history'
2649
2650*** More hooks and functions have been added to remove junk
2651from incoming mail before saving the mail.
2652
2653 See `nnmail-prepare-incoming-header-hook'.
2654
2655*** The nnml mail backend now understands compressed article files.
2656
2657*** To enable Gnus to read/post multi-lingual articles, you must execute
2658the following code, for instance, in your .emacs.
2659
2660 (add-hook 'gnus-startup-hook 'gnus-mule-initialize)
2661
2662Then, when you start Gnus, it will decode non-ASCII text automatically
2663and show appropriate characters. (Note: if you are using gnus-mime
2664from the SEMI package, formerly known as TM, you should NOT add this
2665hook to gnus-startup-hook; gnus-mime has its own method of handling
2666this issue.)
2667
2668Since it is impossible to distinguish all coding systems
2669automatically, you may need to specify a choice of coding system for a
2670particular news group. This can be done by:
2671
2672 (gnus-mule-add-group NEWSGROUP 'CODING-SYSTEM)
2673
2674Here NEWSGROUP should be a string which names a newsgroup or a tree
2675of newsgroups. If NEWSGROUP is "XXX.YYY", all news groups under
2676"XXX.YYY" (including "XXX.YYY.ZZZ") will use the specified coding
2677system. CODING-SYSTEM specifies which coding system to use (for both
2678for reading and posting).
2679
2680CODING-SYSTEM can also be a cons cell of the form
2681 (READ-CODING-SYSTEM . POST-CODING-SYSTEM)
2682Then READ-CODING-SYSTEM is used when you read messages from the
2683newsgroups, while POST-CODING-SYSTEM is used when you post messages
2684there.
2685
2686Emacs knows the right coding systems for certain newsgroups by
2687default. Here are some of these default settings:
2688
2689 (gnus-mule-add-group "fj" 'iso-2022-7)
2690 (gnus-mule-add-group "alt.chinese.text" 'hz-gb-2312)
2691 (gnus-mule-add-group "alt.hk" 'hz-gb-2312)
2692 (gnus-mule-add-group "alt.chinese.text.big5" 'cn-big5)
2693 (gnus-mule-add-group "soc.culture.vietnamese" '(nil . viqr))
2694
2695When you reply by mail to an article, these settings are ignored;
2696the mail is encoded according to sendmail-coding-system, as usual.
2697
2698** CC mode changes.
2699
2700*** If you edit primarily one style of C (or C++, Objective-C, Java)
2701code, you may want to make the CC Mode style variables have global
2702values so that you can set them directly in your .emacs file. To do
2703this, set c-style-variables-are-local-p to nil in your .emacs file.
2704Note that this only takes effect if you do it *before* cc-mode.el is
2705loaded.
2706
2707If you typically edit more than one style of C (or C++, Objective-C,
2708Java) code in a single Emacs session, you may want to make the CC Mode
2709style variables have buffer local values. By default, all buffers
2710share the same style variable settings; to make them buffer local, set
2711c-style-variables-are-local-p to t in your .emacs file. Note that you
2712must do this *before* CC Mode is loaded.
2713
2714*** The new variable c-indentation-style holds the C style name
2715of the current buffer.
2716
2717*** The variable c-block-comments-indent-p has been deleted, because
2718it is no longer necessary. C mode now handles all the supported styles
2719of block comments, with no need to say which one you will use.
2720
2721*** There is a new indentation style "python", which specifies the C
2722style that the Python developers like.
2723
2724*** There is a new c-cleanup-list option: brace-elseif-brace.
2725This says to put ...} else if (...) {... on one line,
2726just as brace-else-brace says to put ...} else {... on one line.
2727
2728** VC Changes [new]
2729
2730*** In vc-retrieve-snapshot (C-x v r), if you don't specify a snapshot
2731name, it retrieves the *latest* versions of all files in the current
2732directory and its subdirectories (aside from files already locked).
2733
2734This feature is useful if your RCS directory is a link to a common
2735master directory, and you want to pick up changes made by other
2736developers.
2737
2738You can do the same thing for an individual file by typing C-u C-x C-q
2739RET in a buffer visiting that file.
2740
2741*** VC can now handle files under CVS that are being "watched" by
2742other developers. Such files are made read-only by CVS. To get a
2743writable copy, type C-x C-q in a buffer visiting such a file. VC then
2744calls "cvs edit", which notifies the other developers of it.
2745
2746*** vc-version-diff (C-u C-x v =) now suggests reasonable defaults for
2747version numbers, based on the current state of the file.
2748
2749** Calendar changes.
2750
2751*** A new function, list-holidays, allows you list holidays or
2752subclasses of holidays for ranges of years. Related menu items allow
2753you do this for the year of the selected date, or the
2754following/previous years.
2755
2756*** There is now support for the Baha'i calendar system. Use `pb' in
2757the *Calendar* buffer to display the current Baha'i date. The Baha'i
2758calendar, or "Badi calendar" is a system of 19 months with 19 days
2759each, and 4 intercalary days (5 during a Gregorian leap year). The
2760calendar begins May 23, 1844, with each of the months named after a
2761supposed attribute of God.
2762
2763** ps-print changes
2764
2765There are some new user variables and subgroups for customizing the page
2766layout.
2767
2768*** Headers & Footers (subgroup)
2769
2770Some printer systems print a header page and force the first page to
2771be printed on the back of the header page when using duplex. If your
2772printer system has this behavior, set variable
2773`ps-banner-page-when-duplexing' to t.
2774
2775If variable `ps-banner-page-when-duplexing' is non-nil, it prints a
2776blank page as the very first printed page. So, it behaves as if the
2777very first character of buffer (or region) were a form feed ^L (\014).
2778
2779The variable `ps-spool-config' specifies who is responsible for
2780setting duplex mode and page size. Valid values are:
2781
2782 lpr-switches duplex and page size are configured by `ps-lpr-switches'.
2783 Don't forget to set `ps-lpr-switches' to select duplex
2784 printing for your printer.
2785
2786 setpagedevice duplex and page size are configured by ps-print using the
2787 setpagedevice PostScript operator.
2788
2789 nil duplex and page size are configured by ps-print *not* using
2790 the setpagedevice PostScript operator.
2791
2792The variable `ps-spool-tumble' specifies how the page images on
2793opposite sides of a sheet are oriented with respect to each other. If
2794`ps-spool-tumble' is nil, ps-print produces output suitable for
2795bindings on the left or right. If `ps-spool-tumble' is non-nil,
2796ps-print produces output suitable for bindings at the top or bottom.
2797This variable takes effect only if `ps-spool-duplex' is non-nil.
2798The default value is nil.
2799
2800The variable `ps-header-frame-alist' specifies a header frame
2801properties alist. Valid frame properties are:
2802
2803 fore-color Specify the foreground frame color.
2804 Value should be a float number between 0.0 (black
2805 color) and 1.0 (white color), or a string which is a
2806 color name, or a list of 3 float numbers which
2807 correspond to the Red Green Blue color scale, each
2808 float number between 0.0 (dark color) and 1.0 (bright
2809 color). The default is 0 ("black").
2810
2811 back-color Specify the background frame color (similar to fore-color).
2812 The default is 0.9 ("gray90").
2813
2814 shadow-color Specify the shadow color (similar to fore-color).
2815 The default is 0 ("black").
2816
2817 border-color Specify the border color (similar to fore-color).
2818 The default is 0 ("black").
2819
2820 border-width Specify the border width.
2821 The default is 0.4.
2822
2823Any other property is ignored.
2824
2825Don't change this alist directly; instead use Custom, or the
2826`ps-value', `ps-get', `ps-put' and `ps-del' functions (see there for
2827documentation).
2828
2829Ps-print can also print footers. The footer variables are:
2830`ps-print-footer', `ps-footer-offset', `ps-print-footer-frame',
2831`ps-footer-font-family', `ps-footer-font-size', `ps-footer-line-pad',
2832`ps-footer-lines', `ps-left-footer', `ps-right-footer' and
2833`ps-footer-frame-alist'. These variables are similar to those
2834controlling headers.
2835
2836*** Color management (subgroup)
2837
2838If `ps-print-color-p' is non-nil, the buffer's text will be printed in
2839color.
2840
2841*** Face Management (subgroup)
2842
2843If you need to print without worrying about face background colors,
2844set the variable `ps-use-face-background' which specifies if face
2845background should be used. Valid values are:
2846
2847 t always use face background color.
2848 nil never use face background color.
2849 (face...) list of faces whose background color will be used.
2850
2851*** N-up printing (subgroup)
2852
2853The variable `ps-n-up-printing' specifies the number of pages per
2854sheet of paper.
2855
2856The variable `ps-n-up-margin' specifies the margin in points (pt)
2857between the sheet border and the n-up printing.
2858
2859If variable `ps-n-up-border-p' is non-nil, a border is drawn around
2860each page.
2861
2862The variable `ps-n-up-filling' specifies how the page matrix is filled
2863on each sheet of paper. Following are the valid values for
2864`ps-n-up-filling' with a filling example using a 3x4 page matrix:
2865
2866 `left-top' 1 2 3 4 `left-bottom' 9 10 11 12
2867 5 6 7 8 5 6 7 8
2868 9 10 11 12 1 2 3 4
2869
2870 `right-top' 4 3 2 1 `right-bottom' 12 11 10 9
2871 8 7 6 5 8 7 6 5
2872 12 11 10 9 4 3 2 1
2873
2874 `top-left' 1 4 7 10 `bottom-left' 3 6 9 12
2875 2 5 8 11 2 5 8 11
2876 3 6 9 12 1 4 7 10
2877
2878 `top-right' 10 7 4 1 `bottom-right' 12 9 6 3
2879 11 8 5 2 11 8 5 2
2880 12 9 6 3 10 7 4 1
2881
2882Any other value is treated as `left-top'.
2883
2884*** Zebra stripes (subgroup)
2885
2886The variable `ps-zebra-color' controls the zebra stripes grayscale or
2887RGB color.
2888
2889The variable `ps-zebra-stripe-follow' specifies how zebra stripes
2890continue on next page. Visually, valid values are (the character `+'
2891to the right of each column indicates that a line is printed):
2892
2893 `nil' `follow' `full' `full-follow'
2894 Current Page -------- ----------- --------- ----------------
2895 1 XXXXX + 1 XXXXXXXX + 1 XXXXXX + 1 XXXXXXXXXXXXX +
2896 2 XXXXX + 2 XXXXXXXX + 2 XXXXXX + 2 XXXXXXXXXXXXX +
2897 3 XXXXX + 3 XXXXXXXX + 3 XXXXXX + 3 XXXXXXXXXXXXX +
2898 4 + 4 + 4 + 4 +
2899 5 + 5 + 5 + 5 +
2900 6 + 6 + 6 + 6 +
2901 7 XXXXX + 7 XXXXXXXX + 7 XXXXXX + 7 XXXXXXXXXXXXX +
2902 8 XXXXX + 8 XXXXXXXX + 8 XXXXXX + 8 XXXXXXXXXXXXX +
2903 9 XXXXX + 9 XXXXXXXX + 9 XXXXXX + 9 XXXXXXXXXXXXX +
2904 10 + 10 +
2905 11 + 11 +
2906 -------- ----------- --------- ----------------
2907 Next Page -------- ----------- --------- ----------------
2908 12 XXXXX + 12 + 10 XXXXXX + 10 +
2909 13 XXXXX + 13 XXXXXXXX + 11 XXXXXX + 11 +
2910 14 XXXXX + 14 XXXXXXXX + 12 XXXXXX + 12 +
2911 15 + 15 XXXXXXXX + 13 + 13 XXXXXXXXXXXXX +
2912 16 + 16 + 14 + 14 XXXXXXXXXXXXX +
2913 17 + 17 + 15 + 15 XXXXXXXXXXXXX +
2914 18 XXXXX + 18 + 16 XXXXXX + 16 +
2915 19 XXXXX + 19 XXXXXXXX + 17 XXXXXX + 17 +
2916 20 XXXXX + 20 XXXXXXXX + 18 XXXXXX + 18 +
2917 21 + 21 XXXXXXXX +
2918 22 + 22 +
2919 -------- ----------- --------- ----------------
2920
2921Any other value is treated as `nil'.
2922
2923
2924*** Printer management (subgroup)
2925
2926The variable `ps-printer-name-option' determines the option used by
2927some utilities to indicate the printer name; it's used only when
2928`ps-printer-name' is a non-empty string. If you're using the lpr
2929utility to print, for example, `ps-printer-name-option' should be set
2930to "-P".
2931
2932The variable `ps-manual-feed' indicates if the printer requires manual
2933paper feeding. If it's nil, automatic feeding takes place. If it's
2934non-nil, manual feeding takes place.
2935
2936The variable `ps-end-with-control-d' specifies whether C-d (\x04)
2937should be inserted at end of the generated PostScript. Non-nil means
2938do so.
2939
2940*** Page settings (subgroup)
2941
2942If variable `ps-warn-paper-type' is nil, it's *not* treated as an
2943error if the PostScript printer doesn't have a paper with the size
2944indicated by `ps-paper-type'; the default paper size will be used
2945instead. If `ps-warn-paper-type' is non-nil, an error is signaled if
2946the PostScript printer doesn't support a paper with the size indicated
2947by `ps-paper-type'. This is used when `ps-spool-config' is set to
2948`setpagedevice'.
2949
2950The variable `ps-print-upside-down' determines the orientation for
2951printing pages: nil means `normal' printing, non-nil means
2952`upside-down' printing (that is, the page is rotated by 180 degrees).
2953
2954The variable `ps-selected-pages' specifies which pages to print. If
2955it's nil, all pages are printed. If it's a list, list elements may be
2956integers specifying a single page to print, or cons cells (FROM . TO)
2957specifying to print from page FROM to TO. Invalid list elements, that
2958is integers smaller than one, or elements whose FROM is greater than
2959its TO, are ignored.
2960
2961The variable `ps-even-or-odd-pages' specifies how to print even/odd
2962pages. Valid values are:
2963
2964 nil print all pages.
2965
2966 `even-page' print only even pages.
2967
2968 `odd-page' print only odd pages.
2969
2970 `even-sheet' print only even sheets.
2971 That is, if `ps-n-up-printing' is 1, it behaves like
2972 `even-page', but for values greater than 1, it'll
2973 print only the even sheet of paper.
2974
2975 `odd-sheet' print only odd sheets.
2976 That is, if `ps-n-up-printing' is 1, it behaves like
2977 `odd-page'; but for values greater than 1, it'll print
2978 only the odd sheet of paper.
2979
2980Any other value is treated as nil.
2981
2982If you set `ps-selected-pages' (see there for documentation), pages
2983are filtered by `ps-selected-pages', and then by
2984`ps-even-or-odd-pages'. For example, if we have:
2985
2986 (setq ps-selected-pages '(1 4 (6 . 10) (12 . 16) 20))
2987
2988and we combine this with `ps-even-or-odd-pages' and
2989`ps-n-up-printing', we get:
2990
2991`ps-n-up-printing' = 1:
2992 `ps-even-or-odd-pages' PAGES PRINTED
2993 nil 1, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 20
2994 even-page 4, 6, 8, 10, 12, 14, 16, 20
2995 odd-page 1, 7, 9, 13, 15
2996 even-sheet 4, 6, 8, 10, 12, 14, 16, 20
2997 odd-sheet 1, 7, 9, 13, 15
2998
2999`ps-n-up-printing' = 2:
3000 `ps-even-or-odd-pages' PAGES PRINTED
3001 nil 1/4, 6/7, 8/9, 10/12, 13/14, 15/16, 20
3002 even-page 4/6, 8/10, 12/14, 16/20
3003 odd-page 1/7, 9/13, 15
3004 even-sheet 6/7, 10/12, 15/16
3005 odd-sheet 1/4, 8/9, 13/14, 20
3006
3007*** Miscellany (subgroup)
3008
3009The variable `ps-error-handler-message' specifies where error handler
3010messages should be sent.
3011
3012It is also possible to add a user-defined PostScript prologue code in
3013front of all generated prologue code by setting the variable
3014`ps-user-defined-prologue'.
3015
3016The variable `ps-line-number-font' specifies the font for line numbers.
3017
3018The variable `ps-line-number-font-size' specifies the font size in
3019points for line numbers.
3020
3021The variable `ps-line-number-color' specifies the color for line
3022numbers. See `ps-zebra-color' for documentation.
3023
3024The variable `ps-line-number-step' specifies the interval in which
3025line numbers are printed. For example, if `ps-line-number-step' is set
3026to 2, the printing will look like:
3027
3028 1 one line
3029 one line
3030 3 one line
3031 one line
3032 5 one line
3033 one line
3034 ...
3035
3036Valid values are:
3037
3038integer an integer specifying the interval in which line numbers are
3039 printed. If it's smaller than or equal to zero, 1
3040 is used.
3041
3042`zebra' specifies that only the line number of the first line in a
3043 zebra stripe is to be printed.
3044
3045Any other value is treated as `zebra'.
3046
3047The variable `ps-line-number-start' specifies the starting point in
3048the interval given by `ps-line-number-step'. For example, if
3049`ps-line-number-step' is set to 3, and `ps-line-number-start' is set to
30503, the output will look like:
3051
3052 one line
3053 one line
3054 3 one line
3055 one line
3056 one line
3057 6 one line
3058 one line
3059 one line
3060 9 one line
3061 one line
3062 ...
3063
3064The variable `ps-postscript-code-directory' specifies the directory
3065where the PostScript prologue file used by ps-print is found.
3066
3067The variable `ps-line-spacing' determines the line spacing in points,
3068for ordinary text, when generating PostScript (similar to
3069`ps-font-size').
3070
3071The variable `ps-paragraph-spacing' determines the paragraph spacing,
3072in points, for ordinary text, when generating PostScript (similar to
3073`ps-font-size').
3074
3075The variable `ps-paragraph-regexp' specifies the paragraph delimiter.
3076
3077The variable `ps-begin-cut-regexp' and `ps-end-cut-regexp' specify the
3078start and end of a region to cut out when printing.
3079
3080** hideshow changes.
3081
3082*** now supports hiding of blocks of single line comments (like // for
3083C++, ; for lisp).
3084
3085*** Support for java-mode added.
3086
3087*** When doing `hs-hide-all' it is now possible to also hide the comments
3088in the file if `hs-hide-comments-when-hiding-all' is set.
3089
3090*** The new function `hs-hide-initial-comment' hides the comments at
3091the beginning of the files. Finally those huge RCS logs don't stay in your
3092way! This is run by default when entering the `hs-minor-mode'.
3093
3094*** Now uses overlays instead of `selective-display', so is more
3095robust and a lot faster.
3096
3097*** A block beginning can span multiple lines.
3098
3099*** The new variable `hs-show-hidden-short-form' if t, directs hideshow
3100to show only the beginning of a block when it is hidden. See the
3101documentation for more details.
3102
3103** Changes in Enriched mode.
3104
3105*** When you visit a file in enriched-mode, Emacs will make sure it is
3106filled to the current fill-column. This behavior is now independent
3107of the size of the window. When you save the file, the fill-column in
3108use is stored as well, so that the whole buffer need not be refilled
3109the next time unless the fill-column is different.
3110
3111*** use-hard-newlines is now a minor mode. When it is enabled, Emacs
3112distinguishes between hard and soft newlines, and treats hard newlines
3113as paragraph boundaries. Otherwise all newlines inserted are marked
3114as soft, and paragraph boundaries are determined solely from the text.
3115
3116** Font Lock mode
3117
3118*** Custom support
3119
3120The variables font-lock-face-attributes, font-lock-display-type and
3121font-lock-background-mode are now obsolete; the recommended way to specify
3122the faces to use for Font Lock mode is with M-x customize-group on the new
3123custom group font-lock-faces. If you set font-lock-face-attributes in your
3124~/.emacs file, Font Lock mode will respect its value. However, you should
3125consider converting from setting that variable to using M-x customize.
3126
3127You can still use X resources to specify Font Lock face appearances.
3128
3129*** Maximum decoration
3130
3131Fontification now uses the maximum level of decoration supported by
3132default. Previously, fontification used a mode-specific default level
3133of decoration, which is typically the minimum level of decoration
3134supported. You can set font-lock-maximum-decoration to nil
3135to get the old behavior.
3136
3137*** New support
3138
3139Support is now provided for Java, Objective-C, AWK and SIMULA modes.
3140
3141Note that Font Lock mode can be turned on without knowing exactly what modes
3142support Font Lock mode, via the command global-font-lock-mode.
3143
3144*** Configurable support
3145
3146Support for C, C++, Objective-C and Java can be more easily configured for
3147additional types and classes via the new variables c-font-lock-extra-types,
3148c++-font-lock-extra-types, objc-font-lock-extra-types and, you guessed it,
3149java-font-lock-extra-types. These value of each of these variables should be a
3150list of regexps matching the extra type names. For example, the default value
3151of c-font-lock-extra-types is ("\\sw+_t") which means fontification follows the
3152convention that C type names end in _t. This results in slower fontification.
3153
3154Of course, you can change the variables that specify fontification in whatever
3155way you wish, typically by adding regexps. However, these new variables make
3156it easier to make specific and common changes for the fontification of types.
3157
3158*** Adding highlighting patterns to existing support
3159
3160You can use the new function font-lock-add-keywords to add your own
3161highlighting patterns, such as for project-local or user-specific constructs,
3162for any mode.
3163
3164For example, to highlight `FIXME:' words in C comments, put:
3165
3166 (font-lock-add-keywords 'c-mode '(("\\<FIXME:" 0 font-lock-warning-face t)))
3167
3168in your ~/.emacs.
3169
3170*** New faces
3171
3172Font Lock now defines two new faces, font-lock-builtin-face and
3173font-lock-warning-face. These are intended to highlight builtin keywords,
3174distinct from a language's normal keywords, and objects that should be brought
3175to user attention, respectively. Various modes now use these new faces.
3176
3177*** Changes to fast-lock support mode
3178
3179The fast-lock package, one of the two Font Lock support modes, can now process
3180cache files silently. You can use the new variable fast-lock-verbose, in the
3181same way as font-lock-verbose, to control this feature.
3182
3183*** Changes to lazy-lock support mode
3184
3185The lazy-lock package, one of the two Font Lock support modes, can now fontify
3186according to the true syntactic context relative to other lines. You can use
3187the new variable lazy-lock-defer-contextually to control this feature. If
3188non-nil, changes to the buffer will cause subsequent lines in the buffer to be
3189refontified after lazy-lock-defer-time seconds of idle time. If nil, then only
3190the modified lines will be refontified; this is the same as the previous Lazy
3191Lock mode behavior and the behavior of Font Lock mode.
3192
3193This feature is useful in modes where strings or comments can span lines.
3194For example, if a string or comment terminating character is deleted, then if
3195this feature is enabled subsequent lines in the buffer will be correctly
3196refontified to reflect their new syntactic context. Previously, only the line
3197containing the deleted character would be refontified and you would have to use
3198the command M-o M-o (font-lock-fontify-block) to refontify some lines.
3199
3200As a consequence of this new feature, two other variables have changed:
3201
3202Variable `lazy-lock-defer-driven' is renamed `lazy-lock-defer-on-scrolling'.
3203Variable `lazy-lock-defer-time' can now only be a time, i.e., a number.
3204Buffer modes for which on-the-fly deferral applies can be specified via the
3205new variable `lazy-lock-defer-on-the-fly'.
3206
3207If you set these variables in your ~/.emacs, then you may have to change those
3208settings.
3209
3210** Ada mode changes.
3211
3212*** There is now better support for using find-file.el with Ada mode.
3213If you switch between spec and body, the cursor stays in the same
3214procedure (modulo overloading). If a spec has no body file yet, but
3215you try to switch to its body file, Ada mode now generates procedure
3216stubs.
3217
3218*** There are two new commands:
3219 - `ada-make-local' : invokes gnatmake on the current buffer
3220 - `ada-check-syntax' : check syntax of current buffer.
3221
3222The user options `ada-compiler-make', `ada-make-options',
3223`ada-language-version', `ada-compiler-syntax-check', and
3224`ada-compile-options' are used within these commands.
3225
3226*** Ada mode can now work with Outline minor mode. The outline level
3227is calculated from the indenting, not from syntactic constructs.
3228Outlining does not work if your code is not correctly indented.
3229
3230*** The new function `ada-gnat-style' converts the buffer to the style of
3231formatting used in GNAT. It places two blanks after a comment start,
3232places one blank between a word end and an opening '(', and puts one
3233space between a comma and the beginning of a word.
3234
3235** Scheme mode changes.
3236
3237*** Scheme mode indentation now uses many of the facilities of Lisp
3238mode; therefore, the variables to customize it are the variables used
3239for Lisp mode which have names starting with `lisp-'. The variables
3240with names starting with `scheme-' which used to do this no longer
3241have any effect.
3242
3243If you want to use different indentation for Scheme and Lisp, this is
3244still possible, but now you must do it by adding a hook to
3245scheme-mode-hook, which could work by setting the `lisp-' indentation
3246variables as buffer-local variables.
3247
3248*** DSSSL mode is a variant of Scheme mode, for editing DSSSL scripts.
3249Use M-x dsssl-mode.
3250
3251** Changes to the emacsclient program
3252
3253*** If a socket can't be found, and environment variables LOGNAME or
3254USER are set, emacsclient now looks for a socket based on the UID
3255associated with the name. That is an emacsclient running as root
3256can connect to an Emacs server started by a non-root user.
3257
3258*** The emacsclient program now accepts an option --no-wait which tells
3259it to return immediately without waiting for you to "finish" the
3260buffer in Emacs.
3261
3262*** The new option --alternate-editor allows to specify an editor to
3263use if Emacs is not running. The environment variable
3264ALTERNATE_EDITOR can be used for the same effect; the command line
3265option takes precedence.
3266
3267** M-x eldoc-mode enables a minor mode in which the echo area
3268constantly shows the parameter list for function being called at point
3269(in Emacs Lisp and Lisp Interaction modes only).
3270
3271** C-x n d now runs the new command narrow-to-defun,
3272which narrows the accessible parts of the buffer to just
3273the current defun.
3274
3275** Emacs now handles the `--' argument in the standard way; all
3276following arguments are treated as ordinary file names.
3277
3278** On MSDOS and Windows, the bookmark file is now called _emacs.bmk,
3279and the saved desktop file is now called _emacs.desktop (truncated if
3280necessary).
3281
3282** When you kill a buffer that visits a file,
3283if there are any registers that save positions in the file,
3284these register values no longer become completely useless.
3285If you try to go to such a register with C-x j, then you are
3286asked whether to visit the file again. If you say yes,
3287it visits the file and then goes to the same position.
3288
3289** When you visit a file that changes frequently outside Emacs--for
3290example, a log of output from a process that continues to run--it may
3291be useful for Emacs to revert the file without querying you whenever
3292you visit the file afresh with C-x C-f.
3293
3294You can request this behavior for certain files by setting the
3295variable revert-without-query to a list of regular expressions. If a
3296file's name matches any of these regular expressions, find-file and
3297revert-buffer revert the buffer without asking for permission--but
3298only if you have not edited the buffer text yourself.
3299
3300** set-default-font has been renamed to set-frame-font
3301since it applies only to the current frame.
3302
3303** In TeX mode, you can use the variable tex-main-file to specify the
3304file for tex-file to run TeX on. (By default, tex-main-file is nil,
3305and tex-file runs TeX on the current visited file.)
3306
3307This is useful when you are editing a document that consists of
3308multiple files. In each of the included files, you can set up a local
3309variable list which specifies the top-level file of your document for
3310tex-main-file. Then tex-file will run TeX on the whole document
3311instead of just the file you are editing.
3312
3313** RefTeX mode
3314
3315RefTeX mode is a new minor mode with special support for \label, \ref
3316and \cite macros in LaTeX documents. RefTeX distinguishes labels of
3317different environments (equation, figure, ...) and has full support for
3318multifile documents. To use it, select a buffer with a LaTeX document and
3319turn the mode on with M-x reftex-mode. Here are the main user commands:
3320
3321C-c ( reftex-label
3322 Creates a label semi-automatically. RefTeX is context sensitive and
3323 knows which kind of label is needed.
3324
3325C-c ) reftex-reference
3326 Offers in a menu all labels in the document, along with context of the
3327 label definition. The selected label is referenced as \ref{LABEL}.
3328
3329C-c [ reftex-citation
3330 Prompts for a regular expression and displays a list of matching BibTeX
3331 database entries. The selected entry is cited with a \cite{KEY} macro.
3332
3333C-c & reftex-view-crossref
3334 Views the cross reference of a \ref or \cite command near point.
3335
3336C-c = reftex-toc
3337 Shows a table of contents of the (multifile) document. From there you
3338 can quickly jump to every section.
3339
3340Under X, RefTeX installs a "Ref" menu in the menu bar, with additional
3341commands. Press `?' to get help when a prompt mentions this feature.
3342Full documentation and customization examples are in the file
3343reftex.el. You can use the finder to view the file documentation:
3344C-h p --> tex --> reftex.el
3345
3346** Changes in BibTeX mode.
3347
3348*** Info documentation is now available.
3349
3350*** Don't allow parentheses in string constants anymore. This confused
3351both the BibTeX program and Emacs BibTeX mode.
3352
3353*** Renamed variable bibtex-mode-user-optional-fields to
3354bibtex-user-optional-fields.
3355
3356*** Removed variable bibtex-include-OPTannote
3357(use bibtex-user-optional-fields instead).
3358
3359*** New interactive functions to copy and kill fields and complete
3360entries to the BibTeX kill ring, from where they can be yanked back by
3361appropriate functions.
3362
3363*** New interactive functions for repositioning and marking of
3364entries. They are bound by default to C-M-l and C-M-h.
3365
3366*** New hook bibtex-clean-entry-hook. It is called after entry has
3367been cleaned.
3368
3369*** New variable bibtex-field-delimiters, which replaces variables
3370bibtex-field-{left|right}-delimiter.
3371
3372*** New variable bibtex-entry-delimiters to determine how entries
3373shall be delimited.
3374
3375*** Allow preinitialization of fields. See documentation of
3376bibtex-user-optional-fields, bibtex-entry-field-alist, and
3377bibtex-include-OPTkey for details.
3378
3379*** Book and InBook entries require either an author or an editor
3380field. This is now supported by bibtex.el. Alternative fields are
3381prefixed with `ALT'.
3382
3383*** New variable bibtex-entry-format, which replaces variable
3384bibtex-clean-entry-zap-empty-opts and allows specification of many
3385formatting options performed on cleaning an entry (see variable
3386documentation).
3387
3388*** Even more control on how automatic keys are generated. See
3389documentation of bibtex-generate-autokey for details. Transcriptions
3390for foreign languages other than German are now handled, too.
3391
3392*** New boolean user option bibtex-comma-after-last-field to decide if
3393comma should be inserted at end of last field.
3394
3395*** New boolean user option bibtex-align-at-equal-sign to determine if
3396alignment should be made at left side of field contents or at equal
3397signs. New user options to control entry layout (e.g. indentation).
3398
3399*** New function bibtex-fill-entry to realign entries.
3400
3401*** New function bibtex-reformat to reformat region or buffer.
3402
3403*** New function bibtex-convert-alien to convert a BibTeX database
3404from alien sources.
3405
3406*** New function bibtex-complete-key (similar to bibtex-complete-string)
3407to complete prefix to a key defined in buffer. Mainly useful in
3408crossref entries.
3409
3410*** New function bibtex-count-entries to count entries in buffer or
3411region.
3412
3413*** Added support for imenu.
3414
3415*** The function `bibtex-validate' now checks current region instead
3416of buffer if mark is active. Now it shows all errors of buffer in a
3417`compilation mode' buffer. You can use the normal commands (e.g.
3418`next-error') for compilation modes to jump to errors.
3419
3420*** New variable `bibtex-string-file-path' to determine where the files
3421from `bibtex-string-files' are searched.
3422
3423** Iso Accents mode now supports Latin-3 as an alternative.
3424
3425** The command next-error now opens blocks hidden by hideshow.
3426
3427** The function using-unix-filesystems has been replaced by the
3428functions add-untranslated-filesystem and remove-untranslated-filesystem.
3429Each of these functions takes the name of a drive letter or directory
3430as an argument.
3431
3432When a filesystem is added as untranslated, all files on it are read
3433and written in binary mode (no cr/lf translation is performed).
3434
3435** browse-url changes
3436
3437*** New methods for: Grail (browse-url-generic), MMM (browse-url-mmm),
3438Lynx in a separate xterm (browse-url-lynx-xterm) or in an Emacs window
3439(browse-url-lynx-emacs), remote W3 (browse-url-w3-gnudoit), generic
3440non-remote-controlled browsers (browse-url-generic) and associated
3441customization variables.
3442
3443*** New commands `browse-url-of-region' and `browse-url'.
3444
3445*** URLs marked up with <URL:...> (RFC1738) work if broken across
3446lines. Browsing methods can be associated with URL regexps
3447(e.g. mailto: URLs) via `browse-url-browser-function'.
3448
3449** Changes in Ediff
3450
3451*** Clicking Mouse-2 on a brief command description in Ediff control panel
3452pops up the Info file for this command.
3453
3454*** There is now a variable, ediff-autostore-merges, which controls whether
3455the result of a merge is saved in a file. By default, this is done only when
3456merge is done from a session group (eg, when merging files in two different
3457directories).
3458
3459*** Since Emacs 19.31 (this hasn't been announced before), Ediff can compare
3460and merge groups of files residing in different directories, or revisions of
3461files in the same directory.
3462
3463*** Since Emacs 19.31, Ediff can apply multi-file patches interactively.
3464The patches must be in the context format or GNU unified format. (The bug
3465related to the GNU format has now been fixed.)
3466
3467** Changes in Viper
3468
3469*** The startup file is now .viper instead of .vip
3470*** All variable/function names have been changed to start with viper-
3471 instead of vip-.
3472*** C-\ now simulates the meta-key in all Viper states.
3473*** C-z in Insert state now escapes to Vi for the duration of the next
3474Viper command. In Vi and Insert states, C-z behaves as before.
3475*** C-c \ escapes to Vi for one command if Viper is in Insert or Emacs states.
3476*** _ is no longer the meta-key in Vi state.
3477*** The variable viper-insert-state-cursor-color can be used to change cursor
3478color when Viper is in insert state.
3479*** If search lands the cursor near the top or the bottom of the window,
3480Viper pulls the window up or down to expose more context. The variable
3481viper-adjust-window-after-search controls this behavior.
3482
3483** Etags changes.
3484
3485*** In C, C++, Objective C and Java, Etags tags global variables by
3486default. The resulting tags files are inflated by 30% on average.
3487Use --no-globals to turn this feature off. Etags can also tag
3488variables which are members of structure-like constructs, but it does
3489not by default. Use --members to turn this feature on.
3490
3491*** C++ member functions are now recognized as tags.
3492
3493*** Java is tagged like C++. In addition, "extends" and "implements"
3494constructs are tagged. Files are recognized by the extension .java.
3495
3496*** Etags can now handle programs written in Postscript. Files are
3497recognized by the extensions .ps and .pdb (Postscript with C syntax).
3498In Postscript, tags are lines that start with a slash.
3499
3500*** Etags now handles Objective C and Objective C++ code. The usual C and
3501C++ tags are recognized in these languages; in addition, etags
3502recognizes special Objective C syntax for classes, class categories,
3503methods and protocols.
3504
3505*** Etags also handles Cobol. Files are recognized by the extension
3506.cobol. The tagged lines are those containing a word that begins in
3507column 8 and ends in a full stop, i.e. anything that could be a
3508paragraph name.
3509
3510*** Regexps in Etags now support intervals, as in ed or grep. The syntax of
3511an interval is \{M,N\}, and it means to match the preceding expression
3512at least M times and as many as N times.
3513
3514** The format for specifying a custom format for time-stamp to insert
3515in files has changed slightly.
3516
3517With the new enhancements to the functionality of format-time-string,
3518time-stamp-format will change to be eventually compatible with it.
3519This conversion is being done in two steps to maintain compatibility
3520with old time-stamp-format values.
3521
3522In the new scheme, alternate case is signified by the number-sign
3523(`#') modifier, rather than changing the case of the format character.
3524This feature is as yet incompletely implemented for compatibility
3525reasons.
3526
3527In the old time-stamp-format, all numeric fields defaulted to their
3528natural width. (With format-time-string, each format has a
3529fixed-width default.) In this version, you can specify the colon
3530(`:') modifier to a numeric conversion to mean "give me the historical
3531time-stamp-format width default." Do not use colon if you are
3532specifying an explicit width, as in "%02d".
3533
3534Numbers are no longer truncated to the requested width, except in the
3535case of "%02y", which continues to give a two-digit year. Digit
3536truncation probably wasn't being used for anything else anyway.
3537
3538The new formats will work with old versions of Emacs. New formats are
3539being recommended now to allow time-stamp-format to change in the
3540future to be compatible with format-time-string. The new forms being
3541recommended now will continue to work then.
3542
3543See the documentation string for the variable time-stamp-format for
3544details.
3545
3546** There are some additional major modes:
3547
3548dcl-mode, for editing VMS DCL files.
3549m4-mode, for editing files of m4 input.
3550meta-mode, for editing MetaFont and MetaPost source files.
3551
3552** In Shell mode, the command shell-copy-environment-variable lets you
3553copy the value of a specified environment variable from the subshell
3554into Emacs.
3555
3556** New Lisp packages include:
3557
3558*** battery.el displays battery status for laptops.
3559
3560*** M-x bruce (named after Lenny Bruce) is a program that might
3561be used for adding some indecent words to your email.
3562
3563*** M-x crisp-mode enables an emulation for the CRiSP editor.
3564
3565*** M-x dirtrack arranges for better tracking of directory changes
3566in shell buffers.
3567
3568*** The new library elint.el provides for linting of Emacs Lisp code.
3569See the documentation for `elint-initialize', `elint-current-buffer'
3570and `elint-defun'.
3571
3572*** M-x expand-add-abbrevs defines a special kind of abbrev which is
3573meant for programming constructs. These abbrevs expand like ordinary
3574ones, when you type SPC, but only at the end of a line and not within
3575strings or comments.
3576
3577These abbrevs can act as templates: you can define places within an
3578abbrev for insertion of additional text. Once you expand the abbrev,
3579you can then use C-x a p and C-x a n to move back and forth to these
3580insertion points. Thus you can conveniently insert additional text
3581at these points.
3582
3583*** filecache.el remembers the location of files so that you
3584can visit them by short forms of their names.
3585
3586*** find-func.el lets you find the definition of the user-loaded
3587Emacs Lisp function at point.
3588
3589*** M-x handwrite converts text to a "handwritten" picture.
3590
3591*** M-x iswitchb-buffer is a command for switching to a buffer, much like
3592switch-buffer, but it reads the argument in a more helpful way.
3593
3594*** M-x landmark implements a neural network for landmark learning.
3595
3596*** M-x locate provides a convenient interface to the `locate' program.
3597
3598*** M4 mode is a new mode for editing files of m4 input.
3599
3600*** mantemp.el creates C++ manual template instantiations
3601from the GCC error messages which indicate which instantiations are needed.
3602
3603*** mouse-copy.el provides a one-click copy and move feature.
3604You can drag a region with M-mouse-1, and it is automatically
3605inserted at point. M-Shift-mouse-1 deletes the text from its
3606original place after inserting the copy.
3607
3608*** mouse-drag.el lets you do scrolling by dragging Mouse-2
3609on the buffer.
3610
3611You click the mouse and move; that distance either translates into the
3612velocity to scroll (with mouse-drag-throw) or the distance to scroll
3613(with mouse-drag-drag). Horizontal scrolling is enabled when needed.
3614
3615Enable mouse-drag with:
3616 (global-set-key [down-mouse-2] 'mouse-drag-throw)
3617-or-
3618 (global-set-key [down-mouse-2] 'mouse-drag-drag)
3619
3620*** mspools.el is useful for determining which mail folders have
3621mail waiting to be read in them. It works with procmail.
3622
3623*** Octave mode is a major mode for editing files of input for Octave.
3624It comes with a facility for communicating with an Octave subprocess.
3625
3626*** ogonek
3627
3628The ogonek package provides functions for changing the coding of
3629Polish diacritic characters in buffers. Codings known from various
3630platforms are supported such as ISO8859-2, Mazovia, IBM Latin2, and
3631TeX. For example, you can change the coding from Mazovia to
3632ISO8859-2. Another example is a change of coding from ISO8859-2 to
3633prefix notation (in which `/a' stands for the aogonek character, for
3634instance) and vice versa.
3635
3636To use this package load it using
3637 M-x load-library [enter] ogonek
3638Then, you may get an explanation by calling one of
3639 M-x ogonek-jak -- in Polish
3640 M-x ogonek-how -- in English
3641The info specifies the commands and variables provided as well as the
3642ways of customization in `.emacs'.
3643
3644*** Interface to ph.
3645
3646Emacs provides a client interface to CCSO Nameservers (ph/qi)
3647
3648The CCSO nameserver is used in many universities to provide directory
3649services about people. ph.el provides a convenient Emacs interface to
3650these servers.
3651
3652*** uce.el is useful for replying to unsolicited commercial email.
3653
3654*** vcursor.el implements a "virtual cursor" feature.
3655You can move the virtual cursor with special commands
3656while the real cursor does not move.
3657
3658*** webjump.el is a "hot list" package which you can set up
3659for visiting your favorite web sites.
3660
3661*** M-x winner-mode is a minor mode which saves window configurations,
3662so you can move back to other configurations that you have recently used.
3663
3664** movemail change
3665
3666Movemail no longer needs to be installed setuid root in order for POP
3667mail retrieval to function properly. This is because it no longer
3668supports the RPOP (reserved-port POP) protocol; instead, it uses the
3669user's POP password to authenticate to the mail server.
3670
3671This change was made earlier, but not reported in NEWS before.
3672
3673
3674* Emacs 20.1 changes for MS-DOS and MS-Windows.
3675
3676** Changes in handling MS-DOS/MS-Windows text files.
3677
3678Emacs handles three different conventions for representing
3679end-of-line: CRLF for MSDOS, LF for Unix and GNU, and CR (used on the
3680Macintosh). Emacs determines which convention is used in a specific
3681file based on the contents of that file (except for certain special
3682file names), and when it saves the file, it uses the same convention.
3683
3684To save the file and change the end-of-line convention, you can use
3685C-x RET f (set-buffer-file-coding-system) to specify a different
3686coding system for the buffer. Then, when you save the file, the newly
3687specified coding system will take effect. For example, to save with
3688LF, specify undecided-unix (or some other ...-unix coding system); to
3689save with CRLF, specify undecided-dos.
3690
3691
3692* Lisp Changes in Emacs 20.1
3693
3694** Byte-compiled files made with Emacs 20 will, in general, work in
3695Emacs 19 as well, as long as the source code runs in Emacs 19. And
3696vice versa: byte-compiled files made with Emacs 19 should also run in
3697Emacs 20, as long as the program itself works in Emacs 20.
3698
3699** Windows-specific functions and variables have been renamed
3700to start with w32- instead of win32-.
3701
3702In hacker language, calling something a "win" is a form of praise. We
3703don't want to praise a non-free Microsoft system, so we don't call it
3704"win".
3705
3706** Basic Lisp changes
3707
3708*** A symbol whose name starts with a colon now automatically
3709evaluates to itself. Therefore such a symbol can be used as a constant.
3710
3711*** The defined purpose of `defconst' has been changed. It should now
3712be used only for values that should not be changed whether by a program
3713or by the user.
3714
3715The actual behavior of defconst has not been changed.
3716
3717*** There are new macros `when' and `unless'
3718
3719(when CONDITION BODY...) is short for (if CONDITION (progn BODY...))
3720(unless CONDITION BODY...) is short for (if CONDITION nil BODY...)
3721
3722*** Emacs now defines functions caar, cadr, cdar and cddr with their
3723usual Lisp meanings. For example, caar returns the car of the car of
3724its argument.
3725
3726*** equal, when comparing strings, now ignores their text properties.
3727
3728*** The new function `functionp' tests whether an object is a function.
3729
3730*** arrayp now returns t for char-tables and bool-vectors.
3731
3732*** Certain primitives which use characters (as integers) now get an
3733error if the integer is not a valid character code. These primitives
3734include insert-char, char-to-string, and the %c construct in the
3735`format' function.
3736
3737*** The `require' function now insists on adding a suffix, either .el
3738or .elc, to the file name. Thus, (require 'foo) will not use a file
3739whose name is just foo. It insists on foo.el or foo.elc.
3740
3741*** The `autoload' function, when the file name does not contain
3742either a directory name or the suffix .el or .elc, insists on
3743adding one of these suffixes.
3744
3745*** string-to-number now takes an optional second argument BASE
3746which specifies the base to use when converting an integer.
3747If BASE is omitted, base 10 is used.
3748
3749We have not implemented other radices for floating point numbers,
3750because that would be much more work and does not seem useful.
3751
3752*** substring now handles vectors as well as strings.
3753
3754*** The Common Lisp function eql is no longer defined normally.
3755You must load the `cl' library to define it.
3756
3757*** The new macro `with-current-buffer' lets you evaluate an expression
3758conveniently with a different current buffer. It looks like this:
3759
3760 (with-current-buffer BUFFER BODY-FORMS...)
3761
3762BUFFER is the expression that says which buffer to use.
3763BODY-FORMS say what to do in that buffer.
3764
3765*** The new primitive `save-current-buffer' saves and restores the
3766choice of current buffer, like `save-excursion', but without saving or
3767restoring the value of point or the mark. `with-current-buffer'
3768works using `save-current-buffer'.
3769
3770*** The new macro `with-temp-file' lets you do some work in a new buffer and
3771write the output to a specified file. Like `progn', it returns the value
3772of the last form.
3773
3774*** The new macro `with-temp-buffer' lets you do some work in a new buffer,
3775which is discarded after use. Like `progn', it returns the value of the
3776last form. If you wish to return the buffer contents, use (buffer-string)
3777as the last form.
3778
3779*** The new function split-string takes a string, splits it at certain
3780characters, and returns a list of the substrings in between the
3781matches.
3782
3783For example, (split-string "foo bar lose" " +") returns ("foo" "bar" "lose").
3784
3785*** The new macro with-output-to-string executes some Lisp expressions
3786with standard-output set up so that all output feeds into a string.
3787Then it returns that string.
3788
3789For example, if the current buffer name is `foo',
3790
3791(with-output-to-string
3792 (princ "The buffer is ")
3793 (princ (buffer-name)))
3794
3795returns "The buffer is foo".
3796
3797** Non-ASCII characters are now supported, if enable-multibyte-characters
3798is non-nil.
3799
3800These characters have character codes above 256. When inserted in the
3801buffer or stored in a string, they are represented as multibyte
3802characters that occupy several buffer positions each.
3803
3804*** When enable-multibyte-characters is non-nil, a single character in
3805a buffer or string can be two or more bytes (as many as four).
3806
3807Buffers and strings are still made up of unibyte elements;
3808character positions and string indices are always measured in bytes.
3809Therefore, moving forward one character can increase the buffer
3810position by 2, 3 or 4. The function forward-char moves by whole
3811characters, and therefore is no longer equivalent to
3812 (lambda (n) (goto-char (+ (point) n))).
3813
3814ASCII characters (codes 0 through 127) are still single bytes, always.
3815Sequences of byte values 128 through 255 are used to represent
3816non-ASCII characters. These sequences are called "multibyte
3817characters".
3818
3819The first byte of a multibyte character is always in the range 128
3820through 159 (octal 0200 through 0237). These values are called
3821"leading codes". The second and subsequent bytes are always in the
3822range 160 through 255 (octal 0240 through 0377). The first byte, the
3823leading code, determines how many bytes long the sequence is.
3824
3825*** The function forward-char moves over characters, and therefore
3826(forward-char 1) may increase point by more than 1 if it moves over a
3827multibyte character. Likewise, delete-char always deletes a
3828character, which may be more than one buffer position.
3829
3830This means that some Lisp programs, which assume that a character is
3831always one buffer position, need to be changed.
3832
3833However, all ASCII characters are always one buffer position.
3834
3835*** The regexp [\200-\377] no longer matches all non-ASCII characters,
3836because when enable-multibyte-characters is non-nil, these characters
3837have codes that are not in the range octal 200 to octal 377. However,
3838the regexp [^\000-\177] does match all non-ASCII characters,
3839guaranteed.
3840
3841*** The function char-boundary-p returns non-nil if position POS is
3842between two characters in the buffer (not in the middle of a
3843character).
3844
3845When the value is non-nil, it says what kind of character follows POS:
3846
3847 0 if POS is at an ASCII character or at the end of range,
3848 1 if POS is before a 2-byte length multi-byte form,
3849 2 if POS is at a head of 3-byte length multi-byte form,
3850 3 if POS is at a head of 4-byte length multi-byte form,
3851 4 if POS is at a head of multi-byte form of a composite character.
3852
3853*** The function char-bytes returns how many bytes the character CHAR uses.
3854
3855*** Strings can contain multibyte characters. The function
3856`length' returns the string length counting bytes, which may be
3857more than the number of characters.
3858
3859You can include a multibyte character in a string constant by writing
3860it literally. You can also represent it with a hex escape,
3861\xNNNNNNN..., using as many digits as necessary. Any character which
3862is not a valid hex digit terminates this construct. If you want to
3863follow it with a character that is a hex digit, write backslash and
3864newline in between; that will terminate the hex escape.
3865
3866*** The function concat-chars takes arguments which are characters
3867and returns a string containing those characters.
3868
3869*** The function sref access a multibyte character in a string.
3870(sref STRING INDX) returns the character in STRING at INDEX. INDEX
3871counts from zero. If INDEX is at a position in the middle of a
3872character, sref signals an error.
3873
3874*** The function chars-in-string returns the number of characters
3875in a string. This is less than the length of the string, if the
3876string contains multibyte characters (the length counts bytes).
3877
3878*** The function chars-in-region returns the number of characters
3879in a region from BEG to END. This is less than (- END BEG) if the
3880region contains multibyte characters (the length counts bytes).
3881
3882*** The function string-to-list converts a string to a list of
3883the characters in it. string-to-vector converts a string
3884to a vector of the characters in it.
3885
3886*** The function store-substring alters part of the contents
3887of a string. You call it as follows:
3888
3889 (store-substring STRING IDX OBJ)
3890
3891This says to alter STRING, by storing OBJ starting at index IDX in
3892STRING. OBJ may be either a character or a (smaller) string.
3893This function really does alter the contents of STRING.
3894Since it is impossible to change the length of an existing string,
3895it is an error if OBJ doesn't fit within STRING's actual length.
3896
3897*** char-width returns the width (in columns) of the character CHAR,
3898if it were displayed in the current buffer and the selected window.
3899
3900*** string-width returns the width (in columns) of the text in STRING,
3901if it were displayed in the current buffer and the selected window.
3902
3903*** truncate-string-to-width shortens a string, if necessary,
3904to fit within a certain number of columns. (Of course, it does
3905not alter the string that you give it; it returns a new string
3906which contains all or just part of the existing string.)
3907
3908(truncate-string-to-width STR END-COLUMN &optional START-COLUMN PADDING)
3909
3910This returns the part of STR up to column END-COLUMN.
3911
3912The optional argument START-COLUMN specifies the starting column.
3913If this is non-nil, then the first START-COLUMN columns of the string
3914are not included in the resulting value.
3915
3916The optional argument PADDING, if non-nil, is a padding character to be added
3917at the beginning and end the resulting string, to extend it to exactly
3918WIDTH columns. If PADDING is nil, that means do not pad; then, if STRING
3919is narrower than WIDTH, the value is equal to STRING.
3920
3921If PADDING and START-COLUMN are both non-nil, and if there is no clean
3922place in STRING that corresponds to START-COLUMN (because one
3923character extends across that column), then the padding character
3924PADDING is added one or more times at the beginning of the result
3925string, so that its columns line up as if it really did start at
3926column START-COLUMN.
3927
3928*** When the functions in the list after-change-functions are called,
3929the third argument is the number of bytes in the pre-change text, not
3930necessarily the number of characters. It is, in effect, the
3931difference in buffer position between the beginning and the end of the
3932changed text, before the change.
3933
3934*** The characters Emacs uses are classified in various character
3935sets, each of which has a name which is a symbol. In general there is
3936one character set for each script, not for each language.
3937
3938**** The function charsetp tests whether an object is a character set name.
3939
3940**** The variable charset-list holds a list of character set names.
3941
3942**** char-charset, given a character code, returns the name of the character
3943set that the character belongs to. (The value is a symbol.)
3944
3945**** split-char, given a character code, returns a list containing the
3946name of the character set, followed by one or two byte-values
3947which identify the character within that character set.
3948
3949**** make-char, given a character set name and one or two subsequent
3950byte-values, constructs a character code. This is roughly the
3951opposite of split-char.
3952
3953**** find-charset-region returns a list of the character sets
3954of all the characters between BEG and END.
3955
3956**** find-charset-string returns a list of the character sets
3957of all the characters in a string.
3958
3959*** Here are the Lisp facilities for working with coding systems
3960and specifying coding systems.
3961
3962**** The function coding-system-list returns a list of all coding
3963system names (symbols). With optional argument t, it returns a list
3964of all distinct base coding systems, not including variants.
3965(Variant coding systems are those like latin-1-dos, latin-1-unix
3966and latin-1-mac which specify the end-of-line conversion as well
3967as what to do about code conversion.)
3968
3969**** coding-system-p tests a symbol to see if it is a coding system
3970name. It returns t if so, nil if not.
3971
3972**** file-coding-system-alist specifies which coding systems to use
3973for certain file names. It works like network-coding-system-alist,
3974except that the PATTERN is matched against the file name.
3975
3976Each element has the format (PATTERN . VAL), where PATTERN determines
3977which file names the element applies to. PATTERN should be a regexp
3978to match against a file name.
3979
3980VAL is a coding system, a cons cell containing two coding systems, or
3981a function symbol. If VAL is a coding system, it is used for both
3982decoding what received from the network stream and encoding what sent
3983to the network stream. If VAL is a cons cell containing two coding
3984systems, the car specifies the coding system for decoding, and the cdr
3985specifies the coding system for encoding.
3986
3987If VAL is a function symbol, the function must return a coding system
3988or a cons cell containing two coding systems, which is used as above.
3989
3990**** The variable network-coding-system-alist specifies
3991the coding system to use for network sockets.
3992
3993Each element has the format (PATTERN . VAL), where PATTERN determines
3994which network sockets the element applies to. PATTERN should be
3995either a port number or a regular expression matching some network
3996service names.
3997
3998VAL is a coding system, a cons cell containing two coding systems, or
3999a function symbol. If VAL is a coding system, it is used for both
4000decoding what received from the network stream and encoding what sent
4001to the network stream. If VAL is a cons cell containing two coding
4002systems, the car specifies the coding system for decoding, and the cdr
4003specifies the coding system for encoding.
4004
4005If VAL is a function symbol, the function must return a coding system
4006or a cons cell containing two coding systems, which is used as above.
4007
4008**** process-coding-system-alist specifies which coding systems to use
4009for certain subprocess. It works like network-coding-system-alist,
4010except that the PATTERN is matched against the program name used to
4011start the subprocess.
4012
4013**** The variable default-process-coding-system specifies the coding
4014systems to use for subprocess (and net connection) input and output,
4015when nothing else specifies what to do. The value is a cons cell
4016(OUTPUT-CODING . INPUT-CODING). OUTPUT-CODING applies to output
4017to the subprocess, and INPUT-CODING applies to input from it.
4018
4019**** The variable coding-system-for-write, if non-nil, specifies the
4020coding system to use for writing a file, or for output to a synchronous
4021subprocess.
4022
4023It also applies to any asynchronous subprocess or network connection,
4024but in a different way: the value of coding-system-for-write when you
4025start the subprocess or connection affects that subprocess or
4026connection permanently or until overridden.
4027
4028The variable coding-system-for-write takes precedence over
4029file-coding-system-alist, process-coding-system-alist and
4030network-coding-system-alist, and all other methods of specifying a
4031coding system for output. But most of the time this variable is nil.
4032It exists so that Lisp programs can bind it to a specific coding
4033system for one operation at a time.
4034
4035**** coding-system-for-read applies similarly to input from
4036files, subprocesses or network connections.
4037
4038**** The function process-coding-system tells you what
4039coding systems(s) an existing subprocess is using.
4040The value is a cons cell,
4041 (DECODING-CODING-SYSTEM . ENCODING-CODING-SYSTEM)
4042where DECODING-CODING-SYSTEM is used for decoding output from
4043the subprocess, and ENCODING-CODING-SYSTEM is used for encoding
4044input to the subprocess.
4045
4046**** The function set-process-coding-system can be used to
4047change the coding systems in use for an existing subprocess.
4048
4049** Emacs has a new facility to help users manage the many
4050customization options. To make a Lisp program work with this facility,
4051you need to use the new macros defgroup and defcustom.
4052
4053You use defcustom instead of defvar, for defining a user option
4054variable. The difference is that you specify two additional pieces of
4055information (usually): the "type" which says what values are
4056legitimate, and the "group" which specifies the hierarchy for
4057customization.
4058
4059Thus, instead of writing
4060
4061 (defvar foo-blurgoze nil
4062 "*Non-nil means that foo will act very blurgozely.")
4063
4064you would now write this:
4065
4066 (defcustom foo-blurgoze nil
4067 "*Non-nil means that foo will act very blurgozely."
4068 :type 'boolean
4069 :group foo)
4070
4071The type `boolean' means that this variable has only
4072two meaningful states: nil and non-nil. Other type values
4073describe other possibilities; see the manual for Custom
4074for a description of them.
4075
4076The "group" argument is used to specify a group which the option
4077should belong to. You define a new group like this:
4078
4079 (defgroup ispell nil
4080 "Spell checking using Ispell."
4081 :group 'processes)
4082
4083The "group" argument in defgroup specifies the parent group. The root
4084group is called `emacs'; it should not contain any variables itself,
4085but only other groups. The immediate subgroups of `emacs' correspond
4086to the keywords used by C-h p. Under these subgroups come
4087second-level subgroups that belong to individual packages.
4088
4089Each Emacs package should have its own set of groups. A simple
4090package should have just one group; a more complex package should
4091have a hierarchy of its own groups. The sole or root group of a
4092package should be a subgroup of one or more of the "keyword"
4093first-level subgroups.
4094
4095** New `widget' library for inserting UI components in buffers.
4096
4097This library, used by the new custom library, is documented in a
4098separate manual that accompanies Emacs.
4099
4100** easy-mmode
4101
4102The easy-mmode package provides macros and functions that make
4103developing minor modes easier. Roughly, the programmer has to code
4104only the functionality of the minor mode. All the rest--toggles,
4105predicate, and documentation--can be done in one call to the macro
4106`easy-mmode-define-minor-mode' (see the documentation). See also
4107`easy-mmode-define-keymap'.
4108
4109** Text property changes
4110
4111*** The `intangible' property now works on overlays as well as on a
4112text property.
4113
4114*** The new functions next-char-property-change and
4115previous-char-property-change scan through the buffer looking for a
4116place where either a text property or an overlay might change. The
4117functions take two arguments, POSITION and LIMIT. POSITION is the
4118starting position for the scan. LIMIT says where to stop the scan.
4119
4120If no property change is found before LIMIT, the value is LIMIT. If
4121LIMIT is nil, scan goes to the beginning or end of the accessible part
4122of the buffer. If no property change is found, the value is the
4123position of the beginning or end of the buffer.
4124
4125*** In the `local-map' text property or overlay property, the property
4126value can now be a symbol whose function definition is a keymap. This
4127is an alternative to using the keymap itself.
4128
4129** Changes in invisibility features
4130
4131*** Isearch can now temporarily show parts of the buffer which are
4132hidden by an overlay with a invisible property, when the search match
4133is inside that portion of the buffer. To enable this the overlay
4134should have a isearch-open-invisible property which is a function that
4135would be called having the overlay as an argument, the function should
4136make the overlay visible.
4137
4138During incremental search the overlays are shown by modifying the
4139invisible and intangible properties, if beside this more actions are
4140needed the overlay should have a isearch-open-invisible-temporary
4141which is a function. The function is called with 2 arguments: one is
4142the overlay and the second is nil when it should show the overlay and
4143t when it should hide it.
4144
4145*** add-to-invisibility-spec, remove-from-invisibility-spec
4146
4147Modes that use overlays to hide portions of a buffer should set the
4148invisible property of the overlay to the mode's name (or another symbol)
4149and modify the `buffer-invisibility-spec' to include that symbol.
4150Use `add-to-invisibility-spec' and `remove-from-invisibility-spec' to
4151manipulate the `buffer-invisibility-spec'.
4152Here is an example of how to do this:
4153
4154 ;; If we want to display an ellipsis:
4155 (add-to-invisibility-spec '(my-symbol . t))
4156 ;; If you don't want ellipsis:
4157 (add-to-invisibility-spec 'my-symbol)
4158
4159 ...
4160 (overlay-put (make-overlay beginning end) 'invisible 'my-symbol)
4161
4162 ...
4163 ;; When done with the overlays:
4164 (remove-from-invisibility-spec '(my-symbol . t))
4165 ;; Or respectively:
4166 (remove-from-invisibility-spec 'my-symbol)
4167
4168** Changes in syntax parsing.
4169
4170*** The syntax-directed buffer-scan functions (such as
4171`parse-partial-sexp', `forward-word' and similar functions) can now
4172obey syntax information specified by text properties, if the variable
4173`parse-sexp-lookup-properties' is non-nil.
4174
4175If the value of `parse-sexp-lookup-properties' is nil, the behavior
4176is as before: the syntax-table of the current buffer is always
4177used to determine the syntax of the character at the position.
4178
4179When `parse-sexp-lookup-properties' is non-nil, the syntax of a
4180character in the buffer is calculated thus:
4181
4182 a) if the `syntax-table' text-property of that character
4183 is a cons, this cons becomes the syntax-type;
4184
4185 Valid values of `syntax-table' text-property are: nil, a valid
4186 syntax-table, and a valid syntax-table element, i.e.,
4187 a cons cell of the form (SYNTAX-CODE . MATCHING-CHAR).
4188
4189 b) if the character's `syntax-table' text-property
4190 is a syntax table, this syntax table is used
4191 (instead of the syntax-table of the current buffer) to
4192 determine the syntax type of the character.
4193
4194 c) otherwise the syntax-type is determined by the syntax-table
4195 of the current buffer.
4196
4197*** The meaning of \s in regular expressions is also affected by the
4198value of `parse-sexp-lookup-properties'. The details are the same as
4199for the syntax-directed buffer-scan functions.
4200
4201*** There are two new syntax-codes, `!' and `|' (numeric values 14
4202and 15). A character with a code `!' starts a comment which is ended
4203only by another character with the same code (unless quoted). A
4204character with a code `|' starts a string which is ended only by
4205another character with the same code (unless quoted).
4206
4207These codes are mainly meant for use as values of the `syntax-table'
4208text property.
4209
4210*** The function `parse-partial-sexp' has new semantics for the sixth
4211arg COMMENTSTOP. If it is `syntax-table', parse stops after the start
4212of a comment or a string, or after end of a comment or a string.
4213
4214*** The state-list which the return value from `parse-partial-sexp'
4215(and can also be used as an argument) now has an optional ninth
4216element: the character address of the start of last comment or string;
4217nil if none. The fourth and eighth elements have special values if the
4218string/comment is started by a "!" or "|" syntax-code.
4219
4220*** Since new features of `parse-partial-sexp' allow a complete
4221syntactic parsing, `font-lock' no longer supports
4222`font-lock-comment-start-regexp'.
4223
4224** Changes in face features
4225
4226*** The face functions are now unconditionally defined in Emacs, even
4227if it does not support displaying on a device that supports faces.
4228
4229*** The function face-documentation returns the documentation string
4230of a face (or nil if it doesn't have one).
4231
4232*** The function face-bold-p returns t if a face should be bold.
4233set-face-bold-p sets that flag.
4234
4235*** The function face-italic-p returns t if a face should be italic.
4236set-face-italic-p sets that flag.
4237
4238*** You can now specify foreground and background colors for text
4239by adding elements of the form (foreground-color . COLOR-NAME)
4240and (background-color . COLOR-NAME) to the list of faces in
4241the `face' property (either the character's text property or an
4242overlay property).
4243
4244This means that you no longer need to create named faces to use
4245arbitrary colors in a Lisp package.
4246
4247** Changes in file-handling functions
4248
4249*** File-access primitive functions no longer discard an extra redundant
4250directory name from the beginning of the file name. In other words,
4251they no longer do anything special with // or /~. That conversion
4252is now done only in substitute-in-file-name.
4253
4254This makes it possible for a Lisp program to open a file whose name
4255begins with ~.
4256
4257*** If copy-file is unable to set the date of the output file,
4258it now signals an error with the condition file-date-error.
4259
4260*** The inode number returned by file-attributes may be an integer (if
4261the number fits in a Lisp integer) or a list of integers.
4262
4263*** insert-file-contents can now read from a special file,
4264as long as the arguments VISIT and REPLACE are nil.
4265
4266*** The RAWFILE arg to find-file-noselect, if non-nil, now suppresses
4267character code conversion as well as other things.
4268
4269Meanwhile, this feature does work with remote file names
4270(formerly it did not).
4271
4272*** Lisp packages which create temporary files should use the TMPDIR
4273environment variable to decide which directory to put them in.
4274
4275*** interpreter-mode-alist elements now specify regexps
4276instead of constant strings.
4277
4278*** expand-file-name no longer treats `//' or `/~' specially. It used
4279to delete all the text of a file name up through the first slash of
4280any `//' or `/~' sequence. Now it passes them straight through.
4281
4282substitute-in-file-name continues to treat those sequences specially,
4283in the same way as before.
4284
4285*** The variable `format-alist' is more general now.
4286The FROM-FN and TO-FN in a format definition can now be strings
4287which specify shell commands to use as filters to perform conversion.
4288
4289*** The new function access-file tries to open a file, and signals an
4290error if that fails. If the open succeeds, access-file does nothing
4291else, and returns nil.
4292
4293*** The function insert-directory now signals an error if the specified
4294directory cannot be listed.
4295
4296** Changes in minibuffer input
4297
4298*** The functions read-buffer, read-variable, read-command, read-string
4299read-file-name, read-from-minibuffer and completing-read now take an
4300additional argument which specifies the default value. If this
4301argument is non-nil, it should be a string; that string is used in two
4302ways:
4303
4304 It is returned if the user enters empty input.
4305 It is available through the history command M-n.
4306
4307*** The functions read-string, read-from-minibuffer,
4308read-no-blanks-input and completing-read now take an additional
4309argument INHERIT-INPUT-METHOD. If this is non-nil, then the
4310minibuffer inherits the current input method and the setting of
4311enable-multibyte-characters from the previously current buffer.
4312
4313In an interactive spec, you can use M instead of s to read an
4314argument in this way.
4315
4316*** All minibuffer input functions discard text properties
4317from the text you enter in the minibuffer, unless the variable
4318minibuffer-allow-text-properties is non-nil.
4319
4320** Echo area features
4321
4322*** Clearing the echo area now runs the normal hook
4323echo-area-clear-hook. Note that the echo area can be used while the
4324minibuffer is active; in that case, the minibuffer is still active
4325after the echo area is cleared.
4326
4327*** The function current-message returns the message currently displayed
4328in the echo area, or nil if there is none.
4329
4330** Keyboard input features
4331
4332*** tty-erase-char is a new variable that reports which character was
4333set up as the terminal's erase character when time Emacs was started.
4334
4335*** num-nonmacro-input-events is the total number of input events
4336received so far from the terminal. It does not count those generated
4337by keyboard macros.
4338
4339** Frame-related changes
4340
4341*** make-frame runs the normal hook before-make-frame-hook just before
4342creating a frame, and just after creating a frame it runs the abnormal
4343hook after-make-frame-functions with the new frame as arg.
4344
4345*** The new hook window-configuration-change-hook is now run every time
4346the window configuration has changed. The frame whose configuration
4347has changed is the selected frame when the hook is run.
4348
4349*** Each frame now independently records the order for recently
4350selected buffers, in its buffer-list frame parameter, so that the
4351value of other-buffer is now based on the buffers recently displayed
4352in the selected frame.
4353
4354*** The value of the frame parameter vertical-scroll-bars
4355is now `left', `right' or nil. A non-nil value specifies
4356which side of the window to put the scroll bars on.
4357
4358** X Windows features
4359
4360*** You can examine X resources for other applications by binding
4361x-resource-class around a call to x-get-resource. The usual value of
4362x-resource-class is "Emacs", which is the correct value for Emacs.
4363
4364*** In menus, checkboxes and radio buttons now actually work.
4365The menu displays the current status of the box or button.
4366
4367*** The function x-list-fonts now takes an optional fourth argument
4368MAXIMUM which sets a limit on how many matching fonts to return.
4369A smaller value of MAXIMUM makes the function faster.
4370
4371If the only question is whether *any* font matches the pattern,
4372it is good to supply 1 for this argument.
4373
4374** Subprocess features
4375
4376*** A reminder: it is no longer necessary for subprocess filter
4377functions and sentinels to do save-match-data, because Emacs does this
4378automatically.
4379
4380*** The new function shell-command-to-string executes a shell command
4381and returns the output from the command as a string.
4382
4383*** The new function process-contact returns t for a child process,
4384and (HOSTNAME SERVICE) for a net connection.
4385
4386** An error in running pre-command-hook or post-command-hook
4387does clear the variable to nil. The documentation was wrong before.
4388
4389** In define-key-after, if AFTER is t, the new binding now always goes
4390at the end of the keymap. If the keymap is a menu, this means it
4391goes after the other menu items.
4392
4393** If you have a program that makes several changes in the same area
4394of the buffer, you can use the macro combine-after-change-calls
4395around that Lisp code to make it faster when after-change hooks
4396are in use.
4397
4398The macro arranges to call the after-change functions just once for a
4399series of several changes--if that seems safe.
4400
4401Don't alter the variables after-change-functions and
4402after-change-function within the body of a combine-after-change-calls
4403form.
4404
4405** If you define an abbrev (with define-abbrev) whose EXPANSION
4406is not a string, then the abbrev does not expand in the usual sense,
4407but its hook is still run.
4408
4409** Normally, the Lisp debugger is not used (even if you have enabled it)
4410for errors that are handled by condition-case.
4411
4412If you set debug-on-signal to a non-nil value, then the debugger is called
4413regardless of whether there is a handler for the condition. This is
4414useful for debugging problems that happen inside of a condition-case.
4415
4416This mode of operation seems to be unreliable in other ways. Errors that
4417are normal and ought to be handled, perhaps in timers or process
4418filters, will instead invoke the debugger. So don't say you weren't
4419warned.
4420
4421** The new variable ring-bell-function lets you specify your own
4422way for Emacs to "ring the bell".
4423
4424** If run-at-time's TIME argument is t, the action is repeated at
4425integral multiples of REPEAT from the epoch; this is useful for
4426functions like display-time.
4427
4428** You can use the function locate-library to find the precise file
4429name of a Lisp library. This isn't new, but wasn't documented before.
4430
4431** Commands for entering view mode have new optional arguments that
4432can be used from Lisp. Low-level entrance to and exit from view mode
4433is done by functions view-mode-enter and view-mode-exit.
4434
4435** batch-byte-compile-file now makes Emacs return a nonzero status code
4436if there is an error in compilation.
4437
4438** pop-to-buffer, switch-to-buffer-other-window and
4439switch-to-buffer-other-frame now accept an additional optional
4440argument NORECORD, much like switch-to-buffer. If it is non-nil,
4441they don't put the buffer at the front of the buffer list.
4442
4443** If your .emacs file leaves the *scratch* buffer non-empty,
4444Emacs does not display the startup message, so as to avoid changing
4445the *scratch* buffer.
4446
4447** The new function regexp-opt returns an efficient regexp to match a string.
4448The arguments are STRINGS and (optionally) PAREN. This function can be used
4449where regexp matching or searching is intensively used and speed is important,
4450e.g., in Font Lock mode.
4451
4452** The variable buffer-display-count is local to each buffer,
4453and is incremented each time the buffer is displayed in a window.
4454It starts at 0 when the buffer is created.
4455
4456** The new function compose-mail starts composing a mail message
4457using the user's chosen mail composition agent (specified with the
4458variable mail-user-agent). It has variants compose-mail-other-window
4459and compose-mail-other-frame.
4460
4461** The `user-full-name' function now takes an optional parameter which
4462can either be a number (the UID) or a string (the login name). The
4463full name of the specified user will be returned.
4464
4465** Lisp packages that load files of customizations, or any other sort
4466of user profile, should obey the variable init-file-user in deciding
4467where to find it. They should load the profile of the user name found
4468in that variable. If init-file-user is nil, meaning that the -q
4469option was used, then Lisp packages should not load the customization
4470files at all.
4471
4472** format-time-string now allows you to specify the field width
4473and type of padding. This works as in printf: you write the field
4474width as digits in the middle of a %-construct. If you start
4475the field width with 0, it means to pad with zeros.
4476
4477For example, %S normally specifies the number of seconds since the
4478minute; %03S means to pad this with zeros to 3 positions, %_3S to pad
4479with spaces to 3 positions. Plain %3S pads with zeros, because that
4480is how %S normally pads to two positions.
4481
4482** thing-at-point now supports a new kind of "thing": url.
4483
4484** imenu.el changes.
4485
4486You can now specify a function to be run when selecting an
4487item from menu created by imenu.
4488
4489An example of using this feature: if we define imenu items for the
4490#include directives in a C file, we can open the included file when we
4491select one of those items.
4492
4493
4494----------------------------------------------------------------------
4495Copyright information:
4496
4497Copyright (C) 1999, 2000, 2006
4498 Free Software Foundation, Inc.
4499
4500 Permission is granted to anyone to make or distribute verbatim copies
4501 of this document as received, in any medium, provided that the
4502 copyright notice and this permission notice are preserved,
4503 thus giving the recipient permission to redistribute in turn.
4504
4505 Permission is granted to distribute modified versions
4506 of this document, or of portions of it,
4507 under the above conditions, provided also that they
4508 carry prominent notices stating who last changed them.
4509
4510Local variables:
4511mode: outline
4512paragraph-separate: "[ ]*$"
4513end:
diff --git a/etc/NEWS.21 b/etc/NEWS.21
new file mode 100644
index 00000000000..44462b3f827
--- /dev/null
+++ b/etc/NEWS.21
@@ -0,0 +1,4900 @@
1GNU Emacs NEWS -- history of user-visible changes. 2006-05-31
2Copyright (C) 2000, 2001, 2002, 2003, 2006
3 Free Software Foundation, Inc.
4See the end for copying conditions.
5
6This file is about changes in emacs version 21.
7
8
9
10* Emacs 21.4 is a bug-fix release with no user-visible changes.
11
12
13
14* Installation changes in Emacs 21.3
15
16** Support for GNU/Linux on little-endian MIPS and on IBM S390 has
17been added.
18
19
20* Changes in Emacs 21.3
21
22** The obsolete C mode (c-mode.el) has been removed to avoid problems
23with Custom.
24
25** UTF-16 coding systems are available, encoding the same characters
26as mule-utf-8.
27
28** There is a new language environment for UTF-8 (set up automatically
29in UTF-8 locales).
30
31** Translation tables are available between equivalent characters in
32different Emacs charsets -- for instance `e with acute' coming from the
33Latin-1 and Latin-2 charsets. User options `unify-8859-on-encoding-mode'
34and `unify-8859-on-decoding-mode' respectively turn on translation
35between ISO 8859 character sets (`unification') on encoding
36(e.g. writing a file) and decoding (e.g. reading a file). Note that
37`unify-8859-on-encoding-mode' is useful and safe, but
38`unify-8859-on-decoding-mode' can cause text to change when you read
39it and write it out again without edits, so it is not generally advisable.
40By default `unify-8859-on-encoding-mode' is turned on.
41
42** In Emacs running on the X window system, the default value of
43`selection-coding-system' is now `compound-text-with-extensions'.
44
45If you want the old behavior, set selection-coding-system to
46compound-text, which may be significantly more efficient. Using
47compound-text-with-extensions seems to be necessary only for decoding
48text from applications under XFree86 4.2, whose behavior is actually
49contrary to the compound text specification.
50
51
52
53* Installation changes in Emacs 21.2
54
55** Support for BSD/OS 5.0 has been added.
56
57** Support for AIX 5.1 was added.
58
59
60* Changes in Emacs 21.2
61
62** Emacs now supports compound-text extended segments in X selections.
63
64X applications can use `extended segments' to encode characters in
65compound text that belong to character sets which are not part of the
66list of approved standard encodings for X, e.g. Big5. To paste
67selections with such characters into Emacs, use the new coding system
68compound-text-with-extensions as the value of selection-coding-system.
69
70** The default values of `tooltip-delay' and `tooltip-hide-delay'
71were changed.
72
73** On terminals whose erase-char is ^H (Backspace), Emacs
74now uses normal-erase-is-backspace-mode.
75
76** When the *scratch* buffer is recreated, its mode is set from
77initial-major-mode, which normally is lisp-interaction-mode,
78instead of using default-major-mode.
79
80** The new option `Info-scroll-prefer-subnodes' causes Info to behave
81like the stand-alone Info reader (from the GNU Texinfo package) as far
82as motion between nodes and their subnodes is concerned. If it is t
83(the default), Emacs behaves as before when you type SPC in a menu: it
84visits the subnode pointed to by the first menu entry. If this option
85is nil, SPC scrolls to the end of the current node, and only then goes
86to the first menu item, like the stand-alone reader does.
87
88This change was already in Emacs 21.1, but wasn't advertised in the
89NEWS.
90
91
92* Lisp Changes in Emacs 21.2
93
94** The meanings of scroll-up-aggressively and scroll-down-aggressively
95have been interchanged, so that the former now controls scrolling up,
96and the latter now controls scrolling down.
97
98** The variable `compilation-parse-errors-filename-function' can
99be used to transform filenames found in compilation output.
100
101
102
103* Installation Changes in Emacs 21.1
104
105See the INSTALL file for information on installing extra libraries and
106fonts to take advantage of the new graphical features and extra
107charsets in this release.
108
109** Support for GNU/Linux on IA64 machines has been added.
110
111** Support for LynxOS has been added.
112
113** There are new configure options associated with the support for
114images and toolkit scrollbars. Use the --help option in `configure'
115to list them.
116
117** You can build a 64-bit Emacs for SPARC/Solaris systems which
118support 64-bit executables and also on Irix 6.5. This increases the
119maximum buffer size. See etc/MACHINES for instructions. Changes to
120build on other 64-bit systems should be straightforward modulo any
121necessary changes to unexec.
122
123** There is a new configure option `--disable-largefile' to omit
124Unix-98-style support for large files if that is available.
125
126** There is a new configure option `--without-xim' that instructs
127Emacs to not use X Input Methods (XIM), if these are available.
128
129** `movemail' defaults to supporting POP. You can turn this off using
130the --without-pop configure option, should that be necessary.
131
132** This version can be built for the Macintosh, but does not implement
133all of the new display features described below. The port currently
134lacks unexec, asynchronous processes, and networking support. See the
135"Emacs and the Mac OS" appendix in the Emacs manual, for the
136description of aspects specific to the Mac.
137
138** Note that the MS-Windows port does not yet implement various of the
139new display features described below.
140
141
142* Changes in Emacs 21.1
143
144** Emacs has a new redisplay engine.
145
146The new redisplay handles characters of variable width and height.
147Italic text can be used without redisplay problems. Fonts containing
148oversized characters, i.e. characters larger than the logical height
149of a font can be used. Images of various formats can be displayed in
150the text.
151
152** Emacs has a new face implementation.
153
154The new faces no longer fundamentally use X font names to specify the
155font. Instead, each face has several independent attributes--family,
156height, width, weight and slant--that it may or may not specify.
157These attributes can be merged from various faces, and then together
158specify a font.
159
160Faces are supported on terminals that can display color or fonts.
161These terminal capabilities are auto-detected. Details can be found
162under Lisp changes, below.
163
164** Emacs can display faces on TTY frames.
165
166Emacs automatically detects terminals that are able to display colors.
167Faces with a weight greater than normal are displayed extra-bright, if
168the terminal supports it. Faces with a weight less than normal and
169italic faces are displayed dimmed, if the terminal supports it.
170Underlined faces are displayed underlined if possible. Other face
171attributes such as `overline', `strike-through', and `box' are ignored
172on terminals.
173
174The command-line options `-fg COLOR', `-bg COLOR', and `-rv' are now
175supported on character terminals.
176
177Emacs automatically remaps all X-style color specifications to one of
178the colors supported by the terminal. This means you could have the
179same color customizations that work both on a windowed display and on
180a TTY or when Emacs is invoked with the -nw option.
181
182** New default font is Courier 12pt under X.
183
184** Sound support
185
186Emacs supports playing sound files on GNU/Linux and FreeBSD (Voxware
187driver and native BSD driver, a.k.a. Luigi's driver). Currently
188supported file formats are RIFF-WAVE (*.wav) and Sun Audio (*.au).
189You must configure Emacs with the option `--with-sound=yes' to enable
190sound support.
191
192** Emacs now resizes mini-windows if appropriate.
193
194If a message is longer than one line, or minibuffer contents are
195longer than one line, Emacs can resize the minibuffer window unless it
196is on a frame of its own. You can control resizing and the maximum
197minibuffer window size by setting the following variables:
198
199- User option: max-mini-window-height
200
201Maximum height for resizing mini-windows. If a float, it specifies a
202fraction of the mini-window frame's height. If an integer, it
203specifies a number of lines.
204
205Default is 0.25.
206
207- User option: resize-mini-windows
208
209How to resize mini-windows. If nil, don't resize. If t, always
210resize to fit the size of the text. If `grow-only', let mini-windows
211grow only, until they become empty, at which point they are shrunk
212again.
213
214Default is `grow-only'.
215
216** LessTif support.
217
218Emacs now runs with the LessTif toolkit (see
219<http://www.lesstif.org>). You will need version 0.92.26, or later.
220
221** LessTif/Motif file selection dialog.
222
223When Emacs is configured to use LessTif or Motif, reading a file name
224from a menu will pop up a file selection dialog if `use-dialog-box' is
225non-nil.
226
227** File selection dialog on MS-Windows is supported.
228
229When a file is visited by clicking File->Open, the MS-Windows version
230now pops up a standard file selection dialog where you can select a
231file to visit. File->Save As also pops up that dialog.
232
233** Toolkit scroll bars.
234
235Emacs now uses toolkit scroll bars if available. When configured for
236LessTif/Motif, it will use that toolkit's scroll bar. Otherwise, when
237configured for Lucid and Athena widgets, it will use the Xaw3d scroll
238bar if Xaw3d is available. You can turn off the use of toolkit scroll
239bars by specifying `--with-toolkit-scroll-bars=no' when configuring
240Emacs.
241
242When you encounter problems with the Xaw3d scroll bar, watch out how
243Xaw3d is compiled on your system. If the Makefile generated from
244Xaw3d's Imakefile contains a `-DNARROWPROTO' compiler option, and your
245Emacs system configuration file `s/your-system.h' does not contain a
246define for NARROWPROTO, you might consider adding it. Take
247`s/freebsd.h' as an example.
248
249Alternatively, if you don't have access to the Xaw3d source code, take
250a look at your system's imake configuration file, for example in the
251directory `/usr/X11R6/lib/X11/config' (paths are different on
252different systems). You will find files `*.cf' there. If your
253system's cf-file contains a line like `#define NeedWidePrototypes NO',
254add a `#define NARROWPROTO' to your Emacs system configuration file.
255
256The reason for this is that one Xaw3d function uses `double' or
257`float' function parameters depending on the setting of NARROWPROTO.
258This is not a problem when Imakefiles are used because each system's
259imake configuration file contains the necessary information. Since
260Emacs doesn't use imake, this has do be done manually.
261
262** Tool bar support.
263
264Emacs supports a tool bar at the top of a frame under X. For details
265of how to define a tool bar, see the page describing Lisp-level
266changes. Tool-bar global minor mode controls whether or not it is
267displayed and is on by default. The appearance of the bar is improved
268if Emacs has been built with XPM image support. Otherwise monochrome
269icons will be used.
270
271To make the tool bar more useful, we need contributions of extra icons
272for specific modes (with copyright assignments).
273
274** Tooltips.
275
276Tooltips are small X windows displaying a help string at the current
277mouse position. The Lisp package `tooltip' implements them. You can
278turn them off via the user option `tooltip-mode'.
279
280Tooltips also provides support for GUD debugging. If activated,
281variable values can be displayed in tooltips by pointing at them with
282the mouse in source buffers. You can customize various aspects of the
283tooltip display in the group `tooltip'.
284
285** Automatic Hscrolling
286
287Horizontal scrolling now happens automatically if
288`automatic-hscrolling' is set (the default). This setting can be
289customized.
290
291If a window is scrolled horizontally with set-window-hscroll, or
292scroll-left/scroll-right (C-x <, C-x >), this serves as a lower bound
293for automatic horizontal scrolling. Automatic scrolling will scroll
294the text more to the left if necessary, but won't scroll the text more
295to the right than the column set with set-window-hscroll etc.
296
297** When using a windowing terminal, each Emacs window now has a cursor
298of its own. By default, when a window is selected, the cursor is
299solid; otherwise, it is hollow. The user-option
300`cursor-in-non-selected-windows' controls how to display the
301cursor in non-selected windows. If nil, no cursor is shown, if
302non-nil a hollow box cursor is shown.
303
304** Fringes to the left and right of windows are used to display
305truncation marks, continuation marks, overlay arrows and alike. The
306foreground, background, and stipple of these areas can be changed by
307customizing face `fringe'.
308
309** The mode line under X is now drawn with shadows by default.
310You can change its appearance by modifying the face `mode-line'.
311In particular, setting the `:box' attribute to nil turns off the 3D
312appearance of the mode line. (The 3D appearance makes the mode line
313occupy more space, and thus might cause the first or the last line of
314the window to be partially obscured.)
315
316The variable `mode-line-inverse-video', which was used in older
317versions of emacs to make the mode-line stand out, is now deprecated.
318However, setting it to nil will cause the `mode-line' face to be
319ignored, and mode-lines to be drawn using the default text face.
320
321** Mouse-sensitive mode line.
322
323Different parts of the mode line have been made mouse-sensitive on all
324systems which support the mouse. Moving the mouse to a
325mouse-sensitive part in the mode line changes the appearance of the
326mouse pointer to an arrow, and help about available mouse actions is
327displayed either in the echo area, or in the tooltip window if you
328have enabled one.
329
330Currently, the following actions have been defined:
331
332- Mouse-1 on the buffer name in the mode line goes to the next buffer.
333
334- Mouse-3 on the buffer-name goes to the previous buffer.
335
336- Mouse-2 on the read-only or modified status in the mode line (`%' or
337`*') toggles the status.
338
339- Mouse-3 on the major mode name displays a major mode menu.
340
341- Mouse-3 on the mode name displays a minor-mode menu.
342
343** Hourglass pointer
344
345Emacs can optionally display an hourglass pointer under X. You can
346turn the display on or off by customizing group `cursor'.
347
348** Blinking cursor
349
350M-x blink-cursor-mode toggles a blinking cursor under X and on
351terminals having terminal capabilities `vi', `vs', and `ve'. Blinking
352and related parameters like frequency and delay can be customized in
353the group `cursor'.
354
355** New font-lock support mode `jit-lock-mode'.
356
357This support mode is roughly equivalent to `lazy-lock' but is
358generally faster. It supports stealth and deferred fontification.
359See the documentation of the function `jit-lock-mode' for more
360details.
361
362Font-lock uses jit-lock-mode as default support mode, so you don't
363have to do anything to activate it.
364
365** The default binding of the Delete key has changed.
366
367The new user-option `normal-erase-is-backspace' can be set to
368determine the effect of the Delete and Backspace function keys.
369
370On window systems, the default value of this option is chosen
371according to the keyboard used. If the keyboard has both a Backspace
372key and a Delete key, and both are mapped to their usual meanings, the
373option's default value is set to t, so that Backspace can be used to
374delete backward, and Delete can be used to delete forward. On
375keyboards which either have only one key (usually labeled DEL), or two
376keys DEL and BS which produce the same effect, the option's value is
377set to nil, and these keys delete backward.
378
379If not running under a window system, setting this option accomplishes
380a similar effect by mapping C-h, which is usually generated by the
381Backspace key, to DEL, and by mapping DEL to C-d via
382`keyboard-translate'. The former functionality of C-h is available on
383the F1 key. You should probably not use this setting on a text-only
384terminal if you don't have both Backspace, Delete and F1 keys.
385
386Programmatically, you can call function normal-erase-is-backspace-mode
387to toggle the behavior of the Delete and Backspace keys.
388
389** The default for user-option `next-line-add-newlines' has been
390changed to nil, i.e. C-n will no longer add newlines at the end of a
391buffer by default.
392
393** The <home> and <end> keys now move to the beginning or end of the
394current line, respectively. C-<home> and C-<end> move to the
395beginning and end of the buffer.
396
397** Emacs now checks for recursive loads of Lisp files. If the
398recursion depth exceeds `recursive-load-depth-limit', an error is
399signaled.
400
401** When an error is signaled during the loading of the user's init
402file, Emacs now pops up the *Messages* buffer.
403
404** Emacs now refuses to load compiled Lisp files which weren't
405compiled with Emacs. Set `load-dangerous-libraries' to t to change
406this behavior.
407
408The reason for this change is an incompatible change in XEmacs's byte
409compiler. Files compiled with XEmacs can contain byte codes that let
410Emacs dump core.
411
412** Toggle buttons and radio buttons in menus.
413
414When compiled with LessTif (or Motif) support, Emacs uses toolkit
415widgets for radio and toggle buttons in menus. When configured for
416Lucid, Emacs draws radio buttons and toggle buttons similar to Motif.
417
418** The menu bar configuration has changed. The new configuration is
419more CUA-compliant. The most significant change is that Options is
420now a separate menu-bar item, with Mule and Customize as its submenus.
421
422** Item Save Options on the Options menu allows saving options set
423using that menu.
424
425** Highlighting of trailing whitespace.
426
427When `show-trailing-whitespace' is non-nil, Emacs displays trailing
428whitespace in the face `trailing-whitespace'. Trailing whitespace is
429defined as spaces or tabs at the end of a line. To avoid busy
430highlighting when entering new text, trailing whitespace is not
431displayed if point is at the end of the line containing the
432whitespace.
433
434** C-x 5 1 runs the new command delete-other-frames which deletes
435all frames except the selected one.
436
437** The new user-option `confirm-kill-emacs' can be customized to
438let Emacs ask for confirmation before exiting.
439
440** The header line in an Info buffer is now displayed as an emacs
441header-line (which is like a mode-line, but at the top of the window),
442so that it remains visible even when the buffer has been scrolled.
443This behavior may be disabled by customizing the option
444`Info-use-header-line'.
445
446** Polish, Czech, German, and French translations of Emacs' reference card
447have been added. They are named `pl-refcard.tex', `cs-refcard.tex',
448`de-refcard.tex' and `fr-refcard.tex'. Postscript files are included.
449
450** An `Emacs Survival Guide', etc/survival.tex, is available.
451
452** A reference card for Dired has been added. Its name is
453`dired-ref.tex'. A French translation is available in
454`fr-drdref.tex'.
455
456** C-down-mouse-3 is bound differently. Now if the menu bar is not
457displayed it pops up a menu containing the items which would be on the
458menu bar. If the menu bar is displayed, it pops up the major mode
459menu or the Edit menu if there is no major mode menu.
460
461** Variable `load-path' is no longer customizable through Customize.
462
463You can no longer use `M-x customize-variable' to customize `load-path'
464because it now contains a version-dependent component. You can still
465use `add-to-list' and `setq' to customize this variable in your
466`~/.emacs' init file or to modify it from any Lisp program in general.
467
468** C-u C-x = provides detailed information about the character at
469point in a pop-up window.
470
471** Emacs can now support 'wheeled' mice (such as the MS IntelliMouse)
472under XFree86. To enable this, use the `mouse-wheel-mode' command, or
473customize the variable `mouse-wheel-mode'.
474
475The variables `mouse-wheel-follow-mouse' and `mouse-wheel-scroll-amount'
476determine where and by how much buffers are scrolled.
477
478** Emacs' auto-save list files are now by default stored in a
479sub-directory `.emacs.d/auto-save-list/' of the user's home directory.
480(On MS-DOS, this subdirectory's name is `_emacs.d/auto-save.list/'.)
481You can customize `auto-save-list-file-prefix' to change this location.
482
483** The function `getenv' is now callable interactively.
484
485** The new user-option `even-window-heights' can be set to nil
486to prevent `display-buffer' from evening out window heights.
487
488** The new command M-x delete-trailing-whitespace RET will delete the
489trailing whitespace within the current restriction. You can also add
490this function to `write-file-hooks' or `local-write-file-hooks'.
491
492** When visiting a file with M-x find-file-literally, no newlines will
493be added to the end of the buffer even if `require-final-newline' is
494non-nil.
495
496** The new user-option `find-file-suppress-same-file-warnings' can be
497set to suppress warnings ``X and Y are the same file'' when visiting a
498file that is already visited under a different name.
499
500** The new user-option `electric-help-shrink-window' can be set to
501nil to prevent adjusting the help window size to the buffer size.
502
503** New command M-x describe-character-set reads a character set name
504and displays information about that.
505
506** The new variable `auto-mode-interpreter-regexp' contains a regular
507expression matching interpreters, for file mode determination.
508
509This regular expression is matched against the first line of a file to
510determine the file's mode in `set-auto-mode' when Emacs can't deduce a
511mode from the file's name. If it matches, the file is assumed to be
512interpreted by the interpreter matched by the second group of the
513regular expression. The mode is then determined as the mode
514associated with that interpreter in `interpreter-mode-alist'.
515
516** New function executable-make-buffer-file-executable-if-script-p is
517suitable as an after-save-hook as an alternative to `executable-chmod'.
518
519** The most preferred coding-system is now used to save a buffer if
520buffer-file-coding-system is `undecided' and it is safe for the buffer
521contents. (The most preferred is set by set-language-environment or
522by M-x prefer-coding-system.) Thus if you visit an ASCII file and
523insert a non-ASCII character from your current language environment,
524the file will be saved silently with the appropriate coding.
525Previously you would be prompted for a safe coding system.
526
527** The many obsolete language `setup-...-environment' commands have
528been removed -- use `set-language-environment'.
529
530** The new Custom option `keyboard-coding-system' specifies a coding
531system for keyboard input.
532
533** New variable `inhibit-iso-escape-detection' determines if Emacs'
534coding system detection algorithm should pay attention to ISO2022's
535escape sequences. If this variable is non-nil, the algorithm ignores
536such escape sequences. The default value is nil, and it is
537recommended not to change it except for the special case that you
538always want to read any escape code verbatim. If you just want to
539read a specific file without decoding escape codes, use C-x RET c
540(`universal-coding-system-argument'). For instance, C-x RET c latin-1
541RET C-x C-f filename RET.
542
543** Variable `default-korean-keyboard' is initialized properly from the
544environment variable `HANGUL_KEYBOARD_TYPE'.
545
546** New command M-x list-charset-chars reads a character set name and
547displays all characters in that character set.
548
549** M-x set-terminal-coding-system (C-x RET t) now allows CCL-based
550coding systems such as cpXXX and cyrillic-koi8.
551
552** Emacs now attempts to determine the initial language environment
553and preferred and locale coding systems systematically from the
554LC_ALL, LC_CTYPE, and LANG environment variables during startup.
555
556** New language environments `Polish', `Latin-8' and `Latin-9'.
557Latin-8 and Latin-9 correspond respectively to the ISO character sets
5588859-14 (Celtic) and 8859-15 (updated Latin-1, with the Euro sign).
559GNU Intlfonts doesn't support these yet but recent X releases have
5608859-15. See etc/INSTALL for information on obtaining extra fonts.
561There are new Leim input methods for Latin-8 and Latin-9 prefix (only)
562and Polish `slash'.
563
564** New language environments `Dutch' and `Spanish'.
565These new environments mainly select appropriate translations
566of the tutorial.
567
568** In Ethiopic language environment, special key bindings for
569function keys are changed as follows. This is to conform to "Emacs
570Lisp Coding Convention".
571
572 new command old-binding
573 --- ------- -----------
574 f3 ethio-fidel-to-sera-buffer f5
575 S-f3 ethio-fidel-to-sera-region f5
576 C-f3 ethio-fidel-to-sera-mail-or-marker f5
577
578 f4 ethio-sera-to-fidel-buffer unchanged
579 S-f4 ethio-sera-to-fidel-region unchanged
580 C-f4 ethio-sera-to-fidel-mail-or-marker unchanged
581
582 S-f5 ethio-toggle-punctuation f3
583 S-f6 ethio-modify-vowel f6
584 S-f7 ethio-replace-space f7
585 S-f8 ethio-input-special-character f8
586 S-f9 ethio-replace-space unchanged
587 C-f9 ethio-toggle-space f2
588
589** There are new Leim input methods.
590New input methods "turkish-postfix", "turkish-alt-postfix",
591"greek-mizuochi", "TeX", and "greek-babel" are now part of the Leim
592package.
593
594** The rule of input method "slovak" is slightly changed. Now the
595rules for translating "q" and "Q" to "`" (backquote) are deleted, thus
596typing them inserts "q" and "Q" respectively. Rules for translating
597"=q", "+q", "=Q", and "+Q" to "`" are also deleted. Now, to input
598"`", you must type "=q".
599
600** When your terminal can't display characters from some of the ISO
6018859 character sets but can display Latin-1, you can display
602more-or-less mnemonic sequences of ASCII/Latin-1 characters instead of
603empty boxes (under a window system) or question marks (not under a
604window system). Customize the option `latin1-display' to turn this
605on.
606
607** M-; now calls comment-dwim which tries to do something clever based
608on the context. M-x kill-comment is now an alias to comment-kill,
609defined in newcomment.el. You can choose different styles of region
610commenting with the variable `comment-style'.
611
612** New user options `display-time-mail-face' and
613`display-time-use-mail-icon' control the appearance of mode-line mail
614indicator used by the display-time package. On a suitable display the
615indicator can be an icon and is mouse-sensitive.
616
617** On window-systems, additional space can be put between text lines
618on the display using several methods
619
620- By setting frame parameter `line-spacing' to PIXELS. PIXELS must be
621a positive integer, and specifies that PIXELS number of pixels should
622be put below text lines on the affected frame or frames.
623
624- By setting X resource `lineSpacing', class `LineSpacing'. This is
625equivalent to specifying the frame parameter.
626
627- By specifying `--line-spacing=N' or `-lsp N' on the command line.
628
629- By setting buffer-local variable `line-spacing'. The meaning is
630the same, but applies to the a particular buffer only.
631
632** The new command `clone-indirect-buffer' can be used to create
633an indirect buffer that is a twin copy of the current buffer. The
634command `clone-indirect-buffer-other-window', bound to C-x 4 c,
635does the same but displays the indirect buffer in another window.
636
637** New user options `backup-directory-alist' and
638`make-backup-file-name-function' control the placement of backups,
639typically in a single directory or in an invisible sub-directory.
640
641** New commands iso-iso2sgml and iso-sgml2iso convert between Latin-1
642characters and the corresponding SGML (HTML) entities.
643
644** New X resources recognized
645
646*** The X resource `synchronous', class `Synchronous', specifies
647whether Emacs should run in synchronous mode. Synchronous mode
648is useful for debugging X problems.
649
650Example:
651
652 emacs.synchronous: true
653
654*** The X resource `visualClass, class `VisualClass', specifies the
655visual Emacs should use. The resource's value should be a string of
656the form `CLASS-DEPTH', where CLASS is the name of the visual class,
657and DEPTH is the requested color depth as a decimal number. Valid
658visual class names are
659
660 TrueColor
661 PseudoColor
662 DirectColor
663 StaticColor
664 GrayScale
665 StaticGray
666
667Visual class names specified as X resource are case-insensitive, i.e.
668`pseudocolor', `Pseudocolor' and `PseudoColor' all have the same
669meaning.
670
671The program `xdpyinfo' can be used to list the visual classes
672supported on your display, and which depths they have. If
673`visualClass' is not specified, Emacs uses the display's default
674visual.
675
676Example:
677
678 emacs.visualClass: TrueColor-8
679
680*** The X resource `privateColormap', class `PrivateColormap',
681specifies that Emacs should use a private colormap if it is using the
682default visual, and that visual is of class PseudoColor. Recognized
683resource values are `true' or `on'.
684
685Example:
686
687 emacs.privateColormap: true
688
689** Faces and frame parameters.
690
691There are four new faces `scroll-bar', `border', `cursor' and `mouse'.
692Setting the frame parameters `scroll-bar-foreground' and
693`scroll-bar-background' sets foreground and background color of face
694`scroll-bar' and vice versa. Setting frame parameter `border-color'
695sets the background color of face `border' and vice versa. Likewise
696for frame parameters `cursor-color' and face `cursor', and frame
697parameter `mouse-color' and face `mouse'.
698
699Changing frame parameter `font' sets font-related attributes of the
700`default' face and vice versa. Setting frame parameters
701`foreground-color' or `background-color' sets the colors of the
702`default' face and vice versa.
703
704** New face `menu'.
705
706The face `menu' can be used to change colors and font of Emacs' menus.
707
708** New frame parameter `screen-gamma' for gamma correction.
709
710The new frame parameter `screen-gamma' specifies gamma-correction for
711colors. Its value may be nil, the default, in which case no gamma
712correction occurs, or a number > 0, usually a float, that specifies
713the screen gamma of a frame's display.
714
715PC monitors usually have a screen gamma of 2.2. smaller values result
716in darker colors. You might want to try a screen gamma of 1.5 for LCD
717color displays. The viewing gamma Emacs uses is 0.4545. (1/2.2).
718
719The X resource name of this parameter is `screenGamma', class
720`ScreenGamma'.
721
722** Tabs and variable-width text.
723
724Tabs are now displayed with stretch properties; the width of a tab is
725defined as a multiple of the normal character width of a frame, and is
726independent of the fonts used in the text where the tab appears.
727Thus, tabs can be used to line up text in different fonts.
728
729** Enhancements of the Lucid menu bar
730
731*** The Lucid menu bar now supports the resource "margin".
732
733 emacs.pane.menubar.margin: 5
734
735The default margin is 4 which makes the menu bar appear like the
736LessTif/Motif one.
737
738*** Arrows that indicate sub-menus are now drawn with shadows, as in
739LessTif and Motif.
740
741** A block cursor can be drawn as wide as the glyph under it under X.
742
743As an example: if a block cursor is over a tab character, it will be
744drawn as wide as that tab on the display. To do this, set
745`x-stretch-cursor' to a non-nil value.
746
747** Empty display lines at the end of a buffer may be marked with a
748bitmap (this is similar to the tilde displayed by vi and Less).
749
750This behavior is activated by setting the buffer-local variable
751`indicate-empty-lines' to a non-nil value. The default value of this
752variable is found in `default-indicate-empty-lines'.
753
754** There is a new "aggressive" scrolling method.
755
756When scrolling up because point is above the window start, if the
757value of the buffer-local variable `scroll-up-aggressively' is a
758number, Emacs chooses a new window start so that point ends up that
759fraction of the window's height from the top of the window.
760
761When scrolling down because point is below the window end, if the
762value of the buffer-local variable `scroll-down-aggressively' is a
763number, Emacs chooses a new window start so that point ends up that
764fraction of the window's height from the bottom of the window.
765
766** You can now easily create new *Info* buffers using either
767M-x clone-buffer, C-u m <entry> RET or C-u g <entry> RET.
768M-x clone-buffer can also be used on *Help* and several other special
769buffers.
770
771** The command `Info-search' now uses a search history.
772
773** Listing buffers with M-x list-buffers (C-x C-b) now shows
774abbreviated file names. Abbreviations can be customized by changing
775`directory-abbrev-alist'.
776
777** A new variable, backup-by-copying-when-privileged-mismatch, gives
778the highest file uid for which backup-by-copying-when-mismatch will be
779forced on. The assumption is that uids less than or equal to this
780value are special uids (root, bin, daemon, etc.--not real system
781users) and that files owned by these users should not change ownership,
782even if your system policy allows users other than root to edit them.
783
784The default is 200; set the variable to nil to disable the feature.
785
786** The rectangle commands now avoid inserting undesirable spaces,
787notably at the end of lines.
788
789All these functions have been rewritten to avoid inserting unwanted
790spaces, and an optional prefix now allows them to behave the old way.
791
792** The function `replace-rectangle' is an alias for `string-rectangle'.
793
794** The new command M-x string-insert-rectangle is like `string-rectangle',
795but inserts text instead of replacing it.
796
797** The new command M-x query-replace-regexp-eval acts like
798query-replace-regexp, but takes a Lisp expression which is evaluated
799after each match to get the replacement text.
800
801** M-x query-replace recognizes a new command `e' (or `E') that lets
802you edit the replacement string.
803
804** The new command mail-abbrev-complete-alias, bound to `M-TAB'
805(if you load the library `mailabbrev'), lets you complete mail aliases
806in the text, analogous to lisp-complete-symbol.
807
808** The variable `echo-keystrokes' may now have a floating point value.
809
810** If your init file is compiled (.emacs.elc), `user-init-file' is set
811to the source name (.emacs.el), if that exists, after loading it.
812
813** The help string specified for a menu-item whose definition contains
814the property `:help HELP' is now displayed under X, on MS-Windows, and
815MS-DOS, either in the echo area or with tooltips. Many standard menus
816displayed by Emacs now have help strings.
817
818--
819** New user option `read-mail-command' specifies a command to use to
820read mail from the menu etc.
821
822** The environment variable `EMACSLOCKDIR' is no longer used on MS-Windows.
823This environment variable was used when creating lock files. Emacs on
824MS-Windows does not use this variable anymore. This change was made
825before Emacs 21.1, but wasn't documented until now.
826
827** Highlighting of mouse-sensitive regions is now supported in the
828MS-DOS version of Emacs.
829
830** The new command `msdos-set-mouse-buttons' forces the MS-DOS version
831of Emacs to behave as if the mouse had a specified number of buttons.
832This comes handy with mice that don't report their number of buttons
833correctly. One example is the wheeled mice, which report 3 buttons,
834but clicks on the middle button are not passed to the MS-DOS version
835of Emacs.
836
837** Customize changes
838
839*** Customize now supports comments about customized items. Use the
840`State' menu to add comments, or give a prefix argument to
841M-x customize-set-variable or M-x customize-set-value. Note that
842customization comments will cause the customizations to fail in
843earlier versions of Emacs.
844
845*** The new option `custom-buffer-done-function' says whether to kill
846Custom buffers when you've done with them or just bury them (the
847default).
848
849*** If Emacs was invoked with the `-q' or `--no-init-file' options, it
850does not allow you to save customizations in your `~/.emacs' init
851file. This is because saving customizations from such a session would
852wipe out all the other customizationss you might have on your init
853file.
854
855** If Emacs was invoked with the `-q' or `--no-init-file' options, it
856does not save disabled and enabled commands for future sessions, to
857avoid overwriting existing customizations of this kind that are
858already in your init file.
859
860** New features in evaluation commands
861
862*** The commands to evaluate Lisp expressions, such as C-M-x in Lisp
863modes, C-j in Lisp Interaction mode, and M-:, now bind the variables
864print-level, print-length, and debug-on-error based on the new
865customizable variables eval-expression-print-level,
866eval-expression-print-length, and eval-expression-debug-on-error.
867
868The default values for the first two of these variables are 12 and 4
869respectively, which means that `eval-expression' now prints at most
870the first 12 members of a list and at most 4 nesting levels deep (if
871the list is longer or deeper than that, an ellipsis `...' is
872printed).
873
874<RET> or <mouse-2> on the printed text toggles between an abbreviated
875printed representation and an unabbreviated one.
876
877The default value of eval-expression-debug-on-error is t, so any error
878during evaluation produces a backtrace.
879
880*** The function `eval-defun' (C-M-x) now loads Edebug and instruments
881code when called with a prefix argument.
882
883** CC mode changes.
884
885Note: This release contains changes that might not be compatible with
886current user setups (although it's believed that these
887incompatibilities will only show in very uncommon circumstances).
888However, since the impact is uncertain, these changes may be rolled
889back depending on user feedback. Therefore there's no forward
890compatibility guarantee wrt the new features introduced in this
891release.
892
893*** The hardcoded switch to "java" style in Java mode is gone.
894CC Mode used to automatically set the style to "java" when Java mode
895is entered. This has now been removed since it caused too much
896confusion.
897
898However, to keep backward compatibility to a certain extent, the
899default value for c-default-style now specifies the "java" style for
900java-mode, but "gnu" for all other modes (as before). So you won't
901notice the change if you haven't touched that variable.
902
903*** New cleanups, space-before-funcall and compact-empty-funcall.
904Two new cleanups have been added to c-cleanup-list:
905
906space-before-funcall causes a space to be inserted before the opening
907parenthesis of a function call, which gives the style "foo (bar)".
908
909compact-empty-funcall causes any space before a function call opening
910parenthesis to be removed if there are no arguments to the function.
911It's typically useful together with space-before-funcall to get the
912style "foo (bar)" and "foo()".
913
914*** Some keywords now automatically trigger reindentation.
915Keywords like "else", "while", "catch" and "finally" have been made
916"electric" to make them reindent automatically when they continue an
917earlier statement. An example:
918
919for (i = 0; i < 17; i++)
920 if (a[i])
921 res += a[i]->offset;
922else
923
924Here, the "else" should be indented like the preceding "if", since it
925continues that statement. CC Mode will automatically reindent it after
926the "else" has been typed in full, since it's not until then it's
927possible to decide whether it's a new statement or a continuation of
928the preceding "if".
929
930CC Mode uses Abbrev mode to achieve this, which is therefore turned on
931by default.
932
933*** M-a and M-e now moves by sentence in multiline strings.
934Previously these two keys only moved by sentence in comments, which
935meant that sentence movement didn't work in strings containing
936documentation or other natural language text.
937
938The reason it's only activated in multiline strings (i.e. strings that
939contain a newline, even when escaped by a '\') is to avoid stopping in
940the short strings that often reside inside statements. Multiline
941strings almost always contain text in a natural language, as opposed
942to other strings that typically contain format specifications,
943commands, etc. Also, it's not that bothersome that M-a and M-e misses
944sentences in single line strings, since they're short anyway.
945
946*** Support for autodoc comments in Pike mode.
947Autodoc comments for Pike are used to extract documentation from the
948source, like Javadoc in Java. Pike mode now recognize this markup in
949comment prefixes and paragraph starts.
950
951*** The comment prefix regexps on c-comment-prefix may be mode specific.
952When c-comment-prefix is an association list, it specifies the comment
953line prefix on a per-mode basis, like c-default-style does. This
954change came about to support the special autodoc comment prefix in
955Pike mode only.
956
957*** Better handling of syntactic errors.
958The recovery after unbalanced parens earlier in the buffer has been
959improved; CC Mode now reports them by dinging and giving a message
960stating the offending line, but still recovers and indent the
961following lines in a sane way (most of the time). An "else" with no
962matching "if" is handled similarly. If an error is discovered while
963indenting a region, the whole region is still indented and the error
964is reported afterwards.
965
966*** Lineup functions may now return absolute columns.
967A lineup function can give an absolute column to indent the line to by
968returning a vector with the desired column as the first element.
969
970*** More robust and warning-free byte compilation.
971Although this is strictly not a user visible change (well, depending
972on the view of a user), it's still worth mentioning that CC Mode now
973can be compiled in the standard ways without causing trouble. Some
974code have also been moved between the subpackages to enhance the
975modularity somewhat. Thanks to Martin Buchholz for doing the
976groundwork.
977
978*** c-style-variables-are-local-p now defaults to t.
979This is an incompatible change that has been made to make the behavior
980of the style system wrt global variable settings less confusing for
981non-advanced users. If you know what this variable does you might
982want to set it to nil in your .emacs, otherwise you probably don't
983have to bother.
984
985Defaulting c-style-variables-are-local-p to t avoids the confusing
986situation that occurs when a user sets some style variables globally
987and edits both a Java and a non-Java file in the same Emacs session.
988If the style variables aren't buffer local in this case, loading of
989the second file will cause the default style (either "gnu" or "java"
990by default) to override the global settings made by the user.
991
992*** New initialization procedure for the style system.
993When the initial style for a buffer is determined by CC Mode (from the
994variable c-default-style), the global values of style variables now
995take precedence over the values specified by the chosen style. This
996is different than the old behavior: previously, the style-specific
997settings would override the global settings. This change makes it
998possible to do simple configuration in the intuitive way with
999Customize or with setq lines in one's .emacs file.
1000
1001By default, the global value of every style variable is the new
1002special symbol set-from-style, which causes the value to be taken from
1003the style system. This means that in effect, only an explicit setting
1004of a style variable will cause the "overriding" behavior described
1005above.
1006
1007Also note that global settings override style-specific settings *only*
1008when the initial style of a buffer is chosen by a CC Mode major mode
1009function. When a style is chosen in other ways --- for example, by a
1010call like (c-set-style "gnu") in a hook, or via M-x c-set-style ---
1011then the style-specific values take precedence over any global style
1012values. In Lisp terms, global values override style-specific values
1013only when the new second argument to c-set-style is non-nil; see the
1014function documentation for more info.
1015
1016The purpose of these changes is to make it easier for users,
1017especially novice users, to do simple customizations with Customize or
1018with setq in their .emacs files. On the other hand, the new system is
1019intended to be compatible with advanced users' customizations as well,
1020such as those that choose styles in hooks or whatnot. This new system
1021is believed to be almost entirely compatible with current
1022configurations, in spite of the changed precedence between style and
1023global variable settings when a buffer's default style is set.
1024
1025(Thanks to Eric Eide for clarifying this explanation a bit.)
1026
1027**** c-offsets-alist is now a customizable variable.
1028This became possible as a result of the new initialization behavior.
1029
1030This variable is treated slightly differently from the other style
1031variables; instead of using the symbol set-from-style, it will be
1032completed with the syntactic symbols it doesn't already contain when
1033the style is first initialized. This means it now defaults to the
1034empty list to make all syntactic elements get their values from the
1035style system.
1036
1037**** Compatibility variable to restore the old behavior.
1038In case your configuration doesn't work with this change, you can set
1039c-old-style-variable-behavior to non-nil to get the old behavior back
1040as far as possible.
1041
1042*** Improvements to line breaking and text filling.
1043CC Mode now handles this more intelligently and seamlessly wrt the
1044surrounding code, especially inside comments. For details see the new
1045chapter about this in the manual.
1046
1047**** New variable to recognize comment line prefix decorations.
1048The variable c-comment-prefix-regexp has been added to properly
1049recognize the line prefix in both block and line comments. It's
1050primarily used to initialize the various paragraph recognition and
1051adaptive filling variables that the text handling functions uses.
1052
1053**** New variable c-block-comment-prefix.
1054This is a generalization of the now obsolete variable
1055c-comment-continuation-stars to handle arbitrary strings.
1056
1057**** CC Mode now uses adaptive fill mode.
1058This to make it adapt better to the paragraph style inside comments.
1059
1060It's also possible to use other adaptive filling packages inside CC
1061Mode, notably Kyle E. Jones' Filladapt mode (http://wonderworks.com/).
1062A new convenience function c-setup-filladapt sets up Filladapt for use
1063inside CC Mode.
1064
1065Note though that the 2.12 version of Filladapt lacks a feature that
1066causes it to work suboptimally when c-comment-prefix-regexp can match
1067the empty string (which it commonly does). A patch for that is
1068available from the CC Mode web site (http://www.python.org/emacs/
1069cc-mode/).
1070
1071**** The variables `c-hanging-comment-starter-p' and
1072`c-hanging-comment-ender-p', which controlled how comment starters and
1073enders were filled, are not used anymore. The new version of the
1074function `c-fill-paragraph' keeps the comment starters and enders as
1075they were before the filling.
1076
1077**** It's now possible to selectively turn off auto filling.
1078The variable c-ignore-auto-fill is used to ignore auto fill mode in
1079specific contexts, e.g. in preprocessor directives and in string
1080literals.
1081
1082**** New context sensitive line break function c-context-line-break.
1083It works like newline-and-indent in normal code, and adapts the line
1084prefix according to the comment style when used inside comments. If
1085you're normally using newline-and-indent, you might want to switch to
1086this function.
1087
1088*** Fixes to IDL mode.
1089It now does a better job in recognizing only the constructs relevant
1090to IDL. E.g. it no longer matches "class" as the beginning of a
1091struct block, but it does match the CORBA 2.3 "valuetype" keyword.
1092Thanks to Eric Eide.
1093
1094*** Improvements to the Whitesmith style.
1095It now keeps the style consistently on all levels and both when
1096opening braces hangs and when they don't.
1097
1098**** New lineup function c-lineup-whitesmith-in-block.
1099
1100*** New lineup functions c-lineup-template-args and c-indent-multi-line-block.
1101See their docstrings for details. c-lineup-template-args does a
1102better job of tracking the brackets used as parens in C++ templates,
1103and is used by default to line up continued template arguments.
1104
1105*** c-lineup-comment now preserves alignment with a comment on the
1106previous line. It used to instead preserve comments that started in
1107the column specified by comment-column.
1108
1109*** c-lineup-C-comments handles "free form" text comments.
1110In comments with a long delimiter line at the start, the indentation
1111is kept unchanged for lines that start with an empty comment line
1112prefix. This is intended for the type of large block comments that
1113contain documentation with its own formatting. In these you normally
1114don't want CC Mode to change the indentation.
1115
1116*** The `c' syntactic symbol is now relative to the comment start
1117instead of the previous line, to make integers usable as lineup
1118arguments.
1119
1120*** All lineup functions have gotten docstrings.
1121
1122*** More preprocessor directive movement functions.
1123c-down-conditional does the reverse of c-up-conditional.
1124c-up-conditional-with-else and c-down-conditional-with-else are
1125variants of these that also stops at "#else" lines (suggested by Don
1126Provan).
1127
1128*** Minor improvements to many movement functions in tricky situations.
1129
1130** Dired changes
1131
1132*** New variable `dired-recursive-deletes' determines if the delete
1133command will delete non-empty directories recursively. The default
1134is, delete only empty directories.
1135
1136*** New variable `dired-recursive-copies' determines if the copy
1137command will copy directories recursively. The default is, do not
1138copy directories recursively.
1139
1140*** In command `dired-do-shell-command' (usually bound to `!') a `?'
1141in the shell command has a special meaning similar to `*', but with
1142the difference that the command will be run on each file individually.
1143
1144*** The new command `dired-find-alternate-file' (usually bound to `a')
1145replaces the Dired buffer with the buffer for an alternate file or
1146directory.
1147
1148*** The new command `dired-show-file-type' (usually bound to `y') shows
1149a message in the echo area describing what type of file the point is on.
1150This command invokes the external program `file' do its work, and so
1151will only work on systems with that program, and will be only as
1152accurate or inaccurate as it is.
1153
1154*** Dired now properly handles undo changes of adding/removing `-R'
1155from ls switches.
1156
1157*** Dired commands that prompt for a destination file now allow the use
1158of the `M-n' command in the minibuffer to insert the source filename,
1159which the user can then edit. This only works if there is a single
1160source file, not when operating on multiple marked files.
1161
1162** Gnus changes.
1163
1164The Gnus NEWS entries are short, but they reflect sweeping changes in
1165four areas: Article display treatment, MIME treatment,
1166internationalization and mail-fetching.
1167
1168*** The mail-fetching functions have changed. See the manual for the
1169many details. In particular, all procmail fetching variables are gone.
1170
1171If you used procmail like in
1172
1173(setq nnmail-use-procmail t)
1174(setq nnmail-spool-file 'procmail)
1175(setq nnmail-procmail-directory "~/mail/incoming/")
1176(setq nnmail-procmail-suffix "\\.in")
1177
1178this now has changed to
1179
1180(setq mail-sources
1181 '((directory :path "~/mail/incoming/"
1182 :suffix ".in")))
1183
1184More information is available in the info doc at Select Methods ->
1185Getting Mail -> Mail Sources
1186
1187*** Gnus is now a MIME-capable reader. This affects many parts of
1188Gnus, and adds a slew of new commands. See the manual for details.
1189Separate MIME packages like RMIME, mime-compose etc., will probably no
1190longer work; remove them and use the native facilities.
1191
1192The FLIM/SEMI package still works with Emacs 21, but if you want to
1193use the native facilities, you must remove any mailcap.el[c] that was
1194installed by FLIM/SEMI version 1.13 or earlier.
1195
1196*** Gnus has also been multilingualized. This also affects too many
1197parts of Gnus to summarize here, and adds many new variables. There
1198are built-in facilities equivalent to those of gnus-mule.el, which is
1199now just a compatibility layer.
1200
1201*** gnus-mule.el is now just a compatibility layer over the built-in
1202Gnus facilities.
1203
1204*** gnus-auto-select-first can now be a function to be
1205called to position point.
1206
1207*** The user can now decide which extra headers should be included in
1208summary buffers and NOV files.
1209
1210*** `gnus-article-display-hook' has been removed. Instead, a number
1211of variables starting with `gnus-treat-' have been added.
1212
1213*** The Gnus posting styles have been redone again and now work in a
1214subtly different manner.
1215
1216*** New web-based backends have been added: nnslashdot, nnwarchive
1217and nnultimate. nnweb has been revamped, again, to keep up with
1218ever-changing layouts.
1219
1220*** Gnus can now read IMAP mail via nnimap.
1221
1222*** There is image support of various kinds and some sound support.
1223
1224** Changes in Texinfo mode.
1225
1226*** A couple of new key bindings have been added for inserting Texinfo
1227macros
1228
1229 Key binding Macro
1230 -------------------------
1231 C-c C-c C-s @strong
1232 C-c C-c C-e @emph
1233 C-c C-c u @uref
1234 C-c C-c q @quotation
1235 C-c C-c m @email
1236 C-c C-o @<block> ... @end <block>
1237 M-RET @item
1238
1239*** The " key now inserts either " or `` or '' depending on context.
1240
1241** Changes in Outline mode.
1242
1243There is now support for Imenu to index headings. A new command
1244`outline-headers-as-kill' copies the visible headings in the region to
1245the kill ring, e.g. to produce a table of contents.
1246
1247** Changes to Emacs Server
1248
1249*** The new option `server-kill-new-buffers' specifies what to do
1250with buffers when done with them. If non-nil, the default, buffers
1251are killed, unless they were already present before visiting them with
1252Emacs Server. If nil, `server-temp-file-regexp' specifies which
1253buffers to kill, as before.
1254
1255Please note that only buffers are killed that still have a client,
1256i.e. buffers visited with `emacsclient --no-wait' are never killed in
1257this way.
1258
1259** Both emacsclient and Emacs itself now accept command line options
1260of the form +LINE:COLUMN in addition to +LINE.
1261
1262** Changes to Show Paren mode.
1263
1264*** Overlays used by Show Paren mode now use a priority property.
1265The new user option show-paren-priority specifies the priority to
1266use. Default is 1000.
1267
1268** New command M-x check-parens can be used to find unbalanced paren
1269groups and strings in buffers in Lisp mode (or other modes).
1270
1271** Changes to hideshow.el
1272
1273*** Generalized block selection and traversal
1274
1275A block is now recognized by its start and end regexps (both strings),
1276and an integer specifying which sub-expression in the start regexp
1277serves as the place where a `forward-sexp'-like function can operate.
1278See the documentation of variable `hs-special-modes-alist'.
1279
1280*** During incremental search, if Hideshow minor mode is active,
1281hidden blocks are temporarily shown. The variable `hs-headline' can
1282be used in the mode line format to show the line at the beginning of
1283the open block.
1284
1285*** User option `hs-hide-all-non-comment-function' specifies a
1286function to be called at each top-level block beginning, instead of
1287the normal block-hiding function.
1288
1289*** The command `hs-show-region' has been removed.
1290
1291*** The key bindings have changed to fit the Emacs conventions,
1292roughly imitating those of Outline minor mode. Notably, the prefix
1293for all bindings is now `C-c @'. For details, see the documentation
1294for `hs-minor-mode'.
1295
1296*** The variable `hs-show-hidden-short-form' has been removed, and
1297hideshow.el now always behaves as if this variable were set to t.
1298
1299** Changes to Change Log mode and Add-Log functions
1300
1301*** If you invoke `add-change-log-entry' from a backup file, it makes
1302an entry appropriate for the file's parent. This is useful for making
1303log entries by comparing a version with deleted functions.
1304
1305**** New command M-x change-log-merge merges another log into the
1306current buffer.
1307
1308*** New command M-x change-log-redate fixes any old-style date entries
1309in a log file.
1310
1311*** Change Log mode now adds a file's version number to change log
1312entries if user-option `change-log-version-info-enabled' is non-nil.
1313Unless the file is under version control the search for a file's
1314version number is performed based on regular expressions from
1315`change-log-version-number-regexp-list' which can be customized.
1316Version numbers are only found in the first 10 percent of a file.
1317
1318*** Change Log mode now defines its own faces for font-lock highlighting.
1319
1320** Changes to cmuscheme
1321
1322*** The user-option `scheme-program-name' has been renamed
1323`cmuscheme-program-name' due to conflicts with xscheme.el.
1324
1325** Changes in Font Lock
1326
1327*** The new function `font-lock-remove-keywords' can be used to remove
1328font-lock keywords from the current buffer or from a specific major mode.
1329
1330*** Multi-line patterns are now supported. Modes using this, should
1331set font-lock-multiline to t in their font-lock-defaults.
1332
1333*** `font-lock-syntactic-face-function' allows major-modes to choose
1334the face used for each string/comment.
1335
1336*** A new standard face `font-lock-doc-face'.
1337Meant for Lisp docstrings, Javadoc comments and other "documentation in code".
1338
1339** Changes to Shell mode
1340
1341*** The `shell' command now accepts an optional argument to specify the buffer
1342to use, which defaults to "*shell*". When used interactively, a
1343non-default buffer may be specified by giving the `shell' command a
1344prefix argument (causing it to prompt for the buffer name).
1345
1346** Comint (subshell) changes
1347
1348These changes generally affect all modes derived from comint mode, which
1349include shell-mode, gdb-mode, scheme-interaction-mode, etc.
1350
1351*** Comint now by default interprets some carriage-control characters.
1352Comint now removes CRs from CR LF sequences, and treats single CRs and
1353BSs in the output in a way similar to a terminal (by deleting to the
1354beginning of the line, or deleting the previous character,
1355respectively). This is achieved by adding `comint-carriage-motion' to
1356the `comint-output-filter-functions' hook by default.
1357
1358*** By default, comint no longer uses the variable `comint-prompt-regexp'
1359to distinguish prompts from user-input. Instead, it notices which
1360parts of the text were output by the process, and which entered by the
1361user, and attaches `field' properties to allow emacs commands to use
1362this information. Common movement commands, notably beginning-of-line,
1363respect field boundaries in a fairly natural manner. To disable this
1364feature, and use the old behavior, customize the user option
1365`comint-use-prompt-regexp-instead-of-fields'.
1366
1367*** Comint now includes new features to send commands to running processes
1368and redirect the output to a designated buffer or buffers.
1369
1370*** The command M-x comint-redirect-send-command reads a command and
1371buffer name from the mini-buffer. The command is sent to the current
1372buffer's process, and its output is inserted into the specified buffer.
1373
1374The command M-x comint-redirect-send-command-to-process acts like
1375M-x comint-redirect-send-command but additionally reads the name of
1376the buffer whose process should be used from the mini-buffer.
1377
1378*** Packages based on comint now highlight user input and program prompts,
1379and support choosing previous input with mouse-2. To control these features,
1380see the user-options `comint-highlight-input' and `comint-highlight-prompt'.
1381
1382*** The new command `comint-write-output' (usually bound to `C-c C-s')
1383saves the output from the most recent command to a file. With a prefix
1384argument, it appends to the file.
1385
1386*** The command `comint-kill-output' has been renamed `comint-delete-output'
1387(usually bound to `C-c C-o'); the old name is aliased to it for
1388compatibility.
1389
1390*** The new function `comint-add-to-input-history' adds commands to the input
1391ring (history).
1392
1393*** The new variable `comint-input-history-ignore' is a regexp for
1394identifying history lines that should be ignored, like tcsh time-stamp
1395strings, starting with a `#'. The default value of this variable is "^#".
1396
1397** Changes to Rmail mode
1398
1399*** The new user-option rmail-user-mail-address-regexp can be
1400set to fine tune the identification of the correspondent when
1401receiving new mail. If it matches the address of the sender, the
1402recipient is taken as correspondent of a mail. If nil, the default,
1403`user-login-name' and `user-mail-address' are used to exclude yourself
1404as correspondent.
1405
1406Usually you don't have to set this variable, except if you collect
1407mails sent by you under different user names. Then it should be a
1408regexp matching your mail addresses.
1409
1410*** The new user-option rmail-confirm-expunge controls whether and how
1411to ask for confirmation before expunging deleted messages from an
1412Rmail file. You can choose between no confirmation, confirmation
1413with y-or-n-p, or confirmation with yes-or-no-p. Default is to ask
1414for confirmation with yes-or-no-p.
1415
1416*** RET is now bound in the Rmail summary to rmail-summary-goto-msg,
1417like `j'.
1418
1419*** There is a new user option `rmail-digest-end-regexps' that
1420specifies the regular expressions to detect the line that ends a
1421digest message.
1422
1423*** The new user option `rmail-automatic-folder-directives' specifies
1424in which folder to put messages automatically.
1425
1426*** The new function `rmail-redecode-body' allows to fix a message
1427with non-ASCII characters if Emacs happens to decode it incorrectly
1428due to missing or malformed "charset=" header.
1429
1430** The new user-option `mail-envelope-from' can be used to specify
1431an envelope-from address different from user-mail-address.
1432
1433** The variable mail-specify-envelope-from controls whether to
1434use the -f option when sending mail.
1435
1436** The Rmail command `o' (`rmail-output-to-rmail-file') now writes the
1437current message in the internal `emacs-mule' encoding, rather than in
1438the encoding taken from the variable `buffer-file-coding-system'.
1439This allows to save messages whose characters cannot be safely encoded
1440by the buffer's coding system, and makes sure the message will be
1441displayed correctly when you later visit the target Rmail file.
1442
1443If you want your Rmail files be encoded in a specific coding system
1444other than `emacs-mule', you can customize the variable
1445`rmail-file-coding-system' to set its value to that coding system.
1446
1447** Changes to TeX mode
1448
1449*** The default mode has been changed from `plain-tex-mode' to
1450`latex-mode'.
1451
1452*** latex-mode now has a simple indentation algorithm.
1453
1454*** M-f and M-p jump around \begin...\end pairs.
1455
1456*** Added support for outline-minor-mode.
1457
1458** Changes to RefTeX mode
1459
1460*** RefTeX has new support for index generation. Index entries can be
1461 created with `C-c <', with completion available on index keys.
1462 Pressing `C-c /' indexes the word at the cursor with a default
1463 macro. `C-c >' compiles all index entries into an alphabetically
1464 sorted *Index* buffer which looks like the final index. Entries
1465 can be edited from that buffer.
1466
1467*** Label and citation key selection now allow to select several
1468 items and reference them together (use `m' to mark items, `a' or
1469 `A' to use all marked entries).
1470
1471*** reftex.el has been split into a number of smaller files to reduce
1472 memory use when only a part of RefTeX is being used.
1473
1474*** a new command `reftex-view-crossref-from-bibtex' (bound to `C-c &'
1475 in BibTeX-mode) can be called in a BibTeX database buffer in order
1476 to show locations in LaTeX documents where a particular entry has
1477 been cited.
1478
1479** Emacs Lisp mode now allows multiple levels of outline headings.
1480The level of a heading is determined from the number of leading
1481semicolons in a heading line. Toplevel forms starting with a `('
1482in column 1 are always made leaves.
1483
1484** The M-x time-stamp command (most commonly used on write-file-hooks)
1485has the following new features:
1486
1487*** The patterns for finding the time stamp and for updating a pattern
1488may match text spanning multiple lines. For example, some people like
1489to have the filename and date on separate lines. The new variable
1490time-stamp-inserts-lines controls the matching for multi-line patterns.
1491
1492*** More than one time stamp can be updated in the same file. This
1493feature is useful if you need separate time stamps in a program source
1494file to both include in formatted documentation and insert in the
1495compiled binary. The same time-stamp will be written at each matching
1496pattern. The variable time-stamp-count enables this new feature; it
1497defaults to 1.
1498
1499** Partial Completion mode now completes environment variables in
1500file names.
1501
1502** Ispell changes
1503
1504*** The command `ispell' now spell-checks a region if
1505transient-mark-mode is on, and the mark is active. Otherwise it
1506spell-checks the current buffer.
1507
1508*** Support for synchronous subprocesses - DOS/Windoze - has been
1509added.
1510
1511*** An "alignment error" bug was fixed when a manual spelling
1512correction is made and re-checked.
1513
1514*** Italian, Portuguese, and Slovak dictionary definitions have been added.
1515
1516*** Region skipping performance has been vastly improved in some
1517cases.
1518
1519*** Spell checking HTML buffers has been improved and isn't so strict
1520on syntax errors.
1521
1522*** The buffer-local words are now always placed on a new line at the
1523end of the buffer.
1524
1525*** Spell checking now works in the MS-DOS version of Emacs.
1526
1527*** The variable `ispell-format-word' has been renamed to
1528`ispell-format-word-function'. The old name is still available as
1529alias.
1530
1531** Makefile mode changes
1532
1533*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
1534
1535*** Conditionals and include statements are now highlighted when
1536Fontlock mode is active.
1537
1538** Isearch changes
1539
1540*** Isearch now puts a call to `isearch-resume' in the command history,
1541so that searches can be resumed.
1542
1543*** In Isearch mode, C-M-s and C-M-r are now bound like C-s and C-r,
1544respectively, i.e. you can repeat a regexp isearch with the same keys
1545that started the search.
1546
1547*** In Isearch mode, mouse-2 in the echo area now yanks the current
1548selection into the search string rather than giving an error.
1549
1550*** There is a new lazy highlighting feature in incremental search.
1551
1552Lazy highlighting is switched on/off by customizing variable
1553`isearch-lazy-highlight'. When active, all matches for the current
1554search string are highlighted. The current match is highlighted as
1555before using face `isearch' or `region'. All other matches are
1556highlighted using face `isearch-lazy-highlight-face' which defaults to
1557`secondary-selection'.
1558
1559The extra highlighting makes it easier to anticipate where the cursor
1560will end up each time you press C-s or C-r to repeat a pending search.
1561Highlighting of these additional matches happens in a deferred fashion
1562using "idle timers," so the cycles needed do not rob isearch of its
1563usual snappy response.
1564
1565If `isearch-lazy-highlight-cleanup' is set to t, highlights for
1566matches are automatically cleared when you end the search. If it is
1567set to nil, you can remove the highlights manually with `M-x
1568isearch-lazy-highlight-cleanup'.
1569
1570** VC Changes
1571
1572VC has been overhauled internally. It is now modular, making it
1573easier to plug-in arbitrary version control backends. (See Lisp
1574Changes for details on the new structure.) As a result, the mechanism
1575to enable and disable support for particular version systems has
1576changed: everything is now controlled by the new variable
1577`vc-handled-backends'. Its value is a list of symbols that identify
1578version systems; the default is '(RCS CVS SCCS). When finding a file,
1579each of the backends in that list is tried in order to see whether the
1580file is registered in that backend.
1581
1582When registering a new file, VC first tries each of the listed
1583backends to see if any of them considers itself "responsible" for the
1584directory of the file (e.g. because a corresponding subdirectory for
1585master files exists). If none of the backends is responsible, then
1586the first backend in the list that could register the file is chosen.
1587As a consequence, the variable `vc-default-back-end' is now obsolete.
1588
1589The old variable `vc-master-templates' is also obsolete, although VC
1590still supports it for backward compatibility. To define templates for
1591RCS or SCCS, you should rather use the new variables
1592vc-{rcs,sccs}-master-templates. (There is no such feature under CVS
1593where it doesn't make sense.)
1594
1595The variables `vc-ignore-vc-files' and `vc-handle-cvs' are also
1596obsolete now, you must set `vc-handled-backends' to nil or exclude
1597`CVS' from the list, respectively, to achieve their effect now.
1598
1599*** General Changes
1600
1601The variable `vc-checkout-carefully' is obsolete: the corresponding
1602checks are always done now.
1603
1604VC Dired buffers are now kept up-to-date during all version control
1605operations.
1606
1607`vc-diff' output is now displayed in `diff-mode'.
1608`vc-print-log' uses `log-view-mode'.
1609`vc-log-mode' (used for *VC-Log*) has been replaced by `log-edit-mode'.
1610
1611The command C-x v m (vc-merge) now accepts an empty argument as the
1612first revision number. This means that any recent changes on the
1613current branch should be picked up from the repository and merged into
1614the working file (``merge news'').
1615
1616The commands C-x v s (vc-create-snapshot) and C-x v r
1617(vc-retrieve-snapshot) now ask for a directory name from which to work
1618downwards.
1619
1620*** Multiple Backends
1621
1622VC now lets you register files in more than one backend. This is
1623useful, for example, if you are working with a slow remote CVS
1624repository. You can then use RCS for local editing, and occasionally
1625commit your changes back to CVS, or pick up changes from CVS into your
1626local RCS archives.
1627
1628To make this work, the ``more local'' backend (RCS in our example)
1629should come first in `vc-handled-backends', and the ``more remote''
1630backend (CVS) should come later. (The default value of
1631`vc-handled-backends' already has it that way.)
1632
1633You can then commit changes to another backend (say, RCS), by typing
1634C-u C-x v v RCS RET (i.e. vc-next-action now accepts a backend name as
1635a revision number). VC registers the file in the more local backend
1636if that hasn't already happened, and commits to a branch based on the
1637current revision number from the more remote backend.
1638
1639If a file is registered in multiple backends, you can switch to
1640another one using C-x v b (vc-switch-backend). This does not change
1641any files, it only changes VC's perspective on the file. Use this to
1642pick up changes from CVS while working under RCS locally.
1643
1644After you are done with your local RCS editing, you can commit your
1645changes back to CVS using C-u C-x v v CVS RET. In this case, the
1646local RCS archive is removed after the commit, and the log entry
1647buffer is initialized to contain the entire RCS change log of the file.
1648
1649*** Changes for CVS
1650
1651There is a new user option, `vc-cvs-stay-local'. If it is `t' (the
1652default), then VC avoids network queries for files registered in
1653remote repositories. The state of such files is then only determined
1654by heuristics and past information. `vc-cvs-stay-local' can also be a
1655regexp to match against repository hostnames; only files from hosts
1656that match it are treated locally. If the variable is nil, then VC
1657queries the repository just as often as it does for local files.
1658
1659If `vc-cvs-stay-local' is on, then VC also makes local backups of
1660repository versions. This means that ordinary diffs (C-x v =) and
1661revert operations (C-x v u) can be done completely locally, without
1662any repository interactions at all. The name of a local version
1663backup of FILE is FILE.~REV.~, where REV is the repository version
1664number. This format is similar to that used by C-x v ~
1665(vc-version-other-window), except for the trailing dot. As a matter
1666of fact, the two features can each use the files created by the other,
1667the only difference being that files with a trailing `.' are deleted
1668automatically after commit. (This feature doesn't work on MS-DOS,
1669since DOS disallows more than a single dot in the trunk of a file
1670name.)
1671
1672If `vc-cvs-stay-local' is on, and there have been changes in the
1673repository, VC notifies you about it when you actually try to commit.
1674If you want to check for updates from the repository without trying to
1675commit, you can either use C-x v m RET to perform an update on the
1676current file, or you can use C-x v r RET to get an update for an
1677entire directory tree.
1678
1679The new user option `vc-cvs-use-edit' indicates whether VC should call
1680"cvs edit" to make files writeable; it defaults to `t'. (This option
1681is only meaningful if the CVSREAD variable is set, or if files are
1682"watched" by other developers.)
1683
1684The commands C-x v s (vc-create-snapshot) and C-x v r
1685(vc-retrieve-snapshot) are now also implemented for CVS. If you give
1686an empty snapshot name to the latter, that performs a `cvs update',
1687starting at the given directory.
1688
1689*** Lisp Changes in VC
1690
1691VC has been restructured internally to make it modular. You can now
1692add support for arbitrary version control backends by writing a
1693library that provides a certain set of backend-specific functions, and
1694then telling VC to use that library. For example, to add support for
1695a version system named SYS, you write a library named vc-sys.el, which
1696provides a number of functions vc-sys-... (see commentary at the top
1697of vc.el for a detailed list of them). To make VC use that library,
1698you need to put it somewhere into Emacs' load path and add the symbol
1699`SYS' to the list `vc-handled-backends'.
1700
1701** The customizable EDT emulation package now supports the EDT
1702SUBS command and EDT scroll margins. It also works with more
1703terminal/keyboard configurations and it now works under XEmacs.
1704See etc/edt-user.doc for more information.
1705
1706** New modes and packages
1707
1708*** The new global minor mode `minibuffer-electric-default-mode'
1709automatically hides the `(default ...)' part of minibuffer prompts when
1710the default is not applicable.
1711
1712*** Artist is an Emacs lisp package that allows you to draw lines,
1713rectangles and ellipses by using your mouse and/or keyboard. The
1714shapes are made up with the ascii characters |, -, / and \.
1715
1716Features are:
1717
1718- Intersecting: When a `|' intersects with a `-', a `+' is
1719 drawn, like this: | \ /
1720 --+-- X
1721 | / \
1722
1723- Rubber-banding: When drawing lines you can interactively see the
1724 result while holding the mouse button down and moving the mouse. If
1725 your machine is not fast enough (a 386 is a bit too slow, but a
1726 pentium is well enough), you can turn this feature off. You will
1727 then see 1's and 2's which mark the 1st and 2nd endpoint of the line
1728 you are drawing.
1729
1730- Arrows: After having drawn a (straight) line or a (straight)
1731 poly-line, you can set arrows on the line-ends by typing < or >.
1732
1733- Flood-filling: You can fill any area with a certain character by
1734 flood-filling.
1735
1736- Cut copy and paste: You can cut, copy and paste rectangular
1737 regions. Artist also interfaces with the rect package (this can be
1738 turned off if it causes you any trouble) so anything you cut in
1739 artist can be yanked with C-x r y and vice versa.
1740
1741- Drawing with keys: Everything you can do with the mouse, you can
1742 also do without the mouse.
1743
1744- Aspect-ratio: You can set the variable artist-aspect-ratio to
1745 reflect the height-width ratio for the font you are using. Squares
1746 and circles are then drawn square/round. Note, that once your
1747 ascii-file is shown with font with a different height-width ratio,
1748 the squares won't be square and the circles won't be round.
1749
1750- Drawing operations: The following drawing operations are implemented:
1751
1752 lines straight-lines
1753 rectangles squares
1754 poly-lines straight poly-lines
1755 ellipses circles
1756 text (see-thru) text (overwrite)
1757 spray-can setting size for spraying
1758 vaporize line vaporize lines
1759 erase characters erase rectangles
1760
1761 Straight lines are lines that go horizontally, vertically or
1762 diagonally. Plain lines go in any direction. The operations in
1763 the right column are accessed by holding down the shift key while
1764 drawing.
1765
1766 It is possible to vaporize (erase) entire lines and connected lines
1767 (rectangles for example) as long as the lines being vaporized are
1768 straight and connected at their endpoints. Vaporizing is inspired
1769 by the drawrect package by Jari Aalto <jari.aalto@poboxes.com>.
1770
1771- Picture mode compatibility: Artist is picture mode compatible (this
1772 can be turned off).
1773
1774*** The new package Eshell is an operating system command shell
1775implemented entirely in Emacs Lisp. Use `M-x eshell' to invoke it.
1776It functions similarly to bash and zsh, and allows running of Lisp
1777functions and external commands using the same syntax. It supports
1778history lists, aliases, extended globbing, smart scrolling, etc. It
1779will work on any platform Emacs has been ported to. And since most of
1780the basic commands -- ls, rm, mv, cp, ln, du, cat, etc. -- have been
1781rewritten in Lisp, it offers an operating-system independent shell,
1782all within the scope of your Emacs process.
1783
1784*** The new package timeclock.el is a mode is for keeping track of time
1785intervals. You can use it for whatever purpose you like, but the
1786typical scenario is to keep track of how much time you spend working
1787on certain projects.
1788
1789*** The new package hi-lock.el provides commands to highlight matches
1790of interactively entered regexps. For example,
1791
1792 M-x highlight-regexp RET clearly RET RET
1793
1794will highlight all occurrences of `clearly' using a yellow background
1795face. New occurrences of `clearly' will be highlighted as they are
1796typed. `M-x unhighlight-regexp RET' will remove the highlighting.
1797Any existing face can be used for highlighting and a set of
1798appropriate faces is provided. The regexps can be written into the
1799current buffer in a form that will be recognized the next time the
1800corresponding file is read. There are commands to highlight matches
1801to phrases and to highlight entire lines containing a match.
1802
1803*** The new package zone.el plays games with Emacs' display when
1804Emacs is idle.
1805
1806*** The new package tildify.el allows to add hard spaces or other text
1807fragments in accordance with the current major mode.
1808
1809*** The new package xml.el provides a simple but generic XML
1810parser. It doesn't parse the DTDs however.
1811
1812*** The comment operations are now provided by the newcomment.el
1813package which allows different styles of comment-region and should
1814be more robust while offering the same functionality.
1815`comment-region' now doesn't always comment a-line-at-a-time, but only
1816comments the region, breaking the line at point if necessary.
1817
1818*** The Ebrowse package implements a C++ class browser and tags
1819facilities tailored for use with C++. It is documented in a
1820separate Texinfo file.
1821
1822*** The PCL-CVS package available by either running M-x cvs-examine or
1823by visiting a CVS administrative directory (with a prefix argument)
1824provides an alternative interface to VC-dired for CVS. It comes with
1825`log-view-mode' to view RCS and SCCS logs and `log-edit-mode' used to
1826enter check-in log messages.
1827
1828*** The new package called `woman' allows to browse Unix man pages
1829without invoking external programs.
1830
1831The command `M-x woman' formats manual pages entirely in Emacs Lisp
1832and then displays them, like `M-x manual-entry' does. Unlike
1833`manual-entry', `woman' does not invoke any external programs, so it
1834is useful on systems such as MS-DOS/MS-Windows where the `man' and
1835Groff or `troff' commands are not readily available.
1836
1837The command `M-x woman-find-file' asks for the file name of a man
1838page, then formats and displays it like `M-x woman' does.
1839
1840*** The new command M-x re-builder offers a convenient interface for
1841authoring regular expressions with immediate visual feedback.
1842
1843The buffer from which the command was called becomes the target for
1844the regexp editor popping up in a separate window. Matching text in
1845the target buffer is immediately color marked during the editing.
1846Each sub-expression of the regexp will show up in a different face so
1847even complex regexps can be edited and verified on target data in a
1848single step.
1849
1850On displays not supporting faces the matches instead blink like
1851matching parens to make them stand out. On such a setup you will
1852probably also want to use the sub-expression mode when the regexp
1853contains such to get feedback about their respective limits.
1854
1855*** glasses-mode is a minor mode that makes
1856unreadableIdentifiersLikeThis readable. It works as glasses, without
1857actually modifying content of a buffer.
1858
1859*** The package ebnf2ps translates an EBNF to a syntactic chart in
1860PostScript.
1861
1862Currently accepts ad-hoc EBNF, ISO EBNF and Bison/Yacc.
1863
1864The ad-hoc default EBNF syntax has the following elements:
1865
1866 ; comment (until end of line)
1867 A non-terminal
1868 "C" terminal
1869 ?C? special
1870 $A default non-terminal
1871 $"C" default terminal
1872 $?C? default special
1873 A = B. production (A is the header and B the body)
1874 C D sequence (C occurs before D)
1875 C | D alternative (C or D occurs)
1876 A - B exception (A excluding B, B without any non-terminal)
1877 n * A repetition (A repeats n (integer) times)
1878 (C) group (expression C is grouped together)
1879 [C] optional (C may or not occurs)
1880 C+ one or more occurrences of C
1881 {C}+ one or more occurrences of C
1882 {C}* zero or more occurrences of C
1883 {C} zero or more occurrences of C
1884 C / D equivalent to: C {D C}*
1885 {C || D}+ equivalent to: C {D C}*
1886 {C || D}* equivalent to: [C {D C}*]
1887 {C || D} equivalent to: [C {D C}*]
1888
1889Please, see ebnf2ps documentation for EBNF syntax and how to use it.
1890
1891*** The package align.el will align columns within a region, using M-x
1892align. Its mode-specific rules, based on regular expressions,
1893determine where the columns should be split. In C and C++, for
1894example, it will align variable names in declaration lists, or the
1895equal signs of assignments.
1896
1897*** `paragraph-indent-minor-mode' is a new minor mode supporting
1898paragraphs in the same style as `paragraph-indent-text-mode'.
1899
1900*** bs.el is a new package for buffer selection similar to
1901list-buffers or electric-buffer-list. Use M-x bs-show to display a
1902buffer menu with this package. See the Custom group `bs'.
1903
1904*** find-lisp.el is a package emulating the Unix find command in Lisp.
1905
1906*** calculator.el is a small calculator package that is intended to
1907replace desktop calculators such as xcalc and calc.exe. Actually, it
1908is not too small - it has more features than most desktop calculators,
1909and can be customized easily to get many more functions. It should
1910not be confused with "calc" which is a much bigger mathematical tool
1911which answers different needs.
1912
1913*** The minor modes cwarn-mode and global-cwarn-mode highlights
1914suspicious C and C++ constructions. Currently, assignments inside
1915expressions, semicolon following `if', `for' and `while' (except, of
1916course, after a `do .. while' statement), and C++ functions with
1917reference parameters are recognized. The modes require font-lock mode
1918to be enabled.
1919
1920*** smerge-mode.el provides `smerge-mode', a simple minor-mode for files
1921containing diff3-style conflict markers, such as generated by RCS.
1922
1923*** 5x5.el is a simple puzzle game.
1924
1925*** hl-line.el provides `hl-line-mode', a minor mode to highlight the
1926current line in the current buffer. It also provides
1927`global-hl-line-mode' to provide the same behavior in all buffers.
1928
1929*** ansi-color.el translates ANSI terminal escapes into text-properties.
1930
1931Please note: if `ansi-color-for-comint-mode' and
1932`global-font-lock-mode' are non-nil, loading ansi-color.el will
1933disable font-lock and add `ansi-color-apply' to
1934`comint-preoutput-filter-functions' for all shell-mode buffers. This
1935displays the output of "ls --color=yes" using the correct foreground
1936and background colors.
1937
1938*** delphi.el provides a major mode for editing the Delphi (Object
1939Pascal) language.
1940
1941*** quickurl.el provides a simple method of inserting a URL based on
1942the text at point.
1943
1944*** sql.el provides an interface to SQL data bases.
1945
1946*** fortune.el uses the fortune program to create mail/news signatures.
1947
1948*** whitespace.el is a package for warning about and cleaning bogus
1949whitespace in a file.
1950
1951*** PostScript mode (ps-mode) is a new major mode for editing PostScript
1952files. It offers: interaction with a PostScript interpreter, including
1953(very basic) error handling; fontification, easily customizable for
1954interpreter messages; auto-indentation; insertion of EPSF templates and
1955often used code snippets; viewing of BoundingBox; commenting out /
1956uncommenting regions; conversion of 8bit characters to PostScript octal
1957codes. All functionality is accessible through a menu.
1958
1959*** delim-col helps to prettify columns in a text region or rectangle.
1960
1961Here is an example of columns:
1962
1963horse apple bus
1964dog pineapple car EXTRA
1965porcupine strawberry airplane
1966
1967Doing the following settings:
1968
1969 (setq delimit-columns-str-before "[ ")
1970 (setq delimit-columns-str-after " ]")
1971 (setq delimit-columns-str-separator ", ")
1972 (setq delimit-columns-separator "\t")
1973
1974
1975Selecting the lines above and typing:
1976
1977 M-x delimit-columns-region
1978
1979It results:
1980
1981[ horse , apple , bus , ]
1982[ dog , pineapple , car , EXTRA ]
1983[ porcupine, strawberry, airplane, ]
1984
1985delim-col has the following options:
1986
1987 delimit-columns-str-before Specify a string to be inserted
1988 before all columns.
1989
1990 delimit-columns-str-separator Specify a string to be inserted
1991 between each column.
1992
1993 delimit-columns-str-after Specify a string to be inserted
1994 after all columns.
1995
1996 delimit-columns-separator Specify a regexp which separates
1997 each column.
1998
1999delim-col has the following commands:
2000
2001 delimit-columns-region Prettify all columns in a text region.
2002 delimit-columns-rectangle Prettify all columns in a text rectangle.
2003
2004*** Recentf mode maintains a menu for visiting files that were
2005operated on recently. User option recentf-menu-filter specifies a
2006menu filter function to change the menu appearance. For example, the
2007recent file list can be displayed:
2008
2009- organized by major modes, directories or user defined rules.
2010- sorted by file paths, file names, ascending or descending.
2011- showing paths relative to the current default-directory
2012
2013The `recentf-filter-changer' menu filter function allows to
2014dynamically change the menu appearance.
2015
2016*** elide-head.el provides a mechanism for eliding boilerplate header
2017text.
2018
2019*** footnote.el provides `footnote-mode', a minor mode supporting use
2020of footnotes. It is intended for use with Message mode, but isn't
2021specific to Message mode.
2022
2023*** diff-mode.el provides `diff-mode', a major mode for
2024viewing/editing context diffs (patches). It is selected for files
2025with extension `.diff', `.diffs', `.patch' and `.rej'.
2026
2027*** EUDC, the Emacs Unified Directory Client, provides a common user
2028interface to access directory servers using different directory
2029protocols. It has a separate manual.
2030
2031*** autoconf.el provides a major mode for editing configure.in files
2032for Autoconf, selected automatically.
2033
2034*** windmove.el provides moving between windows.
2035
2036*** crm.el provides a facility to read multiple strings from the
2037minibuffer with completion.
2038
2039*** todo-mode.el provides management of TODO lists and integration
2040with the diary features.
2041
2042*** autoarg.el provides a feature reported from Twenex Emacs whereby
2043numeric keys supply prefix args rather than self inserting.
2044
2045*** The function `turn-off-auto-fill' unconditionally turns off Auto
2046Fill mode.
2047
2048*** pcomplete.el is a library that provides programmable completion
2049facilities for Emacs, similar to what zsh and tcsh offer. The main
2050difference is that completion functions are written in Lisp, meaning
2051they can be profiled, debugged, etc.
2052
2053*** antlr-mode is a new major mode for editing ANTLR grammar files.
2054It is automatically turned on for files whose names have the extension
2055`.g'.
2056
2057** Changes in sort.el
2058
2059The function sort-numeric-fields interprets numbers starting with `0'
2060as octal and numbers starting with `0x' or `0X' as hexadecimal. The
2061new user-option sort-numeric-base can be used to specify a default
2062numeric base.
2063
2064** Changes to Ange-ftp
2065
2066*** Ange-ftp allows you to specify of a port number in remote file
2067names cleanly. It is appended to the host name, separated by a hash
2068sign, e.g. `/foo@bar.org#666:mumble'. (This syntax comes from EFS.)
2069
2070*** If the new user-option `ange-ftp-try-passive-mode' is set, passive
2071ftp mode will be used if the ftp client supports that.
2072
2073*** Ange-ftp handles the output of the w32-style clients which
2074output ^M at the end of lines.
2075
2076** The recommended way of using Iswitchb is via the new global minor
2077mode `iswitchb-mode'.
2078
2079** Just loading the msb package doesn't switch on Msb mode anymore.
2080If you have `(require 'msb)' in your .emacs, please replace it with
2081`(msb-mode 1)'.
2082
2083** Changes in Flyspell mode
2084
2085*** Flyspell mode has various new options. See the `flyspell' Custom
2086group.
2087
2088*** The variable `flyspell-generic-check-word-p' has been renamed
2089to `flyspell-generic-check-word-predicate'. The old name is still
2090available as alias.
2091
2092** The user option `backward-delete-char-untabify-method' controls the
2093behavior of `backward-delete-char-untabify'. The following values
2094are recognized:
2095
2096`untabify' -- turn a tab to many spaces, then delete one space;
2097`hungry' -- delete all whitespace, both tabs and spaces;
2098`all' -- delete all whitespace, including tabs, spaces and newlines;
2099nil -- just delete one character.
2100
2101Default value is `untabify'.
2102
2103[This change was made in Emacs 20.3 but not mentioned then.]
2104
2105** In Cperl mode `cperl-invalid-face' should now be a normal face
2106symbol, not double-quoted.
2107
2108** Some packages are declared obsolete, to be removed in a future
2109version. They are: auto-show, c-mode, hilit19, hscroll, ooutline,
2110profile, rnews, rnewspost, and sc. Their implementations have been
2111moved to lisp/obsolete.
2112
2113** auto-compression mode is no longer enabled just by loading jka-compr.el.
2114To control it, set `auto-compression-mode' via Custom or use the
2115`auto-compression-mode' command.
2116
2117** `browse-url-gnome-moz' is a new option for
2118`browse-url-browser-function', invoking Mozilla in GNOME, and
2119`browse-url-kde' can be chosen for invoking the KDE browser.
2120
2121** The user-option `browse-url-new-window-p' has been renamed to
2122`browse-url-new-window-flag'.
2123
2124** The functions `keep-lines', `flush-lines' and `how-many' now
2125operate on the active region in Transient Mark mode.
2126
2127** `gnus-user-agent' is a new possibility for `mail-user-agent'. It
2128is like `message-user-agent', but with all the Gnus paraphernalia.
2129
2130** The Strokes package has been updated. If your Emacs has XPM
2131support, you can use it for pictographic editing. In Strokes mode,
2132use C-mouse-2 to compose a complex stoke and insert it into the
2133buffer. You can encode or decode a strokes buffer with new commands
2134M-x strokes-encode-buffer and M-x strokes-decode-buffer. There is a
2135new command M-x strokes-list-strokes.
2136
2137** Hexl contains a new command `hexl-insert-hex-string' which inserts
2138a string of hexadecimal numbers read from the mini-buffer.
2139
2140** Hexl mode allows to insert non-ASCII characters.
2141
2142The non-ASCII characters are encoded using the same encoding as the
2143file you are visiting in Hexl mode.
2144
2145** Shell script mode changes.
2146
2147Shell script mode (sh-script) can now indent scripts for shells
2148derived from sh and rc. The indentation style is customizable, and
2149sh-script can attempt to "learn" the current buffer's style.
2150
2151** Etags changes.
2152
2153*** In DOS, etags looks for file.cgz if it cannot find file.c.
2154
2155*** New option --ignore-case-regex is an alternative to --regex. It is now
2156possible to bind a regexp to a language, by prepending the regexp with
2157{lang}, where lang is one of the languages that `etags --help' prints out.
2158This feature is useful especially for regex files, where each line contains
2159a regular expression. The manual contains details.
2160
2161*** In C and derived languages, etags creates tags for function
2162declarations when given the --declarations option.
2163
2164*** In C++, tags are created for "operator". The tags have the form
2165"operator+", without spaces between the keyword and the operator.
2166
2167*** You shouldn't generally need any more the -C or -c++ option: etags
2168automatically switches to C++ parsing when it meets the `class' or
2169`template' keywords.
2170
2171*** Etags now is able to delve at arbitrary deeps into nested structures in
2172C-like languages. Previously, it was limited to one or two brace levels.
2173
2174*** New language Ada: tags are functions, procedures, packages, tasks, and
2175types.
2176
2177*** In Fortran, `procedure' is not tagged.
2178
2179*** In Java, tags are created for "interface".
2180
2181*** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
2182are now tagged.
2183
2184*** In makefiles, tags the targets.
2185
2186*** In Perl, the --globals option tags global variables. my and local
2187variables are tagged.
2188
2189*** New language Python: def and class at the beginning of a line are tags.
2190
2191*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
2192for PSWrap.
2193
2194** Changes in etags.el
2195
2196*** The new user-option tags-case-fold-search can be used to make
2197tags operations case-sensitive or case-insensitive. The default
2198is to use the same setting as case-fold-search.
2199
2200*** You can display additional output with M-x tags-apropos by setting
2201the new variable tags-apropos-additional-actions.
2202
2203If non-nil, the variable's value should be a list of triples (TITLE
2204FUNCTION TO-SEARCH). For each triple, M-x tags-apropos processes
2205TO-SEARCH and lists tags from it. TO-SEARCH should be an alist,
2206obarray, or symbol. If it is a symbol, the symbol's value is used.
2207
2208TITLE is a string to use to label the list of tags from TO-SEARCH.
2209
2210FUNCTION is a function to call when an entry is selected in the Tags
2211List buffer. It is called with one argument, the selected symbol.
2212
2213A useful example value for this variable might be something like:
2214
2215 '(("Emacs Lisp" Info-goto-emacs-command-node obarray)
2216 ("Common Lisp" common-lisp-hyperspec common-lisp-hyperspec-obarray)
2217 ("SCWM" scwm-documentation scwm-obarray))
2218
2219*** The face tags-tag-face can be used to customize the appearance
2220of tags in the output of M-x tags-apropos.
2221
2222*** Setting tags-apropos-verbose to a non-nil value displays the
2223names of tags files in the *Tags List* buffer.
2224
2225*** You can now search for tags that are part of the filename itself.
2226If you have tagged the files topfile.c subdir/subfile.c
2227/tmp/tempfile.c, you can now search for tags "topfile.c", "subfile.c",
2228"dir/sub", "tempfile", "tempfile.c". If the tag matches the file name,
2229point will go to the beginning of the file.
2230
2231*** Compressed files are now transparently supported if
2232auto-compression-mode is active. You can tag (with Etags) and search
2233(with find-tag) both compressed and uncompressed files.
2234
2235*** Tags commands like M-x tags-search no longer change point
2236in buffers where no match is found. In buffers where a match is
2237found, the original value of point is pushed on the marker ring.
2238
2239** Fortran mode has a new command `fortran-strip-sequence-nos' to
2240remove text past column 72. The syntax class of `\' in Fortran is now
2241appropriate for C-style escape sequences in strings.
2242
2243** SGML mode's default `sgml-validate-command' is now `nsgmls'.
2244
2245** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
2246
2247** The Dabbrev package has a new user-option `dabbrev-ignored-regexps'
2248containing a list of regular expressions. Buffers matching a regular
2249expression from that list, are not checked.
2250
2251** Emacs can now figure out modification times of remote files.
2252When you do C-x C-f /user@host:/path/file RET and edit the file,
2253and someone else modifies the file, you will be prompted to revert
2254the buffer, just like for the local files.
2255
2256** The buffer menu (C-x C-b) no longer lists the *Buffer List* buffer.
2257
2258** When invoked with a prefix argument, the command `list-abbrevs' now
2259displays local abbrevs, only.
2260
2261** Refill minor mode provides preliminary support for keeping
2262paragraphs filled as you modify them.
2263
2264** The variable `double-click-fuzz' specifies how much the mouse
2265may be moved between clicks that are recognized as a pair. Its value
2266is measured in pixels.
2267
2268** The new global minor mode `auto-image-file-mode' allows image files
2269to be visited as images.
2270
2271** Two new user-options `grep-command' and `grep-find-command'
2272were added to compile.el.
2273
2274** Withdrawn packages
2275
2276*** mldrag.el has been removed. mouse.el provides the same
2277functionality with aliases for the mldrag functions.
2278
2279*** eval-reg.el has been obsoleted by changes to edebug.el and removed.
2280
2281*** ph.el has been obsoleted by EUDC and removed.
2282
2283
2284* Incompatible Lisp changes in 21.1
2285
2286There are a few Lisp changes which are not backwards-compatible and
2287may require changes to existing code. Here is a list for reference.
2288See the sections below for details.
2289
2290** Since `format' preserves text properties, the idiom
2291`(format "%s" foo)' no longer works to copy and remove properties.
2292Use `copy-sequence' to copy the string, then use `set-text-properties'
2293to remove the properties of the copy.
2294
2295** Since the `keymap' text property now has significance, some code
2296which uses both `local-map' and `keymap' properties (for portability)
2297may, for instance, give rise to duplicate menus when the keymaps from
2298these properties are active.
2299
2300** The change in the treatment of non-ASCII characters in search
2301ranges may affect some code.
2302
2303** A non-nil value for the LOCAL arg of add-hook makes the hook
2304buffer-local even if `make-local-hook' hasn't been called, which might
2305make a difference to some code.
2306
2307** The new treatment of the minibuffer prompt might affect code which
2308operates on the minibuffer.
2309
2310** The new character sets `eight-bit-control' and `eight-bit-graphic'
2311cause `no-conversion' and `emacs-mule-unix' coding systems to produce
2312different results when reading files with non-ASCII characters
2313(previously, both coding systems would produce the same results).
2314Specifically, `no-conversion' interprets each 8-bit byte as a separate
2315character. This makes `no-conversion' inappropriate for reading
2316multibyte text, e.g. buffers written to disk in their internal MULE
2317encoding (auto-saving does that, for example). If a Lisp program
2318reads such files with `no-conversion', each byte of the multibyte
2319sequence, including the MULE leading codes such as \201, is treated as
2320a separate character, which prevents them from being interpreted in
2321the buffer as multibyte characters.
2322
2323Therefore, Lisp programs that read files which contain the internal
2324MULE encoding should use `emacs-mule-unix'. `no-conversion' is only
2325appropriate for reading truly binary files.
2326
2327** Code that relies on the obsolete `before-change-function' and
2328`after-change-function' to detect buffer changes will now fail. Use
2329`before-change-functions' and `after-change-functions' instead.
2330
2331** Code that uses `concat' with integer args now gets an error, as
2332long promised. So does any code that uses derivatives of `concat',
2333such as `mapconcat'.
2334
2335** The function base64-decode-string now always returns a unibyte
2336string.
2337
2338** Not a Lisp incompatibility as such but, with the introduction of
2339extra private charsets, there is now only one slot free for a new
2340dimension-2 private charset. User code which tries to add more than
2341one extra will fail unless you rebuild Emacs with some standard
2342charset(s) removed; that is probably inadvisable because it changes
2343the emacs-mule encoding. Also, files stored in the emacs-mule
2344encoding using Emacs 20 with additional private charsets defined will
2345probably not be read correctly by Emacs 21.
2346
2347** The variable `directory-sep-char' is slated for removal.
2348Not really a change (yet), but a projected one that you should be
2349aware of: The variable `directory-sep-char' is deprecated, and should
2350not be used. It was always ignored on GNU/Linux and Unix systems and
2351on MS-DOS, but the MS-Windows port tried to support it by adapting the
2352behavior of certain primitives to the value of this variable. It
2353turned out that such support cannot be reliable, so it was decided to
2354remove this variable in the near future. Lisp programs are well
2355advised not to set it to anything but '/', because any different value
2356will not have any effect when support for this variable is removed.
2357
2358
2359* Lisp changes made after edition 2.6 of the Emacs Lisp Manual,
2360(Display-related features are described in a page of their own below.)
2361
2362** Function assq-delete-all replaces function assoc-delete-all.
2363
2364** The new function animate-string, from lisp/play/animate.el
2365allows the animated display of strings.
2366
2367** The new function `interactive-form' can be used to obtain the
2368interactive form of a function.
2369
2370** The keyword :set-after in defcustom allows to specify dependencies
2371between custom options. Example:
2372
2373 (defcustom default-input-method nil
2374 "*Default input method for multilingual text (a string).
2375 This is the input method activated automatically by the command
2376 `toggle-input-method' (\\[toggle-input-method])."
2377 :group 'mule
2378 :type '(choice (const nil) string)
2379 :set-after '(current-language-environment))
2380
2381This specifies that default-input-method should be set after
2382current-language-environment even if default-input-method appears
2383first in a custom-set-variables statement.
2384
2385** The new hook `kbd-macro-termination-hook' is run at the end of
2386function execute-kbd-macro. Functions on this hook are called with no
2387args. The hook is run independent of how the macro was terminated
2388(signal or normal termination).
2389
2390** Functions `butlast' and `nbutlast' for removing trailing elements
2391from a list are now available without requiring the CL package.
2392
2393** The new user-option `even-window-heights' can be set to nil
2394to prevent `display-buffer' from evening out window heights.
2395
2396** The user-option `face-font-registry-alternatives' specifies
2397alternative font registry names to try when looking for a font.
2398
2399** Function `md5' calculates the MD5 "message digest"/"checksum".
2400
2401** Function `delete-frame' runs `delete-frame-hook' before actually
2402deleting the frame. The hook is called with one arg, the frame
2403being deleted.
2404
2405** `add-hook' now makes the hook local if called with a non-nil LOCAL arg.
2406
2407** The treatment of non-ASCII characters in search ranges has changed.
2408If a range in a regular expression or the arg of
2409skip-chars-forward/backward starts with a unibyte character C and ends
2410with a multibyte character C2, the range is divided into two: one is
2411C..?\377, the other is C1..C2, where C1 is the first character of C2's
2412charset.
2413
2414** The new function `display-message-or-buffer' displays a message in
2415the echo area or pops up a buffer, depending on the length of the
2416message.
2417
2418** The new macro `with-auto-compression-mode' allows evaluating an
2419expression with auto-compression-mode enabled.
2420
2421** In image specifications, `:heuristic-mask' has been replaced
2422with the more general `:mask' property.
2423
2424** Image specifications accept more `:conversion's.
2425
2426** A `?' can be used in a symbol name without escaping it with a
2427backslash.
2428
2429** Reading from the mini-buffer now reads from standard input if Emacs
2430is running in batch mode. For example,
2431
2432 (message "%s" (read t))
2433
2434will read a Lisp expression from standard input and print the result
2435to standard output.
2436
2437** The argument of `down-list', `backward-up-list', `up-list',
2438`kill-sexp', `backward-kill-sexp' and `mark-sexp' is now optional.
2439
2440** If `display-buffer-reuse-frames' is set, function `display-buffer'
2441will raise frames displaying a buffer, instead of creating a new
2442frame or window.
2443
2444** Two new functions for removing elements from lists/sequences
2445were added
2446
2447- Function: remove ELT SEQ
2448
2449Return a copy of SEQ with all occurrences of ELT removed. SEQ must be
2450a list, vector, or string. The comparison is done with `equal'.
2451
2452- Function: remq ELT LIST
2453
2454Return a copy of LIST with all occurrences of ELT removed. The
2455comparison is done with `eq'.
2456
2457** The function `delete' now also works with vectors and strings.
2458
2459** The meaning of the `:weakness WEAK' argument of make-hash-table
2460has been changed: WEAK can now have new values `key-or-value' and
2461`key-and-value', in addition to `nil', `key', `value', and `t'.
2462
2463** Function `aset' stores any multibyte character in any string
2464without signaling "Attempt to change char length of a string". It may
2465convert a unibyte string to multibyte if necessary.
2466
2467** The value of the `help-echo' text property is called as a function
2468or evaluated, if it is not a string already, to obtain a help string.
2469
2470** Function `make-obsolete' now has an optional arg to say when the
2471function was declared obsolete.
2472
2473** Function `plist-member' is renamed from `widget-plist-member' (which is
2474retained as an alias).
2475
2476** Easy-menu's :filter now takes the unconverted form of the menu and
2477the result is automatically converted to Emacs' form.
2478
2479** The new function `window-list' has been defined
2480
2481- Function: window-list &optional FRAME WINDOW MINIBUF
2482
2483Return a list of windows on FRAME, starting with WINDOW. FRAME nil or
2484omitted means use the selected frame. WINDOW nil or omitted means use
2485the selected window. MINIBUF t means include the minibuffer window,
2486even if it isn't active. MINIBUF nil or omitted means include the
2487minibuffer window only if it's active. MINIBUF neither nil nor t
2488means never include the minibuffer window.
2489
2490** There's a new function `get-window-with-predicate' defined as follows
2491
2492- Function: get-window-with-predicate PREDICATE &optional MINIBUF ALL-FRAMES DEFAULT
2493
2494Return a window satisfying PREDICATE.
2495
2496This function cycles through all visible windows using `walk-windows',
2497calling PREDICATE on each one. PREDICATE is called with a window as
2498argument. The first window for which PREDICATE returns a non-nil
2499value is returned. If no window satisfies PREDICATE, DEFAULT is
2500returned.
2501
2502Optional second arg MINIBUF t means count the minibuffer window even
2503if not active. MINIBUF nil or omitted means count the minibuffer iff
2504it is active. MINIBUF neither t nor nil means not to count the
2505minibuffer even if it is active.
2506
2507Several frames may share a single minibuffer; if the minibuffer
2508counts, all windows on all frames that share that minibuffer count
2509too. Therefore, if you are using a separate minibuffer frame
2510and the minibuffer is active and MINIBUF says it counts,
2511`walk-windows' includes the windows in the frame from which you
2512entered the minibuffer, as well as the minibuffer window.
2513
2514ALL-FRAMES is the optional third argument.
2515ALL-FRAMES nil or omitted means cycle within the frames as specified above.
2516ALL-FRAMES = `visible' means include windows on all visible frames.
2517ALL-FRAMES = 0 means include windows on all visible and iconified frames.
2518ALL-FRAMES = t means include windows on all frames including invisible frames.
2519If ALL-FRAMES is a frame, it means include windows on that frame.
2520Anything else means restrict to the selected frame.
2521
2522** The function `single-key-description' now encloses function key and
2523event names in angle brackets. When called with a second optional
2524argument non-nil, angle brackets won't be printed.
2525
2526** If the variable `message-truncate-lines' is bound to t around a
2527call to `message', the echo area will not be resized to display that
2528message; it will be truncated instead, as it was done in 20.x.
2529Default value is nil.
2530
2531** The user option `line-number-display-limit' can now be set to nil,
2532meaning no limit.
2533
2534** The new user option `line-number-display-limit-width' controls
2535the maximum width of lines in a buffer for which Emacs displays line
2536numbers in the mode line. The default is 200.
2537
2538** `select-safe-coding-system' now also checks the most preferred
2539coding-system if buffer-file-coding-system is `undecided' and
2540DEFAULT-CODING-SYSTEM is not specified,
2541
2542** The function `subr-arity' provides information about the argument
2543list of a primitive.
2544
2545** `where-is-internal' now also accepts a list of keymaps.
2546
2547** The text property `keymap' specifies a key map which overrides the
2548buffer's local map and the map specified by the `local-map' property.
2549This is probably what most current uses of `local-map' want, rather
2550than replacing the local map.
2551
2552** The obsolete variables `before-change-function' and
2553`after-change-function' are no longer acted upon and have been
2554removed. Use `before-change-functions' and `after-change-functions'
2555instead.
2556
2557** The function `apropos-mode' runs the hook `apropos-mode-hook'.
2558
2559** `concat' no longer accepts individual integer arguments,
2560as promised long ago.
2561
2562** The new function `float-time' returns the current time as a float.
2563
2564** The new variable auto-coding-regexp-alist specifies coding systems
2565for reading specific files, analogous to auto-coding-alist, but
2566patterns are checked against file contents instead of file names.
2567
2568
2569* Lisp changes in Emacs 21.1 (see following page for display-related features)
2570
2571** The new package rx.el provides an alternative sexp notation for
2572regular expressions.
2573
2574- Function: rx-to-string SEXP
2575
2576Translate SEXP into a regular expression in string notation.
2577
2578- Macro: rx SEXP
2579
2580Translate SEXP into a regular expression in string notation.
2581
2582The following are valid subforms of regular expressions in sexp
2583notation.
2584
2585STRING
2586 matches string STRING literally.
2587
2588CHAR
2589 matches character CHAR literally.
2590
2591`not-newline'
2592 matches any character except a newline.
2593 .
2594`anything'
2595 matches any character
2596
2597`(any SET)'
2598 matches any character in SET. SET may be a character or string.
2599 Ranges of characters can be specified as `A-Z' in strings.
2600
2601'(in SET)'
2602 like `any'.
2603
2604`(not (any SET))'
2605 matches any character not in SET
2606
2607`line-start'
2608 matches the empty string, but only at the beginning of a line
2609 in the text being matched
2610
2611`line-end'
2612 is similar to `line-start' but matches only at the end of a line
2613
2614`string-start'
2615 matches the empty string, but only at the beginning of the
2616 string being matched against.
2617
2618`string-end'
2619 matches the empty string, but only at the end of the
2620 string being matched against.
2621
2622`buffer-start'
2623 matches the empty string, but only at the beginning of the
2624 buffer being matched against.
2625
2626`buffer-end'
2627 matches the empty string, but only at the end of the
2628 buffer being matched against.
2629
2630`point'
2631 matches the empty string, but only at point.
2632
2633`word-start'
2634 matches the empty string, but only at the beginning or end of a
2635 word.
2636
2637`word-end'
2638 matches the empty string, but only at the end of a word.
2639
2640`word-boundary'
2641 matches the empty string, but only at the beginning or end of a
2642 word.
2643
2644`(not word-boundary)'
2645 matches the empty string, but not at the beginning or end of a
2646 word.
2647
2648`digit'
2649 matches 0 through 9.
2650
2651`control'
2652 matches ASCII control characters.
2653
2654`hex-digit'
2655 matches 0 through 9, a through f and A through F.
2656
2657`blank'
2658 matches space and tab only.
2659
2660`graphic'
2661 matches graphic characters--everything except ASCII control chars,
2662 space, and DEL.
2663
2664`printing'
2665 matches printing characters--everything except ASCII control chars
2666 and DEL.
2667
2668`alphanumeric'
2669 matches letters and digits. (But at present, for multibyte characters,
2670 it matches anything that has word syntax.)
2671
2672`letter'
2673 matches letters. (But at present, for multibyte characters,
2674 it matches anything that has word syntax.)
2675
2676`ascii'
2677 matches ASCII (unibyte) characters.
2678
2679`nonascii'
2680 matches non-ASCII (multibyte) characters.
2681
2682`lower'
2683 matches anything lower-case.
2684
2685`upper'
2686 matches anything upper-case.
2687
2688`punctuation'
2689 matches punctuation. (But at present, for multibyte characters,
2690 it matches anything that has non-word syntax.)
2691
2692`space'
2693 matches anything that has whitespace syntax.
2694
2695`word'
2696 matches anything that has word syntax.
2697
2698`(syntax SYNTAX)'
2699 matches a character with syntax SYNTAX. SYNTAX must be one
2700 of the following symbols.
2701
2702 `whitespace' (\\s- in string notation)
2703 `punctuation' (\\s.)
2704 `word' (\\sw)
2705 `symbol' (\\s_)
2706 `open-parenthesis' (\\s()
2707 `close-parenthesis' (\\s))
2708 `expression-prefix' (\\s')
2709 `string-quote' (\\s\")
2710 `paired-delimiter' (\\s$)
2711 `escape' (\\s\\)
2712 `character-quote' (\\s/)
2713 `comment-start' (\\s<)
2714 `comment-end' (\\s>)
2715
2716`(not (syntax SYNTAX))'
2717 matches a character that has not syntax SYNTAX.
2718
2719`(category CATEGORY)'
2720 matches a character with category CATEGORY. CATEGORY must be
2721 either a character to use for C, or one of the following symbols.
2722
2723 `consonant' (\\c0 in string notation)
2724 `base-vowel' (\\c1)
2725 `upper-diacritical-mark' (\\c2)
2726 `lower-diacritical-mark' (\\c3)
2727 `tone-mark' (\\c4)
2728 `symbol' (\\c5)
2729 `digit' (\\c6)
2730 `vowel-modifying-diacritical-mark' (\\c7)
2731 `vowel-sign' (\\c8)
2732 `semivowel-lower' (\\c9)
2733 `not-at-end-of-line' (\\c<)
2734 `not-at-beginning-of-line' (\\c>)
2735 `alpha-numeric-two-byte' (\\cA)
2736 `chinse-two-byte' (\\cC)
2737 `greek-two-byte' (\\cG)
2738 `japanese-hiragana-two-byte' (\\cH)
2739 `indian-two-byte' (\\cI)
2740 `japanese-katakana-two-byte' (\\cK)
2741 `korean-hangul-two-byte' (\\cN)
2742 `cyrillic-two-byte' (\\cY)
2743 `ascii' (\\ca)
2744 `arabic' (\\cb)
2745 `chinese' (\\cc)
2746 `ethiopic' (\\ce)
2747 `greek' (\\cg)
2748 `korean' (\\ch)
2749 `indian' (\\ci)
2750 `japanese' (\\cj)
2751 `japanese-katakana' (\\ck)
2752 `latin' (\\cl)
2753 `lao' (\\co)
2754 `tibetan' (\\cq)
2755 `japanese-roman' (\\cr)
2756 `thai' (\\ct)
2757 `vietnamese' (\\cv)
2758 `hebrew' (\\cw)
2759 `cyrillic' (\\cy)
2760 `can-break' (\\c|)
2761
2762`(not (category CATEGORY))'
2763 matches a character that has not category CATEGORY.
2764
2765`(and SEXP1 SEXP2 ...)'
2766 matches what SEXP1 matches, followed by what SEXP2 matches, etc.
2767
2768`(submatch SEXP1 SEXP2 ...)'
2769 like `and', but makes the match accessible with `match-end',
2770 `match-beginning', and `match-string'.
2771
2772`(group SEXP1 SEXP2 ...)'
2773 another name for `submatch'.
2774
2775`(or SEXP1 SEXP2 ...)'
2776 matches anything that matches SEXP1 or SEXP2, etc. If all
2777 args are strings, use `regexp-opt' to optimize the resulting
2778 regular expression.
2779
2780`(minimal-match SEXP)'
2781 produce a non-greedy regexp for SEXP. Normally, regexps matching
2782 zero or more occurrences of something are \"greedy\" in that they
2783 match as much as they can, as long as the overall regexp can
2784 still match. A non-greedy regexp matches as little as possible.
2785
2786`(maximal-match SEXP)'
2787 produce a greedy regexp for SEXP. This is the default.
2788
2789`(zero-or-more SEXP)'
2790 matches zero or more occurrences of what SEXP matches.
2791
2792`(0+ SEXP)'
2793 like `zero-or-more'.
2794
2795`(* SEXP)'
2796 like `zero-or-more', but always produces a greedy regexp.
2797
2798`(*? SEXP)'
2799 like `zero-or-more', but always produces a non-greedy regexp.
2800
2801`(one-or-more SEXP)'
2802 matches one or more occurrences of A.
2803
2804`(1+ SEXP)'
2805 like `one-or-more'.
2806
2807`(+ SEXP)'
2808 like `one-or-more', but always produces a greedy regexp.
2809
2810`(+? SEXP)'
2811 like `one-or-more', but always produces a non-greedy regexp.
2812
2813`(zero-or-one SEXP)'
2814 matches zero or one occurrences of A.
2815
2816`(optional SEXP)'
2817 like `zero-or-one'.
2818
2819`(? SEXP)'
2820 like `zero-or-one', but always produces a greedy regexp.
2821
2822`(?? SEXP)'
2823 like `zero-or-one', but always produces a non-greedy regexp.
2824
2825`(repeat N SEXP)'
2826 matches N occurrences of what SEXP matches.
2827
2828`(repeat N M SEXP)'
2829 matches N to M occurrences of what SEXP matches.
2830
2831`(eval FORM)'
2832 evaluate FORM and insert result. If result is a string,
2833 `regexp-quote' it.
2834
2835`(regexp REGEXP)'
2836 include REGEXP in string notation in the result.
2837
2838*** The features `md5' and `overlay' are now provided by default.
2839
2840*** The special form `save-restriction' now works correctly even if the
2841buffer is widened inside the save-restriction and changes made outside
2842the original restriction. Previously, doing this would cause the saved
2843restriction to be restored incorrectly.
2844
2845*** The functions `find-charset-region' and `find-charset-string' include
2846`eight-bit-control' and/or `eight-bit-graphic' in the returned list
2847when they find 8-bit characters. Previously, they included `ascii' in a
2848multibyte buffer and `unknown' in a unibyte buffer.
2849
2850*** The functions `set-buffer-multibyte', `string-as-multibyte' and
2851`string-as-unibyte' change the byte sequence of a buffer or a string
2852if it contains a character from the `eight-bit-control' character set.
2853
2854*** The handling of multibyte sequences in a multibyte buffer is
2855changed. Previously, a byte sequence matching the pattern
2856[\200-\237][\240-\377]+ was interpreted as a single character
2857regardless of the length of the trailing bytes [\240-\377]+. Thus, if
2858the sequence was longer than what the leading byte indicated, the
2859extra trailing bytes were ignored by Lisp functions. Now such extra
2860bytes are independent 8-bit characters belonging to the charset
2861eight-bit-graphic.
2862
2863** Fontsets are now implemented using char-tables.
2864
2865A fontset can now be specified for each independent character, for
2866a group of characters or for a character set rather than just for a
2867character set as previously.
2868
2869*** The arguments of the function `set-fontset-font' are changed.
2870They are NAME, CHARACTER, FONTNAME, and optional FRAME. The function
2871modifies fontset NAME to use FONTNAME for CHARACTER.
2872
2873CHARACTER may be a cons (FROM . TO), where FROM and TO are non-generic
2874characters. In that case FONTNAME is used for all characters in the
2875range FROM and TO (inclusive). CHARACTER may be a charset. In that
2876case FONTNAME is used for all character in the charset.
2877
2878FONTNAME may be a cons (FAMILY . REGISTRY), where FAMILY is the family
2879name of a font and REGISTRY is a registry name of a font.
2880
2881*** Variable x-charset-registry has been deleted. The default charset
2882registries of character sets are set in the default fontset
2883"fontset-default".
2884
2885*** The function `create-fontset-from-fontset-spec' ignores the second
2886argument STYLE-VARIANT. It never creates style-variant fontsets.
2887
2888** The method of composing characters is changed. Now character
2889composition is done by a special text property `composition' in
2890buffers and strings.
2891
2892*** Charset composition is deleted. Emacs never creates a `composite
2893character' which is an independent character with a unique character
2894code. Thus the following functions handling `composite characters'
2895have been deleted: composite-char-component,
2896composite-char-component-count, composite-char-composition-rule,
2897composite-char-composition-rule and decompose-composite-char delete.
2898The variables leading-code-composition and min-composite-char have
2899also been deleted.
2900
2901*** Three more glyph reference points are added. They can be used to
2902specify a composition rule. See the documentation of the variable
2903`reference-point-alist' for more detail.
2904
2905*** The function `compose-region' takes new arguments COMPONENTS and
2906MODIFICATION-FUNC. With COMPONENTS, you can specify not only a
2907composition rule but also characters to be composed. Such characters
2908may differ between buffer and string text.
2909
2910*** The function `compose-string' takes new arguments START, END,
2911COMPONENTS, and MODIFICATION-FUNC.
2912
2913*** The function `compose-string' puts text property `composition'
2914directly on the argument STRING instead of returning a new string.
2915Likewise, the function `decompose-string' just removes text property
2916`composition' from STRING.
2917
2918*** The new function `find-composition' returns information about
2919a composition at a specified position in a buffer or a string.
2920
2921*** The function `decompose-composite-char' is now labeled as
2922obsolete.
2923
2924** The new coding system `mac-roman' is primarily intended for use on
2925the Macintosh but may be used generally for Macintosh-encoded text.
2926
2927** The new character sets `mule-unicode-0100-24ff',
2928`mule-unicode-2500-33ff', and `mule-unicode-e000-ffff' have been
2929introduced for Unicode characters in the range U+0100..U+24FF,
2930U+2500..U+33FF, U+E000..U+FFFF respectively.
2931
2932Note that the character sets are not yet unified in Emacs, so
2933characters which belong to charsets such as Latin-2, Greek, Hebrew,
2934etc. and the same characters in the `mule-unicode-*' charsets are
2935different characters, as far as Emacs is concerned. For example, text
2936which includes Unicode characters from the Latin-2 locale cannot be
2937encoded by Emacs with ISO 8859-2 coding system.
2938
2939** The new coding system `mule-utf-8' has been added.
2940It provides limited support for decoding/encoding UTF-8 text. For
2941details, please see the documentation string of this coding system.
2942
2943** The new character sets `japanese-jisx0213-1' and
2944`japanese-jisx0213-2' have been introduced for the new Japanese
2945standard JIS X 0213 Plane 1 and Plane 2.
2946
2947** The new character sets `latin-iso8859-14' and `latin-iso8859-15'
2948have been introduced.
2949
2950** The new character sets `eight-bit-control' and `eight-bit-graphic'
2951have been introduced for 8-bit characters in the ranges 0x80..0x9F and
29520xA0..0xFF respectively. Note that the multibyte representation of
2953eight-bit-control is never exposed; this leads to an exception in the
2954emacs-mule coding system, which encodes everything else to the
2955buffer/string internal representation. Note that to search for
2956eight-bit-graphic characters in a multibyte buffer, the search string
2957must be multibyte, otherwise such characters will be converted to
2958their multibyte equivalent.
2959
2960** If the APPEND argument of `write-region' is an integer, it seeks to
2961that offset in the file before writing.
2962
2963** The function `add-minor-mode' has been added for convenience and
2964compatibility with XEmacs (and is used internally by define-minor-mode).
2965
2966** The function `shell-command' now sets the default directory of the
2967`*Shell Command Output*' buffer to the default directory of the buffer
2968from which the command was issued.
2969
2970** The functions `query-replace', `query-replace-regexp',
2971`query-replace-regexp-eval' `map-query-replace-regexp',
2972`replace-string', `replace-regexp', and `perform-replace' take two
2973additional optional arguments START and END that specify the region to
2974operate on.
2975
2976** The new function `count-screen-lines' is a more flexible alternative
2977to `window-buffer-height'.
2978
2979- Function: count-screen-lines &optional BEG END COUNT-FINAL-NEWLINE WINDOW
2980
2981Return the number of screen lines in the region between BEG and END.
2982The number of screen lines may be different from the number of actual
2983lines, due to line breaking, display table, etc.
2984
2985Optional arguments BEG and END default to `point-min' and `point-max'
2986respectively.
2987
2988If region ends with a newline, ignore it unless optional third argument
2989COUNT-FINAL-NEWLINE is non-nil.
2990
2991The optional fourth argument WINDOW specifies the window used for
2992obtaining parameters such as width, horizontal scrolling, and so
2993on. The default is to use the selected window's parameters.
2994
2995Like `vertical-motion', `count-screen-lines' always uses the current
2996buffer, regardless of which buffer is displayed in WINDOW. This makes
2997possible to use `count-screen-lines' in any buffer, whether or not it
2998is currently displayed in some window.
2999
3000** The new function `mapc' is like `mapcar' but doesn't collect the
3001argument function's results.
3002
3003** The functions base64-decode-region and base64-decode-string now
3004signal an error instead of returning nil if decoding fails. Also,
3005`base64-decode-string' now always returns a unibyte string (in Emacs
300620, it returned a multibyte string when the result was a valid multibyte
3007sequence).
3008
3009** The function sendmail-user-agent-compose now recognizes a `body'
3010header in the list of headers passed to it.
3011
3012** The new function member-ignore-case works like `member', but
3013ignores differences in case and text representation.
3014
3015** The buffer-local variable cursor-type can be used to specify the
3016cursor to use in windows displaying a buffer. Values are interpreted
3017as follows:
3018
3019 t use the cursor specified for the frame (default)
3020 nil don't display a cursor
3021 `bar' display a bar cursor with default width
3022 (bar . WIDTH) display a bar cursor with width WIDTH
3023 others display a box cursor.
3024
3025** The variable open-paren-in-column-0-is-defun-start controls whether
3026an open parenthesis in column 0 is considered to be the start of a
3027defun. If set, the default, it is considered a defun start. If not
3028set, an open parenthesis in column 0 has no special meaning.
3029
3030** The new function `string-to-syntax' can be used to translate syntax
3031specifications in string form as accepted by `modify-syntax-entry' to
3032the cons-cell form that is used for the values of the `syntax-table'
3033text property, and in `font-lock-syntactic-keywords'.
3034
3035Example:
3036
3037 (string-to-syntax "()")
3038 => (4 . 41)
3039
3040** Emacs' reader supports CL read syntax for integers in bases
3041other than 10.
3042
3043*** `#BINTEGER' or `#bINTEGER' reads INTEGER in binary (radix 2).
3044INTEGER optionally contains a sign.
3045
3046 #b1111
3047 => 15
3048 #b-1111
3049 => -15
3050
3051*** `#OINTEGER' or `#oINTEGER' reads INTEGER in octal (radix 8).
3052
3053 #o666
3054 => 438
3055
3056*** `#XINTEGER' or `#xINTEGER' reads INTEGER in hexadecimal (radix 16).
3057
3058 #xbeef
3059 => 48815
3060
3061*** `#RADIXrINTEGER' reads INTEGER in radix RADIX, 2 <= RADIX <= 36.
3062
3063 #2R-111
3064 => -7
3065 #25rah
3066 => 267
3067
3068** The function `documentation-property' now evaluates the value of
3069the given property to obtain a string if it doesn't refer to etc/DOC
3070and isn't a string.
3071
3072** If called for a symbol, the function `documentation' now looks for
3073a `function-documentation' property of that symbol. If it has a non-nil
3074value, the documentation is taken from that value. If the value is
3075not a string, it is evaluated to obtain a string.
3076
3077** The last argument of `define-key-after' defaults to t for convenience.
3078
3079** The new function `replace-regexp-in-string' replaces all matches
3080for a regexp in a string.
3081
3082** `mouse-position' now runs the abnormal hook
3083`mouse-position-function'.
3084
3085** The function string-to-number now returns a float for numbers
3086that don't fit into a Lisp integer.
3087
3088** The variable keyword-symbols-constants-flag has been removed.
3089Keywords are now always considered constants.
3090
3091** The new function `delete-and-extract-region' deletes text and
3092returns it.
3093
3094** The function `clear-this-command-keys' now also clears the vector
3095returned by function `recent-keys'.
3096
3097** Variables `beginning-of-defun-function' and `end-of-defun-function'
3098can be used to define handlers for the functions that find defuns.
3099Major modes can define these locally instead of rebinding C-M-a
3100etc. if the normal conventions for defuns are not appropriate for the
3101mode.
3102
3103** easy-mmode-define-minor-mode now takes an additional BODY argument
3104and is renamed `define-minor-mode'.
3105
3106** If an abbrev has a hook function which is a symbol, and that symbol
3107has a non-nil `no-self-insert' property, the return value of the hook
3108function specifies whether an expansion has been done or not. If it
3109returns nil, abbrev-expand also returns nil, meaning "no expansion has
3110been performed."
3111
3112When abbrev expansion is done by typing a self-inserting character,
3113and the abbrev has a hook with the `no-self-insert' property, and the
3114hook function returns non-nil meaning expansion has been done,
3115then the self-inserting character is not inserted.
3116
3117** The function `intern-soft' now accepts a symbol as first argument.
3118In this case, that exact symbol is looked up in the specified obarray,
3119and the function's value is nil if it is not found.
3120
3121** The new macro `with-syntax-table' can be used to evaluate forms
3122with the syntax table of the current buffer temporarily set to a
3123specified table.
3124
3125 (with-syntax-table TABLE &rest BODY)
3126
3127Evaluate BODY with syntax table of current buffer set to a copy of
3128TABLE. The current syntax table is saved, BODY is evaluated, and the
3129saved table is restored, even in case of an abnormal exit. Value is
3130what BODY returns.
3131
3132** Regular expressions now support intervals \{n,m\} as well as
3133Perl's shy-groups \(?:...\) and non-greedy *? +? and ?? operators.
3134Also back-references like \2 are now considered as an error if the
3135corresponding subgroup does not exist (or is not closed yet).
3136Previously it would have been silently turned into `2' (ignoring the `\').
3137
3138** The optional argument BUFFER of function file-local-copy has been
3139removed since it wasn't used by anything.
3140
3141** The file name argument of function `file-locked-p' is now required
3142instead of being optional.
3143
3144** The new built-in error `text-read-only' is signaled when trying to
3145modify read-only text.
3146
3147** New functions and variables for locales.
3148
3149The new variable `locale-coding-system' specifies how to encode and
3150decode strings passed to low-level message functions like strerror and
3151time functions like strftime. The new variables
3152`system-messages-locale' and `system-time-locale' give the system
3153locales to be used when invoking these two types of functions.
3154
3155The new function `set-locale-environment' sets the language
3156environment, preferred coding system, and locale coding system from
3157the system locale as specified by the LC_ALL, LC_CTYPE, and LANG
3158environment variables. Normally, it is invoked during startup and need
3159not be invoked thereafter. It uses the new variables
3160`locale-language-names', `locale-charset-language-names', and
3161`locale-preferred-coding-systems' to make its decisions.
3162
3163** syntax tables now understand nested comments.
3164To declare a comment syntax as allowing nesting, just add an `n'
3165modifier to either of the characters of the comment end and the comment
3166start sequences.
3167
3168** The function `pixmap-spec-p' has been renamed `bitmap-spec-p'
3169because `bitmap' is more in line with the usual X terminology.
3170
3171** New function `propertize'
3172
3173The new function `propertize' can be used to conveniently construct
3174strings with text properties.
3175
3176- Function: propertize STRING &rest PROPERTIES
3177
3178Value is a copy of STRING with text properties assigned as specified
3179by PROPERTIES. PROPERTIES is a sequence of pairs PROPERTY VALUE, with
3180PROPERTY being the name of a text property and VALUE being the
3181specified value of that property. Example:
3182
3183 (propertize "foo" 'face 'bold 'read-only t)
3184
3185** push and pop macros.
3186
3187Simple versions of the push and pop macros of Common Lisp
3188are now defined in Emacs Lisp. These macros allow only symbols
3189as the place that holds the list to be changed.
3190
3191(push NEWELT LISTNAME) add NEWELT to the front of LISTNAME's value.
3192(pop LISTNAME) return first elt of LISTNAME, and remove it
3193 (thus altering the value of LISTNAME).
3194
3195** New dolist and dotimes macros.
3196
3197Simple versions of the dolist and dotimes macros of Common Lisp
3198are now defined in Emacs Lisp.
3199
3200(dolist (VAR LIST [RESULT]) BODY...)
3201 Execute body once for each element of LIST,
3202 using the variable VAR to hold the current element.
3203 Then return the value of RESULT, or nil if RESULT is omitted.
3204
3205(dotimes (VAR COUNT [RESULT]) BODY...)
3206 Execute BODY with VAR bound to successive integers running from 0,
3207 inclusive, to COUNT, exclusive.
3208 Then return the value of RESULT, or nil if RESULT is omitted.
3209
3210** Regular expressions now support Posix character classes such as
3211[:alpha:], [:space:] and so on. These must be used within a character
3212class--for instance, [-[:digit:].+] matches digits or a period
3213or a sign.
3214
3215[:digit:] matches 0 through 9
3216[:cntrl:] matches ASCII control characters
3217[:xdigit:] matches 0 through 9, a through f and A through F.
3218[:blank:] matches space and tab only
3219[:graph:] matches graphic characters--everything except ASCII control chars,
3220 space, and DEL.
3221[:print:] matches printing characters--everything except ASCII control chars
3222 and DEL.
3223[:alnum:] matches letters and digits.
3224 (But at present, for multibyte characters,
3225 it matches anything that has word syntax.)
3226[:alpha:] matches letters.
3227 (But at present, for multibyte characters,
3228 it matches anything that has word syntax.)
3229[:ascii:] matches ASCII (unibyte) characters.
3230[:nonascii:] matches non-ASCII (multibyte) characters.
3231[:lower:] matches anything lower-case.
3232[:punct:] matches punctuation.
3233 (But at present, for multibyte characters,
3234 it matches anything that has non-word syntax.)
3235[:space:] matches anything that has whitespace syntax.
3236[:upper:] matches anything upper-case.
3237[:word:] matches anything that has word syntax.
3238
3239** Emacs now has built-in hash tables.
3240
3241The following functions are defined for hash tables:
3242
3243- Function: make-hash-table ARGS
3244
3245The argument list ARGS consists of keyword/argument pairs. All arguments
3246are optional. The following arguments are defined:
3247
3248:test TEST
3249
3250TEST must be a symbol specifying how to compare keys. Default is `eql'.
3251Predefined are `eq', `eql' and `equal'. If TEST is not predefined,
3252it must have been defined with `define-hash-table-test'.
3253
3254:size SIZE
3255
3256SIZE must be an integer > 0 giving a hint to the implementation how
3257many elements will be put in the hash table. Default size is 65.
3258
3259:rehash-size REHASH-SIZE
3260
3261REHASH-SIZE specifies by how much to grow a hash table once it becomes
3262full. If REHASH-SIZE is an integer, add that to the hash table's old
3263size to get the new size. Otherwise, REHASH-SIZE must be a float >
32641.0, and the new size is computed by multiplying REHASH-SIZE with the
3265old size. Default rehash size is 1.5.
3266
3267:rehash-threshold THRESHOLD
3268
3269THRESHOLD must be a float > 0 and <= 1.0 specifying when to resize the
3270hash table. It is resized when the ratio of (number of entries) /
3271(size of hash table) is >= THRESHOLD. Default threshold is 0.8.
3272
3273:weakness WEAK
3274
3275WEAK must be either nil, one of the symbols `key, `value',
3276`key-or-value', `key-and-value', or t, meaning the same as
3277`key-and-value'. Entries are removed from weak tables during garbage
3278collection if their key and/or value are not referenced elsewhere
3279outside of the hash table. Default are non-weak hash tables.
3280
3281- Function: makehash &optional TEST
3282
3283Similar to make-hash-table, but only TEST can be specified.
3284
3285- Function: hash-table-p TABLE
3286
3287Returns non-nil if TABLE is a hash table object.
3288
3289- Function: copy-hash-table TABLE
3290
3291Returns a copy of TABLE. Only the table itself is copied, keys and
3292values are shared.
3293
3294- Function: hash-table-count TABLE
3295
3296Returns the number of entries in TABLE.
3297
3298- Function: hash-table-rehash-size TABLE
3299
3300Returns the rehash size of TABLE.
3301
3302- Function: hash-table-rehash-threshold TABLE
3303
3304Returns the rehash threshold of TABLE.
3305
3306- Function: hash-table-rehash-size TABLE
3307
3308Returns the size of TABLE.
3309
3310- Function: hash-table-test TABLE
3311
3312Returns the test TABLE uses to compare keys.
3313
3314- Function: hash-table-weakness TABLE
3315
3316Returns the weakness specified for TABLE.
3317
3318- Function: clrhash TABLE
3319
3320Clear TABLE.
3321
3322- Function: gethash KEY TABLE &optional DEFAULT
3323
3324Look up KEY in TABLE and return its associated VALUE or DEFAULT if
3325not found.
3326
3327- Function: puthash KEY VALUE TABLE
3328
3329Associate KEY with VALUE in TABLE. If KEY is already associated with
3330another value, replace the old value with VALUE.
3331
3332- Function: remhash KEY TABLE
3333
3334Remove KEY from TABLE if it is there.
3335
3336- Function: maphash FUNCTION TABLE
3337
3338Call FUNCTION for all elements in TABLE. FUNCTION must take two
3339arguments KEY and VALUE.
3340
3341- Function: sxhash OBJ
3342
3343Return a hash code for Lisp object OBJ.
3344
3345- Function: define-hash-table-test NAME TEST-FN HASH-FN
3346
3347Define a new hash table test named NAME. If NAME is specified as
3348a test in `make-hash-table', the table created will use TEST-FN for
3349comparing keys, and HASH-FN to compute hash codes for keys. Test
3350and hash function are stored as symbol property `hash-table-test'
3351of NAME with a value of (TEST-FN HASH-FN).
3352
3353TEST-FN must take two arguments and return non-nil if they are the same.
3354
3355HASH-FN must take one argument and return an integer that is the hash
3356code of the argument. The function should use the whole range of
3357integer values for hash code computation, including negative integers.
3358
3359Example: The following creates a hash table whose keys are supposed to
3360be strings that are compared case-insensitively.
3361
3362 (defun case-fold-string= (a b)
3363 (compare-strings a nil nil b nil nil t))
3364
3365 (defun case-fold-string-hash (a)
3366 (sxhash (upcase a)))
3367
3368 (define-hash-table-test 'case-fold 'case-fold-string=
3369 'case-fold-string-hash))
3370
3371 (make-hash-table :test 'case-fold)
3372
3373** The Lisp reader handles circular structure.
3374
3375It now works to use the #N= and #N# constructs to represent
3376circular structures. For example, #1=(a . #1#) represents
3377a cons cell which is its own cdr.
3378
3379** The Lisp printer handles circular structure.
3380
3381If you bind print-circle to a non-nil value, the Lisp printer outputs
3382#N= and #N# constructs to represent circular and shared structure.
3383
3384** If the second argument to `move-to-column' is anything but nil or
3385t, that means replace a tab with spaces if necessary to reach the
3386specified column, but do not add spaces at the end of the line if it
3387is too short to reach that column.
3388
3389** perform-replace has a new feature: the REPLACEMENTS argument may
3390now be a cons cell (FUNCTION . DATA). This means to call FUNCTION
3391after each match to get the replacement text. FUNCTION is called with
3392two arguments: DATA, and the number of replacements already made.
3393
3394If the FROM-STRING contains any upper-case letters,
3395perform-replace also turns off `case-fold-search' temporarily
3396and inserts the replacement text without altering case in it.
3397
3398** The function buffer-size now accepts an optional argument
3399to specify which buffer to return the size of.
3400
3401** The calendar motion commands now run the normal hook
3402calendar-move-hook after moving point.
3403
3404** The new variable small-temporary-file-directory specifies a
3405directory to use for creating temporary files that are likely to be
3406small. (Certain Emacs features use this directory.) If
3407small-temporary-file-directory is nil, they use
3408temporary-file-directory instead.
3409
3410** The variable `inhibit-modification-hooks', if non-nil, inhibits all
3411the hooks that track changes in the buffer. This affects
3412`before-change-functions' and `after-change-functions', as well as
3413hooks attached to text properties and overlay properties.
3414
3415** assq-delete-all is a new function that deletes all the
3416elements of an alist which have a car `eq' to a particular value.
3417
3418** make-temp-file provides a more reliable way to create a temporary file.
3419
3420make-temp-file is used like make-temp-name, except that it actually
3421creates the file before it returns. This prevents a timing error,
3422ensuring that no other job can use the same name for a temporary file.
3423
3424** New exclusive-open feature in `write-region'
3425
3426The optional seventh arg is now called MUSTBENEW. If non-nil, it insists
3427on a check for an existing file with the same name. If MUSTBENEW
3428is `excl', that means to get an error if the file already exists;
3429never overwrite. If MUSTBENEW is neither nil nor `excl', that means
3430ask for confirmation before overwriting, but do go ahead and
3431overwrite the file if the user gives confirmation.
3432
3433If the MUSTBENEW argument in `write-region' is `excl',
3434that means to use a special feature in the `open' system call
3435to get an error if the file exists at that time.
3436The error reported is `file-already-exists'.
3437
3438** Function `format' now handles text properties.
3439
3440Text properties of the format string are applied to the result string.
3441If the result string is longer than the format string, text properties
3442ending at the end of the format string are extended to the end of the
3443result string.
3444
3445Text properties from string arguments are applied to the result
3446string where arguments appear in the result string.
3447
3448Example:
3449
3450 (let ((s1 "hello, %s")
3451 (s2 "world"))
3452 (put-text-property 0 (length s1) 'face 'bold s1)
3453 (put-text-property 0 (length s2) 'face 'italic s2)
3454 (format s1 s2))
3455
3456results in a bold-face string with an italic `world' at the end.
3457
3458** Messages can now be displayed with text properties.
3459
3460Text properties are handled as described above for function `format'.
3461The following example displays a bold-face message with an italic
3462argument in it.
3463
3464 (let ((msg "hello, %s!")
3465 (arg "world"))
3466 (put-text-property 0 (length msg) 'face 'bold msg)
3467 (put-text-property 0 (length arg) 'face 'italic arg)
3468 (message msg arg))
3469
3470** Sound support
3471
3472Emacs supports playing sound files on GNU/Linux and the free BSDs
3473(Voxware driver and native BSD driver, aka as Luigi's driver).
3474
3475Currently supported file formats are RIFF-WAVE (*.wav) and Sun Audio
3476(*.au). You must configure Emacs with the option `--with-sound=yes'
3477to enable sound support.
3478
3479Sound files can be played by calling (play-sound SOUND). SOUND is a
3480list of the form `(sound PROPERTY...)'. The function is only defined
3481when sound support is present for the system on which Emacs runs. The
3482functions runs `play-sound-functions' with one argument which is the
3483sound to play, before playing the sound.
3484
3485The following sound properties are supported:
3486
3487- `:file FILE'
3488
3489FILE is a file name. If FILE isn't an absolute name, it will be
3490searched relative to `data-directory'.
3491
3492- `:data DATA'
3493
3494DATA is a string containing sound data. Either :file or :data
3495may be present, but not both.
3496
3497- `:volume VOLUME'
3498
3499VOLUME must be an integer in the range 0..100 or a float in the range
35000..1. This property is optional.
3501
3502- `:device DEVICE'
3503
3504DEVICE is a string specifying the system device on which to play the
3505sound. The default device is system-dependent.
3506
3507Other properties are ignored.
3508
3509An alternative interface is called as
3510(play-sound-file FILE &optional VOLUME DEVICE).
3511
3512** `multimedia' is a new Finder keyword and Custom group.
3513
3514** keywordp is a new predicate to test efficiently for an object being
3515a keyword symbol.
3516
3517** Changes to garbage collection
3518
3519*** The function garbage-collect now additionally returns the number
3520of live and free strings.
3521
3522*** There is a new variable `strings-consed' holding the number of
3523strings that have been consed so far.
3524
3525
3526* Lisp-level Display features added after release 2.6 of the Emacs
3527Lisp Manual
3528
3529** The user-option `resize-mini-windows' controls how Emacs resizes
3530mini-windows.
3531
3532** The function `pos-visible-in-window-p' now has a third optional
3533argument, PARTIALLY. If a character is only partially visible, nil is
3534returned, unless PARTIALLY is non-nil.
3535
3536** On window systems, `glyph-table' is no longer used.
3537
3538** Help strings in menu items are now used to provide `help-echo' text.
3539
3540** The function `image-size' can be used to determine the size of an
3541image.
3542
3543- Function: image-size SPEC &optional PIXELS FRAME
3544
3545Return the size of an image as a pair (WIDTH . HEIGHT).
3546
3547SPEC is an image specification. PIXELS non-nil means return sizes
3548measured in pixels, otherwise return sizes measured in canonical
3549character units (fractions of the width/height of the frame's default
3550font). FRAME is the frame on which the image will be displayed.
3551FRAME nil or omitted means use the selected frame.
3552
3553** The function `image-mask-p' can be used to determine if an image
3554has a mask bitmap.
3555
3556- Function: image-mask-p SPEC &optional FRAME
3557
3558Return t if image SPEC has a mask bitmap.
3559FRAME is the frame on which the image will be displayed. FRAME nil
3560or omitted means use the selected frame.
3561
3562** The function `find-image' can be used to find a usable image
3563satisfying one of a list of specifications.
3564
3565** The STRING argument of `put-image' and `insert-image' is now
3566optional.
3567
3568** Image specifications may contain the property `:ascent center' (see
3569below).
3570
3571
3572* New Lisp-level Display features in Emacs 21.1
3573
3574** The function tty-suppress-bold-inverse-default-colors can be used
3575to make Emacs avoid displaying text with bold black foreground on TTYs.
3576
3577Some terminals, notably PC consoles, emulate bold text by displaying
3578text in brighter colors. On such a console, a bold black foreground
3579is displayed in a gray color. If this turns out to be hard to read on
3580your monitor---the problem occurred with the mode line on
3581laptops---you can instruct Emacs to ignore the text's boldness, and to
3582just display it black instead.
3583
3584This situation can't be detected automatically. You will have to put
3585a line like
3586
3587 (tty-suppress-bold-inverse-default-colors t)
3588
3589in your `.emacs'.
3590
3591** New face implementation.
3592
3593Emacs faces have been reimplemented from scratch. They don't use XLFD
3594font names anymore and face merging now works as expected.
3595
3596*** New faces.
3597
3598Each face can specify the following display attributes:
3599
3600 1. Font family or fontset alias name.
3601
3602 2. Relative proportionate width, aka character set width or set
3603 width (swidth), e.g. `semi-compressed'.
3604
3605 3. Font height in 1/10pt
3606
3607 4. Font weight, e.g. `bold'.
3608
3609 5. Font slant, e.g. `italic'.
3610
3611 6. Foreground color.
3612
3613 7. Background color.
3614
3615 8. Whether or not characters should be underlined, and in what color.
3616
3617 9. Whether or not characters should be displayed in inverse video.
3618
3619 10. A background stipple, a bitmap.
3620
3621 11. Whether or not characters should be overlined, and in what color.
3622
3623 12. Whether or not characters should be strike-through, and in what
3624 color.
3625
3626 13. Whether or not a box should be drawn around characters, its
3627 color, the width of the box lines, and 3D appearance.
3628
3629Faces are frame-local by nature because Emacs allows to define the
3630same named face (face names are symbols) differently for different
3631frames. Each frame has an alist of face definitions for all named
3632faces. The value of a named face in such an alist is a Lisp vector
3633with the symbol `face' in slot 0, and a slot for each of the face
3634attributes mentioned above.
3635
3636There is also a global face alist `face-new-frame-defaults'. Face
3637definitions from this list are used to initialize faces of newly
3638created frames.
3639
3640A face doesn't have to specify all attributes. Those not specified
3641have a nil value. Faces specifying all attributes are called
3642`fully-specified'.
3643
3644*** Face merging.
3645
3646The display style of a given character in the text is determined by
3647combining several faces. This process is called `face merging'. Any
3648aspect of the display style that isn't specified by overlays or text
3649properties is taken from the `default' face. Since it is made sure
3650that the default face is always fully-specified, face merging always
3651results in a fully-specified face.
3652
3653*** Face realization.
3654
3655After all face attributes for a character have been determined by
3656merging faces of that character, that face is `realized'. The
3657realization process maps face attributes to what is physically
3658available on the system where Emacs runs. The result is a `realized
3659face' in form of an internal structure which is stored in the face
3660cache of the frame on which it was realized.
3661
3662Face realization is done in the context of the charset of the
3663character to display because different fonts and encodings are used
3664for different charsets. In other words, for characters of different
3665charsets, different realized faces are needed to display them.
3666
3667Except for composite characters, faces are always realized for a
3668specific character set and contain a specific font, even if the face
3669being realized specifies a fontset. The reason is that the result of
3670the new font selection stage is better than what can be done with
3671statically defined font name patterns in fontsets.
3672
3673In unibyte text, Emacs' charsets aren't applicable; function
3674`char-charset' reports ASCII for all characters, including those >
36750x7f. The X registry and encoding of fonts to use is determined from
3676the variable `face-default-registry' in this case. The variable is
3677initialized at Emacs startup time from the font the user specified for
3678Emacs.
3679
3680Currently all unibyte text, i.e. all buffers with
3681`enable-multibyte-characters' nil are displayed with fonts of the same
3682registry and encoding `face-default-registry'. This is consistent
3683with the fact that languages can also be set globally, only.
3684
3685**** Clearing face caches.
3686
3687The Lisp function `clear-face-cache' can be called to clear face caches
3688on all frames. If called with a non-nil argument, it will also unload
3689unused fonts.
3690
3691*** Font selection.
3692
3693Font selection tries to find the best available matching font for a
3694given (charset, face) combination. This is done slightly differently
3695for faces specifying a fontset, or a font family name.
3696
3697If the face specifies a fontset name, that fontset determines a
3698pattern for fonts of the given charset. If the face specifies a font
3699family, a font pattern is constructed. Charset symbols have a
3700property `x-charset-registry' for that purpose that maps a charset to
3701an XLFD registry and encoding in the font pattern constructed.
3702
3703Available fonts on the system on which Emacs runs are then matched
3704against the font pattern. The result of font selection is the best
3705match for the given face attributes in this font list.
3706
3707Font selection can be influenced by the user.
3708
3709The user can specify the relative importance he gives the face
3710attributes width, height, weight, and slant by setting
3711face-font-selection-order (faces.el) to a list of face attribute
3712names. The default is (:width :height :weight :slant), and means
3713that font selection first tries to find a good match for the font
3714width specified by a face, then---within fonts with that width---tries
3715to find a best match for the specified font height, etc.
3716
3717Setting `face-font-family-alternatives' allows the user to specify
3718alternative font families to try if a family specified by a face
3719doesn't exist.
3720
3721Setting `face-font-registry-alternatives' allows the user to specify
3722all alternative font registry names to try for a face specifying a
3723registry.
3724
3725Please note that the interpretations of the above two variables are
3726slightly different.
3727
3728Setting face-ignored-fonts allows the user to ignore specific fonts.
3729
3730
3731**** Scalable fonts
3732
3733Emacs can make use of scalable fonts but doesn't do so by default,
3734since the use of too many or too big scalable fonts may crash XFree86
3735servers.
3736
3737To enable scalable font use, set the variable
3738`scalable-fonts-allowed'. A value of nil, the default, means never use
3739scalable fonts. A value of t means any scalable font may be used.
3740Otherwise, the value must be a list of regular expressions. A
3741scalable font may then be used if it matches a regular expression from
3742that list. Example:
3743
3744 (setq scalable-fonts-allowed '("muleindian-2$"))
3745
3746allows the use of scalable fonts with registry `muleindian-2'.
3747
3748*** Functions and variables related to font selection.
3749
3750- Function: x-family-fonts &optional FAMILY FRAME
3751
3752Return a list of available fonts of family FAMILY on FRAME. If FAMILY
3753is omitted or nil, list all families. Otherwise, FAMILY must be a
3754string, possibly containing wildcards `?' and `*'.
3755
3756If FRAME is omitted or nil, use the selected frame. Each element of
3757the result is a vector [FAMILY WIDTH POINT-SIZE WEIGHT SLANT FIXED-P
3758FULL REGISTRY-AND-ENCODING]. FAMILY is the font family name.
3759POINT-SIZE is the size of the font in 1/10 pt. WIDTH, WEIGHT, and
3760SLANT are symbols describing the width, weight and slant of the font.
3761These symbols are the same as for face attributes. FIXED-P is non-nil
3762if the font is fixed-pitch. FULL is the full name of the font, and
3763REGISTRY-AND-ENCODING is a string giving the registry and encoding of
3764the font. The result list is sorted according to the current setting
3765of the face font sort order.
3766
3767- Function: x-font-family-list
3768
3769Return a list of available font families on FRAME. If FRAME is
3770omitted or nil, use the selected frame. Value is a list of conses
3771(FAMILY . FIXED-P) where FAMILY is a font family, and FIXED-P is
3772non-nil if fonts of that family are fixed-pitch.
3773
3774- Variable: font-list-limit
3775
3776Limit for font matching. If an integer > 0, font matching functions
3777won't load more than that number of fonts when searching for a
3778matching font. The default is currently 100.
3779
3780*** Setting face attributes.
3781
3782For the most part, the new face implementation is interface-compatible
3783with the old one. Old face attribute related functions are now
3784implemented in terms of the new functions `set-face-attribute' and
3785`face-attribute'.
3786
3787Face attributes are identified by their names which are keyword
3788symbols. All attributes can be set to `unspecified'.
3789
3790The following attributes are recognized:
3791
3792`:family'
3793
3794VALUE must be a string specifying the font family, e.g. ``courier'',
3795or a fontset alias name. If a font family is specified, wild-cards `*'
3796and `?' are allowed.
3797
3798`:width'
3799
3800VALUE specifies the relative proportionate width of the font to use.
3801It must be one of the symbols `ultra-condensed', `extra-condensed',
3802`condensed', `semi-condensed', `normal', `semi-expanded', `expanded',
3803`extra-expanded', or `ultra-expanded'.
3804
3805`:height'
3806
3807VALUE must be either an integer specifying the height of the font to use
3808in 1/10 pt, a floating point number specifying the amount by which to
3809scale any underlying face, or a function, which is called with the old
3810height (from the underlying face), and should return the new height.
3811
3812`:weight'
3813
3814VALUE specifies the weight of the font to use. It must be one of the
3815symbols `ultra-bold', `extra-bold', `bold', `semi-bold', `normal',
3816`semi-light', `light', `extra-light', `ultra-light'.
3817
3818`:slant'
3819
3820VALUE specifies the slant of the font to use. It must be one of the
3821symbols `italic', `oblique', `normal', `reverse-italic', or
3822`reverse-oblique'.
3823
3824`:foreground', `:background'
3825
3826VALUE must be a color name, a string.
3827
3828`:underline'
3829
3830VALUE specifies whether characters in FACE should be underlined. If
3831VALUE is t, underline with foreground color of the face. If VALUE is
3832a string, underline with that color. If VALUE is nil, explicitly
3833don't underline.
3834
3835`:overline'
3836
3837VALUE specifies whether characters in FACE should be overlined. If
3838VALUE is t, overline with foreground color of the face. If VALUE is a
3839string, overline with that color. If VALUE is nil, explicitly don't
3840overline.
3841
3842`:strike-through'
3843
3844VALUE specifies whether characters in FACE should be drawn with a line
3845striking through them. If VALUE is t, use the foreground color of the
3846face. If VALUE is a string, strike-through with that color. If VALUE
3847is nil, explicitly don't strike through.
3848
3849`:box'
3850
3851VALUE specifies whether characters in FACE should have a box drawn
3852around them. If VALUE is nil, explicitly don't draw boxes. If
3853VALUE is t, draw a box with lines of width 1 in the foreground color
3854of the face. If VALUE is a string, the string must be a color name,
3855and the box is drawn in that color with a line width of 1. Otherwise,
3856VALUE must be a property list of the form `(:line-width WIDTH
3857:color COLOR :style STYLE)'. If a keyword/value pair is missing from
3858the property list, a default value will be used for the value, as
3859specified below. WIDTH specifies the width of the lines to draw; it
3860defaults to 1. COLOR is the name of the color to draw in, default is
3861the foreground color of the face for simple boxes, and the background
3862color of the face for 3D boxes. STYLE specifies whether a 3D box
3863should be draw. If STYLE is `released-button', draw a box looking
3864like a released 3D button. If STYLE is `pressed-button' draw a box
3865that appears like a pressed button. If STYLE is nil, the default if
3866the property list doesn't contain a style specification, draw a 2D
3867box.
3868
3869`:inverse-video'
3870
3871VALUE specifies whether characters in FACE should be displayed in
3872inverse video. VALUE must be one of t or nil.
3873
3874`:stipple'
3875
3876If VALUE is a string, it must be the name of a file of pixmap data.
3877The directories listed in the `x-bitmap-file-path' variable are
3878searched. Alternatively, VALUE may be a list of the form (WIDTH
3879HEIGHT DATA) where WIDTH and HEIGHT are the size in pixels, and DATA
3880is a string containing the raw bits of the bitmap. VALUE nil means
3881explicitly don't use a stipple pattern.
3882
3883For convenience, attributes `:family', `:width', `:height', `:weight',
3884and `:slant' may also be set in one step from an X font name:
3885
3886`:font'
3887
3888Set font-related face attributes from VALUE. VALUE must be a valid
3889XLFD font name. If it is a font name pattern, the first matching font
3890is used--this is for compatibility with the behavior of previous
3891versions of Emacs.
3892
3893For compatibility with Emacs 20, keywords `:bold' and `:italic' can
3894be used to specify that a bold or italic font should be used. VALUE
3895must be t or nil in that case. A value of `unspecified' is not allowed."
3896
3897Please see also the documentation of `set-face-attribute' and
3898`defface'.
3899
3900`:inherit'
3901
3902VALUE is the name of a face from which to inherit attributes, or a list
3903of face names. Attributes from inherited faces are merged into the face
3904like an underlying face would be, with higher priority than underlying faces.
3905
3906*** Face attributes and X resources
3907
3908The following X resource names can be used to set face attributes
3909from X resources:
3910
3911 Face attribute X resource class
3912-----------------------------------------------------------------------
3913 :family attributeFamily . Face.AttributeFamily
3914 :width attributeWidth Face.AttributeWidth
3915 :height attributeHeight Face.AttributeHeight
3916 :weight attributeWeight Face.AttributeWeight
3917 :slant attributeSlant Face.AttributeSlant
3918 foreground attributeForeground Face.AttributeForeground
3919 :background attributeBackground . Face.AttributeBackground
3920 :overline attributeOverline Face.AttributeOverline
3921 :strike-through attributeStrikeThrough Face.AttributeStrikeThrough
3922 :box attributeBox Face.AttributeBox
3923 :underline attributeUnderline Face.AttributeUnderline
3924 :inverse-video attributeInverse Face.AttributeInverse
3925 :stipple attributeStipple Face.AttributeStipple
3926 or attributeBackgroundPixmap
3927 Face.AttributeBackgroundPixmap
3928 :font attributeFont Face.AttributeFont
3929 :bold attributeBold Face.AttributeBold
3930 :italic attributeItalic . Face.AttributeItalic
3931 :font attributeFont Face.AttributeFont
3932
3933*** Text property `face'.
3934
3935The value of the `face' text property can now be a single face
3936specification or a list of such specifications. Each face
3937specification can be
3938
39391. A symbol or string naming a Lisp face.
3940
39412. A property list of the form (KEYWORD VALUE ...) where each
3942 KEYWORD is a face attribute name, and VALUE is an appropriate value
3943 for that attribute. Please see the doc string of `set-face-attribute'
3944 for face attribute names.
3945
39463. Conses of the form (FOREGROUND-COLOR . COLOR) or
3947 (BACKGROUND-COLOR . COLOR) where COLOR is a color name. This is
3948 for compatibility with previous Emacs versions.
3949
3950** Support functions for colors on text-only terminals.
3951
3952The function `tty-color-define' can be used to define colors for use
3953on TTY and MSDOS frames. It maps a color name to a color number on
3954the terminal. Emacs defines a couple of common color mappings by
3955default. You can get defined colors with a call to
3956`defined-colors'. The function `tty-color-clear' can be
3957used to clear the mapping table.
3958
3959** Unified support for colors independent of frame type.
3960
3961The new functions `defined-colors', `color-defined-p', `color-values',
3962and `display-color-p' work for any type of frame. On frames whose
3963type is neither x nor w32, these functions transparently map X-style
3964color specifications to the closest colors supported by the frame
3965display. Lisp programs should use these new functions instead of the
3966old `x-defined-colors', `x-color-defined-p', `x-color-values', and
3967`x-display-color-p'. (The old function names are still available for
3968compatibility; they are now aliases of the new names.) Lisp programs
3969should no more look at the value of the variable window-system to
3970modify their color-related behavior.
3971
3972The primitives `color-gray-p' and `color-supported-p' also work for
3973any frame type.
3974
3975** Platform-independent functions to describe display capabilities.
3976
3977The new functions `display-mouse-p', `display-popup-menus-p',
3978`display-graphic-p', `display-selections-p', `display-screens',
3979`display-pixel-width', `display-pixel-height', `display-mm-width',
3980`display-mm-height', `display-backing-store', `display-save-under',
3981`display-planes', `display-color-cells', `display-visual-class', and
3982`display-grayscale-p' describe the basic capabilities of a particular
3983display. Lisp programs should call these functions instead of testing
3984the value of the variables `window-system' or `system-type', or calling
3985platform-specific functions such as `x-display-pixel-width'.
3986
3987The new function `display-images-p' returns non-nil if a particular
3988display can display image files.
3989
3990** The minibuffer prompt is now actually inserted in the minibuffer.
3991
3992This makes it possible to scroll through the prompt, if you want to.
3993To disallow this completely (like previous versions of emacs), customize
3994the variable `minibuffer-prompt-properties', and turn on the
3995`Inviolable' option.
3996
3997The function `minibuffer-prompt-end' returns the current position of the
3998end of the minibuffer prompt, if the minibuffer is current.
3999Otherwise, it returns `(point-min)'.
4000
4001** New `field' abstraction in buffers.
4002
4003There is now code to support an abstraction called `fields' in emacs
4004buffers. A field is a contiguous region of text with the same `field'
4005property (which can be a text property or an overlay).
4006
4007Many emacs functions, such as forward-word, forward-sentence,
4008forward-paragraph, beginning-of-line, etc., stop moving when they come
4009to the boundary between fields; beginning-of-line and end-of-line will
4010not let the point move past the field boundary, but other movement
4011commands continue into the next field if repeated. Stopping at field
4012boundaries can be suppressed programmatically by binding
4013`inhibit-field-text-motion' to a non-nil value around calls to these
4014functions.
4015
4016Now that the minibuffer prompt is inserted into the minibuffer, it is in
4017a separate field from the user-input part of the buffer, so that common
4018editing commands treat the user's text separately from the prompt.
4019
4020The following functions are defined for operating on fields:
4021
4022- Function: constrain-to-field NEW-POS OLD-POS &optional ESCAPE-FROM-EDGE ONLY-IN-LINE INHIBIT-CAPTURE-PROPERTY
4023
4024Return the position closest to NEW-POS that is in the same field as OLD-POS.
4025
4026A field is a region of text with the same `field' property.
4027If NEW-POS is nil, then the current point is used instead, and set to the
4028constrained position if that is different.
4029
4030If OLD-POS is at the boundary of two fields, then the allowable
4031positions for NEW-POS depends on the value of the optional argument
4032ESCAPE-FROM-EDGE: If ESCAPE-FROM-EDGE is nil, then NEW-POS is
4033constrained to the field that has the same `field' char-property
4034as any new characters inserted at OLD-POS, whereas if ESCAPE-FROM-EDGE
4035is non-nil, NEW-POS is constrained to the union of the two adjacent
4036fields. Additionally, if two fields are separated by another field with
4037the special value `boundary', then any point within this special field is
4038also considered to be `on the boundary'.
4039
4040If the optional argument ONLY-IN-LINE is non-nil and constraining
4041NEW-POS would move it to a different line, NEW-POS is returned
4042unconstrained. This useful for commands that move by line, like
4043C-n or C-a, which should generally respect field boundaries
4044only in the case where they can still move to the right line.
4045
4046If the optional argument INHIBIT-CAPTURE-PROPERTY is non-nil, and OLD-POS has
4047a non-nil property of that name, then any field boundaries are ignored.
4048
4049Field boundaries are not noticed if `inhibit-field-text-motion' is non-nil.
4050
4051- Function: delete-field &optional POS
4052
4053Delete the field surrounding POS.
4054A field is a region of text with the same `field' property.
4055If POS is nil, the value of point is used for POS.
4056
4057- Function: field-beginning &optional POS ESCAPE-FROM-EDGE
4058
4059Return the beginning of the field surrounding POS.
4060A field is a region of text with the same `field' property.
4061If POS is nil, the value of point is used for POS.
4062If ESCAPE-FROM-EDGE is non-nil and POS is at the beginning of its
4063field, then the beginning of the *previous* field is returned.
4064
4065- Function: field-end &optional POS ESCAPE-FROM-EDGE
4066
4067Return the end of the field surrounding POS.
4068A field is a region of text with the same `field' property.
4069If POS is nil, the value of point is used for POS.
4070If ESCAPE-FROM-EDGE is non-nil and POS is at the end of its field,
4071then the end of the *following* field is returned.
4072
4073- Function: field-string &optional POS
4074
4075Return the contents of the field surrounding POS as a string.
4076A field is a region of text with the same `field' property.
4077If POS is nil, the value of point is used for POS.
4078
4079- Function: field-string-no-properties &optional POS
4080
4081Return the contents of the field around POS, without text-properties.
4082A field is a region of text with the same `field' property.
4083If POS is nil, the value of point is used for POS.
4084
4085** Image support.
4086
4087Emacs can now display images. Images are inserted into text by giving
4088strings or buffer text a `display' text property containing one of
4089(AREA IMAGE) or IMAGE. The display of the `display' property value
4090replaces the display of the characters having that property.
4091
4092If the property value has the form (AREA IMAGE), AREA must be one of
4093`(margin left-margin)', `(margin right-margin)' or `(margin nil)'. If
4094AREA is `(margin nil)', IMAGE will be displayed in the text area of a
4095window, otherwise it will be displayed in the left or right marginal
4096area.
4097
4098IMAGE is an image specification.
4099
4100*** Image specifications
4101
4102Image specifications are lists of the form `(image PROPS)' where PROPS
4103is a property list whose keys are keyword symbols. Each
4104specifications must contain a property `:type TYPE' with TYPE being a
4105symbol specifying the image type, e.g. `xbm'. Properties not
4106described below are ignored.
4107
4108The following is a list of properties all image types share.
4109
4110`:ascent ASCENT'
4111
4112ASCENT must be a number in the range 0..100, or the symbol `center'.
4113If it is a number, it specifies the percentage of the image's height
4114to use for its ascent.
4115
4116If not specified, ASCENT defaults to the value 50 which means that the
4117image will be centered with the base line of the row it appears in.
4118
4119If ASCENT is `center' the image is vertically centered around a
4120centerline which is the vertical center of text drawn at the position
4121of the image, in the manner specified by the text properties and
4122overlays that apply to the image.
4123
4124`:margin MARGIN'
4125
4126MARGIN must be either a number >= 0 specifying how many pixels to put
4127as margin around the image, or a pair (X . Y) with X specifying the
4128horizontal margin and Y specifying the vertical margin. Default is 0.
4129
4130`:relief RELIEF'
4131
4132RELIEF is analogous to the `:relief' attribute of faces. Puts a relief
4133around an image.
4134
4135`:conversion ALGO'
4136
4137Apply an image algorithm to the image before displaying it.
4138
4139ALGO `laplace' or `emboss' means apply a Laplace or ``emboss''
4140edge-detection algorithm to the image.
4141
4142ALGO `(edge-detection :matrix MATRIX :color-adjust ADJUST)' means
4143apply a general edge-detection algorithm. MATRIX must be either a
4144nine-element list or a nine-element vector of numbers. A pixel at
4145position x/y in the transformed image is computed from original pixels
4146around that position. MATRIX specifies, for each pixel in the
4147neighborhood of x/y, a factor with which that pixel will influence the
4148transformed pixel; element 0 specifies the factor for the pixel at
4149x-1/y-1, element 1 the factor for the pixel at x/y-1 etc. as shown
4150below.
4151
4152 (x-1/y-1 x/y-1 x+1/y-1
4153 x-1/y x/y x+1/y
4154 x-1/y+1 x/y+1 x+1/y+1)
4155
4156The resulting pixel is computed from the color intensity of the color
4157resulting from summing up the RGB values of surrounding pixels,
4158multiplied by the specified factors, and dividing that sum by the sum
4159of the factors' absolute values.
4160
4161Laplace edge-detection currently uses a matrix of
4162
4163 (1 0 0
4164 0 0 0
4165 9 9 -1)
4166
4167Emboss edge-detection uses a matrix of
4168
4169 ( 2 -1 0
4170 -1 0 1
4171 0 1 -2)
4172
4173ALGO `disabled' means transform the image so that it looks
4174``disabled''.
4175
4176`:mask MASK'
4177
4178If MASK is `heuristic' or `(heuristic BG)', build a clipping mask for
4179the image, so that the background of a frame is visible behind the
4180image. If BG is not specified, or if BG is t, determine the
4181background color of the image by looking at the 4 corners of the
4182image, assuming the most frequently occurring color from the corners is
4183the background color of the image. Otherwise, BG must be a list `(RED
4184GREEN BLUE)' specifying the color to assume for the background of the
4185image.
4186
4187If MASK is nil, remove a mask from the image, if it has one. Images
4188in some formats include a mask which can be removed by specifying
4189`:mask nil'.
4190
4191`:file FILE'
4192
4193Load image from FILE. If FILE is not absolute after expanding it,
4194search for the image in `data-directory'. Some image types support
4195building images from data. When this is done, no `:file' property
4196may be present in the image specification.
4197
4198`:data DATA'
4199
4200Get image data from DATA. (As of this writing, this is not yet
4201supported for image type `postscript'). Either :file or :data may be
4202present in an image specification, but not both. All image types
4203support strings as DATA, some types allow additional types of DATA.
4204
4205*** Supported image types
4206
4207**** XBM, image type `xbm'.
4208
4209XBM images don't require an external library. Additional image
4210properties supported are:
4211
4212`:foreground FG'
4213
4214FG must be a string specifying the image foreground color, or nil
4215meaning to use the default. Default is the frame's foreground color.
4216
4217`:background BG'
4218
4219BG must be a string specifying the image background color, or nil
4220meaning to use the default. Default is the frame's background color.
4221
4222XBM images can be constructed from data instead of file. In this
4223case, the image specification must contain the following properties
4224instead of a `:file' property.
4225
4226`:width WIDTH'
4227
4228WIDTH specifies the width of the image in pixels.
4229
4230`:height HEIGHT'
4231
4232HEIGHT specifies the height of the image in pixels.
4233
4234`:data DATA'
4235
4236DATA must be either
4237
4238 1. a string large enough to hold the bitmap data, i.e. it must
4239 have a size >= (WIDTH + 7) / 8 * HEIGHT
4240
4241 2. a bool-vector of size >= WIDTH * HEIGHT
4242
4243 3. a vector of strings or bool-vectors, one for each line of the
4244 bitmap.
4245
4246 4. a string that's an in-memory XBM file. Neither width nor
4247 height may be specified in this case because these are defined
4248 in the file.
4249
4250**** XPM, image type `xpm'
4251
4252XPM images require the external library `libXpm', package
4253`xpm-3.4k.tar.gz', version 3.4k or later. Make sure the library is
4254found when Emacs is configured by supplying appropriate paths via
4255`--x-includes' and `--x-libraries'.
4256
4257Additional image properties supported are:
4258
4259`:color-symbols SYMBOLS'
4260
4261SYMBOLS must be a list of pairs (NAME . COLOR), with NAME being the
4262name of color as it appears in an XPM file, and COLOR being an X color
4263name.
4264
4265XPM images can be built from memory instead of files. In that case,
4266add a `:data' property instead of a `:file' property.
4267
4268The XPM library uses libz in its implementation so that it is able
4269to display compressed images.
4270
4271**** PBM, image type `pbm'
4272
4273PBM images don't require an external library. Color, gray-scale and
4274mono images are supported. Additional image properties supported for
4275mono images are:
4276
4277`:foreground FG'
4278
4279FG must be a string specifying the image foreground color, or nil
4280meaning to use the default. Default is the frame's foreground color.
4281
4282`:background FG'
4283
4284BG must be a string specifying the image background color, or nil
4285meaning to use the default. Default is the frame's background color.
4286
4287**** JPEG, image type `jpeg'
4288
4289Support for JPEG images requires the external library `libjpeg',
4290package `jpegsrc.v6a.tar.gz', or later. There are no additional image
4291properties defined.
4292
4293**** TIFF, image type `tiff'
4294
4295Support for TIFF images requires the external library `libtiff',
4296package `tiff-v3.4-tar.gz', or later. There are no additional image
4297properties defined.
4298
4299**** GIF, image type `gif'
4300
4301Support for GIF images requires the external library `libungif', package
4302`libungif-4.1.0', or later.
4303
4304Additional image properties supported are:
4305
4306`:index INDEX'
4307
4308INDEX must be an integer >= 0. Load image number INDEX from a
4309multi-image GIF file. If INDEX is too large, the image displays
4310as a hollow box.
4311
4312This could be used to implement limited support for animated GIFs.
4313For example, the following function displays a multi-image GIF file
4314at point-min in the current buffer, switching between sub-images
4315every 0.1 seconds.
4316
4317(defun show-anim (file max)
4318 "Display multi-image GIF file FILE which contains MAX subimages."
4319 (display-anim (current-buffer) file 0 max t))
4320
4321(defun display-anim (buffer file idx max first-time)
4322 (when (= idx max)
4323 (setq idx 0))
4324 (let ((img (create-image file nil nil :index idx)))
4325 (save-excursion
4326 (set-buffer buffer)
4327 (goto-char (point-min))
4328 (unless first-time (delete-char 1))
4329 (insert-image img "x"))
4330 (run-with-timer 0.1 nil 'display-anim buffer file (1+ idx) max nil)))
4331
4332**** PNG, image type `png'
4333
4334Support for PNG images requires the external library `libpng',
4335package `libpng-1.0.2.tar.gz', or later. There are no additional image
4336properties defined.
4337
4338**** Ghostscript, image type `postscript'.
4339
4340Additional image properties supported are:
4341
4342`:pt-width WIDTH'
4343
4344WIDTH is width of the image in pt (1/72 inch). WIDTH must be an
4345integer. This is a required property.
4346
4347`:pt-height HEIGHT'
4348
4349HEIGHT specifies the height of the image in pt (1/72 inch). HEIGHT
4350must be a integer. This is an required property.
4351
4352`:bounding-box BOX'
4353
4354BOX must be a list or vector of 4 integers giving the bounding box of
4355the PS image, analogous to the `BoundingBox' comment found in PS
4356files. This is an required property.
4357
4358Part of the Ghostscript interface is implemented in Lisp. See
4359lisp/gs.el.
4360
4361*** Lisp interface.
4362
4363The variable `image-types' contains a list of those image types
4364which are supported in the current configuration.
4365
4366Images are stored in an image cache and removed from the cache when
4367they haven't been displayed for `image-cache-eviction-delay seconds.
4368The function `clear-image-cache' can be used to clear the image cache
4369manually. Images in the cache are compared with `equal', i.e. all
4370images with `equal' specifications share the same image.
4371
4372*** Simplified image API, image.el
4373
4374The new Lisp package image.el contains functions that simplify image
4375creation and putting images into text. The function `create-image'
4376can be used to create images. The macro `defimage' can be used to
4377define an image based on available image types. The functions
4378`put-image' and `insert-image' can be used to insert an image into a
4379buffer.
4380
4381** Display margins.
4382
4383Windows can now have margins which are used for special text
4384and images.
4385
4386To give a window margins, either set the buffer-local variables
4387`left-margin-width' and `right-margin-width', or call
4388`set-window-margins'. The function `window-margins' can be used to
4389obtain the current settings. To make `left-margin-width' and
4390`right-margin-width' take effect, you must set them before displaying
4391the buffer in a window, or use `set-window-buffer' to force an update
4392of the display margins.
4393
4394You can put text in margins by giving it a `display' text property
4395containing a pair of the form `(LOCATION . VALUE)', where LOCATION is
4396one of `left-margin' or `right-margin' or nil. VALUE can be either a
4397string, an image specification or a stretch specification (see later
4398in this file).
4399
4400** Help display
4401
4402Emacs displays short help messages in the echo area, when the mouse
4403moves over a tool-bar item or a piece of text that has a text property
4404`help-echo'. This feature also applies to strings in the mode line
4405that have a `help-echo' property.
4406
4407If the value of the `help-echo' property is a function, that function
4408is called with three arguments WINDOW, OBJECT and POSITION. WINDOW is
4409the window in which the help was found.
4410
4411If OBJECT is a buffer, POS is the position in the buffer where the
4412`help-echo' text property was found.
4413
4414If OBJECT is an overlay, that overlay has a `help-echo' property, and
4415POS is the position in the overlay's buffer under the mouse.
4416
4417If OBJECT is a string (an overlay string or a string displayed with
4418the `display' property), POS is the position in that string under the
4419mouse.
4420
4421If the value of the `help-echo' property is neither a function nor a
4422string, it is evaluated to obtain a help string.
4423
4424For tool-bar and menu-bar items, their key definition is used to
4425determine the help to display. If their definition contains a
4426property `:help FORM', FORM is evaluated to determine the help string.
4427For tool-bar items without a help form, the caption of the item is
4428used as help string.
4429
4430The hook `show-help-function' can be set to a function that displays
4431the help string differently. For example, enabling a tooltip window
4432causes the help display to appear there instead of in the echo area.
4433
4434** Vertical fractional scrolling.
4435
4436The display of text in windows can be scrolled smoothly in pixels.
4437This is useful, for example, for making parts of large images visible.
4438
4439The function `window-vscroll' returns the current value of vertical
4440scrolling, a non-negative fraction of the canonical character height.
4441The function `set-window-vscroll' can be used to set the vertical
4442scrolling value. Here is an example of how these function might be
4443used.
4444
4445 (global-set-key [A-down]
4446 #'(lambda ()
4447 (interactive)
4448 (set-window-vscroll (selected-window)
4449 (+ 0.5 (window-vscroll)))))
4450 (global-set-key [A-up]
4451 #'(lambda ()
4452 (interactive)
4453 (set-window-vscroll (selected-window)
4454 (- (window-vscroll) 0.5)))))
4455
4456** New hook `fontification-functions'.
4457
4458Functions from `fontification-functions' are called from redisplay
4459when it encounters a region of text that is not yet fontified. This
4460variable automatically becomes buffer-local when set. Each function
4461is called with one argument, POS.
4462
4463At least one of the hook functions should fontify one or more
4464characters starting at POS in the current buffer. It should mark them
4465as fontified by giving them a non-nil value of the `fontified' text
4466property. It may be reasonable for these functions to check for the
4467`fontified' property and not put it back on, but they do not have to.
4468
4469** Tool bar support.
4470
4471Emacs supports a tool bar at the top of a frame under X. The frame
4472parameter `tool-bar-lines' (X resource "toolBar", class "ToolBar")
4473controls how may lines to reserve for the tool bar. A zero value
4474suppresses the tool bar. If the value is non-zero and
4475`auto-resize-tool-bars' is non-nil the tool bar's size will be changed
4476automatically so that all tool bar items are visible.
4477
4478*** Tool bar item definitions
4479
4480Tool bar items are defined using `define-key' with a prefix-key
4481`tool-bar'. For example `(define-key global-map [tool-bar item1] ITEM)'
4482where ITEM is a list `(menu-item CAPTION BINDING PROPS...)'.
4483
4484CAPTION is the caption of the item, If it's not a string, it is
4485evaluated to get a string. The caption is currently not displayed in
4486the tool bar, but it is displayed if the item doesn't have a `:help'
4487property (see below).
4488
4489BINDING is the tool bar item's binding. Tool bar items with keymaps as
4490binding are currently ignored.
4491
4492The following properties are recognized:
4493
4494`:enable FORM'.
4495
4496FORM is evaluated and specifies whether the tool bar item is enabled
4497or disabled.
4498
4499`:visible FORM'
4500
4501FORM is evaluated and specifies whether the tool bar item is displayed.
4502
4503`:filter FUNCTION'
4504
4505FUNCTION is called with one parameter, the same list BINDING in which
4506FUNCTION is specified as the filter. The value FUNCTION returns is
4507used instead of BINDING to display this item.
4508
4509`:button (TYPE SELECTED)'
4510
4511TYPE must be one of `:radio' or `:toggle'. SELECTED is evaluated
4512and specifies whether the button is selected (pressed) or not.
4513
4514`:image IMAGES'
4515
4516IMAGES is either a single image specification or a vector of four
4517image specifications. If it is a vector, this table lists the
4518meaning of each of the four elements:
4519
4520 Index Use when item is
4521 ----------------------------------------
4522 0 enabled and selected
4523 1 enabled and deselected
4524 2 disabled and selected
4525 3 disabled and deselected
4526
4527If IMAGE is a single image specification, a Laplace edge-detection
4528algorithm is used on that image to draw the image in disabled state.
4529
4530`:help HELP-STRING'.
4531
4532Gives a help string to display for the tool bar item. This help
4533is displayed when the mouse is moved over the item.
4534
4535The function `toolbar-add-item' is a convenience function for adding
4536toolbar items generally, and `tool-bar-add-item-from-menu' can be used
4537to define a toolbar item with a binding copied from an item on the
4538menu bar.
4539
4540The default bindings use a menu-item :filter to derive the tool-bar
4541dynamically from variable `tool-bar-map' which may be set
4542buffer-locally to override the global map.
4543
4544*** Tool-bar-related variables.
4545
4546If `auto-resize-tool-bar' is non-nil, the tool bar will automatically
4547resize to show all defined tool bar items. It will never grow larger
4548than 1/4 of the frame's size.
4549
4550If `auto-raise-tool-bar-buttons' is non-nil, tool bar buttons will be
4551raised when the mouse moves over them.
4552
4553You can add extra space between tool bar items by setting
4554`tool-bar-button-margin' to a positive integer specifying a number of
4555pixels, or a pair of integers (X . Y) specifying horizontal and
4556vertical margins . Default is 1.
4557
4558You can change the shadow thickness of tool bar buttons by setting
4559`tool-bar-button-relief' to an integer. Default is 3.
4560
4561*** Tool-bar clicks with modifiers.
4562
4563You can bind commands to clicks with control, shift, meta etc. on
4564a tool bar item. If
4565
4566 (define-key global-map [tool-bar shell]
4567 '(menu-item "Shell" shell
4568 :image (image :type xpm :file "shell.xpm")))
4569
4570is the original tool bar item definition, then
4571
4572 (define-key global-map [tool-bar S-shell] 'some-command)
4573
4574makes a binding to run `some-command' for a shifted click on the same
4575item.
4576
4577** Mode line changes.
4578
4579*** Mouse-sensitive mode line.
4580
4581The mode line can be made mouse-sensitive by displaying strings there
4582that have a `local-map' text property. There are three ways to display
4583a string with a `local-map' property in the mode line.
4584
45851. The mode line spec contains a variable whose string value has
4586a `local-map' text property.
4587
45882. The mode line spec contains a format specifier (e.g. `%12b'), and
4589that format specifier has a `local-map' property.
4590
45913. The mode line spec contains a list containing `:eval FORM'. FORM
4592is evaluated. If the result is a string, and that string has a
4593`local-map' property.
4594
4595The same mechanism is used to determine the `face' and `help-echo'
4596properties of strings in the mode line. See `bindings.el' for an
4597example.
4598
4599*** If a mode line element has the form `(:eval FORM)', FORM is
4600evaluated and the result is used as mode line element.
4601
4602*** You can suppress mode-line display by setting the buffer-local
4603variable mode-line-format to nil.
4604
4605*** A headerline can now be displayed at the top of a window.
4606
4607This mode line's contents are controlled by the new variable
4608`header-line-format' and `default-header-line-format' which are
4609completely analogous to `mode-line-format' and
4610`default-mode-line-format'. A value of nil means don't display a top
4611line.
4612
4613The appearance of top mode lines is controlled by the face
4614`header-line'.
4615
4616The function `coordinates-in-window-p' returns `header-line' for a
4617position in the header-line.
4618
4619** Text property `display'
4620
4621The `display' text property is used to insert images into text,
4622replace text with other text, display text in marginal area, and it is
4623also used to control other aspects of how text displays. The value of
4624the `display' property should be a display specification, as described
4625below, or a list or vector containing display specifications.
4626
4627*** Replacing text, displaying text in marginal areas
4628
4629To replace the text having the `display' property with some other
4630text, use a display specification of the form `(LOCATION STRING)'.
4631
4632If LOCATION is `(margin left-margin)', STRING is displayed in the left
4633marginal area, if it is `(margin right-margin)', it is displayed in
4634the right marginal area, and if LOCATION is `(margin nil)' STRING
4635is displayed in the text. In the latter case you can also use the
4636simpler form STRING as property value.
4637
4638*** Variable width and height spaces
4639
4640To display a space of fractional width or height, use a display
4641specification of the form `(LOCATION STRECH)'. If LOCATION is
4642`(margin left-margin)', the space is displayed in the left marginal
4643area, if it is `(margin right-margin)', it is displayed in the right
4644marginal area, and if LOCATION is `(margin nil)' the space is
4645displayed in the text. In the latter case you can also use the
4646simpler form STRETCH as property value.
4647
4648The stretch specification STRETCH itself is a list of the form `(space
4649PROPS)', where PROPS is a property list which can contain the
4650properties described below.
4651
4652The display of the fractional space replaces the display of the
4653characters having the `display' property.
4654
4655- :width WIDTH
4656
4657Specifies that the space width should be WIDTH times the normal
4658character width. WIDTH can be an integer or floating point number.
4659
4660- :relative-width FACTOR
4661
4662Specifies that the width of the stretch should be computed from the
4663first character in a group of consecutive characters that have the
4664same `display' property. The computation is done by multiplying the
4665width of that character by FACTOR.
4666
4667- :align-to HPOS
4668
4669Specifies that the space should be wide enough to reach HPOS. The
4670value HPOS is measured in units of the normal character width.
4671
4672Exactly one of the above properties should be used.
4673
4674- :height HEIGHT
4675
4676Specifies the height of the space, as HEIGHT, measured in terms of the
4677normal line height.
4678
4679- :relative-height FACTOR
4680
4681The height of the space is computed as the product of the height
4682of the text having the `display' property and FACTOR.
4683
4684- :ascent ASCENT
4685
4686Specifies that ASCENT percent of the height of the stretch should be
4687used for the ascent of the stretch, i.e. for the part above the
4688baseline. The value of ASCENT must be a non-negative number less or
4689equal to 100.
4690
4691You should not use both `:height' and `:relative-height' together.
4692
4693*** Images
4694
4695A display specification for an image has the form `(LOCATION
4696. IMAGE)', where IMAGE is an image specification. The image replaces,
4697in the display, the characters having this display specification in
4698their `display' text property. If LOCATION is `(margin left-margin)',
4699the image will be displayed in the left marginal area, if it is
4700`(margin right-margin)' it will be displayed in the right marginal
4701area, and if LOCATION is `(margin nil)' the image will be displayed in
4702the text. In the latter case you can also use the simpler form IMAGE
4703as display specification.
4704
4705*** Other display properties
4706
4707- (space-width FACTOR)
4708
4709Specifies that space characters in the text having that property
4710should be displayed FACTOR times as wide as normal; FACTOR must be an
4711integer or float.
4712
4713- (height HEIGHT)
4714
4715Display text having this property in a font that is smaller or larger.
4716
4717If HEIGHT is a list of the form `(+ N)', where N is an integer, that
4718means to use a font that is N steps larger. If HEIGHT is a list of
4719the form `(- N)', that means to use a font that is N steps smaller. A
4720``step'' is defined by the set of available fonts; each size for which
4721a font is available counts as a step.
4722
4723If HEIGHT is a number, that means to use a font that is HEIGHT times
4724as tall as the frame's default font.
4725
4726If HEIGHT is a symbol, it is called as a function with the current
4727height as argument. The function should return the new height to use.
4728
4729Otherwise, HEIGHT is evaluated to get the new height, with the symbol
4730`height' bound to the current specified font height.
4731
4732- (raise FACTOR)
4733
4734FACTOR must be a number, specifying a multiple of the current
4735font's height. If it is positive, that means to display the characters
4736raised. If it is negative, that means to display them lower down. The
4737amount of raising or lowering is computed without taking account of the
4738`height' subproperty.
4739
4740*** Conditional display properties
4741
4742All display specifications can be conditionalized. If a specification
4743has the form `(when CONDITION . SPEC)', the specification SPEC applies
4744only when CONDITION yields a non-nil value when evaluated. During the
4745evaluation, `object' is bound to the string or buffer having the
4746conditional display property; `position' and `buffer-position' are
4747bound to the position within `object' and the buffer position where
4748the display property was found, respectively. Both positions can be
4749different when object is a string.
4750
4751The normal specification consisting of SPEC only is equivalent to
4752`(when t . SPEC)'.
4753
4754** New menu separator types.
4755
4756Emacs now supports more than one menu separator type. Menu items with
4757item names consisting of dashes only (including zero dashes) are
4758treated like before. In addition, the following item names are used
4759to specify other menu separator types.
4760
4761- `--no-line' or `--space', or `--:space', or `--:noLine'
4762
4763No separator lines are drawn, but a small space is inserted where the
4764separator occurs.
4765
4766- `--single-line' or `--:singleLine'
4767
4768A single line in the menu's foreground color.
4769
4770- `--double-line' or `--:doubleLine'
4771
4772A double line in the menu's foreground color.
4773
4774- `--single-dashed-line' or `--:singleDashedLine'
4775
4776A single dashed line in the menu's foreground color.
4777
4778- `--double-dashed-line' or `--:doubleDashedLine'
4779
4780A double dashed line in the menu's foreground color.
4781
4782- `--shadow-etched-in' or `--:shadowEtchedIn'
4783
4784A single line with 3D sunken appearance. This is the form
4785displayed for item names consisting of dashes only.
4786
4787- `--shadow-etched-out' or `--:shadowEtchedOut'
4788
4789A single line with 3D raised appearance.
4790
4791- `--shadow-etched-in-dash' or `--:shadowEtchedInDash'
4792
4793A single dashed line with 3D sunken appearance.
4794
4795- `--shadow-etched-out-dash' or `--:shadowEtchedOutDash'
4796
4797A single dashed line with 3D raise appearance.
4798
4799- `--shadow-double-etched-in' or `--:shadowDoubleEtchedIn'
4800
4801Two lines with 3D sunken appearance.
4802
4803- `--shadow-double-etched-out' or `--:shadowDoubleEtchedOut'
4804
4805Two lines with 3D raised appearance.
4806
4807- `--shadow-double-etched-in-dash' or `--:shadowDoubleEtchedInDash'
4808
4809Two dashed lines with 3D sunken appearance.
4810
4811- `--shadow-double-etched-out-dash' or `--:shadowDoubleEtchedOutDash'
4812
4813Two dashed lines with 3D raised appearance.
4814
4815Under LessTif/Motif, the last four separator types are displayed like
4816the corresponding single-line separators.
4817
4818** New frame parameters for scroll bar colors.
4819
4820The new frame parameters `scroll-bar-foreground' and
4821`scroll-bar-background' can be used to change scroll bar colors.
4822Their value must be either a color name, a string, or nil to specify
4823that scroll bars should use a default color. For toolkit scroll bars,
4824default colors are toolkit specific. For non-toolkit scroll bars, the
4825default background is the background color of the frame, and the
4826default foreground is black.
4827
4828The X resource name of these parameters are `scrollBarForeground'
4829(class ScrollBarForeground) and `scrollBarBackground' (class
4830`ScrollBarBackground').
4831
4832Setting these parameters overrides toolkit specific X resource
4833settings for scroll bar colors.
4834
4835** You can set `redisplay-dont-pause' to a non-nil value to prevent
4836display updates from being interrupted when input is pending.
4837
4838** Changing a window's width may now change its window start if it
4839starts on a continuation line. The new window start is computed based
4840on the window's new width, starting from the start of the continued
4841line as the start of the screen line with the minimum distance from
4842the original window start.
4843
4844** The variable `hscroll-step' and the functions
4845`hscroll-point-visible' and `hscroll-window-column' have been removed
4846now that proper horizontal scrolling is implemented.
4847
4848** Windows can now be made fixed-width and/or fixed-height.
4849
4850A window is fixed-size if its buffer has a buffer-local variable
4851`window-size-fixed' whose value is not nil. A value of `height' makes
4852windows fixed-height, a value of `width' makes them fixed-width, any
4853other non-nil value makes them both fixed-width and fixed-height.
4854
4855The following code makes all windows displaying the current buffer
4856fixed-width and fixed-height.
4857
4858 (set (make-local-variable 'window-size-fixed) t)
4859
4860A call to enlarge-window on a window gives an error if that window is
4861fixed-width and it is tried to change the window's width, or if the
4862window is fixed-height, and it is tried to change its height. To
4863change the size of a fixed-size window, bind `window-size-fixed'
4864temporarily to nil, for example
4865
4866 (let ((window-size-fixed nil))
4867 (enlarge-window 10))
4868
4869Likewise, an attempt to split a fixed-height window vertically,
4870or a fixed-width window horizontally results in a error.
4871
4872** The cursor-type frame parameter is now supported on MS-DOS
4873terminals. When Emacs starts, it by default changes the cursor shape
4874to a solid box, as it does on Unix. The `cursor-type' frame parameter
4875overrides this as it does on Unix, except that the bar cursor is
4876horizontal rather than vertical (since the MS-DOS display doesn't
4877support a vertical-bar cursor).
4878
4879
4880
4881----------------------------------------------------------------------
4882Copyright information:
4883
4884Copyright (C) 2000, 2001, 2002, 2003, 2006
4885 Free Software Foundation, Inc.
4886
4887 Permission is granted to anyone to make or distribute verbatim copies
4888 of this document as received, in any medium, provided that the
4889 copyright notice and this permission notice are preserved,
4890 thus giving the recipient permission to redistribute in turn.
4891
4892 Permission is granted to distribute modified versions
4893 of this document, or of portions of it,
4894 under the above conditions, provided also that they
4895 carry prominent notices stating who last changed them.
4896
4897Local variables:
4898mode: outline
4899paragraph-separate: "[ ]*$"
4900end:
diff --git a/etc/ONEWS.1 b/etc/ONEWS.1
deleted file mode 100644
index 4f75a7bc6e0..00000000000
--- a/etc/ONEWS.1
+++ /dev/null
@@ -1,1167 +0,0 @@
1Old GNU Emacs NEWS -- history of user-visible changes thru version 15.
2Copyright (C) 1985 Richard M. Stallman.
3See the end for copying conditions.
4
5Changes in Emacs 15
6
7* Emacs now runs on Sun and Megatest 68000 systems;
8 also on at least one 16000 system running 4.2.
9
10* Emacs now alters the output-start and output-stop characters
11 to prevent C-s and C-q from being considered as flow control
12 by cretinous rlogin software in 4.2.
13
14* It is now possible convert Mocklisp code (for Gosling Emacs) to Lisp code
15 that can run in GNU Emacs. M-x convert-mocklisp-buffer
16 converts the contents of the current buffer from Mocklisp to
17 GNU Emacs Lisp. You should then save the converted buffer with C-x C-w
18 under a name ending in ".el"
19
20 There are probably some Mocklisp constructs that are not handled.
21 If you encounter one, feel free to report the failure as a bug.
22 The construct will be handled in a future Emacs release, if that is not
23 not too hard to do.
24
25 Note that lisp code converted from Mocklisp code will not necessarily
26 run as fast as code specifically written for GNU Emacs, nor will it use
27 the many features of GNU Emacs which are not present in Gosling's emacs.
28 (In particular, the byte-compiler (m-x byte-compile-file) knows little
29 about compilation of code directly converted from mocklisp.)
30 It is envisaged that old mocklisp code will be incrementally converted
31 to GNU lisp code, with M-x convert-mocklisp-buffer being the first
32 step in this process.
33
34* Control-x n (narrow-to-region) is now by default a disabled command.
35
36 This means that, if you issue this command, it will ask whether
37 you really mean it. You have the opportunity to enable the
38 command permanently at that time, so you will not be asked again.
39 This will place the form "(put 'narrow-to-region 'disabled nil)" in your
40 .emacs file.
41
42* Tags now prompts for the tag table file name to use.
43
44 All the tags commands ask for the tag table file name
45 if you have not yet specified one.
46
47 Also, the command M-x visit-tag-table can now be used to
48 specify the tag table file name initially, or to switch
49 to a new tag table.
50
51* If truncate-partial-width-windows is non-nil (as it intially is),
52 all windows less than the full screen width (that is,
53 made by side-by-side splitting) truncate lines rather than continuing
54 them.
55
56* Emacs now checks for Lisp stack overflow to avoid fatal errors.
57 The depth in eval, apply and funcall may not exceed max-lisp-eval-depth.
58 The depth in variable bindings and unwind-protects may not exceed
59 max-specpdl-size. If either limit is exceeded, an error occurs.
60 You can set the limits to larger values if you wish, but if you make them
61 too large, you are vulnerable to a fatal error if you invoke
62 Lisp code that does infinite recursion.
63
64* New hooks find-file-hook and write-file-hook.
65 Both of these variables if non-nil should be functions of no arguments.
66 At the time they are called (current-buffer) will be the buffer being
67 read or written respectively.
68
69 find-file-hook is called whenever a file is read into its own buffer,
70 such as by calling find-file, revert-buffer, etc. It is not called by
71 functions such as insert-file which do not read the file into a buffer of
72 its own.
73 find-file-hook is called after the file has been read in and its
74 local variables (if any) have been processed.
75
76 write-file-hook is called just before writing out a file from a buffer.
77
78* The initial value of shell-prompt-pattern is now "^[^#$%>]*[#$%>] *"
79
80* If the .emacs file sets inhibit-startup-message to non-nil,
81 the messages normally printed by Emacs at startup time
82 are inhibited.
83
84* Facility for run-time conditionalization on the basis of emacs features.
85
86 The new variable features is a list of symbols which represent "features"
87 of the executing emacs, for use in run-time conditionalization.
88
89 The function featurep of one argument may be used to test for the
90 presence of a feature. It is just the same as
91 (not (null (memq FEATURE features))) where FEATURE is its argument.
92 For example, (if (featurep 'magic-window-hack)
93 (transmogrify-window 'vertical)
94 (split-window-vertically))
95
96 The function provide of one argument "announces" that FEATURE is present.
97 It is much the same as (if (not (featurep FEATURE))
98 (setq features (cons FEATURE features)))
99
100 The function require with arguments FEATURE and FILE-NAME loads FILE-NAME
101 (which should contain the form (provide FEATURE)) unless FEATURE is present.
102 It is much the same as (if (not (featurep FEATURE))
103 (progn (load FILE-NAME)
104 (if (not featurep FEATURE) (error ...))))
105 FILE-NAME is optional and defaults to FEATURE.
106
107* New function load-average.
108
109 This returns a list of three integers, which are
110 the current 1 minute, 5 minute and 15 minute load averages,
111 each multiplied by a hundred (since normally they are floating
112 point numbers).
113
114* Per-terminal libraries loaded automatically.
115
116 Emacs when starting up on terminal type T automatically loads
117 a library named term-T. T is the value of the TERM environment variable.
118 Thus, on terminal type vt100, Emacs would do (load "term-vt100" t t).
119 Such libraries are good places to set the character translation table.
120
121 It is a bad idea to redefine lots of commands in a per-terminal library,
122 since this affects all users. Instead, define a command to do the
123 redefinitions and let the user's init file, which is loaded later,
124 call that command or not, as the user prefers.
125
126* Programmer's note: detecting killed buffers.
127
128 Buffers are eliminated by explicitly killing them, using
129 the function kill-buffer. This does not eliminate or affect
130 the pointers to the buffer which may exist in list structure.
131 If you have a pointer to a buffer and wish to tell whether
132 the buffer has been killed, use the function buffer-name.
133 It returns nil on a killed buffer, and a string on a live buffer.
134
135* New ways to access the last command input character.
136
137 The function last-key-struck, which used to return the last
138 input character that was read by command input, is eliminated.
139 Instead, you can find this information as the value of the
140 variable last-command-char. (This variable used to be called
141 last-key).
142
143 Another new variable, last-input-char, holds the last character
144 read from the command input stream regardless of what it was
145 read for. last-input-char and last-command-char are different
146 only inside a command that has called read-char to read input.
147
148* The new switch -kill causes Emacs to exit after processing the
149 preceding command line arguments. Thus,
150 emacs -l lib data -e do-it -kill
151 means to load lib, find file data, call do-it on no arguments,
152 and then exit.
153
154* The config.h file has been modularized.
155
156 Options that depend on the machine you are running on are defined
157 in a file whose name starts with "m-", such as m-vax.h.
158 Options that depend on the operating system software version you are
159 running on are defined in a file whose name starts with "s-",
160 such as s-bsd4.2.h.
161
162 config.h includes one m- file and one s- file. It also defines a
163 few other options whose values do not follow from the machine type
164 and system type being used. Installers normally will have to
165 select the correct m- and s- files but will never have to change their
166 contents.
167
168* Termcap AL and DL strings are understood.
169
170 If the termcap entry defines AL and DL strings, for insertion
171 and deletion of multiple lines in one blow, Emacs now uses them.
172 This matters most on certain bit map display terminals for which
173 scrolling is comparatively slow.
174
175* Bias against scrolling screen far on fast terminals.
176
177 Emacs now prefers to redraw a few lines rather than
178 shift them a long distance on the screen, when the terminal is fast.
179
180* New major mode, mim-mode.
181
182 This major mode is for editing MDL code. Perhaps a MDL
183 user can explain why it is not called mdl-mode.
184 You must load the library mim-mode explicitly to use this.
185
186* GNU documentation formatter `texinfo'.
187
188 The `texinfo' library defines a format for documentation
189 files which can be passed through Tex to make a printed manual
190 or passed through texinfo to make an Info file. Texinfo is
191 documented fully by its own Info file; compare this file
192 with its source, texinfo.texinfo, for additional guidance.
193
194 All documentation files for GNU utilities should be written
195 in texinfo input format.
196
197 Tex processing of texinfo files requires the Botex macro package.
198 This is not ready for distribution yet, but will appear at
199 a later time.
200
201* New function read-from-string (emacs 15.29)
202
203 read-from-string takes three arguments: a string to read from,
204 and optionally start and end indices which delimit a substring
205 from which to read. (They default to 0 and the length of the string,
206 respectively.)
207
208 This function returns a cons cell whose car is the object produced
209 by reading from the string and whose cdr is a number giving the
210 index in the string of the first character not read. That index may
211 be passed as the second argument to a later call to read-from-string
212 to read the next form represented by the string.
213
214 In addition, the function read now accepts a string as its argument.
215 In this case, it calls read-from-string on the whole string, and
216 returns the car of the result. (ie the actual object read.)
217
218Changes in Emacs 14
219
220* Completion now prints various messages such as [Sole Completion]
221 or [Next Character Not Unique] to describe the results obtained.
222 These messages appear after the text in the minibuffer, and remain
223 on the screen until a few seconds go by or you type a key.
224
225* The buffer-read-only flag is implemented.
226 Setting or binding this per-buffer variable to a non-nil value
227 makes illegal any operation which would modify the textual content of
228 the buffer. (Such operations signal a buffer-read-only error)
229 The read-only state of a buffer may be altered using toggle-read-only
230 (C-x C-q)
231 The buffers used by Rmail, Dired, Rnews, and Info are now read-only
232 by default to prevent accidental damage to the information in those
233 buffers.
234
235* Functions car-safe and cdr-safe.
236 These functions are like car and cdr when the argument is a cons.
237 Given an argument not a cons, car-safe always returns nil, with
238 no error; the same for cdr-safe.
239
240* The new function user-real-login-name returns the name corresponding
241 to the real uid of the Emacs process. This is usually the same
242 as what user-login-name returns; however, when Emacs is invoked
243 from su, user-real-login-name returns "root" but user-login-name
244 returns the name of the user who invoked su.
245
246Changes in Emacs 13
247
248* There is a new version numbering scheme.
249
250 What used to be the first version number, which was 1,
251 has been discarded since it does not seem that I need three
252 levels of version number.
253
254 However, a new third version number has been added to represent
255 changes by user sites. This number will always be zero in
256 Emacs when I distribute it; it will be incremented each time
257 Emacs is built at another site.
258
259* There is now a reader syntax for Meta characters:
260 \M-CHAR means CHAR or'ed with the Meta bit. For example:
261
262 ?\M-x is (+ ?x 128)
263 ?\M-\n is (+ ?\n 128)
264 ?\M-\^f is (+ ?\^f 128)
265
266 This syntax can be used in strings too. Note, however, that
267 Meta characters are not meaningful in key sequences being passed
268 to define-key or lookup-key; you must use ESC characters (\e)
269 in them instead.
270
271 ?\C- can be used likewise for control characters. (13.9)
272
273* Installation change
274 The string "../lisp" now adds to the front of the load-path
275 used for searching for Lisp files during Emacs initialization.
276 It used to replace the path specified in paths.h entirely.
277 Now the directory ../lisp is searched first and the directoris
278 specified in paths.h are searched afterward.
279
280Changes in Emacs 1.12
281
282* There is a new installation procedure.
283 See the file INSTALL that comes in the top level
284 directory in the tar file or tape.
285
286* The Meta key is now supported on terminals that have it.
287 This is a shift key which causes the high bit to be turned on
288 in all input characters typed while it is held down.
289
290 read-char now returns a value in the range 128-255 if
291 a Meta character is typed. When interpreted as command
292 input, a Meta character is equivalent to a two character
293 sequence, the meta prefix character followed by the un-metized
294 character (Meta-G unmetized is G).
295
296 The meta prefix character
297 is specified by the value of the variable meta-prefix-char.
298 If this character (normally Escape) has been redefined locally
299 with a non-prefix definition (such as happens in completing
300 minibuffers) then the local redefinition is suppressed when
301 the character is not the last one in a key sequence.
302 So the local redefinition is effective if you type the character
303 explicitly, but not effective if the character comes from
304 the use of the Meta key.
305
306* `-' is no longer a completion command in the minibuffer.
307 It is an ordinary self-inserting character.
308
309* The list load-path of directories load to search for Lisp files
310 is now controlled by the EMACSLOADPATH environment variable
311[[ Note this was originally EMACS-LOAD-PATH and has been changed
312 again; sh does not deal properly with hyphens in env variable names]]
313 rather than the EPATH environment variable. This is to avoid
314 conflicts with other Emacses.
315
316 While Emacs is being built initially, the load-path
317 is now just ("../lisp"), ignoring paths.h. It does not
318 ignore EMACSLOADPATH, however; you should avoid having
319 this variable set while building Emacs.
320
321* You can now specify a translation table for keyboard
322 input characters, as a way of exchanging or substituting
323 keys on the keyboard.
324
325 If the value of keyboard-translate-table is a string,
326 every character received from the keyboard is used as an
327 index in that string, and the character at that index in
328 the string is used as input instead of what was actually
329 typed. If the actual input character is >= the length of
330 the string, it is used unchanged.
331
332 One way this feature can be used is to fix bad keyboard
333 designes. For example, on some terminals, Delete is
334 Shift-Underscore. Since Delete is a more useful character
335 than Underscore, it is an improvement to make the unshifted
336 character Delete and the shifted one Underscore. This can
337 be done with
338
339 ;; First make a translate table that does the identity translation.
340 (setq keyboard-translate-table (make-string 128 0))
341 (let ((i 0))
342 (while (< i 128)
343 (aset keyboard-translate-table i i)
344 (setq i (1+ i))))
345
346 ;; Now alter translations of some characters.
347 (aset keyboard-translate-table ?\_ ?\^?)
348 (aset keyboard-translate-table ?\^? ?\_)
349
350 If your terminal has a Meta key and can therefore send
351 codes up to 255, Meta characters are translated through
352 elements 128 through 255 of the translate table, and therefore
353 are translated independently of the corresponding non-Meta
354 characters. You must therefore establish translations
355 independently for the Meta characters if you want them too:
356
357 ;; First make a translate table that does the identity translation.
358 (setq keyboard-translate-table (make-string 256 0))
359 (let ((i 0))
360 (while (< i 256)
361 (aset keyboard-translate-table i i)
362 (setq i (1+ i))))
363
364 ;; Now alter translations of some characters.
365 (aset keyboard-translate-table ?\_ ?\^?)
366 (aset keyboard-translate-table ?\^? ?\_)
367
368 ;; Now alter translations of some Meta characters.
369 (aset keyboard-translate-table (+ 128 ?\_) (+ 128 ?\^?))
370 (aset keyboard-translate-table (+ 128 ?\^?) (+ 128 ?\_))
371
372* (process-kill-without-query PROCESS)
373
374This marks the process so that, when you kill Emacs,
375you will not on its account be queried about active subprocesses.
376
377Changes in Emacs 1.11
378
379* The commands C-c and C-z have been interchanged,
380 for greater compatibility with normal Unix usage.
381 C-z now runs suspend-emacs and C-c runs exit-recursive-edit.
382
383* The value returned by file-name-directory now ends
384 with a slash. (file-name-directory "foo/bar") => "foo/".
385 This avoids confusing results when dealing with files
386 in the root directory.
387
388 The value of the per-buffer variable default-directory
389 is also supposed to have a final slash now.
390
391* There are now variables to control the switches passed to
392 `ls' by the C-x C-d command (list-directory).
393 list-directory-brief-switches is a string, initially "-CF",
394 used for brief listings, and list-directory-verbose-switches
395 is a string, initially "-l", used for verbose ones.
396
397* For Ann Arbor Ambassador terminals, the termcap "ti" string
398 is now used to initialize the screen geometry on entry to Emacs,
399 and the "te" string is used to set it back on exit.
400 If the termcap entry does not define the "ti" or "te" string,
401 Emacs does what it used to do.
402
403Changes in Emacs 1.10
404
405* GNU Emacs has been made almost 1/3 smaller.
406 It now dumps out as only 530kbytes on Vax 4.2bsd.
407
408* The term "checkpoint" has been replaced by "auto save"
409 throughout the function names, variable names and documentation
410 of GNU Emacs.
411
412* The function load now tries appending ".elc" and ".el"
413 to the specified filename BEFORE it tries the filename
414 without change.
415
416* rmail now makes the mode line display the total number
417 of messages and the current message number.
418 The "f" command now means forward a message to another user.
419 The command to search through all messages for a string is now "F".
420 The "u" command now means to move back to the previous
421 message and undelete it. To undelete the selected message, use Meta-u.
422
423* The hyphen character is now equivalent to a Space while
424 in completing minibuffers. Both mean to complete an additional word.
425
426* The Lisp function error now takes args like format
427 which are used to construct the error message.
428
429* Redisplay will refuse to start its display at the end of the buffer.
430 It will pick a new place to display from, rather than use that.
431
432* The value returned by garbage-collect has been changed.
433 Its first element is no longer a number but a cons,
434 whose car is the number of cons cells now in use,
435 and whose cdr is the number of cons cells that have been
436 made but are now free.
437 The second element is similar but describes symbols rather than cons cells.
438 The third element is similar but describes markers.
439
440* The variable buffer-name has been eliminated.
441 The function buffer-name still exists. This is to prevent
442 user programs from changing buffer names without going
443 through the rename-buffer function.
444
445Changes in Emacs 1.9
446
447* When a fill prefix is in effect, paragraphs are started
448 or separated by lines that do not start with the fill prefix.
449 Also, a line which consists of the fill prefix followed by
450 white space separates paragraphs.
451
452* C-x C-v runs the new function find-alternate-file.
453 It finds the specified file, switches to that buffer,
454 and kills the previous current buffer. (It requires
455 confirmation if that buffer had changes.) This is
456 most useful after you find the wrong file due to a typo.
457
458* Exiting the minibuffer moves the cursor to column 0,
459 to show you that it has really been exited.
460
461* Meta-g (fill-region) now fills each paragraph in the
462 region individually. To fill the region as if it were
463 a single paragraph (for when the paragraph-delimiting mechanism
464 does the wrong thing), use fill-region-as-paragraph.
465
466* Tab in text mode now runs the function tab-to-tab-stop.
467 A new mode called indented-text-mode is like text-mode
468 except that in it Tab runs the function indent-relative,
469 which indents the line under the previous line.
470 If auto fill is enabled while in indented-text-mode,
471 the new lines that it makes are indented.
472
473* Functions kill-rectangle and yank-rectangle.
474 kill-rectangle deletes the rectangle specified by dot and mark
475 (or by two arguments) and saves it in the variable killed-rectangle.
476 yank-rectangle inserts the rectangle in that variable.
477
478 Tab characters in a rectangle being saved are replaced
479 by spaces in such a way that their appearance will
480 not be changed if the rectangle is later reinserted
481 at a different column position.
482
483* `+' in a regular expression now means
484 to repeat the previous expression one or more times.
485 `?' means to repeat it zero or one time.
486 They are in all regards like `*' except for the
487 number of repetitions they match.
488
489 \< in a regular expression now matches the null string
490 when it is at the beginning of a word; \> matches
491 the null string at the end of a word.
492
493* C-x p narrows the buffer so that only the current page
494 is visible.
495
496* C-x ) with argument repeats the kbd macro just
497 defined that many times, counting the definition
498 as one repetition.
499
500* C-x ( with argument begins defining a kbd macro
501 starting with the last one defined. It executes that
502 previous kbd macro initially, just as if you began
503 by typing it over again.
504
505* C-x q command queries the user during kbd macro execution.
506 With prefix argument, enters recursive edit,
507 reading keyboard commands even within a kbd macro.
508 You can give different commands each time the macro executes.
509 Without prefix argument, reads a character. Your options are:
510 Space -- execute the rest of the macro.
511 Delete -- skip the rest of the macro; start next repetition.
512 C-d -- skip rest of the macro and don't repeat it any more.
513 C-r -- enter a recursive edit, then on exit ask again for a character
514 C-l -- redisplay screen and ask again."
515
516* write-kbd-macro and append-kbd-macro are used to save
517 a kbd macro definition in a file (as Lisp code to
518 redefine the macro when the file is loaded).
519 These commands differ in that write-kbd-macro
520 discards the previous contents of the file.
521 If given a prefix argument, both commands
522 record the keys which invoke the macro as well as the
523 macro's definition.
524
525* The variable global-minor-modes is used to display
526 strings in the mode line of all buffers. It should be
527 a list of elements thaht are conses whose cdrs are strings
528 to be displayed. This complements the variable
529 minor-modes, which has the same effect but has a separate
530 value in each buffer.
531
532* C-x = describes horizontal scrolling in effect, if any.
533
534* Return now auto-fills the line it is ending, in auto fill mode.
535 Space with zero as argument auto-fills the line before it
536 just like Space without an argument.
537
538Changes in Emacs 1.8
539
540This release mostly fixes bugs. There are a few new features:
541
542* apropos now sorts the symbols before displaying them.
543 Also, it returns a list of the symbols found.
544
545 apropos now accepts a second arg PRED which should be a function
546 of one argument; if PRED is non-nil, each symbol is tested
547 with PRED and only symbols for which PRED returns non-nil
548 appear in the output or the returned list.
549
550 If the third argument to apropos is non-nil, apropos does not
551 display anything; it merely returns the list of symbols found.
552
553 C-h a now runs the new function command-apropos rather than
554 apropos, and shows only symbols with definitions as commands.
555
556* M-x shell sends the command
557 if (-f ~/.emacs_NAME)source ~/.emacs_NAME
558 invisibly to the shell when it starts. Here NAME
559 is replaced by the name of shell used,
560 as it came from your ESHELL or SHELL environment variable
561 but with directory name, if any, removed.
562
563* M-, now runs the command tags-loop-continue, which is used
564 to resume a terminated tags-search or tags-query-replace.
565
566Changes in Emacs 1.7
567
568It's Beat CCA Week.
569
570* The initial buffer is now called "*scratch*" instead of "scratch",
571 so that all buffer names used automatically by Emacs now have *'s.
572
573* Undo information is now stored separately for each buffer.
574 The Undo command (C-x u) always applies to the current
575 buffer only.
576
577 C-_ is now a synonym for C-x u.
578
579 (buffer-flush-undo BUFFER) causes undo information not to
580 be kept for BUFFER, and frees the space that would have
581 been used to hold it. In any case, no undo information is
582 kept for buffers whose names start with spaces. (These
583 buffers also do not appear in the C-x C-b display.)
584
585* Rectangle operations are now implemented.
586 C-x r stores the rectangle described by dot and mark
587 into a register; it reads the register name from the keyboard.
588 C-x g, the command to insert the contents of a register,
589 can be used to reinsert the rectangle elsewhere.
590
591 Other rectangle commands include
592 open-rectangle:
593 insert a blank rectangle in the position and size
594 described by dot and mark, at its corners;
595 the existing text is pushed to the right.
596 clear-rectangle:
597 replace the rectangle described by dot ane mark
598 with blanks. The previous text is deleted.
599 delete-rectangle:
600 delete the text of the specified rectangle,
601 moving the text beyond it on each line leftward.
602
603* Side-by-side windows are allowed. Use C-x 5 to split the
604 current window into two windows side by side.
605 C-x } makes the selected window ARG columns wider at the
606 expense of the windows at its sides. C-x { makes the selected
607 window ARG columns narrower. An argument to C-x 5 specifies
608 how many columns to give to the leftmost of the two windows made.
609
610 C-x 2 now accepts a numeric argument to specify the number of
611 lines to give to the uppermost of the two windows it makes.
612
613* Horizontal scrolling of the lines in a window is now implemented.
614 C-x < (scroll-left) scrolls all displayed lines left,
615 with the numeric argument (default 1) saying how far to scroll.
616 When the window is scrolled left, some amount of the beginning
617 of each nonempty line is replaced by an "$".
618 C-x > scrolls right. If a window has no text hidden at the left
619 margin, it cannot be scrolled any farther right than that.
620 When nonzero leftwards scrolling is in effect in a window.
621 lines are automatically truncated at the window's right margin
622 regardless of the value of the variable truncate-lines in the
623 buffer being displayed.
624
625* C-x C-d now uses the default output format of `ls',
626 which gives just file names in multiple columns.
627 C-u C-x C-d passes the -l switch to `ls'.
628
629* C-t at the end of a line now exchanges the two preceding characters.
630
631 All the transpose commands now interpret zero as an argument
632 to mean to transpose the textual unit after or around dot
633 with the one after or around the mark.
634
635* M-! executes a shell command in an inferior shell
636 and displays the output from it. With a prefix argument,
637 it inserts the output in the current buffer after dot
638 and sets the mark after the output. The shell command
639 gets /dev/null as its standard input.
640
641 M-| is like M-! but passes the contents of the region
642 as input to the shell command. A prefix argument makes
643 the output from the command replace the contents of the region.
644
645* The mode line will now say "Def" after the major mode
646 while a keyboard macro is being defined.
647
648* The variable fill-prefix is now used by Meta-q.
649 Meta-q removes the fill prefix from lines that start with it
650 before filling, and inserts the fill prefix on each line
651 after filling.
652
653 The command C-x . sets the fill prefix equal to the text
654 on the current line before dot.
655
656* The new command Meta-j (indent-new-comment-line),
657 is like Linefeed (indent-new-line) except when dot is inside a comment;
658 in that case, Meta-j inserts a comment starter on the new line,
659 indented under the comment starter above. It also inserts
660 a comment terminator at the end of the line above,
661 if the language being edited calls for one.
662
663* Rmail should work correctly now, and has some C-h m documentation.
664
665Changes in Emacs 1.6
666
667* save-buffers-kill-emacs is now on C-x C-c
668 while C-x C-z does suspend-emacs. This is to make
669 C-x C-c like the normal Unix meaning of C-c
670 and C-x C-z linke the normal Unix meaning of C-z.
671
672* M-ESC (eval-expression) is now a disabled command by default.
673 This prevents users who type ESC ESC accidentally from
674 getting confusing results. Put
675 (put 'eval-expression 'disabled nil)
676 in your ~/.emacs file to enable the command.
677
678* Self-inserting text is grouped into bunches for undoing.
679 Each C-x u command undoes up to 20 consecutive self-inserting
680 characters.
681
682* Help f now uses as a default the function being called
683 in the innermost Lisp expression that dot is in.
684 This makes it more convenient to use while writing
685 Lisp code to run in Emacs.
686 (If the text around dot does not appear to be a call
687 to a Lisp function, there is no default.)
688
689 Likewise, Help v uses the symbol around or before dot
690 as a default, if that is a variable name.
691
692* Commands that read filenames now insert the default
693 directory in the minibuffer, to become part of your input.
694 This allows you to see what the default is.
695 You may type a filename which goes at the end of the
696 default directory, or you may edit the default directory
697 as you like to create the input you want to give.
698 You may also type an absolute pathname (starting with /)
699 or refer to a home directory (input starting with ~)
700 after the default; the presence of // or /~ causes
701 everything up through the slash that precedes your
702 type-in to be ignored.
703
704 Returning the default directory without change,
705 including the terminating slash, requests the use
706 of the default file name (usually the visited file's name).
707
708 Set the variable insert-default-directory to nil
709 to turn off this feature.
710
711* M-x shell now uses the environment variable ESHELL,
712 if it exists, as the file name of the shell to run.
713 If there is no ESHELL variable, the SHELL variable is used.
714 This is because some shells do not work properly as inferiors
715 of Emacs (or anything like Emacs).
716
717* A new variable minor-modes now exists, with a separate value
718 in each buffer. Its value should be an alist of elements
719 (MODE-FUNCTION-SYMBOL . PRETTY-NAME-STRING), one for each
720 minor mode that is turned on in the buffer. The pretty
721 name strings are displayed in the mode line after the name of the
722 major mode (with spaces between them). The mode function
723 symbols should be symbols whose function definitions will
724 turn on the minor mode if given 1 as an argument; they are present
725 so that Help m can find their documentation strings.
726
727* The format of tag table files has been changed.
728 The new format enables Emacs to find tags much faster.
729
730 A new program, etags, exists to make the kind of
731 tag table that Emacs wants. etags is invoked just
732 like ctags; in fact, if you give it any switches,
733 it does exactly what ctags would do. Give it the
734 empty switch ("-") to make it act like ctags with no switches.
735
736 etags names the tag table file "TAGS" rather than "tags",
737 so that these tag tables and the standard Unix ones
738 can coexist.
739
740 The tags library can no longer use standard ctags-style
741 tag tables files.
742
743* The file of Lisp code Emacs reads on startup is now
744 called ~/.emacs rather than ~/.emacs_pro.
745
746* copy-file now gives the copied file the same mode bits
747 as the original file.
748
749* Output from a process inserted into the process's buffer
750 no longer sets the buffer's mark. Instead it sets a
751 marker associated with the process to point to the end
752 of the inserted text. You can access this marker with
753 (process-mark PROCESS)
754 and then either examine its position with marker-position
755 or set its position with set-marker.
756
757* completing-read takes a new optional fifth argument which,
758 if non-nil, should be a string of text to insert into
759 the minibuffer before reading user commands.
760
761* The Lisp function elt now exists:
762 (elt ARRAY N) is like (aref ARRAY N),
763 (elt LIST N) is like (nth N LIST).
764
765* rplaca is now a synonym for setcar, and rplacd for setcdr.
766 eql is now a synonym for eq; it turns out that the Common Lisp
767 distinction between eq and eql is insignificant in Emacs.
768 numberp is a new synonym for integerp.
769
770* auto-save has been renamed to auto-save-mode.
771
772* Auto save file names for buffers are now created by the
773 function make-auto-save-file-name. This is so you can
774 redefine that function to change the way auto save file names
775 are chosen.
776
777* expand-file-name no longer discards a final slash.
778 (expand-file-name "foo" "/lose") => "/lose/foo"
779 (expand-file-name "foo/" "/lose") => "/lose/foo/"
780
781 Also, expand-file-name no longer substitutes $ constructs.
782 A new function substitute-in-file-name does this. Reading
783 a file name with read-file-name or the `f' or`F' option
784 of interactive calling uses substitute-in-file-name
785 on the file name that was read and returns the result.
786
787 All I/O primitives including insert-file-contents and
788 delete-file call expand-file-name on the file name supplied.
789 This change makes them considerably faster in the usual case.
790
791* Interactive calling spec strings allow the new code letter 'D'
792 which means to read a directory name. It is like 'f' except
793 that the default if the user makes no change in the minibuffer
794 is to return the current default directory rather than the
795 current visited file name.
796
797Changes in Emacs 1.5
798
799* suspend-emacs now accepts an optional argument
800 which is a string to be stuffed as terminal input
801 to be read by Emacs's superior shell after Emacs exits.
802
803 A library called ledit exists which uses this feature
804 to transmit text to a Lisp job running as a sibling of
805 Emacs.
806
807* If find-file is given the name of a directory,
808 it automatically invokes dired on that directory
809 rather than reading in the binary data that make up
810 the actual contents of the directory according to Unix.
811
812* Saving an Emacs buffer now preserves the file modes
813 of any previously existing file with the same name.
814 This works using new Lisp functions file-modes and
815 set-file-modes, which can be used to read or set the mode
816 bits of any file.
817
818* The Lisp function cond now exists, with its traditional meaning.
819
820* defvar and defconst now permit the documentation string
821 to be omitted. defvar also permits the initial value
822 to be omitted; then it acts only as a comment.
823
824Changes in Emacs 1.4
825
826* Auto-filling now normally indents the new line it creates
827 by calling indent-according-to-mode. This function, meanwhile,
828 has in Fundamental and Text modes the effect of making the line
829 have an indentation of the value of left-margin, a per-buffer variable.
830
831 Tab no longer precisely does indent-according-to-mode;
832 it does that in all modes that supply their own indentation routine,
833 but in Fundamental, Text and allied modes it inserts a tab character.
834
835* The command M-x grep now invokes grep (on arguments
836 supplied by the user) and reads the output from grep
837 asynchronously into a buffer. The command C-x ` can
838 be used to move to the lines that grep has found.
839 This is an adaptation of the mechanism used for
840 running compilations and finding the loci of error messages.
841
842 You can now use C-x ` even while grep or compilation
843 is proceeding; as more matches or error messages arrive,
844 C-x ` will parse them and be able to find them.
845
846* M-x mail now provides a command to send the message
847 and "exit"--that is, return to the previously selected
848 buffer. It is C-z C-z.
849
850* Tab in C mode now tries harder to adapt to all indentation styles.
851 If the line being indented is a statement that is not the first
852 one in the containing compound-statement, it is aligned under
853 the beginning of the first statement.
854
855* The functions screen-width and screen-height return the
856 total width and height of the screen as it is now being used.
857 set-screen-width and set-screen-height tell Emacs how big
858 to assume the screen is; they each take one argument,
859 an integer.
860
861* The Lisp function 'function' now exists. function is the
862 same as quote, except that it serves as a signal to the
863 Lisp compiler that the argument should be compiled as
864 a function. Example:
865 (mapcar (function (lambda (x) (+ x 5))) list)
866
867* The function set-key has been renamed to global-set-key.
868 undefine-key and local-undefine-key has been renamed to
869 global-unset-key and local-unset-key.
870
871* Emacs now collects input from asynchronous subprocesses
872 while waiting in the functions sleep-for and sit-for.
873
874* Shell mode's Newline command attempts to distinguish subshell
875 prompts from user input when issued in the middle of the buffer.
876 It no longer reexecutes from dot to the end of the line;
877 it reeexecutes the entire line minus any prompt.
878 The prompt is recognized by searching for the value of
879 shell-prompt-pattern, starting from the beginning of the line.
880 Anything thus skipped is not reexecuted.
881
882Changes in Emacs 1.3
883
884* An undo facility exists now. Type C-x u to undo a batch of
885 changes (usually one command's changes, but some commands
886 such as query-replace divide their changes into multiple
887 batches. You can repeat C-x u to undo further. As long
888 as no commands other than C-x u intervene, each one undoes
889 another batch. A numeric argument to C-x u acts as a repeat
890 count.
891
892 If you keep on undoing, eventually you may be told that
893 you have used up all the recorded undo information.
894 Some actions, such as reading in files, discard all
895 undo information.
896
897 The undo information is not currently stored separately
898 for each buffer, so it is mainly good if you do something
899 totally spastic. [This has since been fixed.]
900
901* A learn-by-doing tutorial introduction to Emacs now exists.
902 Type C-h t to enter it.
903
904* An Info documentation browser exists. Do M-x info to enter it.
905 It contains a tutorial introduction so that no more documentation
906 is needed here. As of now, the only documentation in it
907 is that of Info itself.
908
909* Help k and Help c are now different. Help c prints just the
910 name of the function which the specified key invokes. Help k
911 prints the documentation of the function as well.
912
913* A document of the differences between GNU Emacs and Twenex Emacs
914 now exists. It is called DIFF, in the same directory as this file.
915
916* C mode can now indent comments better, including multi-line ones.
917 Meta-Control-q now reindents comment lines within the expression
918 being aligned.
919
920* Insertion of a close-parenthesis now shows the matching open-parenthesis
921 even if it is off screen, by printing the text following it on its line
922 in the minibuffer.
923
924* A file can now contain a list of local variable values
925 to be in effect when the file is edited. See the file DIFF
926 in the same directory as this file for full details.
927
928* A function nth is defined. It means the same thing as in Common Lisp.
929
930* The function install-command has been renamed to set-key.
931 It now takes the key sequence as the first argument
932 and the definition for it as the second argument.
933 Likewise, local-install-command has been renamed to local-set-key.
934
935Changes in Emacs 1.2
936
937* A Lisp single-stepping and debugging facility exists.
938 To cause the debugger to be entered when an error
939 occurs, set the variable debug-on-error non-nil.
940
941 To cause the debugger to be entered whenever function foo
942 is called, do (debug-on-entry 'foo). To cancel this,
943 do (cancel-debug-on-entry 'foo). debug-on-entry does
944 not work for primitives (written in C), only functions
945 written in Lisp. Most standard Emacs commands are in Lisp.
946
947 When the debugger is entered, the selected window shows
948 a buffer called " *Backtrace" which displays a series
949 of stack frames, most recently entered first. For each
950 frame, the function name called is shown, usually followed
951 by the argument values unless arguments are still being
952 calculated. At the beginning of the buffer is a description
953 of why the debugger was entered: function entry, function exit,
954 error, or simply that the user called the function `debug'.
955
956 To exit the debugger and return to top level, type `q'.
957
958 In the debugger, you can evaluate Lisp expressions by
959 typing `e'. This is equivalent to `M-ESC'.
960
961 When the debugger is entered due to an error, that is
962 all you can do. When it is entered due to function entry
963 (such as, requested by debug-on-entry), you have two
964 options:
965 Continue execution and reenter debugger after the
966 completion of the function being entered. Type `c'.
967 Continue execution but enter the debugger before
968 the next subexpression. Type `d'.
969
970 You will see that some stack frames are marked with *.
971 This means the debugger will be entered when those
972 frames exit. You will see the value being returned
973 in the first line of the backtrace buffer. Your options:
974 Continue execution, and return that value. Type `c'.
975 Continue execution, and return a specified value. Type `r'.
976
977 You can mark a frame to enter the debugger on exit
978 with the `b' command, or clear such a mark with `u'.
979
980* Lisp macros now exist.
981 For example, you can write
982 (defmacro cadr (arg) (list 'car (list 'cdr arg)))
983 and then the expression
984 (cadr foo)
985 will expand into
986 (car (cdr foo))
987
988Changes in Emacs 1.1
989
990* The initial buffer is now called "scratch" and is in a
991 new major mode, Lisp Interaction mode. This mode is
992 intended for typing Lisp expressions, evaluating them,
993 and having the values printed into the buffer.
994
995 Type Linefeed after a Lisp expression, to evaluate the
996 expression and have its value printed into the buffer,
997 advancing dot.
998
999 The other commands of Lisp mode are available.
1000
1001* The C-x C-e command for evaluating the Lisp expression
1002 before dot has been changed to print the value in the
1003 minibuffer line rather than insert it in the buffer.
1004 A numeric argument causes the printed value to appear
1005 in the buffer instead.
1006
1007* In Lisp mode, the command M-C-x evaluates the defun
1008 containing or following dot. The value is printed in
1009 the minibuffer.
1010
1011* The value of a Lisp expression evaluated using M-ESC
1012 is now printed in the minibuffer.
1013
1014* M-q now runs fill-paragraph, independent of major mode.
1015
1016* C-h m now prints documentation on the current buffer's
1017 major mode. What it prints is the documentation of the
1018 major mode name as a function. All major modes have been
1019 equipped with documentation that describes all commands
1020 peculiar to the major mode, for this purpose.
1021
1022* You can display a Unix manual entry with
1023 the M-x manual-entry command.
1024
1025* You can run a shell, displaying its output in a buffer,
1026 with the M-x shell command. The Return key sends input
1027 to the subshell. Output is printed inserted automatically
1028 in the buffer. Commands C-c, C-d, C-u, C-w and C-z are redefined
1029 for controlling the subshell and its subjobs.
1030 "cd", "pushd" and "popd" commands are recognized as you
1031 enter them, so that the default directory of the Emacs buffer
1032 always remains the same as that of the subshell.
1033
1034* C-x $ (that's a real dollar sign) controls line-hiding based
1035 on indentation. With a numeric arg N > 0, it causes all lines
1036 indented by N or more columns to become invisible.
1037 They are, effectively, tacked onto the preceding line, where
1038 they are represented by " ..." on the screen.
1039 (The end of the preceding visible line corresponds to a
1040 screen cursor position before the "...". Anywhere in the
1041 invisible lines that follow appears on the screen as a cursor
1042 position after the "...".)
1043 Currently, all editing commands treat invisible lines just
1044 like visible ones, except for C-n and C-p, which have special
1045 code to count visible lines only.
1046 C-x $ with no argument turns off this mode, which in any case
1047 is remembered separately for each buffer.
1048
1049* Outline mode is another form of selective display.
1050 It is a major mode invoked with M-x outline-mode.
1051 It is intended for editing files that are structured as
1052 outlines, with heading lines (lines that begin with one
1053 or more asterisks) and text lines (all other lines).
1054 The number of asterisks in a heading line are its level;
1055 the subheadings of a heading line are all following heading
1056 lines at higher levels, until but not including the next
1057 heading line at the same or a lower level, regardless
1058 of intervening text lines.
1059
1060 In outline mode, you have commands to hide (remove from display)
1061 or show the text or subheadings under each heading line
1062 independently. Hidden text or subheadings are invisibly
1063 attached to the end of the preceding heading line, so that
1064 if you kill the hading line and yank it back elsewhere
1065 all the invisible lines accompany it.
1066
1067 All editing commands treat hidden outline-mode lines
1068 as part of the preceding visible line.
1069
1070* C-x C-z runs save-buffers-kill-emacs
1071 offers to save each file buffer, then exits.
1072
1073* C-c's function is now called suspend-emacs.
1074
1075* The command C-x m runs mail, which switches to a buffer *mail*
1076 and lets you compose a message to send. C-x 4 m runs mail in
1077 another window. Type C-z C-s in the mail buffer to send the
1078 message according to what you have entered in the buffer.
1079
1080 You must separate the headers from the message text with
1081 an empty line.
1082
1083* You can now dired partial directories (specified with names
1084 containing *'s, etc, all processed by the shell). Also, you
1085 can dired more than one directory; dired names the buffer
1086 according to the filespec or directory name. Reinvoking
1087 dired on a directory already direded just switches back to
1088 the same directory used last time; do M-x revert if you want
1089 to read in the current contents of the directory.
1090
1091 C-x d runs dired, and C-x 4 d runs dired in another window.
1092
1093 C-x C-d (list-directory) also allows partial directories now.
1094
1095Lisp programming changes
1096
1097* t as an output stream now means "print to the minibuffer".
1098 If there is already text in the minibuffer printed via t
1099 as an output stream, the new text is appended to the old
1100 (or is truncated and lost at the margin). If the minibuffer
1101 contains text put there for some other reason, it is cleared
1102 first.
1103
1104 t is now the top-level value of standard-output.
1105
1106 t as an input stream now means "read via the minibuffer".
1107 The minibuffer is used to read a line of input, with editing,
1108 and this line is then parsed. Any excess not used by `read'
1109 is ignored; each `read' from t reads fresh input.
1110 t is now the top-level value of standard-input.
1111
1112* A marker may be used as an input stream or an output stream.
1113 The effect is to grab input from where the marker points,
1114 advancing it over the characters read, or to insert output
1115 at the marker and advance it.
1116
1117* Output from an asynchronous subprocess is now inserted at
1118 the end of the associated buffer, not at the buffer's dot,
1119 and the buffer's mark is set to the end of the inserted output
1120 each time output is inserted.
1121
1122* (pos-visible-in-window-p POS WINDOW)
1123 returns t if position POS in WINDOW's buffer is in the range
1124 that is being displayed in WINDOW; nil if it is scrolled
1125 vertically out of visibility.
1126
1127 If display in WINDOW is not currently up to date, this function
1128 calculates carefully whether POS would appear if display were
1129 done immediately based on the current (window-start WINDOW).
1130
1131 POS defaults to (dot), and WINDOW to (selected-window).
1132
1133* Variable buffer-alist replaced by function (buffer-list).
1134 The actual alist of buffers used internally by Emacs is now
1135 no longer accessible, to prevent the user from crashing Emacs
1136 by modifying it. The function buffer-list returns a list
1137 of all existing buffers. Modifying this list cannot hurt anything
1138 as a new list is constructed by each call to buffer-list.
1139
1140* load now takes an optional third argument NOMSG which, if non-nil,
1141 prevents load from printing a message when it starts and when
1142 it is done.
1143
1144* byte-recompile-directory is a new function which finds all
1145 the .elc files in a directory, and regenerates each one which
1146 is older than the corresponding .el (Lisp source) file.
1147
1148----------------------------------------------------------------------
1149Copyright information:
1150
1151Copyright (C) 1985 Richard M. Stallman
1152
1153 Permission is granted to anyone to make or distribute verbatim copies
1154 of this document as received, in any medium, provided that the
1155 copyright notice and this permission notice are preserved,
1156 thus giving the recipient permission to redistribute in turn.
1157
1158 Permission is granted to distribute modified versions
1159 of this document, or of portions of it,
1160 under the above conditions, provided also that they
1161 carry prominent notices stating who last changed them.
1162
1163Local variables:
1164mode: text
1165end:
1166
1167arch-tag: c006f958-d769-44c7-a9f4-e2faf070624d
diff --git a/etc/ONEWS.4 b/etc/ONEWS.4
deleted file mode 100644
index f3da0d6e62b..00000000000
--- a/etc/ONEWS.4
+++ /dev/null
@@ -1,1693 +0,0 @@
1GNU Emacs NEWS -- history of user-visible changes. 1992.
2Copyright (C) 1992 Free Software Foundation, Inc.
3See the end for copying conditions.
4
5For older news, see the file ONEWS.3.
6
7Changes in version 18.58.
8
9* RMAIL reply now properly parses nested comments in addesses.
10
11* The "visual bell" feature when used with X windows
12now flashes only 1/4 of the window's total area. This is because
13flashing the whole window is too slow on some systems.
14
15* `call-process' and `call-process-region' now return an indication
16of the exit status of the subprocess: either a numeric exit code
17or a string describing the signal which caused termination.
18
19* It is possible for regular expression matching to overflow the stack
20of failure points. In the past, such overflow was treated as simple
21failure to match. Now it causes an error.
22
23* You can use C-u to end a numeric argument. Thus, type C-u 1 0 0 C-u 1
24to insert 100 1's.
25
26* Emacs now knows how to get resource values from the X server.
27
28* Job control commands in shell mode work properly on more systems
29because they now work by "typing" signal characters such as C-c.
30
31* copy-keymap no longer recursively copies keymaps reached through
32symbols' function definitions (i.e., those that have names). It does
33copy nested keymaps that appear directly in the other copied keymaps.
34
35Changes in version 18.56.
36
37* C-g should now work to interrupt a running program
38on all kinds of systems even when using X windows.
39
40* Quitting is inhibited while a filter or sentinel is running.
41Those functions can run asynchronously while Emacs is waiting
42for keyboard input, and if they allow quitting, they
43make the behavior of C-g unpredictable.
44
45* Storing text into the X windows cut buffer
46now clears out any selection.
47
48* The undo facility is completely rewritten, and now
49uses Lisp data structures. It can record much more
50information. You can use the variables undo-threshold
51and undo-high-threshold to control how much.
52
53* There is no longer a maximum screen height or width.
54
55Changes in version 18.52.
56
57* X windows version 10 is supported under system V.
58
59* Pop-up menus are now supported with the same Lisp interface in
60both version 10 and 11 of X windows.
61
62* C-x 4 a is a new command to edit a change-log entry in another window.
63
64* The emacs client program now allows an option +NNN to specify the
65line number to go to in the file whose name follows. Thus,
66 emacsclient foo.c +45 bar.c
67will find the files `foo.c' and `bar.c', going to line 45 in `bar.c'.
68
69* Dired allows empty directories to be deleted like files.
70
71* When the terminal type is used to find a terminal-specific file to
72run, Emacs now tries the entire terminal type first. If that doesn't
73yield a file that exists, the last hyphen and what follows it is
74stripped. If that doesn't yield a file that exists, the previous
75hyphen is stripped, and so on until all hyphens are gone. For
76example, if the terminal type is `aaa-48-foo', Emacs will try first
77`term/aaa-48-foo.el', then `term/aaa-48.el' and finally `term/aaa.el'.
78
79Underscores now receive the same treatment as hyphens.
80
81* Texinfo features: @defun, etc. texinfo-show-structure.
82New template commands. texinfo-format-region.
83
84* The special "local variable" `eval' is now ignored if you are running
85as root.
86
87* New command `c-macro-expand' shows the result of C macro expansion
88in the region. It works using the C preprocessor, so its results
89are completely accurate.
90
91* Errors in trying to auto save now flash error messages for a few seconds.
92
93* Killing a buffer now sends SIGHUP to the buffer's process.
94
95* New hooks.
96
97** `spell-region' now allows you to filter the text before spelling-checking.
98If the value of `spell-filter' is non-nil, it is called, with no arguments,
99looking at a temporary buffer containing a copy of the text to be checked.
100It can alter the text freely before the spell program sees it.
101
102** The variable `lpr-command' now specifies the command to be used when
103you use the commands to print text (such as M-x print-buffer).
104
105** Posting netnews now calls the value of `news-inews-hook' (if not nil)
106as a function of no arguments before the actual posting.
107
108** Rmail now calls the value of `rmail-show-message-hook' (if not nil)
109as a function of no arguments, each time a new message is selected.
110
111** `kill-emacs' calls the value of `kill-emacs-hook' as a function of no args
112unless Emacs is running in batch mode.
113
114* New libraries.
115See the source code of each library for more information.
116
117** icon.el: a major mode for editing programs written in Icon.
118
119** life.el: a simulator for the cellular automaton "life". Load the
120library and run M-x life.
121
122** doctex.el: a library for converting the Emacs `etc/DOC' file of
123documentation strings into TeX input.
124
125** saveconf.el: a library which records the arrangement of windows and
126buffers when you exit Emacs, and automatically recreates the same
127setup the next time you start Emacs.
128
129** uncompress.el: a library that automatically uncompresses files
130when you visit them.
131
132** c-fill.el: a mode for editing filled comments in C.
133
134** kermit.el: an extended version of shell-mode designed for running kermit.
135
136** spook.el: a library for adding some "distract the NSA" keywords to every
137message you send.
138
139** hideif.el: a library for hiding parts of a C program based on preprocessor
140conditionals.
141
142** autoinsert.el: a library to put in some initial text when you visit
143a nonexistent file. The text used depends on the major mode, and
144comes from a directory of files created by you.
145
146* New programming features.
147
148** The variable `window-system-version' now contains the version number
149of the window system you are using (if appropriate). When using X windows,
150its value is either 10 or 11.
151
152** (interactive "N") uses the prefix argument if any; otherwise, it reads
153a number using the minibuffer.
154
155** VMS: there are two new functions `vms-system-info' and `shrink-to-icon'.
156The former allows you to get many kinds of system status information.
157See its self-documentation for full details.
158The second is used with the window system: it iconifies the Emacs window.
159
160** VMS: the new function `define-logical-name' allows you to create
161job-wide logical names. The old function `define-dcl-symbol' has been
162removed.
163
164Changes in version 18.50.
165
166* X windows version 11 is supported.
167
168Define X11 in config.h if you want X version 11 instead of version 10.
169
170* The command M-x gdb runs the GDB debugger as an inferior.
171It asks for the filename of the executable you want to debug.
172
173GDB runs as an inferior with I/O through an Emacs buffer. All the
174facilities of Shell mode are available. In addition, each time your
175program stops, and each time you select a new stack frame, the source
176code is displayed in another window with an arrow added to the line
177where the program is executing.
178
179Special GDB-mode commands include M-s, M-n, M-i, M-u, M-d, and C-c C-f
180which send the GDB commands `step', `next', `stepi', `up', `down'
181and `finish'.
182
183In any source file, the commands C-x SPC tells GDB to set a breakpoint
184on the current line.
185
186* M-x calendar displays a three-month calendar.
187
188* C-u 0 C-x C-s never makes a backup file.
189
190This is a way you can explicitly request not to make a backup.
191
192* `term-setup-hook' is for users only.
193
194Emacs never uses this variable for internal purposes, so you can freely
195set it in your `.emacs' file to make Emacs do something special after
196loading any terminal-specific setup file from `lisp/term'.
197
198* `copy-keymap' now copies recursive submaps.
199
200* New overlay-arrow feature.
201
202If you set the variable `overlay-arrow-string' to a string
203and `overlay-arrow-position' to a marker, that string is displayed on
204the screen at the position of that marker, hiding whatever text would
205have appeared there. If that position isn't on the screen, or if
206the buffer the marker points into isn't displayed, there is no effect.
207
208* -batch mode can read from the terminal.
209
210It now works to use `read-char' to do terminal input in a noninteractive
211Emacs run. End of file causes Emacs to exit.
212
213* Variables `data-bytes-used' and `data-bytes-free' removed.
214
215These variables cannot really work because the 24-bit range of an
216integer in (most ports of) GNU Emacs is not large enough to hold their
217values on many systems.
218
219Changes in version 18.45, since version 18.41.
220
221* C indentation parameter `c-continued-brace-offset'.
222
223This parameter's value is added to the indentation of any
224line that is in a continuation context and starts with an open-brace.
225For example, it applies to the open brace shown here:
226
227 if (x)
228 {
229
230The default value is zero.
231
232* Dabbrev expansion (Meta-/) preserves case.
233
234When you use Meta-/ to search the buffer for an expansion of an
235abbreviation, if the expansion found is all lower case except perhaps
236for its first letter, then the case pattern of the abbreviation
237is carried over to the expansion that replaces it.
238
239* TeX-mode syntax.
240
241\ is no longer given "escape character" syntax in TeX mode. It now
242has the syntax of an ordinary punctuation character. As a result,
243\[...\] and such like are considered to balance each other.
244
245* Mail-mode automatic Reply-to field.
246
247If the variable `mail-default-reply-to' is non-`nil', then each time
248you start to compose a message, a Reply-to field is inserted with
249its contents taken from the value of `mail-default-reply-to'.
250
251* Where is your .emacs file?
252
253If you run Emacs under `su', so your real and effective uids are
254different, Emacs uses the home directory associated with the real uid
255(the name you actually logged in under) to find the .emacs file.
256
257Otherwise, Emacs uses the environment variable HOME to find the .emacs
258file.
259
260The .emacs file is not loaded at all if -batch is specified.
261
262* Prolog mode is the default for ".pl" files.
263
264* File names are not case-sensitive on VMS.
265
266On VMS systems, all file names that you specify are converted to upper
267case. You can use either upper or lower case indiscriminately.
268
269* VMS-only function 'define-dcl-symbol'.
270
271This is a new name for the function formerly called
272`define-logical-name'.
273
274Editing Changes in Emacs 18
275
276* Additional systems and machines are supported.
277
278GNU Emacs now runs on Vax VMS. However, many facilities that are normally
279implemented by running subprocesses do not work yet. This includes listing
280a directory and sending mail. There are features for running subprocesses
281but they are incompatible with those on Unix. I hope that some of
282the VMS users can reimplement these features for VMS (compatibly for
283the user, if possible).
284
285VMS wizards are also asked to work on making the subprocess facilities
286more upward compatible with those on Unix, and also to rewrite their
287internals to use the same Lisp objects that are used on Unix to
288represent processes.
289
290In addition, the TI Nu machine running Unix system V, the AT&T 3b, and
291the Wicat, Masscomp, Integrated Solutions, Alliant, Amdahl uts, Mips,
292Altos 3068 and Gould Unix systems are now supported. The IBM PC-RT is
293supported under 4.2, but not yet under system V. The GEC 93 is close
294to working. The port for the Elxsi is partly merged. See the file
295MACHINES for full status information and machine-specific installation
296advice.
297
298* Searching is faster.
299
300Forward search for a text string, or for a regexp that is equivalent
301to a text string, is now several times faster. Motion by lines and
302counting lines is also faster.
303
304* Memory usage improvements.
305
306It is no longer possible to run out of memory during garbage
307collection. As a result, running out of memory is never fatal. This
308is due to a new garbage collection algorithm which compactifies
309strings in place rather than copying them. Another consequence of the
310change is a reduction in total memory usage and a slight increase in
311garbage collection speed.
312
313* Display changes.
314
315** Editing above top of screen.
316
317When you delete or kill or alter text that reaches to the top of the
318screen or above it, so that display would start in the middle of a
319line, Emacs will usually attempt to scroll the text so that display
320starts at the beginning of a line again.
321
322** Yanking in the minibuffer.
323
324The message "Mark Set" is no longer printed when the minibuffer is
325active. This is convenient with many commands, including C-y, that
326normally print such a message.
327
328** Cursor appears in last line during y-or-n questions.
329
330Questions that want a `y' or `n' answer now move the cursor
331to the last line, following the question.
332
333* Library loading changes.
334
335`load' now considers all possible suffixes (`.elc', `.el' and none)
336for each directory in `load-path' before going on to the next directory.
337It now accepts an optional fourth argument which, if non-nil, says to
338use no suffixes; then the file name must be given in full. The search
339of the directories in `load-path' goes on as usual in this case, but
340it too can be prevented by passing an absolute file name.
341
342The value of `load-path' no longer by default includes nil (meaning to
343look in the current default directory). The idea is that `load' should
344be used to search the path only for libraries to be found in the standard
345places. If you want to override system libraries with your own, place
346your own libraries in one special directory and add that directory to the
347front of `load-path'.
348
349The function `load' is no longer a command; that is to say, `M-x load'
350is no longer allowed. Instead, there are two commands for loading files.
351`M-x load-library' is equivalent to the old meaning of `M-x load'.
352`M-x load-file' reads a file name with completion and defaulting
353and then loads exactly that file, with no searching and no suffixes.
354
355* Emulation of other editors.
356
357** `edt-emulation-on' starts emulating DEC's EDT editor.
358
359Do `edt-emulation-off' to return Emacs to normal.
360
361** `vi-mode' and `vip-mode' starts emulating vi.
362
363These are two different vi emulations provided by GNU Emacs users.
364We are interested in feedback as to which emulation is preferable.
365
366See the documentation and source code for these functions
367for more information.
368
369** `set-gosmacs-bindings' emulates Gosling Emacs.
370
371This command changes many global bindings to resemble those of
372Gosling Emacs. The previous bindings are saved and can be restored using
373`set-gnu-bindings'.
374
375* Emulation of a display terminal.
376
377Within Emacs it is now possible to run programs (such as emacs or
378supdup) which expect to do output to a visual display terminal.
379
380See the function `terminal-emulator' for more information.
381
382* New support for keypads and function keys.
383
384There is now a first attempt at terminal-independent support for
385keypad and function keys.
386
387Emacs now defines a standard set of key-names for function and keypad
388keys, and provides standard hooks for defining them. Most of the
389standard key-names have default definitions built into Emacs; you can
390override these in a terminal-independent manner. The default definitions
391and the conventions for redefining them are in the file `lisp/keypad.el'.
392
393These keys on the terminal normally work by sending sequences of
394characters starting with ESC. The exact sequences used vary from
395terminal to terminal. Emacs interprets them in two stages:
396in the first stage, terminal-dependent sequences are mapped into
397the standard key-names; then second stage maps the standard key-names
398into their definitions in a terminal-independent fashion.
399
400The terminal-specific file `term/$TERM.el' now is responsible only for
401establishing the mapping from the terminal's escape sequences into
402standard key-names. It no longer knows what Emacs commands are
403assigned to the standard key-names.
404
405One other change in terminal-specific files: if the value of the TERM
406variable contains a hyphen, only the part before the first hyphen is
407used in forming the name of the terminal-specific file. Thus, for
408terminal type `aaa-48', the file loaded is now `term/aaa.el' rather
409than `term/aaa-48.el'.
410
411* New startup command line options.
412
413`-i FILE' or `-insert FILE' in the command line to Emacs tells Emacs to
414insert the contents of FILE into the current buffer at that point in
415command line processing. This is like using the command M-x insert-file.
416
417`-funcall', `-load', `-user' and `-no-init-file' are new synonyms for
418`-f', `-l', `-u' and `-q'.
419
420`-nw' means don't use a window system. If you are using a terminal
421emulator on the X window system and you want to run Emacs to work through
422the terminal emulator instead of working directly with the window system,
423use this switch.
424
425* Buffer-sorting commands.
426
427Various M-x commands whose names start with `sort-' sort parts of
428the region:
429
430sort-lines divides the region into lines and sorts them alphabetically.
431sort-pages divides into pages and sorts them alphabetically.
432sort-paragraphs divides into paragraphs and sorts them alphabetically.
433sort-fields divides into lines and sorts them alphabetically
434 according to one field in the line.
435 The numeric argument specifies which field (counting
436 from field 1 at the beginning of the line). Fields in a line
437 are separated by whitespace.
438sort-numeric-fields
439 is similar but converts the specified fields to numbers
440 and sorts them numerically.
441sort-columns divides into lines and sorts them according to the contents
442 of a specified range of columns.
443
444Refer to the self-documentation of these commands for full usage information.
445
446* Changes in various commands.
447
448** `occur' output now serves as a menu. `occur-menu' command deleted.
449
450`M-x occur' now allows you to move quickly to any of the occurrences
451listed. Select the `*Occur*' buffer that contains the output of `occur',
452move point to the occurrence you want, and type C-c C-c.
453This will move point to the same occurrence in the buffer that the
454occurrences were found in.
455
456The command `occur-menu' is thus obsolete, and has been deleted.
457
458One way to get a list of matching lines without line numbers is to
459copy the text to another buffer and use the command `keep-lines'.
460
461** Incremental search changes.
462
463Ordinary and regexp incremental searches now have distinct default
464search strings. Thus, regexp searches recall only previous regexp
465searches.
466
467If you exit an incremental search when the search string is empty,
468the old default search string is kept. The default does not become
469empty.
470
471Reversing the direction of an incremental search with C-s or C-r
472when the search string is empty now does not get the default search
473string. It leaves the search string empty. A second C-s or C-r
474will get the default search string. As a result, you can do a reverse
475incremental regexp search with C-M-s C-r.
476
477If you add a `*', `?' or `\|' to an incremental search regexp,
478point will back up if that is appropriate. For example, if
479you have searched for `ab' and add a `*', point moves to the
480first match for `ab*', which may be before the match for `ab'
481that was previously found.
482
483If an incremental search is failing and you ask to repeat it,
484it will start again from the beginning of the buffer (or the end,
485if it is a backward search).
486
487The search-controlling parameters `isearch-slow-speed' and
488`isearch-slow-window-lines' have now been renamed to start with
489`search' instead of `isearch'. Now all the parameters' names start
490with `search'.
491
492If `search-slow-window-lines' is negative, the slow search window
493is put at the top of the screen, and the absolute value or the
494negative number specifies the height of it.
495
496** Undo changes
497
498The undo command now will mark the buffer as unmodified only when it is
499identical to the contents of the visited file.
500
501** C-M-v in minibuffer.
502
503If while in the minibuffer you request help in a way that uses a
504window to display something, then until you exit the minibuffer C-M-v
505in the minibuffer window scrolls the window of help.
506
507For example, if you request a list of possible completions, C-M-v can
508be used reliably to scroll the completion list.
509
510** M-TAB command.
511
512Meta-TAB performs completion on the Emacs Lisp symbol names. The sexp
513in the buffer before point is compared against all existing nontrivial
514Lisp symbols and completed as far as is uniquely determined by them.
515Nontrivial symbols are those with either function definitions, values
516or properties.
517
518If there are multiple possibilities for the very next character, a
519list of possible completions is displayed.
520
521** Dynamic abbreviation package.
522
523The new command Meta-/ expands an abbreviation in the buffer before point
524by searching the buffer for words that start with the abbreviation.
525
526** Changes in saving kbd macros.
527
528The commands `write-kbd-macro' and `append-kbd-macro' have been
529deleted. The way to save a keyboard macro is to use the new command
530`insert-kbd-macro', which inserts Lisp code to define the macro as
531it is currently defined into the buffer before point. Visit a Lisp
532file such as your Emacs init file `~/.emacs', insert the macro
533definition (perhaps deleting an old definition for the same macro)
534and then save the file.
535
536** C-x ' command.
537
538The new command C-x ' (expand-abbrev) expands the word before point as
539an abbrev, even if abbrev-mode is not turned on.
540
541** Sending to inferior Lisp.
542
543The command C-M-x in Lisp mode, which sends the current defun to
544an inferior Lisp process, now works by writing the text into a temporary
545file and actually sending only a `load'-form to load the file.
546As a result, it avoids the Unix bugs that used to strike when the
547text was above a certain length.
548
549With a prefix argument, this command now makes the inferior Lisp buffer
550appear on the screen and scrolls it so that the bottom is showing.
551
552Two variables `inferior-lisp-load-command' and `inferior-lisp-prompt',
553exist to customize these feature for different Lisp implementations.
554
555** C-x n p now disabled.
556
557The command C-x n p, a nonrecomended command which narrows to the current
558page, is now initially disabled like C-x n n.
559
560* Dealing with files.
561
562** C-x C-v generalized
563
564This command is now allowed even if the current buffer is not visiting
565a file. As usual, it kills the current buffer and replaces it with a
566newly found file.
567
568** M-x recover-file improved; auto save file names changed.
569
570M-x recover-file now checks whether the last auto-save file is more
571recent than the real visited file before offering to read in the
572auto-save file. If the auto-save file is newer, a directory listing
573containing the two files is displayed while you are asked whether you
574want the auto save file.
575
576Visiting a file also makes this check. If the auto-save file is more recent,
577a message is printed suggesting that you consider using M-x recover file.
578
579Auto save file names now by default have a `#' at the end as well
580as at the beginning. This is so that `*.c' in a shell command
581will never match auto save files.
582
583On VMS, auto save file names are made by appending `_$' at the front
584and `$' at the end.
585
586When you change the visited file name of a buffer, the auto save file
587is now renamed to belong to the new visited file name.
588
589You can customize the way auto save file names are made by redefining
590the two functions `make-auto-save-file-name' and `auto-save-file-name-p',
591both of which are defined in `files.el'.
592
593** Modifying a buffer whose file is changed on disk is detected instantly.
594
595On systems where clash detection (locking of files being edited) is
596implemented, Emacs also checks the first time you modify a buffer
597whether the file has changed on disk since it was last visited or saved.
598If it has, you are asked to confirm that you want to change the buffer.
599
600** Exiting Emacs offers to save `*mail*'.
601
602Emacs can now know about buffers that it should offer to save on exit
603even though they are not visiting files. This is done for any buffer
604which has a non-nil local value of `buffer-offer-save'. By default,
605Mail mode provides such a local value.
606
607** Backup file changes.
608
609If a backup file cannot be written in the directory of the visited file
610due to fascist file protection, a backup file is now written in your home
611directory as `~/%backup%~'. Only one such file is made, ever, so only
612the most recently made such backup is available.
613
614When backup files are made by copying, the last-modification time of the
615original file is now preserved in the backup copy.
616
617** Visiting remote files.
618
619On an internet host, you can now visit and save files on any other
620internet host directly from Emacs with the commands M-x ftp-find-file
621and M-x ftp-write-file. Specify an argument of the form HOST:FILENAME.
622Since standard internet FTP is used, the other host may be any kind
623of machine and is not required to have any special facilities.
624
625The first time any one remote host is accessed, you will be asked to
626give the user name and password for use on that host. FTP is reinvoked
627each time you ask to use it, but previously specified user names and
628passwords are remembered automatically.
629
630** Dired `g' command.
631
632`g' in Dired mode is equivalent to M-x revert-buffer; it causes the
633current contents of the same directory to be read in.
634
635* Changes in major modes.
636
637** C mode indentation change.
638
639The binding of Linefeed is no longer changed by C mode. It once again
640has its normal meaning, which is to insert a newline and then indent
641afterward.
642
643The old definition did one additional thing: it reindented the line
644before the new newline. This has been removed because it made the
645command twice as slow. The only time it was really useful was after the
646insertion of an `else', since the fact of starting with `else' may change
647the way that line is indented. Now you will have to type TAB again
648yourself to reindent the `else' properly.
649
650If the variable `c-tab-always-indent' is set to `nil', the TAB command
651in C mode, with no argument, will just insert a tab character if there
652is non-whitespace preceding point on the current line. Giving it a
653prefix argument will force reindentation of the line (as well as
654of the compound statement that begins after point, if any).
655
656** Fortran mode now exists.
657
658This mode provides commands for motion and indentation of Fortran code,
659plus built-in abbrevs for Fortran keywords. For details, see the manual
660or the on-line documentation of the command `fortran-mode'.
661
662** Scribe mode now exists.
663
664This mode does something useful for editing files of Scribe input.
665It is used automatically for files with names ending in ".mss".
666
667** Modula2 and Prolog modes now exist.
668
669These modes are for editing programs in the languages of the same names.
670They can be selected with M-x modula-2-mode and M-x prolog-mode.
671
672** Telnet mode changes.
673
674The telnet mode special commands have now been assigned to C-c keys.
675Most of them are the same as in Shell mode.
676
677** Picture mode changes.
678
679The special picture-mode commands to specify the direction of cursor
680motion after insertion have been moved to C-c keys. The commands to
681specify diagonal motion were already C-c keys; they are unchanged.
682The keys to specify horizontal or vertical motion are now
683C-c < (left), C-c > (right), C-c ^ (up) and C-c . (down).
684
685** Nroff mode comments.
686
687Comments are now supported in Nroff mode. The standard comment commands
688such as M-; and C-x ; know how to insert, align and delete comments
689that start with backslash-doublequote.
690
691** LaTeX mode.
692
693LaTeX mode now exists. Use M-x latex-mode to select this mode, and
694M-x plain-tex-mode to select the previously existing mode for Plain
695TeX. M-x tex-mode attempts to examine the contents of the buffer and
696choose between latex-mode and plain-tex-mode accordingly; if the
697buffer is empty or it cannot tell, the variable `TeX-default-mode'
698controls the choice. Its value should be the symbol for the mode to
699be used.
700
701The facilities for running TeX on all or part of the buffer
702work with LaTeX as well.
703
704Some new commands available in both modes:
705
706C-c C-l recenter the window showing the TeX output buffer
707 so most recent line of output can be seen.
708C-c C-k kill the TeX subprocess.
709C-c C-q show the printer queue.
710C-c C-f close a block (appropriate for LaTeX only).
711 If the current line contains a \begin{...},
712 this inserts an \end{...} on the following line
713 and puts point on a blank line between them.
714
715** Outline mode changes.
716
717Invisible lines in outline mode are now indicated by `...' at the
718end of the previous visible line.
719
720The special outline heading motion commands are now all on C-c keys.
721A few new ones have been added. Here is a full list:
722
723C-c C-n Move to next visible heading (formerly M-})
724C-c C-p Move to previous visible heading (formerly M-{)
725C-c C-f Move to next visible heading at the same level.
726 Thus, if point is on a level-2 heading line,
727 this command moves to the next visible level-2 heading.
728C-c C-b Move to previous visible heading at the same level.
729C-c C-u Move up to previous visible heading at a higher level.
730
731The variable `outline-regexp' now controls recognition of heading lines.
732Any line whose beginning matches this regexp is a heading line.
733The depth in outline structure is determined by the length of
734the string that matches.
735
736A line starting with a ^L (formfeed) is now by default considered
737a header line.
738
739* Mail reading and sending.
740
741** MH-E changes.
742
743MH-E has been extensively modified and improved since the v17 release.
744It contains many new features, including commands to: extracted failed
745messages, kill a draft message, undo changes to a mail folder, monitor
746delivery of a letter, print multiple messages, page digests backwards,
747insert signatures, and burst digests. Also, many commands have been
748made to able to deal with named sequences of messages, instead of
749single messages. MH-E also has had numerous bugs fixed and commands
750made to run faster. Furthermore, its keybindings have been changed to
751be compatible with Rmail and the rest of GNU Emacs.
752
753** Mail mode changes.
754
755The C-c commands of mail mode have been rearranged:
756
757C-c s, C-c c, C-c t and C-c b (move point to various header fields)
758have been reassigned as C-c C-f C-s, C-c C-f C-c, C-c C-f C-t and C-c
759C-f C-b. C-c C-f is for "field".
760
761C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
762
763Thus, C-c LETTER is always unassigned.
764
765** Rmail C-r command changed to w.
766
767The Rmail command to edit the current message is now `w'. This change
768has been made because people frequently type C-r while in Rmail hoping
769to do a reverse incremental search. That now works.
770
771* Rnews changes.
772
773** Caesar rotation added.
774
775The function news-caesar-buffer-body performs the rot13 code on the
776body of a news message. You can also specify the number to rotate by,
777as a prefix argument. The function is bound to C-c C-r in both
778News mode and News Reply mode.
779
780** rmail-output command added.
781
782The C-o command has been bound to rmail-output in news-mode.
783This allows one to append an article to a file which is in either Unix
784mail or RMAIL format.
785
786** news-reply-mode changes.
787
788The C-c commands of news reply mode have been rearranged and changed,
789so that C-c LETTER is always unassigned:
790
791C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
792
793C-c c, C-c t, and C-c b (move to various mail header fields) have been
794deleted (they make no sense for posting and replying to USENET).
795
796C-c s (move to Subject: header field) has been reassigned as C-c C-f
797C-s. C-c C-f is for "field". Several additional move to news header
798field commands have been added.
799
800The local news-reply-mode bindings now look like this:
801
802C-c C-s news-inews (post the message) C-c C-c news-inews
803C-c C-f move to a header field (and create it if there isn't):
804 C-c C-f C-n move to Newsgroups: C-c C-f C-s move to Subj:
805 C-c C-f C-f move to Followup-To: C-c C-f C-k move to Keywords:
806 C-c C-f C-d move to Distribution: C-c C-f C-a move to Summary:
807C-c C-y news-reply-yank-original (insert current message, in NEWS).
808C-c C-q mail-fill-yanked-message (fill what was yanked).
809C-c C-r caesar rotate all letters by 13 places in the article's body (rot13).
810
811* Changes in tags handling.
812
813** M-. (`find-tag') and similar commands now look first for an exact
814match in the tags table, and try substring matches only afterward.
815
816** The new command `find-tag-regexp' visits successively the tags that
817match a specified regular expression.
818
819** You can now use more than one tags table. Using `visit-tags-table'
820to load a new tags table does not discard the other tables previously
821loaded. The other tags commands use all the tags tables that are loaded;
822the first tags table used is the one that mentions the current visited file.
823
824** Tags tables can now be told to "include" other tags tables. This means
825the tags table gives the file names of other tags tables. Tags command
826then search included tags tables after the including table (but before any
827other tags tables you have loaded). Included tags tables can make it much
828easier and more efficient to maintain a tags table for a large package with
829many subdirectories--there is one tags table for each subdirectory, and a
830master tags table that includes each subdirectory table. You use `-i'
831options to `etags' when creating the tags table to give the file names of
832the included tables.
833
834** You can now use the tags table for completion of names during
835ordinary editing. The command M-TAB (except in Emacs Lisp mode)
836completes the identifier in the buffer before point, using the set of
837all tags as the list of possible completions.
838
839** `tags-query-replace' and `tags-search' changes.
840
841These functions no longer permanently create buffers for files that
842are searched but that do not contain any matches for the search
843pattern.
844
845* Existing Emacs usable as a server.
846
847Programs such as mailers that invoke "the editor" as an inferior
848to edit some text can now be told to use an existing Emacs process
849instead of creating a new editor.
850
851To do this, you must have an Emacs process running and capable of
852doing terminal I/O at the time you want to invoke it. This means that
853either you are using a window system and give Emacs a separate window
854or you run the other programs as inferiors of Emacs (such as, using
855M-x shell).
856
857First prepare the existing Emacs process by loading the `server'
858library and executing M-x server-start. (Your .emacs can do this
859automatically.)
860
861Now tell the other programs to use, as "the editor", the Emacs client
862program (etc/emacsclient, located in the same directory as this file).
863This can be done by setting the environment variable EDITOR.
864
865When another program invokes the emacsclient as "the editor", the
866client actually transfers the file names to be edited to the existing
867Emacs, which automatically visits the files.
868
869When you are done editing a buffer for a client, do C-x # (server-edit).
870This marks that buffer as done, and selects the next buffer that the client
871asked for. When all the buffers requested by a client are marked in this
872way, Emacs tells the client program to exit, so that the program that
873invoked "the editor" will resume execution.
874
875You can only have one server Emacs at a time, but multiple client programs
876can put in requests at the same time.
877
878The client/server work only on Berkeley Unix, since they use the Berkeley
879sockets mechanism for their communication.
880
881Changes in Lisp programming in Emacs version 18.
882
883* Init file changes.
884
885** Suffixes no longer accepted on `.emacs'.
886
887Emacs will no longer load a file named `.emacs.el' or `emacs.elc'
888in place of `.emacs'. This is so that it will take less time to
889find `.emacs'. If you want to compile your init file, give it another
890name and make `.emacs' a link to the `.elc' file, or make it contain
891a call to `load' to load the `.elc' file.
892
893** `default-profile' renamed to `default', and loaded after `.emacs'.
894
895It used to be the case that the file `default-profile' was loaded if
896and only if `.emacs' was not found.
897
898Now the name `default-profile' is not used at all. Instead, a library
899named `default' is loaded after the `.emacs' file. `default' is loaded
900whether the `.emacs' file exists or not. However, loading of `default'
901can be prevented if the `.emacs' file sets `inhibit-default-init' to non-nil.
902
903In fact, you would call the default file `default.el' and probably would
904byte-compile it to speed execution.
905
906Note that for most purposes you are better off using a `site-init' library
907since that will be loaded before the runnable Emacs is dumped. By using
908a `site-init' library, you avoid taking up time each time Emacs is started.
909
910** inhibit-command-line has been eliminated.
911
912This variable used to exist for .emacs files to set. It has been
913eliminated because you can get the same effect by setting
914command-line-args to nil and setting inhibit-startup-message to t.
915
916* `apply' is more general.
917
918`apply' now accepts any number of arguments. The first one is a function;
919the rest are individual arguments to pass to that function, except for the
920last, which is a list of arguments to pass.
921
922Previously, `apply' required exactly two arguments. Its old behavior
923follows as a special case of the new definition.
924
925* New code-letter for `interactive'.
926
927(interactive "NFoo: ") is like (interactive "nFoo: ") in reading
928a number using the minibuffer to serve as the argument; however,
929if a prefix argument was specified, it uses the prefix argument
930value as the argument, and does not use the minibuffer at all.
931
932This is used by the `goto-line' and `goto-char' commands.
933
934* Semantics of variables.
935
936** Built-in per-buffer variables improved.
937
938Several built-in variables which in the past had a different value in
939each buffer now behave exactly as if `make-variable-buffer-local' had
940been done to them.
941
942These variables are `tab-width', `ctl-arrow', `truncate-lines',
943`fill-column', `left-margin', `mode-line-format', `abbrev-mode',
944`overwrite-mode', `case-fold-search', `auto-fill-hook',
945`selective-display', `selective-display-ellipses'.
946
947To be precise, each variable has a default value which shows through
948in most buffers and can be accessed with `default-value' and set with
949`set-default'. Setting the variable with `setq' makes the variable
950local to the current buffer. Changing the default value has retroactive
951effect on all buffers in which the variable is not local.
952
953The variables `default-case-fold-search', etc., are now obsolete.
954They now refer to the default value of the variable, which is not
955quite the same behavior as before, but it should enable old init files
956to continue to work.
957
958** New per-buffer variables.
959
960The variables `fill-prefix', `comment-column' and `indent-tabs-mode'
961are now per-buffer. They work just like `fill-column', etc.
962
963** New function `setq-default'.
964
965`setq-default' sets the default value of a variable, and uses the
966same syntax that `setq' accepts: the variable name is not evaluated
967and need not be quoted.
968
969`(setq-default case-fold-search nil)' would make searches case-sensitive
970in all buffers that do not have local values for `case-fold-search'.
971
972You can set multiple variables sequentially, each with its own value,
973in `setq-default' just as in `setq'.
974
975** Functions `global-set' and `global-value' deleted.
976
977These functions were never used except by mistake by users expecting
978the functionality of `set-default' and `default-value'.
979
980* Changes in defaulting of major modes.
981
982When `default-major-mode' is `nil', new buffers are supposed to
983get their major mode from the buffer that is current. However,
984certain major modes (such as Dired mode, Rmail mode, Rmail Summary mode,
985and others) are not reasonable to use in this way.
986
987Now such modes' names have been given non-`nil' `mode-class' properties.
988If the current buffer's mode has such a property, Fundamental mode is
989used as the default for newly created buffers.
990
991* `where-is-internal' requires additional arguments.
992
993This function now accepts three arguments, two of them required:
994DEFINITION, the definition to search for; LOCAL-KEYMAP, the keymap
995to use as the local map when doing the searching, and FIRST-ONLY,
996which is nonzero to return only the first key found.
997
998This function returns a list of keys (strings) whose definitions
999(in the LOCAL-KEYMAP or the current global map) are DEFINITION.
1000
1001If FIRST-ONLY is non-nil, it returns a single key (string).
1002
1003This function has changed incompatibly in that now two arguments
1004are required when previously only one argument was allowed. To get
1005the old behavior of this function, write `(current-local-map)' as
1006the expression for the second argument.
1007
1008The incompatibility is sad, but `nil' is a legitimate value for the
1009second argument (it means there is no local keymap), so it cannot also
1010serve as a default meaning to use the current local keymap.
1011
1012* Abbrevs with hooks.
1013
1014When an abbrev defined with a hook is expanded, it now performs the
1015usual replacement of the abbrev with the expansion before running the
1016hook. Previously the abbrev itself was deleted but the expansion was
1017not inserted.
1018
1019* Function `scan-buffer' deleted.
1020
1021Use `search-forward' or `search-backward' in place of `scan-buffer'.
1022You will have to rearrange the arguments.
1023
1024* X window interface improvements.
1025
1026** Detect release of mouse buttons.
1027
1028Button-up events can now be detected. See the file `lisp/x-mouse.el'
1029for details.
1030
1031** New pop-up menu facility.
1032
1033The new function `x-popup-menu' pops up a menu (in a X window)
1034and returns an indication of which selection the user made.
1035For more information, see its self-documentation.
1036
1037* M-x disassemble.
1038
1039This command prints the disassembly of a byte-compiled Emacs Lisp function.
1040
1041Would anyone like to interface this to the debugger?
1042
1043* `insert-buffer-substring' can insert part of the current buffer.
1044
1045The old restriction that the text being inserted had to come from
1046a different buffer is now lifted.
1047
1048When inserting text from the current buffer, the text to be inserted
1049is determined from the specified bounds before any copying takes place.
1050
1051* New function `substitute-key-definition'.
1052
1053This is a new way to replace one command with another command as the
1054binding of whatever keys may happen to refer to it.
1055
1056(substitute-key-definition OLDDEF NEWDEF KEYMAP) looks through KEYMAP
1057for keys defined to run OLDDEF, and rebinds those keys to run NEWDEF
1058instead.
1059
1060* New function `insert-char'.
1061
1062Insert a specified character, a specified number of times.
1063
1064* `mark-marker' changed.
1065
1066When there is no mark, this now returns a marker that points
1067nowhere, rather than `nil'.
1068
1069* `ding' accepts argument.
1070
1071When given an argument, the function `ding' does not terminate
1072execution of a keyboard macro. Normally, `ding' does terminate
1073all macros that are currently executing.
1074
1075* New function `minibuffer-depth'.
1076
1077This function returns the current depth in minibuffer activations.
1078The value is zero when the minibuffer is not in use.
1079Values greater than one are possible if the user has entered the
1080minibuffer recursively.
1081
1082* New function `documentation-property'.
1083
1084(documentation-property SYMBOL PROPNAME) is like (get SYMBOL PROPNAME),
1085except that if the property value is a number `documentation-property'
1086will take that number (or its absolute value) as a character position
1087in the DOC file and return the string found there.
1088
1089(documentation-property VAR 'variable-documentation) is the proper
1090way for a Lisp program to get the documentation of variable VAR.
1091
1092* New documentation-string expansion feature.
1093
1094If a documentation string (for a variable or function) contains text
1095of the form `\<FOO>', it means that all command names specified in
1096`\[COMMAND]' construct from that point on should be turned into keys
1097using the value of the variable FOO as the local keymap. Thus, for example,
1098
1099 `\<emacs-lisp-mode-map>\[eval-defun] evaluates the defun containing point.'
1100
1101will expand into
1102
1103 "ESC C-x evaluates the defun containing point."
1104
1105regardless of the current major mode, because ESC C-x is defined to
1106run `eval-defun' in the keymap `emacs-lisp-mode-map'. The effect is
1107to show the key for `eval-defun' in Emacs Lisp mode regardless of the
1108current major mode.
1109
1110The `\<...>' construct applies to all `\[...]' constructs that follow it,
1111up to the end of the documentation string or the next `\<...>'.
1112
1113Without `\<...>', the keys for commands specified in `\[...]' are found
1114in the current buffer's local map.
1115
1116The current global keymap is always searched second, whether `\<...>'
1117has been used or not.
1118
1119* Multiple hooks allowed in certain contexts.
1120
1121The old hook variables `find-file-hook', `find-file-not-found-hook' and
1122`write-file-hook' have been replaced.
1123
1124The replacements are `find-file-hooks', `find-file-not-found-hooks'
1125and `write-file-hooks'. Each holds a list of functions to be called;
1126by default, `nil', for no functions. The functions are called in
1127order of appearance in the list.
1128
1129In the case of `find-file-hooks', all the functions are executed.
1130
1131In the case of `find-file-not-found-hooks', if any of the functions
1132returns non-`nil', the rest of the functions are not called.
1133
1134In the case of `write-file-hooks', if any of the functions returns
1135non-`nil', the rest of the functions are not called, and the file is
1136considered to have been written already; so actual writing in the
1137usual way is not done. If `write-file-hooks' is local to a buffer,
1138it is set to its global value if `set-visited-file-name' is called
1139(and thus by C-x C-w as well).
1140
1141`find-file-not-found-hooks' and `write-file-hooks' can be used
1142together to implement editing of files that are not stored as Unix
1143files: stored in archives, or inside version control systems, or on
1144other machines running other operating systems and accessible via ftp.
1145
1146* New hooks for suspending Emacs.
1147
1148Suspending Emacs runs the hook `suspend-hook' before suspending
1149and the hook `suspend-resume-hook' if the suspended Emacs is resumed.
1150Running a hook is done by applying the variable's value to no arguments
1151if the variable has a non-`nil' value. If `suspend-hook' returns
1152non-`nil', then suspending is inhibited and so is running the
1153`suspend-resume-hook'. The non-`nil' value means that the `suspend-hook'
1154has done whatever suspending is required.
1155
1156* Disabling commands can print a special message.
1157
1158A command is disabled by giving it a non-`nil' `disabled' property.
1159Now, if this property is a string, it is included in the message
1160printed when the user tries to run the command.
1161
1162* Emacs can open TCP connections.
1163
1164The function `open-network-stream' opens a TCP connection to
1165a specified host and service. Its value is a Lisp object that represents
1166the connection. The object is a kind of "subprocess", and I/O are
1167done like I/O to subprocesses.
1168
1169* Display-related changes.
1170
1171** New mode-line control features.
1172
1173The display of the mode line used to be controlled by a format-string
1174that was the value of the variable `mode-line-format'.
1175
1176This variable still exists, but it now allows more general values,
1177not just strings. Lists, cons cells and symbols are also meaningful.
1178
1179The mode line contents are created by outputting various mode elements
1180one after the other. Here are the kinds of objects that can be
1181used as mode elements, and what they do in the display:
1182
1183 string the contents of the string are output to the mode line,
1184 and %-constructs are replaced by other text.
1185
1186 t or nil ignored; no output results.
1187
1188 symbol the symbol's value is used. If the value is a string,
1189 the string is output verbatim to the mode line
1190 (so %-constructs are not interpreted). Otherwise,
1191 the symbol's value is processed as a mode element.
1192
1193 list (whose first element is a string or list or cons cell)
1194 the elements of the list are treated as as mode elements,
1195 so that the output they generate is concatenated,
1196
1197 list (whose car is a symbol)
1198 if the symbol's value is non-nil, the second element of the
1199 list is treated as a mode element. Otherwise, the third
1200 element (if any) of the list is treated as a mode element.
1201
1202 cons (whose car is a positive integer)
1203 the cdr of the cons is used as a mode element, but
1204 the text it produces is padded, if necessary, to have
1205 at least the width specified by the integer.
1206
1207 cons (whose car is a negative integer)
1208 the cdr of the cons is used as a mode element, but
1209 the text it produces is truncated, if necessary, to have
1210 at most the width specified by the integer.
1211
1212There is always one mode element to start with, that being the value of
1213`mode-line-format', but if this value is a list then it leads to several
1214more mode elements, which can lead to more, and so on.
1215
1216There is one new %-construct for mode elements that are strings:
1217`%n' displays ` Narrow' for a buffer that is narrowed.
1218
1219The default value of `mode-line-format' refers to several other variables.
1220These variables are `mode-name', `mode-line-buffer-identification',
1221`mode-line-process', `mode-line-modified', `global-mode-string' and
1222`minor-mode-alist'. The first four are local in every buffer in which they
1223are changed from the default.
1224
1225mode-name Name of buffer's major mode. Local in every buffer.
1226
1227mode-line-buffer-identification
1228 Normally the list ("Emacs: %17b"), it is responsible
1229 for displaying text to indicate what buffer is being shown
1230 and what kind of editing it is doing. `Emacs' means
1231 that a file of characters is being edited. Major modes
1232 such as Info and Dired which edit or view other kinds
1233 of data often change this value. This variables becomes
1234 local to the current buffer if it is setq'd.
1235
1236mode-line-process
1237 Normally nil, this variable is responsible for displaying
1238 information about the process running in the current buffer.
1239 M-x shell-mode and M-x compile alter this variable.
1240
1241mode-line-modified
1242 This variable is responsible for displaying the indication
1243 of whether the current buffer is modified or read-only.
1244 By default its value is `("--%*%*-")'.
1245
1246minor-mode-alist
1247 This variable is responsible for displaying text for those
1248 minor modes that are currently enabled. Its value
1249 is a list of elements of the form (VARIABLE STRING),
1250 where STRING is to be displayed if VARIABLE's value
1251 (in the buffer whose mode line is being displayed)
1252 is non-nil. This variable is not made local to particular
1253 buffers, but loading some libraries may add elements to it.
1254
1255global-mode-string
1256 This variable is used to display the time, if you ask
1257 for that.
1258
1259The idea of these variables is to eliminate the need for major modes
1260to alter mode-line-format itself.
1261
1262** `window-point' valid for selected window.
1263
1264The value returned by `window-point' used to be incorrect when its
1265argument was the selected window. Now the value is correct.
1266
1267** Window configurations may be saved as Lisp objects.
1268
1269The function `current-window-configuration' returns a special type of
1270Lisp object that represents the current layout of windows: the
1271sizes and positions of windows, which buffers appear in them, and
1272which parts of the buffers appear on the screen.
1273
1274The function `set-window-configuration' takes one argument, which must
1275be a window configuration object, and restores that configuration.
1276
1277** New hook `temp-output-buffer-show-hook'.
1278
1279This hook allows you to control how help buffers are displayed.
1280Whenever `with-output-to-temp-buffer' has executed its body and wants
1281to display the temp buffer, if this variable is bound and non-`nil'
1282then its value is called with one argument, the temp buffer.
1283The hook function is solely responsible for displaying the buffer.
1284The standard manner of display--making the buffer appear in a window--is
1285used only if there is no hook function.
1286
1287** New function `minibuffer-window'.
1288
1289This function returns the window used (sometimes) for displaying
1290the minibuffer. It can be used even when the minibuffer is not active.
1291
1292** New feature to `next-window'.
1293
1294If the optional second argument is neither `nil' nor `t', the minibuffer
1295window is omitted from consideration even when active; if the starting
1296window was the last non-minibuffer window, the value will be the first
1297non-minibuffer window.
1298
1299** New variable `minibuffer-scroll-window'.
1300
1301When this variable is non-`nil', the command `scroll-other-window'
1302uses it as the window to be scrolled. Displays of completion-lists
1303set this variable to the window containing the display.
1304
1305** New argument to `sit-for'.
1306
1307A non-nil second argument to `sit-for' means do not redisplay;
1308just wait for the specified time or until input is available.
1309
1310** Deleted function `set-minor-mode'; minor modes must be changed.
1311
1312The function `set-minor-mode' has been eliminated. The display
1313of minor mode names in the mode line is now controlled by the
1314variable `minor-mode-alist'. To specify display of a new minor
1315mode, it is sufficient to add an element to this list. Once that
1316is done, you can turn the mode on and off just by setting a variable,
1317and the display will show its status automatically.
1318
1319** New variable `cursor-in-echo-area'.
1320
1321If this variable is non-nil, the screen cursor appears on the
1322last line of the screen, at the end of the text displayed there.
1323
1324Binding this variable to t is useful at times when reading single
1325characters of input with `read-char'.
1326
1327** New per-buffer variable `selective-display-ellipses'.
1328
1329If this variable is non-nil, an ellipsis (`...') appears on the screen
1330at the end of each text line that is followed by invisible text.
1331
1332If this variable is nil, no ellipses appear. Then there is no sign
1333on the screen that invisible text is present.
1334
1335Text is made invisible under the control of the variable
1336`selective-display'; this is how Outline mode and C-x $ work.
1337
1338** New variable `no-redraw-on-reenter'.
1339
1340If you set this variable non-nil, Emacs will not clear the screen when
1341you resume it after suspending it. This is for the sake of terminals
1342with multiple screens of memory, where the termcap entry has been set
1343up to switch between screens when Emacs is suspended and resumed.
1344
1345** New argument to `set-screen-height' or `set-screen-width'.
1346
1347These functions now take an optional second argument which says
1348what significance the newly specified height or width has.
1349
1350If the argument is nil, or absent, it means that Emacs should
1351believe that the terminal height or width really is as just specified.
1352
1353If the argument is t, it means Emacs should not believe that the
1354terminal really is this high or wide, but it should use the
1355specific height or width as the number of lines or columns to display.
1356Thus, you could display only 24 lines on a screen known to have 48 lines.
1357
1358What practical difference is there between using only 24 lines for display
1359and really believing that the terminal has 24 lines?
1360
13611. The "real" height of the terminal says what the terminal command
1362to move the cursor to the last line will do.
1363
13642. The "real" height of the terminal determines how much padding is
1365needed.
1366
1367* File-related changes.
1368
1369** New parameter `backup-by-copying-when-mismatch'.
1370
1371If this variable is non-`nil', then when Emacs is about to save a
1372file, it will create the backup file by copying if that would avoid
1373changing the file's uid or gid.
1374
1375The default value of this variable is `nil', because usually it is
1376useful to have the uid of a file change according to who edited it
1377last. I recommend thet this variable be left normally `nil' and
1378changed with a local variables list in those particular files where
1379the uid needs to be preserved.
1380
1381** New parameter `file-precious-flag'.
1382
1383If this variable is non-`nil', saving the buffer tries to avoid
1384leaving an incomplete file due to disk full or other I/O errors.
1385It renames the old file before saving. If saving is successful,
1386the renamed file is deleted; if saving gets an error, the renamed
1387file is renamed back to the name you visited.
1388
1389Backups are always made by copying for such files.
1390
1391** New variable `buffer-offer-save'.
1392
1393If the value of this variable is non-`nil' in a buffer then exiting
1394Emacs will offer to save the buffer (if it is modified and nonempty)
1395even if the buffer is not visiting a file. This variable is
1396automatically made local to the current buffer whenever it is set.
1397
1398** `rename-file', `copy-file', `add-name-to-file' and `make-symbolic-link'.
1399
1400The third argument to these functions used to be `t' or `nil'; `t'
1401meaning go ahead even if the specified new file name already has a file,
1402and `nil' meaning to get an error.
1403
1404Now if the third argument is a number it means to ask the user for
1405confirmation in this case.
1406
1407** New optional argument to `copy-file'.
1408
1409If `copy-file' receives a non-nil fourth argument, it attempts
1410to give the new copy the same time-of-last-modification that the
1411original file has.
1412
1413** New function `file-newer-than-file-p'.
1414
1415(file-newer-than-file-p FILE1 FILE2) returns non-nil if FILE1 has been
1416modified more recently than FILE2. If FILE1 does not exist, the value
1417is always nil; otherwise, if FILE2 does not exist, the value is t.
1418This is meant for use when FILE2 depends on FILE1, to see if changes
1419in FILE1 make it necessary to recompute FILE2 from it.
1420
1421** Changed function `file-exists-p'.
1422
1423This function is no longer the same as `file-readable-p'.
1424`file-exists-p' can now return t for a file that exists but which
1425the fascists won't allow you to read.
1426
1427** New function `file-locked-p'.
1428
1429This function receives a file name as argument and returns `nil'
1430if the file is not locked, `t' if locked by this Emacs, or a
1431string giving the name of the user who has locked it.
1432
1433** New function `file-name-sans-versions'.
1434
1435(file-name-sans-versions NAME) returns a substring of NAME, with any
1436version numbers or other backup suffixes deleted from the end.
1437
1438** New functions for directory names.
1439
1440Although a directory is really a kind of file, specifying a directory
1441uses a somewhat different syntax from specifying a file.
1442In Emacs, a directory name is used as part of a file name.
1443
1444On Unix, the difference is small: a directory name ends in a slash,
1445while a file name does not: thus, `/usr/rms/' to name a directory,
1446while `/usr/rms' names the file which holds that directory.
1447
1448On VMS, the difference is considerable: `du:[rms.foo]' specifies a
1449directory, but the name of the file that holds that directory is
1450`du:[rms]foo.dir'.
1451
1452There are two new functions for converting between directory names
1453and file names. `directory-file-name' takes a directory name and
1454returns the name of the file in which that directory's data is stored.
1455`file-name-as-directory' takes the name of a file and returns
1456the corresponding directory name. These always understand Unix file name
1457syntax; on VMS, they understand VMS syntax as well.
1458
1459For example, (file-name-as-directory "/usr/rms") returns "/usr/rms/"
1460and (directory-file-name "/usr/rms/") returns "/usr/rms".
1461On VMS, (file-name-as-directory "du:[rms]foo.dir") returns "du:[rms.foo]"
1462and (directory-file-name "du:[rms.foo]") returns "du:[rms]foo.dir".
1463
1464** Value of `file-attributes' changed.
1465
1466The function file-attributes returns a list containing many kinds of
1467information about a file. Now the list has eleven elements.
1468
1469The tenth element is `t' if deleting the file and creating another
1470file of the same name would result in a change in the file's group;
1471`nil' if there would be no change. You can also think of this as
1472comparing the file's group with the default group for files created in
1473the same directory by you.
1474
1475The eleventh element is the inode number of the file.
1476
1477** VMS-only function `file-name-all-versions'.
1478
1479This function returns a list of all the completions, including version
1480number, of a specified version-number-less file name. This is like
1481`file-name-all-completions', except that the latter returns values
1482that do not include version numbers.
1483
1484** VMS-only variable `vms-stmlf-recfm'.
1485
1486On a VMS system, if this variable is non-nil, Emacs will give newly
1487created files the record format `stmlf'. This is necessary for files
1488that must contain lines of arbitrary length, such as compiled Emacs
1489Lisp.
1490
1491When writing a new version of an existing file, Emacs always keeps
1492the same record format as the previous version; so this variable has
1493no effect.
1494
1495This variable has no effect on Unix systems.
1496
1497** `insert-file-contents' on an empty file.
1498
1499This no longer sets the buffer's "modified" flag.
1500
1501** New function (VMS only) `define-logical-name':
1502
1503(define-logical-name LOGICAL TRANSLATION) defines a VMS logical name
1504LOGICAL whose translation is TRANSLATION. The new name applies to
1505the current process only.
1506
1507** Deleted variable `ask-about-buffer-names'.
1508
1509If you want buffer names for files to be generated in a special way,
1510you must redefine `create-file-buffer'.
1511
1512* Subprocess-related changes.
1513
1514** New function `process-list'.
1515
1516This function takes no arguments and returns a list of all
1517of Emacs's asynchronous subprocesses.
1518
1519** New function `process-exit-status'.
1520
1521This function, given a process, process name or buffer as argument,
1522returns the exit status code or signal number of the process.
1523If the process has not yet exited or died, this function returns 0.
1524
1525** Process output ignores `buffer-read-only'.
1526
1527Output from a process will go into the process's buffer even if the
1528buffer is read only.
1529
1530** Switching buffers in filter functions and sentinels.
1531
1532Emacs no longer saves and restore the current buffer around calling
1533the filter and sentinel functions, so these functions can now
1534permanently alter the selected buffer in a straightforward manner.
1535
1536** Specifying environment variables for subprocesses.
1537
1538When a subprocess is started with `start-process' or `call-process',
1539the value of the variable `process-environment' is taken to
1540specify the environment variables to give the subprocess. The
1541value should be a list of strings, each of the form "VAR=VALUE".
1542
1543`process-environment' is initialized when Emacs starts up
1544based on Emacs's environment.
1545
1546** New variable `process-connection-type'.
1547
1548If this variable is `nil', when a subprocess is created, Emacs uses
1549a pipe rather than a pty to communicate with it. Normally this
1550variable is `t', telling Emacs to use a pty if ptys are supported
1551and one is available.
1552
1553** New function `waiting-for-user-input-p'.
1554
1555This function, given a subprocess as argument, returns `t' if that
1556subprocess appears to be waiting for input sent from Emacs,
1557or `nil' otherwise.
1558
1559** New hook `shell-set-directory-error-hook'.
1560
1561The value of this variable is called, with no arguments, whenever
1562Shell mode gets an error trying to keep track of directory-setting
1563commands (such as `cd' and `pushd') used in the shell buffer.
1564
1565* New functions `user-uid' and `user-real-uid'.
1566
1567These functions take no arguments and return, respectively,
1568the effective uid and the real uid of the Emacs process.
1569The value in each case is an integer.
1570
1571* New variable `print-escape-newlines' controls string printing.
1572
1573If this variable is non-`nil', then when a Lisp string is printed
1574by the Lisp printing function `prin1' or `print', newline characters
1575are printed as `\n' rather than as a literal newline.
1576
1577* New function `sysnetunam' on HPUX.
1578
1579This function takes two arguments, a network address PATH and a
1580login string LOGIN, and executes the system call `netunam'.
1581It returns `t' if the call succeeds, otherwise `nil'.
1582
1583News regarding installation:
1584
1585* Many `s-...' file names changed.
1586
1587Many `s-...' files have been renamed. All periods in such names,
1588except the ones just before the final `h', have been changed to
1589hyphens. Thus, `s-bsd4.2.h' has been renamed to `s-bsd4-2.h'.
1590
1591This is so a Unix distribution can be moved mechanically to VMS.
1592
1593* `DOCSTR...' file now called `DOC-...'.
1594
1595The file of on-line documentation strings, that used to be
1596`DOCSTR.mm.nn.oo' in this directory, is now called `DOC-mm.nn.oo'.
1597This is so that it can port to VMS using the standard conventions
1598for translating filenames for VMS.
1599
1600This file also now contains the doc strings for variables as
1601well as functions.
1602
1603* Emacs no longer uses floating point arithmetic.
1604
1605This may make it easier to port to some machines.
1606
1607* Macros `XPNTR' and `XSETPNTR'; flag `DATA_SEG_BITS'.
1608
1609These macros exclusively are used to unpack a pointer from a Lisp_Object
1610and to insert a pointer into a Lisp_Object. Redefining them may help
1611port Emacs to machines in which all pointers to data objects have
1612certain high bits set.
1613
1614If `DATA_SEG_BITS' is defined, it should be a number which contains
1615the high bits to be inclusive or'ed with pointers that are unpacked.
1616
1617* New flag `HAVE_X_MENU'.
1618
1619Define this flag in `config.h' in addition to `HAVE_X_WINDOWS'
1620to enable use of the Emacs interface to X Menus. On some operating
1621systems, the rest of the X interface works properly but X Menus
1622do not work; hence this separate flag. See the file `src/xmenu.c'
1623for more information.
1624
1625* Macros `ARRAY_MARK_FLAG' and `DONT_COPY_FLAG'.
1626
1627* `HAVE_ALLOCA' prevents assembly of `alloca.s'.
1628
1629* `SYSTEM_MALLOC' prevents use of GNU `malloc.c'.
1630
1631SYSTEM_MALLOC, if defined, means use the system's own `malloc' routines
1632rather than those that come with Emacs.
1633
1634Use this only if absolutely necessary, because if it is used you do
1635not get warnings when space is getting low.
1636
1637* New flags to control unexec.
1638
1639See the file `unexec.c' for a long comment on the compilation
1640switches that suffice to make it work on many machines.
1641
1642* `PNTR_COMPARISON_TYPE'
1643
1644Pointers that need to be compared for ordering are converted to this type
1645first. Normally this is `unsigned int'.
1646
1647* `HAVE_VFORK', `HAVE_DUP2' and `HAVE_GETTIMEOFDAY'.
1648
1649These flags just say whether certain system calls are available.
1650
1651* New macros control compiler switches, linker switches and libraries.
1652
1653The m- and s- files can now control in a modular fashion the precise
1654arguments passed to `cc' and `ld'.
1655
1656LIBS_STANDARD defines the standard C libraries. Default is `-lc'.
1657LIBS_DEBUG defines the extra libraries to use when debugging. Default `-lg'.
1658LIBS_SYSTEM can be defined by the s- file to specify extra libraries.
1659LIBS_MACHINE can be defined by the m- file to specify extra libraries.
1660LIBS_TERMCAP defines the libraries for Termcap or Terminfo.
1661 It is defined by default in a complicated fashion but the m- or s- file
1662 can override it.
1663
1664LD_SWITCH_SYSTEM can be defined by the s- file to specify extra `ld' switches.
1665 The default is `-X' on BSD systems except those few that use COFF object files.
1666LD_SWITCH_MACHINE can be defined by the m- file to specify extra `ld' switches.
1667
1668C_DEBUG_SWITCH defines the switches to give `cc' when debugging. Default `-g'.
1669C_OPTIMIZE_SWITCH defines the switches to give `cc' to optimize. Default `-O'.
1670C_SWITCH_MACHINE can be defined by the m- file to specify extra `cc' switches.
1671
1672For older news, see the file ONEWS.3.
1673
1674----------------------------------------------------------------------
1675Copyright information:
1676
1677Copyright (C) 1992 Free Software Foundation, Inc.
1678
1679 Permission is granted to anyone to make or distribute verbatim copies
1680 of this document as received, in any medium, provided that the
1681 copyright notice and this permission notice are preserved,
1682 thus giving the recipient permission to redistribute in turn.
1683
1684 Permission is granted to distribute modified versions
1685 of this document, or of portions of it,
1686 under the above conditions, provided also that they
1687 carry prominent notices stating who last changed them.
1688
1689Local variables:
1690mode: text
1691end:
1692
1693arch-tag: 373312be-99a8-46d5-bcb0-a62577ab5045
diff --git a/etc/ORDERS b/etc/ORDERS
index c29e6b101f3..55d222c17cb 100644
--- a/etc/ORDERS
+++ b/etc/ORDERS
@@ -7,3 +7,8 @@ further development of Emacs and other free software programs. You
7can also make tax-deductable donations to the Free Software Foundation, 7can also make tax-deductable donations to the Free Software Foundation,
8a not-for-profit organization (assuming you pay US taxes) - see 8a not-for-profit organization (assuming you pay US taxes) - see
9<http://www.gnu.org/help/donate.html>. 9<http://www.gnu.org/help/donate.html>.
10
11Copyright (c) 2000, 2001, 2006 Free Software Foundation, Inc.
12
13Verbatim copying and distribution is permitted in any medium
14provided this notice is preserved.
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 6435bd2e673..f42f9565cf6 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -1694,7 +1694,7 @@ keys can serve as Meta.
1694The `xkeycaps' also shows a visual representation of the current 1694The `xkeycaps' also shows a visual representation of the current
1695keyboard settings. It also allows to modify them. 1695keyboard settings. It also allows to modify them.
1696 1696
1697*** GNU/Linux: low startup on Linux-based GNU systems. 1697*** GNU/Linux: slow startup on Linux-based GNU systems.
1698 1698
1699People using systems based on the Linux kernel sometimes report that 1699People using systems based on the Linux kernel sometimes report that
1700startup takes 10 to 15 seconds longer than `usual'. 1700startup takes 10 to 15 seconds longer than `usual'.
diff --git a/etc/README b/etc/README
index 1d476a0620c..856f8cdfcd4 100644
--- a/etc/README
+++ b/etc/README
@@ -11,3 +11,19 @@ without installing the modified TeX versions.
11 11
12`termcap.src' is included mainly for VMS. It is a copy of the 12`termcap.src' is included mainly for VMS. It is a copy of the
13`/etc/termcap' file used on Unix. 13`/etc/termcap' file used on Unix.
14
15Copyright (c) 1992, 1995, 2001, 2006
16Free Software Foundation, Inc.
17
18
19COPYING PERMISSIONS:
20
21 Permission is hereby granted, free of charge, to any person obtaining
22 a copy of this file, to deal in the file without restriction, including
23 without limitation the rights to use, copy, modify, merge, publish,
24 distribute, sublicense, and/or sell copies of the file, and to
25 permit persons to whom the file is furnished to do so, subject to
26 the following condition:
27
28 The above copyright notice and this permission notice shall be
29 included in all copies or substantial portions of the file.
diff --git a/etc/SERVICE b/etc/SERVICE
index 40b12ac4a01..e97196d7c95 100644
--- a/etc/SERVICE
+++ b/etc/SERVICE
@@ -2,6 +2,8 @@
2GNU Service Directory 2GNU Service Directory
3--------------------- 3---------------------
4 4
5See the end of file for copyright information.
6
5This is a list of people who have asked to be listed as offering 7This is a list of people who have asked to be listed as offering
6support services for GNU software, including GNU Emacs, for a fee 8support services for GNU software, including GNU Emacs, for a fee
7or in some cases at no charge. 9or in some cases at no charge.
@@ -1365,4 +1367,12 @@ A current version should be available on our web site at http://www.gnu.org.
1365 1367
1366** Please keep the entries in this file alphabetical ** 1368** Please keep the entries in this file alphabetical **
1367 1369
1370
1371Copyright (c) 2000, 2004, 2005, 2006
1372Free Software Foundation
1373
1374 Verbatim copying and distribution of this document are permitted
1375 worldwide, without royalty, in any medium, provided this notice is
1376 preserved.
1377
1368arch-tag: 1253ce32-1cbd-428a-ac36-70ed9e3999fc 1378arch-tag: 1253ce32-1cbd-428a-ac36-70ed9e3999fc
diff --git a/etc/TERMS b/etc/TERMS
index dd447259710..4b34a45d676 100644
--- a/etc/TERMS
+++ b/etc/TERMS
@@ -1,3 +1,7 @@
1Copyright (c) 1999, 2003, 2006
2Free software Foundation, Inc.
3See the end of the file for copying permissions.
4
1This file describes what you must or might want to do to termcap entries 5This file describes what you must or might want to do to termcap entries
2to make terminals work properly and efficiently with Emacs. Information 6to make terminals work properly and efficiently with Emacs. Information
3on likely problems with specific types of terminals appears at the end 7on likely problems with specific types of terminals appears at the end
@@ -227,3 +231,20 @@ AT386|at386|386AT|386at|at/386 console,
227AT386-UL|at386-ul|386AT-UL|386at-ul|at/386 console, 231AT386-UL|at386-ul|386AT-UL|386at-ul|at/386 console,
228 is2=\E[0;10;38m, 232 is2=\E[0;10;38m,
229 use=at386, 233 use=at386,
234
235
236COPYING PERMISSIONS:
237
238 This document is free software; you can redistribute it and/or modify
239 it under the terms of the GNU General Public License as published by
240 the Free Software Foundation; either version 2 of the License, or
241 (at your option) any later version.
242
243 This program is distributed in the hope that it will be useful,
244 but WITHOUT ANY WARRANTY; without even the implied warranty of
245 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
246 GNU General Public License for more details.
247
248 You should have received a copy of the GNU General Public License
249 along with this program; if not, write to the Free Software
250 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/etc/TODO b/etc/TODO
index 6b36b1a4259..35f14c629dc 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -1,4 +1,8 @@
1 -*-outline-*- 1Emacs TODO List -*-outline-*-
2
3Copyright (c) 2003, 2004, 2005, 2006
4Free software Foundation, Inc.
5See the end of the file for copying permissions.
2 6
3If you are ready to start working on any of these TODO items, we 7If you are ready to start working on any of these TODO items, we
4appreciate your help; please write to emacs-devel@gnu.org so we can be 8appreciate your help; please write to emacs-devel@gnu.org so we can be
@@ -9,6 +13,10 @@ to the FSF.
9 13
10* Small but important fixes needed in existing features: 14* Small but important fixes needed in existing features:
11 15
16** In C-x d, the default if you type RET should be the directory name,
17but if you type M-n you should get the visited file name of the
18current buffer.
19
12** whitespace-cleanup should work only on the region if the region is active. 20** whitespace-cleanup should work only on the region if the region is active.
13 21
14** Distribute a bar cursor of width > 1 evenly between the two glyphs 22** Distribute a bar cursor of width > 1 evenly between the two glyphs
@@ -135,6 +143,8 @@ to the FSF.
135 143
136* Other features we would like: 144* Other features we would like:
137 145
146** Remove the default toggling behavior of minor modes when called from elisp
147rather than interactively. This a trivial one-liner in easy-mode.el.
138** Create a category of errors called `user-error' for errors which are 148** Create a category of errors called `user-error' for errors which are
139typically due to pilot errors and should thus be in debug-ignored-errors. 149typically due to pilot errors and should thus be in debug-ignored-errors.
140 150
@@ -484,4 +494,16 @@ not be noticed if it appears within a word.
484** Fix unexelf.c to handle the .data.rel and .data.rel.local 494** Fix unexelf.c to handle the .data.rel and .data.rel.local
485 sections made by GCC 3.4 on IRIX. 495 sections made by GCC 3.4 on IRIX.
486 496
497COPYING PERMISSIONS:
498
499 Permission is hereby granted, free of charge, to any person obtaining
500 a copy of this file, to deal in the file without restriction, including
501 without limitation the rights to use, copy, modify, merge, publish,
502 distribute, sublicense, and/or sell copies of the file, and to
503 permit persons to whom the file is furnished to do so, subject to
504 the following condition:
505
506 The above copyright notice and this permission notice shall be
507 included in all copies or substantial portions of the file.
508
487;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036 509;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036
diff --git a/etc/Xkeymap.txt b/etc/Xkeymap.txt
index fcdbbf43215..dca688bd701 100644
--- a/etc/Xkeymap.txt
+++ b/etc/Xkeymap.txt
@@ -1,5 +1,10 @@
1# -*-Mode: Fundamental-*- 1# -*-Mode: Fundamental-*-
2# X keymap file for rlk with some emacsified bindings 2# X keymap file for rlk with some emacsified bindings
3#
4# Copyright (c) 1999, 2003, 2006
5# Free software Foundation, Inc.
6# See the end of the file for copying conditions.
7#
3# This file contains the default keyboard mapping. The first column contains a X keyboard code; the other 8# This file contains the default keyboard mapping. The first column contains a X keyboard code; the other
4# 16 columns contain the mapping of the keycode to a character string, with various combinations 9# 16 columns contain the mapping of the keycode to a character string, with various combinations
5# of the SHIFT, LOCK, META, and CONTROL keys down. See the man page for "keycomp" for more information. 10# of the SHIFT, LOCK, META, and CONTROL keys down. See the man page for "keycomp" for more information.
@@ -96,5 +101,16 @@
96# local variables: 101# local variables:
97# tab-width: 4 102# tab-width: 4
98# End: 103# End:
104#
105# COPYING CONDITIONS
106# Permission is hereby granted, free of charge, to any person obtaining
107# a copy of this file, to deal in the file without restriction, including
108# without limitation the rights to use, copy, modify, merge, publish,
109# distribute, sublicense, and/or sell copies of the file, and to
110# permit persons to whom the file is furnished to do so, subject to
111# the following condition:
112#
113# The above copyright notice and this permission notice shall be
114# included in all copies or substantial portions of the file.
99 115
100# arch-tag: cbaa71af-719b-4647-a2c1-cd4d36a4fc64 116# arch-tag: cbaa71af-719b-4647-a2c1-cd4d36a4fc64
diff --git a/etc/compilation.txt b/etc/compilation.txt
index 72ff5ac5316..2e784000149 100644
--- a/etc/compilation.txt
+++ b/etc/compilation.txt
@@ -1,4 +1,4 @@
1* Introduction -*-compilation-*- 1* Introduction -*-compilation-*- (Copyright information at end of file)
2 2
3This shows the different kinds of messages compile recognizes by default and 3This shows the different kinds of messages compile recognizes by default and
4how they are rendered. It is intended both to help you decide which matchers 4how they are rendered. It is intended both to help you decide which matchers
@@ -401,3 +401,23 @@ Compilation killed at Wed Jul 20 12:20:10
401Compilation terminated at Wed Jul 20 12:20:10 401Compilation terminated at Wed Jul 20 12:20:10
402Compilation exited abnormally with code 1 at Wed Jul 20 12:21:12 402Compilation exited abnormally with code 1 at Wed Jul 20 12:21:12
403Compilation finished at Thu Jul 21 15:02:15 403Compilation finished at Thu Jul 21 15:02:15
404
405
406Copyright (c) 2004, 2005, 2006
407Free software Foundation, Inc.
408
409COPYING PERMISSIONS:
410
411 This document is free software; you can redistribute it and/or modify
412 it under the terms of the GNU General Public License as published by
413 the Free Software Foundation; either version 2 of the License, or
414 (at your option) any later version.
415
416 This program is distributed in the hope that it will be useful,
417 but WITHOUT ANY WARRANTY; without even the implied warranty of
418 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
419 GNU General Public License for more details.
420
421 You should have received a copy of the GNU General Public License
422 along with this program; if not, write to the Free Software
423 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/etc/cs-refcard.tex b/etc/cs-refcard.tex
index be54da104ad..762b33f3d09 100644
--- a/etc/cs-refcard.tex
+++ b/etc/cs-refcard.tex
@@ -591,8 +591,9 @@ Pohyb mezi uzly:
591Dal¹í: 591Dal¹í:
592 592
593\key{spustit {\bf tutoriál} k~Info}{h} 593\key{spustit {\bf tutoriál} k~Info}{h}
594\key{{\bf ukonèit} Info}{q} 594% \key{look up a subject in the indices}{i} % FIXME
595\key{prohledat uzly na øetìzec}{M-s} 595\key{prohledat uzly na øetìzec}{M-s}
596\key{{\bf ukonèit} Info}{q}
596 597
597\endindentedkeys 598\endindentedkeys
598 599
diff --git a/etc/de-refcard.tex b/etc/de-refcard.tex
index 743e699fd76..7e0df6e378b 100644
--- a/etc/de-refcard.tex
+++ b/etc/de-refcard.tex
@@ -1,12 +1,28 @@
1% Reference Card for GNU Emacs version 19 on Unix systems 1% Reference Card for GNU Emacs version 22 on Unix systems
2%
3% Translation into German by Sven Joachim <svenjoac@gmx.de>
4%
2%**start of header 5%**start of header
3\newcount\columnsperpage 6\newcount\columnsperpage
7\newcount\letterpaper
4 8
5% This file can be printed with 1, 2, or 3 columns per page (see below). 9% This file can be printed with 1, 2, or 3 columns per page (see below).
6% Specify how many you want here. Nothing else needs to be changed. 10% Specify how many you want here.
11
12\columnsperpage=3
13
14% Set letterpaper to 0 for A4 paper, 1 for letter (US) paper. Useful
15% only when columnsperpage is 2 or 3.
16
17\letterpaper=0
7 18
8\columnsperpage=2 19% If you don't have german.sty, you can either get it from CTAN or
20% change the \glqq and \grqq commands below.
9 21
22\input german.sty
23\mdqoff % deactivates the "-char
24
25% Nothing else needs to be changed below this line.
10% Copyright (C) 1987, 1993, 1996, 2000, 2002, 2003, 2004, 26% Copyright (C) 1987, 1993, 1996, 2000, 2002, 2003, 2004,
11% 2005, 2006 Free Software Foundation, Inc. 27% 2005, 2006 Free Software Foundation, Inc.
12 28
@@ -43,6 +59,10 @@
43% For this you need a dvi device driver that can print sideways. 59% For this you need a dvi device driver that can print sideways.
44% Which mode to use is controlled by setting \columnsperpage above. 60% Which mode to use is controlled by setting \columnsperpage above.
45% 61%
62% To compile and print this document:
63% tex de-refcard.tex
64% dvips -t landscape de-refcard.dvi
65%
46% Author: 66% Author:
47% Stephen Gildea 67% Stephen Gildea
48% Internet: gildea@stop.mail-abuse.org 68% Internet: gildea@stop.mail-abuse.org
@@ -52,23 +72,26 @@
52 72
53% If there were room, it would be nice to see a section on Dired. 73% If there were room, it would be nice to see a section on Dired.
54 74
55\def\versionnumber{2.1} 75\def\versionnumber{2.3}
56\def\year{2006} 76\def\year{2006}
57\def\version{March \year\ v\versionnumber}
58 77
59\def\shortcopyrightnotice{\vskip 1ex plus 2 fill 78\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
60 \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. 79 \centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
61 Permissions on back. v\versionnumber}} 80 Bedingungen auf der R\"uckseite. v\versionnumber}}
62 81
63\def\copyrightnotice{\vskip 1ex plus 2 fill\begingroup\small 82\def\copyrightnotice{\vskip 1ex plus 2 fill\begingroup\small
64\centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} 83\centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.}
65\centerline{designed by Stephen Gildea, \version} 84\centerline{v\versionnumber{} f\"ur GNU Emacs Version 22, \year}
66\centerline{for GNU Emacs version 19 on Unix systems} 85\centerline{entworfen von Stephen Gildea}
86% \centerline{deutsche \"Ubersetzung von Sven Joachim}
67 87
68Permission is granted to make and distribute copies of 88Es ist gestattet, diese Referenzkarte zu vervielf\"altigen und zu
69this card provided the copyright notice and this permission notice 89verbreiten, vorausgesetzt dass sich der Copyright-Hinweis und der
70are preserved on all copies. 90Hinweis auf diese Erlaubnis auf allen Kopien befinden.
71 91
92F\"ur Kopien des Handbuchs zu GNU Emacs schreiben Sie an die Free
93Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
9402110-1301 USA.
72 95
73\endgroup} 96\endgroup}
74 97
@@ -104,9 +127,9 @@ are preserved on all copies.
104 \hsize 3.2in 127 \hsize 3.2in
105 \vsize 7.95in 128 \vsize 7.95in
106% \hoffset -.75in 129% \hoffset -.75in
107 \hoffset -.82in 130 \hoffset -.49in
108% \voffset -.745in 131% \voffset -.745in
109 \voffset -.6in 132 \voffset -.84in
110 \font\titlefont=cmbx10 \scaledmag2 133 \font\titlefont=cmbx10 \scaledmag2
111 \font\headingfont=cmbx10 \scaledmag1 134 \font\headingfont=cmbx10 \scaledmag1
112 \font\smallfont=cmr6 135 \font\smallfont=cmr6
@@ -174,7 +197,7 @@ are preserved on all copies.
174\chardef\{=`\{ 197\chardef\{=`\{
175\chardef\}=`\} 198\chardef\}=`\}
176 199
177\hyphenation{mini-buf-fer} 200\hyphenation{Mini-puf-fer}
178 201
179\parindent 0pt 202\parindent 0pt
180\parskip 1ex plus .5ex minus .5ex 203\parskip 1ex plus .5ex minus .5ex
@@ -190,8 +213,8 @@ are preserved on all copies.
190 213
191% section - new major section. Argument is section name. 214% section - new major section. Argument is section name.
192\outer\def\section#1{\par\filbreak 215\outer\def\section#1{\par\filbreak
193 \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}% 216 \vskip 2ex plus 1.5ex minus 2.5ex {\headingfont #1}\mark{#1}%
194 \vskip 2ex plus 1ex minus 1.5ex} 217 \vskip 1.5ex plus 1ex minus 1.5ex}
195 218
196\newdimen\keyindent 219\newdimen\keyindent
197 220
@@ -250,142 +273,146 @@ are preserved on all copies.
250%**end of header 273%**end of header
251 274
252 275
253\title{GNU Emacs Referenzkarte} 276\title{Referenzkarte zu GNU Emacs}
254 277
255%\centerline{(fuer version 19)} 278\centerline{(f\"ur Version 22)}
256 279
257\section{Emacs Starten} 280\section{Emacs starten}
258 281
259Um GNU Emacs 19 zu starten, tippen Sie ein: \kbd{emacs} 282Um GNU Emacs 22 zu starten, geben Sie \kbd{emacs} ein.
260 283
261Um eine Datei fuers Editieren zu laden, lesen Sie unten weiter. 284% Um eine Datei f\"urs Editieren zu laden, lesen Sie unten weiter.
262 285
263\section{Emacs Verlassen} 286\section{Emacs verlassen}
264 287
265\key{Emacs pausieren lassen}{C-z} 288\key{Emacs unterbrechen (unter X: minimieren)}{C-z}
266\key{Emacs beenden}{C-x C-c} 289\key{Emacs beenden}{C-x C-c}
267 290
268\section{Dateien} 291\section{Dateien}
269 292
270\key{Datei {\bf oeffnen} }{C-x C-f} 293\key{Datei {\bf \"offnen} }{C-x C-f}
271\key{Datei {\bf sichern} }{C-x C-s} 294\key{Datei {\bf speichern} }{C-x C-s}
272\key{{\bf alle} Dateien sichern}{C-x s} 295\key{{\bf alle} Dateien speichern}{C-x s}
273\key{den Inhalt einer anderen Datei {\bf einfuegen}}{C-x i} 296\key{den Inhalt einer anderen Datei {\bf einf\"ugen}}{C-x i}
274\key{diese Datei durch eine andere ersetzen}{C-x C-v} 297\key{diese Datei durch eine andere ersetzen}{C-x C-v}
275\key{Datei neu anlegen und speichern}{C-x C-w} 298\key{Puffer in neuer Datei speichern}{C-x C-w}
276\key{version control ein/auschecken}{C-x C-q} 299\key{Nur-Lesen-Modus des Puffers wechseln}{C-x C-q}
277 300
278\section{Hilfe} 301\section{Hilfe}
279 302
280Das Hilfesystem ist einfach zu bedienen. Tippen Sie \kbd{C-h} (oder \kbd{F1}). Neulinge tippen \kbd{C-h t} um ein {\bf tutorial} zu starten. 303Das Hilfesystem ist einfach zu bedienen. Dr\"ucken Sie \kbd{C-h} (oder
304\kbd{F1}). Neulinge dr\"ucken \kbd{C-h t}, um eine {\bf Einf\"uhrung} zu
305starten.
281 306
282\key{Hilfe Fenster entfernen}{C-x 1} 307\key{Hilfefenster entfernen}{C-x 1}
283\key{Hilfe Fenster scrollen}{C-M-v} 308\key{Hilfefenster scrollen}{C-M-v}
284 309
285\key{apropos: zeigt alle Befehle mit dem Muster}{C-h a} 310\key{Befehle zeigen, die Zeichenkette enthalten}{C-h a}
286\key{zeigt die Funktion mit dieser Tastenkomb.}{C-h c} 311\key{Tastenkombination beschreiben}{C-h k}
287\key{beschreibt die Funktion}{C-h f} 312\key{eine Funktion beschreiben}{C-h f}
288\key{modusspezifische Information}{C-h m} 313\key{modusspezifische Informationen}{C-h m}
289 314
290\section{Was tun wenn nichts mehr geht} 315\section{Fehlerbehandlung}
291 316
292\key{{\bf Abbrechen} eines Vorgangs}{C-g} 317\key{{\bf Abbrechen} eines Vorgangs}{C-g}
293\metax{{\bf Wiederherstellung} von Dateien}{M-x recover-file} 318\metax{{\bf Wiederherstellung} von Dateien}{M-x recover-session}
294\key{{\bf rueckgaengig} machen}{C-x u} 319\metax{{\"Anderungen \bf r\"uckg\"angig} machen}{C-x u, C-_ {\rm oder} C-/}
295\metax{Puffer in Ursprungszustand bringen}{M-x revert-buffer} 320\metax{Puffer in Ursprungszustand bringen}{M-x revert-buffer}
296\key{Bildschirmanzeige in Ordnung bringen}{C-l} 321\key{Bildschirmanzeige in Ordnung bringen}{C-l}
297 322
298\section{Inkrementelle Suche} 323\section{Inkrementelle Suche}
299 324
300\key{Suche vorwaerts}{C-s} 325\key{Suche vorw\"arts}{C-s}
301\key{Suche rueckwaerts}{C-r} 326\key{Suche r\"uckw\"arts}{C-r}
302\key{Suche mit regulaeren Ausdruecken}{C-M-s} 327\key{Suche mit regul\"aren Ausdr\"ucken}{C-M-s}
303\key{Rueckwaertssuche mit reg. Ausdruecken}{C-M-r} 328\key{R\"uckw\"artssuche mit regul\"aren Ausdr\"ucken}{C-M-r}
304\key{letzten Suchausdruck auswaehlen}{M-p} 329
305\key{spaeteren Suchausdruck auswaehlen}{M-n} 330\key{fr\"uheren Suchausdruck ausw\"ahlen}{M-p}
331\key{sp\"ateren Suchausdruck ausw\"ahlen}{M-n}
306\key{inkrementelle Suche beenden}{RET} 332\key{inkrementelle Suche beenden}{RET}
307\key{ein Suchzeichen zurueckgehen}{DEL} 333\key{ein Suchzeichen zur\"uckgehen}{DEL}
308\key{Suche abbrechen}{C-g} 334\key{Suche abbrechen}{C-g}
309 335
310Wiederholtes Druecken von \kbd{C-s} oder \kbd{C-r} sucht weitere Treffer. 336Wiederholtes Dr\"ucken von \kbd{C-s} oder \kbd{C-r} sucht weitere Treffer.
311Wenn Emacs sucht, unterbricht \kbd{C-g} nur die jeweils letzte Suche. 337Wenn Emacs sucht, unterbricht \kbd{C-g} nur die jeweils letzte Suche.
312 338
313\shortcopyrightnotice 339\shortcopyrightnotice
314 340
315\section{Cursor Bewegung} 341\section{Cursor-Bewegung}
316 342
317\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr 343\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
318\threecol{{\bf Textteile ueberspringen}}{{\bf rueckw.}}{{\bf vorw.}} 344\threecol{{\bf Textteile \"uberspringen}}{{\bf r\"uckw.}}{{\bf vorw.}}
319\threecol{Zeichen}{C-b}{C-f} 345\threecol{Zeichen}{C-b}{C-f}
320\threecol{Wort}{M-b}{M-f} 346\threecol{Wort}{M-b}{M-f}
321\threecol{Zeile}{C-p}{C-n} 347\threecol{Zeile}{C-p}{C-n}
322\threecol{zum Zeilenende springen}{C-a}{C-e} 348\threecol{zum Zeilenanfang (oder -ende) springen}{C-a}{C-e}
323\threecol{Satz}{M-a}{M-e} 349\threecol{Satz}{M-a}{M-e}
324\threecol{Paragraph}{M-\{}{M-\}} 350\threecol{Paragraph}{M-\{}{M-\}}
325\threecol{Seite}{C-x [}{C-x ]} 351\threecol{Seite}{C-x [}{C-x ]}
326\threecol{Lisp-s-expression}{C-M-b}{C-M-f} 352\threecol{Lisp-s-expression}{C-M-b}{C-M-f}
327\threecol{Funktion}{C-M-a}{C-M-e} 353\threecol{Funktion}{C-M-a}{C-M-e}
328\threecol{zum Pufferanfang (oder Ende)springen}{M-<}{M->} 354\threecol{zum Pufferanfang (oder -ende) springen}{M-<}{M->}
329} 355}
330 356
331\key{eine Bildschirmseite runter scrollen}{C-v} 357\key{eine Bildschirmseite herunter scrollen}{C-v}
332\key{eine Bildschirmseite hoch scrollen}{M-v} 358\key{eine Bildschirmseite hoch scrollen}{M-v}
333\key{nach links scrollen}{C-x <} 359\key{nach links scrollen}{C-x <}
334\key{nach rechts scrollen}{C-x >} 360\key{nach rechts scrollen}{C-x >}
335\key{Cursorzeile in die Bildschirmmitte scrollen}{C-u C-l} 361\key{Cursor-Zeile in die Bildschirmmitte scrollen}{C-u C-l}
336 362
337\section{Loeschen} 363\section{L\"oschen und Ausschneiden}
338 364
339\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr 365\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
340\threecol{{\bf Textteile }}{{\bf rueckwaerts}}{{\bf vorwaerts}} 366\threecol{{\bf Textteile ausschneiden}}{{\bf r\"uckw.}}{{\bf vorw.}}
341\threecol{Zeichen (loeschen)}{DEL}{C-d} 367\threecol{Zeichen (l\"oschen, nicht ausschneiden)}{DEL}{C-d}
342\threecol{Wort}{M-DEL}{M-d} 368\threecol{Wort}{M-DEL}{M-d}
343\threecol{Zeile (bis zum Ende)}{M-0 C-k}{C-k} 369\threecol{Zeile (bis zum Ende)}{M-0 C-k}{C-k}
344\threecol{Satz}{C-x DEL}{M-k} 370\threecol{Satz}{C-x DEL}{M-k}
345\threecol{Lisp-s-expression}{M-- C-M-k}{C-M-k} 371\threecol{Lisp-s-expression}{M-- C-M-k}{C-M-k}
346} 372}
347\key{{\bf Bereiche} loeschen}{C-w} 373\key{{\bf Bereich} ausschneiden}{C-w}
348\key{Bereich in die Ablage kopieren}{M-w} 374\key{Bereich in die Ablage kopieren}{M-w}
349\key{Bis zum {\it Zeichen} loeschen }{M-z {\it Zeichen}} 375\key{bis zum {\it Zeichen} ausschneiden }{M-z {\it Zeichen}}
350\key{letztes geloeschtes Zeichen einsetzen}{C-y} 376\key{zuletzt ausgeschnittenen Text einf\"ugen}{C-y}
351\key{eins davor einsetzen}{M-y} 377\key{vorher ausgeschnittenen Text einf\"ugen}{M-y}
352 378
353\section{Markieren} 379\section{Markieren}
354 380
355\key{Marke setzen}{C-@ {\rm or} C-SPC} 381\key{Marke setzen}{C-@ {\rm oder}\thinspace\thinspace{}C-SPC} % H\"asslich, aber
356\key{zwischen Cursor und Marke wechseln}{C-x C-x} 382% Leerzeichen statt \thinspace erzeugt overfull \hbox. @#$?*&!
383\key{Cursor und Marke austauschen}{C-x C-x}
357\key{Marke {\it Argument\/} {\bf Worte} entfernt setzen}{M-@} 384\key{Marke {\it Argument\/} {\bf Worte} entfernt setzen}{M-@}
358\key{{\bf Paragraph} markieren}{M-h} 385\key{{\bf Paragraph} markieren}{M-h}
359\key{{\bf Seite} markieren}{C-x C-p} 386\key{{\bf Seite} markieren}{C-x C-p}
360\key{{\bf Lisp-s-expression} markieren}{C-M-@} 387\key{{\bf Lisp-s-expression} markieren}{C-M-@}
361\key{{\bf Funktion} markiern}{C-M-h} 388\key{{\bf Funktion} markieren}{C-M-h}
362\key{den ganzen {\bf Puffer} markieren}{C-x h} 389\key{den ganzen {\bf Puffer} markieren}{C-x h}
363 390
364\section{Interaktives Ersetzen} 391\section{Interaktives Ersetzen}
365 392
366\key{Zeichenkette interaktiv ersetzen}{M-\%} 393\key{Zeichenkette interaktiv ersetzen}{M-\%}
367\metax{mit regulaeren Ausdruecken}{M-x query-replace-regexp} 394\metax{mit regul\"aren Ausdr\"ucken}{M-x query-replace-regexp}
368 395
369Moegliche Antworten in diesem Modus: 396M\"ogliche Antworten in diesem Modus:
370 397
371\key{dies {\bf ersetzten} und zum naechsten gehen}{SPC} 398\key{dies {\bf ersetzen} und zum n\"achsten gehen}{SPC}
372\key{dies ersetzen}{,} 399\key{dies ersetzen und nicht weitergehen}{,}
373\key{dies {\bf ueberspringen}, zum naechsten gehen}{DEL} 400\key{dies {\bf \"uberspringen}, zum n\"achsten gehen}{DEL}
374\key{alle verbleibenden Treffer ersetzen}{!} 401\key{alle verbleibenden Treffer ersetzen}{!}
375\key{eine Ersetzung{\bf rueckgaengig} machen }{^} 402\key{zum vorherigen Treffer {\bf zur\"uckgehen} }{^}
376\key{interaktiven Modus{\bf verlassen}}{RET} 403\key{interaktives Ersetzen {\bf beenden}}{RET}
377\key{rekursiven Modus starten (\kbd{C-M-c} verlassen)}{C-r} 404\key{rekursives Editieren starten (\kbd{C-M-c} beendet)}{C-r}
378 405
379\section{Mehrere Fenster} 406\section{Mehrere Fenster}
380 407
381Die zweite Tastenk. bezieht sich immer auf das andere Fenster: 408Wenn zwei Befehle angezeigt werden, ist der zweite ein \"ahn\-li\-cher f\"ur
382 409einen Rahmen statt eines Fensters.
383\key{alle anderen Fenster in den Hintergrund}{C-x 1}
384 410
385{\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0 411{\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0
386\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr 412\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
413\threecol{alle anderen Fenster schlie\ss{}en}{C-x 1\ \ \ \ }{C-x 5 1}
387\threecol{Fenster vertikal teilen}{C-x 2\ \ \ \ }{C-x 5 2} 414\threecol{Fenster vertikal teilen}{C-x 2\ \ \ \ }{C-x 5 2}
388\threecol{dieses Fenster loeschen}{C-x 0\ \ \ \ }{C-x 5 0} 415\threecol{dieses Fenster schlie\ss{}en}{C-x 0\ \ \ \ }{C-x 5 0}
389}} 416}}
390\key{Fenster horizontal teilen}{C-x 3} 417\key{Fenster horizontal teilen}{C-x 3}
391 418
@@ -393,252 +420,273 @@ Die zweite Tastenk. bezieht sich immer auf das andere Fenster:
393 420
394{\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0 421{\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0
395\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr 422\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
396\threecol{ins andere Fenster wechseln}{C-x o}{C-x 5 o} 423\threecol{in anderes Fenster wechseln}{C-x o}{C-x 5 o}
397 424
398\threecol{Puffer in ein anderes Fenster bringen}{C-x 4 b}{C-x 5 b} 425\threecol{Puffer in and. Fenster ausw\"ahlen}{C-x 4 b}{C-x 5 b}
399\threecol{Puffer in einem anderen Fenster darstellen}{C-x 4 C-o}{C-x 5 C-o} 426\threecol{Puffer in anderem Fenster anzeigen}{C-x 4 C-o}{C-x 5 C-o}
400\threecol{Datei in ein anderes Fenster oeffnen}{C-x 4 f}{C-x 5 f} 427\threecol{Datei in anderem Fenster \"offnen}{C-x 4 f}{C-x 5 f}
401\threecol{Datei im Ansichtmodus in anderem Fenster oeffnen}{C-x 4 r}{C-x 5 r} 428\threecol{Datei in anderem Fenster anzeigen}{C-x 4 r}{C-x 5 r}
402\threecol{Dired in einem anderen Fenster oeffnen}{C-x 4 d}{C-x 5 d} 429\threecol{Dired in anderem Fenster starten}{C-x 4 d}{C-x 5 d}
403\threecol{Tag in einem anderen Fenster finden}{C-x 4 .}{C-x 5 .} 430\threecol{Tag in anderem Fenster finden}{C-x 4 .}{C-x 5 .}
404}} 431}}
405 432
406\key{Fenster vergroessern}{C-x ^} 433\key{Fenster vergr\"o\ss{}ern}{C-x ^}
407\key{Fenster schmaler machen}{C-x \{} 434\key{Fenster verengen}{C-x \{}
408\key{Fenster breiter machen}{C-x \}} 435\key{Fenster verbreitern}{C-x \}}
409 436
410\section{Formattierung} 437\section{Formatierung}
411 438
412\key{{\bf Zeile} (modusabhaengig) einruecken}{TAB} 439\key{{\bf Zeile} (modusabh\"angig) einr\"ucken}{TAB}
413\key{{\bf Bereich} (modusabh.) einruecken}{C-M-\\} 440\key{{\bf Bereich} (modusabh\"angig) einr\"ucken}{C-M-\\}
414\key{{\bf Lisp-s-expression} (modusabh.) einruecken}{C-M-q} 441\key{{\bf Lisp-s-expression} (modusabh.) einr\"ucken}{C-M-q}
415\key{Bereich {\it Argument\/} Spalten einruecken}{C-x TAB} 442\key{Bereich {\it Argument\/} Spalten einr\"ucken}{C-x TAB}
416\key{Zeilenumbruch nach Cursor einfuegen}{C-o} 443
444\key{Zeilenumbruch nach Cursor einf\"ugen}{C-o}
417\key{Zeilenrest vertikal nach unten verschieben}{C-M-o} 445\key{Zeilenrest vertikal nach unten verschieben}{C-M-o}
418\key{Leerzeilen um Cursorposition loeschen}{C-x C-o} 446\key{Leerzeilen um Cursor-Position l\"oschen}{C-x C-o}
419\key{Zeile mit letzter verbinden (Arg. naechster)}{M-^} 447\key{Zeile mit voriger verbinden (Arg. n\"achste)}{M-^}
420\key{Leerzeichen an Cursorposition loeschen}{M-\\} 448\key{alle Leerzeichen um Cursor-Position l\"oschen}{M-\\}
421\key{ein Leerzeichen an Cursorposition setzen}{M-SPC} 449\key{genau ein Leerzeichen an Cursor-Position}{M-SPC}
422\key{Paragraph auffuellen}{M-q} 450
423\key{Fuell Spalte setzen}{C-x f} 451\key{Paragraph auff\"ullen}{M-q}
424\key{Praefix setzen fuer jede Zeile}{C-x .} 452\key{Spalte f\"ur Umbruch setzen}{C-x f}
425\key{Zeichendarstellung setzen}{M-g} 453\key{Pr\"afix f\"ur jede Zeile setzen}{C-x .}
426 454
427\section{Gross-Kleinbuchstaben} 455\key{Face setzen}{M-o}
428 456
429\key{Wort in Grossbuchstaben}{M-u} 457\section{Gro\ss{}- und Kleinschreibung}
458
459\key{Wort in Gro\ss{}buchstaben}{M-u}
430\key{Wort in Kleinbuchstaben}{M-l} 460\key{Wort in Kleinbuchstaben}{M-l}
431\key{Word mit grossen Anfangsbuchstaben}{M-c} 461\key{Wort mit gro\ss{}em Anfangsbuchstaben}{M-c}
432 462
433\key{Bereich in Grossbuchstaben}{C-x C-u} 463\key{Bereich in Gro\ss{}buchstaben}{C-x C-u}
434\key{Bereich in Kleinbuchstaben}{C-x C-l} 464\key{Bereich in Kleinbuchstaben}{C-x C-l}
435 465
436\section{Der Minipuffer} 466\section{Der Minipuffer}
437 467
438Die folgenden Tastenkombination gelten im Minipuffer: 468Die folgenden Tastenkombinationen gelten im Minipuffer:
439 469
440\key{so viel wie moeglich ergaenzen}{TAB} 470\key{so weit wie m\"oglich erg\"anzen}{TAB}
441\key{ein Wort ergaenzen}{SPC} 471\key{ein Wort erg\"anzen}{SPC}
442\key{ergaenzen und ausfuehren}{RET} 472\key{erg\"anzen und ausf\"uhren}{RET}
443\key{moegliche Ergaenzungen zeigen}{?} 473\key{m\"ogliche Erg\"anzungen zeigen}{?}
444\key{letzte Eingabe wiederanzeigen}{M-p} 474\key{letzte Eingabe zur\"uckholen}{M-p}
445\key{spaetere Eingabe wiederanzeigen}{M-n} 475\key{sp\"atere Eingabe zur\"uckholen}{M-n}
446\key{reg. Ausd. rueckwaerts in History suchen}{M-r} 476\key{reg. Ausd. r\"uckw\"arts in History suchen}{M-r}
447\key{reg. Ausd. vorwaerts in History suchen}{M-s} 477\key{reg. Ausd. vorw\"arts in History suchen}{M-s}
448\key{Vorgang unterbrechen}{C-g} 478\key{Befehl abbrechen}{C-g}
449 479
450Tippen Sie \kbd{C-x ESC ESC} um den letzten Befehl zu editieren und zu wiederholen der im Minipuffer ausgefuehrt wurde. 480Dr\"ucken Sie \kbd{C-x ESC ESC}, um den letzten Befehl zu bearbeiten
481und zu wiederholen, der im Minipuffer aus\-gef\"uhrt wurde. Dr\"u\-cken Sie
482\kbd{F10}, um die Men\"u\-zei\-le im Minipuffer zu aktivieren.
451 483
452\newcolumn 484\newcolumn
453\title{GNU Emacs Referenzkarte} 485\title{Referenzkarte zu GNU Emacs}
454 486
455\section{Puffer} 487\section{Puffer}
456 488
457\key{anderen Puffer auswaehlen}{C-x b} 489\key{anderen Puffer ausw\"ahlen}{C-x b}
458\key{alle Puffer anzeigen}{C-x C-b} 490\key{Liste aller Puffer anzeigen}{C-x C-b}
459\key{Puffer loeschen}{C-x k} 491\key{einen Puffer schlie\ss{}en}{C-x k}
460 492
461\section{Vertauschen} 493\section{Vertauschen}
462 494
463\key{ {\bf Zeichen} vertauschen}{C-t} 495\key{{\bf Zeichen} vertauschen}{C-t}
464\key{ {\bf Worte} vertauschen}{M-t} 496\key{{\bf Worte} vertauschen}{M-t}
465\key{ {\bf Zeilen} vertauschen}{C-x C-t} 497\key{{\bf Zeilen} vertauschen}{C-x C-t}
466\key{ {\bf Lisp-s-expressions} vertauschen}{C-M-t} 498\key{{\bf Lisp-s-expressions} vertauschen}{C-M-t}
467 499
468\section{Rechtschreibkorrrektur} 500\section{Rechtschreibpr\"ufung}
469 501
470\key{Ueberpruefe aktuelles Wort}{M-\$} 502\key{aktuelles Wort \"uberpr\"ufen}{M-\$}
471\metax{Ueberpruefe alle Woerter in Bereich}{M-x ispell-region} 503\metax{alle W\"orter im Bereich \"uberpr\"ufen}{M-x ispell-region}
472\metax{Ueberpruefe den gesamten Bereich}{M-x ispell-buffer} 504\metax{gesamten Puffer \"uberpr\"ufen}{M-x ispell-buffer}
473 505
474\section{Tags} 506\section{Tags}
475 507
476\key{Tag finden (Definition)}{M-.} 508\key{Tag finden (Definition)}{M-.}
477\key{Naechstes Vorkommen von Tag finden}{C-u M-.} 509\key{n\"achstes Vorkommen von Tag finden}{C-u M-.}
478\metax{Neue Tags Datei angeben}{M-x visit-tags-table} 510\metax{neue Tagsdatei angeben}{M-x visit-tags-table}
479\metax{Regulaere Ausdruck Suche in Dateien}{M-x tags-search} 511
480\metax{Interakt. Ersetzen in allen Dateien}{M-x tags-query-replace} 512\metax{regul\"aren Ausdruck in Dateien suchen}{M-x tags-search}
481\key{Letzte Tag Suche oder Ersetzen nochmal}{M-,} 513\metax{interakt. Ersetzen in allen Dateien}{M-x tags-query-replace}
514\key{letztes Suchen oder Ersetzen fortsetzen}{M-,}
482 515
483\section{Shells} 516\section{Shells}
484 517
485\key{Shell Kommando ausfuehren}{M-!} 518\key{Shellbefehl ausf\"uhren}{M-!}
486\key{Shell Kommando fuer bereich ausfuehren}{M-|} 519\key{Shellbefehl f\"ur Bereich ausf\"uhren}{M-|}
487\key{Bereich durch Shell Kommando filtern}{C-u M-|} 520\key{Bereich durch Shellbefehl filtern}{C-u M-|}
488\metax{Shell im Fenster \kbd{*shell*} starten}{M-x shell} 521\metax{eine Shell im Fenster \kbd{*shell*} starten}{M-x shell}
489 522
490\section{Rechtecke} 523\section{Rechtecke}
491 524
492\key{Kopiere Rechteck in Register}{C-x r r} 525\key{Rechteck in Register kopieren}{C-x r r}
493\key{Loesche Rechteck}{C-x r k} 526\key{Rechteck ausschneiden}{C-x r k}
494\key{Rechteck einsetzen}{C-x r y} 527\key{Rechteck einf\"ugen}{C-x r y}
495\key{Rechteck aufmachen, Text nach rechts}{C-x r o} 528\key{Rechteck \"offnen, Text nach rechts}{C-x r o}
496\key{Rechteck mit Leerzeichen ueberschreiben}{C-x r c} 529\key{Rechteck mit Leerzeichen \"uberschreiben}{C-x r c}
497\key{Praefix vor jede Zeile setzen}{C-x r t} 530\key{Pr\"afix vor jede Zeile setzen}{C-x r t}
498 531
499\section{Abkuerzungen} 532\section{Abk\"urzungen}
500 533
501\key{globale Abkuerzung hinzufuegen}{C-x a g} 534\key{globale Abk\"urzung hinzuf\"ugen}{C-x a g}
502\key{modusabhaengige Abkuerzung hinzufuegen}{C-x a l} 535\key{modusabh\"angige Abk\"urzung hinzuf\"ugen}{C-x a l}
503\key{globale Expansion fuer Abk. definieren}{C-x a i g} 536\key{globalen Ersetzungstext f\"ur Abk. definieren}{C-x a i g}
504\key{modusabhaengige Abkuerzung definieren}{C-x a i l} 537\key{modusabh. Ersetzungstext f\"ur Abk. def.}{C-x a i l}
505\key{explizites Expandieren}{C-x a e} 538\key{Abk\"urzung explizit ausschreiben}{C-x a e}
506\key{letztes Wort dynamisch expandieren}{M-/} 539
507 540\key{letztes Wort dynamisch ausschreiben}{M-/}
508\section{Regulaere Ausdruecke} 541
509 542\section{Regul\"are Ausdr\"ucke}
510\key{jedes Zeichen ausser Zeilenumbruch}{. {\rm(Punkt)}} 543
511\key{Null oder mehr Wiederholungen}{*} 544\key{jedes einzelne Zeichen au\ss{}er Zeilenumbruch}{. {\rm(Punkt)}}
512\key{Eine oder mehr Wiederholungen}{+} 545\key{null oder mehr Wiederholungen}{*}
513\key{Null oder eine Wiederholung}{?} 546\key{eine oder mehr Wiederholungen}{+}
514\key{jedes Zeichen in der Menge}{[ {\rm$\ldots$} ]} 547\key{null oder eine Wiederholung}{?}
515\key{jedes Zeichen nicht in der Menge}{[^ {\rm$\ldots$} ]} 548\key{Spezialzeichen {\it c\/} maskieren}{\\{\it c}}
516\key{Zeilenanfang}{^} 549\key{Alternative (\glqq oder\grqq )}{\\|}
517\key{Zeilenende}{\$}
518\key{spezielles Zeichen maskieren {\it c\/}}{\\{\it c}}
519\key{Alternative (``oder'')}{\\|}
520\key{Gruppe}{\\( {\rm$\ldots$} \\)} 550\key{Gruppe}{\\( {\rm$\ldots$} \\)}
521\key{{\it n\/}te Gruppe}{\\{\it n}} 551\key{gleicher Text wie {\it n\/}te Gruppe}{\\{\it n}}
522\key{Pufferanfang}{\\`} 552\key{Anfang oder Ende eines Wortes}{\\b}
523\key{Pufferende}{\\'} 553\key{weder Anfang noch Ende eines Wortes}{\\B}
524\key{Wortzwischenraum}{\\b} 554
525\key{Weder Anfang noch Ende eines Wortes}{\\B} 555% \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
526\key{Wortanfang}{\\<} 556% \threecol{{\bf Einheit}}{{\bf passt am Anfang}\hskip-1.5ex}{{\bf passt am Ende}}
527\key{Wortende}{\\>} 557% \threecol{Zeile}{^}{\$}
528\key{jedes Wort-Syntax Zeichen}{\\w} 558% \threecol{Wort}{\\<}{\\>}
529\key{jedes Nicht-Wort-Syntax Zeichen}{\\W} 559% \threecol{Puffer}{\\`}{\\'}
530\key{Zeichen mit Syntax {\it c}}{\\s{\it c}} 560
531\key{Zeichen nicht mit Syntax {\it c}}{\\S{\it c}} 561% \threecol{{\bf Zeichenklasse}}{{\bf passt auf diese}}{{\bf passt auf andere}}
562% \threecol{Explizite Menge}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]}
563% \threecol{Wortsyntax-Zeichen\hskip-10ex}{\\w}{\\W}
564% \threecol{Zeichen mit Syntax {\it c}\hskip-2.5ex}{\\s{\it c}}{\\S{\it c}}
565% }
532 566
533\section{Register} 567\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
568\threecol{{\bf Einheit}}{{\bf passt am Anf.}}{{\bf passt am Ende}}
569\threecol{Zeile}{^}{\$}
570\threecol{Wort}{\\<}{\\>}
571\threecol{Puffer}{\\`}{\\'}
572
573\threecol{{\bf Zeichenklasse}}{{\bf passt auf diese}}{{\bf passt auf and.}}
574\threecol{Explizite Menge}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]}
575\threecol{Wortsyntax-Zeichen}{\\w}{\\W}
576\threecol{Zeichen mit Syntax {\it c}}{\\s{\it c}}{\\S{\it c}}
577}
534 578
535\key{Region in Register speichern}{C-x r s} 579\section{Internationale Zeichens\"atze}
536\key{Register Inhalt in Puffer einfuegen}{C-x r i} 580
537\key{Cursorposition in Register speichern}{C-x r SPC} 581\key{Hauptsprache einstellen}{C-x RET l}
538\key{Springe zur abgespeicherten Position}{C-x r j} 582\metax{Alle Eingabemethoden anzeigen}{M-x list-input-methods}
583\key{Eingabemethode in oder au\ss{}er Kraft setzen}{C-\\}
584\key{Kodierung f\"ur n\"achsten Befehl setzen}{C-x RET c}
585\metax{Alle Kodierungen anzeigen}{M-x list-coding-systems}
586\metax{bevorzugte Kodierung ausw\"ahlen}{M-x prefer-coding-system}
539 587
540\section{Info} 588\section{Info}
541 589
542\key{Info starten}{C-h i} 590\key{Info-Betrachter starten}{C-h i}
591\key{Funktion oder Variable in Info finden}{C-h S}
543\beginindentedkeys 592\beginindentedkeys
544 593
545Bewegung innerhalb eines Knotens: 594Bewegung innerhalb eines Knotens:
546 595
547\key{vorwaerts scrollen}{SPC} 596\key{vorw\"arts scrollen}{SPC}
548\key{rueckwaerts scrollen}{DEL} 597\key{r\"uckw\"arts scrollen}{DEL}
549\key{zum Anfang eines Knotens}{. {\rm (dot)}} 598\key{zum Anfang eines Knotens}{. {\rm (Punkt)}}
550 599
551Bewegung zwischen Knoten: 600Bewegung zwischen Knoten:
552 601
553\key{{\bf naechster} Knoten}{n} 602\key{{\bf n\"achster} Knoten}{n}
554\key{{\bf vorheriger} Knoten}{p} 603\key{{\bf vorheriger} Knoten}{p}
555\key{nach {\bf oben}}{u} 604\key{nach {\bf oben}}{u}
556\key{Menue Element ueber Namen auswaehlen}{m} 605\key{Men\"ueintrag \"uber Namen ausw\"ahlen}{m}
557\key{{\it n\/}ten Menueeintrag auswaehlen (1--9)}{{\it n}} 606\key{{\it n\/}ten Men\"ueintrag ausw\"ahlen (1--9)}{{\it n}}
558\key{Kreuzverweis folgen (zurueck mit \kbd{l})}{f} 607\key{Querverweis folgen (zur\"uck mit \kbd{l})}{f}
559\key{zurueck zum letzten gesehenen Knoten}{l} 608\key{zur\"uck zum letzten gesehenen Knoten}{l}
560\key{zurueck zum Verzeichnisknoten}{d} 609\key{zur\"uck zum Verzeichnisknoten}{d}
561\key{Knoten ueber Namen auswaehlen}{g} 610\key{zum Anfangsknoten der aktuellen Datei}{t}
562 611\key{beliebigen Knoten \"uber Namen ausw\"ahlen}{g}
563Sonstige: 612
564 613Sonstiges:
565\key{Info {\bf Tutorial} starten}{h} 614
566\key{Info Befehle zeigen}{?} 615\key{{\bf Einf\"uhrung} in Info starten}{h}
616\key{Begriff in den Indizes suchen}{i}
617\key{nach regul\"aren Ausdr\"ucken suchen}{s}
567\key{Info {\bf verlassen} }{q} 618\key{Info {\bf verlassen} }{q}
568\key{Knoten nach reg. Ausd. durchsuchen}{M-s}
569 619
570\endindentedkeys 620\endindentedkeys
571 621
572\section{Tastatur Makros} 622\section{Register}
623
624\key{Region in Register speichern}{C-x r s}
625\key{Registerinhalt in Puffer einf\"ugen}{C-x r i}
626\key{Cursor-Position in Register speichern}{C-x r SPC}
627\key{zu abgespeicherter Position springen}{C-x r j}
573 628
574\key{Tastatur Makro Definition {\bf starten} }{C-x (} 629\section{Tastaturmakros}
575\key{Tastatur Makro Definition {\bf beenden} }{C-x )}
576\key{zuletzt definiertes Tast. Makro {\bf ausfuehren}}{C-x e}
577\key{an letztes Tastatur Makro anhaengen}{C-u C-x (}
578\metax{letztes Tastatur Makro benennen}{M-x name-last-kbd-macro}
579\metax{Lisp Definition in Puffer einfuegen}{M-x insert-kbd-macro}
580 630
581\section{Kommandos fuer Emacs Lisp} 631\key{Makrodefinition {\bf starten} }{C-x (}
632\key{Makrodefinition {\bf beenden} }{C-x )}
633\key{zuletzt definiertes Makro {\bf ausf\"uhren}}{C-x e}
634\key{an letztes Makro anh\"angen}{C-u C-x (}
635\metax{letztes Makro benennen}{M-x name-last-kbd-macro}
636\metax{Lispcode f\"ur Makro in Puffer einf\"ugen}{M-x insert-kbd-macro}
582 637
583\key{{\bf Lisp-s-expression} vor Cursor laden}{C-x C-e} 638\section{Befehle f\"ur Emacs-Lisp}
639
640\key{{\bf Lisp-s-expression} vor Cursor auswerten}{C-x C-e}
584\key{aktuelle {\bf Definition} auswerten}{C-M-x} 641\key{aktuelle {\bf Definition} auswerten}{C-M-x}
585\metax{{\bf Bereich} auswerten}{M-x eval-region} 642\metax{{\bf Bereich} auswerten}{M-x eval-region}
586\metax{gesamten {\bf Puffer} auswerten}{M-x eval-current-buffer} 643\key{Lisp-Ausdruck im Minipuffer auswerten}{M-:}
587\key{Lispausdruck im Minipuffer auswerten}{M-:} 644\metax{Datei aus Standardverzeichnis laden}{M-x load-library}
588\key{letztes Minipufferkommando auswerten}{C-x ESC ESC} 645
589\metax{Emacs Lisp Datei lesen und auswerten}{M-x load-file} 646\section{Einfache Anpassungen}
590\metax{aus Standard Systemverzeichnis laden}{M-x load-library}
591 647
592\section{Einfaches Konfigurieren} 648\metax{Variablen und Faces anpassen}{M-x customize}
593 649
594% Das ist nur was fuer Leute die Lisp beherrschen 650% Das ist nur was f\"ur Leute die Lisp beherrschen
595 651
596Ein Beispiel dafuer, wie man Tastenkombinationen definiert: 652Tastenkombinationen definieren (Beispiele):
597 653
598\beginexample% 654\beginexample%
599(global-set-key "\\C-cg" 'goto-line) 655(global-set-key "\\C-cg" 'goto-line)
600(global-set-key "\\C-x\\C-k" 'kill-region)
601(global-set-key "\\M-\#" 'query-replace-regexp) 656(global-set-key "\\M-\#" 'query-replace-regexp)
602\endexample 657\endexample
603 658
604So weist man in Emacs Lisp einer Variablen Werte zu: 659\section{Eigene Befehle schreiben}
605
606\beginexample%
607(setq backup-by-copying-when-linked t)
608\endexample
609
610\section{Selbst Kommandos schreiben}
611 660
612\beginexample% 661\beginexample%
613(defun \<Commando-Name> (\<args>) 662(defun \<Befehlsname> (\<Argumente>)
614 "\<Documentation>" 663 "\<Dokumentation>"
615 (interactive "\<template>") 664 (interactive "\<Vorlage>")
616 \<body>) 665 \<Rumpf>)
617\endexample 666\endexample
618 667
619Ein Beispiel: 668Ein Beispiel:
620 669
621\beginexample% 670\beginexample%
622(defun diese-Zeile-zum-Fensteranfang (Zeile) 671(defun diese-Zeile-zum-Fensteranfang (Zeile)
623 "Zeile an Cursorposition zum Fensteranfang bewegen" 672 "Zeile an Cursor-Position zum Fensteranfang bewegen.
624Mit numerischem Argument n, zur Zeile n 673Mit ARGUMENT, Cursor in Zeile ARGUMENT bewegen."
625Mit negativem Argument zum Fensterende
626 (interactive "P") 674 (interactive "P")
627 (recenter (if (null Zeile) 675 (recenter (if (null Zeile)
628 0 676 0
629 (prefix-numeric-value Zeile)))) 677 (prefix-numeric-value Zeile))))
630\endexample 678\endexample
631 679
632Das Argument fuer \kbd{interactive} ist eine Zeichenkette, die spe\-zi\-fi\-ziert, wie die 680Die Spezifikation zu \kbd{interactive} gibt an, wie die Argumente
633Ar\-gu\-men\-te be\-reit\-ge\-stellt wer\-den, wenn die Funktion inter\-aktiv auf\-ge\-ru\-fen wird. 681gelesen werden, wenn die Funktion inter\-aktiv auf\-ge\-ru\-fen
634\kbd{C-h f interactive} fuer mehr Informationen. 682wird. F\"ur n\"ahere Details geben Sie \kbd{C-h f interactive} ein.
635 683
636\copyrightnotice 684\copyrightnotice
637 685
638\bye 686\bye
639 687
640% Local variables: 688% Local variables:
641% compile-command: "tex refcard" 689% compile-command: "tex de-refcard"
642% End: 690% End:
643 691
644% arch-tag: af0a2666-f289-49f1-a9cc-cedab9783314 692% arch-tag: af0a2666-f289-49f1-a9cc-cedab9783314
diff --git a/etc/emacs.csh b/etc/emacs.csh
index 411feedaef5..3de336b8075 100644
--- a/etc/emacs.csh
+++ b/etc/emacs.csh
@@ -1,3 +1,6 @@
1# Copyright (c) 1999, 2003, 2006
2# Free software Foundation, Inc.
3#
1# This defines a csh command named `edit' which resumes an 4# This defines a csh command named `edit' which resumes an
2# existing Emacs or starts a new one if none exists. 5# existing Emacs or starts a new one if none exists.
3# One way or another, any arguments are passed to Emacs to specify files 6# One way or another, any arguments are passed to Emacs to specify files
@@ -24,4 +27,17 @@ alias edit 'set emacs_command=("emacs -nw \!*" "fg %emacs" "emacs -i \!* &"\
24 test -S ~/.emacs_server && emacsclient \!* \ 27 test -S ~/.emacs_server && emacsclient \!* \
25 || echo `pwd` \!* >! ~/.emacs_args && eval $emacs_command[$whichjob]' 28 || echo `pwd` \!* >! ~/.emacs_args && eval $emacs_command[$whichjob]'
26 29
30#COPYING PERMISSIONS:
31#
32# Permission is hereby granted, free of charge, to any person obtaining
33# a copy of this file, to deal in the file without restriction, including
34# without limitation the rights to use, copy, modify, merge, publish,
35# distribute, sublicense, and/or sell copies of the file, and to
36# permit persons to whom the file is furnished to do so, subject to
37# the following condition:
38#
39# The above copyright notice and this permission notice shall be
40# included in all copies or substantial portions of the file.
41
42
27# arch-tag: 433d58df-15b9-446f-ad37-f0393e3a23d4 43# arch-tag: 433d58df-15b9-446f-ad37-f0393e3a23d4
diff --git a/etc/enriched.doc b/etc/enriched.doc
index 122652f005a..0b83bbcabfe 100644
--- a/etc/enriched.doc
+++ b/etc/enriched.doc
@@ -254,3 +254,24 @@ bug reports are welcome.</indent>
254</x-color><x-bg-color><param>blue</param><x-color><param>white</param>April 1995; updated August 1997</x-color></x-bg-color> 254</x-color><x-bg-color><param>blue</param><x-color><param>white</param>April 1995; updated August 1997</x-color></x-bg-color>
255 255
256 256
257
258
259Copyright (c) 1995, 1997, 2006
260Free software Foundation, Inc.
261
262COPYING PERMISSIONS:
263
264 This document is free software; you can redistribute it and/or modify
265 it under the terms of the GNU General Public License as published by
266 the Free Software Foundation; either version 2 of the License, or
267 (at your option) any later version.
268
269 This program is distributed in the hope that it will be useful,
270 but WITHOUT ANY WARRANTY; without even the implied warranty of
271 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
272 GNU General Public License for more details.
273
274 You should have received a copy of the GNU General Public License
275 along with this program; if not, write to the Free Software
276 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
277
diff --git a/etc/fr-refcard.tex b/etc/fr-refcard.tex
index 54d73ca6312..c8c8fd8cd9a 100644
--- a/etc/fr-refcard.tex
+++ b/etc/fr-refcard.tex
@@ -588,8 +588,9 @@ Passer de n\oe{}ud en n\oe{}ud :
588Autres : 588Autres :
589 589
590\key{lancer le {\bf didacticiel} Info}{h} 590\key{lancer le {\bf didacticiel} Info}{h}
591\key{chercher dans l'index}{i}
592\key{rechercher les n\oe{}uds avec une expression rationnelle}{s}
591\key{{\bf quitter} Info}{q} 593\key{{\bf quitter} Info}{q}
592\key{rechercher les n\oe{}uds avec une expression rationnelle}{M-s}
593 594
594\endindentedkeys 595\endindentedkeys
595 596
diff --git a/etc/grep.txt b/etc/grep.txt
index 8acfc4fc644..d2a934fbeff 100644
--- a/etc/grep.txt
+++ b/etc/grep.txt
@@ -1,4 +1,4 @@
1* Introduction -*-grep-*- 1* Introduction -*-grep-*- (See the end of file for copyright information)
2 2
3This shows the different kinds of messages grep recognizes by default and 3This shows the different kinds of messages grep recognizes by default and
4how they are rendered. It is intended both to help you decide which matchers 4how they are rendered. It is intended both to help you decide which matchers
@@ -85,3 +85,25 @@ grep -nH -e "xyzxyz" ../info/*
85;;; Local Variables: 85;;; Local Variables:
86;;; buffer-read-only: t 86;;; buffer-read-only: t
87;;; End: 87;;; End:
88
89
90
91Copyright (c) 2005, 2006
92Free software Foundation, Inc.
93
94COPYING PERMISSIONS:
95
96 This document is free software; you can redistribute it and/or modify
97 it under the terms of the GNU General Public License as published by
98 the Free Software Foundation; either version 2 of the License, or
99 (at your option) any later version.
100
101 This program is distributed in the hope that it will be useful,
102 but WITHOUT ANY WARRANTY; without even the implied warranty of
103 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
104 GNU General Public License for more details.
105
106 You should have received a copy of the GNU General Public License
107 along with this program; if not, write to the Free Software
108 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
109
diff --git a/etc/ledit.l b/etc/ledit.l
deleted file mode 100644
index d53c5d26011..00000000000
--- a/etc/ledit.l
+++ /dev/null
@@ -1,152 +0,0 @@
1;;; -*- Mode: lisp -*-
2
3; load in the c functions
4
5(removeaddress '_signal)
6(removeaddress '_switch_to_proc)
7(removeaddress '_set_proc_str)
8
9(cfasl "/src/mdc/ledit/leditcfns.o" '_switch_to_proc 'emacs)
10
11(getaddress '_set_proc_str 'set_proc_str)
12
13(declare (special *ledit-infile* ; emacs->lisp tempfile
14 *ledit-outfile* ; lisp->emacs tempfile
15 *ledit-ppfile* ; pp->emacs tempfile
16 *ledit-lisztfile* ; compiler input
17 *ledit-objfile* ; compiler output
18 *ledit-initialized*) ; flag
19 )
20
21(setq *ledit-initialized* nil)
22
23;;; INIT-LEDIT
24
25(defun init-ledit ()
26 (let ((user (getenv '|USER|))) ;USER must be uppercase
27 (setq
28 *ledit-outfile* (concat "/tmp/" user ".l2") ; lisp -> emacs
29 *ledit-infile* (concat "/tmp/" user ".l1") ; emacs -> lisp
30 *ledit-ppfile* (concat "/tmp/" user ".l3") ; pp output to emacs.
31 *ledit-lisztfile* (concat "/tmp/" user ".l4")
32 *ledit-objfile* (concat "/tmp/" user ".o")
33 *ledit-initialized* t)))
34
35;;; LEDIT
36; if 1 arg, arg is taken as a tag name to pass to emacs.
37; if 2 args, second arg is a keyword. If 2nd arg is pp,
38; pp is applied to first arg, and result is sent to emacs
39; to put in a buffer called LEDIT (which is first erased.)
40
41(defun ledit fexpr (args)
42 (apply #'ledit* args))
43
44;;; LEDIT*
45
46(defun ledit* n
47 (if (not *ledit-initialized*) (init-ledit))
48 (ledit-output (listify n))
49 (syscall 10. *ledit-infile*) ; syscall 10 is "delete"
50 (syscall 10. *ledit-lisztfile*)
51 (emacs)
52 (ledit-input)
53 (syscall 10. *ledit-outfile*)
54 (syscall 10. *ledit-ppfile*)
55 t)
56
57;;; LEDIT-OUTPUT
58;;; Egad, what a mess! Doesn't work for XEMACS yet.
59;;; Here's an example from Mocklisp:
60;;; -> (defun bar (nothing) (bar nothing))
61;;; bar
62;;; -> (ledit bar)
63;;; should produce...
64;;; (progn) (progn tag (setq tag "bar") (&goto-tag))
65;;; and
66;;; -> (ledit bar pp)
67;;; should stuff this to emacs...
68;;; (progn) (switch-to-buffer "LEDIT") (erase-buffer)
69;;; (insert-file "/tmp/walter.l3") (lisp-mode)
70;;; and this...
71;;; (def bar
72;;; (lambda (x)
73;;; (bar nothing)))
74;;; into *LEDIT*
75
76(defun ledit-output (args)
77 (if args
78 (let ((ofile (outfile *ledit-outfile*)))
79 (format ofile "(progn)") ; this is necessary.
80
81 (cond ((null (cdr args)) ; no keyword -> arg is a tag.
82 (format ofile "(progn tag (setq tag \"~A\"~
83 (&goto-tag))"
84 (car args)))
85 ((eq (cadr args) 'pp) ; pp-> pp first arg to emacs
86 (apply 'pp `((|F| ,*ledit-ppfile*) ,(car args)))
87 (format ofile "(switch-to-buffer \"LEDIT\")~
88 (erase-buffer)")
89 (format ofile "(insert-file \"~A\")"
90 *ledit-ppfile*)
91 (format ofile "(lisp-mode)"))
92
93 (t (format t "~&~A -- unknown option~%" (cdr args))))
94 (close ofile))))
95
96;;; LISZT*
97;;; Need this guy to do compile-input.
98;;; Liszt returns 0 if all was well.
99;;; Note that in ordinary use the user will have to get used to looking
100;;; at "%Warning: ... Compiler declared *foo* special" messages, since
101;;; you don't usually want to hunt around in your file, zap in the
102;;; declarations, then go back to what you were doing.
103;;; Fortunately this doesn't cause the compiler to bomb.
104;;; Some sleepless night I will think of a way to get around this.
105
106(defun liszt* (&rest args)
107 (apply #'liszt args))
108
109;;; LEDIT-INPUT
110;;; Although there are two cases here, in practice
111;;; it is never the case that there is both input to be
112;;; interpreted and input to be compiled.
113
114(defun ledit-input ()
115 (if (probef *ledit-lisztfile*)
116 (cond ((getd #'liszt)
117 (format t ";Compiling LEDIT:")
118 (and (zerop (liszt* *ledit-lisztfile* '-o *ledit-objfile*))
119 (load *ledit-objfile*)))
120 (t (format t ";Can't compile LEDIT: No liszt.~%;Reading instead:")
121 (let ((ifile (infile *ledit-lisztfile*)))
122 (ledit-load ifile)
123 (close ifile)))))
124
125 (if (probef *ledit-infile*)
126 (let ((ifile (infile *ledit-infile*)))
127 (format t ";Reading from LEDIT:~%")
128 (ledit-load ifile)
129 (close ifile))))
130
131;;; LEDIT-LOAD
132;;; A generally useful form of load
133
134(defun ledit-load (ifile)
135 (let ((eof-form (list 'eof-form)))
136 (do ((form (read ifile eof-form) (read ifile eof-form)))
137 ((eq form eof-form))
138 (format t "; ~A~%" (eval form)))))
139
140(setsyntax #/ 'macro 'ledit) ; make ^E = (ledit)<return>
141
142;; more robust version of the c function set_proc_str. Does argument checking.
143;; set_proc_str sets the string that is stuffed to the tty after franz pauses
144;; and the csh wakes up. It is usually "%emacs" or "%vemacs" or "%?emacs"
145(defun set-proc-str (arg)
146 (if (stringp arg)
147 (set_proc_str arg)
148 (if (symbolp arg)
149 (set_proc_str (get-pname arg))
150 (error arg " is illegal argument to set-proc-str"))))
151
152;;; arch-tag: 2e76c01f-8d6a-4d04-b9ab-0eaabec96aee
diff --git a/etc/ms-7bkermit b/etc/ms-7bkermit
index 28847b06136..b239e942293 100644
--- a/etc/ms-7bkermit
+++ b/etc/ms-7bkermit
@@ -1,3 +1,6 @@
1;;; Copyright (c) 1999, 2003, 2006
2;;; Free Software Foundation, Inc.
3
1;;; This file is designed for 7-bit connections. 4;;; This file is designed for 7-bit connections.
2;;; Use the file ms-kermit if you have an 8-bit connection. 5;;; Use the file ms-kermit if you have an 8-bit connection.
3 6
@@ -311,4 +314,20 @@ set key \2463 \kendscn
311set key \2457 \kupscn 314set key \2457 \kupscn
312set key \2465 \kdnscn 315set key \2465 \kdnscn
313 316
317;;; COPYING PERMISSIONS:
318;;;
319;;; This document is free software; you can redistribute it and/or modify
320;;; it under the terms of the GNU General Public License as published by
321;;; the Free Software Foundation; either version 2 of the License, or
322;;; (at your option) any later version.
323;;;
324;;; This program is distributed in the hope that it will be useful,
325;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
326;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
327;;; GNU General Public License for more details.
328;;;
329;;; You should have received a copy of the GNU General Public License
330;;; along with this program; if not, write to the Free Software
331;;; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
332
314;;; arch-tag: b066a884-e956-4f46-9d9c-13502f6cf7a6 333;;; arch-tag: b066a884-e956-4f46-9d9c-13502f6cf7a6
diff --git a/etc/orgcard.tex b/etc/orgcard.tex
index 45608ac1795..5a019328a1f 100644
--- a/etc/orgcard.tex
+++ b/etc/orgcard.tex
@@ -1,5 +1,5 @@
1% Reference Card for Org Mode 1% Reference Card for Org Mode
2\def\orgversionnumber{4.26} 2\def\orgversionnumber{4.36}
3\def\year{2006} 3\def\year{2006}
4% 4%
5%**start of header 5%**start of header
@@ -269,19 +269,11 @@ are preserved on all copies.
269 269
270\section{Getting Started} 270\section{Getting Started}
271% 271%
272%Put the following in your \kbd{~/.emacs}$^1$
273\vskip -1mm 272\vskip -1mm
274\beginexample% 273\beginexample%
275%(autoload 'org-mode "org" "Org mode" t)
276%(autoload 'org-diary "org" "Org mode diary entries")
277%(autoload 'org-agenda "org" "Agenda from Org files" t)
278%(autoload 'org-todo-list "org" "Global TODO list" t)
279%(autoload 'org-store-link "org" "Store org link" t)
280%(autoload 'orgtbl-mode "org" "Orgtbl minor mode" t)
281%(autoload 'turn-on-orgtbl "org" "Orgtbl minor mode")
282(add-to-list 'auto-mode-alist '("\\\\.org\$" . org-mode)) 274(add-to-list 'auto-mode-alist '("\\\\.org\$" . org-mode))
283(define-key global-map "\\C-cl" 'org-store-link)$^2$ 275(define-key global-map "\\C-cl" 'org-store-link)$^1$
284(define-key global-map "\\C-ca" 'org-agenda)$^2$ 276(define-key global-map "\\C-ca" 'org-agenda)$^1$
285\endexample 277\endexample
286% 278%
287\metax{For the many customization options try}{M-x org-customize} 279\metax{For the many customization options try}{M-x org-customize}
@@ -302,6 +294,7 @@ are preserved on all copies.
302\key{previous heading, same level}{C-c C-b} 294\key{previous heading, same level}{C-c C-b}
303\key{backward to higher level heading}{C-c C-u} 295\key{backward to higher level heading}{C-c C-u}
304\key{jump to another place in document}{C-c C-j} 296\key{jump to another place in document}{C-c C-j}
297\key{previous/next plain list item}{S-UP/DOWN$^3$}
305 298
306\section{Structure Editing} 299\section{Structure Editing}
307 300
@@ -320,7 +313,7 @@ are preserved on all copies.
320\key{yank subtree}{C-c C-x C-y} 313\key{yank subtree}{C-c C-x C-y}
321 314
322\key{archive subtree}{C-c \$} 315\key{archive subtree}{C-c \$}
323To set archive location for current file, add a line like$^3$: 316To set archive location for current file, add a line like$^2$:
324\vskip -1mm 317\vskip -1mm
325\beginexample% 318\beginexample%
326\#+ARCHIVE: archfile::* Archived Tasks 319\#+ARCHIVE: archfile::* Archived Tasks
@@ -330,10 +323,10 @@ To set archive location for current file, add a line like$^3$:
330 323
331\key{show sparse tree for all matches of a regexp}{C-c /} 324\key{show sparse tree for all matches of a regexp}{C-c /}
332\key{view TODO's in sparse tree}{C-c C-v} 325\key{view TODO's in sparse tree}{C-c C-v}
333\key{global TODO list in agenda mode}{C-c t$^2$} 326\key{global TODO list in agenda mode}{C-c t$^1$}
334\key{create sparse tree with all deadlines due}{C-c C-w} 327\key{create sparse tree with all deadlines due}{C-c C-w}
335\key{time sorted view of current org file}{C-c C-r} 328\key{time sorted view of current org file}{C-c C-r}
336%\key{agenda for the week}{C-c a$^2$} 329%\key{agenda for the week}{C-c a$^1$}
337%\key{agenda for date at cursor}{C-c C-o} 330%\key{agenda for date at cursor}{C-c C-o}
338 331
339\section{Tags} 332\section{Tags}
@@ -351,8 +344,8 @@ To set archive location for current file, add a line like$^3$:
351 344
352\key{set the priority of the current item}{C-c , [ABC]} 345\key{set the priority of the current item}{C-c , [ABC]}
353\key{remove priority cookie from current item}{C-c , SPC} 346\key{remove priority cookie from current item}{C-c , SPC}
354\key{raise priority of current item}{S-UP$^4$} 347\key{raise priority of current item}{S-UP$^3$}
355\key{lower priority of current item}{S-DOWN$^4$} 348\key{lower priority of current item}{S-DOWN$^3$}
356 349
357\key{\kbd{\#+SEQ_TODO: TODO TRY BLUFF DONE}}{\rm todo workflow} 350\key{\kbd{\#+SEQ_TODO: TODO TRY BLUFF DONE}}{\rm todo workflow}
358\key{\kbd{\#+TYP_TODO: Phil home work DONE}}{\rm todo types} 351\key{\kbd{\#+TYP_TODO: Phil home work DONE}}{\rm todo types}
@@ -366,8 +359,8 @@ To set archive location for current file, add a line like$^3$:
366\key{insert SCHEDULED timestamp}{C-c C-s} 359\key{insert SCHEDULED timestamp}{C-c C-s}
367\key{create sparse tree with all deadlines due}{C-c C-w} 360\key{create sparse tree with all deadlines due}{C-c C-w}
368\key{the time between 2 dates in a time range}{C-c C-y} 361\key{the time between 2 dates in a time range}{C-c C-y}
369\key{change timestamp at cursor by $\pm 1$ day}{S-RIGHT/LEFT$^4$} 362\key{change timestamp at cursor by $\pm 1$ day}{S-RIGHT/LEFT$^3$}
370\key{change year/month/day at cursor by $\pm 1$}{S-UP/DOWN$^4$} 363\key{change year/month/day at cursor by $\pm 1$}{S-UP/DOWN$^3$}
371\key{access the calendar for the current date}{C-c >} 364\key{access the calendar for the current date}{C-c >}
372\key{insert timestamp matching date in calendar}{C-c <} 365\key{insert timestamp matching date in calendar}{C-c <}
373\key{access agenda for current date}{C-c C-o} 366\key{access agenda for current date}{C-c C-o}
@@ -380,7 +373,7 @@ To set archive location for current file, add a line like$^3$:
380 373
381\section{Links} 374\section{Links}
382 375
383\key{globally store link to the current location}{C-c l$^2$} 376\key{globally store link to the current location}{C-c l$^1$}
384\key{insert a link (TAB completes stored links)}{C-c C-l} 377\key{insert a link (TAB completes stored links)}{C-c C-l}
385\key{insert file link with file name completion}{C-u C-c C-l} 378\key{insert file link with file name completion}{C-u C-c C-l}
386\key{edit (also hidden part of) link at point}{C-c C-l} 379\key{edit (also hidden part of) link at point}{C-c C-l}
@@ -388,13 +381,13 @@ To set archive location for current file, add a line like$^3$:
388\key{open file links in emacs (\kbd{C-u} : in emacs)}{C-c C-o} 381\key{open file links in emacs (\kbd{C-u} : in emacs)}{C-c C-o}
389\key{open link at point (3: in emacs)}{mouse-2/3} 382\key{open link at point (3: in emacs)}{mouse-2/3}
390%\key{open file links in emacs}{mouse-3} 383%\key{open file links in emacs}{mouse-3}
391\key{record a position in mark ring}{C-c \%} 384%\key{record a position in mark ring}{C-c \%}
392\key{jump back to last followed link(s)}{C-c \&} 385\key{jump back to last followed link(s)}{C-c \&}
393 386
394{\bf Internal Links} 387{\bf Internal Links}
395 388
396\key{\kbd{<<My Target>>}}{\rm target} 389\key{\kbd{<<My Target>>}}{\rm target}
397\key{\kbd{<<<My Target>>>}}{\rm radio target$^3$} 390\key{\kbd{<<<My Target>>>}}{\rm radio target$^2$}
398\key{\kbd{[[*this text]]}}{\rm find headline} 391\key{\kbd{[[*this text]]}}{\rm find headline}
399\metax{\kbd{[[this text]]}}{\rm find target or text in buffer} 392\metax{\kbd{[[this text]]}}{\rm find target or text in buffer}
400\metax{\kbd{[[this text][description]]}}{\rm optional link text} 393\metax{\kbd{[[this text][description]]}}{\rm optional link text}
@@ -405,16 +398,18 @@ To set archive location for current file, add a line like$^3$:
405\key{\kbd{file:papers/last.pdf}}{\rm file, relative} 398\key{\kbd{file:papers/last.pdf}}{\rm file, relative}
406\key{\kbd{file:projects.org::*that text}}{\rm find headline} 399\key{\kbd{file:projects.org::*that text}}{\rm find headline}
407\key{\kbd{file:projects.org::find me}}{\rm find tgt/string} 400\key{\kbd{file:projects.org::find me}}{\rm find tgt/string}
408\key{\kbd{file:projects.org::/regexp/}}{\rm regexp search} 401%\key{\kbd{file:projects.org::/regexp/}}{\rm regexp search}
409\key{\kbd{http://www.astro.uva.nl/~dominik}}{\rm on the web} 402\key{\kbd{http://www.astro.uva.nl/~dominik}}{\rm on the web}
410\key{\kbd{mailto:adent@galaxy.net}}{\rm EMail address} 403\key{\kbd{mailto:adent@galaxy.net}}{\rm EMail address}
411\key{\kbd{news:comp.emacs}}{\rm Usenet group} 404\key{\kbd{news:comp.emacs}}{\rm Usenet group}
412\key{\kbd{bbdb:Richard Stallman}}{\rm BBDB person} 405\key{\kbd{bbdb:Richard Stallman}}{\rm BBDB person}
413\key{\kbd{shell:ls *.org}}{\rm shell command}
414\key{\kbd{gnus:group}}{\rm GNUS group} 406\key{\kbd{gnus:group}}{\rm GNUS group}
415\key{\kbd{gnus:group\#id}}{\rm GNUS message} 407\key{\kbd{gnus:group\#id}}{\rm GNUS message}
416\key{\kbd{vm|wl|mhe|rmail:folder}}{\rm Mail folder} 408\key{\kbd{vm|wl|mhe|rmail:folder}}{\rm Mail folder}
417\key{\kbd{vm|wl|mhe|rmail:folder\#id}}{\rm Mail message} 409\key{\kbd{vm|wl|mhe|rmail:folder\#id}}{\rm Mail message}
410\key{\kbd{info:emacs:Regexps}}{\rm Info file:node}
411\key{\kbd{shell:ls *.org}}{\rm shell command}
412\key{\kbd{elisp:(calendar)}}{\rm elisp form}
418\metax{\kbd{[[external link][description]]}}{\rm optional link text} 413\metax{\kbd{[[external link][description]]}}{\rm optional link text}
419%\key{\kbd{vm://myself@some.where.org/folder\#id}}{\rm VM remote} 414%\key{\kbd{vm://myself@some.where.org/folder\#id}}{\rm VM remote}
420 415
@@ -479,7 +474,7 @@ Outside of tables, the same keys may have other functionality.
479 474
480\key{display column number cursor is in}{C-c ?} 475\key{display column number cursor is in}{C-c ?}
481\key{sum numbers in current column/rectangle}{C-c +} 476\key{sum numbers in current column/rectangle}{C-c +}
482\key{copy down with increment}{S-RET$^4$} 477\key{copy down with increment}{S-RET$^3$}
483 478
484Formulas typed in field are executed by \kbd{TAB}, 479Formulas typed in field are executed by \kbd{TAB},
485\kbd{RET} and \kbd{C-c C-c}. \kbd{=} introduces a column 480\kbd{RET} and \kbd{C-c C-c}. \kbd{=} introduces a column
@@ -516,15 +511,15 @@ formula, \kbd{:=} a named-field formula.
516\key{remove current file from your agenda}{C-c ]} 511\key{remove current file from your agenda}{C-c ]}
517\key{cycle through agenda file list}{C-,} 512\key{cycle through agenda file list}{C-,}
518 513
519\key{compile agenda for the current week}{C-c a a$^2$} 514\key{compile agenda for the current week}{C-c a a$^1$}
520\key{compile global TODO list}{C-c a t$^2$} 515\key{compile global TODO list}{C-c a t$^1$}
521\key{compile TODO list for specific keyword}{C-c a T$^2$} 516\key{compile TODO list for specific keyword}{C-c a T$^1$}
522\key{match tags in agenda files}{C-c a m$^2$} 517\key{match tags in agenda files}{C-c a m$^1$}
523\key{agenda for date at cursor}{C-c C-o} 518\key{agenda for date at cursor}{C-c C-o}
524\key{show timeline of current org file}{C-c C-r} 519\key{show timeline of current org file}{C-c C-r}
525 520
526\vskip 1mm 521\vskip 1mm
527To set categories, add lines like$^3$: 522To set categories, add lines like$^2$:
528\vskip -1mm 523\vskip -1mm
529\beginexample% 524\beginexample%
530\#+CATEGORY: MyCateg 525\#+CATEGORY: MyCateg
@@ -561,12 +556,10 @@ To set categories, add lines like$^3$:
561\key{show tags of current headline}{T} 556\key{show tags of current headline}{T}
562\key{set tags for current headline}{:} 557\key{set tags for current headline}{:}
563\key{set priority of current item}{p} 558\key{set priority of current item}{p}
564\key{raise/lower priority of current item}{S-UP/DOWN$^4$} 559\key{raise/lower priority of current item}{S-UP/DOWN$^3$}
565%\key{lower priority of current item}{S-DOWN$^4$}
566\key{display weighted priority of current item}{P} 560\key{display weighted priority of current item}{P}
567\key{change timestamp to one day earlier/later}{S-LEFT/RIGHT$^4$} 561\key{schedule/set deadline for this item}{C-c C-s/d}
568%\key{change timestamp to one day earlier}{S-LEFT$^4$} 562\key{change timestamp to one day earlier/later}{S-LEFT/RIGHT$^3$}
569%\key{change timestamp to one day later}{S-RIGHT$^4$}
570\key{change timestamp to today}{>} 563\key{change timestamp to today}{>}
571\key{insert new entry into diary}{i} 564\key{insert new entry into diary}{i}
572 565
@@ -629,8 +622,6 @@ keywords. {\tt M-TAB} again just after keyword is complete inserts examples.
629\key{... which can carry over multiple lines}{\#+TEXT:} 622\key{... which can carry over multiple lines}{\#+TEXT:}
630\key{settings for the export process - see below}{\#+OPTIONS:} 623\key{settings for the export process - see below}{\#+OPTIONS:}
631 624
632{\bf Settings for the OPTIONS line}
633
634\key{set number of headline levels for export}{H:2} 625\key{set number of headline levels for export}{H:2}
635\key{turn on/off section numbers}{num:t} 626\key{turn on/off section numbers}{num:t}
636\key{turn on/off table of contents}{toc:t} 627\key{turn on/off table of contents}{toc:t}
@@ -651,6 +642,13 @@ Subtrees whose header starts with COMMENT are never exported.
651 642
652\key{toggle COMMENT keyword on entry}{C-c ;} 643\key{toggle COMMENT keyword on entry}{C-c ;}
653 644
645
646\section{Publishing (requires org-publish.el)}
647\key{publishcurrent file}{C-c C-e C-f}
648\key{publish current project}{C-c C-e C-p}
649\key{publish project (prompted for)}{C-c C-e C-c}
650\key{publish all projects}{C-c C-e C-a}
651
654\section{Completion} 652\section{Completion}
655 653
656In-buffer completion completes TODO keywords at headline start, TeX 654In-buffer completion completes TODO keywords at headline start, TeX
@@ -659,8 +657,6 @@ after ``{\tt :}'', and dictionary words elsewhere.
659 657
660\key{Complete word at point}{M-TAB} 658\key{Complete word at point}{M-TAB}
661 659
662\newcolumn
663
664\section{Calendar and Diary Integration} 660\section{Calendar and Diary Integration}
665 661
666To include entries from the Emacs diary in your Org-mode agenda: 662To include entries from the Emacs diary in your Org-mode agenda:
@@ -668,26 +664,6 @@ To include entries from the Emacs diary in your Org-mode agenda:
668(setq org-agenda-include-diary t) 664(setq org-agenda-include-diary t)
669\endexample 665\endexample
670 666
671To include the Org-mode agenda in the normal diary, make sure you're
672using the fancy diary display
673%
674%\beginexample%
675%(add-hook 'diary-display-hook 'fancy-diary-display)
676%\endexample
677%
678and in the \kbd{~/diary} file add
679
680\beginexample%
681\&\%\%(org-diary)
682\endexample
683
684to include all the files listed in \kbd{org-agenda-files}. For more
685selective file inclusion use a line for each file:
686
687\beginexample%
688\&\%\%(org-diary) ~/path/to/some/org-file.org
689\endexample
690
691\section{Remember-mode Integration} 667\section{Remember-mode Integration}
692 668
693See the manual for how to make remember.el use Org-mode links and 669See the manual for how to make remember.el use Org-mode links and
@@ -712,7 +688,7 @@ Insert the note with one of the following:
712Configure the variable {\tt org-CUA-compatibility} to make Org-mode 688Configure the variable {\tt org-CUA-compatibility} to make Org-mode
713avoid the \kbd{S-<cursor>} bindings used by these modes. When set, 689avoid the \kbd{S-<cursor>} bindings used by these modes. When set,
714Org-mode will change the following keybindings (also in the agenda 690Org-mode will change the following keybindings (also in the agenda
715buffer, but not during date selection). See note mark four$^4$ 691buffer, but not during date selection). See note mark four$^3$
716throughout the reference card. 692throughout the reference card.
717%\vskip-mm 693%\vskip-mm
718\beginexample 694\beginexample
@@ -722,16 +698,13 @@ S-RET $\to$ C-S-RET
722\endexample 698\endexample
723 699
724\section{Notes} 700\section{Notes}
725$^1$ The six autoload forms are only needed if Org-mode is not part of 701$^1$ This is only a suggestion for a binding of this command. Choose
726Emacs, or an XEmacs package.
727
728$^2$ This is only a suggestion for a binding of this command. Choose
729you own key as shown under INSTALLATION. 702you own key as shown under INSTALLATION.
730 703
731$^3$ After changing a \kbd{\#+KEYWORD} or \kbd{<<<target>>>} line, 704$^2$ After changing a \kbd{\#+KEYWORD} or \kbd{<<<target>>>} line,
732press \kbd{C-c C-c} with the cursor still in the line to update. 705press \kbd{C-c C-c} with the cursor still in the line to update.
733 706
734$^4$ Keybinding affected by {\tt org-CUA-compatibility}. 707$^3$ Keybinding affected by {\tt org-CUA-compatibility}.
735 708
736\copyrightnotice 709\copyrightnotice
737 710
diff --git a/etc/pl-refcard.tex b/etc/pl-refcard.tex
index 0d5f008378e..c0d242c01a3 100644
--- a/etc/pl-refcard.tex
+++ b/etc/pl-refcard.tex
@@ -898,9 +898,10 @@ Pozosta/le polecenia:
898%\key{{\bf quit} Info}{q} 898%\key{{\bf quit} Info}{q}
899%\key{search nodes for regexp}{M-s} 899%\key{search nodes for regexp}{M-s}
900\key{wywo/laj {\bf samouczek} Info}{h} 900\key{wywo/laj {\bf samouczek} Info}{h}
901\key{{\bf zako/ncz} Info}{q} 901\key{wyszukaj zagadnienie w indeksach}{i}
902\key{wyszukuj w~w/ez/lach tekst zgodny\newline 902\key{wyszukuj w~w/ez/lach tekst zgodny\newline
903 z~podanym wyra/zeniem regularnym}{M-s} 903 z~podanym wyra/zeniem regularnym}{s}
904\key{{\bf zako/ncz} Info}{q}
904 905
905\endindentedkeys 906\endindentedkeys
906 907
@@ -990,5 +991,9 @@ przez wywo/lanie \kbd{C-h f interactive}.
990\copyrightnotice 991\copyrightnotice
991 992
992\bye 993\bye
994
995% Local variables:
996% compile-command: "tex pl-refcard"
997% End:
993 998
994% arch-tag: 19d15a16-70be-40c8-ad91-88899aac32a9 999% arch-tag: 19d15a16-70be-40c8-ad91-88899aac32a9
diff --git a/etc/pt-br-refcard.ps b/etc/pt-br-refcard.ps
new file mode 100644
index 00000000000..376315aa30b
--- /dev/null
+++ b/etc/pt-br-refcard.ps
@@ -0,0 +1,2527 @@
1%!PS-Adobe-2.0
2%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
3%%Title: refcard.dvi
4%%Pages: 2
5%%PageOrder: Ascend
6%%Orientation: Landscape
7%%BoundingBox: 0 0 596 842
8%%DocumentFonts: CMBX10 CMR8 CMTT8 CMBX8 CMR6 CMSY6 CMTI8 CMMI8
9%%EndComments
10%DVIPSWebPage: (www.radicaleye.com)
11%DVIPSCommandLine: dvips -t landscape refcard.dvi
12%DVIPSParameters: dpi=600, compressed
13%DVIPSSource: TeX output 2006.05.10:0849
14%%BeginProcSet: texc.pro
15%!
16/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
17N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
18mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
190 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
20landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
21mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
22matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
23exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
24statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
25N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
26/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
27/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
28array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
29df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
30definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
31}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
32B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
331 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
341 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
350 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
36sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
37rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
38gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
39/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
40/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
41A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
42get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
43ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
44fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
45{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
46chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
471 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
48forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
49/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
50}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
51bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
52mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
53SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
54userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
551000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
56index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
57/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
58/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
59(LaserWriter 16/600)]{A length product length le{A length product exch 0
60exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
61end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
62grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
63imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
64exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
65fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
66delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
67B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
68p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
69rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
70
71%%EndProcSet
72%%BeginProcSet: f7b6d320.enc
73% Thomas Esser, Dec 2002. public domain
74%
75% Encoding for:
76% cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
77% cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
78% cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
79% cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
80%
81/TeXf7b6d320Encoding [
82/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
83/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
84/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
85/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
86/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
87/period /slash /zero /one /two /three /four /five /six /seven /eight
88/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
89/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
90/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
91/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
92/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
93/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
94/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
95/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
96/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
97/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
98/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
99/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
100/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
101/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
102/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
103/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
104/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
105/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
106/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
107/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
108] def
109
110%%EndProcSet
111%%BeginProcSet: 09fbbfac.enc
112% Thomas Esser, Dec 2002. public domain
113%
114% Encoding for:
115% cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9
116/TeX09fbbfacEncoding [
117/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
118/Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown
119/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla
120/germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam
121/quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft
122/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
123/two /three /four /five /six /seven /eight /nine /colon /semicolon /less
124/equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
125/O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright
126/asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l
127/m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright
128/asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef
129/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
130/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
131/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
132/.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi
133/Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown
134/quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute
135/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
136/OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef
137/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
138/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
139/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
140/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
141/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
142/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
143/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
144] def
145
146%%EndProcSet
147%%BeginProcSet: bbad153f.enc
148% Thomas Esser, Dec 2002. public domain
149%
150% Encoding for:
151% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
152%
153/TeXbbad153fEncoding [
154/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
155/plusminus /minusplus /circleplus /circleminus /circlemultiply
156/circledivide /circledot /circlecopyrt /openbullet /bullet
157/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
158/greaterequal /precedesequal /followsequal /similar /approxequal
159/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
160/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
161/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
162/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
163/prime /infinity /element /owner /triangle /triangleinv /negationslash
164/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
165/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
166/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
167/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
168/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
169/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
170/backslash /wreathproduct /radical /coproduct /nabla /integral
171/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
172/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
173/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
174/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
175/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
176/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
177/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
178/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
179/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
180/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
181/lessequal /greaterequal /precedesequal /followsequal /similar
182/approxequal /propersubset /propersuperset /lessmuch /greatermuch
183/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
184/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
185/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
186/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
187/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
188/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
189/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
190/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
191] def
192
193%%EndProcSet
194%%BeginProcSet: 74afc74c.enc
195% Thomas Esser, Dec 2002. public domain
196%
197% Encoding for:
198% cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10
199%
200/TeX74afc74cEncoding [
201/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
202/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
203/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
204/suppress /exclam /quotedblright /numbersign /sterling /percent
205/ampersand /quoteright /parenleft /parenright /asterisk /plus /comma
206/hyphen /period /slash /zero /one /two /three /four /five /six /seven
207/eight /nine /colon /semicolon /exclamdown /equal /questiondown /question
208/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
209/X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
210/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
211/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
212/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
213/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
214/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
215/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
216/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
217/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
218/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
219/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
220/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
221/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
222/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
223/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
224/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
225/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
226/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
227] def
228
229%%EndProcSet
230%%BeginProcSet: aae443f0.enc
231% Thomas Esser, Dec 2002. public domain
232%
233% Encoding for:
234% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
235%
236/TeXaae443f0Encoding [
237/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
238/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa
239/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi
240/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf
241/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft
242/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle
243/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle
244/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash
245/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N
246/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow
247/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p
248/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector
249/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
250/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
251/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
252/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
253/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
254/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta
255/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon
256/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
257/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
258/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
259/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
260/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
261/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
262/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
263/.notdef /.notdef /.notdef /.notdef /.notdef
264] def
265
266%%EndProcSet
267%%BeginProcSet: texps.pro
268%!
269TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
270index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
271exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
272ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
273pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
274div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
275/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
276definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
277sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
278mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
279exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
280forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
281end
282
283%%EndProcSet
284%%BeginFont: CMMI8
285%!PS-AdobeFont-1.1: CMMI8 1.100
286%%CreationDate: 1996 Jul 23 07:53:54
287% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
28811 dict begin
289/FontInfo 7 dict dup begin
290/version (1.100) readonly def
291/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
292/FullName (CMMI8) readonly def
293/FamilyName (Computer Modern) readonly def
294/Weight (Medium) readonly def
295/ItalicAngle -14.04 def
296/isFixedPitch false def
297end readonly def
298/FontName /CMMI8 def
299/PaintType 0 def
300/FontType 1 def
301/FontMatrix [0.001 0 0 0.001 0 0] readonly def
302/Encoding 256 array
3030 1 255 {1 index exch /.notdef put} for
304dup 0 /.notdef put
305readonly def
306/FontBBox{-24 -250 1110 750}readonly def
307/UniqueID 5087383 def
308currentdict end
309currentfile eexec
310D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3113B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
312532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
313B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
314986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
315D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
3165250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC
3174391C9DF440285B8FC159D0E98D4258FC57892DDF753642CD526A96ACEDA4120
318788F22B1D09F149794E66DD1AC2C2B3BC6FEC59D626F427CD5AE9C54C7F78F62
319C36F49B3C2E5E62AFB56DCEE87445A12A942C14AE618D1FE1B11A9CF9FAA1F32
320617B598CE5058715EF3051E228F72F651040AD99A741F247C68007E68C84E9D1
321D0BF99AA5D777D88A7D3CED2EA67F4AE61E8BC0495E7DA382E82DDB2B009DD63
322532C74E3BE5EC555A014BCBB6AB31B8286D7712E0E926F8696830672B8214E9B
3235D0740C16ADF0AFD47C4938F373575C6CA91E46D88DE24E682DEC44B57EA8AF8
3244E57D45646073250D82C4B50CBBB0B369932618301F3D4186277103B53B3C9E6
325DB42D6B30115F67B9D078220D5752644930643BDF9FACF684EBE13E39B65055E
326B1BD054C324962025EC79E1D155936FE32D9F2224353F2A46C3558EF216F6BB2
327A304BAF752BEEC36C4440B556AEFECF454BA7CBBA7537BCB10EBC21047333A89
3288936419D857CD9F59EBA20B0A3D9BA4A0D3395336B4CDA4BA6451B6E4D1370FA
329D9BDABB7F271BC1C6C48D9DF1E5A6FAE788F5609DE3C48D47A67097C547D9817
330AD3A7CCE2B771843D69F860DA4059A71494281C0AD8D4BAB3F67BB6739723C04
331AE05F9E35B2B2CB9C7874C114F57A185C8563C0DCCA93F8096384D71A2994748
332A3C7C8B8AF54961A8838AD279441D9A5EB6C1FE26C98BD025F353124DA68A827
333AE2AF8D25CA48031C242AA433EEEBB8ABA4B96821786C38BACB5F58C3D5DA011
33485B385124C2B6534F3CD1866AF92009D93B97F763AA3D16684AA65F029E776DA
3353BFB75EDD46D562E6A284DB4F2FDBF7CDE7C1F3772CD7B6FD372842A0E07E3EF
33668A98AB9278ADC2D35891543F57ED6DCFE8923368D556F1A8B3E35863112F409
337FBE67FC270328312BAA43A9A372C510717B50AAB01A1E02A9982113E2D7C601C
338B0BDA1C0E081E546A97647B74EE5194C57ACD62502B329FED4D966BDEB4028F0
339F082EDD5DFC8387653D620E9E73FDCE3C155347D5929C3A24D6121AEA46BBF3A
340B1C8A4793FB7F21C84400912C27D9AB0845537103553BF8F
3410000000000000000000000000000000000000000000000000000000000000000
3420000000000000000000000000000000000000000000000000000000000000000
3430000000000000000000000000000000000000000000000000000000000000000
3440000000000000000000000000000000000000000000000000000000000000000
3450000000000000000000000000000000000000000000000000000000000000000
3460000000000000000000000000000000000000000000000000000000000000000
3470000000000000000000000000000000000000000000000000000000000000000
3480000000000000000000000000000000000000000000000000000000000000000
349cleartomark
350%%EndFont
351%%BeginFont: CMTI8
352%!PS-AdobeFont-1.1: CMTI8 1.0
353%%CreationDate: 1991 Aug 18 21:07:42
354% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
35511 dict begin
356/FontInfo 7 dict dup begin
357/version (1.0) readonly def
358/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
359/FullName (CMTI8) readonly def
360/FamilyName (Computer Modern) readonly def
361/Weight (Medium) readonly def
362/ItalicAngle -14.04 def
363/isFixedPitch false def
364end readonly def
365/FontName /CMTI8 def
366/PaintType 0 def
367/FontType 1 def
368/FontMatrix [0.001 0 0 0.001 0 0] readonly def
369/Encoding 256 array
3700 1 255 {1 index exch /.notdef put} for
371dup 0 /.notdef put
372readonly def
373/FontBBox{-35 -250 1190 750}readonly def
374/UniqueID 5000826 def
375currentdict end
376currentfile eexec
377D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3783B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
379532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
380B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
381986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
382D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
383525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
384F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
38584AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
3860F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
38706BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
3885FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
389D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
39093FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
391FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
392E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
39346590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
3948E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
3954482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
3961D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
3979A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
398BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
39909FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
4003113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
401E8929A4813956AAB24BE7C20FCF9196E8E2F30816FE2279CE3E6067667A39E44
402488D58BFD17606AE885FA06F478D359A6ECF5564C095FE0E5038425D8B152750
403F72F41B3D1E7420EE91CF4A9ED5BBE8C2275624AE257D2BDF5752E803B426F40
404924CB5C29460BC09EC84F3F3A95F6900836F0ECCF6A7BB85A3F8D650017E5FE0
405503A73644EC6C6B0254F0259F8DD4AB3945950974CEB34521881A2506E76EBB3
4067DBA7812E0186DE2C0AD3E6D42BCA320014368DD738408C54AE2CAAA9C05612B
407E7F33218F2FECCE8DB2E4B3A3BCD9D8D0BAD7EDDCCAE45F6A15FD2B8ED263E45
40814AF0CC7B58EF52D5FE73023EE9DAB8249D1EB3B795C7B42BFD2A2852D2D16BF
409CD71056F412571F41CF7EE80AA916EA4FF1630B1E226F474CC3195006043B1AB
410915DA8A9484B930F1F00028287EA3802DA3C3F99961952E04B736CDEC7768307
411879B4D2D553518FBBA727266F94C3A607FFD5D85CD0FB802CA51E6A3792C80F9
412A637D47C13A787F5D9C5BAC24E843DA198B7CC898AD786DEAC0BA9B6EF955ECC
41372DA3A8CCCF7F3B69597A2F868AE359737A9714AE6D81989B4152DA33095DAB8
4145759080AA156DF1F3767120018CE81D296D813DC52786586CF3F38EE3CE181D3
4159D79439EE13D4E5799E03338E93315C3F6BA8ADC731A0D8282637E524C1E9736
41629C594C6F19B49C859D7CCA98148215F7E6943637797641D44DC9FB8FA403FCA
417BD581E477C7BBDBC84048141760B4EE0D181D585C519D02DEB7D1C650BB49874
418A75E95E6A17D8024346AF3288A32A7EDFFAE15BACD436CC76850F2EAC7EFF565
419C4273160FC5DC7434DB94BFA01D1648421FCFEF66D786CFF60F0031B649B6F14
420E9139B27185E6E9A70E439AA8D68C6535A42634FFDA55DE86BDEDDF3D6B73015
42137C7437A96CDAC620A29942E834F714D82774AED0A83771A152EAC0CC043CB09
42202574AFC4CA006FC0D24C3DAAF4D681CC1D2D7870F273773171A4977AD05A082
4230DF3F50C8A36D7D8AA96E82387AAFB48D048CFAE2CBAA88F1865B84CFBBC1731
424A212A44EB98265A8D4A8C118E038A0C3503B27D8B58846C4F3E8112C8B05A41A
4259F8B0E1513528F5D7E509EE847F7224AA06819954974F8065AF49F21840E972D
426C1B028B541BA1364045E814A9F8FB299B6B62CA150245D92588056992FE6D71B
427FB16F2B42A3DE425B302051FCC4A2AA76F6146BAA385614913D2B11191CA6A09
428BAE8567DCAC342D013C7830A0F03D848397110F021C63C9D6AFA90ABBC2DE4C9
42969EDFEE42C028640F9784E8CA11B83B4E7AB58F8335FA294DD68BA87FFFCC743
43067239D7FF1C54B725D53581832F5307FF1995D8273EBA54372AC82B7D5EC5773
4318F52B55255502008E0EDA0646D4D71137D822A57C0E9E05F3D61B91436B5FFE5
432CD90CABEA89420F4ADD844733B9B0F0C72688B9184A2EF69966411DF2B23A25A
43311F009C6F23E452854B77AA33129C531C2C7A8666D550A83CBA6F251CB016F0C
434940EC74FF62C721F3D854404F431DB39548F0785C5140A9D406C06306CBB0C99
435B7AA0E4680D8DE074B369A7481F0C12BCEDB787A1A9E4C71C869F5022447E317
436E6B851B8D89144BEE028D2352745CB0C081A7E806482F74E7EDDB5F1601A58D9
437EC5B92F7DAD1B462B0EB9DF22604BB2D617AC6056E723110CEBACFB0F6ADFC92
438F64C98F9910F91A8C4B39EF508A1AA01656C41247E1E8280A97089C515A1792B
439509D2DBD3C5B6972F6829B60135247B75DFA7C067675B7010FB2F116B5009B12
4401F139A8A3E25FF52BE00D9C4AE67496958CA3D1D4568218542B77C865056E45A
4410A07947C4E7D16D24E07A77ED01F10226CBBC21E0DF75293CED54214149619A2
4424A591F3F99EB14032AE840BEC7313CF1F24250BD8D6BDDBE85883D35D6907C77
443FCF01A7E8DAA9BF8E47DA3225623B645891455874BA99ABF9AC9CFABC083127E
444CA636C8673A1ECF967BABDABF1A569319A4E382E7C593CB954522CC9DF04BEA6
44557297331734B3959805B89F96DD23C38DC8CE17C7373EE5F7A9035557E40C310
4467D1DA91F87F0CF45E54518B549DDC5F91851E2899E9756A069CBAE8E63A42974
447299781A390072C7E59B9433F9D47111900DEF4E4F10913BAEE90794333454574
44837B7A46664522983EADBAF6155C6A8624CC7FF1A850313072EF5B066059CC840
449C4A1DA2BAC6DD27D3D3BC9653003D5B25405492BB64FE4A1C294F06492093093
450A4B0175F6DBFE6C4C28C310F71010F97035774250EE0468E54A7CCF54465C7FE
4517A70ADA08BB5B6A4AEBB3F60FA39FB810E6D7B1FBF169DEF45FD7E7EEC4B273E
452A11269ED5BC9F8250F8D29BCBB656105FF2D71FB624F7A67C899828D3A563491
4539CCE8EF268F2A8986577C3A752F91B650DC9717A89F76DBAC254DF1BC705308B
4542E4C7C55A152ED1AE945337B93E411B46DF56DD8F0942DD8403ED15FA515079C
455A1035F3C7A2648761792E241C6710503F7A6093FAD8BCA34C0378700928762E7
456FC371BDA7488C95F69518E1DB63068E740942234A79478DF18C5752490DF199F
45795C654423257DE301117F3C379DA5C90392A7BA173BA19BF2C35C9A0EE180098
458C228CED65FD5241B5DA3D318891994D363AE49E3B0FFDE091C82DB4BE7B240EB
459159050F74BD181337EE202011BC96EB74C68E8BBB26E46020355378E6EC2B9D8
46089DB7907378B83FDC294B134E69D5AC1B2CBC821420EE28CEE8681EA3EC902F8
4613E8503A833B675E21679D6C5B7041701FC553B95D2DB82987EB4A010C8DCD9A9
462C0FB4C048617716CEA638CE3A16C90E55DBF76408A71B3B7FB784820EC3971EF
463726DBE12A1098F350D9FF84E1846CD57B6DDAEF32C6B839644F57EE6B256090E
464C711154CB95AB2910587E15E3F16D402943157E9CBA2174BE93B820951499A42
465F797664141F9F2698166395DF7116293B6557266C7DA28E2FC1F8BDA4B00C07B
4666F7FE6AD4937A694EA423A2B90F9EBD30B8D3710E7E6D7BE15BA631E6991EE2B
4671A28A02C4CC51889C37702E57F13F1E54295D77148C7EBB6B006DD232EF94D83
46820FFCB794B221BDEB84DCD737D301A44B8414B4591BD1D184C85B09BC5E28A0D
4697DB0830419C1D92775DBFAD72F2D7E581EB08E516B0DE87BFF2DC167EBACE23B
47073A3E770832A7A22B28AD12CA07DD15D22FF5EE53C48C55CEE77BD2D429571F8
4719DC52FC92A2D4F7BEDC0F27C39E7BFBBE38721E56234E9AF5FF1EFC753C8E281
4724EAF702CA8F08D3407FEF7E177FDE6177F6604B47872CD9EC22A6644C5A78CDA
473FE3C51033C45BC1BE224F09EAF923B058E13ACDC61A0E7CB5C999DB0C8543BFC
4744D65815338F65AA12BDDFC1EF5A249270D84BF1377FA064F62F41787F3D875D3
4750E4EBD38E30D593389ED01180CA5AD540A89B31933BCEC4DEEA2CFA94C03FD0D
476290573BB3162C80FA9783A66AF33F11CD9437A7EE16812BBC32D80DC10057A97
477C83152905B954CBE464EF39D40056FF3047D9D57B9088A7FAD48E997B5096D20
478E21F9FF5858FC241EC16527F66DE8B403281A8FCA32AF1408D05387C3BFF79CF
47925C5E6EE231B17287ACC5643C94E54A6962CE33246F7D03060042B623CB80C2C
4802E2AC47CB431B64828D8D35426810074E1B98188A866406D24B8020D2082961A
481A4AA27528B60C098CC0F8D34FF1DC6C5A4836C028B2295A4D8281278264283A9
482ABE23AC0A2EC42562FFD6F5FAFA72C8A029F333C26D8CC5B972073019BFB320A
483966156DEF26E9AE303FB4E20EEC86A48468755EB228C5BDAB00714F96797F5D7
484E099755C8F80F0E3331B038527D5743345DDB65784D8234292AEB642C74D95AB
4858927727F73AF12F8B189BDA6BE8BE6A08333ED0E2F6F95CE8367174E0280565A
48697E1F70518E142D658D2335C2FF8C7C401322D6405D0964966EAC8341F34BB5D
4871C654BD9D3489E6F730BB646EDE9F8607F401C5DD1B310D7D422703F305ADDE4
488BC45DD88E798C4F4286B117962E210BB9EFDC968BEE0A9C3EB6B35D1C2E8E50F
4899B9A8D965B63255791A17BF7E7596DDB15B617B98A8E838DE92775EE9338421C
4909A4C9BF5B8E78E475E814EB117719239075BA70DC806DCEF05ACC948AEB8378F
491DBAFC9D998270678435EE7F8E262C2341B173AEE3F9A2EBC2C74CB158BE302D7
492A4FE57E744271A24F3714DF24DDC103687754CFC72ADDED342B5FD5CF9D13D98
4931A13712D09148EF593050E8099035C6B9AE8CFD59948E786E3EC4E1F426FA3A7
4949082E10E79CE44C2D9FA830113503944F8D23CDB9C27A3570907FEAEF76D3ED7
495C8E1F81DA7A51CF5B723F0E4C42E3ECAC298B3E1ACB9679A1250633C373805E5
496C9496CF87FA7A858656D4A663D3EE3218D9792CF705C361994B69461026D8CCC
497130FB9D34293701A137E393F5AE79DE677D13DF5AE9EDDC545496A8C5456A860
498B36397BCC78EF754B6965D22004B978B4A55409F73C44B9FF02801D524740B9C
499E4F45750CD7E45235F376CC2CDCD3BC1B8C7658F52A5EB185EFDB6A0884FF0AF
5001958FAA5FDF4595D6EDFE28FB5249A40BDE8BA11AB0E997E9876CA0A0CD05A5B
501A26F60316F61DBF6E65F43089BDA2D57F00EC72BA3666952E730B14C79FFADB5
5027448ACE6463BD29995D6F6F571BF3D0B426897E457BD30FE76D6CDD6151A94D3
5033D53801608A7E865A01A2FF3D915CAC2614DFDA0A931E009FD1CB63FCEFD0A3D
504B26711BE84286E389805941573E02841C8E653FD3131316E768E2D096E5BA648
5059F03F9825333B2DAC376A79850AC29CEABC8BB1E7D4E34F37D6E9F388124A9E1
5069981131FE0F6718FFC580E678C9D8C1AED790D0C0D78407050D5FF315E605C73
507A16D6868E5DE5E8C1F63A88E159CC44DC0BB3E5CEC35CCBB7493975DC55F52BB
508A33709E5AE3066894885728EE784142B492056EF876521DA69BE39FF4E2BB95E
509C60688678B37692CD40A8BCD585240B0AA809328CEC0F954F0D50DA10DF61A21
510EADE286E22F67227CA286D9A0512EC909DC28518994C6D6E207D4D00514B0EF9
5115DCDA5965D827642072E6DB4B23D1F6C3250081B4D8E66084AEFD663C5F26E7C
512E19A4F3C9A100FC4AADA76F9E4AD474D033819801F7444B51203366CC709AD98
513F62722F700E13DB42D80041014AFCA8D12B23B85BB2302AB944C437FE0FAADF3
514E86291BA50463C32C29FC7D8E4B5EFED49EC40947016D0846AC79E3776E62388
515372568D2AD0DAADAFECEFBC4F7E6A8B47C214A
5160000000000000000000000000000000000000000000000000000000000000000
5170000000000000000000000000000000000000000000000000000000000000000
5180000000000000000000000000000000000000000000000000000000000000000
5190000000000000000000000000000000000000000000000000000000000000000
5200000000000000000000000000000000000000000000000000000000000000000
5210000000000000000000000000000000000000000000000000000000000000000
5220000000000000000000000000000000000000000000000000000000000000000
5230000000000000000000000000000000000000000000000000000000000000000
524cleartomark
525%%EndFont
526%%BeginFont: CMSY6
527%!PS-AdobeFont-1.1: CMSY6 1.0
528%%CreationDate: 1991 Aug 15 07:21:34
529% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
53011 dict begin
531/FontInfo 7 dict dup begin
532/version (1.0) readonly def
533/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
534/FullName (CMSY6) readonly def
535/FamilyName (Computer Modern) readonly def
536/Weight (Medium) readonly def
537/ItalicAngle -14.035 def
538/isFixedPitch false def
539end readonly def
540/FontName /CMSY6 def
541/PaintType 0 def
542/FontType 1 def
543/FontMatrix [0.001 0 0 0.001 0 0] readonly def
544/Encoding 256 array
5450 1 255 {1 index exch /.notdef put} for
546dup 0 /.notdef put
547readonly def
548/FontBBox{-4 -948 1329 786}readonly def
549/UniqueID 5000816 def
550currentdict end
551currentfile eexec
552D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
5537D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
554A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
555E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
556221A37D9A807DD01161779DDE7D5FC1B2109839E5B52DFB7605D7BA557CC35D6
55749F6EB651B83771034BA0C39DB8D426A24543EF4529E2D939125B5157482688E
5589045C2242F4AFA4C489D975C029177CD6497EACD181FF151A45F521A4C4043C2
5591F3E76EF5B3291A941583E27DFC68B9211105827590393ABFB8AA4D1623D1761
5606AC0DF1D3154B0277BE821712BE7B33385E7A4105E8F3370F981B8FE9E3CF3E0
561007B8C9F2D934F24D591C330487DDF179CECEC5258C47E4B32538F948AB00673
562F9D549C971B0822056B339600FC1E3A5E51844CC8A75B857F15E7276260ED115
563C5FD550F53CE5583743B50B0F9B7C4F836DEF7499F439A6EBE9BF559D2EE0571
564CE54AEC461D354A32E69F39DD0C017BD6576F1E9500DC0328E8AF6EAB528FD7B
56585132A2A9995EB211FCE849216BF6D663AD649AE92DA953C4D520AB9A22D27B5
5666C34121FD688F9E17FE39B939D8DCED9EDDE5AF6DD7DC2297F2A3E1287E5AF45
5670306EDBA3C843FB8234D0DDEC7595CDE6657E499324DA260BACAE9D6DB126FD9
568AAA7368F7164F6BBBBE11EFFFB65660DA0961A97D51ADAF2136A085FDC16C199
56972BC2CA210B330C03F4252A275FEAADC95CFBC79C3B7285C4C7B5C9665909A56
5704176C37DCB569C8EED1B59C58B5EBD3ADD31010DCFD59411FC2020E238A07B83
5712439DEB653AFF1CF197533724E45EDA9810B6793E27943CF51484A5BC7DC61C5
572E97F71E04BB623E0BC9C
5730000000000000000000000000000000000000000000000000000000000000000
5740000000000000000000000000000000000000000000000000000000000000000
5750000000000000000000000000000000000000000000000000000000000000000
5760000000000000000000000000000000000000000000000000000000000000000
5770000000000000000000000000000000000000000000000000000000000000000
5780000000000000000000000000000000000000000000000000000000000000000
5790000000000000000000000000000000000000000000000000000000000000000
5800000000000000000000000000000000000000000000000000000000000000000
581cleartomark
582%%EndFont
583%%BeginFont: CMR6
584%!PS-AdobeFont-1.1: CMR6 1.0
585%%CreationDate: 1991 Aug 20 16:39:02
586% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
58711 dict begin
588/FontInfo 7 dict dup begin
589/version (1.0) readonly def
590/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
591/FullName (CMR6) readonly def
592/FamilyName (Computer Modern) readonly def
593/Weight (Medium) readonly def
594/ItalicAngle 0 def
595/isFixedPitch false def
596end readonly def
597/FontName /CMR6 def
598/PaintType 0 def
599/FontType 1 def
600/FontMatrix [0.001 0 0 0.001 0 0] readonly def
601/Encoding 256 array
6020 1 255 {1 index exch /.notdef put} for
603dup 0 /.notdef put
604readonly def
605/FontBBox{-20 -250 1193 750}readonly def
606/UniqueID 5000789 def
607currentdict end
608currentfile eexec
609D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
610016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
6119098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
612D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
613469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
6142BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
61568618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
6163645B82392D5CAE11A7CB49D7E2E82DCD485CBA17D1AFFF95F4224CF7ECEE45C
617BFB7C8C77C22A01C345078D28D3ECBF804CDC2FE5025FA0D05CCC5EFC0C4F87E
618CBED13DDDF8F34E404F471C6DD2E43331D73E89BBC71E7BF889F6293793FEF5A
619C9DD3792F032E37A364C70914843F7AA314413D022AE3238730B420A7E9D0CF5
620D0E24F501451F9CDECE10AF7E14FF15C4F12F3FCA47DD9CD3C7AEA8D1551017D
62123131C09ED104C052054520268A4FA3C6338BA6CF14C3DE3BAF2EA35296EE3D8
622D6496277E11DFF6076FE64C8A8C3419FA774473D63223FFA41CBAE609C3D976B
62393DFB4079ADC7C4EF07303F93808DDA9F651F61BCCF79555059A44CBAF84A711
6246D98083CEF58230D54AD486C74C4A257FC703ACF918219D0A597A5F680B606E4
625EF94ADF8BF91A5096A806DB64EC96636A98397D22A74932EB7346A9C4B5EE953
626CB3C80AA634BFC28AA938C704BDA8DC4D13551CCFE2B2784BE8BF54502EBA9AF
627D49B79237B9C56310550BC30E9108BB06EAC755D6AA4E688EFE2A0AAB17F20FE
62800CD0BFF1B9CB6BDA0FA3A29A3117388B6686657A150CE6421FD5D420F4F7FB5
629B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E10A31C7011C0FFA
63099B797CE549B5C45238DD0FADD6B99D233AC69282DF0D91EA2DBD08CE0083904
631A6D968D5AE3BD159D01BDFF42D16111BC0A517C66B43972080D9DD4F3B9AE7FB
63211B035CE715C1218B2D779761D8D7E9DEBE277531BD58F313EBD27E33BEF9DC5
63350C7821A8BBC3B9FDF899D7EAA0B94493B97AFEAC503EB5ED7A7AB600A22D03B
63486A088CED7AE528182D2EBF4D351FD835B5DAB2036F44604002D0E21510DDCEA
635F8DD36174C2CFEBAE2D183407AAC7D4D52D51D5B2890CD3B23A88228089D26BD
6366E7ED4B31A60C45C7D8C00274A812ECF682228F241C13C41497BEAE1DB58C3B8
6373EED1B4F48D1A4706D71EB098C4FD67CC7890957724C12067CA54A2140855928
638E6197231734CB46E3EF820A1C19A6AE55A2547EDAA9994B59311C2D02BAF4950
6392A8739E2E60A1490884101F56392D67FBCB271783118B2568E2DD484465B899A
6408312F466470B4A490266852CA56F7F56991A746CCD5A365EAFD700D47D11860E
6412E2B21C90AA8B3F9915F81F0E2C2DF98D942F3CEA2300F2B9F6BC99FE21F2966
642AA932F222C35EECC2520F10C110D6FF9A32EF56A812D3760B54B451C79D6FE5F
6433F93D3E5F9E4D56096A92B9E953F160551BB6FE26206D6A317219222AA58FE76
6446C758416537175D1F7DDA512DAE5A4794216C90B561F6C29C44FAAA5EB719F20
64543333A0605C0A095D8AAC862DE53BFE3EA97A756193E9E74E7604AB5EEFC1E7C
64600888CF0F286073143ABD034A1BD66E81E588FF34930DA0421D01B48A71EF115
647BD68ECA6C15DB673CF17821A79484DA091B0FD42820B35ACBCC4E2873C3B4950
648F76EFCE8F0A80EAE5086450D76847F299FFEFAFB731C72B63DE42CDB342B1691
6490CAF1AD419B1B3102894D78C3ADE69C39ACD063566B0118C0E127D4A7C013D93
650C3F3A8D55B3A6BCFA37FC6796CB40EA156958F27435A2832A5FE55A08B76E258
6519440C4741B30E211BD4216DF1EDEE02D168A398B6769F8D165B7D7225D278BA8
652994DDDE391F57EB890156023E6E3D56E22843F3DCC582F7E6C571EF2BB436631
653A7E7738ADDAE7A0433C43A8A3B90AD8952E976F348973F79797E5B68469542DE
654D610798FAFF13B24AFA2574BF898DBD661417C41BD0FB6D448CE99BFABB91117
655E8CDCADFAD71D882E51DF28B7D04624615C826CBFA745CD903E2303337AAA886
656DF481C65C7D914DE22A026BA75D232481DC320B89A9A2F6DA1D9E54C48CDCDF3
657F657A66DFEEA1FEB0E98A71666F115BAC1286D5E0273BE8A67ECEDAA1BFA4921
658E96E67138F28919D708719107D48D8F0C4E4DDBDFE6DEC21C27F260DF7A46327
659D924F8918E2F0837760BEC3666C7D5D60A9F2A7EB0DFAECA1AE4A79C15CEBDA9
6607592B665DFC923D1C6ECB7A3444016A1F9760493BA1D71232BF2576DB84CF966
6617A7466A55FDF764D4BD7810541055B989E8A8189ACA63014CF403E3926C4F455
66281E25361FE1339777B597EFF1CD63F007EE735B9049315DE035415170248B359
663EF4A0BD6960E23D3318A59E11190AFF749ECEBC81B0D3E26795B6369309ABA76
664C1E2EA4EC1DB3065E4618BFDE7729263920EFE5236EA355BC30C95C62718EDDC
66569C3824B6A450B37974FE23553D0E1ECA572155E53DFCAD1E4F7C40FCCEB42F0
6668A41A4F516B5937D75FBB86BF290BB6548FF327853DC5A25D002A381A13DBAE8
6676CFD76979CBD26A4F4D97A791BC1E65AC1B34F43AA12D9F5E66E85E368AC33DA
6682626EE4E399623D6449037D555E35E0A22E4AABC91B360D7A961FD335E37FAD1
66946DB866561D431B05A65BE91077FEBAD52EA5587D5DB86CBD753EB270B4AFDA6
67068C0F1232BDBC07B5D7E2B58AD4FCE8D004149EA212653A83BCA85A1BC8E5AD7
671D15D165521AB6377FA20A09413403C79B1266F49D983AD0BC50AB766F1CEC782
6724609F22694540DBCF5FD113626C89BDCAA59F4905D07BABD08BA49F976C0A79F
67394A77AD26783AA9BC47B8A11CAA11090D09A88BA948844A45BCEDD3CDE0EF114
6742E16ABAC0D90E7B7345C04B53577218009E67C7B7010AD8DB0FF1073DE31C770
675670C6619622031490EA2A2D1A9FB80DD21A5ACC526C2BF0D999651B8E22A28FD
67647B4708B288F5BED8E5DFBE57FB3FB33F00657B8544CDF6CAFE1A3BBDA9F2296
6773C5BEC4351412CCB9AB6F450188D307B9AC70CA7D9DD184414833868B27BCF62
678C8CDDF23A7D796D0A1F8155E66EC9D7B35BF0FBE185103A37EC12981EADBD16D
67970CDB2D685FC168F08AE39F375739ADFC915A63C6A7246D164A12569155B956D
680A7A5795A6EA9D4FDB0AFE54C63CBC01D5C338B68DAC3D23B110527B91BC0527A
68130D7E8B7DB2A6CA19B7C71D78D71C41AE0557E0A9CF2F3285F53CEF69DC3C91A
682B3EE632FC1416B4B36CD2FDB8BAE850FAC5E9E0B7B57534A8D86948074AB123B
683B39EBA873F819AA42D36D4E07E2507EDBB3144337A743FB436545938E4DEABF7
68403EF9E9752B4DF79396023282325AC3AD52F42430A97C54287C94C3C910D025E
685B6C40DC9A11D864614393CE973DE186B99F4B3C0F33CA18E1D30F8E8EA70223A
68636853FEC29C0F96B59A6F59C0A33712B7053001FD554D23D0FF848FEB3C7EC9F
6877455645E42209FD5B8CC08A4A882E34275F6EEC5B16E7A7DE6C9D8941EB6BB46
688ABA35AA067E0439AFFF7DF7A660D66C8503BF35EC83C32270E04512FFA90618F
6896825695BB8ED9F97C4FA706BB84B66A9BB210628EBE19ADB36D679CF9E7B3BFA
6904D4764BBB31682A14FD537266E2CE1F4640131D324382542FF8B8CD9BB108B69
6916655FE8FCFB277A88C58A7E2AFAC9B740D840EDF1DFC50747CD3EA1DC24B050F
692B12404954E42E14DB6092B38F32CBAB9546A9784BFF7FB16FC0F3D2875A35A16
69375EEEA82FDD3DE0BAFF2C26BD37D229CA06A002529D27EAB41E20818ADFBBB5F
6940AAA37BB95CAD96A3F700C2E5B7DD988E89049051077CBDC2DDA592E2B99C090
69553C7D459D85A72B01880F10F9919777AAC2A3133B8A7CC5926ACB6C87B0552BE
696D310D8E86E5F4B142850D45664F2CB087C0E7546DA66214DE18E67D1BF098A30
697137068F9E9735933B96B4242E805B0D4E58FC9EDE7330D4217C9315BF6317608
698ECEE1BFED5BE0CBCDBE36119465AF20A6D7A3244652112A1E602C358D5271595
699213FC19C6562678CA6B38A817C0E7CD65FE588A1D9307FACB838C6F5461C0ED0
700888437043743899769E94B7EFD49B022E3A663EB0A00479B5C291937407B52DB
70136E71F524C1C6F4A91BB99E1A824A25C3917DDD42FC2F9DF16BB14C4D28CFFA3
702BBA2BD381C27AD1885F7DECA566B15C763B3B4B3F3EAF3806275D8600FBE4B42
703D1FEBC74147DB1CF64549C9C7DBEED10F44F4D585371BBA5357ACE0BF864231A
704436FEC2C90C94ED01324D5946B89CC05C087CEB96AF03E350BDF44683BDD566F
7050B2C48C4041411EF91A57119C9ADB0F2523477F46F72FEA57ADBB2AC25D3135F
7064F0BD460DC6D8E29830341C64BAB91275E9CA08B713955A5D344EDAEF871DCC1
707B50F30858C3C3666597B73A752E93DF128546D1A1812C5B916AE1F44CB36DBC5
708A26B5C3ECFE3A3E2A013B5BAD5722A8943BD678F651528ED340EBBF59FE47E0F
709D7BC565E44C38FF7697C3F1569C241D339EBC685E7C4D7BBD318B74E6AAFC97C
71049EECA3B147E485F1F2475AE983A18395063BFDE981F51E6A2CDBF1906E499CE
7116C6403DBD85E65E44839011D7E3F62B7504A9CFBF6A5D3C9AFD6BA64E636D7AA
712E43BD83ED14C6EFB36A5233A5D795622583AFAA09000C8557848705231B6ED8E
7135E3FA79173C172763C70AD176F4F3DB0054F144F661F9F028B596107DDA43168
71411B6A56CE4D375EB9F3DACC6EC06F632CAD1D994217FA7DA1C56F681FE7CD0AC
7156CA60BCD21FF4950D20D4A3F11E0662BC1D3CBD8AFE2DFF3DA1C609E0B337B88
71687B6FC6E735DDEFC00C491916F69D0478BA2C346608AECD337AA80031A269380
71745E450ED7BEAADFCBED412595BAC771ED3C1BFA4459A6278EA1F00CF89C9EBDB
7180A43F9CDF70A0AF808CB329CE9907FD5B36C3AF5D1C475AC99A6D6F22596CD42
7191CB7B14123D38D8FD9109438D9F49EC8AF29176204C0A776C60009AA148697B7
720F5496C6FA123F9ADAC59400E139A0B886E110425839B747241A0FD2DCA8621E4
721AC3B71FFB6FF1BD4FC5DF726DA5F383D573640774EC6327F772290930F2656C3
7223D3B1FD3F6B321E0919720F03F3C6EC09D05629549549CAF621EF916071CB6F1
72322625657C27985471E16B21714100F8B80A2C4035C5905C54FF95AB7358117C0
724DE70C0FDA8187FA316189D13A9176C1171A318A81D6A77F0E54D6DE37E5D81C2
7255BF1C7EFFEB8D130DDEA4250C4FF4F1BD1B535A20C3FEF972323F114A9FE90D8
72648162CD532AA3423FDA9AB00AD6754C8216253CE936DAD6AED5BAFAA64921186
727E217F709A73D6083A8D04F11FFF49D2D8AD5A55415043A8EFB32A478B9D70F95
728D9E63A92B53EFAABD9BE62461FEAA541F5CA67FC137E3AAEECB5BE50FF74DAB4
72918BAAE0A7244F072B33F3AF7474EBC681DDB09F4A11663EDA56268CEE9E653D7
7304C068E233BD3F142653DCAEB01E2825AFD6ACC54659F66B21AEE64F66727F033
731B3D7D17C051B17B4BF41DAC5D8FCAB88A36DEB62BCB5D248854EEB8A9EB2672A
732391013A66539BDAAD4189563B45C2FB57EBB9B02BA6845FE2E7D66CED6098014
7332831ED864C366FD3D2A36D9823E84C686D401BF9F01B71CB9864AE245E34D554
7344DE79FEE3B5C74846967D0512CC9FC103DCA3DF48D0D491E70C8A102AB9A92AD
735E868509AEC8134C6587B505139FC438FA994819CD17F108C754DF744F31B0731
736E07BB4F12389EA058127E75F5AC024595CD8477F5FEC80AE9EF2109D0FF15326
737808FC436888B98938234E93EBFB0BB009F8FACC9D0BC0058E37040CED69EDA45
738D08942E834665C0595737BD2C4B18CEF53BE576C03427D0EBD25D335ACCB2473
73963B2FC3FF036BEF8DE2CAA9308E089C591C331DE41017E36914FBC5426358701
740151572CE393FABA2C55D67E7CDC90C78CC6D58C3C6DF6524E5A9804D0D9A0E3B
741DE85F7D0057D2ADBB04FC0077E0080DB404726A8AF5029FAFC05589D835F9ABF
742ABAB4C3B3F66384368D4A2B6B3D6C1EC0FB4121C59D1C5C50CE8E65E988D06AD
7437D03BDC5B095F3BB54A1E4E7DE57601A28BDF6D1C8A26268FE2A8B510CC62B10
744A2F69EF9E8A766BE982C9D791B42C10502F3BE4516D103DE941633F021DDC99E
7454C6BB01CAFD7B886E677897C775485878943292F8592C4DED879058D96EF9F10
746B89C8BFB5567EB7D53B13F1C9893A60D22246DE121C993E9EA563EF972E433BD
747DA1119607CEC7C89145164BBF82194A31932BFA6EA40A2466EF148E9EF09209B
748973714C0DADAD79BC4DC8F767D948AA227F9A12F46262ADC3FC80BD464EB3750
74951CDE98239A728AFBA32DFCDF0E04F1364399121FBA23EA9660E71F1BD2BF976
750F6DB04FE31B3D89112C8EACEC00D8BC0834D63025580AA2A77588FEF5F95BE78
7517AB5A9BBD218B94A7D7E14AE6FC65A615D39058DE4644A126ED9AA1EA03B0A90
7529B8162D84A883D5BA85B83BE8E7EE7B3EFB9F50ACFBFDE4178C4D12D6054A046
7537CC57C142E055B9B822422C9F6E3F2323278AD2299BF211302CAD720BD980980
7544D4EBA8BCE79BC6613EB227A233BF4E0C5B73FD1C424689FECC8949C19E581B5
7559B4534060BB017C315E46E102F9C54830C11CF867846427AFF0293B6EF11970F
756A5E75BB89A8937512FAE083F1BA63BECF2B5ADCF9618F092F461096C565B55B8
757714F9AEAB4F76920A80BB74538CAE55A617C3B265F64E1B1EB19D96DEE120581
7587FDB28B9823C6F5241ED566AA02650CEEA40E6E1A2C6DB55590C5B5572D8F57B
7596AEB288D7869B6A7A50B27E496905CE770852E9BE460CD2D1C723FC7236F92DD
760727B27FAF82E9E7F32BADB7911ED3C6525D913BFA333EBDC18573F1441624892
761EB53FDBB6A945B38FC9C376C3D534127720420E20DF513EF381E2B6B5D5E5C23
76283412BD67435CD6BCE407B8FDFCE4F0A0C35E5DF9DDBB2D1D5D7CB2A45D886DD
76358F908A07FC48C245DC31F28D30FFAD477A1D1AC593FFE8086D05B285C700996
7642CB06125A817D4850B6D3DD246D671554AC1F513932BFACF92A15B75F87DB140
765F5225D5B066A913E6E3631F160CF60F54709FA0DECEBF1BB203F4D902B4351EA
7666369E4872617A98DDA8BFD29E8933D201A09149077EC934C0B082B92244DBBA5
7670E70943FE5E1E8823E0620C857D8A3CE3F857FA05A0DE16D7673E9CF27C847A7
768C8A8DC1F7B8E80A652C47C0AD748A60D76724354AE6D98D37E164B8DF1AA36C3
76904975386BD0C356DE67AF3AF9A2A7C5AB957994A588CD1BF864C64C2D00F8D07
770CCD30A5BEED0371BD23A4622BA3B8EFC35FF8A552E770FB899BFDD7A924F228B
77195B56FDDF795C0D469B399FD0DDC140CDCB61C6A6E30561CA594D7A7A0E86CE6
772B8B4A04D3651CEAF4D11F86CC71A66DA5D66555E27B1D3503E92E368352A0501
773FD045A7D79716CA26C601CA2888B9E57DED1163C821C10EAFE81CF0461A92413
774BB96D2CBD385D17430F3DD50B260F58DB83423E826B9F55FE96ADC290621D17C
7758E4BD1A39007D3EFFB5EC104D2FFC18DF08E16753C26836752BCA0F190882433
77600D86B38E658215741C887494D161A56FDEC75FD5C4E3802318C3D2B72987F3C
7772DD3B75F669F2808F2A9C0880852A4A6236FE8A4AA4FFF753FB8E0403A9926F2
77873A342837512D46102279CC3B105A959516C9CD4FF86C704BD81A2DB5FC1BA55
7794798041822419EE5B201F48A1C182EEB9530D6205677136F81D3D911C98FB220
780C04E1532CBB717A68A5AE74FC5F6ACCFFE1ADBF194551F4E9E8C481C32345FDD
7814615B1EF62FB11C900DF204485616A9D37EA2B41E81EB1854570A07B76C7A064
7822C897C81FF81F703AD989D304CF7AD99F9B900681C935A9FD79C0188B3E2B50F
78319B15C3D95D0319406F917A31676DB06839E0180EB5AF09ACB81A4493CEF52FE
784F606841668FF02BBA4492216D789B6A3C4D9C3FA1310305E9878D7457D7791E2
7854F4749102F501AFF64C3EAF5A90B7B85DF090316D74ACAC512B040C19BBC61CC
7862534597944221052369729EDFF43EDAB917F2117353A8E76A6ED790FAEFD58CD
7877B0F694B156BDCDA89DDF6DCF2B47B71CCC037111432C562AF9C6B6CA1D1BA78
788FCD24F49127731799F7A0C29786E2DAFBE0A24DBFBAE0E9A0DCD44E4649DCB7D
7892916659DB0C65232B5CDCB015827F31A5530489B79A6BB45D68E19E3ED13D3B5
79031DC8454C68CF35E3E8FD307CB301884BDC0A03EDC4F08D4142E20494C59F6EA
7918CE8046D29869C7DDCA98EC906411C57957D1C8FC5404434250881714434B1A4
7925E368208D33D37066855A8BA7318DBEAABC15A83F2E1E50362142A67E443CF03
793E31904E3AC02993022789C3A1638A2056A0D94EC8D64E2A13CED8014C4F4FA51
7948F54801B2BDE7F9F2D0F656A09EB713E8A97793DC5E7F7005241AC5D45BF297E
795429C0CB733F1B86A28AE15CB627C98548AA0DFC81E7F62817989E325324AF65E
796C44FB6A9E42A270D789463D125EEEAFDA57DFD09C94F1354D5FB7B10D8F9F47E
797B6F581CFB243A6B634647EB496F2884CF4DEA98503F4EE906A38173D2A6BDADC
798A21B3C206B15BC842DC7FFB7022AF0F963177F310E971319B9DD3BCE508D4B92
799AB9B051FDB2851502D383EE103C4B0B232E32642E305838BD2D3936387816961
800762185C7152062F990585E9055F94BDBF7BCF46EE1E5D30558BCCB4C996F27B9
80105F40807866C255B81A55D0739041B5275A66F58FC149778AF1D2D90BD83397A
80233AAE594FF0A34FE74F524FEB43A223F8E29D7ACEB1E8838EB0AEE7A5AA401CC
8039D93AA03026E0879E9B7C7BB3FED71492BDDBB28EEE6860FC9E453B0A73982DD
8047AEA950B45736DB924A67B8E88945C2FD9CD01AEAABDFA43D12083AF7D4EB987
805FCD27CA7EDE61E5707AB481BC4B566887884C33C89A2D0B234D6135BBE98ADD7
80690BB22D3BCF19B4C69FAAF0F7946A8E3ACE5C933E2AB65511E861E3C5F9428B7
807B6B61DE712F224237AC705913D0C15E717D00F1913ACF411528D7A0BA81ECC2C
808EE9C5A09F0414B01AA880EAF1776C3C4C965FDA4FF258C2C10ED0C0F894F67DC
8091EC0876ED390CE114D4635F1F7837381CC94F52F4DA12FB9C700B94D75E282BA
810C68B284F09331DCA78387C2F262FFC436FFE0B62F304CBC8BA5C287736ED17EB
8117ACE389AC473AD84A72438FD57D3F8BC75E058F0ABCB016BE01ABC26E1F2EAF1
812406809EE7F30883E006C5D62FE0D92AF0FF209B881537F7B5A34443B9A94A6D4
8134C6749230716E53A28B429458A485D1C1530527C869EAC3DB8E0928515CA5370
81483D760905152AE563F58CD82D46F80BBD9D6CA797FC8720CBE190D7264D4C754
8154590D83891A2A01C4D43AE46AECFB938899BBFDD5A0719AB0B51BD705B33446F
81624DCFD6C9D7CEC05CBC7084CFC316B0370E9F9C5F3808822C8D29CF927C76BDC
817E6C31B044951C7F455686689CF06E8138A7B19B7CE1DFDE3343136DE9287DF1E
81881778DDC3BCEF0D6DA8DBD4D56D3E06FD6AE0B51EABDB7B52024636DDC0A2396
819D34630D3E3F47889DB84CBEFB6270B85E448E02F6E81A338AE0230551D629FF4
82094A5859462DCEBE89BA8E57E107F6AC587F79CF8B427C493A5C14AF7BB045176
821A9FEE5E34663AB3AF9A8CF714DD1DD50E18889D04110634B15674D68601C4ED3
822BC8B95B927E5B2E16880E1BC5CE1FE385A2D416973B52C1A2FE4332E964074E2
82394A69FC4946F579CCBC12BD381A80B5F2B1C662CB98138B58EBB93BCA99564B0
82498CF2EB381B04F005343633B163C4DDE8A98500B447D2BEB878AFE8982510794
825D276A4A6DF3D36B0ECF8CFE7D3ED4B364B08AF5012B5AD4BA29FF5886BDF1BB0
82672378D823C1929FB02BF7C9E41B483EE3D18817B056E8FA98FB9863D79EAB517
82754BECBF7579400AC5DF7EDE80E202AF75E66C48257A50390A9784BD6077C8FDB
828CBE3D17F8BAD802E97087A8353D3412C24B0F886AFF91D101A5833CDADF898B6
829DE548E996DAFF04D6CF8668A5CFCE8400C2737D0124A97083CC808CB80B24BD5
8300162448072D97FCD1FACC4146559DFFFA11BDDE0E2698D92A9733C10BFD23E38
83173151FA9C0D030872CFA02208A31647E1A7DD2C182044D90F90D48A9C4C422A0
832FB5A3A88331168A296EEDFAA02AEAEBFCA1A698BF8A01F109EF2FB767B4F679D
8336A39AFF1972E93364E5FC5E52CCB76B06560A8FCEFEA58BE9893F9B20ED2CDA0
834F0A2EFF2C9142A50B73A1EB3547C2B7954BFA47C590FC35260C75BA557A36AD8
83518CBBC03CC65C597F432FA0F0F27DB31EEE7F754781BFCD4EFF6570BE397BFFC
83635A7C0443A8172ED4FCB128DAA55D7A0AC14F9FFF97A43538C005ED8A1FB1760
8378D01F3440420FFFDEE149F036E278E481C35007888431CA712097362CFA27134
83836FCB600FD4C4541659571FC17B8136CF3860E2A41177C4E0B6B5E39B51ABC5D
8395B5D6D732DD3D122B956D4B4328F15252762249F5D50EE7E37FBBFCFE28B12ED
84048285FF811045768B7893A838F0E02536912157475D473DBB14CB666A00B400C
841276DB1129A8D68681CED61F7E21C5761AE13FC383F55BB6FF75579CC533AB682
842E2811BC342AD6E899EBB2B16632CCEDE09B05F9DEBD65591D8CE0B6EF0FEC4DA
84310A55429C85B679511962DB373C41EFAC813C0674DA0C2B02BFD0DC1CF82E26E
84415BD338FC3236CA8DA4FB3437442EFC077549ED51208497C6B074DFB6D386333
845C0DA4772232A367AC13665201336B291E8F08BB7B30F88A3959B21C0303EAC16
846BF5BA8B4F051B58028544D56A13B171BC76F3854974A0632E262C2B90763593C
847D85BA7A24030561D968C05E641F3A72EB769B4
8480000000000000000000000000000000000000000000000000000000000000000
8490000000000000000000000000000000000000000000000000000000000000000
8500000000000000000000000000000000000000000000000000000000000000000
8510000000000000000000000000000000000000000000000000000000000000000
8520000000000000000000000000000000000000000000000000000000000000000
8530000000000000000000000000000000000000000000000000000000000000000
8540000000000000000000000000000000000000000000000000000000000000000
8550000000000000000000000000000000000000000000000000000000000000000
856cleartomark
857%%EndFont
858%%BeginFont: CMBX8
859%!PS-AdobeFont-1.1: CMBX8 1.0
860%%CreationDate: 1991 Aug 20 16:36:07
861% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
86211 dict begin
863/FontInfo 7 dict dup begin
864/version (1.0) readonly def
865/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
866/FullName (CMBX8) readonly def
867/FamilyName (Computer Modern) readonly def
868/Weight (Bold) readonly def
869/ItalicAngle 0 def
870/isFixedPitch false def
871end readonly def
872/FontName /CMBX8 def
873/PaintType 0 def
874/FontType 1 def
875/FontMatrix [0.001 0 0 0.001 0 0] readonly def
876/Encoding 256 array
8770 1 255 {1 index exch /.notdef put} for
878dup 0 /.notdef put
879readonly def
880/FontBBox{-59 -250 1235 750}readonly def
881/UniqueID 5000766 def
882currentdict end
883currentfile eexec
884D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
885016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
8869098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
887D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
888469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
8892BDBF16FBC7512FAA308A093FE5F05C11F9A72F5DA508C30BC4BF52C8B1EC5FB
8907F9DDDD0964A6D59193A389D490DAA6F6ACD02CF71C06802F3AE5A001F2B3A6D
891EEB60E9DD26DBCE1D29C825A9BEFE3A6572E70DC7B60344C3E0C9C77ABE1804C
8927ED61C544F0B4A3D6C7662DE8575C07BED3F6DBA7D64A9C8613AA152B74A140E
893AAD9B66E0FAEED6AF9D1820F361C1269A5E90519A3E6D40782E06778C0AFAA30
894E8CEAB87054C4D156C1B14B4E8471D78648FDAC70A3B8ED474FA356393A77420
8954211F60E397D2FEFC6A8D91A80C84EB9E38E663249FB91D5C8A5CBA68BA04272
8965D5D42497E1CF5CA1E62EC2B139F5CD4D6318EBBA7AE28614D2D88709C2A3762
897611524B8A1FFC7B0FCBAF77AD8159C354F4887DB1A27781DE0A4BA7DF2CE2025
898D9278CED48584E8E6BDF30BFD24284BA1DF828B637BF84A02908BBCED67372C9
899EF44711BC2B1DA343C8D9D27A9745525C774F5D639B7AEC197CEEDD06FD27923
90035ED0D402AEEB51134665A47847429D91CF419CA9B09DC905F610F8DFC54E606
901ADCDA19D5CC68A7BC7108EC9236C64205B23CE68B9BC38EF3E5BF9E0E6ADF404
9027365C8D0436609438C82EEB2F356F79186DDF6C1C797D3C278108B1767D15178
903C4C3E8ADC2482BAB9536AE8419E5CF3EE1B6E53BDCE2A83E2E485F496A562C10
904B3F5A131BB19D1E5414C86C5F995521076340536E10613E42779FA15EFDB451F
90553495CE8EFF239E4EC442E1439594549D45F5276F93D496C9AC712D762D0B702
906E894290BA028837304AFDDD8BAA6564E9DC307A14A7A206550FADDC7784DE3BF
9073390188BBCDDD929C82B1D7B529553BA75ACF5B385D31EE3902D96B2B5DDFFF1
9089F0F90FD791E54128C1717F313486896868A34FAFF22E23CEF046D02C1419BA3
9094389DED48DFDE7F78F8ABE3DA17968B0FEE61D27AB43F61978CC300F2924EA14
910BA6FC2FB5CD4E01313B34CEC99B77A3D837EE53D274DC3BB04EBB9EF0EEC5A69
911962A0F4F2A482166A52E809D5C4888EC688BD43E5A099D9FA7035129CA7C2722
912844491DE966335021F4012ABC14F978ED81748F0538178EA4C9D7A0B35351EDE
9136807474C509D11DAB19B297536ABBC95CE452FB95A95A704B50458BFA68E30D8
914BC5CF97BCD247877760E3D6214BC148EC97E11DAF733750448223DAC2431D482
91563AB82145EA5F9ABBDCC991DB40F5DD4D5F484954C2E595E477F986444F55AEE
916401B565D0FE39818DB83ED1702301ED4A36C26B64CBB6C061D6D0D15E5BBA146
917B302DD3E988B4A55409F36929DF832640D9E53100AA7ED1D1B256F255CCC0690
918C3CF605410317820B3E03ECB0B9EB0127613DD7816D649EF409EB9C1EDEA9D8B
91954F7AE88DD345B7E37076A9009EEF28BF01F3A1C854881D99A29D9034BAAFDD8
920C3F2FAD2A47CB69009B4352F69FDC78C225C69B3A637A26065954A38329AF9B5
92129A7F6932FD992D80292F2CD1597FA436D0DE7C91407D1CC2AFEB98F55478094
9222741CBAEB447D55DEFC2B7C49D020B6EB50616F4BF5063D30EE5838E4FC2E147
923715C3B6416075E9AEB71E42569A9ECEFF9A2AE2AA55C500BED59B9C1F6A1F66F
92438AE40AA742517E379E65283EE626156AF35FE4A26E1CBA0073A738709F54B4D
925B9BDAA4EE057E728D0B461687C9975DACDF3690605C2D98EE0B7BA127114E52C
92623C542E8D2EF39D2C9E4B793EA50A934110C51066DF92D7B38C3480777D07EAB
92749B84B4CEDEE7158CFE26EC882F1A5E4B28441561FD2D13647AB40792DD4A970
92825B7F1A23EF4EBDCDFF405B122646895FB3E8E628027E34A72E67020D5E62A87
92938C223A0F1BA730FB4FAC3112FEC9111997301529D41598F4A40249E083ACB42
930ADE41AC53ABBD8717429106AF10DE43B659A6BBA8A235107E1CB2FE299511AB7
9316CFDA174E57BB46991370ADD818E0BC0C54A8C66E4C97AF12E038FDA89110237
932F214F4D582705CE5B3315FA281E35AE58953F8D70457CADDD552CDD364C90FBD
933DA811ECABA00498EECC9094A28B5E198058D7E2D4D76EA6D75959FB832FB7034
934989D3059DF980833CB801F53DB5E1117FF0BFF172BA5821D83A2A3D669F39A29
935B85B33884FD0240588A9894FC06E395193E97179B9DEC65AB5F823757547945D
936863733D848BF0FA705C52606455D8A3541ECD15C42A0FFA699FF350DB28EE378
9373467202A90B7ABBDE00DB651874F6D60CC26909C7618D4C741ACE9180A572632
938BFCE0C6C9021E1ABCFAD7824095B19DF5B849A293E7F1795806DF7FC89A8A91B
93927E3908645DEE3E6468BE5356ED95832591900216DFF2BF9316A474B7BD36214
9408EEB23E9AD6FC316076B051DD9C90C7D632120F972FC285632F12367C5ED1560
9419B2918D03B72B9B551D2177E700EEEE3377B8CCC1AB270255D90A81C3183457E
9424358C0F074367D9A555149559B8A6038B2F3E740215847A92DB817B98DB070A4
9436B92C8C8A0746319DF9E9FCF25E73789ECA755D28959F89621F315608ECE9029
944BB685128C8D22BED5500D1886C7A677C985DDF465869866E2F725F6BDE7FCE2C
945C819498AE0DEA811D77FD1C7431BFA72BA2ACE9656A7B947B698B95EC35D9A1B
946E9E908B2E47F213C7780BA017D3F52E3A65ECD58002A40B9BB01A7A9D9B05484
947AC1831899684A68B28CC9DE6C37514A815145B7B13990DCC49D8C28642496457
948B23819CDF607DBFD58F09E920CB72E0C971D883DBB5C8CB563BC09F096F20EAC
9494F2E6391A8736AEDF56B60A4FBAAD9E2126C42FD8C71B5AAEC21B6206E7547E7
9500B0CECC2EFE5734F00EF5CFF7F35F4A49F2F5BB6E3B5260A9FF0C8FEBFDCD944
951F797069CE01E2CD7CAA31A8297142C8BEC67C912248931C6256BECE7D7EC08D8
9522F81BE0558DC9C80E7E9B4E60BFD3ABB8F33BD62CDD74C78272833D88A13116F
9531999901D3D02A3AB6DBAB0059C475931B9C2C7A99CE5CDDB388D95B2682DF46C
954AAB2DE828CC5A4D2F41B7689C83E30D4BD80B9909FEF97441664290119C8C36F
955E3C16D55AC2E121675137F4BEAB59765CC5C85C1B7EB918ACA2CB44EB0B06CE9
956BE34C937A8AE8122BB93773F6F411F7A759AD4811874D72F7E3F75EA52109914
9577D00EA70A4DBF354EEBCF2E8AE0CABEF155ACDC24E6797AC20B388675E8CB391
958FBA2122CB835176E241899C7F13F534DBF8DB886A6F83F126BF019DBF9FC5C8D
959E4C95FACEADD7E7B6A1755C1CEF78D7AA92286BF4837EDA2E794EE2E2277D58F
960E66DAE65897E32BF653F4AACBE2B17AB3AA7FE117E029436F8F6059069B74ACF
9611EC7B1302AFF42B38C72A96141B21FEEB4F4FFFAECEC4F2C2FC1068D831DA3D6
9627BE531812DE4307FFFE8A98B6C4AB5F9E5A1F6956AE39807CD6A18A12AF22992
96335D43F2A274D6D081E8D530C8BBA1CA5B5F8AA11E0E05036B272D9CD053C615A
9649DEA172685B70429A9A8308E9C16B95E6E06789B1E3DD22A7289F05D13BF0789
965F50D6608835CADDDA11676597736C41E7DA9A948C857439F0B6F39845FB1679D
9663C8C14F3C8C5131A469EAC144B44DD3F3DC1315FB627A80587F37A42B211064F
9679780A45ECEBB176CE484A8018D41896F6FDB4E4F4257A60E869F280DE1CAD45F
968BB478526395FC993C9CA6A566D3FAB84B678D7E0F591A8E7D009DA0952A44632
969DC4277D08D56B5E81103DF31BF466629EA658C190EFC1DFADC75D272E7DCE4A0
970C6309F2563AB76640643CCF0A905614A3EED3426DC172A4FE55B76640B415A10
971951883D8FCE87FFD8E1987E93475DA0435344EC33709FDEEA16D732B9BF323CB
972FFDC2F308FAB7D76D431713478E922BD9CA32CF958B8E6B82B8ED9B81CB06BCB
9733AF17A9CB807F8FB2A963450667F7CD93E292E13916FC07B976E7FBD978D10EB
974685D7160102AA8359E260454D8C094C2BD04648FDC58E14A075B6EBE0E861E3D
9756117DA938A1215B0790E7F46B7EEC0AB98C37FF9A54A7D3A6DD83759FE9716D6
97680F4AADC28AA151DC0E7916146343B2229FEBBE04E4650018BB3D3172C2E1455
9773080E67ADF626201FECF58201BC5FAEE3C01E8EBF8781A4F8595CF80B013ABA7
978A2842C6AAC9BB76FCD645F0B5A081B69B5A641886826EEB75C8ABAE54E7FA7D4
97939875A9ED06053C61A330ACBF818BE56FEC992BD5A30CEB78D8CA54FB1CABC63
98002E052501B309D157571BB3BF7E27493D6C2BB197064E1E26DC2FF85D5549B03
9815D53346C86588A0980DD26175314898BD7288FDFA33E44FC77AF2AF116D39543
98213B45BCFFDC83E8B9E2C9AAA46AC3ECCFB07E17B35DE3070818B648E2A69D438
983FCCD284A6955A8D50CCA3C46ED33F8C3A3D686311BBEECBA3CCA1206D01B955B
984A805244D4E5D4F02E346B408F838264C5A056413D25326FF1AADBD21C2130B87
985CB6F9C91420B9594309F002215ECA7A5BCE554CABBB1A43CBD3E76372A48D95A
9862F1237DAE67566A6BFF200E263345D4FBD5A1B7266BC04F85EAF6DEE32ED2D01
987D15F80DD5D8C1EF7E614BB629990C440C0B964B39104F82CD5D0CBB0BC376ACD
9880E2E75D06E65C92D163E7498EB7B0F9A7A6BD9C8483B0CC801C30A31A4DB8DFA
9892DDF2F1EF87634ACC600B066E017BDA91917569E9AD59F33D7564C875EF596AF
990A953F2226C410FB2CEAB7A508A666CA3D94F2C25A931ED9518DF783AEF44DE3C
991733875511D5E6E4E06E3C430D979208B60445757CAF3EEB3B63C29751E3C5C34
992D120E62F4868D87828D191221FA26BF60F4DC9741991EE948B413587CBF50520
993FF5F296B9483EB0E056F548E82E9DFECC2B90DCD5D5EA0958C62A48B1784716A
994859C863592EC99195BEECEB6AA64C2A870D34903722AA7B19B1C7F5126BB74FF
995763EC2285CCB52F13A2D1E95D8875DEECF34DDFD5CC3F18F27E925C9BF9690C6
996263CC22381F06042F0AC415A28EA5302DE6F35F1215B04C098AA18277F23EB63
997E08951EF3059C4A3C606E548DAC4CEF42D2A116C02EED4270D1334B3C7813820
998054DC6639A3C4B25A398D5354F57B7C556A5A95D20FA6FBF3406E3CFA512648F
9996680ED47767E80A0F0F1EA0603CB441476A81B8BB278584E747369C88E4A9A27
1000202C3688C3C2162AECCCB65FEF5314F81E0953BA98E833F84134502BA2C4F0DB
1001CBCD65A0EB3DEADFD9584FFFC9948571038249749CE13A9FF0969100DB588B09
1002901964577D93D0856FF3A078C4DC79FE5B6C1B5A5B35FD22B214BC16E2D7A5FE
10039B34197D4A24A1DC48240C6CBEE2F4FF5A1353A1E8F83209B0310166B96FF31D
100456CC9EB5BC1206BFAD846CD174304627F81638FDE11A6BDE75CA9F346859E578
100585F334A455BE91A56B9413EE7D8AA01FF35499934773CAEA0D32041B04933C9F
100651AAC647AD00541885B774AD4D3634D409DADF2004D8EE731A3E6134D79F0954
1007CAE30C6A6CDD2BA4A9F93C10C94C1F9934917627E4FE44965AE2DDE0B415E0AB
1008EB5D1624171C7D55769F616F73D7812DC4222C2E4D65DF04EFE406BC4835F746
1009BCF26D09314490CA27CA888713E8EA68C130EBB4CC5E23F2468220AA157D6803
10106811FC79435982D29E09A43F7707B821B3FD44738EC3993797469052AA9C0AAA
1011F21AEC2E1D2DB7AF0F65B4C3736FAD9C3A4DE9E72CC92B53B74AD4343D244EA9
1012EC06AD54D945040A6F160A6E1D9F4B5902601647A2811F9D2312FAFEFBB31BD8
10130D0B39593E10DD94B862FF81B35649FB16178D80C9F6F027C2CC3BEEFB474A17
1014EF1C77A9247B0D550BD314240C2BCF0A37DDFF8BAB723B153970CE2849897844
101529D3C6ACC315198B15CD9D3FF34A8E283A5137C42474BFABD43B7C7181409831
10163BC0F8BF0506CC5FFE145289105E80854503FD574F37608D176B4F9B60B05222
10176F4D14D97B85F27066D0E19999AD9EF9B657B24136FDF9061411735629D48504
10181171A1A9186630275E705D61390E2BE3D33D0D97902096587FEA4E7DB365AD54
10190393E3A46D605A3B6EA413D14465B7B8E21106C8938A67E51FE9B1BE16637E15
1020763DBE8BF1D9A10E28389421AE48C8D31A6F424350E7F10804F4626331AFC871
102169CAB26391A66A12BD07B8D761380F5717B207850257E97EA23ABEF5BB35BE49
1022A09FA8CE4B0C101F614AFB6C4EFEBF1254D3B86F55F8B56D9AECC8E381CF1421
1023FBE59AC373352296D8F33468BBCC19EB3185406A09528BEB811C190B99FA86E5
1024AFD86E94A12C600D267F5F43D0DCE259D6D191E425B1CA0DE9175FEF448C9F3D
1025EA82033212ED917388CDBD31A6658960E6CB45B6D7F40653C4802BE6C26ED167
1026EDB3D361647B157A7AB0C0CED73DE07685BC674C59A7CE9CE049DE8DC1B5459F
10278F9C54441B994483FE30A024CC33F093D6FE259626A436F4DD28F37B297295E3
102822AC3F9976E7ED86D6C3C7483971D456883A62A63BB59F3CDF5E1AD6BA381B9F
1029B4D042F69B7B6415B641E569FBF1A127256CE296DBB5629CB8B37AC47C93804D
1030FB58DF99F70611FB2631BB84BD7E34F671EBE84325C35C4529E75239339B09FA
1031313CFDF6AADA
10320000000000000000000000000000000000000000000000000000000000000000
10330000000000000000000000000000000000000000000000000000000000000000
10340000000000000000000000000000000000000000000000000000000000000000
10350000000000000000000000000000000000000000000000000000000000000000
10360000000000000000000000000000000000000000000000000000000000000000
10370000000000000000000000000000000000000000000000000000000000000000
10380000000000000000000000000000000000000000000000000000000000000000
10390000000000000000000000000000000000000000000000000000000000000000
1040cleartomark
1041%%EndFont
1042%%BeginFont: CMTT8
1043%!PS-AdobeFont-1.1: CMTT8 1.0
1044%%CreationDate: 1991 Aug 20 16:46:05
1045% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
104611 dict begin
1047/FontInfo 7 dict dup begin
1048/version (1.0) readonly def
1049/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1050/FullName (CMTT8) readonly def
1051/FamilyName (Computer Modern) readonly def
1052/Weight (Medium) readonly def
1053/ItalicAngle 0 def
1054/isFixedPitch true def
1055end readonly def
1056/FontName /CMTT8 def
1057/PaintType 0 def
1058/FontType 1 def
1059/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1060/Encoding 256 array
10610 1 255 {1 index exch /.notdef put} for
1062dup 0 /.notdef put
1063readonly def
1064/FontBBox{-5 -232 545 699}readonly def
1065/UniqueID 5000830 def
1066currentdict end
1067currentfile eexec
1068D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1069016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
10709098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1071D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1072469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
10732BDBF16FBC7512FAA308A093FE5F0187316F83DDE3E2D27FCDF6C5CE4F95B6EE
10743317BD91B7921F3039DD35FEA387D5CFB6C6E9DC84C178F3432994FC7FAC6E5A
1075ED41A1E2EBA350178FBFEB45944511731BA827167DDAC238FC69A5486B995477
1076C469E2E27493B0B711DF8E267D3D5613B450011921685147114106C9472580BD
1077F531022F6DF5432B2A4EBC51A8032C7F9689B6FA942D849B29709631613DA68D
10784DF7B6F059A19304F40A3C3580CE3B51D79D42984194D4F178801720892FB6E7
107961FF43C63F9256B5E9F4227B1378222BAAD4D52C77462DF01892220E11129C16
10806C9E45BB9F01ED7C1AD5D8B4D72BE0E12969AFEA90FEF170603CDB91CB243173
1081B19A56084D10293B80A35275F41BF78A054DDC98F4A1FFF592463D944960FB31
10826BE5F03960F9B1F213CBCC7FD448657FE388F10104D42B0715FC9571CC60CF23
1083C72560CBB8835A0CA208FE06676B3B48B093CB7FB2C0C53AF17EC5B372A9771B
1084BFD52FFB7062B4FE0106A01A2A1A1DD4EF5C8C7623EC9324A2CB3B402FCC1FCE
108552BFC8662F8A39D5F1B41C97E7CE34E16AC28A1E94007AEA7D4C519399F1B7A9
108648FA7DDB671067244F09C29F95DD60668223F45BBDA8B1C452E930A9F3F341C5
1087351D59EA87462FFB30277D3B24E2104D4AAB873BB2B16DA5B23BEE25BE2C8128
1088C4CF2F4F438A4E520CD864F3EAFB5363753B82978F6FD664A14E5D6F3A929348
10895839EA752FD635619C4FABF1E1454510BD9D6B538A343BE748AE05B47F917367
10901BA5EDB15F1BDBE806E51B294257D7087334165419A6520462D794D670A1D6E1
10913BB03BF689391D056D55AD660D15A386E6D222C9572BDC4DC8A46EEC75124BB5
1092F0E8978FD6031A90E4768CCBF62A5ED8C8087FD66D2033011947634878BDC0AB
10936501DA7E6D96E227068E993DBB0072F037CA4111CDD092DD0CAEC1DC6D0CEEC3
1094B291B4AF285DBA243A3457A855171EA0527DFBF10E34A60D3BE2092B3218365F
109507271A0CFA3AD15205D0D0886AAE1C89807C74C6BB23F55F0405A522BE78D4C3
10960E6C7A2C17EF66CDDD65AB75D03526DBD692FF1557B689A200BB5A593E92DA77
109701E5A82004AEF4402C06C65B21971E8240F87BE60F5F7E0B56D3024B7D49B9A7
1098724C55353C362CB35B720A5405B2B9301A1A0083802E8766ADB7856925D45001
10991FA451AA61F72022FF0419B1650CE94208DEEC7EE3B53ED7F9E995F883338936
1100EA6FCE2E2466BE5C04B46FC7DD9E80E6F1ECDF77599D3AB9E61C00D7E425636A
1101E0AAD63D341CE31564C7882916EC35366208A3C06435BF1F55086D627E06B996
11027C49FF12CC6D0E793EB19C4972C3904ED0FA9FE0C4E05140CBAB2C41EC148B05
110343A9AD2CA401532FE0045933AE0B08BC1F16D94D85420A26A9D32A9F2486BD9F
1104EA2553F2E8B6950F63A1102E9E8DE227BD756612412DB1520358DDB08CFFAEF4
1105AC3597978F43E982BEDBAD042738D05AD42348840F9D0122535E6CE711AB2898
11069F1003DB762D3B15BF35F3B7F593C40282FCDA0CFB1DD0B2B3A8DB68E326251A
1107E4B6B6C559E735EEA2CB221ED8B8E2366B1BFAFAA234FCAB5F94F7134DB434C9
11087033F5ED902DE94FAB29392934E8DFFB00C5D27505CFDB2F1BDC7B10C9379B1B
11098533F17A4369203D2C65B5C75975A65D20BF6880FFDF8043435779F26127B38E
111009399EBB27BC2CC481594BEAF8A749445805A6EDA1DCDD02D7F23038B6EF99C3
111118918626F164B6F9FB32CFFB0D936C11AE7E2AC80543864A65EA8575DE49848B
1112B09FDE687FA8AD27D0221315119A0EF7CB87E6C72A232B51E48F4AA67AB0FE6F
111336C4BA99B3C0C343EEBF2C0E5905E71FB897C0E80C9A3B15A9CBE81994D24580
1114EC447198E94134154F103060C6CCEEC2006A2F7B8A01457493EDB59205B0194F
1115F4859CB75EAF60F98B0A213864DD8407DE4DF86AE6EDC5147FBED02C022B26D4
1116158A8313188C7BFA5F185AF65FA75F0A17DE6A5CA276DCBDB01CF410114E8B17
11175DCCB1486455DDA266A778A9EEB6B41B9DE0F79021D241FEB9E9496DDEEB6558
11187145D3540032DD2F1848CF4AD9F88E67C4B77339BFA9EE3CF75FD78A63ADB40E
111968B3D693AEB0E7AA4E46B84BAF08CDC361A106C566D01FE63AF40D245B717B92
1120FD7391F92B159830ACA6303C8E96AFA4780DCD4963BD98AF67D8511E4E6C6E7A
112132616CE5F6CB270F01B6AC4EE342610E0CA1AF1DFE51CECFF133AD714F5EE89E
1122978C4BF5EA08125733CFE4B0C3853429E910677D568EA9A4A0800AA5D391A772
1123E8114BC600B2D6B2651BBF987CC3509B00CEEBDDBDD82330A9181D209271073F
1124B37241398D70D049B9FF607A41AC70E64B928DEAB1A0B4745D98ADEFB18F2D04
11250C44BD18F8687967984B9D48A5BF27E09CEFFD7953E6D9881A197CD09B8C75AE
112631C9ED0FEF539E4D71E4DE6E65D106975A0F9C57966D50E678AE5EA9FB83EC80
11270020420E2FDB7F4234A3DF285B9D761E1F0A21018BDD9EB84934B808E345BF4E
112891556AE5779EADC1BD02E198C73D1D10A56A0F09F01302BB91879DBB084C488C
1129972D39D4212AAD28F9B24C164F18CAAF595BB6F9EA9DB90C3AC98D0F37C36830
1130F28A9DDAFBD9E3C84928E9EA230FBC0F3C3D05DE4084621B65D26AF4F07F74E6
1131183E59EAAE390C8AC834DC662B06E83A9CADC8B891B3EDB56FCA7252600082BB
1132DCE150610319A3861811339A621DEEAD6D619D475BA86984561F489D052BAA18
11337AF5FF29298168AC79B1626F882CB19F6AF7DCC4E28124ECE52599C51890E580
1134132273798D3013CF390A8569A8618258D3570D2F1E538E96793E4A939293BCAB
1135A9EAB62579E456B5C80CB9B79A70EB36080A6AAECB786FBDC7F19E6543F67B8B
113639D24FF379D8C6C257C2E361FDB384C822DB095DA0F10211D6572E4DE6D4E8BD
11371770868E2752631376DEDD29CC784ECD374D72232026BDF4650B9E2712190D39
11384C0748743D7EE4706B7B31C90E5743E85DAB062B01DA4960E0314D9D51293BEA
11399DC2DA2C67DF7186F9346CA769A0C7C6E6DE1BD9B48709EB87C6E6139BDFB245
114069A02887DF104549CFDDD7FFD86E9822FFFD2DF186512BB81BEE95253FB15FEA
114101E04ED643D2C7ED7B43AF1919ED54C69908A87FEF3C46BE979787C79F885451
11423C658541A8E388297ACE1CE31AF3DC7DE205B72F27EA432387A609D9401C0FA7
1143B53EF719D0BA60B400DD9D02C7D9626799D39C51039B3D0408CBCFEBB0B2EF81
1144220B69B2953E00666BB31C73F11F1E6108C62F4F54138631B9FAAC2C9F92935C
11452B3D9989D3D78AE5CB66BB48F669178200ECEECAAF28DC0D5378238DFB8C4DEE
1146D337C8F28BBAC0840F950DF373EE8C3A59568D95648E33802210A3A563B5819B
114714C059E7F4AC6F426CD4E7B3F1A2F6F4C2FC19C2C3E9DA7D2C8F950D7564C282
1148860C60EADC8F9B71B90DAAD27095804884289E914F0BF17C555A91FD07B13DA0
114966232C27711289C4D5E20A39A4660BFC00566BB31FA6511B763EFBF1CF95AC91
1150CCC63FB618BB886C3B7318CC8301E323EDB4E016F0F7889C4FEDE858094C23E2
11518429D32F5C52CAA03CFD74820F2B956E61560B64CCA58607B300CA9166864F66
115249FC01C8848EE25857AD731386858093E9F87299D452D9C13D06F90E9FEF2C9C
1153B9B78EA3D3F31785364D36B1650A567AE8CF30A7A5E5C6686B614DFFF65EE9E1
115404211CFDD13B3F021E5D9C965BB56FA136C0B14761ADEB5C8092088990E8D0D6
1155B92F39F4E85E71FA38904C93EFB4D7FFA8012920C2445339BEEFC621CD4765D7
115601A9C397BDA9C3C0D0E6B15297BA0BBF6169BF10162524EA71D7CA539FC209BF
1157375314A88500ECFB9C7363C5AE0D7FB44D0D1AFA09F34E57AAEA2EA67E2888A0
11581B202C2FC4017AB742D5437E8BC89CB24A4A1B0DF2453026E69B60AD3AC8EEAF
1159ABCC24A1F4C628D67BBC03985396C05E5DFFDD98A0CD615D37EE0FC2C9173D91
11607F20B0964E1FACA7FEF48DDF1ABD76716E06B403998530C15C434F1FD2BBB250
11614B95E75486B54604D3687C2320FDF083A23C01A79363A225733925DBB954D366
11623C535E17565ACB00D3ACB5116996A172743511888EAA2D69B180A4C4FECCF034
1163BBB539DCD94510B84AB82E9154C93F025FE50BF00B325A6CC4B6974BC3B67596
1164CF605CC04A14625DB25A6EB9E9F9BE93066E34A285CDC45ED330AD2073A9DDF4
11658D3A6739CBF4E846C3BB01B9DC7F01055BD43AA0022FFFB2B93DC850419B4BF7
116697451F057CC0BC68C208DF288E8A1310A015BDD1019C17EBDB42CDCA2509CE3C
1167E74D55C55630B10A7F042F260D0B285DE8399D11D079E91F348317AA3DDE0CC2
1168A8DAC75318B5FEA8A6359EE3765E6F75E58D354B9607034F6A8BF0B22C9F770A
1169F537347806E5FB7C0A6A9325D0519B02A0E7CA47946561B848BFB1C00B5AC67F
1170BE25853D147950FB70854C7F4C8D7C503850F1748DDA6210DDA2BDA36DE9AF9E
11717D4DD3152165C9AFE4CAD15D146B71F0B7F2DEAA5EB3E1637A9CB5C3CF60ACB0
11727E6A11244B3FE758DF42E346A847B6FDCA6B6FCD7F02BE7D467CDC4AA2435E5E
117334647FB8C7EFCBFD144895C0AECD5E0F2AA6375C005C75535C0833FCC123A07A
1174C841157D68C80ED5341FBCA8C83274C751016C40FB73A5EA4C6ABE1ADB730CC5
11751CD781A616C79C2B99EB1F13115FB00A8994DF8017791E23CCC269D90D49B402
1176E1AEEF2326CB2AB44079CE18A1FFA08195CA2AFAD0ED73D907F4FC6422B882BE
1177F7CE67E17EE720B1767BB925E432CDE667B4D3F0483DBCA9EEF9A41A786DBC81
1178AC9A52114892FB6D2FA892B6FDD27DDDB9E173AB1DB7FD612506E2D0338D1747
11791ABEB8BA78BF7127FEBBA18A70DAEEB612B7E48885C76CBB9DB5786C17B286C8
1180A955C89B3DC4FBC16C3DA027D10148F5A2C685255F2D165570BF8BB7EF72A0C9
1181F90C740E57BA036C38B3FD04BDE1119FD3582FAF9F254220CC20532D8C839CCD
1182ADB7ED9483CB784126475CDE0E8B2C602A14D13486C214AD6B53E14779E7DCD0
118359A4C4D62A704B4EFA896439CB66B953822B492265FFA6BE2367DE24DA97CD5E
118431D715A3320B7D0E1EEC35EA1828A218BF3B2B4EFDADCF91DDF152D4E4F92155
1185757446DD8D122A22AC3C02D9FB49D31732A03F9AAC36B0494F234466B3C239AB
11864D41488FFB5EE503F69942287348E09637CCE28F1A6671B06E8F700A2276B2E9
118760BCDD1CBAECFE816F6A4A1277569D6EF85BB49503708F56A8411F76E53148F8
1188A49C0623E3EC3DE32B280F5BD47AE3F759589C2E4DF29ED5DFC587E8241F559B
11894B6A1F8646D292D966CBCF651D751E5C92751B289BB75A8058E9B19C375013AC
11905B810252BF23FF9C7A0A568C6B4E329F5B71003118F3DE19F99760B525AC3D51
1191AC85F6E4E47F1EB7589AC39379C35DE27F4FC5B79B8F5D33049D4BF72A8FAD0D
119204A1C77795B44EDC59FEC22A5843F86D18FD4415FAC8AD44AA7520392D57B7B6
11932C755EF3AE81A83D965E65EE8583F575AE1CC4F50A37F0B3C007771A5B60B01C
119419FF8858951E0E7CAC7D157D3F5BC7F0E453738DC33EB390F31D38781CDA8578
1195F9555EA83FA8BF8BDF55740882D9140C9596ABD438E903B366ADF71304E81E58
1196FF9B51BA19FE3EB5599C6D1787569B44BF26D4E14FE79C1D47F3FD4E573CCECC
1197BA3F8FD36B608D87CAAC3686BE994B252287AEFD9A14AB3051CD4D751F27DB18
1198BED214064F065F20D3FE097DF160C63EA5CD01B3C27788A927C79A21C4F2164C
1199EEE8F38C79A7C68B1C1958F7B6F0F696A203C93918B3C23DBBEECCCB2EF2D96A
1200EF6BA2A7AE40979ACEEFF78FC82EA9B34F6126F515C307783045FE80587D0FD4
1201D0F81422E0B82CCC82BEE3D4189536E2C08B35AFAF3FAE2D5D009DE9BB99598A
1202A91B9B58964B4CC7CB625084C0DC42ED14D685C25C85181A8735C4EA6BA9CFD2
1203B7C8E67977D047470C7A778166FF42BC4B9A8F33C5451FD16878F6D65A47617C
1204543A1E51AC939FB97235FDCD67962AD3CB5985DFA5737B28AD2E24DFA5921B3A
1205CF2CF5FF6687C7EC9C66C4DF80C039DD5965CB1B49D0091ACAC40AA078DF781E
120655A2457EE55B1E0422C5F8074A9D475E194E5742857BD6544A636AE573FD8E68
120770BF3858E463E94E5F5D956B9859DCF1917516005364779BB9DDB66F5DA107E4
12082B5BC512D0F9C32FDC34794BA631A0731CED84706E2FB9AF7CBD4ECD53B6157F
12097B01BFFB519C87689E2A489833D22F3C1D812849B656E6C91088880F135DEE39
1210FBE71EB03E6B5AD77280112F6C3E2636D22A38AD1D34F33B7C327122B9F4BE2E
1211791FED7545D52ABF2ACBDFCF770F8F874806DE0D1977776B330FB8D84A52834B
12120D2BC3FC18BC1885959B65A2B395202A8BE49350C1E133EBAEDF41D36345C24F
121386E4576E68E81EB707EEFED92F6F09FA46F2F54BA766E3B20F1CFBD6677B59EB
121473778BADEBB3783A5CFA9138815187A86694E8965FABF1DF6960865AE363D418
12154C3401F3854DD5C241F3667E2CB34EBBE9A74D890283DCA529E1B63DEA16898E
1216FD241DAA19EECE2869780A8A03BE546819B3C82762F5757E72C0FA749F90050B
1217BDDE78E6D01685F6DCEB9A6F45E7EC9D253ED34D2EBCB98FDE257FE1AE7D39C7
12181171F5425F3604B93531EBD0DFF691A905ACAB90F760AF4A674C500119B91549
12190566246482F9454E3D3927239AD8DEEE6D4E9ECB56748D2965D7D4C59E358307
1220F936122ECCF570568F9C8C8FE5F135AAE916CED51041840BC4B1F403FA632FD1
1221E694065B7F48EE00FE1E6ACAD8B86A11F3ECCA19B5ADB114D0980766991F8AC1
1222573EA9B5C8FB5669574CC0426377764CF911BD316C8A7D772F78F47524112BB2
1223A32F11FA6A6D1B295D96456A0D621C2B8F284DBD8FEA152D9EDE6A68B9CE8CED
122465E380ADEA02DD9C06733A4984AB4F7F8C5E87E58C9AEC65CD3490C87C04DCA3
122542AC5CFFDAF21995432D0115B425B20DFC3AF8206354267FD0A8242BE0B23B24
12267B8BFE5CB5A2340838F3BD77B6ED26A6E43D2F732F5036807505B5E8C155D194
122703E57F31DB974254F3CE52708587825117D646942431DC4A29E99E7DF8193B3F
12282C9FA9049DF511A48E405A3B798F0855493AA0A2777BF1F9F55B6797F27B8711
12295B34A0C897B7B13543477D159232939A052E46DF470936A8479BCA8ED9F97F88
1230A9D77E43F19DBDD737EA504D94AC6DDAF29AF0DFB73AF8B7681E501AE88A6264
1231B879436A69BD0DCF3465BE9D480A31B9702B2BDDB87D647E5A03B7E931505CD6
12327FF4595F44DA7EC3B1BE6C3E713AB806A1737D026A890E77AD137A9317779D08
1233B84026855E4D84BFF2B50ACD7E4E23A50B888916681BE1FFD83128E9C36029BB
1234AB6225DECF2F6DFE22E12A084C27F809F53074A272735FA977D783ADFA5555C5
1235F2FF03C670E2018C9388CA3034414402C60E0D49E121FA06B54E649E73E65E2E
12363376B59F3E3221FF238488418E7B969795938996B506C9CCAE529C1AD10CBCBD
1237B2DC727D9722C198F7BAA1BF583AEE1B88740668CC1E9EC960B33820981700CC
123801F5AB0586DEA46B96A72EBA2568E8A3774935B4A17BB2DF361B4E4D30814CAE
12397C6BABE324FE7FCC67E32F773924E8C995A025948E253CA14FD35DB48A4C9869
124010ADFBFEA18E729FE71A53584FF7CC8E50D04A3700181E0218558C262873C7D8
1241DF424F5457D76FE99ACDF797E542433AAF9E811516AC28698A179E17915BB3E1
1242368DC25C96394147D0483ECB7EC5543595AD8903BEBFB250C76ACC782BBA59DD
124336D393AB25D84A09E19F7788CAA4A9110997581DCA6EA82B149660101B9DA10C
124466A13ACB601596B68CBDEB3F8AAAB3DE33874C0B07B71BCB6E4BF05CA47A7AD0
124569B6F516E4ED20D017CE5D324FE97D7FD2412A73B92D8601B8D716AD4C87891B
124653D9E95DFAC1F27A582CCA123096B12BC1BFD68F432956606CAAD9752102B925
1247555EB728A26DCB480AFA1E87F2990585E477E5E83C045A72FB2DD04D0AFC8512
1248640086008CD6989676719D94E4646EA41508A6A4C25E93E84B3928E9F875186D
1249B2C6079FA73A221FADDED66AA88F5B49208D10C2E1E91E25DB3818D69E69F10D
1250197A16CF687E74CDE885CB876C185F19D120D916E66F88D03B308ECD3BF2010C
12517530AC389495B4E63B70999149C463F46DC3FBB0E77E74ACA0E0CE17172AEFB5
1252F3D559DA122B384EC940CD845E8B5271D2859A12F5E913BA6CCF8576ED7F5C04
12539C4FE5B7DF849BBD08DB1B44A71A59CD1769853CF9E49A3425D48D19233988AC
12543263BD7D1861EE4E99C9D33FCDE02854B0A9CCC24F337F04F9AA4F0292F5613B
12550DC69AFFD972B2EA03B018057A588936F7868AC2FF5474B9A9584F2AB70A6813
125623571813A6B3B48ABA4CB44F6C14E9DD5EBC97D9A705F215B31352711E6DDC25
125727B5CF2AB2C4A1B2310A91711D39A4BB8EDC93361A18A38487F8D2E3C91E5D80
125853C2B713BB837DE72556FA3D1E797EB6A90D83DA02DE424D074B6A8EFF11BE23
1259D9E905B15C4860FEC665B2182CA30293A86B5D1BB1F7230D7ACF88D7C53317F2
126057FABDDDC049CA2CF03E8F0FE9FD160736418DDAD7809A85D3F3CAE9F7C51E3D
12612238449F781D61AE69614F0B307558D4423C86EE67C353E9B49DBEB7B060D7F5
126225AE5A7F64F20D22B4932E86D5F70632334D3F08F22B81472545ADD27C389FAE
1263F619E9FF87185F0F54BDDD40430CC44576CA2A2F3F4C115D3C82E53689203F93
126436421BCAEB7FE999BF2EA19D3B126C073EEEEDE1E841BA512B2A4D8E1BFB3A8C
1265B2272496B09DD88CC7C37EE8E06BB92797FEA48E4845D7EDB60A61206C581894
12661FB3FFFFA610E81026A7AFF8D400EF068D1797F8512F05223DDA51FE18DFDD7D
126779FA8754A79D501826F705CC5450BE63C2390764D2AF32BDEF3E45940774C9AF
1268E869BCF5D5C028278DA373F0B0B6ADA106DBF419FFD5ECA3C60A6C1AD46C6C25
12695C3DC971BB07A23E3F3180DD9DEAEDFC2A96DF506424C5EFA695150D5B550AF8
1270E60CDEA33876B075EF693883F6FB70EF5676B4552318E1EBBD4050B2BAD9273B
1271FA895B3DAB65E4202AB0EBBC633A0810F852824D3FA83865E505F0A226A85D26
1272C7D69739B671A64FDAA895F7C98660E43B18923702C6E02C3B0806BC375AC535
1273527265D76CAB05110C7854CB477F1ED55D0B876CF2421E3FD0F21337AFBEC2BD
127424E8E304B141B878DDF0A9F692E1481FCE9FE8734E6FE9CC2114F0F341AB9E03
12758E4118316EEA0985914711F52F7D2CA2FF11FD9D79C5CBC12807B5992B8485DC
1276494FC91F87A7A8731CE88752D02E4527597BD7485D4B88BADA367D516EE4069E
127712625CD755DE031815AE82EEABBFF8563BD74A2A5430F4B084D7F10CAB27224B
12788A8ACAB00DD8B88D7A3B9F05D769D8328E46C1345B7BA0DAD75302227CE54C2C
1279AB035F296ADF6F7F7E7CDE3EA657F1244C2370C6D95EE876257AD318A92D90D9
12804249B2EF5F001B88C41BF9C9424E9904A28951038318B55BEDDD504F111622D0
12810F9D23CDB090D27E1A7B0B7DEF03C71D5F90523852FB2530A4832382EC10EDDD
1282EAA73D2C1CC08A53F1262BF636D56748631DEBE79B173EBF76B6E2334BF0D855
128374430668E6E49160A25FDE5DB59FE6320B10D00AFDAA328324572B6F767D98D5
1284ABFF8B9418D51864EAAAAAA2872BEDBA9ADDD7F24012DDCD6200E5B322B2FBF2
12853A37639CBD9918FBAC813DDFF7A330CEAF3BBEC787D6B404C88E22F2EA4B0F88
12861260BC45253FDDB713D260F72F074FF766A841C7B258F281C092CF643013ED6D
1287F4C3DB7750E93E405958FD2DFB84FE26FB582A61A029088B6193560370751546
1288230789365755CF9412EE72731564C80661E5D607DB15823CFD57DC71DB65996A
12893093A3328998FC86ED7E2214BDAA5D70F0DF0D54D0E2380B71B9E321131F247D
129037AB1EE17FEC0ABCFC5906695B15B21CF44DE062BDBC4B9088844D4F0E39E071
12910B33110F36C709E62F7129C3089F2C235F2EFCB1820B54FFA88F157C0CE08271
1292AF58E9BEDEEB16F461B77596D9FCA92F3ED5B751FC0C0312769C23E85DB83BA1
1293A1F8D74BC27276BD842D5856664582B3F5414E2213E382DDD8EC2EEF31E79B95
1294C2497A33906574377E7FAF03CE9131A925189213E7BA883D30BDA2D03A696FDC
1295E62DC5B68FC604FC6E612BCDB18482FDAD3EE1E2E0ED7F93C91C81176D33BA53
12966CEBA5D8ECDF838640ED67372D1B2943A94D82DC93AC338C57CDE651DAE7C234
129703630634D5C816277DBC9EC71DC0A862F19B1756A11703DF5DB91E110FDC7271
1298C2EBBC42F233B575752573E7C3DDC8EFC73A6B8DE7E6B8D48352C3733CB9635C
1299ECAD66C97F2DD346865CF018F46B4565883834D989216E3CA25556E1F9E98930
1300394B985ECF798743D8277C2AB8DCAC16B483610DB7C3C90F71680D807BFD5493
1301FBEA7F3FA4293659AE976D036FAD43D509C2DBA3992DD24DE8A99BF1FEEE7431
130231705015A098AD47A51E6D955DAA1A4B03CEA003E0273BA5671F7F1998238D88
1303D0DA4262B134AC9003BCE375A75AC93715F8F2F8A628409CAE9FF9D119301B3E
1304E8147F1DE16649984430EC4BA948BF5C74111D0F8056383D444F6524C7FAD4F8
13056A4FDF445CF8EEDFED560A6C262E24C0444B2AF705926A9E0805A1911F0230ED
13065B2030D956CEC14A102CF4F8E8C3DAC74ADC16C169BC4A4DE75DB3CE82376254
130700FA86DB89265200CEB4CC133B2A993AD95C5AE5A695DEBB05624CEE6DDA6B5E
1308A089344AFA90ACA83A413762F0153EAF7DE15333BF9AF6E75EFEB3964D59E183
130942C5E52A77C87E85E2B3049508C00ADA5D6F0A8EEB2A4D71DF16F3DACD580DD5
131068C68834C0778B469ED2F8C833A1BA9CD0DB2D6AD88C506F5BB23CFEF461D30C
1311ABF3164B702B433E0156590C1FD699268144766D3AE1F8E582ADC19B2D4FEC59
13120DDC8270512D3318D854BE1BA7F545AF9D9A0F3B59710609AD7A624CDCE04DAB
1313095A54E8FBBBB1987D01EB7CD1B6BEDCCAA46A07077655A73707D6902BE02565
1314EC7C6145AF4E52D1073E3DAC7C087A14E9631570901BEE1FF3255B8D501384A4
13150658B67909EC2F6B90A1BCEFFA9D74C1CF5570D7EA96391CAB7CA4E0CFDDB3FB
1316C3591EEB49AB7B154973F0EEB9879D53DE90351F0F76BD90764ADE187C68FEB5
1317AF1B4B290F2F0AA66E1D138B21C1D4EE491ED26EE44CE490F326A0407B0FA267
13181707218CA4EE1FDE220835476614DD67C7845DFB243FD2C5D856ABC7E97671AD
1319B85BCAABD214B9D9BA81B4E925A726A122F1FFF11F9581A3F08645BBC4197B27
1320D40D2A95EE1DAFA9C8A6157E0E79866BA40C0702B26210725AA2239785D9D9F5
1321017047AB62B57F6744B2D4A5D642E971074A2FB1F8809AB65A52E96C51415FC1
1322A5286427DE8C81BBFB5A218090595CC14A86A40ED9709D5752157EA673A4084A
132393BD7E215DBD1148BC140DDC68FF8F3C1AE10894D8BA9C4A3AE55992F88429C8
1324DD9B8247EB0D653FFE69165BE6827825C1F88FB36E69F2A8A3CDB6D72FF96DDA
1325072C65F51A898EE82590678C43FC184B532ABBEEB801F0143111C9941F2B1C3A
1326484DF4C0AA7E738EB2063278EB7B70E1BAAA88C50BC462ED449B66E4E0978C1F
13277DB04568AF5EB412C3E41BA22E8273C1996042DFF01F9702B676E858F4FDD430
1328F6B417197D8999945E9A82DA43969580863825D31F9D59A0D87D0F313FE2C28B
1329C6B97A98DB142B88A45943DD49471C3424BEB1DB482E9650B0B92AC70FE8845C
1330DA7716D68C9C2A14BD68F379E2C9DBFF92DBACFA705F328AC2D196F472A24ACA
1331244A17F00C82EF653DCB067E0F3762CA52E58A5604D29EB1D56B2EB40417E2E7
13329406035A253BC2F539D5B09ACABB048EF1D689A5889B9C5FA6B2E0E2EDB9599B
1333F6F4B355E3733E6BF9B21DBF7580E52526F2900F980B3C28062A33A25CE7F6A7
13344F13D6AAD9327ECC7F3F97BF15C3BEDE1A0DE042E749F648354D061C3E52E7D9
1335F376216E4BD2B782A5AA0D9FDC5551CF660285E4CA7363858C51DCC79F66072A
13362FFD59D6799BC84EDC0C5DC09D9E40056A4608B235F1357D454ED3028322AB8F
1337DAF5CC60F8B5EF4E01A8ECE97C491D828A87CB85D50CD56E4A7BB6DE2315CB0B
1338D0113AE20B4EF27FC486B648C3C0E6F69C1FFAE0C766DFB8B16611CB504FCAD3
133906B8169190CC5F836CB68D7CC34A8434BDDBBEF33E2B778884A8070654378FB3
1340744459C9FFD348B2059652D47335D7C864619700681D45A39F068430F8DBC4F0
1341D1122FCC17182216F62C82A2800FEAB2247A07413B3809DBAD5A03E1F1968BBD
1342B41B98142B9B0403D882A3A70B334F0365353E51A7FE4309DE4EA9BE3B695601
13433CF86249952A437666BDFACB7D272F200A64B9C09A125287FE2779E950687EBB
13443EB747653C8D95758407DC3AD8C95AC3D2E18994156FD13CC03A6653EC7A2993
1345F9893778089FA63708B0E3942A226A5289090412CBED2CD71BE93DD4CC56F095
13462E41EB41DE3CA0F8953C28C3285C57B75C13CB8A7E588054BDBF3B5AD6E86965
13474BAC32C54CC88E2BA882A887BD84BBC8F15DE986DC2118D2DD0A0E154EE11815
134865B18565F5C97BA8F5753324CCB5CD8D40463D909E832CAD28E62AA2250D8DC3
1349120252A10404200CEA8A2B67CF44676E6003B7FC2AC00ADDE1227724B9E8999E
1350B5A4E94223504B52575111E828E4AC03833844683B64101AB5D91EFB4CC8A822
135172C394436D8930F1541359194EAB8F44403958F415678D3EACC777022271EBA2
13522A76DC2E2E833B426A15D5AE648101CDB8116D353A837D466E4311DD86F1D921
135364EF76C5CB35B5B0E4B8B1B93861E03C1B635391276D77ECFCF247E714CC67EF
135472209891C418D1472541D68A6761EBB440E360881E993D3FA4E29CADBFE733AA
13557C260797DFE27403E70F6B1D2E493A1C55B2381AF9A815808B5081231FDF30D7
1356CB3A1D091A4B6887F9EF692C736AB5770BA5921D48DB3F196A4515FEFD4317D5
1357BCBE5394CB5EFDB4C4A972B669C294966E5D76171CE5B903E4D8E6AE50C5C075
135837C42B59E74CF491556B618191C3489D11288587FF05713B18529C7C7DE1B9FC
1359CEA7667AA32EC4F02F452F9F20E54C89E071ABFC4155ACDB4DF3900EAEC25386
1360E14C88BB174890A966703ABE3B6EE4E229882DD0543C3E33025F072EECAC34A7
13617945C2D58A721E42FE71F1A2CBC59EE8278EE39F6BFDAE2AABA5562E0970991B
136275A3AE1B2B0CE3B8BA0E32F6D281990054BB095B9E9B128D54E3492C08380208
1363B6FD878894DE6F487363C826F26F5B810314E48E86C933B885D21887ECFC7FA7
1364711F256D819274209A0E08AB6E147F7642D07C97F92E70699D88ADDFFC941A17
1365E521A3D5E3596491CF5D9BB95E483C353441CC4748A59F9E49C79968AAD58F19
136638FE5E275EA22403CC4A287A30F7B616CD4B31519AAB4DD7237916906B59CBCB
1367C275E1E993B33AD6F76E945DD4CFC3CAC1BA88E5CF9D15F03212207182AA054E
13689B53A2469E76F128006747A7E3E95720EC90B43BAF6E016205435EA4AC8C8303
1369E1E41BF20358CDA809B88C72AB0C2011A6C91A884D542D92971327564E175217
1370A40ED9EDA6B45192C46B648215A556591A5C8AFB8468947B8BEBFAB854983A44
1371CB88DD24D3C8920383944E2FE13C18A45D4A5507110C61FBA11945DDE8F0E5C6
1372265F450C30BDF5D3C95F40573B139857539F01E8C804BDC8DA9306C133E7FC0B
137366F52013A1D7C4BBF2B2E1EBF80EC769D802C7117C06AE917206ED17D13A3E95
13745C987FBAFDF8B1B49E00376E8B4D60E9F2B140267A587BE8D14B1A0249C2B1DF
1375003533FDA36B565ED493CD1A807E139F6C2CE7148B6FE62615731CDFF1EFD40A
1376A79DCDDD7F4F4CA0D00DF277E7A38556B684A32AC4A8B6998EF6C1693F043E31
1377374B86213BF7CAEE905D239D358FFCF91EF2F34DF7E0A1A16832A54640D42610
13788C77E6BDB82B862426F153B0C87170D31DA509ADAC29EE7A614EF359D584CA36
1379787DA85840A14036378E25A53F907D10F7416D5334705DB9A111553FAF2EE20F
13809C3A0BFE2D3BE88C28899043C8293D012CD8E2752F30A883C2287D5AE64D00D7
1381443218C7F45449B4C9B2BCEBCEEBAE0AC8934549F5E27BC01AED860754AB4962
138212C42C1E066CE0B5726331F64A1B6A738F4D79388076AF52C46CE481988B5341
138385A8CFC7F9ACB1F0647D33B762CCC7C34F91BF607940DFC09040775AFC3FAF6A
138441E89010D5700942F78D5F6E159CD13806F1F62C28EC0BD6F40E4E812B50F088
1385A20C82231D47C911A9F4213077793947F6C8EA53BF2763F75779BBFA65A75E27
1386791959727522E48FC28B9C649BB0AA1DFF96D7681CE5C8A42632EEC5CB7405FC
1387167DAB24900FF3CDFA2FADEB8829283B73CBA2B1A95B483CD3E6F02C693AAFF9
13889C09D3D2DC196A6EAF720FDFE7C060FECB0392610B17EC0AE65C72D89D892694
138999CADF5E3F60F6571E29EBA897831B8AB7253557713BA2529465C615D848A1CB
139057633090AF2993CF37E19A97094B8686238056F22AAAC0CD81034661B9BFF73B
139118151C4DDCFCBA332283CB1970BF1830DB778E626626DE94E0A8004E5FD830CA
139293E4BC3607809BD56C75B558196999C92E7325ECDF73AA32B49C49C3C5FE4B95
13937F50AC40FD642A52CF12F3547ACAC754EB8F7164FE5624BEF7160B14258EDAD8
1394E26A181219321F2AA523CFCA7B2E12878A5E242BB7BA5C9F22D0C5722766C564
1395306F713ED39E883D2A7ED68A0D7C7EFD64EB39FC189A0C7FF8111660A188E19C
1396DE642C8F2B0D284AC2B52405206A5E1A449319D94B3DFA20DBCBC522B5D67431
1397E3A072463B59BF356F924434B5AEA53BD49298D25738AA79AB1E274F0A7E9330
13982982789B56EE39AEE8DF359C968C704C7D3B8FCB09FFC69587EEFA7E39DD5370
1399FF513753E7518954525B083BFA191115CF310A98EF5CF0C2540265031BCC9694
14008C6A3F1A053753838516389F26ED5D57BE285F92938D59B0DBC6047C0439E127
140155CF071FE044451EC5C557F6CC29D8C5256EB48AFB23A0CCA88307B7E8EE1E45
140291B46854300FF369C6D84072D4D1625A0613CD330AB55B0B326554909D57C7DD
140373422A8588FAEA378B917785E75F25E4F4183A36AE15C7FC2C3E2C6E890B113E
14040B3FEACB2A3C5ED2F7E5BFF91E8E273869D4143A954E6A5C1012A2FC7839A878
1405B86D878370EF71ED0A7555E8858C68B1468E130C1CE3A6199D93FAD963AC0877
14061981237BF431B598966143C8DC7F3B802729DF288A39EDD5B06F0F808741C6AC
14074D59EEDEE8655A6CB5FFFD911D8A942590E4BA2709403D0741C70B0FF9FBFA7C
1408C3FD928B5B265DEE100172E5E917F273918C7941AB9071E1C3EC631AC555CE9F
140935F88068E213C0F9A4BA7D133755EFB674717B4FF225AA16BB0B7A930D7F4474
1410F2C9C784CB7C8C0A2F2201B57541D25DB2C2C8EB11D172306F7F912149C2E61B
141140B0A570CF8A47F792860E4CDCBEB9A05B511E4903921CB80EAEB5A3B6567E14
141271229E7AE16210B7F307E1FEB739554261547BFF5B559B88CB5BDD64124817D1
1413AAE0DEDA95D830BBCFE0AE34A90A70E42BE5E9A54D420B7F15D678425F1F7408
1414B0A45ED88BBC61FFF2433D65AEBC21CC21A454F416913AF8B4272F7E20CAE1E6
14150AFB2D16F862DFB2861CCDFE73BA66BA95636004349740C2E9292EA3C326F077
14161A69BE963D955A35B72920D063127E3C8DB8655C089312F094231517A9198B70
1417CEB0F01B22DD451966D72B2152947AE928D38F39C34EA1A6DCAA758EE660700E
1418351A8E433028CD6ACD63B6745E0F501E72E3E3A001696B500F83B67E027E47C4
141936B251893D87A5B646C1BFCC94F2516C5A82CA364FCD3F128289F1DBBD0E1BD2
14208D641FBA92924ECDB132C1F89BA3650DAE6E68BAD856CDAC195A70FBB0D9ADD4
1421BFE9194C5C2C525337AC29B8A55D56BB2BF90C004F1B5B3842DB2581E728BFE7
14224112D349EF2FD56CD145DC9CCE9F8364830E466E60F6F437EEE13DFC07D8009C
1423ECF876BCF50BF9C60CC60544EBD3BC42EE61F0DB1ED1EB920CD367149B52B2FD
1424353B4ADB2C18A087AA670E492BA5FAB513AFBE786F2A729D93F28D282A2A1945
14253A0D2565D395FB4A07E97F04E1A50AEA7EBCAB7D5DABA2603BDCA8FE770A4012
1426114B736C19E1649153A74C74E7218A0A031EAAFD8420A712DEB1233036455045
142718F9902DB6390E82EF280BF3C104B4E25EDAD22880D74EE456D1E5225D683D5F
142813E8DA2C4D1A8A1F456D9A3887EB3D9ED71BBE682C7FA3AD06CE4F2C554DBB72
142971FCCF5A8D945387E9FA42BE9D774C44FD296270FB67B1004273051EFB74C2AC
14302E215CCEA6F18AADA4EE6B94915242B113F094ACC5D837566D5B49C51FA2012A
1431792357BA0162EA6D04C7106B60E25EDC02CC4FDDC90FA314E4D9DD972536C486
14327A772B06B55C1545C98E90E8104FD7AA76B0DC12C7331859B6DFD01FF9022F05
143334FCF3DB906EDDF0E8
14340000000000000000000000000000000000000000000000000000000000000000
14350000000000000000000000000000000000000000000000000000000000000000
14360000000000000000000000000000000000000000000000000000000000000000
14370000000000000000000000000000000000000000000000000000000000000000
14380000000000000000000000000000000000000000000000000000000000000000
14390000000000000000000000000000000000000000000000000000000000000000
14400000000000000000000000000000000000000000000000000000000000000000
14410000000000000000000000000000000000000000000000000000000000000000
1442cleartomark
1443%%EndFont
1444%%BeginFont: CMBX10
1445%!PS-AdobeFont-1.1: CMBX10 1.00B
1446%%CreationDate: 1992 Feb 19 19:54:06
1447% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
144811 dict begin
1449/FontInfo 7 dict dup begin
1450/version (1.00B) readonly def
1451/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1452/FullName (CMBX10) readonly def
1453/FamilyName (Computer Modern) readonly def
1454/Weight (Bold) readonly def
1455/ItalicAngle 0 def
1456/isFixedPitch false def
1457end readonly def
1458/FontName /CMBX10 def
1459/PaintType 0 def
1460/FontType 1 def
1461/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1462/Encoding 256 array
14630 1 255 {1 index exch /.notdef put} for
1464dup 0 /.notdef put
1465readonly def
1466/FontBBox{-301 -250 1164 946}readonly def
1467/UniqueID 5000768 def
1468currentdict end
1469currentfile eexec
1470D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1471016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
14729098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1473D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1474469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
14752BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
14767DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
147777B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
14782DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
1479FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
1480DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
14817AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
14829F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
1483CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
14846877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
1485E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
14868903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
14873F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
1488EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
14890E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
14904046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
14911805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
1492757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
14930FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
14946D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
1495E067598E1B8B78188FA4BCFB0B51692D07B0BEBB930C6F0997B437E2C51B876B
149661A563A2673932C2045833FAA35DB22ADE12102335D5DC734AE3AC5EEE6658D7
149792EB62131E1DFBA441F53EFF9021D9D4C491F26BE8F54C61165CAD778CE8695C
1498EEAF70E3B20C64D4C2B34A084B5770BAB2A974E898F62BFE90F132A37E2DCA4F
149943E13DB13C94DFA8ECE2B7374827AE168634FA007F8981ADA046CED3448BF453
1500FCD9A4F194FA648F9FC0971734BB69CB75348A88CC361FF06E984C86AF0EA429
1501DAA5808CCE3583664AEFE0C59EDA04A147FB51227A5AB0C13942323E9B3733DD
15023EE7DF7F774DE5D0D0980DA8C0192983F1E3EF18481EAF1EFEDA0068BCBDB28A
15037FC7D9191EFFC574588DEC1E180341DC959F8EF56ED5B19F50AA82A4653649B7
1504CDCA11A1FF27AFA7FF189A7E8A7C099AEEE0CAF3E121798B2721ABE8808D20A4
1505AB6E704C0C376BD242C4966325D4C939669E28B55BC335405C400A9983B89EBB
1506B13D8C5F3A148E38E9ABD86D0171C927F1051266CBBD5C5D12522AF7CC17918F
1507410BABDD5FDD279338E8B17434DBF20B8E06B58D9E13B731E3C07E4CC350C431
1508CE2034CB23828A19AE93124011BF053A3C5705D9BEF6D95205FB8360391C84B3
15097C6D719C0FB459A312AAC3C4256EAB293B6DC729CC5070524D1BDA41091E8B42
15102B6C4A092995AFB40CCF35730350CBA197F3D5BC5BB83CEDDBC6FBDE23A885CE
151161D416B3A6CEC46474A0F42D5B923A61832262F234001DBCED9A7A00F5511F3D
1512C2178422A46CA5494AA8C37F51C40339CF9392A7098DF8596EA97C440989CA06
1513EEEB5025B29EBF6038EFDDFD6F70989D63440E9C14E2A1040FAF427EB41259E3
1514FF3BA255BD4C04BAAC47326181EC7CA1FFB32CBCAB92B1F8CDE6ED0DD3FE6D5F
1515EE14B739FC25BB13CD94A0C0DD7CEDD886AAC62248C64B8439064D1038886DB3
1516187F017A79318B69963296B4812128EACEFBAAE983646E021F24BDAA2B78E8FE
15172BCD5BFB302103D7DD28668DA7A60C446A27BFF8D6C66F4FBC61D271B91F0470
151816F567DABCD1E8B04CFBEF602BD9CE44B724B3EB8D30CE573EBB13BAA047F947
151990B24F2E49C20E2474EE9D019565E6FF25BDB3F74DF05BB9E148E1C5883A9EA1
152053AD383463F47D6C1077CB8D8DE48F71A5D42C54BEF4C0058EDAA735809798FB
1521356002E6B41BC6D5E3D3027540168761334720113FF02B2C734749091BE71BE4
15225DA61AC33554AF15E6F60EBECDED2ED271C80B5C4F943ECFCDA66DB6165620AB
15230360CF8DD672B0C03DF892BD397923C6855938CB739FE4B3815D76DBCB1C8A22
1524EE4A86AB55FF7994EB31BA410DE548B6276C354EEE51D5BBDBBEF76E9DA42C02
1525CCB3729DB2F52BFC06A5A030F32927E2215BC0C86F99D9F39C0C4E342DD816A3
1526B51AB73808F2545F9C55CC3D352B263E37D3D6E47854D7508D29BF6B52CDA83B
152745C36FD67DCAA7BD22745B1AA86908ADE52BB14B55498AFFB5892A6BC9256571
1528575183D73B178FB7B67307222F6165175519E7CF674964F2131FF44528D21025
15293A624A5AB5BD4411386573C91A067186318F266B2EF29918160A5F5AFC3AD9C4
153068F5C559617D890FABCDDDEEAD20FE6658231877FF9B545C2042681D7FE55EE1
1531BA15672861CDEAD8D8912E54EC0E7220590889C891E619704210F18E1DDAFECE
1532E923F177F11CB40633F4B9760709DF4B36D503CB983B2F03F3AFEBC0555EBE77
15336EA688CD50AAE49D66E039C732580CB40AB9DBBB0CF90031855AA61170350429
15344745F6356B0E41CDD4032CAD246852114729067E2304AD100A1A93068EC4CB7C
1535D607190F2FF5BBFB344D34907EC5240F250807DA5AB47E80F790590286049653
153688286A3CAD9FD12BE3F5D0547A166A0AD59C1EFB41C0093B04737319A2ADF9B0
1537312841786B47E9DE8A534A26ACE8E47429430BE234FACC6B012D459D8F204150
1538E2CA96A46FBCDBC271639C57D38B0FEBCF6C152369A73FCAB8FF6411585A0CED
1539B410973B3C0E800320CEF2181F8FFE5FB711464FA52C6D98511C4B33FB9BF5EB
1540800E3346C8591E5B941F4A20E3266804D728939CF653CF9BB16CE22E987BDA2C
15410EE6C0D9E9D1E81392F5E8A5499E97C0105B0F5411809652D406AC8AB76FBE20
1542366AB998234BEC5C8BB66ABE2AEADE28BEF7FA5B9C628A7F2C315F5013D15264
1543A3EBDD6C1739B3F0B3BB3371B9140AE771AB86CFA74695EB191F81788594F6E2
1544C953003ECC01331A8044C1A925FC8B79CC48ABB9609FA9626886AB2AC449A171
1545325D08A1B286B46119AD1E2BAAE747D8CAA562ADDF6F432DD9071DBA9645DC59
154609D3903F39A2712AD1BE871D18B8AF9BD38AFAD32B216AEA13BEFD9A0A5D185B
15473385DA10D2D42C32E6806826E8947C3E177172ECDD4FA9380AE4F09B23BFB954
1548FCFED455EC8BF93CCF7628BADEAD05250F7380EA2AE79A191E65183E7A901FAC
1549DF333A1D645118CA7FDD838BF35598FA055189A93F3EA6D0AA6AF3F89889725C
1550845FBE53DF1DDAAA1D67679AF697A570763E122FBA174697A0DBAE2ED8C66637
1551248397F01AF8AB4CFD80DCE9F29E0064542F4DE88A2AD15B0FFFD02FA09D8F5C
155209DAADD0FF16F547AA17F5DA9768416A4B66887F2B8F39ACAC89743A3A06AAAD
15531B1720B5DAD72C09D75AA6F4B78425624500913BDD175204B9647997099AD757
1554FC19EBEE8B0E6C40EFEDCEE15D6B5FB820EF4A889B11AE989A23BF390D2D1D96
1555A230BA563188B911F17447E331E1AD1D6F2FB13E1B83CADCF22EA3650C94E9F8
1556504D1F24E22EDE0A65737C22528FB52072B21759BBA80D390E87A53595AF6899
155798426CA645A7894A60EE88B52F9B55FFB1EE2B0896A421E929B0AB47A5F4A72C
15586F4A4C5EB84A5CCE13BE620F7E109C72A196CA073B8192B3980F27D2C4461BB6
1559360C074C3BCE043A3DE64024F038835536AF5DC58C1EE004DE6CC7DB1AF7A216
1560A85A082CD0522D8E0C896AB309B6BA98E83780B9967BCA5C8BA0D5AF2D7AEB88
1561A6C69B01680461A2DC4073F549EC9118212B8125FB2BD5289B4C57B1ABF5B26C
15621214D50D335996FED213215561E44C2257B4464A887F333D466E492E44D25584
156383A269EC5F51F5C407E700052B9C349B37B3B6A7E93C1B9B9C3B32F3993DE385
1564636D496BE8781D22DE0031F98D6B7FAAEFE76B49460D2CE096AB03878F1EF424
15650A5A160BAC37379476C178884BD55A841F000652A430560610DD781E63C51AE1
15668648A4A3459194B7FC456906DB1177EF405289C2EC496BBD4ABF1A913F31876C
1567380D3C4A436B3D7CE97E2E538E8837D379D16232F292C7425763AE75482D1372
156868A8160E6A70DF891EB308FD3AB9ABCA346E4FAD5F5CF78A4E3DE21E558ECA72
1569098F147E6F87F0F9535C9DD793B5A3C3570A303B9E4A73B4B41A1BFBAD5E8BC5
1570E5A9DDB8C63BAA30E474DB44C78FC1F022B54DF5650E71F60FAA8332C9A77FF2
1571F31FF3D589D9D39A98A4B454B67D64CA43A8C86207CA3BCE340E65A5113AB662
157210581682ADE7B1599C14E7B4A882A602B031728027EBE6FD135B99CBB5AC2687
1573E49228F18BA68C72E325BDBD2861236FBA49358A8B3EA5CB54A8EC2E8ED54A7B
15744D66838E41AA8768DBABD5890A70FC402C8682CB4C40959C523CEC82B1555A80
1575235EEA1BD2DC28761071BC767A2DE1927973300D5035BB879B56C8C64236201B
1576ECB15AB9181EFD6A50F96BAAC35A8901F070D9251CBA2EB826994AC95EDAA8E7
1577058A702B707C261A1E3700343BFE3585DD1D8DF4863564976F74D16426D44278
1578C4DF38CB2ACB8314CF66EA8153610CB4A3A14CADF596EC875105C860D15E06D5
1579FAFA54636C90D409EF8E0DAB451DBB2778F9FBEC581BC7E6BFBBADF12E9B239A
1580F56C5020C05B5399B480BE3FD9B0AACF0AC7B346B48AD3A2EF170C7DEDFDCE06
158145587A0BE775573AB2E57EAA3786CDD2C9861D1226CFF342DC2E5138A629B6CF
15820B75FF5C6FD8DB85C547F46EA878F7700903EC8AE67F5907F8397A8A61901574
15834329D8F79C56565FA7DF824BA44E6C22760FDF9DE3107D8883141DB3CEEFC28C
1584770C9930E982389F2EF279566B2096CA205001CA3E045854C3750E67AB8BFF43
1585F8B07F2EE55BCEC65351BC2B085F803FB9BF5D7FABF3401F5B364F83BC8A97AD
1586B74B10868CA83F97017925021B8F919A1F50AF8CA08753D760D410245DC30E9F
1587A7E9A19C073E7C9BC7D7FEED4A6B2CBBD781214BEA20BD72A07B701C2066FCA0
15881DF7389F8159596F96778902346D0F40EB3C024372307BB97AE619E42B5C3DA4
1589F836F926EC44617B3935C58A28CD67D0E3A438954E915E0BF6172D1CF1F00539
159027AE36704D5B4C1BB7565DE82625267ECFE71FDF2F78E5E083AA64A79BFD5DF8
1591017C6BF7D4A991CDFBBC6483BA8DF4DFD414B121B01FDF6F068980D30CC635C3
159236418A8CDA06D1CBE330E751AD061376331BF1F30AB81DC9C673172DABCA64F2
15936DD69606A9B91587B8B57707B36A1C1E734E4C9C738B0F7B430FDBE5919926AF
15942E464A8B621898EF381022F04FBAAAD5184B5868B56F105D1DBEE45AADCC3D80
15952C22EBCE143F63E5BA24CFCF22A05ADF1F35DA88C03A759FA9FF867A8E37A821
1596AD7089706B432AD35BBFF303D738C5C9654205D95DAC3936AE8363F6C26FF08B
1597C87C803729A0F44C7A65E0BB3CF2E7A33B7CCC1EF51558D8FC80981B922BE986
159887A641241B0A0BE8D9F09881208EC7D62AB094D00E9F572AE27D536325FD421E
1599D010EC7684F097E4AEF2E6D203AED5E0D7C42E11FCBC051E56D25DFF8130579A
16008D745EB13E6C7AF76C10E81F68471315DCB58E6155A9614F8F0BDD64D37B8456
16017CF46A233A62F1DB9309E29E21660F9648DD1BB14BDDFF43693C1DA4E3B302E9
160215CEB125750544926E0AF982A38A3A4B082C421C0FDF6ECC39C569F97BA229CA
160343329F348329BE708C97B98B189CBCB2960D71F1CA73CA1EEB832713E627F870
160469B0DCC3CCD8482EA3EA7FEE339E0566108E46BE17B52C8389E300A41BDEB1F2
16054D9FEEDE1C077A5EF20D8F80AE83BAF2F632D0E4B44AD0D0BAAA968F2B3D2168
160675F939ECEB31D2E7811FA0A73A519FF0CA08992D4FD40E7A2BD53BF94733F41E
1607789BC5A7008B72255236B3D042996C45E4E1200B314418AA4EEDE6D718567526
16087BC1B992974BA3A8057E2298952B0385D7DD5089E9D7C5B8FACE9B09AA441594
1609CE6501B80E7CFBB0DA29C2014AE02080D8D423EDF27FF4328135CF4D494EA175
16109CEE197C2CA22519AB42AFD301E9637FE98A19485F8A2B6D24E05FB13E66A9A2
1611C602FF16147AAB158E8DF5A1FF820D8B7ED5A3F387CCDF247252C3D68A5E37BE
16123BC5DC42F28C8F776E9ABF518407B2975ED2647B3949B4E199D2F6E174971828
1613C7D3BF0FEE47A33C97C98ABFE47E87813722BF3F9B809F6F98D2771B8537A541
1614EBBB8405B38BE6865F4E6B7A3D2BB0C783B1B73BA5FDC9EB65065EDA3E1C32F2
16158748BADDE0DCF35BEE32CA8B537DA99007625EC906F8F407912655DA1A05F01E
1616F6EB582FF37089852921EC8AEEEC1BADD79428965097B82577772E53F18D8B79
16170CBFDAE9F71CB9D66FCBEC1313D7BAE572743C0253470B42805ED77B125BA5A0
1618EF873BE7490A3B23231CE6907327E93DDC90B656BD6D089C6DEBA6E0937CD89C
16191C831543C9C882E1D6A67AE45E2DEFF0A01EC9FC670F4942192862BEC7247F19
162059D87F0834EF21A434C8E9E9876797A94FA6E8AC226376F822D07CAE909A6FD5
16218630BDE38D97097E32FF6119728D50F88960F740DD78D73B291885748957D025
1622219DC96237FE9B64D514EE7C6BF47DC4B49E4F4AD10AEE0D3A779F2D977BE792
16238E15199C8983284D3F6E6824BEA40662EE2289BC4CD6198C8BE88788AE7373B7
162463ADAF8E4D8B78AE39773AA8DDFE87AD7C2059B9D72AFEFD73B85DA2586545D0
16258733C2E16495B7B1F51B31268887EFD3D47DFC5CC038A46ABC88A627DA32BD4E
1626BA3FC33EC0D95C42609DA3B413001139881D68D5E6693295EADB4C6D56CA04F9
1627656774723158F04CF91A963BE122701B89714087D03F331996F4E0F98D758E4B
1628AA6B3DE1BACFC6C277EBC7CA9DCB09B4D741ACAB3792DB72C8D7AA2553980E0A
162939713FD6D3800D82C7003013951E35DC5442A52819F5D2C5EB718D42B1B393D2
1630867260222949356C2B1B8CF43D249A5B535089CA0883BC998D7BFBB398926D1C
1631FE753DDECCF869EB97182F3EBF918197A1BC28448F690E6B0942602D6486DFAA
16327EC1D10DA996C972A3E0E0A258F096687DB95BE9376ACAA49C70810C1447FC50
16336213CD7284772C95455283F2A5EBFD4D910AB726B832480A95D156F7313F35F8
16340AEC649B0D6FD7C776D24F3DF345209D80B9BAAE127CAD607E11D199FC8B833C
1635C6C254388C6FD46D2E8BB6D8D5F186E700457B1842775BF1CA7A1C1F225181EE
1636ADA71EB7B0491BF23D3D324C3F8265B485906F6D767E2CF449CCD50BC0377B7A
1637F9618B7C6A52BD93859FE594AB6D4C1ED7D30F8E6D0341E6F49397288A254E5B
16380AFC33846C581D2DBAFB8358A3CD88CA1BAE004512EFCB89D726B8A4AAA78925
163967E69B122A7CE8A86C1EEB4B0678AE1CBC2F31F0D033E529A8503AFACCE19D73
16401244EDBC161CC6730009B023DE1AB46A323D4C03E5562410A6B6DC15B97D6AC2
1641258C10FDFC17AA4668BCCAEA7392463DBCE1F26430CA44A53680B42A7197800B
1642574ECF1C1E496429E37DE2C7717A304753BE4E443D6D8B482D2610252C42AA21
164308F9358BC6F57F4840641B2616D3F758AC5B0FD3C69A077B5D8268A11D535915
16445EC3F3E303DD241D5876BDDAA1BE799711AA04EDDADA0353CFFF3E9836DAB250
1645325F865FC146CF262039A33F346B18E4AA1641F2B4CCC073492F73F8346268BD
16467145ED165FAA332554CA84A82913A259EDD0FC5DFB10959F0E80B6E3F4840668
16474F4EBAE2EE71C942006CA58F45D947ECEBBAAF002098946CB2258E6E71CF0C3A
16482A2709CC262C80CA18D2AE777FDD00224BE90CA60D12C6778EE48C6A258885D2
16492698F97B7ACA2142A06AB50131F3C565739D8523E6D0A9CEA0B18B1593764129
1650626FD058020E5BBA72468B644AB847A13A87E71907C9F753B41CE36D5670B8A2
16516AA29599751E337387E63FB5099068C876E6AE81D47EF59BB82AF772BDF99948
165214F3E8D90005F6D095AED8C3C47D6F136B888B53CF4341BB1A18DBBE2C155A4B
1653FAA06FDA4BCEFFE8C2E77782FB062C2FF89FA77C07BF3F39E45DE3EEC32A932E
16548AD72191B7A6268726CFCE67A0E7B74D1D105AAD8F6EB5F518FDDC27A218789E
165510C6D56B2469C8E9D724075D494FB49FCFA6B1EF250DF13599BBA5B8194197D3
16560F17F383ACAB237905466228CF4DA095671A66012C871480313558E60F40A36B
16571C206152EAF398F8DFD8EC7FF80FFFF7A426D335CAB6589CB823D8BE6ED4E5BD
165818F60101BC8C85B29A9677F8715F6BF5861E20B0BB8A2C9C12EC0E6A20566777
1659A8B1C23A1C1AD7B4705330C254D9F4DB7E2B00B56A93A2ECEED51EF7ABCFF15C
166022A92196EED3F0BBEF2ED110152510272026FE777198C3F9406419D92584A7F9
1661BCD1DC02148236693B48EED88CDDCFFBEAF7BB26A9983DDDA5A7DFC3B4C1A6D5
16622560BD180419ACFD74D5F66DD31BF1B934E7B64E748CC95151252AD15FAF2005
16636C734D30D26DFC23718D00C9FBE113A40A9DC5685F07A0201FA748A4116D69DD
166465E10AF83FA4AD53C4130846C703EAC6748EBA15ECC44BB4E9402CC4C4B75B78
1665C0CFD428CD377867C74EDE17833D69F8840F2CFE5A1817A41AEE75C7FF288EBB
166631012604E066F8F3E1783A94D81AA9F5F64A749D457A008DB5AB146114221258
1667B314DC5738630CDFB4827F9AECCEADD888ECB3A7DF47022A6C629452FF54E360
166870E38E72E4AEB4F4660B3DFF80BBC43F3562BB7B254FA86606E7F83868F9A0D1
1669A9B2DCF267B8696F5C70AD811F88A7F16417B3D958AC1DC5AAAB1EEFE04F6FD2
1670228DB732D1B4FF62C5C27956C2AC4D9D8664A07B9CD71493D78A3C0F157DEEFB
167104E12BFA1A2F4CC6CBB02E4CC5CA3E8BCC3E0E2E1A64A7B1942E95022BDB34E6
1672157DEFE50E41C785CF9AC73684BF49A3541FAD59A1A22F17EB6B6523E9397506
1673F5DE864EC40EF1EDCDAC5683F0025A2F9ECEC40DB69E03F39C09833162FEEED1
167450211931877DFAFD1AD95FB8B05847AB51C95338DEFF5AE18EB3DDCF2A786F6C
16754D38ADCEEB944ECE60B82BB068318306F7598B166962800DFA7CD3518C1EA0D6
16764F5AD48208EEB8F60DD5799203342229E9DE9688DF1AC8B199C5BD8AFACB732A
167779081866ED73082CDC6E391F618F36545F59BBE9DECA4BF5BBA8572A66308222
1678F3AB21A2FD400E1D5F5AB897307340A274606D15657EA5D19FCB932F9F037F05
167903C9CCD4D9A79339A1157B2D725810E21031FF0B07319666F4154787BE88089C
1680D08551FF4D7FCBC31E1B1C33585D62D185F0146FEC998E2A16DBFEE0C1C60E5B
1681E196969E68B35BD6B41CFDF8065B8D483C9797E2F847E81E44ED315EAF1D3C22
16820B61209F1F56A22C1694AD16CE228305986E55661485A005935657DDA8DB7B2E
1683A5CC38CB5583C0DD1DF29DEBB277B4705BA3BF5391AB57909E8888123AB72080
1684CD050ABDA976F4232ED10FFB2D1B321EB14DF3BC16BD3B3B09C763E8AE443859
168580B4F62D888CB482AE32D3C8D81B166107AE507B53B8679DAAE558151FA9B010
1686A45CE34B88BD4EB95E7DE41277F03A343114E904AB0827CE9E3ED93E95318BF7
1687CF51B3E32AFA4B84249074D7071F5268FE3C8F4A8B58AAA63494CC1CBFA4D7D9
1688999251A76D99D261EB8AF8C0D5E9AA59284DCE0C9B6E150662A18F0F601E2519
16896204EBBD240955811392FC1099F5B4DB0782AF4E33F8A2CD594C0A7CF2CCEFD9
169073CF5A6661BFB1F2F437AA86B89BA67B999CF90A38BCF64BDC76276A09F93537
1691A288B0898D7E361F90919D272246D4B0C09DBB9960FAA0CC2DC39A14B8282E58
1692B1F7243B1AE573C7CBD74A9CDE09A1921F8CF7BE00297D286BC2FD3AA11CB06E
16933D7A2C52D10F878E51C9AFE8F16668C0E1FD7F90E2743A65C382B91F4D76AFA7
1694AF041C9DE7A83B48D89B770FFB53C1B066682D6A9A1E48E5CDA32A46F8F8B085
1695DD0ED34438161EF33711496CC2B8E640793E1E9BFFAABDAC89DCE6833EAA71F7
1696578E20D43D3739FF58D41C1EB8C63414CAAE2FC534D677134D218DAA40A13E36
169759EAED3B3648BD7A3607868F43E0C85B2E04B67FB07F564FB9D14CE479B9763E
1698B0FEA84500D86F75517670F03715A50AC0AFD0B71090E530F6CFBF3E6226C609
16992AC4726F8D1C6C1362524D9F658F7FB532BE1C05D74A3A46CA935EAFC5CD9828
17003511C71910A24B326E2C994A9ECCDA2C4879802B5A2651449E7445E84A9D50D1
17014968CDA95450FE448EEDBD06FD1FE20178A752B95E59CD5729353FD982FDB318
17022DCC5254DF36CC72B4758CBAC3267723627796AB2C3048BA3422679BF381C838
170376F0EFA03CDA22FCA4E6C19D08C849CC1005859796FE8A17E0278CB0D04E6CAE
1704CDF828F23397B59BF7511624EE4A27730A79250C2B094995660C43230995E255
170502C65BC6C853C981A5EF9EA9A5A5E455477D996005167153638EED63F55B08DB
1706218C65137F17B871E0F75D9128484A64FD8290BF50914BD98BFEBDF8D689AB0C
1707D011ACA2B89EFA51396CE71097ABD82EEA261A4E592AEB824DB9E444D25ABA68
1708F4B65D5526A6B70A7CC23AE476AB155B0903CECDB2AEDB1BED5537E291F215A2
17092C69E73C4B09A6108A0A1E16A218C1790CF5B4D2E6199F0269DBE62199F9166B
171096D6610E3F42F573F9EBF70145A5D0D2D87F7599A56974284F5F92B274F249C4
17113801B3B138140C78ECFC061AA8844A41A029FB1A90CD09222BD9971F9B8C7488
17129A448CDE2D62C2270B34068F87AF5C5CE86A443D5F2F0F9C78D84EDADFC1CAB3
1713119F7D3897D89D6D95A2F72DB6AE9D17FDABC7B3D9F1E1EC514EFD82D912569A
17147DFF257929A5D0B3B88D7253E11FEEC431C73B9A1D56BB87A2C73B45AE345026
1715CC27558FB4A4D34FE528060CE0425C77EFFF57FC6C9C8E9CEE24B78CA06F052B
1716540BCDB2F118F9A06F708BEC473274C882313BF600050BB6CF36C58F9AB8A701
1717502CB618F0FE530A7AFBE9DFAB8B150C787540968A68A5EE07123969C884D7D4
1718BC48CE82C27B3B192442508420176E10107EF453B20FF400C12A980C7246B12D
1719290EBBC3DCDCDF25ACEF0E6470C40890EBDB4285B9A03C7566B45578AC4906C0
1720E15029A768A2FD07F7FE0FAE46C92F2BD601BAD9BF06EE83083568BF2F7CE09F
172114FDF7394E7CCD99E9D8930FAC99D14AC9FA211A02D4739F48F6541259192098
17223C15DDA136869EBA347F33818A24CC2BBE88FFB74DF8D3BFBC190E191ED351C5
17234B3CAAD0CDA1B9986DABED2991CEB775F51FF106A35647B6FDDAB142705A2113
172414DB6066929B20CC11242374A0833E5208962C9C079E44E9F5FDC6DE87F70DFF
1725CBA137C67BD1EC78D08C73D0FA138339E5F28363BC3B96351A7BD115958BF4F4
172647DB8EDBDD35B2806B741D1CD31FCE5BDA1BE899AB94B520D8A7749F1B1DA579
17273C408B11BD15075B04E99589D9F6327EC85F1862A754D4FC13C49A82043E9FFE
1728B5A257C6A87B45386A7125071BF7CD6B3409CDFA9C2BA0DBD61627F9E9160163
172967A8389FC9BE20E1854FCC35C3252E96E687BB0DF1F4CAF4ED4C61FDDB5A3B51
173005213CF547186987D447194A5FEA3243D947B02E80DFF12370FFFC3CC5696371
1731B6F1C23A9CD0F6A64E4A019CF6CBAB1FDF44AF866EE19BF59D78BB375280B9CD
1732A74E328753A560A20A977934E6B58C905DB51AA3C35EFB6B3B49152C288D6683
1733535DD175A81F1DAA1F1EEF1007AB605B822B09CCAD1DF39D016A84D8C603200D
1734086F358D55FCA0EACAAFFC1D76EF864541E519D2DD5BDB7D1EE6C7066C7B42B4
1735346A0A3042B354824D0C7EFB4E9DD6D6B4BA7E10694901FE227C7EB9B9615855
173659D6A8FACEC963D2F9A93305FE995A3A83055DB229166826641BCDC83740EF7F
1737B50AE8171CCD22B230E2784C8CFC1ED22C9C3F5EC90A16603322E2A889CC4DD4
17380FEE8D0DB78FD9B74E2A7FA196AC0AF888A36CE05A899943188920A6DB719076
1739CD4B39D3559C992A02DD5B3C47AA1B859F8E6DFAB5F26947A0AB3F30E35FBDE7
17407BC63991C716A54738AFC85A7FC259A874F7619AE7BAE01C1C59A97D595F0AA0
17419CF737C6795EFC15858C11BBA24442B5EE5C6E279C25F022E5D8FA458FE8FDC5
17423FC1C7583963E300B86586F88F42972FC0C56232FC394ED64E275D9889E6FEEC
174313F0F853D1D6C390F1242FF327E23370D8D4BFDD2312415FBB25C759DFEBC763
174434C45C85E0E82108F790215F5CCAEC481BF451C34EE685E85270702194A740BC
17456697B6BCBFB850E7727D3104702988326DF435C7127C3645E3307C877191955C
174684D52B3DBD402013610A3D6EB523C4D98100AC761FF5D8D7081371CBB4235215
1747D0507160B45196DFC9C390029D883363DA88226787415541E8CA99A7EA1899CD
1748B4FB6F6AFEBA08358E7A978AE7E8FC054FD729B735C60BD29C5DEAA39E6CF5BA
174901074B51351E0AFB5B9185B7033AA1E410613284DB9299A3B3986E60A2E9C178
175088DDF8444A6C8CD7A140E1E4A84C33F25D184EC3DA1BE13CC019825C19D246EC
17517D55C87B8685707E3BCEECA0D6BA729C045B3DF4AAC711C019FF2E8F80CF7BE9
175237BCB4852BEDD366103A4C73C4CDF0F495D9A07E005E98696B863C25BB79086F
1753281865CEF0EA2E1D8E48FC3966B93C2FC3854AF80225F9CEEDF97F0254F2B419
1754DB4BFB43BC0D392E17BFDD433A18F11478D955873277FF45E00DC49C5B7F2DB2
175502E129C246C31320FCA3428D185C0E8F413D4566EEDD044A87D68E75F9FA9A87
1756156FC6E2C9223DDD57548508AFBCE5F9D429D156D06D9140954511656027BE45
1757F8658279BD85EB6EA1BF7E760226D750C5C6BCEA47D8E5648014431946877B59
17580804F03058E80FB624970E85C40DC80E265DF761CA2646579FC5BF43B706260B
175967B0D308A04F0E5950A4BC8A635E1263A60743F59B124E726AEB9F39B44EE7D4
1760ECCEDEBA0031272A266E69B90F24403662B09DFB5C6CB855E553B38EED88742E
1761114A0B159D1A3C41D782818842F567C616EA6751408F89CA8177D1E625D8B2CF
17622B6F0EA9DD7003D93ECF7C9665FF1F8ABDAF859D04D208481217300DA1DDFFB7
1763654FCE01FA87539AF944F27A9F833D4DD166582850BDC8A54296EB7707DB578C
1764854FDE7CA891F11B9C82415BA4A4FB9B123D043E86C390576DB5E86EFB220D24
1765741EE8A174D30D462700AF8D22083B91167410876185A11FA32469A0B807E249
1766B59CE0DC5E01BD846B32575371F4C1308C7229DCAE0849B680D4AA30CC7B8769
1767DAA9B72BD93B32D26F11BA8BA05410B57F9A103F941B1170B36E5DB60548FE51
17683369FC3F55785EC754C8A1800414B9E8114601996042AD4F4CEC7CD0AAC679B5
1769B5D6D321CDFC4AC16BBC3FE44652767533973DAA76786228A8D0B835F7BDF74E
1770FCF2F2025E2C4EB5B4009E7965A4DEB180129065FB47A093BAC368BB1FB2766D
17710D97AA715BD2C2D692FFC56C18E2333DDDF66FE21E87255B7B50DBB7D79CE1
17720000000000000000000000000000000000000000000000000000000000000000
17730000000000000000000000000000000000000000000000000000000000000000
17740000000000000000000000000000000000000000000000000000000000000000
17750000000000000000000000000000000000000000000000000000000000000000
17760000000000000000000000000000000000000000000000000000000000000000
17770000000000000000000000000000000000000000000000000000000000000000
17780000000000000000000000000000000000000000000000000000000000000000
17790000000000000000000000000000000000000000000000000000000000000000
1780cleartomark
1781%%EndFont
1782%%BeginFont: CMR8
1783%!PS-AdobeFont-1.1: CMR8 1.0
1784%%CreationDate: 1991 Aug 20 16:39:40
1785% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
178611 dict begin
1787/FontInfo 7 dict dup begin
1788/version (1.0) readonly def
1789/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1790/FullName (CMR8) readonly def
1791/FamilyName (Computer Modern) readonly def
1792/Weight (Medium) readonly def
1793/ItalicAngle 0 def
1794/isFixedPitch false def
1795end readonly def
1796/FontName /CMR8 def
1797/PaintType 0 def
1798/FontType 1 def
1799/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1800/Encoding 256 array
18010 1 255 {1 index exch /.notdef put} for
1802dup 0 /.notdef put
1803readonly def
1804/FontBBox{-36 -250 1070 750}readonly def
1805/UniqueID 5000791 def
1806currentdict end
1807currentfile eexec
1808D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1809016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
18109098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1811D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1812469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
18132BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
181468618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
18153645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65
181648A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3
18179619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB
18180FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB
18198AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F
1820EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466
1821FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3
18229902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62
1823D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8
18249EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5
1825ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6
182610FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582
182783158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493
18282EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA912A2BCC6CA6105B29
1829044005DDBEAF88E0F05541BBD233977A447B469F013D8535A9D7023CC0FB7B49
1830A95CD2B6F18935C37F49E9A73E97A8602C5C26EE13D7A04A188336FCAB4CDEE0
183123DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413
183219B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42
18331C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39
18348BF147F0B2D22726583618BBD081A7CBB0F10ACEFC161043760929406853BF52
18353EC809222FB195795F19F76FF7541EE3E7A0ABD4F0D9ACD5039881353B0964DE
1836AA5F4BF19DAC50B2AB87AF57E4384D8E8CA2E26121C778BA9DB6AF926C29B3EC
1837C51DCAEC6811F219E002EF7EBA102BC5B409BBA3EA06FF63321D004D0FDF986A
18384ABA9BF9171846319418EC2DA26255ACEB6B4869FF71CC9027A3F36EE4B98837
183958AEBC43692F20B492410BDD93F6817C48DE242FDF30AD76568E792C3A665C58
184044C54E752A1A87728330533622720E65799B3ED33230FEA1D4C22BC367D9F547
1841F667E5A90597799D54BF50BB11337A7DDF67A7FB6F52B15A2876973A8352650C
1842CF74C4575B0A43BCD33DF8D7961642B509468FB6E92B23263E8FB5615E223AB3
18436CCFD05B612CDE7B555B7FA92AF3E5E7DFF8D973FC3791C97D145D4EA72946AA
184489AC3CC4016DD03878383BD5906C224CE197E8126D217114547E4D96E0AD8E65
1845A4DC61A106F023AAF1BC47E496F9C9DF8C42DBDAE44E33FB910984F73E5949E9
184699DBE07EF7825C060BFEA997291B25FDAA70B09BB13CD8CF4A480A232E21919A
1847E9887FD8BC9EF086AA85F50AD7C889DF09696A34CEF35D8CBFABFCD8CF6776E3
184876EE2342139FBC0133E18F11B2F0C6679FF971775F67F937CAB200820AFE75EF
18499A589A8FC9E20AC601FA521E3D7915D50FB94F3B39BF46EEE1928A09BA1A6442
1850F924B2C1B490A622F67917273E141EDCBE6945244F5A671B8BC2F92AE560EEE0
1851975E335B484214FF4F5B15D4700D3208F4844D6AA4B5D67C05D5BDA16C5F1D84
185263E49D9DA5443D596106C094583A83704DAF474505F9EEE80CACDD901BFC8571
185356846DF88902B435C79681E8A508F9CC42C7809A975EB756747E700B28485E1F
1854FD7E6D86EC9285A095DB0DDE4FC086D5C7AAFAE10A145AF9E3D1E7CAA2AFAC08
185588A23EBDC79670AA8CFFE38DDD204BE3224C4609757633C029BE2509391B80F3
185619FEE5F3AB163506FD274929767D3D3FBC06B5A7DFE7ED1D4A93C3E41689C5AE
1857A84A914904CDB6D2A60F1ACFE5001268F67DC07634E2F52164C4ACB0BBD16F1A
185887E9428A3FAE4A0207C8A1860D8E0696C748A8457403EE1A801CABA8E2D2203C
1859B8F565B065C449EEE679AB1C1BB241DC14CD367557EE8BAFC76383B7E30F353B
18602A1695F7FE392192514F9DF81564C81E282DFE6502C213ECA87A66A5057B72D5
186173A3A848C2BC2FF6A0E0AFB313EA45D7FE2E328AC3016FD8802EE4538AAEA5E8
1862947B2DD12CC78E53D47423EBAAA312035B1E6BCD86FF619796B170BF834BDD99
186390169BE96C0EBD84B97C244705525D1D60E88231B825D93B1D700728D8919CA1
18646518CCFA5C2768068D76EDCD7A22A6D4C42FD4CCD3E28C61D3B46C3510B78931
1865DB7655923FB7E94062A8955859B0C5A9180F54972CDEC0661D1B6F4DC58EA397
1866CD341EE81EB212CE34580EF988CAD9477B119766FFB7D1CB2F1376CCB238C6E8
1867EA3C9313F8018CB60DCE502378BB3F49EAA6C680B62E73A01DF8C4347D00D2F5
1868863114D3D9B00E9A7E8E6EB7D6F6FA6C10103A641174A6131DCF49CFE1D641C3
1869F61B89CC6B2A69C55B691934E1E4B0E8D67E592EC7BFFF841BFF3A4A574EB3E9
18709C3FC6A9B177E2AFCE1D7BAE9AB6B361DA451E88F493702A6A34764D5120BBB9
1871210A43932754B18409AA1B5EEA960F3D9EB27FE9D70430DF93ABB6F4B91FC467
18722F5BBA217AA35DBCC7F3E752D847DCA8B85FA0FDC8DCD6825777899CA8FE22BE
1873BBEF9C8D1A1C8B44DF3016948B9C28B66A287D4410C9650F95607DBECF0BA8FE
1874FABD6676D359E9552C5BEB2FB2889F5E3D5232B2B5353616EBFC2309B6D4959E
18756EF07CB014A149AE040CB5865A9BD3EB34588C9850A93060AF4A056BD4717142
18767F8B25A5ADBD8FFC26701BF936CBF17306B831756D88435DF01B2B875BEE18C3
1877456728338AEFE6C9A7CED1384319FA59A743D25C5AA157F7A0D3477A362A0BE4
187817CD9297CE707258B89B88C6C826EA26700A58AE1F5164995EC4DC0E8E1281C4
1879000230B6AA110BB6CA46B754E6F8AD09B5355BB515ECB328239362BAD7C59272
1880E6932894CBDA403725C583A1009D4996310FDB839BF9B4AEC033E1BE2D35110F
1881683A33913C2AA953369BE268EDCDAD6C50E38DF26AC3BCA358CDA00F540A1A49
1882CE2D47C55DDAF4C24B3B8759238D5D4F9AD4B771D2A33AD905092A95F83B0FB2
1883734A420FD1AD12DA80DA11BC469634B6AE4D6F66BB1636384A8C47010E53C401
1884E628BA3659089E4921C080C7E05858193D0C40E0C9B05D6DAC0F74B1834925ED
188546A45A6983943E2B12E0A8A1CED859BCBC46350968514823198443693CE806DD
188628C71ED2E71AFCD8E418E1B2D13B82299D2FFDF346AD454EE37340CE52684FC8
1887615AD8E9D2BE0EEA0B8B079C5E48EDB4CA82D2FB1D8684CAC5089379BD833E2F
188814F4A81AA27B49EA54DE490D19AE2281BB39474C8AF6A1B9EABE8D9B09E284C8
1889483EF3A6F0CAEA501F62799CF1E6DC4B637D02E99FB51E328DC2AE144B3F715C
18907A16F9C0F1B6C97A4464C87AA4D113A54A3FC1AF77B5D4CB4EAB75CD9BF22A29
18911A24AA5EA470B632B04984501C4028C197E5E1D1C402284C6B2100DE79FBE6BA
189251404E105F0F86F8940E4ABE72B534DA426AD0A8DE5D35B84966C4E99DF0082A
1893E44F82EBEC804D7ADEA1CBEB134527433A075B2ABB7598D04B673D442874B0DB
18949AC93C9FDA219F1D91A1EC35CDD6B3272E1C32539EC6046EE0EA6DD3E4A48987
1895162B3AEABA2A42845320CB9E12EFC8E17A72701C38FF5759A2B8592C7935A88C
1896C7384FC3A9B60CBB3E9E70E49CCFC7F3A116F9903583F51B385FC7DDC0E9A9B9
1897CD0B5C38F0D89D490809D449FB3755B8EC83A4DD979EB995376600BFF7F38A0C
1898604E6BD6A7F033D92400E988725116A2B364ECEBD706FA978315735499EA0C9C
1899990C15B6B70C2A74960F1FC37B448D61B768E8235BE90A19F9D7DDD3C7135B94
190040B107F1CCBFB04656920E01413C5128B0AB583A26398D82526492583EDFAED9
1901B1B953655EF05FA42547467F072E229D7135228A0DBBA87708D07BEA319C6409
19027D48C3CC8BC7B4B1F6D04E3915D79FE4167CC462F2598F1F1606C785FD1E9538
1903717B45099C35C3B3894506F898D83C838FD4530A1EE0C11335D74828BEF6E111
1904B041AE57F24722ECECABBEB1CCCC9C8AF3BA599688694A8C35581E29D503F089
1905B98E96529FC4B1058B8E23782D2F9AF14E7C4105298638A5E29847640A7486D1
19063BB1A79F86FB2DFE5A03C1371E4D7B95B388515DF5A5E50887CF3B29F1984D84
1907F75C9EA0D77A925492CE608E90A96C280F7E86AFFC852B058937C948C6BE22A1
19080E28FBDC6167ECD6BF9547135FA62C46B21341EF230079684FE18D96984790ED
1909908D58AACFBD0830C5D8D3220F2EEEA0FA6B21CE7433B5FC517E64303F7145C4
191022D09ED0758B40F1DAD62DEF3C201BEAA94AA345D0002B809D602E2F89CE8CBA
19115DBF38FB7B09EB01A508E655A068E83AD44EF21FB94BF63B017D86F85B3D5BD3
1912F2B6BEFCB4E51F264991DD7C60931B55BCA29BCBDE2850333CDD069AAD68E630
1913741E8FEA3C880D4D06E2E1BE457FD5CB53432A4A967870C8BCF142821F20E506
1914F7A998D034E608CFA62DE8C3B9CA4358DAE3B848F0D437F8A8159B54B4115E07
191522A279338EA0A3C85B72257F0CB7BB210925AC87CDD912959ECDBE86D27336C1
1916F6D5A21457DCE672F20358A65A3E40DB43821FECD679131891D89B8B3DC6CDCC
1917EC6FD74D1ED22D3793E1633A735C20B257C591855F0EB703612C1ECCB179FB15
1918A313CB0834F6D16CBDA8B6993C477E765C786AB86E3089E01C4918F2ED9AA149
1919694B62BB249E654E2C592CDE345C7D898531EFDBBC95DC95B90DA35A7C1F49B8
192072012676DEAF762E8BA52F2A79B877FA34EBC0D332C9B38930CF47C769F6381B
192141BC928EDF77085C3726D0F980EAC0D7E0A32BF70A21AFB4B4A214054A3B9A48
1922BF8321ABA58373C6697BCE4D3028BE2F8D8D31A50731A84A09543835422F01EB
1923CF74436F6C9C8592DB8D9BCCF3674D393F0915DA10F1D8DC218B55ADA7349584
1924AF31B0B60BD69047BAA7456571F846FBB7E5E094080E7653ABB8AA29E890085C
192538AE13B004E54E1E1B922B08D6D07A086CC533E7ED87FF44B402009098A4D9AA
1926E4F3930F459AF1A400A7BA85F5F7E0E3AD3E514D29222463DC18DCFBD444E106
19278B335C699B5BCDF254E170CDE093357483E18482DC80E0A54CD500F14F0E7249
1928F603D1B462CA94C71B46B6B1FA9D5091E34B8CC2CF599F7435297FB66F5D48FA
19297572A000A16E444A83772BF2B05688CE41029FBFA0B17AE1C7CF6D361F257E21
193023CEB2DF1FF2111765E2B34D27800A7349BCABAB2C080F816AFF76CEE128401B
1931C43F1BEDAF5794DEB1A298ED61633ECC24969169D021FA32EEDB5055226E399A
1932A7BAFB70A624A7AD76608416ABE23C450D7E70C6959DCBF03B845168C2839166
1933493D3355FBC4FB00B96C9B8AE6583D02A1999AE46BC882AA85D66B526F207E5E
19340AD5FD3EF0ABA378D56562E9DCD1263D78F8BBADF9EAAEBB52AFB72F348D822B
1935B82303C874FD3E6187C25990EC297DA7806D2CDF2C1030F137D333CEC7FA4DE8
193641DD9114E582EF366A6DFFC2E01A16F0122718736BF9B1A2D50A3EBD48F0561D
19374A391E7FDA3727422F521476E7DBB76FC4AE557D4CB7040C8917A61C17211D68
19382176A97B3B8DC4F6F8A95031B68D00F7D0CBFA6684B5BB7D8A357F5AB6639858
1939D730FD5FA1C02E9F97301E42A6CE735435B3BBA80C1B53AC645D2C1F351153FF
1940D4E4A0EBC453314CA575D5B151A9AA1ADC1A1A5AA79664397F3217E24CD81B3A
1941ECE0BA0D6F4A6427FBE37320726A841980070C1159C3901E3E8F1C07F7EC7A8B
1942428FB4423E598ADBD4E22E137D6529C588ACDE86B869B914A1A95318F9B089CD
1943BA2652842C8AD3E63EEFE546B2F09A3CC465933F8F4FD9882CFFF650DEB06658
1944A20B633B3290005B1C1EAD65723A4E6F690311705FD1B0CFDA227D7E7D3B0DEF
194559AC88DE4D22D7AEE169F2455C7EB0209D4DAD5CBB9860BA701AB526E4C7FBA7
1946FD9B1662E3DE2DCD193EEE7BD18D68EF0328C46D023A7C7AF34FA60D43308F4B
19470554F7043C1833B13094C7C72BFEC5108CAB7FF8B65EDDFA0EE11881F3554E29
1948583F7CF64267BC470B5C1F170D31E8C7BCAAAEE41586E3BDE7CEB625F4B04120
194976083615F281D011357BFBE006315B2D821F05754FA853C710F459EDCF1F346D
195022B569FA4B373962FA2C659196317632B962C84B98BEF32141BC60ABE433459F
1951920620A5D02631E384B86BDBE056185E5D66C3567715709B905E2A06ABEF89A4
19527C0E2ECC7EA17CDDBC0035AD01A1DE89CB6CA97FC14C3BA6B693120CC6BF8CF9
195344F50B63E69681B859C38ACD3683B2C619E39FCA40E5C12274ACBDCDFE8CC111
1954DCA3FB07C11E52D39B3E0394B01723969E0CBF1F104772670363A09F29D7EE87
195577BB82420FA3CCCADC9516F5439D570279F035CBD0B3962BAF7B635965401636
19569EFCDC2FF1B04382DBF5BD2CD19CEC9F3B51CFD446D242454803EB8EBBF1F134
1957C8EF82414B204BA307433A05AC5DD19ED2AFF67211193DC6819F10FA9318B157
1958C9CB661248C02FE2673D4CABE69A20EB2820283C08DB0922BEE054306748E4B8
195991946D5DF12F3D30EEAAE38F79A65319209B2158837E0D1D39D42DB06444C8CA
19605A40F3FD7F42EF6B74765B9D6866AC87D76AC1D1C040D17D3E905AFADFBAF0F8
19617F3978A9A8395979EC07D0BDE80E3D42AE312310247E78446697DB0D3840A51F
19623C8F3B529CB8F26AB863CDBDE1E30F97F42A05F58B3E91C4709050674097E01F
196321B99F98090288B857675EF4264C36932BD56B99CB22DF90016DC8A69C210B5C
19644C34333E2B58014CDA465D73B0ECC2F971D1348751B271167C6BD624917AF015
1965213C1AE4EB4D6CD8DDBD0C0BCCEAF3F3E883E4A526DA548E3AE665FC54315436
1966EF05026950C500C3ECC1F6064725FD5602F0E892695A6993FC6A87B2ACB96907
19673E44F141A7F55B4964AA281B6E09EAD3D17CA9D5FEC455D0F86AE5BD008751F7
19680D63C9A8627F492E2FD1483370BCD0DF33DDE857E9F8433CDEFCE4B02C60AE1C
19693EED2F7BDC50AA172E2FA00291DC71AC2695AC12AC797FF7D15D0E8C5B21FB55
1970DC3E109C1AFA49E6D3F30B1C8AEC3CED7B210E9179B57DD5FA9FAA3DE9950C69
19711A7ADD7A9FCD6C17719CF70A0D427F8070229DE9E2894F8759DD71821238816D
1972594544573EB6C30530DBD16539427A829FE98E711CA5B2740095B9FD36276FD1
19733FDD540ABB094D03ACC45FA9AD01D892FE8CE30FA613DD4FA754880C646DAD8B
197493372472D897CA32B84A58164B20BD322FC29594D0930C9406E7B736B74E8766
1975CC4DCA58487AF93351E4C0078B38CF7E31B4CB8C223C339D4DA42571119856D2
1976F0C68DA2CB254FD6CBEF4FDE3E309B5F6FE8A6D7B44E4AC065C1B79D2B16DAC7
197702E597D73088DFFF688EA96D9E72E3E5419AC7A99D7B58AF8587CB6E853B6131
197895BA5AE058809E32A3D072F50C8FBF4D0DFADD6E992BFEF5CBCF1039A2A7E689
19791BEFDFB04EC241C34629F5AAFC06EEAC05637E2E4792FE142F48CC5145FDDB73
198052708B00611BECB47B94BCB55AFEB796E3E4D3F06EFDB0CE6450F12863E4DD5A
19810935240700CAE9B81E4D3D0A5AAF17D0C1A279F6F11742C9FBBA6FFFBA168C55
1982735ED654ED3FA24A565DC0B1A9AFA9A44130E5CBF92B82FCCAF73DEDAACFD669
19830605D02EDCCABEA4A227F28A576FEA5B5318B68053E539E86CC18FC55727536E
19841CF8B1A7C40291044C17C5C2D8E18C5922887120704B819587B5A33C4528287E
1985F0A2F9527B997854CD877FDAB96903F4BA8803C9C7D61E724993A0E7BDBCB496
19864F5AD996B519F86009254B081E32E93F282CE95FB0DD281A4973D4D0BFFE68A8
19873F0E199DF122754A557E7B6D73B67E1EFE2E1B219D80B6F2C2AC4C373CA73DFA
1988B4A993E71143DCFC8CC84C661C672CFE83B8CDB7E28BAB9F230C822682964C5D
19892B54037976CED27FABBA43042B38DD96D692E98F6E7A20C435A469EAE880FDAD
1990768016E39A51B902518F131DB096259CB222AEFC0FDF9CBD82531B34B8295CB3
1991B1ECE0F397DB6B4B1D1F2C1ECAEBD71B97CD5B510341611AB5BE4A5EF9CE300F
1992BD691EAAEDF57B6D585B27345D03147555DF906976C1AC2F95ED3A35853BED76
1993554192A5BE7ED25898D8C9728A39CDE39D5E02DD02E9E719A4689AA59FF39B1F
1994C9D89032E09E5AD8A64EB24BBDFD79AA6BE4659DC05A0568FD808BA7895B4C05
19956C511B8CAC8FFEB08CA271264D61D5C894315055CA842E50710273023EF5D489
1996C3BAFDFB601FEE2DA54FA552B2878A0AD8EB5D7E812437F4650F7170F809575E
19978D038E35B29C32F707B1BFE57D2AA5DA2AF23FE8B3D8C533B8518CEBEF534E15
199869A01E4D8D69F262B9DC2D15CCE7372C3A76FBE5183106E1036705BCC83F3C3A
1999FC8AFE4A96C06D0C7781ACB721721B980B87A4C481BB4A656535D9F51C0ED3DD
20009854247C788789B9E6341E1BC43BE6B62A8D2D7976BAFEDAAF618DA03C14C961
200177104F6CF1F9D3231BAB1460CBEF935F5FF42B65967702DECED0D02179E9B646
200243BDB7AC41E2316C8D720C15963DC7832454C717A2388EA42127EB01AB80186E
2003556998759E200CD7FAEE373FD3618435143B198257B9F35BC40E33C3BAF6022A
2004BEB9D17122C09AA7EE7F58C32160B43E03934ECC65FDED1C3B9BF21858FB7920
2005236C832457D298800438531822E1772849E67987B35158F6DA1FD3A3F5A3E564
2006B88F98155B678E39BBB8083E8B71E0D4CC0B5FC2B707FE47379FDC040CD5C5CA
2007D8D730CF6920E772231AA1AA0F1647E6DB488B8721B8D788AFE95CB0C1D461F2
2008F47B8E69CB327090A741773714739B898E8831F2476201A345F828C4B4B7861A
2009C6898325965DBB1F5EAF82D0D76B3B0FD34F2C26AB975AE793B8E442608EEA59
20104FDCE8508CCBC90385ADCB98DDB926E14F5B0E6753A7918A9DBFED088DA9805A
20116DE843148B384756AC4A04E2509E290BC9C1C75350799E8917D7D09B922C62E5
2012B2F6DB234C0CEB92753C7D4BDA4E146D0B71064BA773969F816ED9B8EB71DB47
20131812AA97E08444EBBF8B365DF86E06747A222A9BF26C72347EC77A24D594D9C2
20141A612033B071CE656D0BAD462322DAAD74083FD761C0EAE10A03620AA6DDB154
2015A0CEC3F8987A2FED9F4BFC02D90DDA261885E738771C81DD918A03D633D9003A
20163AC8F1337CD0A0AECB63121C76F840F7D9BBF7AF1BBB3678D6C9764CD85E72B6
201714E5E388D616559D2694499FA80D61F5053AEB5E4B55BEB697008D5404497B8F
2018CC69652DC03A76237FA23D10CB68E5880A7ADE2575B31B54F10C268813F4B0C9
20191FC1E54CC5C37BB4053536C14453CAE6990AE22D3E74E82BB2608D6B4CDB369D
2020065D18D2813026453CF911CF7C2333230F466C74C87728273F38C2EB6C3FB9E3
2021D17634C0C28A76889AC3A2C5693060A5F0AEE214B090C055D52776A53E632404
20220772D2DB1269AF13430C25F51692FF6392137B142D1C3094F53F5AB9FE4CE32B
2023E758D3AD09FBC4976AD60C457B290874FE7B6ABE54AFCC4F56AED40DDA532465
2024AF22CAE2F3EF1CC4B689364F39255AA5BACB5120D8EE8F39D58AB98FB489669A
20257800A1B5D13B36FDA95B8053C15C9B66E8B5622174B4D6B01D49888A73BB9DBA
202622A3AE699D725021F052B96D2B76E2FF25C61095CA21A1800820183A16D4E2B0
20271968F422C761CF59770D75355811914419E6B9A624C114FC53CED7DD80C92BA3
2028267BFDF01CD2D33540F5DB420388EE1EA536F7FB7619D3B00A34AF9ACE09BF60
2029BFFCB3EE98F8E751231A94E70F49495BCB5AEC508041FE26F9FCFC38DFB7B7F4
2030CAE3D60AF6C656D62F90BA6ABAC3CA1ADBDE709782366475D50ED30F67D9BF2B
2031EC7105CA22A743D5A7BA4B7B16C0871AC38CDFE9A165920AB712E992BF1F0838
203246BBA68353AA0EB2A3B7851938B5C0BD617A91B47BE536EEE1CF4C9542D184C4
203392A798FAC3452075EC6F931C724EE15C18587F1EEC9EE90DD5F3670E7ADE9B72
2034828813D0BC116CD5B39031A20CF5453FAB9B77C40BB9E3401433E9E494E9047E
20350E8E2F36B5E8DCB181375CF98506928FDD6F907769D83794E9B663FA26808BFB
2036A5486D2036DF0283765C35A848E10972A70E0C8DA0A6CDB3224A15C74A9F0A09
2037AD75C5807E2CD5BB82E94EDFAF8E4946A60BB63ECC3FD0B03A3B4DA73A875FFD
203884590E796DA58AAC47F05DD6BD99986FCCA6EC80985015CC720BAD6DBAF21EA8
2039729FB5AA85D91C9AE221DE7C65DD537701F6ECDDEBF4DC7F3E6F8E8A1A917DCE
2040D53E6BD03C9F9053A3AB7F41B3F152F975D8D55307170C9C61D6EEE56A2D47F3
20418B97728F98B958F2CCF21C86A5765C5FCF1C78B020174628BFA439BBEC241906
2042C37520DA9BEC389A3F2F30E19F44EFCEA08B13CD33B5337EE434220EA836F314
20438BB7AD4474A1986F6BD74878198266DA13C489A6D995AA96D7C6D52B0FB3CD7D
2044CEEF2D2D5823052D675C1B5615E794BB08B01A2B81B49C4D1F56AA31C9B4FEBD
20450B26B30E3591B06C3939D57B89698ACEF90AA629138D8CF8914D554462B578A3
204630EF36AFE4E54DA09CBC28E1FA269739E85585B649F2F92F9D8BA67C21BAB667
20479D229DFAFFDAD907F911DA8D92A889CD4EF143DC9C3663135AD73AE2958AAB4E
20482ED4C642ADB1D4752077FE0A4D9EFD9BA4FEE0CF063F0825823D9D0625FD8AD6
2049693B2DF499255F85C4A927AD9EDC46E1E3E7F9607B689BD1AAB7893B2B0B6BB5
20505D0A3B0DAD7D09117F75B9D149DCE9E139D424F3BAF7051F33F1B7C687BC7CA9
2051F18EFE617ECCE79C7D028C7DE780179FCFC26430C46553D378596D7A2ECEC876
20526245F7DAB2DC3303279BC8D48B29C1987586EF5D0ED2380BFC775C39EEEF4AC3
2053D37FFD79FBFEF28B59104A06720A04A95CDD63FF80D6BE6580F51D1AA9A5C150
2054B7919E0070AE5FD51D0913868F094B0B72E402405EAF9E1B4A5E0F12C694C0B3
20550C27A34DDD703B50BF20E0596163B68BAF57201BFAFC0003CEF86C345670EAF8
20563747D7800ACA9775AF17E86C6934E1839C7DBEFA9B5643A14469CB4D7E899A3D
205716990A484A44E6104F075628D26FA0E9D860557D92D700EEB3B0A65EE5CD1608
205860168DD6A7D124608DAEF0E1EA9CF48C9B41DC24FE1AEABD582CF6608D45D3BE
2059B5E5457520FB95AEBCD716E38C317B8BE48066260EE2E6B2A10FACF46507629A
206050C3C81E322FFA26F4110A0799A6AB0C7EF1B7779E295938F4551C715E44B0BD
20614969C5B710F510F476FB15ED0CD1D854D3ABE782667066111E0225B0A1C44F59
206247F73C7DCFF60B275CF8537C06DBFE629ACD0C0F3F48D574D388CC2F95B4EF18
2063961588BC15842347A1676C7C7F55538967454E065BFEF5C2E270DCB36D80A5D6
20642E1529A9890AF8DFB474B354F39804F48063830587EA4E271079780E84F76860
2065B8D4159F8897579A70B4503329979A6EA0FE4B199ACF509363FF184DE28452B8
20667311E849ACE4132ED733B25719DDE36CEF7B29B5707C09927BEAB25FEF52C71D
20670C9F7F39F2D08E6669B86EB5CB8D90BC1E7566FBDE0EE87A55D50E733008D457
20682D81631F3599E93C776EB59C620BF118AF3010777B0240CE7DB42A6786723ACE
2069E54B0AD66D257261041968F88B386126501B16005730CBC68ACDE21B73D16F0A
2070F15D90BF1ABFEE94F8B862362AF2E36D323F28C2665C57D22F5A718930B14B1E
2071D8943E10FB9AA3AADC4930A6E78C1FC15F1F1DDA7C832E2163F6CD70FFAC04D2
20728B04C206384BB66E96320C8559452968967EEAB10E9E579C87DCED7AF394F93E
2073A5F0E9EC82825F2FA364E33040B1B1F294FA4C5E536D012EC0209B72E08FED9C
20744948761E0AD756DB78EB1C9E6DE99761BDBDD8BE8CB042112299DF825F68C53E
2075300EE1AFA59C7FA408092CAB515AEDC9D3873948A4B4B6D78A799DBA9FD3628B
2076D1947AB0AD9D594DDDD16997BCBFD44DE3F68D556EA982823FB851B381527276
2077D0C68AA3EB370BA46F93AF52580932534AB73D609021411A9E0F0009E7821FCF
207827181278CB75E994318E0C1B4C84DDA3C52291D2CDE0C45A509DD29518083AF2
2079E3EFB3271BBB843080671C2ADD01A0D956EB48FB1166AEB5E8FC92A2D988BA5C
2080698131A1A6E4C51ABC3CD6D8D7BFE390A70838454BB6AB2CA40B1110575C3AA1
208173523DAF9BCD863A0708854890A24E63A05B272873A1323B00DF14759F78AA5D
2082453670FD92756E8654D0ED19883758D1B00E78CCE7DECD064907E27CD4167625
208327A0BA98448069C7B3D21FF1F53412ED84364526C3DA1574B175D68BA7626EE5
20846323C7E472614B86D77E2FD6E47C2D01A2F4D755F3307CFC06C094E233FCE72E
20854845F7E31652A90B1DC8B940AA48A402281486F2200DE05BDDB5B69DDB965FAB
20867BF0CBA38A2E5A7E91084ABE9B12A855F8747400561FD5C368D1997D3411227A
208796AADDABF8E558826E73B474FE9E51A967DBE0C44133193EE765B8B224373A32
20887564FBF11B80986534A81D033ED05EE15A77B79493A6D69496D71ECDCFBF1731
20898E2FF0FF0125E3D186A4DDC597E478D525FA8E8058C3F131BC525EFD8B840CDB
2090EA2A792DF2AD54C513762859E34C3589DE590AE441804FBA07CB25BDA09EA7CF
209140AFFEA627E46B1A461E2E5AB9C6B611B7E45C008EA5BC6EABADCC2541786210
2092B319320D086BA982E7F6520E8EC957174D159CEB2CF3B858A4B903D9F47F2B8F
20937ADCA2C5645447871D264E7FA1C8414CDB12B163C7BAA7533B25536E6DBB68F2
20947C215B25F3CD02163D3F5A562057083F3078F25708A62F627B0BFFF7A5221E6D
209546A032EDEA888F00E6A23E59020B2C0A2BDC06322AC1F324D88CFD3B8FF74AE6
2096084574963B4A3B06CD39F9CD0403D2D20D5EF4CE271CB18F792E3EFDAEA66B3C
2097CD2A4FB743E9D8E2DB995125D1F18BDEC5CAD402F4D90B2F8DB7ABC6841664E4
20981486BC2332C4E8F4A6F5B7A20AF10D041C8AA138B5F16EB1778A7485F003287D
209901465EC47D5DE48546B13529A708CFAADEA60BFCC6EB1D6EC3DC36B512788BB3
2100038125961302DB9761403C3B8016344897C590FC99CE273F2B224C799980FFD2
21013CEFD589FFBDA045E65ED55B9E3FAF327B4818FF9D49518B63EDEDFE31549146
2102D971BEC326ED65033E8F
21030000000000000000000000000000000000000000000000000000000000000000
21040000000000000000000000000000000000000000000000000000000000000000
21050000000000000000000000000000000000000000000000000000000000000000
21060000000000000000000000000000000000000000000000000000000000000000
21070000000000000000000000000000000000000000000000000000000000000000
21080000000000000000000000000000000000000000000000000000000000000000
21090000000000000000000000000000000000000000000000000000000000000000
21100000000000000000000000000000000000000000000000000000000000000000
2111cleartomark
2112%%EndFont
2113TeXDict begin 55380996 39158280 1000 600 600 (refcard.dvi)
2114@start /Fa 197[20 58[{ TeXaae443f0Encoding ReEncodeFont }1
211566.4176 /CMMI8 rf /Fb 134[35 3[38 24 29 30 1[36 36 40
211658 18 2[22 36 33 1[33 36 33 33 36 51[26 45[{
2117 TeX74afc74cEncoding ReEncodeFont }19 66.4176 /CMTI8
2118rf /Fc 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1
211949.8132 /CMSY6 rf /Fd 134[32 1[43 32 34 24 24 24 1[34
212030 34 50 18 32 1[18 34 30 19 27 34 27 34 30 11[45 1[34
21212[41 1[45 54 3[22 1[47 39 41 1[43 42 45 10[30 30 1[30
212230 30 30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }43
212349.8132 /CMR6 rf /Fe 129[41 5[43 1[43 45 32 32 34 1[45
212441 45 68 23 2[23 45 41 25 37 45 36 45 40 72[36 4[41 2[23
21253[45 47 11[{ TeXf7b6d320Encoding ReEncodeFont }26 66.4176
2126/CMBX8 rf /Ff 130[35 35 35 35 35 35 35 35 35 35 35 35
212735 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
212835 35 35 35 35 3[35 2[35 35 35 1[35 2[35 35 4[35 35 35
212935 35 35 35 35 35 35 1[35 1[35 4[35 35 35 35 35 35 35
213035 35 35 35 35 35 35 35 1[35 35 35 35 35 33[{
2131 TeX09fbbfacEncoding ReEncodeFont }74 66.4176 /CMTT8
2132rf /Fg 129[57 3[51 1[60 1[60 64 45 45 47 60 64 57 64
213395 32 1[35 32 64 57 35 53 64 51 64 56 2[57 9[80 64 86
21341[78 86 1[109 69 1[59 43 90 1[72 75 1[83 81 87 18[32
213538 3[45 45 15[51 4[57 6[64 67 11[{ TeXf7b6d320Encoding ReEncodeFont }48
213699.6264 /CMBX10 rf /Fh 129[35 3[31 1[37 51 37 39 27 28
213728 37 39 35 39 59 20 1[22 20 39 35 22 31 39 31 39 35
21382[35 1[35 6[53 51 39 52 55 48 55 53 65 44 2[25 1[55 46
213948 54 2[53 6[20 7[35 2[35 20 24 20 2[27 27 5[35 9[31
21404[35 2[20 3[39 41 11[{ TeXf7b6d320Encoding ReEncodeFont }57
214166.4176 /CMR8 rf /Fi 129[69 9[53 54 57 2[69 76 115 3[38
21422[42 63 76 61 1[67 2[69 8[106 2[103 3[108 6[108 1[90
21431[99 8[38 58[{ TeXf7b6d320Encoding ReEncodeFont }21 119.552
2144/CMBX10 rf end
2145%%EndProlog
2146%%BeginSetup
2147%%Feature: *Resolution 600dpi
2148TeXDict begin
2149%%PaperSize: A4
2150 @landscape end
2151%%EndSetup
2152%%Page: 1 1
2153TeXDict begin @landscape 1 0 bop -555 -364 a Fi(GNU)45
2154b(Emacs:)62 b(Cart)o(~)-68 b(ao)45 b(de)i(Refer)m(^)-66
2155b(encia)259 -266 y Fh(\(para)24 b(v)n(ers~)-35 b(ao)24
2156b(22\))-450 -59 y Fg(Iniciando)37 b(o)i(Emacs)-450 97
2157y Fh(P)n(ara)24 b(en)n(trar)f(no)i(GNU)e(Emacs,)h(digite:)31
2158b Ff(emacs)-450 300 y Fg(Saindo)37 b(do)h(Emacs)-450
2159455 y Fh(susp)r(ende)25 b(ou)f(minimiza)f(o)g(Emacs)476
2160b Ff(C-z)-450 525 y Fh(encerra)24 b(o)g(Emacs)933 b Ff(C-x)36
2161b(C-c)-450 709 y Fg(Arquiv)m(os)-450 865 y Fe(abre)23
2162b Fh(um)h(arquiv)n(o)910 b Ff(C-x)36 b(C-f)-450 934 y
2163Fe(salv)-5 b(a)23 b Fh(um)g(arquiv)n(o)h(em)g(disco)603
2164b Ff(C-x)36 b(C-s)-450 1004 y Fh(salv)l(a)24 b Fe(to)r(dos)f
2165Fh(arquiv)n(os)h(ab)r(ertos)543 b Ff(C-x)36 b(s)-450
21661074 y Fe(insere)24 b Fh(outro)g(arquiv)n(o)g(neste)g(bu\013er)409
2167b Ff(C-x)36 b(i)-450 1144 y Fh(substitui)24 b(este)g(arquiv)n(o)g(p)r
2168(or)g(outro)463 b Ff(C-x)36 b(C-v)-450 1213 y Fh(salv)l(a)24
2169b(o)g(bu\013er)g(em)f(um)h(arquiv)n(o)g(esp)r(eci\014cado)155
2170b Ff(C-x)36 b(C-w)-450 1283 y Fh(alterna)22 b(o)g(estado)g(de)g(somen)n
2171(te)h(leitura)e(do)h(bu\013er)71 b Ff(C-x)36 b(C-q)-450
21721494 y Fg(Ajuda)h(\(Help\))-450 1661 y Fh(T)-6 b(ecle)24
2173b Ff(C-h)h Fh(\(ou)f Ff(F1)p Fh(\))h(e)f(siga)f(as)h(instru\030)-31
2174b(c~)c(oes.)-450 1759 y(remo)n(v)n(e)24 b(a)g(janela)g(de)g(a)t(juda)
2175666 b Ff(C-x)36 b(1)-450 1829 y Fh(rola)23 b(a)h(janela)g(de)g(a)t
2176(juda)766 b Ff(C-M-v)-450 1927 y Fh(aprop)r(os:)30 b(mostra)22
2177b(comandos)g(que)h(casam)e(com)h(a)-450 1997 y(string)990
21781927 y Ff(C-h)36 b(a)-450 2063 y Fh(descrev)n(e)25 b(fun\030)-31
2179b(c~)c(ao)24 b(asso)r(ciada)h(a)f(teclas)392 b Ff(C-h)36
2180b(k)-450 2132 y Fh(descrev)n(e)25 b(uma)f(fun\030)-31
2181b(c~)c(ao)803 b Ff(C-h)36 b(f)-450 2202 y Fh(busca)24
2182b(informa\030)-31 b(c~)c(oes)24 b(esp)r(ec)-8 b(\023)-27
2183b(\020\014cas)25 b(do)f(mo)r(do)249 b Ff(C-h)36 b(m)-450
21842405 y Fg(Recup)s(erando-se)g(de)h(Erros)-450 2561 y
2185Fe(ab)r(orta)22 b Fh(uma)i(op)r(era\030)-31 b(c~)c(ao)756
2186b Ff(C-g)-450 2631 y Fe(recup)r(era)24 b Fh(arquiv)n(os)f(ap\023)-35
2187b(os)25 b(crash)313 b Ff(M-x)36 b(recover-session)-450
21882700 y Fh(desfaz)24 b(uma)g(altera\030)-31 b(c~)c(ao)25
2189b(\()p Fe(undo)p Fh(\))400 b Ff(C-x)36 b(u,)g(C-_)g Fh(or)f
2190Ff(C-/)-450 2770 y Fh(restaura)24 b(um)f(bu\013er)h(para)g(o)g(arquiv)n
2191(o)252 b Ff(M-x)36 b(revert-buffer)-450 2840 y Fh(redesenha)25
2192b(a)f(tela)942 b Ff(C-l)-450 3024 y Fg(Busca)38 b(Incremen)m(tal)-450
21933179 y Fh(busca)24 b(para)g(fren)n(te)907 b Ff(C-s)-450
21943249 y Fh(busca)24 b(para)g(tr\023)-35 b(as)965 b Ff(C-r)-450
21953319 y Fh(busca)24 b(p)r(or)g(express~)-35 b(ao)24 b(regular)584
2196b Ff(C-M-s)-450 3389 y Fh(busca)24 b(p)r(or)g(express~)-35
2197b(ao)24 b(regular)g(para)f(tr\023)-35 b(as)282 b Ff(C-M-r)-450
21983487 y Fh(seleciona)24 b(a)g(string)g(de)g(p)r(esquisa)g(an)n(terior)
2199268 b Ff(M-p)-450 3557 y Fh(seleciona)24 b(a)g(string)g(seguin)n(te)h
2200(de)f(p)r(esquisa)260 b Ff(M-n)-450 3626 y Fh(sai)23
2201b(da)h(busca)h(incremen)n(tal)681 b Ff(RET)-450 3696
2202y Fh(desfaz)24 b(o)g(efeito)g(do)i(\023)-37 b(ultimo)24
2203b(caracter)413 b Ff(DEL)-450 3766 y Fh(encerra)24 b(a)g(busca)962
2204b Ff(C-g)-450 3864 y Fh(Use)28 b Ff(C-s)g Fh(ou)h Ff(C-r)f
2205Fh(no)n(v)l(amen)n(te)i(para)f(rep)r(etir)e(a)h(busca.)45
2206b Ff(C-g)29 b Fh(cancela)-450 3934 y(ap)r(enas)c(o)e(que)i(ainda)f(n~)
2207-35 b(ao)24 b(foi)f(feito.)-358 4131 y Fd(c)-375 4133
2208y Fc(\015)e Fd(2006)h(F)-5 b(ree)22 b(Soft)n(w)n(are)g(F)-5
2209b(oundation,)20 b(Inc.)27 b(P)n(ermissions)21 b(on)g(bac)n(k.)28
2210b(v2.3)1860 -364 y Fg(Mo)m(vimen)m(ta\030)-51 b(c)o(~)-56
2211b(ao)1860 -208 y Fe(a)n(v)-5 b(an\030)-36 b(car)1124
2212b(tr)o(\023)-40 b(as)109 b(fren)n(te)1860 -139 y Fh(um)24
2213b(caracter)1027 b Ff(C-b)142 b(C-f)1860 -69 y Fh(uma)24
2214b(pala)n(vra)1011 b Ff(M-b)142 b(M-f)1860 1 y Fh(uma)24
2215b(linha)1085 b Ff(C-p)142 b(C-n)1860 71 y Fh(para)24
2216b(in)-8 b(\023)-27 b(\020cio)23 b(ou)h(\014m)g(de)g(linha)579
2217b Ff(C-a)142 b(C-e)1860 140 y Fh(sen)n(ten\030)-31 b(ca)1136
2218b Ff(M-a)142 b(M-e)1860 210 y Fh(par\023)-35 b(agrafo)1103
2219b Ff(M-{)142 b(M-})1860 280 y Fh(p\023)-35 b(agina)1192
2220b Ff(C-x)36 b([)71 b(C-x)36 b(])1860 349 y Fh(sexp)1260
2221b Ff(C-M-b)72 b(C-M-f)1860 419 y Fh(fun\030)-31 b(c~)c(ao)1194
2222b Ff(C-M-a)72 b(C-M-e)1860 489 y Fh(para)24 b(in)-8 b(\023)-27
2223b(\020cio)23 b(ou)h(\014m)g(do)g(bu\013er)550 b Ff(M-<)142
2224b(M->)1860 587 y Fh(rolar)23 b(para)g(pr\023)-35 b(oxima)24
2225b(tela)721 b Ff(C-v)1860 657 y Fh(rolar)23 b(para)g(tela)i(an)n(terior)
2226732 b Ff(M-v)1860 727 y Fh(rolar)23 b(para)g(esquerda)843
2227b Ff(C-x)36 b(<)1860 796 y Fh(rolar)23 b(para)g(direita)911
2228b Ff(C-x)36 b(>)1860 866 y Fh(rolar)23 b(a)h(linha)f(corren)n(te)i
2229(para)e(o)h(cen)n(tro)h(da)f(tela)119 b Ff(C-u)36 b(C-l)1860
22301069 y Fg(Cortando)h(e)h(Apagando)1860 1225 y Fe(en)n(tidade)27
2231b(a)f(cortar)642 b(tr)o(\023)-40 b(as)250 b(fren)n(te)1860
22321295 y Fh(caracter)25 b(\(apaga,)g(n~)-35 b(ao)24 b(corta\))416
2233b Ff(DEL)283 b(C-d)1860 1364 y Fh(pala)n(vra)1027 b Ff(M-DEL)213
2234b(M-d)1860 1434 y Fh(linha)23 b(\(at)n(\023)-33 b(e)25
2235b(o)f(\014nal\))714 b Ff(M-0)36 b(C-k)142 b(C-k)1860
22361504 y Fh(sen)n(ten\030)-31 b(ca)995 b Ff(C-x)36 b(DEL)142
2237b(M-k)1860 1574 y Fh(sexp)1119 b Ff(M--)36 b(C-M-k)72
2238b(C-M-k)1860 1672 y Fh(corta)24 b Fe(regi)o(~)-40 b(ao)1044
2239b Ff(C-w)1860 1742 y Fh(copia)24 b(a)g Fe(regi)o(~)-40
2240b(ao)981 b Ff(M-w)1860 1811 y Fh(cortar)24 b(at)n(\023)-33
2241b(e)25 b(a)e(pr\023)-35 b(oxima)24 b(o)r(corr)n(^)-33
2242b(encia)24 b(de)g Fb(char)211 b Ff(M-z)36 b Fb(char)1860
22431910 y Fh(colar)24 b(a)h(\023)-37 b(ultima)24 b(coisa)g(cortada)582
2244b Ff(C-y)1860 1979 y Fh(substitui)24 b(a)i(\023)-37 b(ult.)31
2245b(colagem)24 b(p)r(ela)g(c\023)-35 b(opia)25 b(an)n(terior)106
2246b Ff(M-y)1860 2184 y Fg(Marcando)1860 2340 y Fh(p)r(osiciona)24
2247b(a)g(marca)g(aqui)730 b Ff(C-@)36 b Fh(or)f Ff(C-SPC)1860
22482410 y Fh(tro)r(ca)24 b(a)g(marca)g(p)r(elo)g(p)r(on)n(to)h(e)f(vice-v)
2249n(ersa)281 b Ff(C-x)36 b(C-x)1860 2508 y Fh(colo)r(ca)25
2250b(a)e(marca)h Fb(ar)l(g)30 b Fe(pala)n(vras)22 b Fh(adian)n(te)290
2251b Ff(M-@)1860 2578 y Fh(marca)24 b(o)g Fe(par)o(\023)-40
2252b(agrafo)829 b Ff(M-h)1860 2647 y Fh(marca)24 b(a)g Fe(p)o(\023)-40
2253b(agina)935 b Ff(C-x)36 b(C-p)1860 2717 y Fh(marca)24
2254b(a)g Fe(sexp)1012 b Ff(C-M-@)1860 2787 y Fh(marca)24
2255b(uma)g Fe(fun\030)-36 b(c)o(~)c(ao)839 b Ff(C-M-h)1860
22562857 y Fh(marca)24 b(to)r(do)g Fe(bu\013er)858 b Ff(C-x)36
2257b(h)1860 3041 y Fg(Busca)i(e)g(Substitui\030)-51 b(c)o(~)-56
2258b(ao)1860 3196 y Fh(Substitui)24 b(in)n(terativ)l(amen)n(te)i(uma)e
2259(string)300 b Ff(M-\045)1860 3266 y Fh(usando)25 b(express~)-35
2260b(ao)24 b(regular)301 b Ff(M-x)36 b(query-replace-regexp)1860
22613364 y Fh(Resp)r(ostas)24 b(v\023)-35 b(alidas)24 b(no)g(mo)r(do)g(de)g
2262(busca)h(e)f(substitui\030)-31 b(c~)c(ao)1860 3463 y
2263Fe(substitui)23 b Fh(esta,)h(e)g(prossegue)594 b Ff(SPC)1860
22643533 y Fh(substitui)24 b(esta)g(e)g(en)n(trada)h(e)f(n~)-35
2265b(ao)24 b(a)n(v)l(an\030)-31 b(ca)298 b Ff(,)1860 3602
2266y Fe(pula)23 b Fh(para)h(a)g(pr\023)-35 b(oxima)23 b(sem)h(substituir)
2267331 b Ff(DEL)1860 3672 y Fh(substitui)24 b(em)g(to)r(do)g(o)g(texto)h
2268(restan)n(te)388 b Ff(!)1860 3742 y Fe(v)n(olta)22 b
2269Fh(para)h(a)h(pala)n(vra)g(an)n(terior)530 b Ff(^)1860
22703811 y Fe(encerra)1177 b Ff(RET)1860 3881 y Fh(en)n(tra)24
2271b(na)g(edi\030)-31 b(c~)c(ao)25 b(recursiv)l(a)f(\()p
2272Ff(C-M-c)h Fh(para)f(sair\))121 b Ff(C-r)4241 -364 y
2273Fg(M)s(\023)-60 b(ultiplas)36 b(Janelas)4241 -223 y Fh(Quando)23
2274b(forem)e(mostrados)i(2)g(comandos,)g(o)f(segundo)i(tem)f(comp)r(or-)
22754241 -153 y(tamen)n(to)i(similar)d(para)i(frame.)4241
2276-59 y(elimina)f(to)r(das)h(outras)g(janelas)351 b Ff(C-x)36
2277b(1)212 b(C-x)36 b(5)g(1)4241 11 y Fh(divide)23 b(a)h(janela,)g(acima)f
2278(e)h(abaixo)261 b Ff(C-x)36 b(2)212 b(C-x)36 b(5)g(2)4241
227981 y Fh(elimina)23 b(esta)h(janela)640 b Ff(C-x)36 b(0)212
2280b(C-x)36 b(5)g(0)4241 175 y Fh(divide)23 b(a)h(janela,)g(lado)f(a)h
2281(lado)606 b Ff(C-x)36 b(3)4241 270 y Fh(rola)23 b(a)h(outra)g(janela)
2282870 b Ff(C-M-v)4241 365 y Fh(lev)l(a)24 b(o)f(cursor)h(para)f(outra)i
2283(janela)269 b Ff(C-x)36 b(o)212 b(C-x)36 b(5)g(o)4241
2284434 y Fh(seleciona)24 b(um)g(bu\013er)f(em)h(outra)g(janela)113
2285b Ff(C-x)36 b(4)g(b)141 b(C-x)36 b(5)g(b)4241 504 y Fh(mostra)23
2286b(um)h(bu\013er)g(em)f(outra)i(janela)171 b Ff(C-x)36
2287b(4)g(C-o)71 b(C-x)36 b(5)g(C-o)4241 574 y Fh(busca)24
2288b(um)g(arquiv)n(o)f(em)h(outra)g(janela)160 b Ff(C-x)36
2289b(4)g(f)141 b(C-x)36 b(5)g(f)4241 644 y Fh(busca)24 b(arquiv)n(o)g
2290(\(ro\))g(em)g(outra)g(janela)140 b Ff(C-x)36 b(4)g(r)141
2291b(C-x)36 b(5)g(r)4241 713 y Fh(executa)25 b(Dired)e(em)h(outra)g
2292(janela)279 b Ff(C-x)36 b(4)g(d)141 b(C-x)36 b(5)g(d)4241
2293783 y Fh(busca)24 b(tag)h(em)e(outra)h(janela)413 b Ff(C-x)36
2294b(4)g(.)141 b(C-x)36 b(5)g(.)4241 878 y Fh(aumen)n(ta)25
2295b(a)f(janela)f(na)h(v)n(ertical)563 b Ff(C-x)36 b(^)4241
2296948 y Fh(estreita)24 b(a)g(janela)948 b Ff(C-x)36 b({)4241
22971017 y Fh(alarga)23 b(a)h(janela)988 b Ff(C-x)36 b(})4241
22981202 y Fg(F)-10 b(ormatando)4241 1343 y Fh(iden)n(ta)24
2299b(a)g Fe(linha)f Fh(corren)n(te)h(\(mo)r(do\))473 b Ff(TAB)4241
23001413 y Fh(iden)n(ta)24 b(a)g Fe(regi)o(~)-40 b(ao)22
2301b Fh(\(mo)r(do\))706 b Ff(C-M-\\)4241 1482 y Fh(iden)n(ta)24
2302b(a)g Fe(sexp)g Fh(\(mo)r(do\))763 b Ff(C-M-q)4241 1552
2303y Fh(iden)n(ta)24 b(regi~)-35 b(ao)24 b(rigidamen)n(te)g
2304Fb(ar)l(g)30 b Fh(colunas)281 b Ff(C-x)36 b(TAB)4241
23051647 y Fh(insere)23 b(uma)h(no)n(v)l(a)g(linha)g(ap\023)-35
2306b(os)24 b(o)g(p)r(on)n(to)347 b Ff(C-o)4241 1717 y Fh(mo)n(v)n(e)24
2307b(o)g(restan)n(te)h(da)f(linha)f(para)h(baixo)329 b Ff(C-M-o)4241
23081786 y Fh(apaga)24 b(linhas)g(em)f(branco)i(em)e(torno)i(do)f(p)r(on)n
2309(to)112 b Ff(C-x)36 b(C-o)4241 1856 y Fh(jun)n(ta)24
2310b(a)g(linha)f(com)h(a)g(an)n(terior)572 b Ff(M-^)4241
23111926 y Fh(apaga)24 b(to)r(dos)h(brancos)f(em)g(torno)g(do)g(p)r(on)n
2312(to)212 b Ff(M-\\)4241 1995 y Fh(insere)23 b(um)g(espa\030)-31
2313b(co)25 b(em)f(branco)574 b Ff(M-SPC)4241 2090 y Fh(preenc)n(he)25
2314b(o)f(par\023)-35 b(agrafo)797 b Ff(M-q)4241 2160 y Fh(de\014ne)24
2315b(a)g(coluna)h(limite)e(de)h(preenc)n(himen)n(to)215
2316b Ff(C-x)36 b(f)4241 2230 y Fh(de\014ne)24 b(um)g(pre\014xo)g(para)g
2317(cada)h(linha)403 b Ff(C-x)36 b(.)4241 2324 y Fh(formata)23
2318b(fon)n(te)1024 b Ff(M-o)4241 2490 y Fg(Mai)s(\023)-60
2319b(usculas)36 b(e)i(Min)s(\023)-60 b(usculas)4241 2631
2320y Fh(P)n(ala)n(vra)23 b(para)h(mai)r(\023)-37 b(usculas)688
2321b Ff(M-u)4241 2701 y Fh(P)n(ala)n(vra)23 b(para)h(min)r(\023)-37
2322b(usculas)684 b Ff(M-l)4241 2770 y Fh(Primeira)22 b(letra)h(mai)r(\023)
2323-37 b(uscula)24 b(\(capitalize\))312 b Ff(M-c)4241 2865
2324y Fh(Regi~)-35 b(ao)24 b(para)g(mai)r(\023)-37 b(usculas)713
2325b Ff(C-x)36 b(C-u)4241 2935 y Fh(Regi~)-35 b(ao)24 b(para)g(min)r(\023)
2326-37 b(usculas)709 b Ff(C-x)36 b(C-l)4241 3120 y Fg(O)i(Minibu\013er)
23274241 3260 y Fh(As)23 b(teclas)h(seguin)n(tes)h(s~)-35
2328b(ao)24 b(de\014nidas)g(no)g(minibu\013er.)4241 3355
2329y(complete)h(o)e(m\023)-35 b(aximo)24 b(p)r(ossi)-8 b(\023)-27
2330b(\020v)n(el)557 b Ff(TAB)4241 3425 y Fh(complete)25
2331b(at)n(\023)-33 b(e)24 b(uma)g(pala)n(vra)641 b Ff(SPC)4241
23323494 y Fh(complete)25 b(e)e(execute)861 b Ff(RET)4241
23333564 y Fh(mostre)23 b(as)h(op\030)-31 b(c~)c(oes)25 b(para)f(completar)
2334432 b Ff(?)4241 3634 y Fh(busca)24 b(a)g(en)n(trada)h(an)n(terior)e(no)
2335h(minibu\013er)250 b Ff(M-p)4241 3704 y Fh(busca)25 b(a)h(pr\023)-35
2336b(oxima)25 b(en)n(trada)h(no)g(minibu\013er)e(ou)i(o)4241
23373773 y(default)5681 3704 y Ff(M-n)4241 3826 y Fh(busca)e(regexp)g(no)g
2338(hist\023)-35 b(orico)24 b(para)g(tr\023)-35 b(as)355
2339b Ff(M-r)4241 3896 y Fh(busca)24 b(regexp)g(no)g(hist\023)-35
2340b(orico)24 b(para)g(fren)n(te)297 b Ff(M-s)4241 3966
2341y Fh(encerra)24 b(o)f(comando)862 b Ff(C-g)4241 4060
2342y Fh(T)-6 b(ecle)22 b Ff(C-x)37 b(ESC)f(ESC)23 b Fh(para)f(editar)g(e)h
2343(rep)r(etir)f(o)i(\023)-37 b(ultimo)22 b(comando)i(uti-)4241
23444130 y(lizado.)31 b(T)-6 b(ecle)24 b Ff(F10)h Fh(para)e(ativ)l(ar)h(o)g
2345(men)n(u.)p eop end
2346%%Page: 2 2
2347TeXDict begin @landscape 2 1 bop -555 -364 a Fi(GNU)45
2348b(Emacs:)62 b(Cart)o(~)-68 b(ao)45 b(de)i(Refer)m(^)-66
2349b(encia)259 -266 y Fh(\(para)24 b(v)n(ers~)-35 b(ao)24
2350b(22\))-450 -61 y Fg(Bu\013ers)-450 93 y Fh(seleciona)g(outro)h
2351(bu\013er)779 b Ff(C-x)36 b(b)-450 163 y Fh(lista)23
2352b(to)r(dos)i(bu\013ers)890 b Ff(C-x)36 b(C-b)-450 233
2353y Fh(mata)24 b(um)g(bu\013er)960 b Ff(C-x)36 b(k)-450
2354415 y Fg(T)-10 b(ransp)s(osi\030)-51 b(c)o(~)-56 b(ao)-450
2355569 y Fh(transp~)-35 b(oe)25 b Fe(caracteres)795 b Ff(C-t)-450
2356638 y Fh(transp~)-35 b(oe)25 b Fe(pala)n(vras)858 b Ff(M-t)-450
2357708 y Fh(transp~)-35 b(oe)25 b Fe(linhas)945 b Ff(C-x)36
2358b(C-t)-450 778 y Fh(transp~)-35 b(oe)25 b Fe(sexps)964
2359b Ff(C-M-t)-450 979 y Fg(Corre\030)-51 b(c)o(~)-56 b(ao)38
2360b(Ortogr)o(\023)-56 b(a\014ca)-450 1133 y Fh(v)n(eri\014ca)24
2361b(a)g(pala)n(vra)g(corren)n(te)639 b Ff(M-$)-450 1203
2362y Fh(v)n(eri\014ca)24 b(to)r(das)h(pala)n(vras)e(de)i(uma)e(regi~)-35
2363b(ao)152 b Ff(M-x)36 b(ispell-region)-450 1272 y Fh(v)n(eri\014ca)24
2364b(to)r(do)h(o)f(bu\013er)656 b Ff(M-x)36 b(ispell-buffer)-450
23651474 y Fg(T)-10 b(ags)-450 1628 y Fh(busca)24 b(uma)g(tag)h(\(uma)f
2366(de\014ni\030)-31 b(c~)c(ao\))485 b Ff(M-.)-450 1698
2367y Fh(encon)n(tra)25 b(a)f(pr\023)-35 b(oxima)23 b(o)r(corr)n(^)-33
2368b(encia)25 b(da)f(tag)282 b Ff(C-u)36 b(M-.)-450 1768
2369y Fh(esp)r(eci\014ca)25 b(um)f(no)n(v)n(o)g(arquiv)n(o)g(de)g(tags)142
2370b Ff(M-x)36 b(visit-tags-table)-450 1866 y Fh(busca)24
2371b(p)r(or)g(regexp)g(em)g(to)r(dos)h(arquiv)n(os)188 b
2372Ff(M-x)36 b(tags-search)-450 1936 y Fh(busca)24 b(e)g(subst.)32
2373b(em)23 b(to)r(dos)i(arquiv)n(os)119 b Ff(M-x)36 b(tags-query-replace)
2374-450 2005 y Fh(con)n(tin)n(ua)c(a)h(\023)-37 b(ultima)31
2375b(busca)h(ou)f(busca)h(e)f(substi-)-450 2075 y(tui\030)-31
2376b(c~)c(ao)990 2005 y Ff(M-,)-450 2274 y Fg(Shells)-450
23772428 y Fh(executa)26 b(um)d(comando)i(do)f(shell)528
2378b Ff(M-!)-450 2498 y Fh(executa)26 b(um)d(comando)i(do)f(shell)f(na)h
2379(regi~)-35 b(ao)223 b Ff(M-|)-450 2568 y Fh(\014ltra)24
2380b(uma)f(regi~)-35 b(ao)24 b(p)r(or)g(um)f(comando)i(do)f(shell)120
2381b Ff(C-u)36 b(M-|)-450 2638 y Fh(inicia)23 b(um)h(shell)f(na)h(janela)g
2382Ff(*shell*)420 b(M-x)36 b(shell)-450 2839 y Fg(Ret)o(^)-56
2383b(angulos)-450 2993 y Fh(copia)24 b(o)g(ret^)-35 b(angulo)25
2384b(para)f(o)f(registrador)330 b Ff(C-x)36 b(r)g(r)-450
23853062 y Fh(corta)24 b(o)g(ret^)-35 b(angulo)912 b Ff(C-x)36
2386b(r)g(k)-450 3132 y Fh(cola)24 b(o)g(ret^)-35 b(angulo)947
2387b Ff(C-x)36 b(r)g(y)-450 3202 y Fh(abre)24 b(o)g(ret^)-35
2388b(angulo,)24 b(mo)n(v)n(e)g(o)g(texto)h(para)f(direita)107
2389b Ff(C-x)36 b(r)g(o)-450 3272 y Fh(tro)r(ca)24 b(p)r(or)g(espa\030)-31
2390b(cos)25 b(o)e(con)n(te)r(\023)-37 b(udo)26 b(do)e(ret^)-35
2391b(angulo)133 b Ff(C-x)36 b(r)g(c)-450 3341 y Fh(an)n(tep~)-35
2392b(oe)26 b(uma)e(linha)f(a)h(string)610 b Ff(C-x)36 b(r)g(t)-450
23933542 y Fg(Abreviaturas)-450 3696 y Fh(adiciona)24 b(uma)g(abreviatura)h
2394(global)442 b Ff(C-x)36 b(a)g(g)-450 3766 y Fh(adiciona)24
2395b(abreviatura)h(ao)f(mo)r(do)g(lo)r(cal)352 b Ff(C-x)36
2396b(a)g(l)-450 3836 y Fh(adiciona)24 b(globalmen)n(te)h(expans~)-35
2397b(ao)26 b(de)e(abrev.)179 b Ff(C-x)36 b(a)g(i)f(g)-450
23983906 y Fh(adiciona)24 b(lo)r(calmen)n(te)h(expans~)-35
2399b(ao)25 b(de)g(abrev.)220 b Ff(C-x)36 b(a)g(i)f(l)-450
24003975 y Fh(explicitamen)n(te)25 b(expande)h(uma)e(abrev)366
2401b Ff(C-x)36 b(a)g(e)-450 4073 y Fh(completa)24 b(pala)n(vras)e(com)h
2402(base)g(em)f(pala)n(vras)g(an-)-450 4143 y(teriores)990
24034073 y Ff(M-/)1860 -364 y Fg(Express~)-57 b(oes)39 b(Regulares)1860
2404-208 y Fh(qualquer)24 b(caracter)h(menos)f(no)n(v)l(a)g(linha)346
2405b Ff(.)71 b Fh(\(dot\))1860 -139 y(zero)24 b(ou)g(mais)f(rep)r(eti\030)
2406-31 b(c~)c(oes)725 b Ff(*)1860 -69 y Fh(uma)24 b(ou)g(mais)f(rep)r
2407(eti\030)-31 b(c~)c(oes)717 b Ff(+)1860 1 y Fh(zero)24
2408b(ou)g(uma)g(rep)r(eti\030)-31 b(c~)c(ao)757 b Ff(?)1860
240971 y Fh(protege)25 b(o)f(caracter)g(esp)r(ecial)h Fb(c)565
2410b Ff(\\)p Fb(c)1860 140 y Fh(\(\\or"\))1253 b Ff(\\|)1860
2411210 y Fh(agrupamen)n(to)1040 b Ff(\\\()36 b Fa(:)11 b(:)h(:)34
2412b Ff(\\\))1860 280 y Fh(mesmo)24 b(texto)h(que)f Fb(n)5
2413b Fh(-)n(\023)-33 b(esimo)24 b(grup)r(o)447 b Ff(\\)p
2414Fb(n)1860 349 y Fh(quebra)24 b(de)g(pala)n(vra)886 b
2415Ff(\\b)1860 419 y Fh(sem)24 b(quebra)g(de)g(pala)n(vra)744
2416b Ff(\\B)1860 518 y Fe(en)n(tidade)707 b(casa)26 b(in)-9
2417b(\023)-32 b(\020cio)70 b(casa)26 b(\014m)1860 587 y
2418Fh(linha)856 b Ff(^)400 b($)1860 657 y Fh(pala)n(vra)782
2419b Ff(\\<)365 b(\\>)1860 727 y Fh(bu\013er)831 b Ff(\\`)365
2420b(\\')1860 796 y Fe(classe)27 b(de)g(caracteres)315 b(casa)26
2421b(esses)91 b(casa)26 b(os)h(outros)1860 866 y Fh(conjun)n(to)e(expl)-8
2422b(\023)-27 b(\020cito)459 b Ff([)35 b Fa(:)12 b(:)f(:)35
2423b Ff(])212 b([^)36 b Fa(:)11 b(:)g(:)35 b Ff(])1860 936
2424y Fh(caracter)25 b(de)f(sin)n(taxe)g(de)g(pala)n(vra)84
2425b Ff(\\w)365 b(\\W)1860 1006 y Fh(caracter)25 b(de)f(sin)n(taxe)g(de)g
2426Fb(c)278 b Ff(\\s)p Fb(c)332 b Ff(\\S)p Fb(c)1860 1201
2427y Fg(Conjun)m(tos)37 b(de)g(Carac.)50 b(In)m(ternacionais)1860
24281357 y Fh(esp)r(eci\014ca)25 b(uma)f(l)-8 b(\023)-27
2429b(\020ngua)24 b(principal)488 b Ff(C-x)36 b(RET)g(l)1860
24301427 y Fh(mostra)24 b(to)r(dos)g(m)n(\023)-33 b(eto)r(dos)25
2431b(de)f(inser\030)-31 b(c~)c(ao)96 b Ff(M-x)36 b(list-input-methods)1860
24321496 y Fh(habilita/desabilita)24 b(um)g(m)n(\023)-33
2433b(eto)r(do)25 b(de)f(inser\030)-31 b(c~)c(ao)136 b Ff(C-\\)1860
24341566 y Fh(determina)24 b(o)g(sistema)g(de)g(co)r(di\014ca\030)-31
2435b(c~)c(ao)369 b Ff(C-x)36 b(RET)g(c)1860 1636 y Fh(mostra)24
2436b(sistemas)f(de)h(co)r(di\014ca\030)-31 b(c~)c(ao)166
2437b Ff(M-x)37 b(list-coding-systems)1860 1706 y Fh(escolhe)25
2438b(a)e(co)r(di\014ca\030)-31 b(c~)c(ao)26 b(preferida)143
2439b Ff(M-x)36 b(prefer-coding-system)1860 1911 y Fg(Info)1860
24402066 y Fh(en)n(tra)24 b(no)g(leitor)g(de)g(Info)760 b
2441Ff(C-h)36 b(i)1860 2136 y Fh(busca)24 b(fun\030)-31 b(c~)c(ao)25
2442b(ou)f(arquiv)n(o)g(no)g(Info)448 b Ff(C-h)36 b(S)1860
24432234 y Fh(Mo)n(vimen)n(ta\030)-31 b(c~)c(ao)25 b(em)f(um)g(no)r(do:)
24441931 2333 y(rola)f(para)h(fren)n(te)891 b Ff(SPC)1931
24452402 y Fh(rola)23 b(para)h(tr\023)-35 b(as)949 b Ff(DEL)1931
24462472 y Fh(in)-8 b(\023)-27 b(\020cio)23 b(do)h(no)r(do)933
2447b Ff(.)71 b Fh(\(dot\))1860 2570 y(Mo)n(vimen)n(ta\030)-31
2448b(c~)c(ao)25 b(en)n(tre)g(no)r(dos:)1931 2669 y Fe(pr\023)-41
2449b(oximo)22 b Fh(no)r(do)902 b Ff(n)1931 2738 y Fh(no)r(do)24
2450b Fe(an)n(terior)911 b Ff(p)1931 2808 y Fh(mo)n(v)n(er)23
2451b(cima)h Fe(cima)824 b Ff(u)1931 2878 y Fh(seleciona)24
2452b(item)g(do)g(men)n(u)g(p)r(elo)g(nome)311 b Ff(m)1931
24532948 y Fh(seleciona)24 b Fb(n)5 b Fh(-)n(\023)-33 b(esimo)23
2454b(item)h(do)g(men)n(u)385 b Fb(n)1931 3017 y Fh(segue)24
2455b(refer)n(^)-33 b(encia)24 b(cruzada)h(\(return)f(with)f
2456Ff(l)p Fh(\))133 b Ff(f)1931 3087 y Fh(retorna)26 b(\023)-37
2457b(ultimo)23 b(no)r(do)i(visitado)483 b Ff(l)1931 3157
2458y Fh(retorna)24 b(ao)g(diret\023)-35 b(orio)23 b(de)h(no)r(dos)470
2459b Ff(d)1931 3227 y Fh(ir)22 b(para)i(o)g(top)r(o)h(do)f(arquiv)n(o)f
2460(Info)445 b Ff(t)1931 3296 y Fh(ir)22 b(para)i(qualquer)g(no)r(do)h(p)r
2461(or)e(nome)382 b Ff(g)1860 3395 y Fh(Outros:)1931 3493
2462y(executar)25 b Fe(tutorial)c Fh(do)j(Info)575 b Ff(h)1931
24633563 y Fe(sair)22 b Fh(Info)1097 b Ff(q)1931 3633 y Fh(busca)24
2464b(p)r(or)f(express~)-35 b(ao)25 b(regular)513 b Ff(M-s)4170
2465-364 y Fg(Registrador)4170 -208 y Fh(salv)l(a)24 b(regi~)-35
2466b(ao)24 b(em)f(um)h(registrador)488 b Ff(C-x)36 b(r)g(s)4170
2467-139 y Fh(insere)23 b(o)h(con)n(te)r(\023)-37 b(udo)26
2468b(do)e(registrador)f(no)h(bu\013er)150 b Ff(C-x)36 b(r)g(i)4170
2469-40 y Fh(salv)l(a)24 b(v)l(alor)f(do)h(p)r(on)n(to)h(no)f(registrador)
2470361 b Ff(C-x)36 b(r)g(SPC)4170 29 y Fh(salta)24 b(para)g(o)g(p)r(on)n
2471(to)h(salv)n(o)e(no)h(registrador)243 b Ff(C-x)36 b(r)g(j)4170
2472234 y Fg(Macros)i(de)g(T)-10 b(eclado)4170 390 y Fe(inicia)22
2473b Fh(a)i(de\014ni\030)-31 b(c~)c(ao)25 b(de)f(uma)g(macro)436
2474b Ff(C-x)36 b(\()4170 460 y Fe(encerra)23 b Fh(a)h(de\014ni\030)-31
2475b(c~)c(ao)25 b(de)f(uma)g(macro)362 b Ff(C-x)36 b(\))4170
2476529 y Fe(executa)24 b Fh(a)h(\023)-37 b(ultima)24 b(macro)g(de\014nida)
2477410 b Ff(C-x)36 b(e)4170 599 y Fh(adiciona)24 b(a)i(\023)-37
2478b(ultima)24 b(macro)f(de\014nida)426 b Ff(C-u)36 b(C-x)g(\()4170
2479669 y Fh(nomeia)24 b(a)i(\023)-37 b(ultima)23 b(macro)h(de\014nida)129
2480b Ff(M-x)37 b(name-last-kbd-macro)4170 739 y Fh(insere)23
2481b(uma)h(de\014ni\030)-31 b(c~)c(ao)25 b(em)f(Lisp)318
2482b Ff(M-x)36 b(insert-kbd-macro)4170 942 y Fg(Lidando)h(com)i(Emacs)f
2483(Lisp)4170 1097 y Fh(a)n(v)l(alia)24 b Fe(sexp)g Fh(an)n(tes)h(do)f(p)r
2484(on)n(to)603 b Ff(C-x)36 b(C-e)4170 1167 y Fh(a)n(v)l(alia)24
2485b(a)g Fe(defun)g Fh(corren)n(te)712 b Ff(C-M-x)4170 1237
2486y Fh(a)n(v)l(alia)24 b(a)g Fe(regi)o(~)-40 b(ao)824 b
2487Ff(M-x)36 b(eval-region)4170 1306 y Fh(l)n(^)-33 b(e)23
2488b(e)h(a)n(v)l(alia)g(o)g(minibu\013er)736 b Ff(M-:)4170
24891376 y Fh(carrega)24 b(do)g(diret\023)-35 b(orio)23 b(padr~)-35
2490b(ao)25 b(do)f(sistema)106 b Ff(M-x)36 b(load-library)4170
24911581 y Fg(P)m(ersonaliza\030)-51 b(c)o(~)-56 b(ao)37
2492b(Simples)4170 1737 y Fh(p)r(ersonaliza)24 b(v)l(ari\023)-35
2493b(av)n(eis)24 b(e)g(fon)n(tes)408 b Ff(M-x)36 b(customize)4170
24941835 y Fh(F)-6 b(azendo)25 b(teclas)g(de)f(atalho)h(globais)e(em)h
2495(Emacs)g(Lisp)f(\(exemplos\):)4170 1933 y Ff(\(global-set-key)40
2496b("\\C-cg")d('goto-line\))4170 2003 y(\(global-set-key)j("\\M-#")d
2497('query-replace-regexp\))4170 2208 y Fg(Escrev)m(endo)h(Comandos)4170
24982364 y Ff(\(defun)f Fb(c)l(ommand-name)43 b Ff(\()p Fb(ar)l(gs)5
2499b Ff(\))4241 2433 y(")p Fb(do)l(cumentation)g Ff(")38
2500b(\(interactive)g(")p Fb(template)5 b Ff("\))4241 2503
2501y Fb(b)l(o)l(dy)h Ff(\))4170 2601 y Fh(Um)23 b(exemplo:)4170
25022700 y Ff(\(defun)37 b(this-line-to-top-of-win)q(dow)42
2503b(\(line\))4241 2769 y("Reposition)c(line)e(point)h(is)f(on)g(to)g(top)
2504g(of)g(window.)4170 2839 y(With)g(ARG,)h(put)f(point)h(on)f(line)g
2505(ARG.")4241 2909 y(\(interactive)i("P"\))4241 2979 y(\(recenter)f(\(if)
2506g(\(null)f(line\))4735 3048 y(0)4664 3118 y(\(prefix-numeric-value)41
2507b(line\)\)\)\))4170 3216 y Fh(A)19 b(esp)r(eci\014cao)i
2508Ff(interactive)i Fh(explica)d(como)g(in)n(terativ)l(amen)n(te)i(ler)d
2509(ar-)4170 3286 y(gumen)n(tos.)32 b(T)-6 b(ecle)25 b Ff(C-h)36
2510b(f)f(interactive)27 b Fh(para)d(mais)f(detalhes.)4463
25113550 y Fd(Cop)n(yrigh)n(t)4766 3548 y(c)4749 3550 y Fc(\015)e
2512Fd(2006)h(F)-5 b(ree)22 b(Soft)n(w)n(are)h(F)-5 b(oundation,)20
2513b(Inc.)4627 3606 y(v2.3)i(for)f(GNU)f(Emacs)h(v)n(ersion)h(22,)f(2006)
25144760 3661 y(designed)f(b)n(y)h(Stephen)f(Gildea)4170
25153746 y(P)n(ermission)28 b(is)f(gran)n(ted)i(to)f(mak)n(e)h(and)e
2516(distribute)f(copies)j(of)f(this)f(card)h(pro-)4170 3802
2517y(vided)23 b(the)h(cop)n(yrigh)n(t)h(notice)g(and)f(this)f(p)r
2518(ermission)h(notice)g(are)h(preserv)n(ed)g(on)4170 3857
2519y(all)20 b(copies.)4170 3942 y(F)-5 b(or)21 b(copies)g(of)g(the)g(GNU)e
2520(Emacs)i(man)n(ual,)f(write)h(to)g(the)f(F)-5 b(ree)22
2521b(Soft)n(w)n(are)g(F)-5 b(oun-)4170 3998 y(dation,)29
2522b(Inc.,)g(51)g(F)-5 b(ranklin)28 b(Street,)h(Fifth)f(Flo)r(or,)h
2523(Boston,)i(MA)d(02110-1301)4170 4053 y(USA)p eop end
2524%%Trailer
2525
2526userdict /end-hook known{end-hook}if
2527%%EOF
diff --git a/etc/pt-br-refcard.tex b/etc/pt-br-refcard.tex
new file mode 100644
index 00000000000..900855911d7
--- /dev/null
+++ b/etc/pt-br-refcard.tex
@@ -0,0 +1,686 @@
1% Reference Card for GNU Emacs version 22 on Unix systems
2%**start of header
3\newcount\columnsperpage
4\newcount\letterpaper
5
6% This file can be printed with 1, 2, or 3 columns per page (see below).
7% Specify how many you want here.
8
9\columnsperpage=3
10
11% Set letterpapaer to 0 for A4 paper, 1 for letter (US) paper. Useful
12% only when columnsperpage is 2 or 3.
13
14\letterpaper=0
15
16% Nothing else needs to be changed below this line.
17% Copyright (C) 1987, 1993, 1996, 1997, 2002, 2003, 2004,
18% 2006 Free Software Foundation, Inc.
19
20% This file is part of GNU Emacs.
21
22% GNU Emacs is free software; you can redistribute it and/or modify
23% it under the terms of the GNU General Public License as published by
24% the Free Software Foundation; either version 2, or (at your option)
25% any later version.
26
27% GNU Emacs is distributed in the hope that it will be useful,
28% but WITHOUT ANY WARRANTY; without even the implied warranty of
29% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30% GNU General Public License for more details.
31
32% You should have received a copy of the GNU General Public License
33% along with GNU Emacs; see the file COPYING. If not, write to
34% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
35% Boston, MA 02110-1301, USA.
36
37% This file is intended to be processed by plain TeX (TeX82).
38%
39% The final reference card has six columns, three on each side.
40% This file can be used to produce it in any of three ways:
41% 1 column per page
42% produces six separate pages, each of which needs to be reduced to 80%.
43% This gives the best resolution.
44% 2 columns per page
45% produces three already-reduced pages.
46% You will still need to cut and paste.
47% 3 columns per page
48% produces two pages which must be printed sideways to make a
49% ready-to-use 8.5 x 11 inch reference card.
50% For this you need a dvi device driver that can print sideways.
51% Which mode to use is controlled by setting \columnsperpage above.
52%
53% To compile and print this document:
54% tex refcard.tex
55% dvips -t landscape refcard.dvi
56%
57% Author:
58% Stephen Gildea
59% Internet: gildea@stop.mail-abuse.org
60%
61% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
62% for their many good ideas.
63
64% If there were room, it would be nice to see a section on Dired.
65
66% Translated from English to Portuguese by Rodrigo Real, send comments
67% and suggestions to rreal@ucpel.tche.br. Thanks to Mario Goulart for
68% the opinions.
69
70
71\def\versionnumber{2.3}
72\def\year{2006}
73
74\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
75 \centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
76 Permissions on back. v\versionnumber}}
77
78\def\copyrightnotice{
79\vskip 1ex plus 2 fill\begingroup\small
80\centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.}
81\centerline{v\versionnumber{} for GNU Emacs version 22, \year}
82\centerline{designed by Stephen Gildea}
83
84Permission is granted to make and distribute copies of
85this card provided the copyright notice and this permission notice
86are preserved on all copies.
87
88For copies of the GNU Emacs manual, write to the Free Software
89Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
90
91\endgroup}
92
93% make \bye not \outer so that the \def\bye in the \else clause below
94% can be scanned without complaint.
95\def\bye{\par\vfill\supereject\end}
96
97\newdimen\intercolumnskip %horizontal space between columns
98\newbox\columna %boxes to hold columns already built
99\newbox\columnb
100
101\def\ncolumns{\the\columnsperpage}
102
103\message{[\ncolumns\space
104 column\if 1\ncolumns\else s\fi\space per page]}
105
106\def\scaledmag#1{ scaled \magstep #1}
107
108% This multi-way format was designed by Stephen Gildea October 1986.
109% Note that the 1-column format is fontfamily-independent.
110\if 1\ncolumns %one-column format uses normal size
111 \hsize 4in
112 \vsize 10in
113 \voffset -.7in
114 \font\titlefont=\fontname\tenbf \scaledmag3
115 \font\headingfont=\fontname\tenbf \scaledmag2
116 \font\smallfont=\fontname\sevenrm
117 \font\smallsy=\fontname\sevensy
118
119 \footline{\hss\folio}
120 \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}}
121\else %2 or 3 columns uses prereduced size
122 \hsize 3.2in
123 \if 1\the\letterpaper
124 \vsize 7.95in
125 \else
126 \vsize 7.65in
127 \fi
128 \hoffset -.75in
129 \voffset -.745in
130 \font\titlefont=cmbx10 \scaledmag2
131 \font\headingfont=cmbx10 \scaledmag1
132 \font\smallfont=cmr6
133 \font\smallsy=cmsy6
134 \font\eightrm=cmr8
135 \font\eightbf=cmbx8
136 \font\eightit=cmti8
137 \font\eighttt=cmtt8
138 \font\eightmi=cmmi8
139 \font\eightsy=cmsy8
140 \textfont0=\eightrm
141 \textfont1=\eightmi
142 \textfont2=\eightsy
143 \def\rm{\eightrm}
144 \def\bf{\eightbf}
145 \def\it{\eightit}
146 \def\tt{\eighttt}
147 \if 1\the\letterpaper
148 \normalbaselineskip=.8\normalbaselineskip
149 \else
150 \normalbaselineskip=.7\normalbaselineskip
151 \fi
152 \normallineskip=.8\normallineskip
153 \normallineskiplimit=.8\normallineskiplimit
154 \normalbaselines\rm %make definitions take effect
155
156 \if 2\ncolumns
157 \let\maxcolumn=b
158 \footline{\hss\rm\folio\hss}
159 \def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}}
160 \else \if 3\ncolumns
161 \let\maxcolumn=c
162 \nopagenumbers
163 \else
164 \errhelp{You must set \columnsperpage equal to 1, 2, or 3.}
165 \errmessage{Illegal number of columns per page}
166 \fi\fi
167
168%% \intercolumnskip=.46in
169 \intercolumnskip=.65in
170 \def\abc{a}
171 \output={% %see The TeXbook page 257
172 % This next line is useful when designing the layout.
173 %\immediate\write16{Column \folio\abc\space starts with \firstmark}
174 \if \maxcolumn\abc \multicolumnformat \global\def\abc{a}
175 \else\if a\abc
176 \global\setbox\columna\columnbox \global\def\abc{b}
177 %% in case we never use \columnb (two-column mode)
178 \global\setbox\columnb\hbox to -\intercolumnskip{}
179 \else
180 \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi}
181 \def\multicolumnformat{\shipout\vbox{\makeheadline
182 \hbox{\box\columna\hskip\intercolumnskip
183 \box\columnb\hskip\intercolumnskip\columnbox}
184 \makefootline}\advancepageno}
185 \def\columnbox{\leftline{\pagebody}}
186
187 \def\bye{\par\vfill\supereject
188 \if a\abc \else\null\vfill\eject\fi
189 \if a\abc \else\null\vfill\eject\fi
190 \end}
191\fi
192
193% we won't be using math mode much, so redefine some of the characters
194% we might want to talk about
195\catcode`\^=12
196\catcode`\_=12
197
198\chardef\\=`\\
199\chardef\{=`\{
200\chardef\}=`\}
201
202\hyphenation{mini-buf-fer}
203
204\parindent 0pt
205\parskip 1ex plus .5ex minus .5ex
206
207\def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip}
208
209% newcolumn - force a new column. Use sparingly, probably only for
210% the first column of a page, which should have a title anyway.
211\outer\def\newcolumn{\vfill\eject}
212
213% title - page title. Argument is title text.
214\outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex}
215
216% section - new major section. Argument is section name.
217\outer\def\section#1{\par\filbreak
218 \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}%
219 \vskip 2ex plus 1ex minus 1.5ex}
220
221\newdimen\keyindent
222
223% beginindentedkeys...endindentedkeys - key definitions will be
224% indented, but running text, typically used as headings to group
225% definitions, will not.
226\def\beginindentedkeys{\keyindent=1em}
227\def\endindentedkeys{\keyindent=0em}
228\endindentedkeys
229
230% paralign - begin paragraph containing an alignment.
231% If an \halign is entered while in vertical mode, a parskip is never
232% inserted. Using \paralign instead of \halign solves this problem.
233\def\paralign{\vskip\parskip\halign}
234
235% \<...> - surrounds a variable name in a code example
236\def\<#1>{{\it #1\/}}
237
238% kbd - argument is characters typed literally. Like the Texinfo command.
239\def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows
240
241% beginexample...endexample - surrounds literal text, such a code example.
242% typeset in a typewriter font with line breaks preserved
243\def\beginexample{\par\leavevmode\begingroup
244 \obeylines\obeyspaces\parskip0pt\tt}
245{\obeyspaces\global\let =\ }
246\def\endexample{\endgroup}
247
248% key - definition of a key.
249% \key{description of key}{key-name}
250% prints the description left-justified, and the key-name in a \kbd
251% form near the right margin.
252\def\key#1#2{\leavevmode\hbox to \hsize{\vtop
253 {\hsize=.75\hsize\rightskip=1em
254 \hskip\keyindent\relax#1}\kbd{#2}\hfil}}
255
256\newbox\metaxbox
257\setbox\metaxbox\hbox{\kbd{M-x }}
258\newdimen\metaxwidth
259\metaxwidth=\wd\metaxbox
260
261% metax - definition of a M-x command.
262% \metax{description of command}{M-x command-name}
263% Tries to justify the beginning of the command name at the same place
264% as \key starts the key name. (The "M-x " sticks out to the left.)
265\def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize
266 {\hskip\keyindent\relax#1\hfil}%
267 \hskip -\metaxwidth minus 1fil
268 \kbd{#2}\hfil}}
269
270% threecol - like "key" but with two key names.
271% for example, one for doing the action backward, and one for forward.
272\def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\hfil\quad
273 &\kbd{#3}\hfil\quad\cr}
274
275
276%**end of header
277
278
279\title{GNU Emacs: Cart\~ao de Refer\^encia}
280\centerline{(para vers\~ao 22)}
281
282\section{Iniciando o Emacs}
283
284Para entrar no GNU Emacs, digite: \kbd{emacs}
285
286\section{Saindo do Emacs}
287
288\key{suspende ou minimiza o Emacs}{C-z}
289\key{encerra o Emacs}{C-x C-c}
290
291\section{Arquivos}
292
293\key{{\bf abre} um arquivo}{C-x C-f}
294\key{{\bf salva} um arquivo em disco}{C-x C-s}
295\key{salva {\bf todos} arquivos abertos}{C-x s}
296\key{{\bf insere} outro arquivo neste buffer}{C-x i}
297\key{substitui este arquivo por outro}{C-x C-v}
298\key{salva o buffer em um arquivo especificado}{C-x C-w}
299\key{alterna o estado de somente leitura do buffer}{C-x C-q}
300
301\section{Ajuda (Help)}
302
303Tecle \kbd{C-h} (ou \kbd{F1}) e siga as instru{\c{c}}{\~o}es.
304
305\key{remove a janela de ajuda}{C-x 1}
306\key{rola a janela de ajuda}{C-M-v}
307
308\key{apropos: mostra comandos que casam com a string}{C-h a}
309\key{descreve fun{\c{c}}{\~a}o associada a teclas}{C-h k}
310\key{descreve uma fun{\c{c}}{\~a}o}{C-h f}
311\key{busca informa{\c{c}}{\~o}es espec{\'\i}ficas do modo}{C-h m}
312
313\section{Recuperando-se de Erros}
314
315\key{{\bf aborta} uma opera{\c{c}}{\~a}o}{C-g}
316\metax{{\bf recupera} arquivos ap{\'o}s crash}{M-x recover-session}
317\metax{desfaz uma altera{\c{c}}{\~a}o ({\bf undo})}{C-x u, C-_ {\rm or} C-/}
318\metax{restaura um buffer para o arquivo}{M-x revert-buffer}
319\key{redesenha a tela}{C-l}
320
321\section{Busca Incremental}
322
323\key{busca para frente}{C-s}
324\key{busca para tr{\'a}s}{C-r}
325\key{busca por express{\~a}o regular}{C-M-s}
326\key{busca por express{\~a}o regular para tr{\'a}s}{C-M-r}
327
328\key{seleciona a string de pesquisa anterior}{M-p}
329\key{seleciona a string seguinte de pesquisa}{M-n}
330\key{sai da busca incremental}{RET}
331\key{desfaz o efeito do {\'u}ltimo caracter}{DEL}
332\key{encerra a busca}{C-g}
333
334Use \kbd{C-s} ou \kbd{C-r} novamente para repetir a busca.
335\kbd{C-g} cancela apenas o que ainda n{\~a}o foi feito.
336
337\shortcopyrightnotice
338
339\section{Movimenta{\c{c}}{\~a}o}
340
341\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
342\threecol{{\bf avan{\c{c}}ar}}{{\bf tr{\'a}s}}{{\bf frente}}
343\threecol{um caracter}{C-b}{C-f}
344\threecol{uma palavra}{M-b}{M-f}
345\threecol{uma linha}{C-p}{C-n}
346\threecol{para in{\'\i}cio ou fim de linha}{C-a}{C-e}
347\threecol{senten{\c{c}}a}{M-a}{M-e}
348\threecol{par{\'a}grafo}{M-\{}{M-\}}
349\threecol{p{\'a}gina}{C-x [}{C-x ]}
350\threecol{sexp}{C-M-b}{C-M-f}
351\threecol{fun{\c{c}}{\~a}o}{C-M-a}{C-M-e}
352\threecol{para in{\'\i}cio ou fim do buffer}{M-<}{M->}
353}
354
355\key{rolar para pr{\'o}xima tela}{C-v}
356\key{rolar para tela anterior}{M-v}
357\key{rolar para esquerda}{C-x <}
358\key{rolar para direita}{C-x >}
359\key{rolar a linha corrente para o centro da tela}{C-u C-l}
360
361\section{Cortando e Apagando}
362
363\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
364\threecol{{\bf entidade a cortar}}{{\bf tr{\'a}s}}{{\bf frente}}
365\threecol{caracter (apaga, n{\~a}o corta)}{DEL}{C-d}
366\threecol{palavra}{M-DEL}{M-d}
367\threecol{linha (at{\'e} o final)}{M-0 C-k}{C-k}
368\threecol{senten{\c{c}}a}{C-x DEL}{M-k}
369\threecol{sexp}{M-- C-M-k}{C-M-k}
370}
371
372\key{corta {\bf regi{\~a}o}}{C-w}
373\key{copia a {\bf regi{\~a}o}}{M-w}
374\key{cortar at{\'e} a pr{\'o}xima ocorr{\^e}ncia de {\it char}}{M-z {\it char}}
375
376\key{colar a {\'u}ltima coisa cortada}{C-y}
377\key{substitui a {\'u}lt. colagem pela c{\'o}pia anterior}{M-y}
378
379\section{Marcando}
380
381\key{posiciona a marca aqui}{C-@ {\rm or} C-SPC}
382\key{troca a marca pelo ponto e vice-versa}{C-x C-x}
383
384\key{coloca a marca {\it arg\/} {\bf palavras} adiante}{M-@}
385\key{marca o {\bf par{\'a}grafo}}{M-h}
386\key{marca a {\bf p{\'a}gina}}{C-x C-p}
387\key{marca a {\bf sexp}}{C-M-@}
388\key{marca uma {\bf fun{\c{c}}{\~a}o}}{C-M-h}
389\key{marca todo {\bf buffer}}{C-x h}
390
391\section{Busca e Substitui{\c{c}}{\~a}o}
392
393\key{Substitui interativamente uma string}{M-\%}
394% query-replace-regexp is bound to C-M-% but that can't be typed on
395% consoles.
396\metax{usando express{\~a}o regular}{M-x query-replace-regexp}
397
398Respostas v{\'a}lidas no modo de busca e substitui{\c{c}}{\~a}o
399
400\key{{\bf substitui} esta, e prossegue}{SPC}
401\key{substitui esta e entrada e n{\~a}o avan{\c{c}}a}{,}
402\key{{\bf pula} para a pr{\'o}xima sem substituir}{DEL}
403\key{substitui em todo o texto restante}{!}
404\key{{\bf volta} para a palavra anterior}{^}
405\key{{\bf encerra}}{RET}
406\key{entra na edi{\c{c}}{\~a}o recursiva (\kbd{C-M-c} para sair)}{C-r}
407
408
409\section{M{\'u}ltiplas Janelas}
410
411Quando forem mostrados 2 comandos, o segundo tem comportamento similar
412para frame.
413
414{\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0
415\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
416\threecol{elimina todas outras janelas}{C-x 1\ \ \ \ }{C-x 5 1}
417\threecol{divide a janela, acima e abaixo}{C-x 2\ \ \ \ }{C-x 5 2}
418\threecol{elimina esta janela}{C-x 0\ \ \ \ }{C-x 5 0}
419}}
420\key{divide a janela, lado a lado}{C-x 3}
421
422\key{rola a outra janela}{C-M-v}
423
424{\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0
425\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
426\threecol{leva o cursor para outra janela}{C-x o}{C-x 5 o}
427
428\threecol{seleciona um buffer em outra janela}{C-x 4 b}{C-x 5 b}
429\threecol{mostra um buffer em outra janela}{C-x 4 C-o}{C-x 5 C-o}
430\threecol{busca um arquivo em outra janela}{C-x 4 f}{C-x 5 f}
431\threecol{busca arquivo (ro) em outra janela}{C-x 4 r}{C-x 5 r}
432\threecol{executa Dired em outra janela}{C-x 4 d}{C-x 5 d}
433\threecol{busca tag em outra janela}{C-x 4 .}{C-x 5 .}
434}}
435
436\key{aumenta a janela na vertical}{C-x ^}
437\key{estreita a janela}{C-x \{}
438\key{alarga a janela}{C-x \}}
439
440\section{Formatando}
441
442\key{identa a {\bf linha} corrente (modo)}{TAB}
443\key{identa a {\bf regi{\~a}o} (modo)}{C-M-\\}
444\key{identa a {\bf sexp} (modo)}{C-M-q}
445\key{identa regi{\~a}o rigidamente {\it arg\/} colunas}{C-x TAB}
446
447\key{insere uma nova linha ap{\'o}s o ponto}{C-o}
448\key{move o restante da linha para baixo}{C-M-o}
449\key{apaga linhas em branco em torno do ponto}{C-x C-o}
450\key{junta a linha com a anterior}{M-^}
451\key{apaga todos brancos em torno do ponto}{M-\\}
452\key{insere um espa{\c{c}}o em branco}{M-SPC}
453
454\key{preenche o par{\'a}grafo}{M-q}
455\key{define a coluna limite de preenchimento}{C-x f}
456\key{define um prefixo para cada linha}{C-x .}
457
458\key{formata fonte}{M-o}
459
460\section{Mai{\'u}sculas e Min{\'u}sculas}
461
462\key{Palavra para mai{\'u}sculas}{M-u}
463\key{Palavra para min{\'u}sculas}{M-l}
464\key{Primeira letra mai{\'u}scula (capitalize)}{M-c}
465
466\key{Regi{\~a}o para mai{\'u}sculas}{C-x C-u}
467\key{Regi{\~a}o para min{\'u}sculas}{C-x C-l}
468
469\section{O Minibuffer}
470
471As teclas seguintes s{\~a}o definidas no minibuffer.
472
473\key{complete o m{\'a}ximo possi{\'\i}vel}{TAB}
474\key{complete at{\'e} uma palavra}{SPC}
475\key{complete e execute}{RET}
476\key{mostre as op{\c{c}}{\~o}es para completar}{?}
477\key{busca a entrada anterior no minibuffer}{M-p}
478\key{busca a pr{\'o}xima entrada no minibuffer ou o default}{M-n}
479\key{busca regexp no hist{\'o}rico para tr{\'a}s}{M-r}
480\key{busca regexp no hist{\'o}rico para frente}{M-s}
481\key{encerra o comando}{C-g}
482
483Tecle \kbd{C-x ESC ESC} para editar e repetir o {\'u}ltimo comando
484utilizado. Tecle \kbd{F10} para ativar o menu.
485
486\newcolumn
487\title{GNU Emacs: Cart\~ao de Refer\^encia}
488\centerline{(para vers\~ao 22)}
489
490\section{Buffers}
491
492\key{seleciona outro buffer}{C-x b}
493\key{lista todos buffers}{C-x C-b}
494\key{mata um buffer}{C-x k}
495
496\section{Transposi{\c{c}}{\~a}o}
497
498\key{transp{\~o}e {\bf caracteres}}{C-t}
499\key{transp{\~o}e {\bf palavras}}{M-t}
500\key{transp{\~o}e {\bf linhas}}{C-x C-t}
501\key{transp{\~o}e {\bf sexps}}{C-M-t}
502
503\section{Verifica{\c{c}}{\~a}o Ortogr{\'a}fica}
504
505\key{verifica a palavra corrente}{M-\$}
506\metax{verifica todas palavras de uma regi{\~a}o}{M-x ispell-region}
507\metax{verifica todo o buffer}{M-x ispell-buffer}
508
509\section{Tags}
510
511\key{busca uma tag (uma defini{\c{c}}{\~a}o)}{M-.}
512\key{encontra a pr{\'o}xima ocorr{\^e}ncia da tag}{C-u M-.}
513\metax{especifica um novo arquivo de tags}{M-x visit-tags-table}
514
515\metax{busca por regexp em todos arquivos}{M-x tags-search}
516\metax{busca e subst. em todos arquivos}{M-x tags-query-replace}
517\key{continua a {\'u}ltima busca ou busca e substitui{\c{c}}{\~a}o}{M-,}
518
519\section{Shells}
520
521\key{executa um comando do shell}{M-!}
522\key{executa um comando do shell na regi{\~a}o}{M-|}
523\key{filtra uma regi{\~a}o por um comando do shell}{C-u M-|}
524\key{inicia um shell na janela \kbd{*shell*}}{M-x shell}
525
526\section{Ret{\^a}ngulos}
527
528\key{copia o ret{\^a}ngulo para o registrador}{C-x r r}
529\key{corta o ret{\^a}ngulo}{C-x r k}
530\key{cola o ret{\^a}ngulo}{C-x r y}
531\key{abre o ret{\^a}ngulo, move o texto para direita}{C-x r o}
532\key{troca por espa{\c{c}}os o conte{\'u}do do ret{\^a}ngulo}{C-x r c}
533\key{antep{\~o}e uma linha a string}{C-x r t}
534
535\section{Abreviaturas}
536
537\key{adiciona uma abreviatura global}{C-x a g}
538\key{adiciona abreviatura ao modo local}{C-x a l}
539\key{adiciona globalmente expans{\~a}o de abrev.}{C-x a i g}
540\key{adiciona localmente expans{\~a}o de abrev.}{C-x a i l}
541\key{explicitamente expande uma abrev}{C-x a e}
542
543\key{completa com base em palavras anteriores}{M-/}
544
545
546\section{Express{\~o}es Regulares}
547
548\key{qualquer caracter exceto nova linha}{. {\rm(dot)}}
549\key{zero ou mais repeti{\c{c}}{\~o}es}{*}
550\key{uma ou mais repeti{\c{c}}{\~o}es}{+}
551\key{zero ou uma repeti{\c{c}}{\~a}o}{?}
552\key{protege o caracter especial {\it c\/}}{\\{\it c}}
553\key{(``or'')}{\\|}
554\key{agrupamento}{\\( {\rm$\ldots$} \\)}
555\key{mesmo texto que {\it n\/}-{\'e}simo grupo}{\\{\it n}}
556\key{quebra de palavra}{\\b}
557\key{sem quebra de palavra}{\\B}
558
559\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
560\threecol{{\bf entidade}}{{\bf casa in{\'\i}cio}}{{\bf casa fim}}
561\threecol{linha}{^}{\$}
562\threecol{palavra}{\\<}{\\>}
563\threecol{buffer}{\\`}{\\'}
564
565\threecol{{\bf classe de caracteres}}{{\bf casa esses}}{{\bf casa os outros}}
566\threecol{conjunto expl{\'\i}cito}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]}
567\threecol{caracter de sintaxe de palavra}{\\w}{\\W}
568\threecol{caracter de sintaxe de {\it c}}{\\s{\it c}}{\\S{\it c}}
569}
570
571\section{Conjuntos de Carac. Internacionais}
572
573\key{especifica uma l{\'\i}ngua principal}{C-x RET l}
574\metax{mostra todos m{\'e}todos de inser{\c{c}}{\~a}o}{M-x list-input-methods}
575\key{habilita/desabilita um m{\'e}todo de inser{\c{c}}{\~a}o}{C-\\}
576\key{determina o sistema de codifica{\c{c}}{\~a}o}{C-x RET c}
577\metax{mostra sistemas de codifica{\c{c}}{\~a}o}{M-x list-coding-systems}
578\metax{escolhe a codifica{\c{c}}{\~a}o preferida}{M-x prefer-coding-system}
579
580\section{Info}
581
582\key{entra no leitor de Info}{C-h i}
583\key{busca fun{\c{c}}{\~a}o ou arquivo no Info}{C-h S}
584\beginindentedkeys
585
586Movimenta{\c{c}}{\~a}o em um nodo:
587
588\key{rola para frente}{SPC}
589\key{rola para tr{\'a}s}{DEL}
590\key{in{\'\i}cio do nodo}{. {\rm (dot)}}
591
592Movimenta{\c{c}}{\~a}o entre nodos:
593
594\key{{\bf pr{\'o}ximo} nodo}{n}
595\key{nodo {\bf anterior}}{p}
596\key{mover cima {\bf cima}}{u}
597\key{seleciona item do menu pelo nome}{m}
598\key{seleciona {\it n\/}-{\'e}simo item do menu}{{\it n}}
599\key{segue refer{\^e}ncia cruzada (retorna com \kbd{l})}{f}
600\key{retorna {\'u}ltimo nodo visitado}{l}
601\key{retorna ao diret{\'o}rio de nodos}{d}
602\key{ir para o topo do arquivo Info}{t}
603\key{ir para qualquer nodo por nome}{g}
604
605Outros:
606
607\key{executar {\bf tutorial} do Info}{h}
608\key{busca pelo assunto no {\'\i}ndice}{i}
609\key{busca por express{\~a}o regular}{s}
610\key{{\bf sair} Info}{q}
611
612\endindentedkeys
613
614\section{Registrador}
615
616\key{salva regi{\~a}o em um registrador}{C-x r s}
617\key{insere o conte{\'u}do do registrador no buffer}{C-x r i}
618
619\key{salva valor do ponto no registrador}{C-x r SPC}
620\key{salta para o ponto salvo no registrador}{C-x r j}
621
622\section{Macros de Teclado}
623
624\key{{\bf inicia} a defini{\c{c}}{\~a}o de uma macro}{C-x (}
625\key{{\bf encerra} a defini{\c{c}}{\~a}o de uma macro}{C-x )}
626\key{{\bf executa} a {\'u}ltima macro definida}{C-x e}
627\key{adiciona a {\'u}ltima macro definida}{C-u C-x (}
628\metax{nomeia a {\'u}ltima macro definida}{M-x name-last-kbd-macro}
629\metax{insere uma defini{\c{c}}{\~a}o em Lisp}{M-x insert-kbd-macro}
630
631\section{Lidando com Emacs Lisp}
632
633\key{avalia {\bf sexp} antes do ponto}{C-x C-e}
634\key{avalia a {\bf defun} corrente}{C-M-x}
635\metax{avalia a {\bf regi{\~a}o}}{M-x eval-region}
636\key{l{\^e} e avalia o minibuffer}{M-:}
637\metax{carrega do diret{\'o}rio padr{\~a}o do sistema}{M-x load-library}
638
639\section{Personaliza{\c{c}}{\~a}o Simples}
640
641\metax{personaliza vari{\'a}veis e fontes}{M-x customize}
642
643% The intended audience here is the person who wants to make simple
644% customizations and knows Lisp syntax.
645
646Fazendo teclas de atalho globais em Emacs Lisp (exemplos):
647
648\beginexample%
649(global-set-key "\\C-cg" 'goto-line)
650(global-set-key "\\M-\#" 'query-replace-regexp)
651\endexample
652
653\section{Escrevendo Comandos}
654
655\beginexample%
656(defun \<command-name> (\<args>)
657 "\<documentation>" (interactive "\<template>")
658 \<body>)
659\endexample
660
661Um exemplo:
662
663\beginexample%
664(defun this-line-to-top-of-window (line)
665 "Reposition line point is on to top of window.
666With ARG, put point on line ARG."
667 (interactive "P")
668 (recenter (if (null line)
669 0
670 (prefix-numeric-value line))))
671\endexample
672
673A especifica{\c{c}}{\~a}o \kbd{interactive} explica como ler
674interativamente argumentos. Tecle \kbd{C-h f interactive} para mais
675detalhes.
676
677\copyrightnotice
678
679\bye
680
681% Local variables:
682% compile-command: "tex pt-br-refcard"
683% coding: iso-latin-1
684% End:
685
686% arch-tag: 56bf248c-a1f3-443d-93f7-02d7aea67d94
diff --git a/etc/refcard.tex b/etc/refcard.tex
index 218a6cc8e36..42a2cba4456 100644
--- a/etc/refcard.tex
+++ b/etc/refcard.tex
@@ -598,8 +598,9 @@ Moving between nodes:
598Other: 598Other:
599 599
600\key{run Info {\bf tutorial}}{h} 600\key{run Info {\bf tutorial}}{h}
601\key{look up a subject in the indices}{i}
602\key{search nodes for regexp}{s}
601\key{{\bf quit} Info}{q} 603\key{{\bf quit} Info}{q}
602\key{search nodes for regexp}{M-s}
603 604
604\endindentedkeys 605\endindentedkeys
605 606
diff --git a/etc/ru-refcard.tex b/etc/ru-refcard.tex
index 72fbe28e86f..b2057f6c884 100644
--- a/etc/ru-refcard.tex
+++ b/etc/ru-refcard.tex
@@ -436,8 +436,9 @@ apropos: ÐÏËÁÚÁÔØ ËÏÍÁÎÄÙ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÓÔÒÏËÅ & \kbd{C-h a} \\
436 436
437\begin{tabular}{p{\ColWidth}l} 437\begin{tabular}{p{\ColWidth}l}
438ÚÁÐÕÓÔÉÔØ {\bf ÕÞÅÂÎÉË} ÐÏ ÓÉÓÔÅÍÅ ÄÏËÕÍÅÎÔÁÃÉÉ & \kbd{h} \\ 438ÚÁÐÕÓÔÉÔØ {\bf ÕÞÅÂÎÉË} ÐÏ ÓÉÓÔÅÍÅ ÄÏËÕÍÅÎÔÁÃÉÉ & \kbd{h} \\
439ÐÏÉÓË × ÕÚÌÁÈ Ó ÐÏÍÏÝØÀ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ & \kbd{s} \\
440% look up a subject in the indices & \kbd{i} % FIXME
439{\bf ÐÒÅËÒÁÔÉÔØ ÒÁÂÏÔÕ} Ó ÄÏËÕÍÅÎÔÁÃÉÅÊ & \kbd{q} \\ 441{\bf ÐÒÅËÒÁÔÉÔØ ÒÁÂÏÔÕ} Ó ÄÏËÕÍÅÎÔÁÃÉÅÊ & \kbd{q} \\
440ÐÏÉÓË × ÕÚÌÁÈ Ó ÐÏÍÏÝØÀ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ & \kbd{M-s} \\
441\end{tabular} 442\end{tabular}
442 443
443\section{òÅÇÉÓÔÒÙ} 444\section{òÅÇÉÓÔÒÙ}
@@ -515,5 +516,10 @@ With ARG, put point on line ARG."
515%\end{multicols} 516%\end{multicols}
516 517
517\end{document} 518\end{document}
519
520% Local variables:
521% compile-command: "latex ru-refcard"
522% coding: cyrillic-koi8
523% End:
518 524
519% arch-tag: 868a12f6-4339-4a14-a56e-4a3937277a9e 525% arch-tag: 868a12f6-4339-4a14-a56e-4a3937277a9e
diff --git a/etc/ses-example.ses b/etc/ses-example.ses
index fdbdb0cfca2..d0fb9198e20 100644
--- a/etc/ses-example.ses
+++ b/etc/ses-example.ses
@@ -206,4 +206,24 @@ Sales summary - Acme fundraising
206;;; symbolic-formulas: (("Eastern area") ("West-district") ("North&South") ("Other")) 206;;; symbolic-formulas: (("Eastern area") ("West-district") ("North&South") ("Other"))
207;;; End: 207;;; End:
208 208
209;;; Copyright (c) 2002, 2006
210;;; Free Software Foundation, Inc.
211
212;;; COPYING PERMISSIONS:
213;;;
214;;; This document is free software; you can redistribute it and/or modify
215;;; it under the terms of the GNU General Public License as published by
216;;; the Free Software Foundation; either version 2 of the License, or
217;;; (at your option) any later version.
218;;;
219;;; This program is distributed in the hope that it will be useful,
220;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
221;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
222;;; GNU General Public License for more details.
223;;;
224;;; You should have received a copy of the GNU General Public License
225;;; along with this program; if not, write to the Free Software
226;;; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
227
228
209;;; arch-tag: 4fcb0843-e3f9-4270-b8fb-998129190765 229;;; arch-tag: 4fcb0843-e3f9-4270-b8fb-998129190765
diff --git a/etc/sk-refcard.tex b/etc/sk-refcard.tex
index 6bc8edb9378..353451ecc27 100644
--- a/etc/sk-refcard.tex
+++ b/etc/sk-refcard.tex
@@ -592,8 +592,9 @@ Pohyb medzi uzlami:
592Ïal¹ie: 592Ïal¹ie:
593 593
594\key{spusti» {\bf tútorial} k~Infu}{h} 594\key{spusti» {\bf tútorial} k~Infu}{h}
595\key{{\bf skonèi»} Info}{q} 595% \key{look up a subject in the indices}{i} % FIXME
596\key{vyhµada» re»azec v uzloch}{M-s} 596\key{vyhµada» re»azec v uzloch}{M-s}
597\key{{\bf skonèi»} Info}{q}
597 598
598\endindentedkeys 599\endindentedkeys
599 600
diff --git a/etc/spook.lines b/etc/spook.lines
index 9f1f05900a2..d0bda6d12ef 100644
--- a/etc/spook.lines
+++ b/etc/spook.lines
Binary files differ
diff --git a/etc/tree-widget/default/close.png b/etc/tree-widget/default/close.png
index 0725def3dee..1c3f6083992 100644
--- a/etc/tree-widget/default/close.png
+++ b/etc/tree-widget/default/close.png
Binary files differ
diff --git a/etc/tree-widget/default/close.xpm b/etc/tree-widget/default/close.xpm
index 63a7930fe34..6b0315aa75d 100644
--- a/etc/tree-widget/default/close.xpm
+++ b/etc/tree-widget/default/close.xpm
@@ -1,284 +1,33 @@
1/* XPM */ 1/* XPM */
2static char *close[] = { 2static char * close_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"16 21 9 1",
4" 16 21 256 2", 4" c None",
5/* colors */ 5". c #840000",
6"`` c #840000", 6"+ c #942929",
7"`. c #942929", 7"@ c #9C3131",
8"`# c #9c3131", 8"# c #9C3939",
9"`a c #9c3939", 9"$ c #A54242",
10"`b c #a54242", 10"% c #A54A4A",
11"`c c #a54a4a", 11"& c #AD5252",
12"`d c #ad4a4a", 12"* c #AD5A5A",
13"`e c #ad5252", 13" ",
14"`f c #ad5a5a", 14" ",
15"`g c None", 15" ",
16"`h c #ffffff", 16" ",
17"`i c #ffffff", 17" ",
18"`j c #ffffff", 18" ... ",
19"`k c #ffffff", 19" ..+.. ",
20"`l c #ffffff", 20" ..+@#.. ",
21"`m c #ffffff", 21" ..+@##$.. ",
22"`n c #ffffff", 22"..+@##$%&.. ",
23"`o c #ffffff", 23".+@##$%&&*. ",
24"`p c #ffffff", 24"..##$%&&*.. ",
25"`q c #ffffff", 25" ..$%&&*.. ",
26"`r c #ffffff", 26" ..&&*.. ",
27"`s c #ffffff", 27" ..*.. ",
28"`t c #ffffff", 28" ... ",
29"`u c #ffffff", 29" ",
30"`v c #ffffff", 30" ",
31"`w c #ffffff", 31" ",
32"`x c #ffffff", 32" ",
33"`y c #ffffff", 33" "};
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #ffffff",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
264"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
265"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
266"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
267"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
268"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
269"`g`g`g`````.`````g`g`g`g`g`g`g`g",
270"`g`g`````.`#`a`````g`g`g`g`g`g`g",
271"`g`````.`#`a`a`b`````g`g`g`g`g`g",
272"`````.`#`a`a`b`c`e`````g`g`g`g`g",
273"```.`#`a`a`b`c`e`e`f```g`g`g`g`g",
274"`````a`a`b`c`e`e`f`````g`g`g`g`g",
275"`g`````b`c`e`e`f`````g`g`g`g`g`g",
276"`g`g`````e`e`f`````g`g`g`g`g`g`g",
277"`g`g`g`````f`````g`g`g`g`g`g`g`g",
278"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
279"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
280"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
281"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
282"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
283"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g"
284};
diff --git a/etc/tree-widget/default/empty.png b/etc/tree-widget/default/empty.png
index 45f464836cc..9837936f3cc 100644
--- a/etc/tree-widget/default/empty.png
+++ b/etc/tree-widget/default/empty.png
Binary files differ
diff --git a/etc/tree-widget/default/empty.xpm b/etc/tree-widget/default/empty.xpm
index 6bb0a285dd8..8af9f2f23e1 100644
--- a/etc/tree-widget/default/empty.xpm
+++ b/etc/tree-widget/default/empty.xpm
@@ -1,284 +1,33 @@
1/* XPM */ 1/* XPM */
2static char *empty[] = { 2static char * empty_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"16 21 9 1",
4" 16 21 256 2", 4" c None",
5/* colors */ 5". c #848400",
6"`` c #848400", 6"+ c #949429",
7"`. c #949429", 7"@ c #9C9C31",
8"`# c #9c9c31", 8"# c #9C9C39",
9"`a c #9c9c39", 9"$ c #A5A542",
10"`b c #a5a542", 10"% c #A5A54A",
11"`c c #a5a54a", 11"& c #ADAD52",
12"`d c #adad4a", 12"* c #ADAD5A",
13"`e c #adad52", 13" ",
14"`f c #adad5a", 14" ",
15"`g c None", 15" ",
16"`h c #ffffff", 16" ",
17"`i c #ffffff", 17" ",
18"`j c #ffffff", 18" ... ",
19"`k c #ffffff", 19" ..+.. ",
20"`l c #ffffff", 20" ..+@#.. ",
21"`m c #ffffff", 21" ..+@##$.. ",
22"`n c #ffffff", 22"..+@##$%%.. ",
23"`o c #ffffff", 23".+@##$%%&*. ",
24"`p c #ffffff", 24"..##$%%&*.. ",
25"`q c #ffffff", 25" ..$%%&*.. ",
26"`r c #ffffff", 26" ..%&*.. ",
27"`s c #ffffff", 27" ..*.. ",
28"`t c #ffffff", 28" ... ",
29"`u c #ffffff", 29" ",
30"`v c #ffffff", 30" ",
31"`w c #ffffff", 31" ",
32"`x c #ffffff", 32" ",
33"`y c #ffffff", 33" "};
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #ffffff",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
264"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
265"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
266"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
267"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
268"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
269"`g`g`g`````.`````g`g`g`g`g`g`g`g",
270"`g`g`````.`#`a`````g`g`g`g`g`g`g",
271"`g`````.`#`a`a`b`````g`g`g`g`g`g",
272"`````.`#`a`a`b`c`c`````g`g`g`g`g",
273"```.`#`a`a`b`c`c`e`f```g`g`g`g`g",
274"`````a`a`b`c`c`e`f`````g`g`g`g`g",
275"`g`````b`c`c`e`f`````g`g`g`g`g`g",
276"`g`g`````c`e`f`````g`g`g`g`g`g`g",
277"`g`g`g`````f`````g`g`g`g`g`g`g`g",
278"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
279"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
280"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
281"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
282"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
283"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g"
284};
diff --git a/etc/tree-widget/default/end-guide.png b/etc/tree-widget/default/end-guide.png
index 908048c4293..72bb67a4513 100644
--- a/etc/tree-widget/default/end-guide.png
+++ b/etc/tree-widget/default/end-guide.png
Binary files differ
diff --git a/etc/tree-widget/default/end-guide.xpm b/etc/tree-widget/default/end-guide.xpm
index 8e5d727b440..a8e684ac406 100644
--- a/etc/tree-widget/default/end-guide.xpm
+++ b/etc/tree-widget/default/end-guide.xpm
@@ -1,284 +1,26 @@
1/* XPM */ 1/* XPM */
2static char *end-guide[] = { 2static char * end_guide_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"6 21 2 1",
4" 6 21 256 2", 4" c None",
5/* colors */ 5". c #ADA5C6",
6"`` c #000000", 6" .",
7"`. c #a5a5c6", 7" .",
8"`# c #ada5c6", 8" .",
9"`a c #cecee7", 9" .",
10"`b c #ceceff", 10" .",
11"`c c None", 11" .",
12"`d c #ffffff", 12" .",
13"`e c #ffffff", 13" .",
14"`f c #ffffff", 14" .",
15"`g c #ffffff", 15" .",
16"`h c #ffffff", 16" .",
17"`i c #ffffff", 17" ",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" ",
20"`l c #ffffff", 20" ",
21"`m c #ffffff", 21" ",
22"`n c #ffffff", 22" ",
23"`o c #ffffff", 23" ",
24"`p c #ffffff", 24" ",
25"`q c #ffffff", 25" ",
26"`r c #ffffff", 26" "};
27"`s c #ffffff",
28"`t c #ffffff",
29"`u c #ffffff",
30"`v c #ffffff",
31"`w c #ffffff",
32"`x c #ffffff",
33"`y c #ffffff",
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #808000",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`c`c`c`c`c`#",
264"`c`c`c`c`c`#",
265"`c`c`c`c`c`#",
266"`c`c`c`c`c`#",
267"`c`c`c`c`c`#",
268"`c`c`c`c`c`#",
269"`c`c`c`c`c`#",
270"`c`c`c`c`c`#",
271"`c`c`c`c`c`#",
272"`c`c`c`c`c`#",
273"`c`c`c`c`c`#",
274"`c`c`c`c`c`c",
275"`c`c`c`c`c`c",
276"`c`c`c`c`c`c",
277"`c`c`c`c`c`c",
278"`c`c`c`c`c`c",
279"`c`c`c`c`c`c",
280"`c`c`c`c`c`c",
281"`c`c`c`c`c`c",
282"`c`c`c`c`c`c",
283"`c`c`c`c`c`c"
284};
diff --git a/etc/tree-widget/default/guide.png b/etc/tree-widget/default/guide.png
index c93b71ef073..85fa0c87b7b 100644
--- a/etc/tree-widget/default/guide.png
+++ b/etc/tree-widget/default/guide.png
Binary files differ
diff --git a/etc/tree-widget/default/guide.xpm b/etc/tree-widget/default/guide.xpm
index 56006ee48e0..85b3cec00ce 100644
--- a/etc/tree-widget/default/guide.xpm
+++ b/etc/tree-widget/default/guide.xpm
@@ -1,284 +1,26 @@
1/* XPM */ 1/* XPM */
2static char *guide[] = { 2static char * guide_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"6 21 2 1",
4" 6 21 256 2", 4" c None",
5/* colors */ 5". c #ADA5C6",
6"`` c #000000", 6" .",
7"`. c #a5a5c6", 7" .",
8"`# c #ada5c6", 8" .",
9"`a c #cecee7", 9" .",
10"`b c #ceceff", 10" .",
11"`c c None", 11" .",
12"`d c #ffffff", 12" .",
13"`e c #ffffff", 13" .",
14"`f c #ffffff", 14" .",
15"`g c #ffffff", 15" .",
16"`h c #ffffff", 16" .",
17"`i c #ffffff", 17" .",
18"`j c #ffffff", 18" .",
19"`k c #ffffff", 19" .",
20"`l c #ffffff", 20" .",
21"`m c #ffffff", 21" .",
22"`n c #ffffff", 22" .",
23"`o c #ffffff", 23" .",
24"`p c #ffffff", 24" .",
25"`q c #ffffff", 25" .",
26"`r c #ffffff", 26" ."};
27"`s c #ffffff",
28"`t c #ffffff",
29"`u c #ffffff",
30"`v c #ffffff",
31"`w c #ffffff",
32"`x c #ffffff",
33"`y c #ffffff",
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #808000",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`c`c`c`c`c`#",
264"`c`c`c`c`c`#",
265"`c`c`c`c`c`#",
266"`c`c`c`c`c`#",
267"`c`c`c`c`c`#",
268"`c`c`c`c`c`#",
269"`c`c`c`c`c`#",
270"`c`c`c`c`c`#",
271"`c`c`c`c`c`#",
272"`c`c`c`c`c`#",
273"`c`c`c`c`c`#",
274"`c`c`c`c`c`#",
275"`c`c`c`c`c`#",
276"`c`c`c`c`c`#",
277"`c`c`c`c`c`#",
278"`c`c`c`c`c`#",
279"`c`c`c`c`c`#",
280"`c`c`c`c`c`#",
281"`c`c`c`c`c`#",
282"`c`c`c`c`c`#",
283"`c`c`c`c`c`#"
284};
diff --git a/etc/tree-widget/default/handle.png b/etc/tree-widget/default/handle.png
index 8411624adaa..8a00d7b3f24 100644
--- a/etc/tree-widget/default/handle.png
+++ b/etc/tree-widget/default/handle.png
Binary files differ
diff --git a/etc/tree-widget/default/handle.xpm b/etc/tree-widget/default/handle.xpm
index 11f618b4b25..fcdf2b40920 100644
--- a/etc/tree-widget/default/handle.xpm
+++ b/etc/tree-widget/default/handle.xpm
@@ -1,284 +1,26 @@
1/* XPM */ 1/* XPM */
2static char *handle[] = { 2static char * handle_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"10 21 2 1",
4" 10 21 256 2", 4" c None",
5/* colors */ 5". c #ADA5C6",
6"`` c #000000", 6" ",
7"`. c #a5a5c6", 7" ",
8"`# c #ada5c6", 8" ",
9"`a c #cecee7", 9" ",
10"`b c #ceceff", 10" ",
11"`c c None", 11" ",
12"`d c #ffffff", 12" ",
13"`e c #ffffff", 13" ",
14"`f c #ffffff", 14" ",
15"`g c #ffffff", 15" ",
16"`h c #ffffff", 16"..........",
17"`i c #ffffff", 17" ",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" ",
20"`l c #ffffff", 20" ",
21"`m c #ffffff", 21" ",
22"`n c #ffffff", 22" ",
23"`o c #ffffff", 23" ",
24"`p c #ffffff", 24" ",
25"`q c #ffffff", 25" ",
26"`r c #ffffff", 26" "};
27"`s c #ffffff",
28"`t c #ffffff",
29"`u c #ffffff",
30"`v c #ffffff",
31"`w c #ffffff",
32"`x c #ffffff",
33"`y c #ffffff",
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #808000",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`c`c`c`c`c`c`c`c`c`c",
264"`c`c`c`c`c`c`c`c`c`c",
265"`c`c`c`c`c`c`c`c`c`c",
266"`c`c`c`c`c`c`c`c`c`c",
267"`c`c`c`c`c`c`c`c`c`c",
268"`c`c`c`c`c`c`c`c`c`c",
269"`c`c`c`c`c`c`c`c`c`c",
270"`c`c`c`c`c`c`c`c`c`c",
271"`c`c`c`c`c`c`c`c`c`c",
272"`c`c`c`c`c`c`c`c`c`c",
273"`#`#`#`#`#`#`#`#`#`#",
274"`c`c`c`c`c`c`c`c`c`c",
275"`c`c`c`c`c`c`c`c`c`c",
276"`c`c`c`c`c`c`c`c`c`c",
277"`c`c`c`c`c`c`c`c`c`c",
278"`c`c`c`c`c`c`c`c`c`c",
279"`c`c`c`c`c`c`c`c`c`c",
280"`c`c`c`c`c`c`c`c`c`c",
281"`c`c`c`c`c`c`c`c`c`c",
282"`c`c`c`c`c`c`c`c`c`c",
283"`c`c`c`c`c`c`c`c`c`c"
284};
diff --git a/etc/tree-widget/default/leaf.png b/etc/tree-widget/default/leaf.png
index 0408f38bd5e..ef8cee2c787 100644
--- a/etc/tree-widget/default/leaf.png
+++ b/etc/tree-widget/default/leaf.png
Binary files differ
diff --git a/etc/tree-widget/default/leaf.xpm b/etc/tree-widget/default/leaf.xpm
index 8b5db38784a..58d90f2d7ef 100644
--- a/etc/tree-widget/default/leaf.xpm
+++ b/etc/tree-widget/default/leaf.xpm
@@ -1,284 +1,33 @@
1/* XPM */ 1/* XPM */
2static char *leaf[] = { 2static char * leaf_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"16 21 9 1",
4" 16 21 256 2", 4" c None",
5/* colors */ 5". c #424242",
6"`` c #424242", 6"+ c #737373",
7"`. c #737373", 7"@ c #7B7B7B",
8"`# c #7b7b7b", 8"# c #848484",
9"`a c #848484", 9"$ c #8C8C8C",
10"`b c #8c8c8c", 10"% c #949494",
11"`c c #949494", 11"& c #9C9C9C",
12"`d c #9c9c9c", 12"* c #A5A5A5",
13"`e c #a5a5a5", 13" ",
14"`f c None", 14" ",
15"`g c #ffffff", 15" ",
16"`h c #ffffff", 16" ",
17"`i c #ffffff", 17" ",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" ..... ",
20"`l c #ffffff", 20" .+@@##. ",
21"`m c #ffffff", 21" .+@@##$$. ",
22"`n c #ffffff", 22".+@@##$$%%. ",
23"`o c #ffffff", 23".@@##$$%%&. ",
24"`p c #ffffff", 24".@##$$%%&*. ",
25"`q c #ffffff", 25" .#$$%%&*. ",
26"`r c #ffffff", 26" .$%%&*. ",
27"`s c #ffffff", 27" ..... ",
28"`t c #ffffff", 28" ",
29"`u c #ffffff", 29" ",
30"`v c #ffffff", 30" ",
31"`w c #ffffff", 31" ",
32"`x c #ffffff", 32" ",
33"`y c #ffffff", 33" "};
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #ffffff",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
264"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
265"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
266"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
267"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
268"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
269"`f`f`f```````````f`f`f`f`f`f`f`f",
270"`f`f```.`#`#`a`a```f`f`f`f`f`f`f",
271"`f```.`#`#`a`a`b`b```f`f`f`f`f`f",
272"```.`#`#`a`a`b`b`c`c```f`f`f`f`f",
273"```#`#`a`a`b`b`c`c`d```f`f`f`f`f",
274"```#`a`a`b`b`c`c`d`e```f`f`f`f`f",
275"`f```a`b`b`c`c`d`e```f`f`f`f`f`f",
276"`f`f```b`c`c`d`e```f`f`f`f`f`f`f",
277"`f`f`f```````````f`f`f`f`f`f`f`f",
278"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
279"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
280"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
281"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
282"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
283"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f"
284};
diff --git a/etc/tree-widget/default/no-guide.png b/etc/tree-widget/default/no-guide.png
index dc4292ea98f..a063d3f2555 100644
--- a/etc/tree-widget/default/no-guide.png
+++ b/etc/tree-widget/default/no-guide.png
Binary files differ
diff --git a/etc/tree-widget/default/no-guide.xpm b/etc/tree-widget/default/no-guide.xpm
index 82729cf59b0..d9d93ea7294 100644
--- a/etc/tree-widget/default/no-guide.xpm
+++ b/etc/tree-widget/default/no-guide.xpm
@@ -1,284 +1,25 @@
1/* XPM */ 1/* XPM */
2static char *no-guide[] = { 2static char * no_guide_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"6 21 1 1",
4" 6 21 256 2", 4" c None",
5/* colors */ 5" ",
6"`` c #000000", 6" ",
7"`. c #84849c", 7" ",
8"`# c #8c8ca5", 8" ",
9"`a c #a5a5c6", 9" ",
10"`b c #ada5c6", 10" ",
11"`c c #b5b5ce", 11" ",
12"`d c #cecee7", 12" ",
13"`e c #ceceff", 13" ",
14"`f c #e7e7ff", 14" ",
15"`g c None", 15" ",
16"`h c #808000", 16" ",
17"`i c #ffffff", 17" ",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" ",
20"`l c #ffffff", 20" ",
21"`m c #ffffff", 21" ",
22"`n c #ffffff", 22" ",
23"`o c #ffffff", 23" ",
24"`p c #ffffff", 24" ",
25"`q c #ffffff", 25" "};
26"`r c #ffffff",
27"`s c #ffffff",
28"`t c #ffffff",
29"`u c #ffffff",
30"`v c #ffffff",
31"`w c #ffffff",
32"`x c #ffffff",
33"`y c #ffffff",
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #ffffff",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`g`g`g`g`g`g",
264"`g`g`g`g`g`g",
265"`g`g`g`g`g`g",
266"`g`g`g`g`g`g",
267"`g`g`g`g`g`g",
268"`g`g`g`g`g`g",
269"`g`g`g`g`g`g",
270"`g`g`g`g`g`g",
271"`g`g`g`g`g`g",
272"`g`g`g`g`g`g",
273"`g`g`g`g`g`g",
274"`g`g`g`g`g`g",
275"`g`g`g`g`g`g",
276"`g`g`g`g`g`g",
277"`g`g`g`g`g`g",
278"`g`g`g`g`g`g",
279"`g`g`g`g`g`g",
280"`g`g`g`g`g`g",
281"`g`g`g`g`g`g",
282"`g`g`g`g`g`g",
283"`g`g`g`g`g`g"
284};
diff --git a/etc/tree-widget/default/no-handle.png b/etc/tree-widget/default/no-handle.png
index 00de3c09c26..123cf45fa97 100644
--- a/etc/tree-widget/default/no-handle.png
+++ b/etc/tree-widget/default/no-handle.png
Binary files differ
diff --git a/etc/tree-widget/default/no-handle.xpm b/etc/tree-widget/default/no-handle.xpm
index 7ce048c91ea..3eaa2daee32 100644
--- a/etc/tree-widget/default/no-handle.xpm
+++ b/etc/tree-widget/default/no-handle.xpm
@@ -1,284 +1,25 @@
1/* XPM */ 1/* XPM */
2static char *no-handle[] = { 2static char * no_handle_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"10 21 1 1",
4" 10 21 256 2", 4" c None",
5/* colors */ 5" ",
6"`` c #000000", 6" ",
7"`. c #84849c", 7" ",
8"`# c #8c8ca5", 8" ",
9"`a c #a5a5c6", 9" ",
10"`b c #ada5c6", 10" ",
11"`c c #b5b5ce", 11" ",
12"`d c #cecee7", 12" ",
13"`e c #ceceff", 13" ",
14"`f c #e7e7ff", 14" ",
15"`g c None", 15" ",
16"`h c #808000", 16" ",
17"`i c #ffffff", 17" ",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" ",
20"`l c #ffffff", 20" ",
21"`m c #ffffff", 21" ",
22"`n c #ffffff", 22" ",
23"`o c #ffffff", 23" ",
24"`p c #ffffff", 24" ",
25"`q c #ffffff", 25" "};
26"`r c #ffffff",
27"`s c #ffffff",
28"`t c #ffffff",
29"`u c #ffffff",
30"`v c #ffffff",
31"`w c #ffffff",
32"`x c #ffffff",
33"`y c #ffffff",
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #ffffff",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`g`g`g`g`g`g`g`g`g`g",
264"`g`g`g`g`g`g`g`g`g`g",
265"`g`g`g`g`g`g`g`g`g`g",
266"`g`g`g`g`g`g`g`g`g`g",
267"`g`g`g`g`g`g`g`g`g`g",
268"`g`g`g`g`g`g`g`g`g`g",
269"`g`g`g`g`g`g`g`g`g`g",
270"`g`g`g`g`g`g`g`g`g`g",
271"`g`g`g`g`g`g`g`g`g`g",
272"`g`g`g`g`g`g`g`g`g`g",
273"`g`g`g`g`g`g`g`g`g`g",
274"`g`g`g`g`g`g`g`g`g`g",
275"`g`g`g`g`g`g`g`g`g`g",
276"`g`g`g`g`g`g`g`g`g`g",
277"`g`g`g`g`g`g`g`g`g`g",
278"`g`g`g`g`g`g`g`g`g`g",
279"`g`g`g`g`g`g`g`g`g`g",
280"`g`g`g`g`g`g`g`g`g`g",
281"`g`g`g`g`g`g`g`g`g`g",
282"`g`g`g`g`g`g`g`g`g`g",
283"`g`g`g`g`g`g`g`g`g`g"
284};
diff --git a/etc/tree-widget/default/open.png b/etc/tree-widget/default/open.png
index d234ecadf39..ea2a8dba00d 100644
--- a/etc/tree-widget/default/open.png
+++ b/etc/tree-widget/default/open.png
Binary files differ
diff --git a/etc/tree-widget/default/open.xpm b/etc/tree-widget/default/open.xpm
index 4c5c7b065b8..a216a3f5ab4 100644
--- a/etc/tree-widget/default/open.xpm
+++ b/etc/tree-widget/default/open.xpm
@@ -1,284 +1,35 @@
1/* XPM */ 1/* XPM */
2static char *open[] = { 2static char * open_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"16 21 11 1",
4" 16 21 256 2", 4" c None",
5/* colors */ 5". c #004200",
6"`` c #004200", 6"+ c #296329",
7"`. c #296329", 7"@ c #316331",
8"`# c #316331", 8"# c #396B39",
9"`a c #316b31", 9"$ c #427342",
10"`b c #396b39", 10"% c #4A734A",
11"`c c #427342", 11"& c #4A7B4A",
12"`d c #4a734a", 12"* c #528452",
13"`e c #4a7b4a", 13"= c #5A845A",
14"`f c #528452", 14"- c #A5A5C6",
15"`g c #5a845a", 15" ",
16"`h c #a5a5c6", 16" ",
17"`i c None", 17" ",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" ",
20"`l c #ffffff", 20" ... ",
21"`m c #ffffff", 21" ..+.. ",
22"`n c #ffffff", 22" ..+@#.. ",
23"`o c #ffffff", 23" ..+@##$.. ",
24"`p c #ffffff", 24"..+@##$%&.. ",
25"`q c #ffffff", 25".+@##$%&*=. ",
26"`r c #ffffff", 26"..##$%&*=.. ",
27"`s c #ffffff", 27" ..$%&*=.. ",
28"`t c #ffffff", 28" ..&*=.. ",
29"`u c #ffffff", 29" ..=.. ",
30"`v c #ffffff", 30" ... ",
31"`w c #ffffff", 31" - ",
32"`x c #ffffff", 32" - ",
33"`y c #ffffff", 33" - ",
34"`z c #ffffff", 34" - ",
35"`A c #ffffff", 35" - "};
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #ffffff",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i",
264"`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i",
265"`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i",
266"`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i",
267"`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i",
268"`i`i`i`i```````i`i`i`i`i`i`i`i`i",
269"`i`i`i`````.`````i`i`i`i`i`i`i`i",
270"`i`i`````.`#`b`````i`i`i`i`i`i`i",
271"`i`````.`#`b`b`c`````i`i`i`i`i`i",
272"`````.`#`b`b`c`d`e`````i`i`i`i`i",
273"```.`#`b`b`c`d`e`f`g```i`i`i`i`i",
274"`````b`b`c`d`e`f`g`````i`i`i`i`i",
275"`i`````c`d`e`f`g`````i`i`i`i`i`i",
276"`i`i`````e`f`g`````i`i`i`i`i`i`i",
277"`i`i`i`````g`````i`i`i`i`i`i`i`i",
278"`i`i`i`i```````i`i`i`i`i`i`i`i`i",
279"`i`i`i`i`i`h`i`i`i`i`i`i`i`i`i`i",
280"`i`i`i`i`i`h`i`i`i`i`i`i`i`i`i`i",
281"`i`i`i`i`i`h`i`i`i`i`i`i`i`i`i`i",
282"`i`i`i`i`i`h`i`i`i`i`i`i`i`i`i`i",
283"`i`i`i`i`i`h`i`i`i`i`i`i`i`i`i`i"
284};
diff --git a/etc/tree-widget/folder/close.png b/etc/tree-widget/folder/close.png
index f840ba89a4e..3a509b095f8 100644
--- a/etc/tree-widget/folder/close.png
+++ b/etc/tree-widget/folder/close.png
Binary files differ
diff --git a/etc/tree-widget/folder/close.xpm b/etc/tree-widget/folder/close.xpm
index 1bd40ae6e94..116c1db37d8 100644
--- a/etc/tree-widget/folder/close.xpm
+++ b/etc/tree-widget/folder/close.xpm
@@ -1,285 +1,40 @@
1/* XPM */ 1/* XPM */
2static char *close[] = { 2static char * close_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"16 22 15 1",
4" 16 22 256 2", 4" c None",
5/* colors */ 5". c #848400",
6"`` c #848400", 6"+ c #E7E79C",
7"`. c #9c9c29", 7"@ c #E7E794",
8"`# c #a5a531", 8"# c #DEDE8C",
9"`a c #adad39", 9"$ c #ADAD39",
10"`b c #adad42", 10"% c #ADAD42",
11"`c c #b5b54a", 11"& c #B5B54A",
12"`d c #b5b552", 12"* c #B5B552",
13"`e c #bdbd52", 13"= c #BDBD5A",
14"`f c #bdbd5a", 14"- c #9C9C29",
15"`g c #c6c663", 15"; c #A5A531",
16"`h c #c6c66b", 16"> c #C6C663",
17"`i c #cece6b", 17", c #C6C66B",
18"`j c #cece73", 18"' c #CECE73",
19"`k c #dede8c", 19" ",
20"`l c #e7e794", 20" ",
21"`m c #e7e79c", 21" ",
22"`n c #efef9c", 22" ",
23"`o c None", 23" ",
24"`p c #ffffff", 24" ",
25"`q c #ffffff", 25" .... ",
26"`r c #ffffff", 26".+@@#....... ",
27"`s c #ffffff", 27".....$%%&&*=. ",
28"`t c #ffffff", 28".-;;$%%&&*==. ",
29"`u c #ffffff", 29".;;$%%&&*===. ",
30"`v c #ffffff", 30".;$%%&&*===>. ",
31"`w c #ffffff", 31".$%%&&*===>,. ",
32"`x c #ffffff", 32".%%&&*===>,,. ",
33"`y c #ffffff", 33".%&&*===>,,'. ",
34"`z c #ffffff", 34"............. ",
35"`A c #ffffff", 35" ",
36"`B c #ffffff", 36" ",
37"`C c #ffffff", 37" ",
38"`D c #ffffff", 38" ",
39"`E c #ffffff", 39" ",
40"`F c #ffffff", 40" "};
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o",
264"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o",
265"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o",
266"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o",
267"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o",
268"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o",
269"`o`````````o`o`o`o`o`o`o`o`o`o`o",
270"```m`l`l`k```````````````o`o`o`o",
271"```````````a`b`b`c`c`d`f```o`o`o",
272"```.`#`#`a`b`b`c`c`d`f`f```o`o`o",
273"```#`#`a`b`b`c`c`d`f`f`f```o`o`o",
274"```#`a`b`b`c`c`d`f`f`f`g```o`o`o",
275"```a`b`b`c`c`d`f`f`f`g`h```o`o`o",
276"```b`b`c`c`d`f`f`f`g`h`h```o`o`o",
277"```b`c`c`d`f`f`f`g`h`h`j```o`o`o",
278"```````````````````````````o`o`o",
279"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o",
280"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o",
281"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o",
282"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o",
283"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o",
284"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o"
285};
diff --git a/etc/tree-widget/folder/empty.png b/etc/tree-widget/folder/empty.png
index 712af9747c6..3f89471828d 100644
--- a/etc/tree-widget/folder/empty.png
+++ b/etc/tree-widget/folder/empty.png
Binary files differ
diff --git a/etc/tree-widget/folder/empty.xpm b/etc/tree-widget/folder/empty.xpm
index df92fd22008..598401ab413 100644
--- a/etc/tree-widget/folder/empty.xpm
+++ b/etc/tree-widget/folder/empty.xpm
@@ -1,285 +1,35 @@
1/* XPM */ 1/* XPM */
2static char *empty[] = { 2static char * empty_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"16 22 10 1",
4" 16 22 256 2", 4" c None",
5/* colors */ 5". c #424242",
6"`` c #424242", 6"+ c #A5A5A5",
7"`. c #6b6b6b", 7"@ c #9C9C9C",
8"`# c #737373", 8"# c #949494",
9"`a c #7b7b7b", 9"$ c #8C8C8C",
10"`b c #848484", 10"% c #6B6B6B",
11"`c c #8c8c8c", 11"& c #737373",
12"`d c #949494", 12"* c #7B7B7B",
13"`e c #9c9c9c", 13"= c #848484",
14"`f c #a5a5a5", 14" ",
15"`g c #adadad", 15" ",
16"`h c None", 16" ",
17"`i c #ffffff", 17" ",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" ",
20"`l c #ffffff", 20" .... ",
21"`m c #ffffff", 21".+++@..... ",
22"`n c #ffffff", 22".++@@@##$$. ",
23"`o c #ffffff", 23".+@.......... ",
24"`p c #ffffff", 24".@.%%%&&&**==. ",
25"`q c #ffffff", 25".@.%%&&&**==. ",
26"`r c #ffffff", 26"..%%&&&**===. ",
27"`s c #ffffff", 27"..%&&&**===. ",
28"`t c #ffffff", 28".%&&&**===$. ",
29"`u c #ffffff", 29"........... ",
30"`v c #ffffff", 30" ",
31"`w c #ffffff", 31" ",
32"`x c #ffffff", 32" ",
33"`y c #ffffff", 33" ",
34"`z c #ffffff", 34" ",
35"`A c #ffffff", 35" "};
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #ffffff",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
264"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
265"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
266"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
267"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
268"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
269"`h`````````h`h`h`h`h`h`h`h`h`h`h",
270"```f`f`f`e```````````h`h`h`h`h`h",
271"```f`f`e`e`e`d`d`c`c```h`h`h`h`h",
272"```f`e`````````````````````h`h`h",
273"```e```.`.`.`#`#`#`a`a`b`b```h`h",
274"```e```.`.`#`#`#`a`a`b`b```h`h`h",
275"`````.`.`#`#`#`a`a`b`b`b```h`h`h",
276"`````.`#`#`#`a`a`b`b`b```h`h`h`h",
277"```.`#`#`#`a`a`b`b`b`c```h`h`h`h",
278"```````````````````````h`h`h`h`h",
279"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
280"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
281"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
282"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
283"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
284"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h"
285};
diff --git a/etc/tree-widget/folder/end-guide.png b/etc/tree-widget/folder/end-guide.png
index 994c8bbf10a..b1290f31e6f 100644
--- a/etc/tree-widget/folder/end-guide.png
+++ b/etc/tree-widget/folder/end-guide.png
Binary files differ
diff --git a/etc/tree-widget/folder/end-guide.xpm b/etc/tree-widget/folder/end-guide.xpm
index 3cdb2332c55..6788538c7ab 100644
--- a/etc/tree-widget/folder/end-guide.xpm
+++ b/etc/tree-widget/folder/end-guide.xpm
@@ -1,285 +1,27 @@
1/* XPM */ 1/* XPM */
2static char *end-guide[] = { 2static char * end_guide_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"6 22 2 1",
4" 6 22 256 2", 4" c None",
5/* colors */ 5". c #ADA5C6",
6"`` c #ada5c6", 6" ",
7"`. c None", 7" .",
8"`# c #ffffff", 8" ",
9"`a c #ffffff", 9" .",
10"`b c #ffffff", 10" ",
11"`c c #ffffff", 11" .",
12"`d c #ffffff", 12" ",
13"`e c #ffffff", 13" .",
14"`f c #ffffff", 14" ",
15"`g c #ffffff", 15" .",
16"`h c #ffffff", 16" ",
17"`i c #ffffff", 17" .",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" ",
20"`l c #ffffff", 20" ",
21"`m c #ffffff", 21" ",
22"`n c #ffffff", 22" ",
23"`o c #ffffff", 23" ",
24"`p c #ffffff", 24" ",
25"`q c #ffffff", 25" ",
26"`r c #ffffff", 26" ",
27"`s c #ffffff", 27" "};
28"`t c #ffffff",
29"`u c #ffffff",
30"`v c #ffffff",
31"`w c #ffffff",
32"`x c #ffffff",
33"`y c #ffffff",
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #ffffff",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`.`.`.`.`.`.",
264"`.`.`.`.`.``",
265"`.`.`.`.`.`.",
266"`.`.`.`.`.``",
267"`.`.`.`.`.`.",
268"`.`.`.`.`.``",
269"`.`.`.`.`.`.",
270"`.`.`.`.`.``",
271"`.`.`.`.`.`.",
272"`.`.`.`.`.``",
273"`.`.`.`.`.`.",
274"`.`.`.`.`.``",
275"`.`.`.`.`.`.",
276"`.`.`.`.`.`.",
277"`.`.`.`.`.`.",
278"`.`.`.`.`.`.",
279"`.`.`.`.`.`.",
280"`.`.`.`.`.`.",
281"`.`.`.`.`.`.",
282"`.`.`.`.`.`.",
283"`.`.`.`.`.`.",
284"`.`.`.`.`.`."
285};
diff --git a/etc/tree-widget/folder/guide.png b/etc/tree-widget/folder/guide.png
index 5a4d4f0b751..8535f86f3bf 100644
--- a/etc/tree-widget/folder/guide.png
+++ b/etc/tree-widget/folder/guide.png
Binary files differ
diff --git a/etc/tree-widget/folder/guide.xpm b/etc/tree-widget/folder/guide.xpm
index 5d23ef64eeb..647d0590173 100644
--- a/etc/tree-widget/folder/guide.xpm
+++ b/etc/tree-widget/folder/guide.xpm
@@ -1,285 +1,27 @@
1/* XPM */ 1/* XPM */
2static char *guide[] = { 2static char * guide_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"6 22 2 1",
4" 6 22 256 2", 4" c None",
5/* colors */ 5". c #ADA5C6",
6"`` c #ada5c6", 6" ",
7"`. c None", 7" .",
8"`# c #ffffff", 8" ",
9"`a c #ffffff", 9" .",
10"`b c #ffffff", 10" ",
11"`c c #ffffff", 11" .",
12"`d c #ffffff", 12" ",
13"`e c #ffffff", 13" .",
14"`f c #ffffff", 14" ",
15"`g c #ffffff", 15" .",
16"`h c #ffffff", 16" ",
17"`i c #ffffff", 17" .",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" .",
20"`l c #ffffff", 20" ",
21"`m c #ffffff", 21" .",
22"`n c #ffffff", 22" ",
23"`o c #ffffff", 23" .",
24"`p c #ffffff", 24" ",
25"`q c #ffffff", 25" .",
26"`r c #ffffff", 26" ",
27"`s c #ffffff", 27" ."};
28"`t c #ffffff",
29"`u c #ffffff",
30"`v c #ffffff",
31"`w c #ffffff",
32"`x c #ffffff",
33"`y c #ffffff",
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #ffffff",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`.`.`.`.`.`.",
264"`.`.`.`.`.``",
265"`.`.`.`.`.`.",
266"`.`.`.`.`.``",
267"`.`.`.`.`.`.",
268"`.`.`.`.`.``",
269"`.`.`.`.`.`.",
270"`.`.`.`.`.``",
271"`.`.`.`.`.`.",
272"`.`.`.`.`.``",
273"`.`.`.`.`.`.",
274"`.`.`.`.`.``",
275"`.`.`.`.`.`.",
276"`.`.`.`.`.``",
277"`.`.`.`.`.`.",
278"`.`.`.`.`.``",
279"`.`.`.`.`.`.",
280"`.`.`.`.`.``",
281"`.`.`.`.`.`.",
282"`.`.`.`.`.``",
283"`.`.`.`.`.`.",
284"`.`.`.`.`.``"
285};
diff --git a/etc/tree-widget/folder/handle.png b/etc/tree-widget/folder/handle.png
index 87058b7cc4d..cc5aa61b860 100644
--- a/etc/tree-widget/folder/handle.png
+++ b/etc/tree-widget/folder/handle.png
Binary files differ
diff --git a/etc/tree-widget/folder/handle.xpm b/etc/tree-widget/folder/handle.xpm
index 40d0ca417e9..d3eb5f387b3 100644
--- a/etc/tree-widget/folder/handle.xpm
+++ b/etc/tree-widget/folder/handle.xpm
@@ -1,285 +1,27 @@
1/* XPM */ 1/* XPM */
2static char *handle[] = { 2static char * handle_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"10 22 2 1",
4" 10 22 256 2", 4" c None",
5/* colors */ 5". c #ADA5C6",
6"`` c #000000", 6" ",
7"`. c #a5a5c6", 7" ",
8"`# c #ada5c6", 8" ",
9"`a c #cecee7", 9" ",
10"`b c #ceceff", 10" ",
11"`c c None", 11" ",
12"`d c #ffffff", 12" ",
13"`e c #ffffff", 13" ",
14"`f c #ffffff", 14" ",
15"`g c #ffffff", 15" ",
16"`h c #ffffff", 16" ",
17"`i c #ffffff", 17" . . . . .",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" ",
20"`l c #ffffff", 20" ",
21"`m c #ffffff", 21" ",
22"`n c #ffffff", 22" ",
23"`o c #ffffff", 23" ",
24"`p c #ffffff", 24" ",
25"`q c #ffffff", 25" ",
26"`r c #ffffff", 26" ",
27"`s c #ffffff", 27" "};
28"`t c #ffffff",
29"`u c #ffffff",
30"`v c #ffffff",
31"`w c #ffffff",
32"`x c #ffffff",
33"`y c #ffffff",
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #808000",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`c`c`c`c`c`c`c`c`c`c",
264"`c`c`c`c`c`c`c`c`c`c",
265"`c`c`c`c`c`c`c`c`c`c",
266"`c`c`c`c`c`c`c`c`c`c",
267"`c`c`c`c`c`c`c`c`c`c",
268"`c`c`c`c`c`c`c`c`c`c",
269"`c`c`c`c`c`c`c`c`c`c",
270"`c`c`c`c`c`c`c`c`c`c",
271"`c`c`c`c`c`c`c`c`c`c",
272"`c`c`c`c`c`c`c`c`c`c",
273"`c`c`c`c`c`c`c`c`c`c",
274"`c`#`c`#`c`#`c`#`c`#",
275"`c`c`c`c`c`c`c`c`c`c",
276"`c`c`c`c`c`c`c`c`c`c",
277"`c`c`c`c`c`c`c`c`c`c",
278"`c`c`c`c`c`c`c`c`c`c",
279"`c`c`c`c`c`c`c`c`c`c",
280"`c`c`c`c`c`c`c`c`c`c",
281"`c`c`c`c`c`c`c`c`c`c",
282"`c`c`c`c`c`c`c`c`c`c",
283"`c`c`c`c`c`c`c`c`c`c",
284"`c`c`c`c`c`c`c`c`c`c"
285};
diff --git a/etc/tree-widget/folder/leaf.png b/etc/tree-widget/folder/leaf.png
index 6abb6036f52..c15762b6570 100644
--- a/etc/tree-widget/folder/leaf.png
+++ b/etc/tree-widget/folder/leaf.png
Binary files differ
diff --git a/etc/tree-widget/folder/leaf.xpm b/etc/tree-widget/folder/leaf.xpm
index c353cb2cdf8..53a86c75d64 100644
--- a/etc/tree-widget/folder/leaf.xpm
+++ b/etc/tree-widget/folder/leaf.xpm
@@ -1,285 +1,34 @@
1/* XPM */ 1/* XPM */
2static char *leaf[] = { 2static char * leaf_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"16 22 9 1",
4" 16 22 256 2", 4" c None",
5/* colors */ 5". c #424242",
6"`` c #000000", 6"+ c #949494",
7"`. c #424242", 7"@ c #9C9C9C",
8"`# c #848484", 8"# c #A5A5A5",
9"`a c #949494", 9"$ c #ADADAD",
10"`b c #9c9c9c", 10"% c #848484",
11"`c c #a5a5a5", 11"& c #B5B5B5",
12"`d c #adadad", 12"* c #BDBDBD",
13"`e c #b5b5b5", 13" ",
14"`f c #bdbdbd", 14" ",
15"`g c #c6c6c6", 15" ",
16"`h c None", 16" ",
17"`i c #ffffff", 17" ",
18"`j c #ffffff", 18"....... ",
19"`k c #ffffff", 19".++@@#.. ",
20"`l c #ffffff", 20".+@@##.$. ",
21"`m c #ffffff", 21".@@###.... ",
22"`n c #ffffff", 22".@%%%+%$&. ",
23"`o c #ffffff", 23".###$$$&&. ",
24"`p c #ffffff", 24".#%+%%%&*. ",
25"`q c #ffffff", 25".#$$$&&**. ",
26"`r c #ffffff", 26".$%%+%%**. ",
27"`s c #ffffff", 27".$$&&****. ",
28"`t c #ffffff", 28".$&&*****. ",
29"`u c #ffffff", 29".......... ",
30"`v c #ffffff", 30" ",
31"`w c #ffffff", 31" ",
32"`x c #ffffff", 32" ",
33"`y c #ffffff", 33" ",
34"`z c #ffffff", 34" "};
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #ffffff",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
264"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
265"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
266"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
267"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
268"`.`.`.`.`.`.`.`h`h`h`h`h`h`h`h`h",
269"`.`a`a`b`b`c`.`.`h`h`h`h`h`h`h`h",
270"`.`a`b`b`c`c`.`d`.`h`h`h`h`h`h`h",
271"`.`b`b`c`c`c`.`.`.`.`h`h`h`h`h`h",
272"`.`b`#`#`#`a`#`d`e`.`h`h`h`h`h`h",
273"`.`c`c`c`d`d`d`e`e`.`h`h`h`h`h`h",
274"`.`c`#`a`#`#`#`e`f`.`h`h`h`h`h`h",
275"`.`c`d`d`d`e`e`f`f`.`h`h`h`h`h`h",
276"`.`d`#`#`a`#`#`f`f`.`h`h`h`h`h`h",
277"`.`d`d`e`e`f`f`f`f`.`h`h`h`h`h`h",
278"`.`d`e`e`f`f`f`f`f`.`h`h`h`h`h`h",
279"`.`.`.`.`.`.`.`.`.`.`h`h`h`h`h`h",
280"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
281"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
282"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
283"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h",
284"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h"
285};
diff --git a/etc/tree-widget/folder/no-guide.png b/etc/tree-widget/folder/no-guide.png
index 5705cc83cf4..81999263b2c 100644
--- a/etc/tree-widget/folder/no-guide.png
+++ b/etc/tree-widget/folder/no-guide.png
Binary files differ
diff --git a/etc/tree-widget/folder/no-guide.xpm b/etc/tree-widget/folder/no-guide.xpm
index 2d3e1e7c099..a74b84061ca 100644
--- a/etc/tree-widget/folder/no-guide.xpm
+++ b/etc/tree-widget/folder/no-guide.xpm
@@ -1,285 +1,26 @@
1/* XPM */ 1/* XPM */
2static char *no-guide[] = { 2static char * no_guide_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"6 22 1 1",
4" 6 22 256 2", 4" c None",
5/* colors */ 5" ",
6"`` c None", 6" ",
7"`. c #ffffff", 7" ",
8"`# c #ffffff", 8" ",
9"`a c #ffffff", 9" ",
10"`b c #ffffff", 10" ",
11"`c c #ffffff", 11" ",
12"`d c #ffffff", 12" ",
13"`e c #ffffff", 13" ",
14"`f c #ffffff", 14" ",
15"`g c #ffffff", 15" ",
16"`h c #ffffff", 16" ",
17"`i c #ffffff", 17" ",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" ",
20"`l c #ffffff", 20" ",
21"`m c #ffffff", 21" ",
22"`n c #ffffff", 22" ",
23"`o c #ffffff", 23" ",
24"`p c #ffffff", 24" ",
25"`q c #ffffff", 25" ",
26"`r c #ffffff", 26" "};
27"`s c #ffffff",
28"`t c #ffffff",
29"`u c #ffffff",
30"`v c #ffffff",
31"`w c #ffffff",
32"`x c #ffffff",
33"`y c #ffffff",
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #ffffff",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"````````````",
264"````````````",
265"````````````",
266"````````````",
267"````````````",
268"````````````",
269"````````````",
270"````````````",
271"````````````",
272"````````````",
273"````````````",
274"````````````",
275"````````````",
276"````````````",
277"````````````",
278"````````````",
279"````````````",
280"````````````",
281"````````````",
282"````````````",
283"````````````",
284"````````````"
285};
diff --git a/etc/tree-widget/folder/no-handle.png b/etc/tree-widget/folder/no-handle.png
index c335dd938ac..3055803a595 100644
--- a/etc/tree-widget/folder/no-handle.png
+++ b/etc/tree-widget/folder/no-handle.png
Binary files differ
diff --git a/etc/tree-widget/folder/no-handle.xpm b/etc/tree-widget/folder/no-handle.xpm
index fa3e4c5874b..cea559fd763 100644
--- a/etc/tree-widget/folder/no-handle.xpm
+++ b/etc/tree-widget/folder/no-handle.xpm
@@ -1,285 +1,26 @@
1/* XPM */ 1/* XPM */
2static char *no-handle[] = { 2static char * no_handle_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"10 22 1 1",
4" 10 22 256 2", 4" c None",
5/* colors */ 5" ",
6"`` c #000000", 6" ",
7"`. c #a5a5c6", 7" ",
8"`# c #ada5c6", 8" ",
9"`a c #cecee7", 9" ",
10"`b c #ceceff", 10" ",
11"`c c None", 11" ",
12"`d c #ffffff", 12" ",
13"`e c #ffffff", 13" ",
14"`f c #ffffff", 14" ",
15"`g c #ffffff", 15" ",
16"`h c #ffffff", 16" ",
17"`i c #ffffff", 17" ",
18"`j c #ffffff", 18" ",
19"`k c #ffffff", 19" ",
20"`l c #ffffff", 20" ",
21"`m c #ffffff", 21" ",
22"`n c #ffffff", 22" ",
23"`o c #ffffff", 23" ",
24"`p c #ffffff", 24" ",
25"`q c #ffffff", 25" ",
26"`r c #ffffff", 26" "};
27"`s c #ffffff",
28"`t c #ffffff",
29"`u c #ffffff",
30"`v c #ffffff",
31"`w c #ffffff",
32"`x c #ffffff",
33"`y c #ffffff",
34"`z c #ffffff",
35"`A c #ffffff",
36"`B c #ffffff",
37"`C c #ffffff",
38"`D c #808000",
39"`E c #ffffff",
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`c`c`c`c`c`c`c`c`c`c",
264"`c`c`c`c`c`c`c`c`c`c",
265"`c`c`c`c`c`c`c`c`c`c",
266"`c`c`c`c`c`c`c`c`c`c",
267"`c`c`c`c`c`c`c`c`c`c",
268"`c`c`c`c`c`c`c`c`c`c",
269"`c`c`c`c`c`c`c`c`c`c",
270"`c`c`c`c`c`c`c`c`c`c",
271"`c`c`c`c`c`c`c`c`c`c",
272"`c`c`c`c`c`c`c`c`c`c",
273"`c`c`c`c`c`c`c`c`c`c",
274"`c`c`c`c`c`c`c`c`c`c",
275"`c`c`c`c`c`c`c`c`c`c",
276"`c`c`c`c`c`c`c`c`c`c",
277"`c`c`c`c`c`c`c`c`c`c",
278"`c`c`c`c`c`c`c`c`c`c",
279"`c`c`c`c`c`c`c`c`c`c",
280"`c`c`c`c`c`c`c`c`c`c",
281"`c`c`c`c`c`c`c`c`c`c",
282"`c`c`c`c`c`c`c`c`c`c",
283"`c`c`c`c`c`c`c`c`c`c",
284"`c`c`c`c`c`c`c`c`c`c"
285};
diff --git a/etc/tree-widget/folder/open.png b/etc/tree-widget/folder/open.png
index 4237d3aa648..6696a43c09c 100644
--- a/etc/tree-widget/folder/open.png
+++ b/etc/tree-widget/folder/open.png
Binary files differ
diff --git a/etc/tree-widget/folder/open.xpm b/etc/tree-widget/folder/open.xpm
index 720f79fa94b..dfbf758dd8f 100644
--- a/etc/tree-widget/folder/open.xpm
+++ b/etc/tree-widget/folder/open.xpm
@@ -1,285 +1,39 @@
1/* XPM */ 1/* XPM */
2static char *open[] = { 2static char * open_xpm[] = {
3/* width height num_colors chars_per_pixel */ 3"16 22 14 1",
4" 16 22 256 2", 4" c None",
5/* colors */ 5". c #848400",
6"`` c #848400", 6"+ c #D6D67B",
7"`. c #a5a5c6", 7"@ c #CECE7B",
8"`# c #adad39", 8"# c #CECE73",
9"`a c #adad42", 9"$ c #C6C66B",
10"`b c #b5b54a", 10"% c #BDBD5A",
11"`c c #bdbd52", 11"& c #BDBD52",
12"`d c #bdbd5a", 12"* c #ADAD39",
13"`e c #c6c663", 13"= c #ADAD42",
14"`f c #c6c66b", 14"- c #B5B54A",
15"`g c #cece6b", 15"; c #C6C663",
16"`h c #cece73", 16"> c #CECE6B",
17"`i c #cece7b", 17", c #A5A5C6",
18"`j c #d6d67b", 18" ",
19"`k c None", 19" ",
20"`l c #ffffff", 20" ",
21"`m c #ffffff", 21" ",
22"`n c #ffffff", 22" ",
23"`o c #ffffff", 23" ",
24"`p c #ffffff", 24" .... ",
25"`q c #ffffff", 25".+@@#..... ",
26"`r c #ffffff", 26".@@##$$%%&. ",
27"`s c #ffffff", 27".@#.......... ",
28"`t c #ffffff", 28".#.*==--&%%;;. ",
29"`u c #ffffff", 29".#.==--&%%;;. ",
30"`v c #ffffff", 30"..==--&%%;;$. ",
31"`w c #ffffff", 31"..=--&%%;;$. ",
32"`x c #ffffff", 32".=--&%%;;$>. ",
33"`y c #ffffff", 33"........... ",
34"`z c #ffffff", 34" ",
35"`A c #ffffff", 35" , ",
36"`B c #ffffff", 36" ",
37"`C c #ffffff", 37" , ",
38"`D c #ffffff", 38" ",
39"`E c #ffffff", 39" , "};
40"`F c #ffffff",
41"`G c #ffffff",
42"`H c #ffffff",
43"`I c #ffffff",
44"`J c #ffffff",
45"`K c #ffffff",
46"`L c #ffffff",
47"`M c #ffffff",
48"`N c #ffffff",
49"`O c #ffffff",
50"`P c #ffffff",
51"`Q c #ffffff",
52"`R c #ffffff",
53"`S c #ffffff",
54"`T c #ffffff",
55"`U c #ffffff",
56"`V c #ffffff",
57"`W c #ffffff",
58"`X c #ffffff",
59"`Y c #ffffff",
60"`Z c #ffffff",
61"`0 c #ffffff",
62"`1 c #ffffff",
63"`2 c #ffffff",
64"`3 c #ffffff",
65"`4 c #ffffff",
66"`5 c #ffffff",
67"`6 c #ffffff",
68"`7 c #ffffff",
69"`8 c #ffffff",
70".` c #ffffff",
71".. c #ffffff",
72".# c #ffffff",
73".a c #ffffff",
74".b c #ffffff",
75".c c #ffffff",
76".d c #ffffff",
77".e c #ffffff",
78".f c #ffffff",
79".g c #ffffff",
80".h c #ffffff",
81".i c #ffffff",
82".j c #ffffff",
83".k c #ffffff",
84".l c #ffffff",
85".m c #ffffff",
86".n c #ffffff",
87".o c #ffffff",
88".p c #ffffff",
89".q c #ffffff",
90".r c #ffffff",
91".s c #ffffff",
92".t c #ffffff",
93".u c #ffffff",
94".v c #ffffff",
95".w c #ffffff",
96".x c #ffffff",
97".y c #ffffff",
98".z c #ffffff",
99".A c #ffffff",
100".B c #ffffff",
101".C c #ffffff",
102".D c #ffffff",
103".E c #ffffff",
104".F c #ffffff",
105".G c #ffffff",
106".H c #ffffff",
107".I c #ffffff",
108".J c #ffffff",
109".K c #ffffff",
110".L c #ffffff",
111".M c #ffffff",
112".N c #ffffff",
113".O c #ffffff",
114".P c #ffffff",
115".Q c #ffffff",
116".R c #ffffff",
117".S c #ffffff",
118".T c #ffffff",
119".U c #ffffff",
120".V c #ffffff",
121".W c #ffffff",
122".X c #ffffff",
123".Y c #ffffff",
124".Z c #ffffff",
125".0 c #ffffff",
126".1 c #ffffff",
127".2 c #ffffff",
128".3 c #ffffff",
129".4 c #ffffff",
130".5 c #ffffff",
131".6 c #ffffff",
132".7 c #ffffff",
133".8 c #ffffff",
134"#` c #ffffff",
135"#. c #ffffff",
136"## c #ffffff",
137"#a c #ffffff",
138"#b c #ffffff",
139"#c c #ffffff",
140"#d c #ffffff",
141"#e c #ffffff",
142"#f c #ffffff",
143"#g c #ffffff",
144"#h c #ffffff",
145"#i c #ffffff",
146"#j c #ffffff",
147"#k c #ffffff",
148"#l c #ffffff",
149"#m c #ffffff",
150"#n c #ffffff",
151"#o c #ffffff",
152"#p c #ffffff",
153"#q c #ffffff",
154"#r c #ffffff",
155"#s c #ffffff",
156"#t c #ffffff",
157"#u c #ffffff",
158"#v c #ffffff",
159"#w c #ffffff",
160"#x c #ffffff",
161"#y c #ffffff",
162"#z c #ffffff",
163"#A c #ffffff",
164"#B c #ffffff",
165"#C c #ffffff",
166"#D c #ffffff",
167"#E c #ffffff",
168"#F c #ffffff",
169"#G c #ffffff",
170"#H c #ffffff",
171"#I c #ffffff",
172"#J c #ffffff",
173"#K c #ffffff",
174"#L c #ffffff",
175"#M c #ffffff",
176"#N c #ffffff",
177"#O c #ffffff",
178"#P c #ffffff",
179"#Q c #ffffff",
180"#R c #ffffff",
181"#S c #ffffff",
182"#T c #ffffff",
183"#U c #ffffff",
184"#V c #ffffff",
185"#W c #ffffff",
186"#X c #ffffff",
187"#Y c #ffffff",
188"#Z c #ffffff",
189"#0 c #ffffff",
190"#1 c #ffffff",
191"#2 c #ffffff",
192"#3 c #ffffff",
193"#4 c #ffffff",
194"#5 c #ffffff",
195"#6 c #ffffff",
196"#7 c #ffffff",
197"#8 c #ffffff",
198"a` c #ffffff",
199"a. c #ffffff",
200"a# c #ffffff",
201"aa c #ffffff",
202"ab c #ffffff",
203"ac c #ffffff",
204"ad c #ffffff",
205"ae c #ffffff",
206"af c #ffffff",
207"ag c #ffffff",
208"ah c #ffffff",
209"ai c #ffffff",
210"aj c #ffffff",
211"ak c #ffffff",
212"al c #ffffff",
213"am c #ffffff",
214"an c #ffffff",
215"ao c #ffffff",
216"ap c #ffffff",
217"aq c #ffffff",
218"ar c #ffffff",
219"as c #ffffff",
220"at c #ffffff",
221"au c #ffffff",
222"av c #ffffff",
223"aw c #ffffff",
224"ax c #ffffff",
225"ay c #ffffff",
226"az c #ffffff",
227"aA c #ffffff",
228"aB c #ffffff",
229"aC c #ffffff",
230"aD c #ffffff",
231"aE c #ffffff",
232"aF c #ffffff",
233"aG c #ffffff",
234"aH c #ffffff",
235"aI c #ffffff",
236"aJ c #ffffff",
237"aK c #ffffff",
238"aL c #ffffff",
239"aM c #ffffff",
240"aN c #ffffff",
241"aO c #ffffff",
242"aP c #ffffff",
243"aQ c #ffffff",
244"aR c #ffffff",
245"aS c #ffffff",
246"aT c #ffffff",
247"aU c #ffffff",
248"aV c #ffffff",
249"aW c #ffffff",
250"aX c #ffffff",
251"aY c #ffffff",
252"aZ c #ffffff",
253"a0 c #ffffff",
254"a1 c #ffffff",
255"a2 c #ffffff",
256"a3 c #ffffff",
257"a4 c #ffffff",
258"a5 c #ffffff",
259"a6 c #ffffff",
260"a7 c #ffffff",
261"a8 c #ffffff",
262/* pixels */
263"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k",
264"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k",
265"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k",
266"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k",
267"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k",
268"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k",
269"`k`````````k`k`k`k`k`k`k`k`k`k`k",
270"```j`i`i`h```````````k`k`k`k`k`k",
271"```i`i`h`h`f`f`d`d`c```k`k`k`k`k",
272"```i`h`````````````````````k`k`k",
273"```h```#`a`a`b`b`c`d`d`e`e```k`k",
274"```h```a`a`b`b`c`d`d`e`e```k`k`k",
275"`````a`a`b`b`c`d`d`e`e`f```k`k`k",
276"`````a`b`b`c`d`d`e`e`f```k`k`k`k",
277"```a`b`b`c`d`d`e`e`f`g```k`k`k`k",
278"```````````````````````k`k`k`k`k",
279"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k",
280"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k",
281"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k",
282"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k",
283"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k",
284"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k"
285};
diff --git a/etc/ulimit.hack b/etc/ulimit.hack
index 17105158c42..d804459ba0b 100644
--- a/etc/ulimit.hack
+++ b/etc/ulimit.hack
@@ -37,4 +37,23 @@ exit 0
37# 37#
38# Upon system reboot, all processes will inherit the new large ulimit. 38# Upon system reboot, all processes will inherit the new large ulimit.
39 39
40# Copyright (c) 1999, 2003, 2006
41# Free Software Foundation, Inc.
42
43# COPYING PERMISSIONS:
44#
45# This document is free software; you can redistribute it and/or modify
46# it under the terms of the GNU General Public License as published by
47# the Free Software Foundation; either version 2 of the License, or
48# (at your option) any later version.
49#
50# This program is distributed in the hope that it will be useful,
51# but WITHOUT ANY WARRANTY; without even the implied warranty of
52# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
53# GNU General Public License for more details.
54#
55# You should have received a copy of the GNU General Public License
56# along with this program; if not, write to the Free Software
57# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
58
40# arch-tag: 6f9a7072-9d07-4431-b0bb-e867648ad0b4 59# arch-tag: 6f9a7072-9d07-4431-b0bb-e867648ad0b4