aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2004-05-18 19:12:15 +0000
committerKaroly Lorentey2004-05-18 19:12:15 +0000
commitc23670f81e059ebe645c88575f4ddfa67f26bf6b (patch)
tree71667a6ceaa877ccf3953abedfa7b0fd5f0f5369
parentd9858e4f1889a61b216ae1f99053846362067ccc (diff)
parenta7f7f2540f02834ad128d0c9357a4dbd8222dff4 (diff)
downloademacs-c23670f81e059ebe645c88575f4ddfa67f26bf6b.tar.gz
emacs-c23670f81e059ebe645c88575f4ddfa67f26bf6b.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-299 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-300 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-301 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-302 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-303 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-304 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-305 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-306 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-307 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-308 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-309 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-310 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-311 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-312 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-313 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-314 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-315 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-316 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-317 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-318 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-319 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-320 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-321 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-322 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-323 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-324 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-163
-rw-r--r--MAINTAINERS3
-rw-r--r--admin/notes/exit-value12
-rw-r--r--etc/ChangeLog19
-rw-r--r--etc/NEWS27
-rw-r--r--etc/PROBLEMS6
-rw-r--r--etc/TUTORIAL.pt_BR1089
-rw-r--r--etc/TUTORIAL.translators1
-rw-r--r--etc/compilation.txt18
-rw-r--r--etc/ru-refcard.ps2087
-rw-r--r--etc/ru-refcard.tex516
-rw-r--r--etc/tree-widget/default/close.pngbin0 -> 999 bytes
-rw-r--r--etc/tree-widget/default/close.xpm284
-rw-r--r--etc/tree-widget/default/empty.pngbin0 -> 999 bytes
-rw-r--r--etc/tree-widget/default/empty.xpm284
-rw-r--r--etc/tree-widget/default/end-guide.pngbin0 -> 913 bytes
-rw-r--r--etc/tree-widget/default/end-guide.xpm284
-rw-r--r--etc/tree-widget/default/guide.pngbin0 -> 911 bytes
-rw-r--r--etc/tree-widget/default/guide.xpm284
-rw-r--r--etc/tree-widget/default/handle.pngbin0 -> 916 bytes
-rw-r--r--etc/tree-widget/default/handle.xpm284
-rw-r--r--etc/tree-widget/default/leaf.pngbin0 -> 994 bytes
-rw-r--r--etc/tree-widget/default/leaf.xpm284
-rw-r--r--etc/tree-widget/default/no-guide.pngbin0 -> 914 bytes
-rw-r--r--etc/tree-widget/default/no-guide.xpm284
-rw-r--r--etc/tree-widget/default/no-handle.pngbin0 -> 914 bytes
-rw-r--r--etc/tree-widget/default/no-handle.xpm284
-rw-r--r--etc/tree-widget/default/open.pngbin0 -> 1006 bytes
-rw-r--r--etc/tree-widget/default/open.xpm284
-rw-r--r--etc/tree-widget/folder/close.pngbin0 -> 981 bytes
-rw-r--r--etc/tree-widget/folder/close.xpm285
-rw-r--r--etc/tree-widget/folder/empty.pngbin0 -> 1008 bytes
-rw-r--r--etc/tree-widget/folder/empty.xpm285
-rw-r--r--etc/tree-widget/folder/end-guide.pngbin0 -> 942 bytes
-rw-r--r--etc/tree-widget/folder/end-guide.xpm285
-rw-r--r--etc/tree-widget/folder/guide.pngbin0 -> 940 bytes
-rw-r--r--etc/tree-widget/folder/guide.xpm285
-rw-r--r--etc/tree-widget/folder/handle.pngbin0 -> 915 bytes
-rw-r--r--etc/tree-widget/folder/handle.xpm285
-rw-r--r--etc/tree-widget/folder/leaf.pngbin0 -> 980 bytes
-rw-r--r--etc/tree-widget/folder/leaf.xpm285
-rw-r--r--etc/tree-widget/folder/no-guide.pngbin0 -> 934 bytes
-rw-r--r--etc/tree-widget/folder/no-guide.xpm285
-rw-r--r--etc/tree-widget/folder/no-handle.pngbin0 -> 942 bytes
-rw-r--r--etc/tree-widget/folder/no-handle.xpm285
-rw-r--r--etc/tree-widget/folder/open.pngbin0 -> 1019 bytes
-rw-r--r--etc/tree-widget/folder/open.xpm285
-rw-r--r--leim/.gitignore4
-rw-r--r--leim/ChangeLog15
-rw-r--r--leim/Makefile.in21
-rw-r--r--leim/quail/sisheng.el292
-rw-r--r--lib-src/ChangeLog4
-rw-r--r--lib-src/test-distrib.c6
-rw-r--r--lisp/ChangeLog316
-rw-r--r--lisp/calendar/appt.el9
-rw-r--r--lisp/custom.el8
-rw-r--r--lisp/descr-text.el434
-rw-r--r--lisp/emacs-lisp/cl-indent.el8
-rw-r--r--lisp/emacs-lisp/lisp-mode.el2
-rw-r--r--lisp/emacs-lisp/timer.el13
-rw-r--r--lisp/eshell/.gitignore13
-rw-r--r--lisp/eshell/esh-io.el46
-rw-r--r--lisp/eshell/esh-test.el8
-rw-r--r--lisp/faces.el5
-rw-r--r--lisp/files.el13
-rw-r--r--lisp/generic.el5
-rw-r--r--lisp/gnus/ChangeLog5
-rw-r--r--lisp/gnus/gnus-win.el4
-rw-r--r--lisp/help-fns.el57
-rw-r--r--lisp/ibuf-macs.el16
-rw-r--r--lisp/iimage.el134
-rw-r--r--lisp/international/quail.el147
-rw-r--r--lisp/iswitchb.el2
-rw-r--r--lisp/language/european.el13
-rw-r--r--lisp/mail/rfc2368.el3
-rw-r--r--lisp/mail/unrmail.el189
-rw-r--r--lisp/man.el6
-rw-r--r--lisp/net/telnet.el17
-rw-r--r--lisp/progmodes/compile.el44
-rw-r--r--lisp/progmodes/f90.el49
-rw-r--r--lisp/progmodes/gdb-ui.el1
-rw-r--r--lisp/progmodes/gud.el11
-rw-r--r--lisp/progmodes/python.el19
-rw-r--r--lisp/subr.el55
-rw-r--r--lisp/textmodes/ispell.el9
-rw-r--r--lisp/toolbar/close.pbmbin81 -> 81 bytes
-rw-r--r--lisp/toolbar/close.xpm57
-rw-r--r--lisp/toolbar/copy.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/copy.xpm88
-rw-r--r--lisp/toolbar/cut.pbmbin81 -> 81 bytes
-rw-r--r--lisp/toolbar/cut.xpm97
-rw-r--r--lisp/toolbar/help.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/help.xpm305
-rw-r--r--lisp/toolbar/home.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/home.xpm160
-rw-r--r--lisp/toolbar/index.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/index.xpm238
-rw-r--r--lisp/toolbar/jump_to.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/jump_to.xpm208
-rw-r--r--lisp/toolbar/left_arrow.pbmbin81 -> 81 bytes
-rw-r--r--lisp/toolbar/left_arrow.xpm86
-rw-r--r--lisp/toolbar/new.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/new.xpm189
-rw-r--r--lisp/toolbar/open.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/open.xpm232
-rw-r--r--lisp/toolbar/paste.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/paste.xpm149
-rw-r--r--lisp/toolbar/preferences.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/preferences.xpm139
-rw-r--r--lisp/toolbar/print.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/print.xpm236
-rw-r--r--lisp/toolbar/right_arrow.pbmbin81 -> 81 bytes
-rw-r--r--lisp/toolbar/right_arrow.xpm84
-rw-r--r--lisp/toolbar/save.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/save.xpm280
-rw-r--r--lisp/toolbar/saveas.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/saveas.xpm322
-rw-r--r--lisp/toolbar/search.pbmbin634 -> 81 bytes
-rw-r--r--lisp/toolbar/search.xpm270
-rw-r--r--lisp/toolbar/spell.pbmbin81 -> 81 bytes
-rw-r--r--lisp/toolbar/spell.xpm97
-rw-r--r--lisp/toolbar/undo.pbmbin81 -> 81 bytes
-rw-r--r--lisp/toolbar/undo.xpm91
-rw-r--r--lisp/toolbar/up_arrow.pbmbin81 -> 81 bytes
-rw-r--r--lisp/toolbar/up_arrow.xpm108
-rw-r--r--lisp/tree-widget.el736
-rw-r--r--lisp/version.el2
-rw-r--r--lisp/wid-edit.el2
-rw-r--r--lispref/ChangeLog6
-rw-r--r--lispref/modes.texi9
-rw-r--r--mac/Emacs.app/Contents/.gitignore1
-rw-r--r--man/ChangeLog11
-rw-r--r--man/building.texi103
-rw-r--r--man/emacs.texi6
-rw-r--r--man/help.texi6
-rw-r--r--msdos/ChangeLog6
-rw-r--r--msdos/sedleim.inp6
-rw-r--r--src/.gdbinit12
-rw-r--r--src/ChangeLog191
-rw-r--r--src/alloc.c32
-rw-r--r--src/blockinput.h3
-rw-r--r--src/buffer.h19
-rw-r--r--src/ccl.c4
-rw-r--r--src/charset.c26
-rw-r--r--src/data.c2
-rw-r--r--src/emacs.c1
-rw-r--r--src/image.c475
-rw-r--r--src/keyboard.c22
-rw-r--r--src/lisp.h52
-rw-r--r--src/macfns.c4
-rw-r--r--src/macmenu.c3
-rw-r--r--src/macterm.c24
-rw-r--r--src/macterm.h14
-rw-r--r--src/msdos.c33
-rw-r--r--src/print.c35
-rw-r--r--src/process.c15
-rw-r--r--src/regex.c2
-rw-r--r--src/textprop.c23
-rw-r--r--src/w32.c14
-rw-r--r--src/w32console.c26
-rw-r--r--src/w32fns.c156
-rw-r--r--src/w32heap.c3
-rw-r--r--src/w32inevt.c12
-rw-r--r--src/w32proc.c8
-rw-r--r--src/w32term.c16
-rw-r--r--src/window.c9
-rw-r--r--src/xdisp.c28
-rw-r--r--src/xfaces.c32
-rw-r--r--src/xfns.c5
168 files changed, 15020 insertions, 1513 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index d1340adc070..5b23f9af189 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -104,6 +104,9 @@ Miles Bader
104 src/editfns.c 104 src/editfns.c
105 lisp/textmodes/refill.el 105 lisp/textmodes/refill.el
106 106
107Thien-Thi Nguyen
108 VMS
109
107============================================================================== 110==============================================================================
1083. 1113.
109============================================================================== 112==============================================================================
diff --git a/admin/notes/exit-value b/admin/notes/exit-value
index 2eb598bf495..e59bb614b9b 100644
--- a/admin/notes/exit-value
+++ b/admin/notes/exit-value
@@ -21,3 +21,15 @@ value requirements outlined in the first paragraph! That is the job of the
21 #endif 21 #endif
22 22
23Values aside from EXIT_SUCCESS and EXIT_FAILURE are tricky. 23Values aside from EXIT_SUCCESS and EXIT_FAILURE are tricky.
24
25
26
27ttn 2004-05-12
28
29Values aside from EXIT_SUCCESS and EXIT_FAILURE can be used to indicate
30finer gradations of failure. If this is the only information available
31to the caller, clamping such values to EXIT_FAILURE loses information.
32If there are other ways to indicate the problem to the caller (such as
33a message to stderr) it may be ok to clamp. In all cases, it is the
34relationship between the program and its caller that must be examined.
35[Insert ZAMM quote here.]
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 6e2f2378536..faeb5f4f21c 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,22 @@
12004-05-16 Juri Linkov <juri@jurta.org>
2
3 * TUTORIAL.pt_BR: Add coding: latin-1, sentence-end-double-space: nil.
4
5 * ru-refcard.tex: Add C-u and RET to `C-h t Russian'.
6
72004-05-15 Alex Ott <ott@jet.msk.su>
8
9 * ru-refcard.tex, ru-refcard.ps: New files.
10
112004-05-14 David Ponce <david@dponce.com>
12
13 * tree-widget: New directory containing tree-widget themes and
14 images.
15
162004-04-13 Marcelo Toledo <marcelo@marcelotoledo.org>
17
18 * TUTORIAL.pt_BR: initial check-in.
19
12004-05-06 Dave Love <fx@gnu.org> 202004-05-06 Dave Love <fx@gnu.org>
2 21
3 * emacs.py: New file for python-mode's internal use. 22 * emacs.py: New file for python-mode's internal use.
diff --git a/etc/NEWS b/etc/NEWS
index dd027945f3c..b451fd07efd 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -90,6 +90,12 @@ types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
90 90
91* Changes in Emacs 21.4 91* Changes in Emacs 21.4
92 92
93** New input method chinese-sisheng for inputting Chinese Pinyin
94characters.
95
96** New command quail-show-key shows what key (or key sequence) to type
97in the current input method to input a character at point.
98
93** Convenient commands to switch buffers in a cyclic order are C-x <left> 99** Convenient commands to switch buffers in a cyclic order are C-x <left>
94(prev-buffer) and C-x <right> (next-buffer). 100(prev-buffer) and C-x <right> (next-buffer).
95 101
@@ -97,8 +103,8 @@ types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
97C-c <left> and C-c <right>, respectively. This is an incompatible change. 103C-c <left> and C-c <right>, respectively. This is an incompatible change.
98 104
99** Help commands `describe-funcion' and `describe-key' now show function 105** Help commands `describe-funcion' and `describe-key' now show function
100arguments in italics. To change the default highlighting customize the 106arguments in lowercase italics on displays that support it. To change the
101face `help-argument-name'. 107default, redefine the function `help-default-arg-highlight'.
102 108
103--- 109---
104** The comint prompt can now be made read-only, using the new user 110** The comint prompt can now be made read-only, using the new user
@@ -795,9 +801,9 @@ to give it focus.
795+++ 801+++
796** The new command `describe-char' (C-u C-x =) pops up a buffer with 802** The new command `describe-char' (C-u C-x =) pops up a buffer with
797description various information about a character, including its 803description various information about a character, including its
798encodings and syntax, its text properties, overlays, and widgets at 804encodings and syntax, its text properties, how to input, overlays, and
799point. You can get more information about some of them, by clicking 805widgets at point. You can get more information about some of them, by
800on mouse-sensitive areas or moving there and pressing RET. 806clicking on mouse-sensitive areas or moving there and pressing RET.
801 807
802+++ 808+++
803** The new command `multi-occur' is just like `occur', except it can 809** The new command `multi-occur' is just like `occur', except it can
@@ -1644,6 +1650,10 @@ Lines that match are never indented, and are given distinctive font-locking.
1644** F90 mode has new navigation commands `f90-end-of-block', 1650** F90 mode has new navigation commands `f90-end-of-block',
1645`f90-beginning-of-block', `f90-next-block', `f90-previous-block'. 1651`f90-beginning-of-block', `f90-next-block', `f90-previous-block'.
1646 1652
1653** F90 mode now has support for hs-minor-mode (hideshow).
1654It cannot deal with every code format, but ought to handle a sizeable
1655majority.
1656
1647--- 1657---
1648** Prolog mode has a new variable `prolog-font-lock-keywords' 1658** Prolog mode has a new variable `prolog-font-lock-keywords'
1649to support use of font-lock. 1659to support use of font-lock.
@@ -1791,6 +1801,10 @@ to view diffs or log entries directly from vc-annotate-mode:
1791 1801
1792* New modes and packages in Emacs 21.4 1802* New modes and packages in Emacs 21.4
1793 1803
1804** The library tree-widget.el provides a new widget to display a set
1805of hierarchical data as an outline. For example, the tree-widget is
1806well suited to display a hierarchy of directories and files.
1807
1794** The wdired.el package allows you to use normal editing commands on dired 1808** The wdired.el package allows you to use normal editing commands on dired
1795buffers to change filenames, permissions, etc... 1809buffers to change filenames, permissions, etc...
1796 1810
@@ -2019,6 +2033,9 @@ configuration files.
2019 2033
2020* Lisp Changes in Emacs 21.4 2034* Lisp Changes in Emacs 21.4
2021 2035
2036** New function quail-find-key returns a list of keys to type in the
2037current input method to input a character.
2038
2022** New functions posn-at-point and posn-at-x-y returns 2039** New functions posn-at-point and posn-at-x-y returns
2023click-event-style position information for a given visible buffer 2040click-event-style position information for a given visible buffer
2024position or for a given window pixel coordinate. 2041position or for a given window pixel coordinate.
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 97c7e6cf67e..c3be7f83a7c 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -221,6 +221,12 @@ __MSVCRT__, like so:
221 221
222 configure --with-gcc --cflags -mwin32 --cflags -D__MSVCRT__ 222 configure --with-gcc --cflags -mwin32 --cflags -D__MSVCRT__
223 223
224* Building the MS-Windows port fails with a CreateProcess failure.
225
226Some versions of mingw32 make on some versions of Windows do not seem
227to detect the shell correctly. Try "make SHELL=cmd.exe", or if that
228fails, try running make from Cygwin bash instead.
229
224* Building the MS-Windows port with Leim fails in the `leim' directory. 230* Building the MS-Windows port with Leim fails in the `leim' directory.
225 231
226The error message might be something like this: 232The error message might be something like this:
diff --git a/etc/TUTORIAL.pt_BR b/etc/TUTORIAL.pt_BR
new file mode 100644
index 00000000000..58101c28edb
--- /dev/null
+++ b/etc/TUTORIAL.pt_BR
@@ -0,0 +1,1089 @@
1Copyright (c) 2004 Free Software Foundation, Inc; Veja no fim as
2condições.
3
4Os comandos do Emacs geralmente envolvem a tecla CONTROL (algumas vezes
5nomeada CTRL ou CTL) ou a tecla META (algumas vezes nomeada EDIT ou
6ALT). Antes de escrever isso tudo toda vez, usaremos as seguintes
7abreviações:
8
9 C-<chr> Significa pressionar a tecla CONTROL enquanto digitar o
10 caracter <chr>
11 Assim, C-f seria: Pressionar a tecla CONTROL e digitar f.
12 M-<chr> Significa pressionar a tecla META, EDIT ou ALT enquanto
13 digitar <chr>.
14 Se não tiver META, EDIT ou ALT, no lugar digite ESC e depois
15 <chr>. Escrevemos <ESC> para tecla ESC.
16
17
18Nota importante: para terminar a seção do Emacs, digite C-x C-c. (Dois
19caracteres.) Os caracteres ">>" na margem esquerda indicam direções para
20você tentar usar um comando. Por exemplo:
21<<Linhas vazias inseridas ao redor da linha seguinte por
22ajuda-com-tutorial>>
23[Metade da página em branco para propósitos didáticos. O texto continua
24abaixo]
25>> Agora digite C-v (Ver próxima tela) para ir para próxima tela.
26 (vá em frente, faça isso pressionando a tecla CONTROL enquanto
27 digitar v).
28 De agora em diante, você deve fazer isso de novo sempre que você
29 terminar de ler a tela.
30
31Note que tem uma sobreposição de duas linhas quando você move de tela em
32tela; isso fornece uma continuidade para que você continue lendo o
33texto.
34
35A primeira coisa que você precisa saber é como se mover de um lugar a
36outro no texto. Você já sabe como se mover para próxima tela, com
37C-v. Para se mover para trás uma tela, digite M-v (pressione a tecla
38META enquanto digita v, ou digite <ESC>v se você não tiver a tecla META,
39EDIT ou ALT).
40
41>> Tente digitar M-v e depois C-v, algumas vezes.
42
43
44* SUMÁRIO
45---------
46
47Os comandos a seguir são úteis para visualizar telas inteiras
48
49 C-v Move para tela inteira posterior
50 M-x Move para tela inteira anterior
51 C-l Limpa a tela e re-mostra todo o texto, movendo o texto ao
52 redor do cursor para o centro da tela. (Isso é
53 control-L, não control-1.)
54
55>> Encontre o cursor, e note o texto que está perto dele.
56 Digite C-l.
57 Encontre o cursor novamente e perceba que o mesmo texto continua
58 perto do cursor.
59
60
61* CONTROLE BÁSICO DO CURSOR
62---------------------------
63
64Movendo de uma tela inteira para outra tela cheia é útil, mas como você
65move para um lugar especifico com o mesmo texto na tela?
66
67Existem diversas maneiras para você poder fazer isso. A maneira mais
68básica é utilizar os comandos C-p, C-b, C-f e C-n. Cada um desses
69comandos movem o cursor uma linha ou coluna na tela em uma direção
70particular. Aqui está uma tabela mostrando esses quatro comandos e as
71direções que eles movem:
72
73 Linha anterior, C-p
74 :
75 :
76 Traz, C-b .... Posição corrente do cursor .... Frente, C-f
77 :
78 :
79 Linha posterior, C-n
80
81>> Mova o cursor para a linha no meio do diagrama acima utilizando C-n
82 ou C-p. Digite C-l para ver o diagrama inteiro centralizado na tela.
83
84Você provavelmente achará isso fácil pensando neles pela letra: P para
85Previous (anterior), N para Next (Posterior), B para Backward (trás) e F
86para forward (frente). Estes são os comandos básicos de posicionamento
87de cursor e você estará utilizando eles a TODO tempo, então seria ótimo
88se você os aprendesse agora.
89
90>> Faça alguns C-n's para trazer o cursor abaixo desta linha.
91
92>> Mova para a linha com C-f's e depois para cima com C-p's.
93 Veja o que C-p faz quando o cursor está no meio da linha.
94
95Cada linha de texto termina com um caractere de nova linha, que serve
96para separar da próxima linha. No fim da ultima linha deve ter um
97caractere de nova linha (mas não é exigido pelo Emacs).
98
99>> Tente digitar C-b no começo da linha. O cursor deve mover para o fim
100 da linha anterior. Isso acontece por que ele se moveu para trás
101 através do caractere de nova linha.
102
103C-f pode mover o cursor através de uma Nova linha do mesmo jeito que
104 C-b.
105
106>> Faça mais alguns C-b's, assim você percebe onde o está o cursor.
107 Depois alguns C-f's para retornar para o fim da linha.
108 Depois mais um C-f para mover para linha seguinte.
109
110Quando você move o cursor passando o topo ou o rodapé da tela, o próximo
111texto além da borda desloca-se na tela. Isso é chamado rolagem. Isso
112ativa o Emacs para mover o cursor para o lugar especificado no texto sem
113move-lo fora da tela.
114
115>> Tente mover o cursor fora do rodapé da tela com C-n, e veja o que
116 acontece.
117
118Se mover por caracteres é muito lento, você pode se mover por
119palavras. M-f (Meta-f) move uma palavra para frente e M-b uma palavra
120para trás.
121
122>> Digite alguns M-f's e M-b's
123
124Quando você está no meio de uma palavra, M-f move o cursor para o fim da
125mesma. Quando você está em um espaço em branco no meio de duas palavras,
126M-f move o cursor para o fim da palavra seguinte. M-b funciona do mesmo
127jeito na direção contraria.
128
129>> Digite M-f e M-b algumas vezes, intercalado com C-f's e C-b's assim
130 você pode observar a ação do M-f e M-b de varias lugares dentro e no
131 meio de palavras.
132
133Observe o paralelismo entre C-f e C-b em uma mão, e M-f e M-b na
134outra. Muito freqüentemente os caracteres Meta são usados para operações
135relacionadas com as unidades definidas pela linguagem (palavras,
136sentenças, parágrafos), enquanto caracteres Control operam nas unidades
137básicas que são independente do que você está editando (caracteres,
138linhas, etc).
139
140Esse paralelismo aplica-se entre linhas e sentenças: C-a e C-e move o
141cursor para o começo ou fim da linha, e M-a e M-e move o cursor para o
142começo ou fim da sentença.
143
144>> Tente alguns C-a's, e depois alguns C-e's.
145 Tente alguns M-a's, e depois alguns M-e's.
146
147Veja como repetidos C-a's fazem nada, mas repetidos M-a's mantém movendo
148mais uma sentença. Embora estes não sejam completamente análogos, cada
149um parece natural.
150
151A posição do cursor no texto é também chamado "ponto" (point). Para
152parafrasear, o cursor mostra na tela onde o ponto é encontrado no texto.
153
154Aqui está um simples sumário das operações de movimento de cursor,
155incluindo comandos de movimento de palavra e sentença.
156
157 C-f Move o cursor um caractere para frente
158 C-b Move o cursor um caractere para trás
159
160 M-f Move o cursor uma palavra para frente
161 M-b Move o cursor uma palavra para trás
162
163 C-n Move o cursor para linha posterior
164 C-p Move o cursor para linha anterior
165
166 C-a Move o cursor para o começo da linha
167 C-e Move o cursor para o fim da linha
168
169 M-a Move o cursor para trás no começo da sentença
170 M-e Move o cursor para frente no fim da sentença
171
172>> Tente agora todos estes comandos algumas vezes para praticar.
173 Estes são os comandos mais utilizados.
174
175Outros dois comandos de movimento de cursor importantes são M-< (Meta
176Menor-que), o qual move o cursor para o começo de todo o texto, e M->
177(Meta Maior-que), o qual move para o fim de todo o texto.
178
179Na maioria dos terminais, o "<" é acima da vírgula, então você precisa
180utilizar a tecla shift para digita-la. Nestes terminais você precisa
181utilizar a tecla shift para digitar M-< também; sem a tecla shift, você
182estaria teclando M-virgula.
183
184>> Tente agora M-<, para mover o cursor ao começo do tutorial.
185 Use então C-v repetidamente para trazer o cursor novamente aqui.
186
187>> Tente agora M->, para mover o cursor ao fim do tutorial.
188 Use então M-v repetidamente para trazer o cursor novamente aqui.
189
190Você também pode mover o cursor com as setas, se o seu terminal tem
191teclas com setas. Nós recomendamos aprender C-b, C-f, C-n e C-p por três
192razões. Primeira, elas funcionam em todos os terminais. Segunda, uma vez
193que você ganhar prática usando o Emacs, você descobrirá que digitar
194nestes caracteres Control é mais rápido do que digitar nas setas (porque
195você não tem que mover suas mãos tão longe da posição de
196digitação). Terceira, uma vez que você tiver o hábito de utilizar estes
197comandos de caracteres Control, você pode facilmente aprender como usar
198outros comandos avançados de movimentação do cursor.
199
200A maioria dos comandos do Emacs aceitam argumentos numéricos; para
201maioria dos comandos, isso serve como um fator de repetição. A maneira
202que você da a um comando uma repetição teclando C-u e depois os dígitos
203antes de digitar o comando. Se você tem o META (EDIT ou ALT), tem outra
204alternativa para digitar um argumento numérico: digite os dígitos
205enquanto pressionando a tecla META. Nós recomendamos aprender o método
206C-u porque funciona em todos os terminais. O argumento numérico também é
207chamado de "argumento prefixo", porque você digita o argumento antes do
208comando que ele se aplica.
209
210Por exemplo, C-u 8 C-f move o cursor oito caracteres para frente
211
212>> Tente usar C-n ou C-p com um argumento numérico, para mover o
213 cursor para um linha perto dessa com um único comando.
214
215A maioria dos comandos usam o argumento numérico para um fator de
216repetição, mas alguns comandos usam isso de outra maneira. Diversos
217comandos (mas nenhum daqueles comandos que você tenha aprendido até
218agora) usam isso como uma marca -- a presença de um argumento prefixo,
219independente do seu valor, faz o comando fazer alguma coisa diferente.
220
221C-v e M-v são outro tipo de exceção. Quando você da um argumento, eles
222rolam a tela para cima ou para baixo por aquele número de linhas, de
223preferência com a tela cheia. Por exemplo, C-u 8 C-v rola a tela 8
224linhas.
225
226>> Tente agora digitar C-u 8 C-v.
227
228Isso deve ter rolado a tela para cima 8 linhas. Se você quiser rolar a
229tela para baixo novamente, você pode dar um argumento para o M-v.
230
231Se você está usando um display com janelas, como o X11 ou MS-Windows,
232deve ter uma área retangular alta chamada barra de rolagem na mão
233esquerda da janela do Emacs. Você pode rolar o texto clicando o mouse na
234barra de rolagem.
235
236>> Tente pressionar o botão do meio no topo da área destacada junto a
237 barra de rolagem. Isso deve rolar o texto para uma determinada
238 posição dependendo de quão alto ou baixo você clicar.
239
240>> Tente mover o mouse para cima e para baixo, enquanto pressionar o
241 botão do meio. Você verá que o texto rolará para cima e baixo assim
242 que você mover o mouse.
243
244
245* QUANDO O EMACS PARECE MORTO
246-----------------------------
247
248Se o Emacs parar de responder os seus comandos, você pode seguramente
249para-lo digitando C-g. Você pode utilizar C-g para parar um comando que
250está levando muito tempo para executar.
251
252Você também pode utilizar C-g para interromper um argumento numérico ou
253o inicio de um comando que você não quer terminar.
254
255>> Digite C-u 100 para fazer um argumento numérico de 100, e depois
256 digite C-g. Agora digite C-f. O Cursor deve mover apenas um
257 caractere, porque você cancelou o argumento com C-g.
258
259Se você digitou um <ESC> por engano, você pode sair dele com um c-g.
260
261
262* COMANDOS DESABILITADOS
263------------------------
264
265Alguns comandos do Emacs são "desabilitados" para que os usuários
266iniciantes não utilizem por acidente.
267
268Se você digita um dos comandos desabilitados, o Emacs mostrará uma
269mensagem dizendo qual comando foi, e pergunta se você quer seguir e
270executar o comando.
271
272Se você realmente quiser tentar o comando, digite Espaço na resposta da
273pergunta. Normalmente, se você não quer executar o comando desabilitado,
274responda a pergunta com "n".
275
276>> Digite C-x C-l (que é um comando desabilitado),
277 e então digite n para responder a pergunta.
278
279
280* JANELAS
281---------
282
283O Emacs pode ter diversas janelas, cada uma mostrando seu próprio
284texto. Nós vamos explicar mais tarde como utilizar estas múltiplas
285janelas. Neste momento nos queremos explicar como se livrar das janelas
286extras e voltar a edição básica em uma janela. É simples:
287
288 C-x 1 Uma janela (mate todas as outras janelas).
289
290Isto é Control-x seguido pelo digito 1. C-x 1 expande a janela que está
291com o cursor, para ocupar a tela inteira. Ela deleta todas as outras
292janelas.
293
294>> Mova o cursor para esta linha e digite C-u 0 C-l.
295>> Digite Control-h k Control-f.
296 Veja como esta janela diminui, enquanto uma nova aparece para mostrar
297 a documentação do comando Control-f.
298
299>> Digite C-x 1 e veja a listagem de documentação desaparecer.
300
301Este comando é diferente dos outros que você aprendeu por isso ele
302consiste em dois caracteres. Ele inicia com o caractere Control-x. Tem
303uma grande serie de comandos que iniciam com Control-x; a maioria deles
304tem a ver com janelas, arquivos, buffers, e coisas relacionadas. Estes
305comandos tem dois, três ou quatro caracteres de tamanho.
306
307
308* INSERINDO E DELETANDO
309-----------------------
310
311Se você quiser inserir um texto, apenas digite o texto. Os caracteres
312que você verá, como A, 7, *, etc. são vistos pelo Emacs como texto e são
313inseridos imediatamente. Digite <Return> para inserir um caractere de
314nova linha.
315
316Você pode deletar o último caractere que você inseriu digitando
317<Delete>. <Delete> é uma tecla no teclado, que está nomeado como
318"Del". Em algumas casos, a tecla "Backspace" serve como o <Delete>, mas
319nem sempre!
320
321Mas geralmente, <Delete> deleta o caractere imediatamente anterior a
322posição corrente do cursor.
323
324>> Faça isso agora - Digite alguns caracteres, então delete eles
325 digitando <Delete> algumas vezes. Não se preocupe em modificar este
326 arquivo; você não irá alterar o arquivo principal. Esta é a sua cópia
327 pessoal dele.
328
329Quando uma linha de texto fica muito grande na tela, a linha do texto é
330continuada na linha seguinte. Uma barra invertida ("\") na margem
331direita indica a linha que foi continuada.
332
333>> Insira texto até que você alcance a margem direita, e mantenha
334 inserindo. Você verá a linha de continuação aparecer.
335
336>> Utilize <Delete> para deletar o texto até a linha caber em uma linha
337 novamente. A linha de continuação irá embora.
338
339Você pode deletar o caractere de nova linha como qualquer outro
340caracter. Deletando o caractere de nova linha entre duas linhas você
341juntará as duas em uma única linha. Se o resultado for muito longo para
342acomodar na largura da tela, aparecerá um caractere de continuação.
343
344>> Mova o cursor para o inicio da linha e digite <Delete>. Isso juntará
345 esta linha com a anterior.
346
347>> Digite <Return> para re-inserir a nova linha que você deletou.
348
349Lembre-se que a maioria dos comandos do Emacs podem receber um número de
350repetição; isso inclui texto de caracteres. Repetir um texto de
351caractere o insere algumas vezes.
352
353>> Tente isso agora -- digite C-u 8 * para inserir ********.
354
355Você acabou de aprender o jeito mais simples de digitar alguma coisa no
356Emacs e corrigir os erros. Você pode deletar palavras ou linhas
357também. Aqui vai um sumário dos comandos de deleção:
358
359 <Delete> deleta o caractere imediatamente antes do cursor
360 M-d deleta o próximo caractere apos o cursor
361
362 M-<Delete> Mata a palavra imediatamente antes do cursor
363 M-d Mata a próxima palavra depois do cursor
364
365 C-k Mata a posição do cursor até o fim da linha
366 M-k Mata até o fim da sentença corrente
367
368Note que o <Delete> e o C-d vs M-<Delete> e M-d estende o paralelo
369iniciado por C-f e M-f (bem, <Delete> não é realmente um controle de
370caractere, mas não vamos nos preocupar com isso). C-k e M-k são como C-e
371e M-e, uma parte, nessas linhas são sentenças opostas.
372
373Você pode também matar parte de um buffer com um método uniforme. Mova
374para o fim dessa parte, e digite C-@ ou C-SPC (um ou outro). (SPC é a
375Barra de Espaço.) Mova para o outro fim dessa parte, e digite C-w. Isso
376ira matar todo o texto entre as duas posições.
377
378>> Mova o cursor para o V no inicio do parágrafo anterior.
379>> Digite C-SPC. Emacs vai mostrar a mensagem "Mark set" no rodapé da
380 tela.
381>> Mova o cursor para o . (ponto) no "fim", na segunda linha do
382 parágrafo.
383>> Digite C-w. Isso vai matar o texto iniciando no V, e terminando bem
384 antes do . (ponto).
385
386A diferença entra "matar" e "deletar" é que o texto "matado" pode ser
387re-inserido, onde os textos "deletados" não podem ser re-inseridos.
388Re-inserção de um texto matado chama-se colar (yanking). Geralmente, o
389comando que pode remover bastante texto mata o texto (eles fazem com que
390você possa colar (yank) o texto), enquanto os comandos que removem um
391caractere, ou apenas linhas brancas ou espaços, fazem deleção (para que
392você não possa colar esse texto).
393
394>> Mova o cursor para o inicio da linha que não esteja vazia.
395 Agora digite C-k para matar o texto nessa linha.
396>> Digite C-k pela segunda vez. Você verá que a nova linha que segue a
397 linha será matada.
398
399Note que um simples C-k mata o conteúdo de uma linha, é um segundo C-k
400mata a linha, e faz com que todas as outras linhas movam para cima. C-k
401trata um argumento numérico especialmente: ele mata tantas linhas E seus
402conteúdos. Isso não é uma simples repetição. C-u 2 C-k mata duas linhas
403e suas novas linhas; digitar C-k duas vezes não faria isso.
404
405Para trazer o texto matado novamente é chamado colar "yaking". (Pense
406nisso como colar, ou trazer de volta, algum texto que foi levado
407embora.) Você pode colar (yank) o texto matado no mesmo lugar onde ele
408foi matado, ou em qualquer outro lugar do buffer, ou ate em um arquivo
409diferente. Você pode colar o texto diversas vezes, o que fará diversas
410copias dele.
411
412O comando para colar é C-y. Ele re-insere o ultimo texto matado, na
413posição corrente do cursor.
414
415>> Tente; digite C-y para colar o texto novamente.
416
417Se você fizer diversos C-k's em uma linha, todo esse texto matado será
418salvo junto, então aquele C-y vai colar todas aquelas linhas de uma vez.
419
420>> Faca isso agora, digite C-k diversas vezes.
421
422Agora pegue o texto matado:
423
424Digite C-y. Então mova o cursor para baixo algumas linhas e digite C-y
425novamente. Agora você sabe como copiar determinado texto.
426
427O que você faria se você tivesse determinado texto que você gostaria de
428colar, e então você mata alguma outra coisa? C-y ira colar o kill mais
429recente. Mas o antigo texto ainda não foi perdido. Você pode tê-lo
430novamente usando o comando M-y. Depois que você der um C-y para pegar o
431kill mais recente, digitar M-y troca o que você colou pelo anterior a
432ele. Digitar M-y novamente e novamente traz kills anteriores e
433anteriores. Quando você tiver alcançado o texto que você que esta
434procurando, você não precisa fazer nada para mantê-lo. Apenas continue
435com a sua edição, deixando o texto onde ele esta.
436
437Se você digitar M-y o suficiente, você começará do inicio novamente (o
438kill mais recente).
439
440>> Mate uma linha, mova por ai, mate mais uma linha.
441 Agora digite C-y para colar a segunda linha matada.
442 Agora digite M-y e ele vai ser trocado pelo primeiro kill.
443 Faca mais alguns M-y's e veja o que você tem. Faca isso ate que o
444 segundo kill volte, e depois mais alguns.
445 Se você preferir, você pode tentar dar argumentos positivos e
446 negativos.
447
448
449* DESFAZENDO (UNDO)
450-------------------
451
452Se você fizer uma mudança no texto, e então decidir que isso foi um
453erro, você pode desfazer com o comando de desfazer (undo), C-x u.
454
455Normalmente, C-x u desfaz as mudanças feitas por um comando; se você
456repetir C-x u diversas vezes em uma linha, cada repetição irá desfazer
457um comando adicional.
458
459Mas tem duas exceções: comandos que não trocam o texto não contam (isso
460inclui o movimento do cursor e a barra de rolagem), e caracteres
461auto-inseridos são usualmente cuidados em grupos de mais de 20 (Isso e
462para reduzir o numero de C-x u's que você deve digitar para desfazer a
463inserção de um texto.).
464
465>> Mate essa linha com C-k, então digite C-x u e isso vai re-aparecer.
466
467C-_ é um comando alternativo para desfazer; ele funciona exatamente como
468o C-x u, mas é mais fácil de digitar diversas vezes em uma linha. A
469desvantagem de C-_ é que alguns teclados ele não é tão obvio para
470digitar. É exatamente por isso que o C-x u é fornecido. Em alguns
471terminais, você pode digitar C-_ digitando / enquanto segurando o
472CONTROL.
473
474Um argumento numérico para C-_ ou C-x u age como um contador de
475repetição.
476
477Você pode desfazer a deleção de texto da mesma maneira que você pode
478desfazer o kill de um texto. A distinção entre matar e deletar alguma
479coisa afeta se você pode colar com C-y; isso não faz diferença pro
480desfazer (undo).
481
482
483* ARQUIVOS
484----------
485
486Para poder fazer o texto que você edita permanente, você precisa
487coloca-lo em um arquivo. Ou então, isso será perdido quando o seu Emacs
488for fechado. Para colocar seu texto em um arquivo, você precisa
489"encontrar" o arquivo antes de digitar o texto (Isso também é chamado
490"visitar" um arquivo.).
491
492Encontrando um arquivo significa que você verá o conteúdo de um arquivo
493com o Emacs. De diversas maneiras, isso é como se você estivesse
494editando o arquivo. De qualquer maneira, as mudanças que você fizer
495utilizando o Emacs não se tornarão permanente ate que você "salve" o
496arquivo. Isso e para que você evite deixar um arquivo meio-modificado no
497sistema enquanto você não quer isso. Mesmo quando você salva, o Emacs
498deixa o arquivo original sobre um arquivo de nome alterado no caso que
499você mais tarde decida que aquelas mudanças foram um erro.
500
501Se você olhar no rodapé da tela você verá a linha que começa e termina
502com traços e inicia com "--:-- TUTORIAL.pt_BR" ou algo parecido com
503isso. Essa parte da tela normalmente mostra o nome do arquivo que você
504esta visitando. Agora mesmo, você esta visitando um arquivo chamado
505"TUTORIAL.pt_BR" que é sua própria copia do tutorial do Emacs. Quando
506você encontra um arquivo com o Emacs, o nome do arquivo aparecera nesse
507lugar especifico.
508
509Algo especial para se dizer sobre o comando de encontrar arquivo e que
510você tem que dizer qual nome do arquivo você quer. Dizemos que o comando
511"lê um argumento do terminal" (nesse caso, o argumento e o nome do
512arquivo). Depois que você digitar o comando
513
514 C-x C-f Encontrar um arquivo
515
516O Emacs pede para você digitar o nome do arquivo. O nome do arquivo
517aparece no rodapé da tela. A linha de rodapé é chamada de minibuffer
518quando é utilizada para esse tipo de introdução de dados. Você pode
519utilizar os comandos padrões do Emacs para editar o nome do arquivo.
520
521Enquanto você estiver digitando o nome do arquivo (ou qualquer outro
522tipo de dado para o minibuffer), você pode cancelar o comando com a
523tecla C-g.
524
525>> Digite C-x C-f, então digite C-g. Isso cancelara o minibuffer, e
526 também cancelara o comando C-x C-f que estava sendo utilizado no
527 minibuffer. Para que você não procure nenhum arquivo.
528
529Quando você terminar de digitar o nome do arquivo, digite <Return> para
530terminar. Então o comando C-x C-f ira trabalhar, e encontrar o arquivo
531que você escolheu. O minibuffer desaparece quando o comando C-x C-f e
532finalizado.
533
534Em pouco tempo o conteúdo do arquivo aparece na tela, e você poderá
535editar o conteúdo dele. Quando você terminar de fazer suas alterações
536permanentes digite o comando
537
538 C-x C-s Salve o arquivo
539
540Isso copia o texto do Emacs para o arquivo. A primeira vez que você
541fizer isso, o Emacs vai renomear o arquivo original para um novo nome
542para que você não o perca. O nome novo e feito adicionando "~" no fim do
543nome original do arquivo.
544
545Quando o salvamento for concluído, Emacs imprimira o nome do arquivo
546escrito. Você deve salvar o conteúdo do seu arquivo regularmente, para
547que você não perca muito trabalho caso o sistema caia por um algum
548motivo.
549
550>> Digite C-x C-s, salvara a copia do seu tutorial.
551 Isso ira imprimir "Wrote ...TUTORIAL.pt_BR" no fim da tela.
552
553NOTA: Em alguns sistemas, digitar C-x C-s ira travar a tela e você não
554verá saída do Emacs. Isso indica que um "recurso" do sistema operacional
555chamado "controle de fluxo" (flow control) esta interceptando o C-s e
556não deixando que passe pelo Emacs. Para destravar a tela, digite
557C-q. Então, leia na seção "Spontaneous Entry to Incremental Search" no
558manual do Emacs para uma dica de como lhe dar com esse "recurso".
559
560Você pode encontrar um arquivo já existente, para ver ou edita-lo. Você
561também pode encontrar um arquivo que ainda não existe. Essa é a maneira
562de criar um arquivo com o Emacs: encontre o arquivo, que ira iniciar
563vazio, então inicie inserindo o texto para o arquivo. Quando você pedir
564para "salvar" o arquivo, Emacs irá perguntar se você realmente quer
565criar o arquivo com o texto que você acabou de inserir. De agora em
566diante, você pode considerar que esta editando um arquivo já existente.
567
568
569* BUFFERS
570---------
571
572Se você encontrar um segundo arquivo com C-x C-f, o primeiro continuara
573dentro do Emacs. Você pode voltar para ele encontrando-o novamente com
574C-x C-f. Dessa maneira você pode ter um grande numero de arquivos dentro
575do Emacs.
576
577>> Crie um arquivo chamado "foo" digitando C-x C-f foo <Return>.
578 Depois digite algum texto, edite-o, e salve "foo" digitando C-x C-s.
579 Finalmente, digite C-x C-f TUTORIAL.pt_BR <Return> para voltar ao
580 tutorial.
581
582O Emacs guarda cada texto de um arquivo em um objeto chamado
583"buffer". Encontrar um arquivo cria um novo buffer dentro do Emacs. Para
584ver uma lista dos buffers que existem no serviço do seu Emacs, digite
585
586 C-x C-b Lista os buffers
587
588>> Tente C-x C-b agora.
589
590Veja como cada buffer tem um nome, e ele também pode ter um nome de
591arquivo para o conteúdo de arquivo que ele armazena. Alguns buffers não
592correspondem a arquivos. Por exemplo, o buffer chamado "*Buffer List*"
593não tem nenhum arquivo. Esse é o buffer que contem a lista de buffers
594que foi feito com C-x C-b. QUALQUER texto que você ver numa janela do
595Emacs e sempre parte de algum buffer.
596
597>> Digite C-x 1 para sair da lista dos buffers.
598
599Se você fizer mudanças no texto de um arquivo, então encontrar um novo
600arquivo, isso não salva o conteúdo do primeiro arquivo. As mudanças
601continuam dentro do Emacs, nos buffers de arquivo. A criação ou edição
602do buffer do segundo arquivo não tem nenhum efeito no buffer do primeiro
603arquivo. Isso é muito útil, mas também significa que você precisa de uma
604maneira conveniente de salvar o buffer do primeiro arquivo. Seria
605inconveniente ter que voltar para ele com C-x C-f para salva-lo com C-x
606C-s. Por isso temos
607
608 C-x s Salve alguns buffers
609
610C-x s pergunta a você sobre cada buffer que contem modificação e você
611não salvou. Ele te pergunta, para cada buffer, se você quer salvar.
612
613>> Insira uma linha de texto, então digite C-x s.
614 Isso deve te perguntar se você quer salvar o buffer chamado
615 TUTORIAL.pt_BR.
616 Responda sim para a pergunta digitando "y".
617
618
619* ESTENDENDO O COMANDO SET
620--------------------------
621
622Existem mais, muito mais comandos que o Emacs poderia possivelmente ser
623colocado em todos os control e caracteres meta. O Emacs faz isso com o
624comando X (estender). Que vem em duas versões:
625
626 C-x Extensor de caractere. Seguido por um caractere.
627 M-x Extensor de nome de comando. Seguido por um longo nome.
628
629Esses comandos que são geralmente úteis mas pouco usados que os comandos
630que você já aprendeu. Você já viu dois deles: os comandos de arquivos
631C-x C-f para Encontrar e C-x C-s para Salvar. Outro exemplo de um
632comando para finalizar a sessão do Emacs - esse é o comando C-x C-c (Não
633se preocupe em perder as mudanças que você fez; C-x C-c oferece salvar
634cada arquivo modificado antes de matar o Emacs.).
635
636C-z é o comando para sair do Emacs *temporariamente* - então você pode
637voltar para a mesma seção do Emacs depois.
638
639Em sistemas que permitem isso, C-z "suspende" o Emacs; isso e, retorna
640ao shell mas não destrói o Emacs. Nos shells mais comum, você pode
641resumir o Emacs com o comando 'fg' ou com '%emacs'.
642
643Nos sistemas que não implementam suspensão, C-z cria um subshell rodando
644sobre o Emacs para dar a você a chance de rodar outros programas e
645retornar ao Emacs depois; isso não "sai" verdadeiramente do Emacs. Nesse
646caso, o comando shell 'exit' é o comando usual para voltar ao Emacs do
647subshell.
648
649A hora de usar o C-x C-c é quando você esta prestes a sair do sistema
650operacional. É também a maneira correta de sair do Emacs quando chamado
651através de um cliente de e-mail ou outros utilitários, porque eles não
652controlam a suspensão do Emacs. Em outras circunstâncias, se você não
653estiver saindo do sistema operacional, é melhor suspender o Emacs com
654C-z ao invés de sair do Emacs.
655
656Existem diversos comando C-x. Aqui esta uma lista dos que você aprendeu:
657
658 C-x C-f Encontrar arquivo.
659 C-x C-s Salvar arquivo.
660 C-x C-b Listar buffers.
661 C-x C-c Sair do Emacs.
662 C-x 1 Deletar todas menos a janela atual.
663 C-x u Desfazer.
664
665O extensor de nome de comando é usado menos ainda, ou comandos que são
666usados apenas em alguns modos. Um exemplo é o comando replace-string,
667que globalmente troca uma string por outra. Quando você digita M-x, o
668Emacs te pergunta no rodapé da tela M-x e você deve digitar o nome do
669comando; nesse caso, "replace-string". Apenas digite "repl s<TAB>" e o
670Emacs ira completar o nome. (<TAB> é a tecla Tab, usualmente encontrando
671abaixo do CapsLock ou Shift bem na extremidade do teclado.). Termine o
672comando com <Return>.
673
674O comando replace-string requer dois argumentos - a string para ser
675trocada, e a string que ira substitui-la. Você precisa terminar cada
676argumento com <Return>.
677
678>> Mova o cursor para a linha branca duas linhas abaixo dessa.
679 Digite então M-x repl s<Return>mudou<Return>alterado<Return>.
680
681 Note como essa linha mudou: você substituiu a palavra m-u-d-o-u por
682 "alterado" quando ocorreu, apos a posição inicial do cursor.
683
684
685* SALVAMENTO AUTOMÁTICO
686-----------------------
687
688Quando você fizer mudanças em um arquivo, mas você ainda não tiver
689salvo, elas podem ser perdidas se o seu computador der pau. Para
690proteger você disso, o Emacs periodicamente escreve um arquivo "auto
691salvo" para cada arquivo que você estiver editando. O nome do arquivo
692auto salvo tem um # no inicio e no fim; por exemplo, se o seu arquivo
693tiver o nome "ola.c", o nome do arquivo auto salvo dele será
694"#ola.c#". Quando você salvar o arquivo da maneira normal, o Emacs
695deleta os arquivos auto salvos.
696
697Se o computador der pau, você pode recuperar suas modificações auto
698salvas abrindo o arquivo normalmente (o arquivo que você estava
699editando, não o arquivo auto-salvo) e então digitar M-x recover
700file<Return>. Quando isso perguntar por confirmação, digite yes<Return>
701para ir em frente e recuperar os dados auto salvos.
702
703
704* ÁREA DE SAÍDA (ECHO AREA)
705---------------------------
706
707Se o Emacs ver que você esta digitando comandos multi-caractere
708lentamente, ele os mostrara para você no fim da tela numa área chamada
709Área de Saída ou Echo Área. A área de saída contem a linha de rodapé da
710tela.
711
712
713* MODE LINE
714-----------
715
716A linha imediatamente acima da área de saída é chamada de "mode line". O
717mode line diz algo algo mais ou menos assim:
718
719--:** TUTORIAL.pt_BR (Fundamental)--L670--58%----------------
720
721Essa linha da informações úteis sobre o status do Emacs e o texto que
722você esta editando.
723
724Você já sabe o que o nome do arquivo significa -- é o arquivo que você
725encontrou. -NN%-- indica sua posição no arquivo texto; significa que NN
726percento do texto esta acima do topo da tela. Se o topo do arquivo
727estiver na tela, ele dirá --Top-- ao invés de --00%--. Se o rodapé do
728texto estiver na tela, ele mostrara --Bot--. Se você estiver olhando um
729texto muito pequeno que cabe na todo na tela, o mode line ira dizer
730--All--.
731
732O L são dígitos e indicam a posição de uma outra maneira: eles mostram a
733linha corrente do ponto.
734
735Os asteriscos próximo ao inicio significa que você fez mudanças ao
736texto. Logo após você visitar um arquivo ou salvar um arquivo, essa
737parte do mode line não mostrara asteriscos, apenas traços.
738
739A parte do mode line dentro do parênteses lhe diz quais modos você esta
740utilizando. O modo padrão é o Fundamental que é o que você esta
741utilizando agora. É um exemplo de um "modo majoritário".
742
743O Emacs tem diversos diferentes modos majoritários. Alguns deles são
744para edição de diferentes linguagens de programação e/ou tipos de texto,
745como modo Lisp, modo Texto, etc. Em qualquer momento um é apenas um modo
746majoritário e ativo, e seu nome pode ser encontrado no mode line
747exatamente onde o "Fundamental" esta agora.
748
749Cada modo majoritário faz com que alguns comandos operem de modo
750diferente. Por exemplo, existem comandos para criar comentários nos
751programas, e desde que cada linguagem de programação tem uma idéia
752diferente de como um comentário deve ser, cada modo majoritário tem que
753inserir seus comentários individualmente. Cada modo majoritário é o nome
754de um comando estendido, e é assim que você pode mudar para determinado
755modo. Por exemplo, M-x fundamental-mode é o comando para trocar para o
756modo Fundamental.
757
758Se você vai editar texto em Português, como neste arquivo, você pode
759utilizar o modo Texto.
760
761>> Digite M-x text mode<Return>.
762
763Não se preocupe, nenhum dos comandos do Emacs que você aprendeu
764mudarão. Mas você pode observar que o M-f e o M-b tratam os apóstrofos
765como parte das palavras. Anteriormente, no modo Fundamental, M-f e M-b
766trataram os apóstrofos como separadores de palavras.
767
768Modos majoritários fazem usualmente modificações como esta: a maioria
769dos comandos fazem "a mesma coisa" em cada modo majoritário, mas eles
770trabalham um pouquinho diferente.
771
772Para ver a documentação do seu modo majoritário, digite C-h m.
773
774>> Utilize C-u C-v uma ou mais para trazer essa linha próxima ao topo da
775 tela.
776>> Digite C-h m, para ver como o modo texto difere do modo Fundamental.
777>> Digite C-x 1 para remover a documentação da tela.
778
779Modos majoritários são chamados de majoritários porque também existem
780modos minoritários. Modos minoritários não são alternativos aos modos
781majoritários, apenas uma modificação minoritária deles. Cada modo
782minoritário pode ser ligado ou desligado por ele mesmo, independente de
783todos os outros modos minoritários, é independente do modo
784majoritário. Então você pode não utilizar modos minoritários, ou um modo
785minoritário, ou qualquer combinação de modos minoritários.
786
787Um modo minoritário que é bastante útil, especialmente para editar texto
788em Português, é o modo Auto Fill. Quando ele esta ligado, o Emacs quebra
789a linha entre as palavras automaticamente quando você inserir um texto e
790criar uma linha muito comprida.
791
792Você pode ligar o modo Auto Fill fazendo M-x auto fill
793mode<Return>. Quando o modo estiver ligado, você pode desliga-lo
794novamente fazendo M-x auto fill mode<Return>. Se o modo estiver
795desligado, esse comando o liga, e se ele estiver ligado, este comando o
796desligara. Nos dizemos que o comando inverte seu status.
797
798>> Digite M-x auto fill mode<Return> agora. Então insira uma linha de
799 "asdf " diversas vezes ate que você veja dividir em duas linhas. Você
800 precisa colocar espaços entre as palavras porque o modo Auto Fill
801 quebra apenas nos espaços.
802
803A margem é usualmente definida com 70 caracteres, mas você pode
804modifica-la com o comando C-x f. Você deve dar a margem que você quer
805como um argumento numérico.
806
807>> Digite C-x f com um argumento de 20. (C-u 20 C-x f).
808 Então digite algum texto e veja o Emacs encher linhas com ate 20
809 caracteres. Então, volte a definir a margem para 70 utilizando C-x f.
810
811Se você fizer uma mudança no meio de um parágrafo, o modo Auto Fill não
812ira re-preencher para você. Para re-preencher o parágrafo, digite M-q
813(Meta-q) com o cursor dentro do parágrafo.
814
815>> Mova o cursor dentro do parágrafo anterior e digite M-q.
816
817
818* PESQUISANDO
819-------------
820
821O Emacs pode fazer pesquisas por strings (esses sao grupos de caracteres
822ligados ou palavras) tanto para frente do texto ou para traz. Pesquisar
823por uma string e um comando de movimento do cursor; ele move o cursor
824para o próximo lugar onde a string aparece.
825
826O comando de pesquisa do Emacs é diferente dos comandos de pesquisa da
827maioria dos editores, porque é uma pesquisa "incremental". Isso
828significa que a pesquisa acontece enquanto você digita uma string para
829pesquisar.
830
831O comando para iniciar a pesquisa é C-s para pesquisa para frente ou C-r
832para pesquisa inversa. MAS ESPERE! Não tente fazer agora.
833
834Quando você digitar C-s você percebera que uma string "I-search"
835aparecera como prompt na área de saída. Isso diz para você que o Emacs
836esta no que chamamos de pesquisa incremental esperando que você digite o
837que você quer procurar. <Return> termina a pesquisa.
838
839>> Agora digite C-s para iniciar a pesquisa. DEVAGAR, uma letra por vez,
840 digite o caractere 'cursor', pausando cada vez que você digitar um
841 caractere, perceba o que acontece com o cursor. Agora que você
842 pesquisou por "cursor", uma vez.
843>> Digite C-s novamente, para pesquisa a próxima ocorrência de "cursor".
844>> Agora digite <Delete> quatro vezes e veja como o cursor move.
845>> Digite <Return> para terminar a pesquisa.
846
847Você viu o que aconteceu? O Emacs, em uma pesquisa incremental, tenta ir
848para a ocorrência que você digitou ate o momento. Para ir para próxima
849ocorrência de 'cursor' apenas digite C-s novamente. Se nenhuma
850ocorrência existir, o Emacs bipa e te diz que a pesquisa atual
851falhou. C-g também termina a pesquisa.
852
853NOTA: Em alguns sistemas, digitar C-s ira travar a tela e você não verá
854saída do Emacs. Isso indica que um "recurso" do sistema operacional
855chamado "controle de fluxo" (flow control) esta interceptando o C-s e
856não deixando que passe pelo Emacs. Para destravar a tela, digite
857C-q. Então, leia na seção "Spontaneous Entry to Incremental Search" no
858manual do Emacs para uma dica de como lhe dar com esse "recurso".
859
860Se você estiver no meio de uma pesquisa incremental e digitar <Delete>,
861você percebera que o ultimo caractere da pesquisa será apagado e a
862pesquisa voltara para o ultimo lugar da pesquisa. Por instancia, imagine
863que você tenha digitado "c", para pesquisar a primeira ocorrência de
864"c". Agora se você digitar "u", o cursor ira mover para a primeira
865ocorrência de "cu". Agora digite <Delete>. Isso ira apagar o "u" da
866string de pesquisa, e o cursor movera de volta para a primeira
867ocorrência de "c".
868
869Se você estiver no meio de uma pesquisa e digitar um caractere control
870ou meta (com algumas exceções--caracteres que são especiais em uma
871pesquisa, como C-s e C-r), a pesquisa é terminada.
872
873O C-s inicia uma pesquisa que procura por qualquer ocorrência da string
874de pesquisa APÓS a posição corrente do cursor. Se você quiser pesquisar
875por alguma coisa anterior no texto, digite C-r ao invés. Tudo que nos
876dissemos sobre C-s também implica para C-r, tirando a direção da
877pesquisa que é reversa.
878
879
880* MÚLTIPLAS JANELAS
881-------------------
882
883Um dos recursos mais interessantes do Emacs é que você pode mostrar mais
884de uma janela na tela ao mesmo tempo.
885
886>> Mova o cursor para essa linha e digite C-u 0 C-l (isso é control-L,
887 não control-1).
888
889>> Agora digite C-x 2 que vai dividir a tela em duas janelas.
890 As duas janelas vão mostrar esse tutorial. O cursor fica na janela
891 do topo.
892
893>> Digite C-M-v para rolar para o fim da janela.
894 (Se você não tiver uma tecla Meta de verdade, digite ESC C-v.).
895
896>> Digite C-x o ("o" para "outra") para mover o cursor para o rodapé
897 da janela.
898>> Use C-v e M-v no rodapé da janela para roda-la.
899 Continue lendo essas direções na janela do topo.
900
901>> Digite C-x o novamente para mover o cursor de volta para a janela
902 do topo.
903 O cursor na janela do topo esta exatamente como estava antes.
904
905Você pode continuar usando C-x o para alternar entre as janelas. Cada
906janela tem sua própria posição de cursor, mas apenas uma janela mostra o
907cursor. Todos os comandos mais comuns de edição aplicam para a janela
908que o cursor esta. Chamamos isso de "janela selecionada".
909
910O comando C-M-v é muito útil para quando você estiver editando o texto
911em uma janela e utilizando a outra janela para referencia. Você pode
912manter o cursor sempre na janela que você estiver editando, e avançar
913pela outra janela seqüencialmente utilizando C-M-v.
914
915C-M-v é um exemplo de um caractere CONTROL-META. Se você tiver uma tecla
916META real, você pode digitar C-M-v segurando ambos CONTROL e META
917enquanto digitar v. Não importa se CONTROL ou META "vem primeiro,"
918porque ambas as teclas agem modificando o caractere que você digita.
919
920Se você não tiver um tecla META real, você pode utilizar ESC ao invés, a
921ordem não importa: você precisa digitar ESC seguido por Control-v,
922porque Control-ESC v não ira funcionar. Isso porque ESC é um caractere
923com seu próprio direito, não é uma tecla de modificação.
924
925>> Digite C-x 1 (na janela do topo) para fugir da janela do rodapé.
926
927(Se você tivesse digitado C-x 1 na janela do rodapé, você fugiria da
928janela do topo. Pense neste comando como "Mantenha apenas uma janela--a
929janela que estou dentro.")
930
931Você não precisa mostrar o mesmo buffer nas duas janelas. Se você
932utilizar C-x C-f para encontrar um arquivo em outra janela, a outra
933janela não mudara. Você pode encontrar um arquivo em cada janela
934independentemente.
935
936Aqui esta uma maneira de utilizar duas janelas para mostrar coisas
937diferentes:
938
939>> Digite C-x 4 C-f seguido pelo nome de um dos seus arquivos.
940 Termine com <Return>. Veja o arquivo especificado aparece na janela
941 do rodapé. O cursor ira para lá, também.
942
943>> Digite C-x o para voltar a janela do topo, e C-x1 para deletar a
944 janela de rodapé.
945
946
947* NÍVEIS RECURSIVOS DE EDIÇÃO
948-----------------------------
949
950Algumas vezes você entrara no que chamamos de "nível de edição
951recursiva". Isso é indicado por colchetes no mode line, envolvendo os
952parênteses em volta do nome do modo majoritário. Por exemplo, você pode
953ver [(Fundamental)] ao invés de (Fundamental).
954
955Para sair desses níveis recorríveis de edição, digite ESC ESC ESC. Isso
956e um comando de todos os propósitos "saia". Você pode também utilizar
957para eliminar janelas extras, e sair de um minibuffer.
958
959>> Digite M-x para entrar no minibuffer; então digite ESC ESC ESC para
960 sair.
961
962Você não pode utilizar C-g para sair de um nível de edição
963recursiva. Isso porque o C-g é utilizado para cancelar comandos e
964argumentos COM o nível de edição recursiva.
965
966
967* CONSEGUINDO MAIS AJUDA
968------------------------
969
970Neste tutorial nos tentamos suprimir informações suficientes para que
971você comece a utilizar o Emacs. Existe tanto disponível sobre Emacs que
972seria impossível explicar tudo aqui. De qualquer maneira, você pode
973querer aprender mais sobre Emacs mesmo porque ele tem muitos outros
974recursos úteis. O Emacs proporciona comandos para leitura de
975documentação sobre comandos do Emacs. Esses comandos de "ajuda" iniciam
976com o caractere Control-h, que é chamado de "o caractere de ajuda".
977
978Para utilizar os recursos de ajuda, digite o caractere C-h, e então um
979caractere dizendo que tipo de ajuda você quer. Se você REALMENTE estiver
980perdido, digite C-h ? e o Emacs ira te dizer que tipo de ajuda ele pode
981te dar. Se você digitar C-h e decidir que você não quer nenhuma ajuda,
982apenas digite C-g para cancelar.
983
984(Alguns sistemas mudam o significado do caractere C-h. Eles não deveriam
985fazer isso para todos os usuários, então você tem muito a reclamar com o
986administrador do sistema. Enquanto isso, se C-h não mostrar a mensagem
987sobre ajuda no rodapé da tela, tente digitar a tecla F1 ou M-x help
988<Return> ao invés.)
989
990O recurso de ajuda mais básico é o C-h c. Digite C-h, e o caractere c, é
991um comando de caractere ou seqüência; então o Emacs mostrara uma breve
992descrição do comando.
993
994>> Digite C-h c C-p
995 A mensagem deve ser algo assim
996
997 C-p roda o comando linha-anterior
998
999Isso diz a você "o nome da função". Nome de funções são utilizados
1000basicamente para personalizar o estender o Emacs. Mas desde que nomes de
1001funções são utilizados para indicar que o que o comando faz, eles podem
1002servir também como uma breve documentação--suficiente para lembrar você
1003os comandos que você já aprendeu.
1004
1005Comandos multi-caractere como C-x C-s e (se você não tiver a tecla META
1006ou EDIT ou ALT) <ESC>v é também permitido depois de C-h c.
1007
1008Para ter mais informação sobre um comando, utilize C-h k ao invés de C-h
1009c.
1010
1011>> Digite C-h k C-p.
1012
1013Isso mostra a documentação da função, assim como seu nome, em uma janela
1014do Emacs. Quando você terminar de ler a saída, digite C-x 1 para sair da
1015saída do texto de ajuda. Você não precisa fazer isso imediatamente
1016apos. Você pode fazer alguma edição enquanto utilizando como referencia
1017o texto de ajuda, e então digite C-x 1.
1018
1019Aqui estão algumas outras opções úteis do comando C-h:
1020
1021 C-h f Descreve a função. Digite o nome da função.
1022
1023>> Tente digitar C-h f previous-line<Return>
1024 Isso ira imprimir toda informação que o Emacs tem sobre a função que
1025 implementa o comando C-p.
1026
1027 C-h a Comando Apropos. Digite uma palavra chave e o Emacs ira
1028 listar todos os comandos que o nome contem essa
1029 palavra. Esses comandos podem ser chamados com
1030 Meta-x. Para alguns comandos, o comando Apropos ira
1031 também listar um ou dois caracteres de seqüência que
1032 roda o mesmo comando.
1033
1034>> Digite C-h a file<Return>.
1035
1036Isso mostra em uma outra janela a lista de todos os comandos M-x com
1037"arquivo" em seus nomes. Você Vera comandos-caractere como C-x C-f
1038listados ao lado do comando correspondente assim como o find-file.
1039
1040>> Digite C-M-v para rolar a janela de ajuda. Faca isso algumas vezes.
1041
1042>> Digite C-x 1 para deletar a janela de ajuda.
1043
1044
1045* CONCLUSÃO
1046-----------
1047
1048Lembre, para sair permanentemente do Emacs utilize C-x C-c. Para sair
1049para um shell temporariamente, para que você possa voltar ao Emacs mais
1050tarde, utilize C-z.
1051
1052Esse tutorial foi feito para ser entendível para todos os novos
1053usuários, então se você encontrou algo que parece não estar claro, não
1054sente e se culpe - reclame!
1055
1056
1057* CÓPIA
1058-------
1059
1060Esse tutorial descende de uma longa linha de tutoriais do Emacs
1061iniciando com um escrito por Stuart Cracraft para o Emacs original.
1062
1063Essa versão do tutorial foi originalmente traduzida por Marcelo Toledo
1064<marcelo@marcelotoledo.org> e como o GNU Emacs, tem um copyright, e vem
1065com uma permissão de distribuição de cópias nas seguintes condições:
1066
1067Copyright (c) 1985, 1996 Free Software Foundation
1068
1069 Permissão é garantida a qualquer um para fazer ou distribuir copias
1070 integrais deste documento como recebido, em qualquer meio, deixando
1071 disponível e preservados o aviso de copyright e o aviso de permissão,
1072 e o distribuidor garante que a permissão para distribuições
1073 posteriores permitam o mesmo que esta nota.
1074
1075 Permissão garantida para distribuir versões modificadas deste
1076 documento, ou partes dele, sobre as condições acima, sempre que elas
1077 tenham uma nota visível de quem foi o ultimo a alterar-lo.
1078
1079As condições para copiar o Emacs especificamente são mais complexas, mas
1080no mesmo espírito. Por favor, leia o arquivo COPYING e dê copias do GNU
1081Emacs para seus amigos. Ajude a erradicar o obstrucionismo de software
1082("proprietário") usando, escrevendo, e compartilhando software livre!
1083
1084;;; Local Variables:
1085;;; coding: latin-1
1086;;; sentence-end-double-space: nil
1087;;; End:
1088
1089;;; arch-tag: 8ea256d6-2c4a-49ee-ac08-0ea6ef25bf8d
diff --git a/etc/TUTORIAL.translators b/etc/TUTORIAL.translators
index b4d26c85ca5..0e4f2d4e124 100644
--- a/etc/TUTORIAL.translators
+++ b/etc/TUTORIAL.translators
@@ -14,6 +14,7 @@ TUTORIAL.ko: Koaunghi Un <koaunghi@ling.cnu.ac.kr>
14TUTORIAL.nl: Pieter Schoenmakers <tiggr@tiggr.net> 14TUTORIAL.nl: Pieter Schoenmakers <tiggr@tiggr.net>
15TUTORIAL.pl: Beatę Wierzchołowską <beataw@orient.uw.edu.pl> 15TUTORIAL.pl: Beatę Wierzchołowską <beataw@orient.uw.edu.pl>
16 Janusz S. Bien <jsbien@mail.uw.edu.pl> 16 Janusz S. Bien <jsbien@mail.uw.edu.pl>
17TUTORIAL.pt_BR: Marcelo Toledo <marcelo@marcelotoledo.org>
17TUTORIAL.ro: Tudor Hulubei <tudor@gnu.org> 18TUTORIAL.ro: Tudor Hulubei <tudor@gnu.org>
18TUTORIAL.ru: Alex Ott <ottalex@narod.ru> 19TUTORIAL.ru: Alex Ott <ottalex@narod.ru>
19TUTORIAL.sk: Miroslav Vaško <vasko@debian.cz> 20TUTORIAL.sk: Miroslav Vaško <vasko@debian.cz>
diff --git a/etc/compilation.txt b/etc/compilation.txt
index 3baebe6aaf3..9c8d06c9ccb 100644
--- a/etc/compilation.txt
+++ b/etc/compilation.txt
@@ -91,6 +91,16 @@ symbol: comma
91"src/swapping.c", line 30.34: 1506-342 (W) "/*" detected in comment. 91"src/swapping.c", line 30.34: 1506-342 (W) "/*" detected in comment.
92 92
93 93
94* EDG C/C++
95
96symbol: edg-1 edg-2
97
98build/intel/debug/../../../struct.cpp(42): error: identifier "foo" is undefined
99build/intel/debug/../../../struct.cpp(44): warning #1011: missing return statement at end of ...
100build/intel/debug/../../../iptr.h(302): remark #981: operands are evaluated in unspecified order
101 detected during ... at line 62 of "build/intel/debug/../../../trace.h"
102
103
94* EPC F90 compiler 104* EPC F90 compiler
95 105
96symbol: epc 106symbol: epc
@@ -299,14 +309,6 @@ symbol: sun-ada
299/home3/xdhar/rcds_rc/main.a, line 361, char 6:syntax error: "," inserted 309/home3/xdhar/rcds_rc/main.a, line 361, char 6:syntax error: "," inserted
300 310
301 311
302* Ultrix 3.0 f77 & Some SGI cc version
303
304symbol: ultrix
305
306fort: Severe: addstf.f, line 82: Missing operator or delimiter symbol
307cfe: Warning 835: foo.c, line 2: something
308
309
310* 4.3BSD grep, cc, lint 312* 4.3BSD grep, cc, lint
311 313
312symbol: 4bsd 314symbol: 4bsd
diff --git a/etc/ru-refcard.ps b/etc/ru-refcard.ps
new file mode 100644
index 00000000000..201708fda8a
--- /dev/null
+++ b/etc/ru-refcard.ps
@@ -0,0 +1,2087 @@
1%!PS-Adobe-2.0
2%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
3%%Title: ru-refcard.dvi
4%%Pages: 6
5%%PageOrder: Ascend
6%%BoundingBox: 0 0 596 842
7%%DocumentFonts: CMSY10 CMMI10 CMSY8
8%%EndComments
9%DVIPSWebPage: (www.radicaleye.com)
10%DVIPSCommandLine: dvips ru-refcard.dvi
11%DVIPSParameters: dpi=600, compressed
12%DVIPSSource: TeX output 2004.05.16:0847
13%%BeginProcSet: texc.pro
14%!
15/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
16N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
17mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
180 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
19landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
20mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
21matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
22exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
23statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
24N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
25/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
26/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
27array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
28df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
29definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
30}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
31B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
321 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
331 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
340 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
35sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
36rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
37gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
38/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
39/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
40A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
41get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
42ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
43fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
44{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
45chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
461 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
47forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
48/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
49}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
50bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
51mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
52SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
53userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
541000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
55index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
56/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{
57/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
58(LaserWriter 16/600)]{A length product length le{A length product exch 0
59exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
60end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
61grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
62imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
63exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
64fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
65delta 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}
66B/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{
67p -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
68rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
69
70%%EndProcSet
71%%BeginProcSet: bbad153f.enc
72% Thomas Esser, Dec 2002. public domain
73%
74% Encoding for:
75% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
76%
77/TeXbbad153fEncoding [
78/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
79/plusminus /minusplus /circleplus /circleminus /circlemultiply
80/circledivide /circledot /circlecopyrt /openbullet /bullet
81/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
82/greaterequal /precedesequal /followsequal /similar /approxequal
83/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
84/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
85/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
86/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
87/prime /infinity /element /owner /triangle /triangleinv /negationslash
88/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
89/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
90/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
91/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
92/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
93/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
94/backslash /wreathproduct /radical /coproduct /nabla /integral
95/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
96/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
97/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
98/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
99/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
100/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
101/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
102/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
103/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
104/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
105/lessequal /greaterequal /precedesequal /followsequal /similar
106/approxequal /propersubset /propersuperset /lessmuch /greatermuch
107/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
108/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
109/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
110/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
111/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
112/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
113/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
114/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
115] def
116
117%%EndProcSet
118%%BeginProcSet: aae443f0.enc
119% Thomas Esser, Dec 2002. public domain
120%
121% Encoding for:
122% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
123%
124/TeXaae443f0Encoding [
125/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
126/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa
127/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi
128/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf
129/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft
130/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle
131/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle
132/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash
133/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N
134/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow
135/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p
136/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector
137/tie /psi /.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/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
142/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta
143/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon
144/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
145/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
146/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
147/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
148/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
149/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
150/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
151/.notdef /.notdef /.notdef /.notdef /.notdef
152] def
153
154%%EndProcSet
155%%BeginProcSet: texps.pro
156%!
157TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
158index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
159exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
160ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
161pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
162div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
163/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
164definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
165sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
166mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
167exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
168forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
169end
170
171%%EndProcSet
172%%BeginFont: CMSY8
173%!PS-AdobeFont-1.1: CMSY8 1.0
174%%CreationDate: 1991 Aug 15 07:22:10
175% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
17611 dict begin
177/FontInfo 7 dict dup begin
178/version (1.0) readonly def
179/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
180/FullName (CMSY8) readonly def
181/FamilyName (Computer Modern) readonly def
182/Weight (Medium) readonly def
183/ItalicAngle -14.035 def
184/isFixedPitch false def
185end readonly def
186/FontName /CMSY8 def
187/PaintType 0 def
188/FontType 1 def
189/FontMatrix [0.001 0 0 0.001 0 0] readonly def
190/Encoding 256 array
1910 1 255 {1 index exch /.notdef put} for
192dup 0 /.notdef put
193readonly def
194/FontBBox{-30 -955 1185 779}readonly def
195/UniqueID 5000818 def
196currentdict end
197currentfile eexec
198D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
1997D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
200A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
201E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
202221A37D9A807DD01161779DDE7D5FC1B2109839E5B52DFBB2A7C1B5D8E7E8AA0
2035B10EA43D6A8ED61AF5B23D49920D8F79DAB6A59062134D84AC0100187A6CD1F
20480F5DDD9D222ACB1C23326A7656A635C4A241CCD32CBFDF8363206B8AA36E107
2051477F5496111E055C7491002AFF272E46ECC46422F0380D093284870022523FB
206DA1716CC4F2E2CCAD5F173FCBE6EDDB874AD255CD5E5C0F86214393FCB5F5C20
2079C3C2BB5886E36FC3CCC21483C3AC193485A46E9D22BD7201894E4D45ADD9BF1
208CC5CF6A5010B5654AC0BE0DA903DB563B13840BA3015F72E51E3BC80156388BA
209F83C7D393392BCBC227771CDCB976E93302531886DDA73EBC9178917EFD0C20B
210133F1E59A8222E5BFB551A83F4FA4E7575C4E9556A1CD08636CCD84A8CD68BC5
211B0B5FDB60A42D5268523571C380A40A2185DA33AFCEF07CF681C587F69335477
2120A535626330F01005AE0E22F4F056542904D0BC2735740435058364F3E7EAE12
213D6E8F8F33F9F6E5B5DC4B10CCE72C3A8B08746022ADDA3C1C47766E8BE936416
2143C4F26FA35AF5DA3F7D9F49E6A866FE2F2536512BF226E3CCD1C2B9ADF85B404
2156377DEB1E20508D3D0E69F244B91C1C736A1BE3815FDDAB369C55D99CDA5C82A
2167873D8B378A3ED6E0D6C518B5F741029D946B0356249E3A6BCD013B7C829C503
217BA9D46A1C3CBD3FEC92F0C2D2207B273DC24E300E83AB9EED3EBBA394BE52DBA
21835BA6B291F971A79BC60
2190000000000000000000000000000000000000000000000000000000000000000
2200000000000000000000000000000000000000000000000000000000000000000
2210000000000000000000000000000000000000000000000000000000000000000
2220000000000000000000000000000000000000000000000000000000000000000
2230000000000000000000000000000000000000000000000000000000000000000
2240000000000000000000000000000000000000000000000000000000000000000
2250000000000000000000000000000000000000000000000000000000000000000
2260000000000000000000000000000000000000000000000000000000000000000
227cleartomark
228%%EndFont
229%%BeginFont: CMMI10
230%!PS-AdobeFont-1.1: CMMI10 1.100
231%%CreationDate: 1996 Jul 23 07:53:57
232% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
23311 dict begin
234/FontInfo 7 dict dup begin
235/version (1.100) readonly def
236/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
237/FullName (CMMI10) readonly def
238/FamilyName (Computer Modern) readonly def
239/Weight (Medium) readonly def
240/ItalicAngle -14.04 def
241/isFixedPitch false def
242end readonly def
243/FontName /CMMI10 def
244/PaintType 0 def
245/FontType 1 def
246/FontMatrix [0.001 0 0 0.001 0 0] readonly def
247/Encoding 256 array
2480 1 255 {1 index exch /.notdef put} for
249dup 0 /.notdef put
250readonly def
251/FontBBox{-32 -250 1048 750}readonly def
252/UniqueID 5087385 def
253currentdict end
254currentfile eexec
255D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
2563B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
257532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
258B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
259986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
260D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
2619E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
262990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
2636EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
264DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
26559616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
266D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
2678B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
2686FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
2691DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
27003BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
27195AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
27274109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
2733EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
27447750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
275AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
27642616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
27740B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
278B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
2799560176676ABB71BBD0EE56B4CC492C0652750227CEC6CBEEE374709231B00CD
2800DE83AFDE295B314F6C8B1FFD32251C1925D96A64D739FF1DA4926460B28B3DE
281E949AA0BA3DDB16534FBA30C32092D5F712B5E8C8D5142F35AF2906E6C219D2C
2827FD9A368C193E0EB9C7E25FF03C546B6ED993F964CEDB1B8537C617170787F37
28388D6F2AD02384B01067FE3F98257BAB958BB3BCD1001090A4502DA0638080EC6
284DB784CC8AC37CDC01B29BC481D6A05ADC6188785262358C1BF1D694BBF31C1F1
285AF117C1ACED44AAC6EB4B9A2511A6762DDE8FCCBA5
2860000000000000000000000000000000000000000000000000000000000000000
2870000000000000000000000000000000000000000000000000000000000000000
2880000000000000000000000000000000000000000000000000000000000000000
2890000000000000000000000000000000000000000000000000000000000000000
2900000000000000000000000000000000000000000000000000000000000000000
2910000000000000000000000000000000000000000000000000000000000000000
2920000000000000000000000000000000000000000000000000000000000000000
2930000000000000000000000000000000000000000000000000000000000000000
294cleartomark
295%%EndFont
296%%BeginFont: CMSY10
297%!PS-AdobeFont-1.1: CMSY10 1.0
298%%CreationDate: 1991 Aug 15 07:20:57
299% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
30011 dict begin
301/FontInfo 7 dict dup begin
302/version (1.0) readonly def
303/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
304/FullName (CMSY10) readonly def
305/FamilyName (Computer Modern) readonly def
306/Weight (Medium) readonly def
307/ItalicAngle -14.035 def
308/isFixedPitch false def
309end readonly def
310/FontName /CMSY10 def
311/PaintType 0 def
312/FontType 1 def
313/FontMatrix [0.001 0 0 0.001 0 0] readonly def
314/Encoding 256 array
3150 1 255 {1 index exch /.notdef put} for
316dup 0 /.notdef put
317readonly def
318/FontBBox{-29 -960 1116 775}readonly def
319/UniqueID 5000820 def
320currentdict end
321currentfile eexec
322D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
3237D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
324A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
325E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
326221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
32727D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
3285B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
3290ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
330DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
33171A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
3324ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
333515DB70A8D4F6146FE068DC1E5DE8BC57036431151EC603C8BCFE359BBD953AD
3345F3D998C7A49AEF3CB6B1A9EB69F3CEA454AD2808F02492DD00C7050748656DA
3355A3A67850F65A778D67EBCC7040722819412C6225B3188DD2D94DDE572362C17
3364F50D814C4EBB50F501DE84522460B812765DDAABC6A311FFB429457E6767CDA
337983F330179AF9D598AEB9650568AD79307FB100555AB73B0929E428272550D22
338FBFA319BCE7F77420EFC9514634223E3BB29AD77E0B2A7D67B90AF5FEF8199FF
3390109AF4F39A23E7860EFC6F83A1BEE01DA2F5092363C2FA05251FAB8B291517B
3405806321FFA8B26906A5EECFE9CDD4949944E19B3504B268938BCAC03C2CE0CC5
341F4465CF1CF403B667113059AC5D340E30AE1825AA2829DA83196C33044E6023F
342C1654A0861D138AE84F16B962C0122AC9345ED069B0D66F1B775F1D5E3CD3B
3430000000000000000000000000000000000000000000000000000000000000000
3440000000000000000000000000000000000000000000000000000000000000000
3450000000000000000000000000000000000000000000000000000000000000000
3460000000000000000000000000000000000000000000000000000000000000000
3470000000000000000000000000000000000000000000000000000000000000000
3480000000000000000000000000000000000000000000000000000000000000000
3490000000000000000000000000000000000000000000000000000000000000000
3500000000000000000000000000000000000000000000000000000000000000000
351cleartomark
352%%EndFont
353TeXDict begin 39158280 55380996 1000 600 600 (ru-refcard.dvi)
354@start /Fa 242[71 13[{ TeXbbad153fEncoding ReEncodeFont }1
35566.4176 /CMSY8 rf
356%DVIPSBitmapFont: Fb larm0800 8 56
357/Fb 56 241 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A
3585A126009157A8714>44 D<B512C0A412047F9018>I<123C127E12FFA4127E123C08087A
3598714>I<EB3FC0EBFFF03803E07C48487E48487E497E001EEB0780A2003E14C0A248EB03
360E0A500FC14F0B0007C14E0A3007E1307003E14C0A36CEB0F806C14006D5A3807C03E3803
361F0FC3800FFF0EB3FC01C2D7DAB23>48 D<130C133C137CEA03FC12FFEAFC7C1200B3B113
362FE387FFFFEA2172C7AAB23>I<EB7F803801FFF0380780FC380E003F48EB1F8048EB0FC0
3635A0060EB07E012F000FC14F07E1403A3007C1307C7FCA215E0140F15C0141F1580EC3F00
364147E147C5C495A495A495A495A011EC7FC5B5B4913305B485A4848136048C7FC000E14E0
365001FB5FC5A4814C0B6FCA21C2C7DAB23>I<EB3FC03801FFF03807C0FC380E007E487FEC
3661F80003F14C0A2EB800F1300A2000C131FC7FC1580A2EC3F00143E5C5CEB03F0EBFFC014
367F0EB00FC143FEC1F8015C0140F15E0A2EC07F0A21238127C12FEA3EC0FE012F8006014C0
3680070131F6C1480001EEB3F00380780FC3801FFF038007FC01C2D7DAB23>I<000CEB0180
369380FC01F90B512005C5C14F014C0D80C7EC7FC90C8FCA8EB1FC0EB7FF8380DE07C380F80
3701F01001380000E130F000CEB07C0C713E0A2140315F0A4127812FCA448EB07E012E00060
37114C00070130F6C14806CEB1F006C133E380780F83801FFE038007F801C2D7DAB23>53
372D<1230123C003FB512F8A215F05A15E039700001C000601480140348EB0700140E140CC7
373121C5C143014705C495AA2495AA249C7FCA25B130E131EA2133EA3133C137CA413FCA913
374781D2E7CAC23>55 D<EB3F80EBFFF03803E0783807C03E48487E48487E003E1480140700
3757E14C0127C00FC14E01403A315F0A5007C1307127EA2003E130F7E6C131F3807803B3803
376E0F33800FFC390383F03E013001407A215C0A2140F001E1480003F14005C143E143C003E
3775B001C5B380E03E03807FF80D801FEC7FC1C2D7DAB23>57 D<EE01C0EE0780EE1E001678
378ED01E0ED0780031EC7FC1578EC01E0EC0780021EC8FC1478EB01E0EB0780011EC9FC1378
379EA01E0EA0780001ECAFC127812E01278121EEA0780EA01E0EA0078131EEB0780EB01E0EB
3800078141EEC0780EC01E0EC0078151EED0780ED01E0ED0078161EEE0780EE01C02A297AA4
38137>60 D<12E01278121EEA0780EA01E0EA0078131EEB0780EB01E0EB0078141EEC0780EC
38201E0EC0078151EED0780ED01E0ED0078161EEE0780EE01C0EE0780EE1E001678ED01E0ED
3830780031EC7FC1578EC01E0EC0780021EC8FC1478EB01E0EB0780011EC9FC1378EA01E0EA
3840780001ECAFC127812E02A297AA437>62 D<4A7E4A7EA34A7EA24A7EA3EC1BF81419A2EC
38530FCA2EC70FEEC607EA24A7EA349486C7EA2010380EC000FA201066D7EA3496D7EA2011F
386B57EA29038180001496D7EA349147EA201E0147F4980A20001ED1F801203000716C0D80F
387F0EC3FE0D8FFFC0103B5FCA2302F7EAE35>65 D<B612FCEDFF803A03F8000FC00001EC03
388F06F7E6F7E82167E167FA6167E16FE5E4B5A4B5AED0FE0ED7F8090B6C7FC16E09039F800
38903F0ED01FC6F7E167F821780161F17C0A61780163F17005E16FEED03FC0003EC0FF0B712
390C04BC7FC2A2D7DAC32>I<DA1FF013C09138FFFE01903903F00F8390390F8001E3013FC7
3911277017C143F4848141F4848140F48481407A248481403121F491401123F90C8FC481500
392A300FE1600AB127F17C0A27E7F001F15016D1580120F6C6C1403EE07006C6C14066C6C14
3930ED8007C5C013F147890390F8001E0903903F00FC0902600FFFEC7FCEC1FF02A2F7CAD33
394>I<B712FCA23903F800030001EC007C82161E160EA21606A31607821530A293C7FCA315
39570A2EC01F090B5FCA2EBF801EC0070A21530A217C0A39238000180A4160317005EA25E5E
396167F0003EC01FEB7FCA22A2D7DAC30>69 D<B712FCA23903F800030001EC007C163E161E
397160EA21606A3160716031518A21600A31538157815F890B5FCA2EBF800157815381518A5
39892C7FCAB487EB512F8A2282D7EAC2E>I<DA1FF013C09138FFFE01903903F00F8390390F
3998001E3013FC71277017C143F4848141F4848140F48481407A248481403121F491401123F
40090C8FC481500A300FE1600A992381FFFFEA2007F9138001FE0EE0FC0A27E7F121F7F120F
4016C7EA26C7E6C6C141FEA007C013F143FD90F8013F3903903F007C10100B51200DA1FF813
402002F2F7CAD37>I<B512F0A23803FC006C5AB3B3A3487EB512F0A2142D7EAC19>73
403D<90387FFFF0A201001300147EB3AD123812FEA314FE5C1278387001F86C485A381E07E0
4043807FF80D801FCC7FC1C2E7DAC24>I<D8FFF8923807FFC06D5D0003EFF00000015F01BE
405151BA2019F1533A3D98F801463A2D987C014C3A2D983E0EB0183A3D981F0EB0303A2D980
406F81306A3027C130CA26E1318A36E1330A291380F8060A2913807C0C0A3913803E180A291
4073801F300A3EC00FEA2157C487ED80FF04B7EB5D93801B512C0A23A2D7DAC41>77
408D<D8FFF8903803FFFC7F00019138003FC06DEC0F006D1406EBBF80A2EB9FC0EB8FE01387
40980EB83F8138180EB80FE147E147FEC3F80EC1FC0140F15E0EC07F0140315F8EC01FC1400
41015FE157FED3F86151F16C6ED0FE6150716F6ED03FE1501A21500167E163EA2486C141ED8
4110FF0140EB5FC16062E2D7DAC35>I<EC3FF0903801FFFE903907E01F8090391F8007E090
412393E0001F001FCEB00FC4848147E4848804848EC1F8049140F000F16C04848EC07E0A248
413C8EA03F0A24816F8A2007E1501A200FE16FCAA007FED03F8A36C16F06D1407001F16E0A2
4146C6CEC0FC06D141F000716806C6CEC3F006C6C147E6C6C5C017E495A90391F8007E09039
41507E01F80902601FFFEC7FC9038003FF02E2F7CAD37>I<B612F815FF3A03F8001FC00001
416EC07E0ED01F016F8ED00FC16FE167E167FA6167E16FE16FCED01F816F0ED07E0ED1FC090
417B6120015F801F8C8FCB2487EB512F0A2282D7DAC30>I<90383F80303901FFF0703807C0
4187C390F000EF0001E13074813034813011400127000F01470A315307EA26C1400127E127F
419EA3FE013FE381FFFE06C13FC6C13FF00011480D8003F13E013039038003FF0EC07F81401
420140015FC157C12C0153CA37EA215787E6C14706C14F06CEB01E039F78003C039E3F00F00
42138E07FFE38C00FF01E2F7CAD27>83 D<007FB712F8A29039000FC003007C150000701638
422A200601618A200E0161CA248160CA5C71500B3A94A7E011FB512E0A22E2D7EAC33>I<B5
42339F003FFFCA2D803FCC7EA3FC06C48EC0F001606B3AB160E0000150C7F161C017C141801
4247E14386D5C6D146090390F8001E0903907E00380902601F80FC7FC9038007FFCEC0FF02E
4252E7DAC35>I<13FF000713C0380F01F0381C00F8003F137C80A2143F001E7FC7FCA4EB07
426FF137F3801FE1FEA07F0EA1FC0EA3F80EA7F00127E00FE14065AA3143F7E007E137F007F
427EBEF8C391F83C7FC390FFF03F83901FC01E01F207D9E23>97 D<EA07C012FFA2120F1207
428AC14FE9038C7FF809038CF03E09038DC01F09038F8007C49137E49133E497F1680A2150F
42916C0A9ED1F80A216005D6D133E6D5B01B05B9038BC01F090380E07E0390607FF80260001
430FCC7FC222F7EAD27>I<EB1FE0EB7FFC3801F01E3803E0073907C01F80EA0F80EA1F005A
431003EEB0F00007E90C7FCA2127C12FCA9127EA215C07E6C130101801380380FC0033907E0
43207003801F03E38007FF8EB1FC01A207E9E1F>I<15F8141FA214011400ACEB0FE0EB7FF8
4333801F81E3803E0073807C003380F8001EA1F00481300123E127EA25AA9127C127EA2003E
43413017EEB8003000F13073903E00EFC3A01F03CFFC038007FF090391FC0F800222F7EAD27
435>I<EB1F80EBFFF03803E0783807C03E380F801E381F001FEC0F80123E007E130715C012
4367C12FCA3B6FCA200FCC8FCA5127EA2003E14C0123F6C1301390F80038001C013003803E0
4370F3801F03C38007FF8EB1FC01A207E9E1F>I<EB03F0EB0FFCEB3E1EEB7C3F13F8EA01F0
438A23803E00C1400AAB512E0A23803E000B3A6487E387FFF80A2182F7FAE16>I<013F13F8
4399038FFC3FE3903E1FF1E3807807C000F140C391F003E00A2003E7FA76C133EA26C6C5A00
440071378380FE1F0380CFFC0D81C3FC7FC90C8FCA3121E121F380FFFF814FF6C14C04814F0
441391E0007F848130048147C12F848143CA46C147C007C14F86CEB01F06CEB03E03907E01F
442803901FFFE0038003FF01F2D7E9D23>I<EA07C012FFA2120F1207AC14FE9038C3FF8090
44338C703E09038DE01F013F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2222E7EAD27>
444I<EA0780EA0FC0EA1FE0A4EA0FC0EA0780C7FCA8EA07C012FFA2120F1207B3A5EA0FE0EA
445FFFCA20E2E7EAD14>I<EA07C012FFA2120F1207ADEC1FFEA2EC0FF0EC07C05D020EC7FC
4465C5C5C5CEBC3C013C7EBCFE0EBDFF013F9EBF0F8497EEBC07E143E80816E7E14076E7E81
4476E7E486C487E3AFFFE07FF80A2212E7EAD25>107 D<EA07C012FFA2120F1207B3B3A3EA
4480FE0EAFFFEA20F2E7EAD14>I<2607C07FEB07F03BFFC3FFC03FFC903AC783F0783F3C0F
449CE01F8E01F803B07DC00F9C00F01F8D9FF8013C04990387F000749137EA249137CB2486C
45001FEEB0FE03CFFFE0FFFE0FFFEA2371E7E9D3C>I<3807C0FE39FFC3FF809038C703E039
4510FDE01F0EA07F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2221E7E9D27>I<EB1FE0
452EB7FF83801F03E3803C00F3907800780390F0003C04814E0003EEB01F0A248EB00F8A300
453FC14FCA9007C14F8A26CEB01F0A26CEB03E0A2390F8007C03907C00F803901F03E003800
4547FF8EB1FE01E207E9E23>I<3807C0FE39FFC7FF809038CF03E0390FDC01F03907F800FC
45549137E49133E49133FED1F80A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C5D9038FC
45601F09038CE07E09038C7FF80D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D27>I<38
4570781F038FF87FCEB9E7EEA0F98EA07B813B0EBF03CEBE000A35BB1487EB5FCA2171E7E9D
4581B>114 D<3801FE183807FFB8381E01F8EA3C00481378481338A21418A27E7EB41300EA
4597FF06CB4FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA27EA26C13
4603CA26C137838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A312011203A212
46107121FB512F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F80152A7F
462A81B>I<D807C013F800FF131FA2000F130100071300B21401A314033803E007EC0EFC3A
46301F81CFFC038007FF890391FE0F800221F7E9D27>I<3AFFFC01FFC0A23A0FE0007E0000
46407147C15380003143015706C6C1360A26C6C5BA390387C0180A26D48C7FCA2EB3F07EB1F
46506A2EB0F8CA214DCEB07D8A2EB03F0A36D5AA26D5A221E7F9C25>I<3BFFFC3FFE07FFA2
4663B0FE003F001F801C09038E000F00007010114E0812603E00314C0A2913807F8012701F0
46706781380A29039F80E7C030000D90C3C1300A290397C181E06A2151F6D486C5AA2168C90
468391F600798A216D890390FC003F0A36D486C5AA36DC75A301E7F9C33>I<3AFFFC07FF80
469A23A0FF003FC000003EB01F0000114C06D485A000091C7FCEB7C06EB3E0E6D5A14B8EB0F
470B0EB07E013036D7E497E1307EB067C497EEB1C1F01387FEB700F496C7E6E7ED803C07F00
471076D7E391FE003FC3AFFF007FFC0A2221D7F9C25>I<3AFFFC01FFC0A23A0FE0007E0000
47207147C1538000314306D137000011460A26C6C5BA2EBFC01017C5BEB7E03013E90C7FCA2
473EB1F06A2148EEB0F8CA2EB07D8A2EB03F0A36D5AA26D5AA2495AA2130391C8FC1278EAFC
47406A25B131CEA7838EA7070EA3FE0EA0F80222B7F9C25>I<B9FCA2D803F8C7EA1FC00001
4751680B3B3A3486CEC3FC0B5D8F00FB5FCA2302D7DAC37>207 D<B512F814FF390FC01F80
4760007EB07E0140315F0A4EC07E0EC0FC0EC3F809038FFFC00809038C00F80EC03E0EC01F0
477EC00F815FCA5EC01F8A2EC03F0000FEB0FE0B61280ECFE001E1D7E9C23>226
478D<90B612E0A290390E007E00157C13061304130CAA5BA35BA21370136013E0485A485A00
4790FC7127E007FB612E0A2007CC7120300781401007014000060156000E01570A2481530A5
48024287F9C27>228 D<EB1F80EBFFF03803E0783807C03E380F801E381F001FEC0F80123E
481007E130715C0127C12FCA3B6FCA200FCC8FCA5127EA2003E14C0123F6C1301390F800380
48201C013003803E00F3801F03C38007FF8EB1FC01A207E9E1F>I<EB1FE0EB7FF83801F03E
4833803C00F3907800780390F0003C04814E0003EEB01F0A248EB00F8A300FC14FCA9007C14
484F8A26CEB01F0A26CEB03E0A2390F8007C03907C00F803901F03E0038007FF8EB1FE01E20
4857E9E23>238 D<3807C0FE39FFC7FF809038CF03E0390FDC01F03907F800FC49137E4913
4863E49133FED1F80A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C5D9038FC01F09038CE
48707E09038C7FF80D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D27>240
488D E
489%EndDVIPSBitmapFont
490/Fc 197[23 58[{ TeXaae443f0Encoding ReEncodeFont }1 83.022
491/CMMI10 rf /Fd 145[42 3[23 106[{ TeXbbad153fEncoding ReEncodeFont }2
49283.022 /CMSY10 rf
493%DVIPSBitmapFont: Fe lati1000 10 6
494/Fe 6 115 df<14F8EB07FE90381F871C90383E03FE137CEBF801120148486C5A485A12
4950FEBC001001F5CA2EA3F801403007F5C1300A21407485C5AA2140F5D48ECC1C0A2141F15
496831680143F1587007C017F1300ECFF076C485B9038038F8E391F0F079E3907FE03FC3901
497F000F0222677A42A>97 D<147F903803FFC090380FC1E090381F0070017E137849133839
49801F801F83803F003120713E0120FD81FC013F091C7FC485AA2127F90C8FCA35A5AA45AA3
499153015381578007C14F0007EEB01E0003EEB03C0EC0F806CEB3E00380F81F83803FFE0C6
50090C7FC1D2677A426>99 D<EC07C0EC3FF09138FC38E0903901F01FF0EB03E0903807C00F
501EB0F80011F1307D93F0013E05B017E130F13FE4914C01201151F1203491480A2153F1207
502491400A25DA249137EA215FEA25D00031301140314076C6C485A0000131FEB787BEB3FF3
50390380FC3F0EB00031407A25DA2140F5D121C007E131F5D00FE49C7FC147E5C387801F838
5047C07E0381FFF80D803FEC8FC24367CA426>103 D<EB03F0EA01FFA3EA00075CA3130F5C
505A3131F5CA3133F91C8FCA35B90387E07F0EC1FFCEC783E9038FFE01F02C01380EC800F14
50600485A16C05B49EB1F8012035BA2153F000715005BA25D000F147E5B15FE5D121FD98001
507131C15F8163C003F01031338010013F0A216704814E0007E15F016E0EDE1C000FE903801
508E38048903800FF000038143C263B7BB92A>I<D801E013FE3A07F803FF803A0E3C0F07C0
5093A1E3E3C03E0261C1F787F39383FF00114E0007813C000708114804A485AEAF07FEAE07E
510A20000140701FE5C5BA2150F00015D5B151F5E12034990383F8380160316070007027F13
5110049137EA2160E000F147C49141E161C5E001FEC3C7849EB1FE00007C7EA0780292679A4
5122F>110 D<3903C003F0390FF01FFC391E783C0F381C7C703A3C3EE03F8038383FC0EB7F
513800078150000701300151CD8F07E90C7FCEAE0FE5BA2120012015BA312035BA312075BA3
514120F5BA3121F5BA3123F90C9FC120E212679A423>114 D E
515%EndDVIPSBitmapFont
516%DVIPSBitmapFont: Ff labx1000 10 36
517/Ff 36 256 df<B61280A819087F9620>45 D<EE7F80ED7FFFA4150381AF903801FF8101
5180F13F1013F13FD9038FFC07F0003EB001FD807FC1307000F8048487F5B123FA2485AA312
519FFAA127FA27F123FA26C6C5B000F5C6C6C5B6C6C4913C02701FF80FD13FE39007FFFF901
5201F13E1010113012F3A7DB935>100 D<903803FF80011F13F0017F13FC3901FF83FE3A03
521FE007F804848133F484814C0001FEC1FE05B003FEC0FF0A2485A16F8150712FFA290B6FC
522A301E0C8FCA4127FA36C7E1678121F6C6C14F86D14F000071403D801FFEB0FE06C9038C0
5237FC06DB51200010F13FC010113E025257DA42C>I<EC1FF0903801FFFC010713FF90391F
524F87F8090383FE0FFD9FFC113C0A2481381A24813016E1380A2ED3E0092C7FCA8B6FCA400
5250390C8FCB3ABB512FEA4223A7DB91D>I<01FEEB7FC000FF903803FFF8020F13FE91381F
52603FFDA3C011380000713780003497E6D4814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430
527257DA435>110 D<01FFEC3FC0B5EB3FFFA4000714016C80B3A35DA25DA26C5C6E4813E0
5286CD9C03E13FF90387FFFFC011F13F00103138030257DA435>117
529D<EB3FFE0003B512E0000F14F8391FF00FFE003FEB03FF6D6C7F6E7FA26F7EA26C5A6C5A
530EA0380C8FCA2EC3FFF010FB5FC137F3901FFF87F00071380380FFE00EA3FF85B485A12FF
5315BA415FF6D5A127F263FF00713F83B1FFC1FBFFFC0390FFFFE1F0003EBF80F39003FE003
5322A257DA42E>224 D<163EED03FEEC01FF147F0107B5FC011F5C137F48B65A485D4815C0
5334802F8C7FC02C0C8FCD81FFCC9FC13F0485A5B5B90CAFC127EA2127C903801FFC0010F13
534F8D8787F13FF26F8FF807F3AFBFE003FE0B4486D7E496D7E496D7EA28249130382A31780
535A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C495A6C6C6CB45A6C6CB5
536C7FC011F13FC010113C0293A7DB930>I<B612FCEDFFC016F000039038001FF86F7E6F7E
537A26F7EA44B5AA2ED1FFCED7FF091B512C093C7FC16E09138000FF86F7E6F7E6F7E178017
538C0A617805D17004B5AED1FFCB75A16E093C7FC2A257EA430>I<B712E0A30003EB003F15
5390F15071503150116F0A21500A51600B3B512FEA324257EA429>I<010FB712C0A3903B00
5407C003FF0001478AB1470A214F0A35C1301A25C1303A2495AA249C7FC5B133E5B5B485A00
5417FB812E0A301E0C8127F90C9120F007E1607007C1603A248EE01F0A3481600A5343280A4
54235>I<903803FF80011F13F0017F13FC3901FF83FE3A03FE007F804848133F484814C000
5431FEC1FE05B003FEC0FF0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA36C7E1678
544121F6C6C14F86D14F000071403D801FFEB0FE06C9038C07FC06DB51200010F13FC010113
545E025257DA42C>I<D83FFF013FB5EB3FFFA3D803FE010001C0EB1FF0000019C0017F4D5A
546D91FC004FEC7FC6D6C4B5A6D6C4B5AD901FCED0FE06D6C4B5A023F4BC8FCDA1FC014FE6E
5476CEBC1FC6F13C303FC13CF4A6CEBDFFE4AB7FC4A82DAFFEF01FD7F4901E301F17F4901C1
54801E07F0380EBC07F49496E7E49486F7E49486F7E49486F7E017F844A8149486F7F48496F
5497F4849707E4890C76F7E4885B5D8E03FD9FF01B512C0A34A257EA44F>I<38701FFF007C
550B512F0007F14FE9038E00FFFD98001138090C713C0127E007CEC7FE0A21278A2C8EAFFC0
5515C4A1300EC0FFE90383FFFF815C015F89038000FFE913803FF80020013C0A2ED7FE016F0
552A412F07E007815E015FF007C15C06C01031380261FC00F13006CB512FC000314F0C66C90
553C7FC24257EA42A>I<B5D8FC3FB5FCA3000390C713C0A25D5DA25D5D5D151E5D157C1578
5545D4A5AA24A5A4A5AA24A5A141E143E143C5C14F85C5C5CA25C91C7FCA2B5D8FC3F13FFA3
55530257EA435>I<90390F8001F090391FE007F8496C487E017F80ECF81FA4ECF00F013F5C
556ECE0076D486C5A6DB55A010314C0010091C7FCEC1FF891C9FCA4B5D8FC3FB5FCA3000390
557C713C0A25D5DA25D5D5D151E5D157C15785D4A5AA24A5A4A5AA24A5A141E143E143C5C14
558F85C5C5CA25C91C7FCA2B5D8FC3F13FFA330397EB835>I<B500FCEBFFFCA3000390C7EA
5597FC0170016FEED03F84B5A4B5AED3F804BC7FC15FCEC03F84A5A140F143F4A7E4A7E81EC
560F7FF02C77F02837F14016E7F6F7E6F7E6F7E82150F6F7E6F13806F13C06F13E017F0B5D8
561FC0713FFA330257EA435>I<011FB71280A3903B00F8007FE0005CB3A3EA1E01123F387F
56281E0EAFFC113C3A2EBC7C0138F6CB45A6CD9001FB512806C5AEA0FF831257FA435>I<B5
5636C91387FFF806E91B5FC5E00036DEDE000A2EE03BFEBDFF0EE073FEBCFF8160EEBC7FC16
5641CA2EBC3FE1638EBC1FF167001C0138016E0EC7FC0EDC1C0A2EC3FE1EDE380EC1FF3EDF7
565006EB4FC5D1407A25D14035D3807E001B5D9F00FB51280140015E039257DA440>I<B5D8
566FC3FB5FCA3000390C713C0AC91B6FCA391C7FCB0B5D8FC3F13FFA330257EA435>I<9038
56701FFC0010F13F8017F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7EA2003F
56881491303007F81A300FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A
5696C6C495A6C6C6CB45A6C6CB5C7FC011F13FC010113C029257DA430>I<B9FCA3000390C7
57013C0B3ADB5D8FC3F13FFA330257EA435>I<9039FF01FF80B5000F13F0023F13FC9138FE
57107FFDAF00113800007496C13C06C0180EB7FE091C713F0EE3FF8A2EE1FFCA3EE0FFEAA17
572FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF00313809139FC07FE0091383FFFF8
573020F13E0020390C7FC91C9FCACB512FCA42F357EA435>I<903801FFC0010F13FC017F13
574FFD9FF8013802603FE0013C048485AEA0FF8121F13F0123F6E13804848EB7F00151C92C7
575FC12FFA9127FA27F123FED01E06C7E15036C6CEB07C06C6C14806C6C131FC69038C07E00
5766DB45A010F13F00101138023257DA42A>I<007FB612FEA301811381D87E01EB807E007C
577153E0078151EA200F8151FA200F0150FA500001500B348B61280A328257EA42D>I<B539
578F001FFF8A3000790C7EA3F806CED1F00161E6E133E6C153C6E137C6C15786E13F8017F5C
579ECF001013F5C14F8011F495AA2ECFC07010F5CECFE0F010791C7FC6E5A6D131E15BE6D13
580BC15FC6D5BA36E5AA26E5AA26E5AA26E5AA292C8FCA25C141E003F133E387F803C38FFC0
5817C147814F8EBC1F0EBC3E06C485A387D1F80D83FFFC9FCEA1FFCEA07F02D357EA432>I<
582ED01FEEC01FFA4EC000F1507AFDAFF87EB1FF0010F01E7EB7FFF013F90B712C09026FFE0
5837F9038E07FF00003D9801F9038801FFC48496C496C7E48486D486D7E4848701380498200
5843F19C04982007F19E0A34848EF7FF0A96C6CEFFFE0A3003F19C06D5E001F19806D5E6C6C
585496C4913006C6C4C5A6C6D486D485AC6D9E07F9038E07FF0013FB812C0010F9026E7FE7F
58690C7FC01000187EB1FF0DA000790C9FCAC4AB512F8A4444A7DB94B>I<B539F01FFFF0A3
587000790390003FE006C90388001F06C6D485A6C1407D97FE05B6D6C485A6E48C7FC90381F
588FC3E010F5B903807FEFC6D6C5A5D6D5B6D5B6E7E6E7E814A7EA24A7E903801F3FFD903E3
5897FD907C17FEB0FC049486C7E4A6C7E013E80496D7E49130F00016E7ED807FC80B5013F13
590F8A32D257EA432>I<B5D8FC3FB5FCA3000390C713C0B3ADB91280A3C91201EE003F171F
591170FA2EF07C0A31703A532327EA435>I<B5D8FC3FB5FCA3000390C713C0AD6C6D5A6C14
5920F90387FC07F90383FFFFE010F13F00101138090C8FCAC033F13FFA330257EA435>I<B5
593D8FC3FB5000FB512C0A3000390C7903AC0003FF000B3ADBC12E0A3CD127F1A0F1A071A03
594A2F201F0A31A00A54C327EA44F>249 D<007FB512F0A301811380EA7E01127C1278A212
595F8A212F0A5000091B5FC17F017FC9238801FFEEE07FF7013807013C0A27013E0A64C13C0
596A24C13804C1300EE1FFE017F90B55A17F094C7FC33257EA439>I<B500FC023FB5FCA300
5970390C913C0ACECFFFEEDFFE016F89138003FFCED0FFE6F7E6F7FA26F7FA64B5BA24B5B4B
5985AED3FFCB7D8F83F13FF16E0EDFE0040257EA445>I<B512FCA3000390C9FCACECFFFEED
599FFE016F89138003FFCED0FFE6F7E6F1380A26F13C0A64B1380A24B13004B5AED3FFCB75A
60016E04BC7FC2A257EA430>I<B500FCECFFE0040713FC043FEBFF80000390C7397FC07FC0
601923A01FF001FF04B486D7E4B486D7E4B486D7EA2031F814C7F033F1680A3037F16C091B5
602FCA3EC007FA5033F1680A3031F1600705B030F5DA26F6C495A6F6C495A6F6C495A6F9038
603C07FE0B500FC013FB51280040F49C7FC040013E042257EA448>254
604D<49B612F8133F90B7FC00039039C007FE003807FE00120F5B121FA5120F6C7E6C7E6C13
605E06C6CB5FC131F13004913E715C74913875B491307EB1FFE14FC133FEB7FF8EBFFF04813
606E0A24813C0481380121FB500F1B512F8A32D257EA432>I E
607%EndDVIPSBitmapFont
608%DVIPSBitmapFont: Fg latt1000 10 75
609/Fg 75 126 df<130EEB3F80497E3801FFF0487F000F13FE381FFBFFD87FF113C039FFC0
6107FE0EB803F38FE000F007CEB07C0007813031B0D77B42D>2 D<007FB512F0B612F8A36C
61114F01D0579942C>21 D<121FEA3F80EA7FC0EAFFE0B0EA7FC0AEEA1F00C7FCA7121FEA3F
61280EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B3470B32C>33 D<003C131E007F137F481480
613A66C1400A6007E7FA6003E133EA3003C131E001C131C191977B32C>I<0107131C90380F
614803EA8011F137EEC007CA4003FB612E0B712F8A43A003E00F800A2EB7E01017C5BA8EBFC
6150301F85BA2B712F8A4003F15E03A01F007C000A30003130F01E05BA86C486CC7FC25337D
616B22C>I<EB01C0497EA6EB0FFC90387FFF8048B512E00007804880391FFBEFFC393FC3E1
617FE903803E07F007E80127C00FC158012F8157FA300FCEC3F00A2007E91C7FC127FEA3FC3
61813FBEA1FFF6C13FC6C13FF000114C06C6C7F011F13F801037F14E7ECE1FEECE07F810018
61980007E1580150F12FFA312FE151F1600007E5C007F143ED83F8313FE9038C3E1FC391FFB
620EFF86CB55A6C5C6C5CC691C7FCEB1FF8EB03E0A66D5A21417BB92C>I<D807801307D81F
621E0EB0F80151F487E486C133F1600007C5CD8FCFC137EEAF87C15FE5D14015DA21403D8FC
622FC5BEA7CF8007F13075D383FF00FD81FE05BA23807801FC75B143F92C7FCA25C147E14FE
6235CA213015CA213035C13075CA2130F5C131FEC800FED3FC0013FEB7FE0140049EBFFF001
6247E13F9A2D9FE0113F801FC13F0A2120113F8120313F015F90007010013F05B000F14FF49
625EB7FE0A20007EC3FC06C48EB0F0025417DB92C>I<EA0F80EA1FE0EA3FF0127F13F8A213
626FCA2123F121F120FEA007CA313FC13F8A2120113F01203EA07E0A2EA0FC0EA3F80127FEA
627FF005A12F812700E1D71B22C>39 D<143814FC13011303EB07F8EB0FF0EB1FC0EB3F80EB
6287F0013FE485A485A5B12075B120F5B485AA2123F90C7FCA25A127EA312FE5AAC7E127EA3
629127F7EA27F121FA26C7E7F12077F12037F6C7E6C7E137FEB3F80EB1FC0EB0FF0EB07F8EB
63003FC130113001438164272B92C>I<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E6C7E6C7E
631137F7F1480131F14C0130FEB07E0A214F01303A214F81301A314FC1300AC130114F8A313
6320314F0A2130714E0A2EB0FC0131F1480133F14005B13FE485A485A485A485AEA3FC0485A
63348C7FC5A5A1270164279B92C>I<EB0380497EA60020140800F8143E00FE14FE00FF13C1
634EBC7C7EBE7CF003FB512F8000F14E0000314806C140038007FFCA248B5FC481480000F14
635E0003F14F839FFE7CFFEEBC7C7EB07C100FE13C000F8143E0020140800001400A66D5A1F
636247AAA2C>I<147014F8AF003FB612E0B712F8A4C700F8C7FCB0147025267DAB2C>I<EA0F
63780EA1FE0EA3FF0EA7FF8A213FCA3123F121F120F120013F8A21201EA03F01207EA1FE0EA
6387FC0EAFF80130012FC12700E17718A2C>I<007FB512F0B612F8A36C14F01D0579942C>I<
639121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B708A2C>I<1507ED0F80A2151F
64016005D153E157E157CA215FC5D14015D14035D14075D140F5D141F92C7FC5C143EA2147E
641147C14FC5C13015C13035C13075C130F5C131F91C8FC5B133EA2137E137C13FC5B12015B
64212035B12075B120F5B121F90C9FCA25A123E127E127C12FC5AA2127021417BB92C>I<EB
64303F8EB0FFE90383FFF80497F90B57E3901FE0FF03903F803F848486C7EEBE0004848137E
644A248487FA248C7EA1F80A2003E140F007E15C0A3007C140700FC15E0AC6C140F007E15C0
645A46CEC1F80A36C6CEB3F00A26C6C137E6D13FE00075CEBF0016C6C485A3901FE0FF06CB5
6465A6D5B6D5BD90FFEC7FCEB03F823357CB32C>I<1307497EA2131FA2133F137F13FF5A12
64707127FB5FC13DF139FEA7C1F1200B3AE007FB512E0B612F0A36C14E01C3477B32C>I<EB
6480FF890387FFF8048B512E00007804814FC391FF80FFE393FE001FF903880007F48C7EA3F
64980007E141F00FE15C0150F6C15E01507A3127E123CC8FCA2150F16C0151F1680153F1600
6505D15FE4A5A14034A5A4A5A4A5A4A5AECFF804948C7FC495A495A495AEB3FE0EB7F8049C8
651FC485A4848EB03C04848EB07E0EA1FE0485A48B6FCB7FCA36C15C023347CB32C>I<EB0F
652FC90387FFF8048B512E0000714F84880391FF807FEEBC0004848137F6D7F1680151FA26C
6535A6CC7FCC8FC153F16005D15FE14014A5AEC1FF890381FFFF0495BA215F86D7F90380007
654FEEC00FF81ED3F80ED1FC0150FA216E01507A2123C127EB4FC150F16C0A248141F007FEC
6553F806DEB7F006C6C5B391FF807FE6CB55A6C5C6C14E0C66C1380D90FFCC7FC23357CB32C
656>I<EC07F04A7E141F143FA2147EA214FCEB01F8A2EB03F0EB07E0A2EB0FC0EB1F80A2EB
6573F00137EA25B485AA2485A5B1207485AA2485A48C7FCA2127E5AB712FC16FEA36C15FCC8
658EAF800AA91387FFFF091B512F8A36E13F027347EB32C>I<000FB512FE4880A35D0180C8
659FCADEB83FE90389FFF8090B512E015F8819038FE03FE9038F000FF01C07F49EB3F8090C7
660121F6C15C0C8120FA2ED07E0A4123C127EB4FC150F16C0A248141F007EEC3F80007FEC7F
661006C6C5B6D485A391FF80FFC6CB55A6C5C000114C06C6C90C7FCEB0FF823347CB22C>I<
662121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCAE121FEA3F80EA7FC0EAFFE0A5
663EA7FC0EA3F80EA1F000B2470A32C>58 D<1502ED0F80151F157F15FF913803FE00EC0FFC
664EC1FF0EC7FE0ECFF80D903FEC7FC495AEB1FF0495AEBFF80000390C8FCEA07FCEA1FF8EA
6653FE0EAFF8090C9FCA27FEA3FE0EA1FF8EA07FC6CB4FCC67FEB3FE06D7EEB07FC6D7E9038
66600FF80EC7FE0EC1FF0EC0FFCEC03FE913800FF80157F151F150FED0200212A7BAD2C>60
667D<122012F87EB4FC7FEA3FE0EA1FF8EA07FC6CB4FCC67FEB3FE06D7EEB07FC6D7E903800
668FF80EC7FE0EC1FF0EC0FFCEC03FE913800FF80157FA215FF913803FE00EC0FFCEC1FF0EC
6697FE0ECFF80D903FEC7FC495AEB1FF0495AEBFF80000390C8FCEA07FCEA1FF8EA3FE0EAFF
6708090C9FC12FC5A1220212A7BAD2C>62 D<EB3FFE0003B512C0000F14F04814FC4880397F
671E007FF90C7FC00FEEC3F806C141FA3153F007EEC7F00003C5CC7EA03FEEC0FFC4A5AEC3F
672E04A5A4AC7FC495A495A5C13075C130F5CA76D5A90C9FCA8EB0380EB0FE0A2497EA36D5A
673A2EB038021337BB22C>I<EC7F80903803FFE0010F7F013F7F497F9038FFC0FE3901FE00
6747FD803F87F4848EB1F809038E00FCF390FC03FFF48484813C091B5FCEA3F01393E03F87F
675903907F03FE0007EEBE01F397C0FC00FEC8007A2EAFC1F00F8EB0003A900FCEB8007D87C
6760F14C0A2ECC00F3A7E07E01F80003EEBF03F903903F87F00393F01FFFED81F805B6E5A6C
6776C6C5A3907E00FC09039F00007C06C6CEB0FE0D801FE131F3900FFC0FF6DB512C06D1480
678010FEBFE00010313F89038007FC023337CB22C>I<14FE497EA4497FA214EFA2130781A2
67914C7A2010F7FA314C390381F83F0A590383F01F8A490387E00FCA549137E90B512FEA348
68080A29038F8003FA34848EB1F80A4000715C049130FD87FFEEBFFFC6D5AB514FE6C15FC49
6817E27347EB32C>I<007FB512E015F8B612FE6C8016C03903F0003FED0FE0ED07F01503A2
682ED01F8A6ED03F0A21507ED0FE0ED1FC0EDFF8090B612005D5D15FF16C09039F0001FE0ED
68307F0ED03F81501ED00FCA216FE167EA616FE16FC1501ED03F8150FED3FF0007FB612E016
684C0B712806CECFE0015F027337FB22C>I<02FF13700107EBE0F84913F9013F13FD4913FF
685EBFF813901FE007F4848131FD807F0130F1507485A491303485A150148C7FCA25A007EEC
68600F01600A212FE5AAB7E127EA3007F15F06CEC01F8A26C7EA26C6C13036D14F06C6C1307
68716E0D803FC131F6C6CEB3FC03A00FF81FF806DB512006D5B010F5B6D13F0010013802535
6887DB32C>I<007FB5FCB612C015F0816C803907E003FEEC00FFED7F80153FED1FC0ED0FE0
689A2150716F0150316F81501A4ED00FCACED01F8A3150316F0A2150716E0150FED1FC0153F
690ED7F80EDFF00EC03FE007FB55AB65A5D15C06C91C7FC26337EB22C>I<007FB612F0B712
691F8A37E3903F00001A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A91C8FCA516
6923C167EA8007FB612FEB7FCA36C15FC27337EB22C>I<007FB612F8B712FCA37ED803F0C7
693FCA716781600A515F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5FC805C7E26
694337EB22C>I<903901FC038090390FFF87C04913EF017F13FF90B6FC4813073803FC0149
6957E4848137F4848133F49131F121F5B003F140F90C7FCA2127EED078092C7FCA212FE5AA8
696913803FFF84A13FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F120F6D137F
6976C7E6C6C13FF6D5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7FC26357DB3
6982C>I<387FFFE0B57EA36C5BD803F0C8FCB3AE16F0ED01F8A8007FB6FCB7FCA36C15F025
699337DB22C>76 D<D87FE0EB0FFC486CEB1FFEA26D133F007F15FC000F15E001BC137BA401
7009E13F3A3EB9F01A2018F13E3A21483A2018713C314C7A201831383A214EFA201811303A2
70114FFEB80FEA3147C14381400ACD87FF0EB1FFC486CEB3FFEA36C48EB1FFC27337EB22C>
702I<007FB512C0B612F88115FF6C15802603F00013C0153FED0FE0ED07F0A2150316F81501
703A6150316F01507A2ED0FE0ED3FC015FF90B61280160015FC5D15C001F0C8FCB0387FFF80
704B57EA36C5B25337EB22C>80 D<387FFFFCB67E15E015F86C803907E007FE1401EC007F6F
7057E151FA26F7EA64B5AA2153F4BC7FCEC01FE140790B55A5D15E081819038E007FCEC01FE
7061400157F81A8160FEE1F80A5D87FFEEB1FBFB5ECFF00815E6C486D5AC8EA01F029347EB2
7072C>82 D<90381FF80790B5EA0F804814CF000714FF5A381FF01F383FC003497E48C7FC00
7087E147F00FE143F5A151FA46CEC0F00007E91C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC00
70903EBFFC06C14F06C6C7F01077F9038007FFEEC07FF02001380153FED1FC0A2ED0FE0A200
71078140712FCA56CEC0FC0A26CEC1F806D133F01E0EB7F009038FE01FF90B55A5D00F914F0
711D8F83F13C0D8700790C7FC23357CB32C>I<007FB612FCB712FEA43AFC007E007EA70078
712153CC71400B3AF90383FFFFCA2497F6D5BA227337EB22C>I<D87FF0EB07FF486C491380
713A36C486D1300001FC8127CA46C6C5CA76C6C495AA4143E147FA33A03E0FF83E0A214F7A2
71401E113C3A3000101E35BA201F113C701F313E7A314C1A200005DA201F713F71480A301FF
71513FF017F91C7FC4A7EA4013E133E29347FB22C>87 D<387FFFFCB512FEA314FC00FCC7FC
716B3B3B3B512FC14FEA36C13FC17416FB92C>91 D<127012F8A27E127C127E123E123F7EA2
7177F120F7F12077F12037F12017F12007F137C137E133EA2133F7F80130F80130780130380
718130180130080147C147E143EA2143F8081140F81140781140381140181140081157CA215
7197E153E153F811680150FA2ED070021417BB92C>I<387FFFFCB512FEA37EC7127EB3B3B3
720387FFFFEB5FCA36C13FC17417DB92C>I<007FB6FCB71280A46C150021067B7D2C>95
721D<1338137CEA01FC1203EA07F813F0EA0FC0EA1F80A2EA3F00123E127E127CA212FC5AA3
722EAFFC013E013F013F8A2127FA2123F13F0EA1FE0EA07C00E1D72B82C>I<3801FFF00007
72313FE001F6D7E15E048809038C01FF81407EC01FC381F80000006C77EC8127EA3ECFFFE13
7241F90B5FC1203120F48EB807E383FF800EA7FC090C7FC12FE5AA47E007F14FEEB8003383F
725E01F6CB612FC6C15FE6C14BF0001EBFE1F3A003FF007FC27247CA32C>I<EA7FF0487EA3
726127F1201AAEC1FE0ECFFF801FB13FE90B6FC16809138F07FC09138801FE091380007F049
727EB03F85BED01FC491300A216FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138
728801FE09138E07FC091B51280160001FB5B01F813F83900F03FC027337FB22C>I<903803
729FFE0011F13F8017F13FE48B5FC48804848C6FCEA0FF0485A49137E4848131890C9FC5A12
7307EA25AA8127EA2127F6C140F6DEB1F806C7E6D133F6C6CEB7F003907FE03FF6CB55A6C5C
7316C6C5B011F13E0010390C7FC21247AA32C>I<EC0FFE4A7EA380EC003FAAEB07F8EB3FFE
73290B512BF4814FF5A3807FC0F380FF00348487E497E48487F90C7FC007E80A212FE5AA87E
733007E5CA2007F5C6C7E5C6C6C5A380FF0073807FC1F6CB612FC6CECBFFE6C143FEB3FFC90
734390FF01FFC27337DB22C>I<EB03FE90381FFFC0017F13F048B57E48803907FE03FE390F
735F800FFD81FE0EB3F805B4848EB1FC090C7120F5A007E15E015075AB7FCA416C000FCC9FC
7367E127EA2127F6CEC03C06DEB07E06C7ED80FF0130F6C6CEB3FC001FF13FF000190B51280
7376C1500013F13FC010F13F00101138023247CA32C>I<EC0FF8EC3FFE91B5FC4914805B90
7383807FC7F14F090390FE03F0014C092C7FCA6007FB512FEB7FCA36C5C26000FC0C7FCB3A8
739003FB512F04880A36C5C21337DB22C>I<ED03F8903907F80FFC90391FFE3FFE017FB6FC
74048B7FC48ECFE7F9038FC0FF82607F003133E3A0FE001FC1CD9C0001300001F8049137EA6
7416D13FE000F5CEBE0016C6C485A3903FC0FF048B5FC5D481480D99FFEC7FCEB87F80180C8
742FCA37F6C7E90B512F06C14FE48ECFF804815E04815F03A3FC0001FF848C7EA03FC007E14
74300007C157C00FC157E48153EA46C157E007E15FCD87F801303D83FE0EB0FF8D81FFCEB7F
744F06CB612E0000315806C1500D8003F13F8010713C028387EA42C>I<EA7FF0487EA3127F
7451201AAEC1FE0EC7FFC9038F9FFFE01FB7F90B6FC9138F03F80ECC01F02807FEC000F5B5B
746A25BB3267FFFE0B5FCB500F11480A36C01E0140029337FB22C>I<1307EB1FC0A2497EA3
7476D5AA20107C7FC90C8FCA7387FFFC080B5FC7EA2EA0007B3A8007FB512FCB612FEA36C14
748FC1F3479B32C>I<140EEC3F80A2EC7FC0A3EC3F80A2EC0E0091C7FCA748B512804814C0
749A37EC7120FB3B3A2141F003C1480007E133FB414005CEB01FEEBFFFC6C5B5C001F5B0007
75090C7FC1A467CB32C>I<EA7FE0487EA3127F1201AA91381FFFF04A13F8A36E13F0913800
751FE004A5A4A5A4A5A4A5A4A5A4A5A4AC7FC14FEEBF1FC13F3EBF7FE90B5FCA2EC9F80EC0F
752C001FE7FEBFC07496C7E496C7E811400157E811680151F3A7FFFC0FFFCB500E113FEA36C
75301C013FC27337EB22C>I<387FFFE0B57EA37EEA0003B3B3A5007FB61280B712C0A36C15
7548022337BB22C>I<3A7F83F007E09039CFFC1FF83AFFDFFE3FFCD87FFF13FF91B57E3A07
755FE1FFC3E01FCEBF83F496C487E01F013E001E013C0A301C01380B33B7FFC3FF87FF0027F
75613FFD8FFFE6D13F8D87FFC4913F0023F137F2D2481A32C>I<397FF01FE039FFF87FFC90
75738F9FFFE01FB7F6CB6FC00019038F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5
758FCB500F11480A36C01E0140029247FA32C>I<EB07FCEB1FFF017F13C048B512F0488039
75907FC07FC390FF001FE48486C7E0180133F003F158090C7121F007EEC0FC0A348EC07E0A7
7606C140F007E15C0A2007F141F6C15806D133F6C6CEB7F006D5B6C6C485A3907FC07FC6CB5
7615A6C5C6C6C13C0011F90C7FCEB07FC23247CA32C>I<397FF01FE039FFF8FFF801FB13FE
76290B6FC6C158000019038F07FC09138801FE091380007F049EB03F85BED01FC491300A216
763FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE09138E07FC091B51280
764160001FB5B01F813F8EC3FC091C8FCAD387FFFE0B57EA36C5B27367FA32C>I<903903FC
765078090391FFF0FC0017F13CF48B512EF4814FF3807FE07380FF00148487E49137F484813
7663F90C7FC48141F127E150F5AA87E007E141FA26C143F7F6C6C137F6D13FF380FF0033807
767FC0F6CB6FC6C14EF6C6C138F6D130FEB07F890C7FCAD0203B5FC4A1480A36E140029367D
768A32C>I<D87FFEEB3FC0B53801FFF0020713F8021F13FC6C5B39003F7FE1ECFF019138FC
76900F84A13704A13005CA25C5CA391C8FCAF007FB512E0B67EA36C5C26247EA32C>I<9038
7707FF8700003B512F8120F5A5A387FC00F387E00034813015AA36CEB00F0007F140013F038
7713FFFC06C13FE6CEBFF80000314E0C66C13F8010113FCEB0007EC00FE0078147F00FC143F
772151F7EA26C143F6D133E6D13FE9038F007FC90B5FC15F815E000F8148039701FFC002024
7737AA32C>I<131E133FA9007FB6FCB71280A36C1500D8003FC8FCB1ED03C0ED07E0A5EC80
7740F011FEB1FC0ECE07F6DB51280160001035B6D13F89038003FE0232E7EAD2C>I<3A7FF0
77503FF80486C487FA3007F7F0001EB000FB3A3151FA2153F6D137F3900FE03FF90B7FC6D15
776807F6D13CF902603FE07130029247FA32C>I<3A7FFF01FFFCB514FE148314016C15FC3A
77703E0000F80A26D131F00011500A26D5B0000143EA26D137E017C137CA2017E13FC013E5B
778A2EB3F01011F5BA21483010F5BA214C701075BA214EF01035BA214FF6D90C7FCA26D5A14
7797C27247EA32C>I<D87FFFEB7FFF6EB5FCB515806C16004A7ED807C0EB01F0A66C6C495A
780A3143E147FA2D801F0495AECFF87A214F7A201F113C700005D9038F9E3CFA201FB13EFA3
781D97BC190C7FC017F13FFA21480A2013F5B90381F007C29247FA32C>I<3A3FFF03FFF048
782018713F8A36C010313F03A00FC007E005D90387E01F8013F5BEB1F83EC87E090380FCFC0
783903807EF80EB03FF6D90C7FC5C6D5A147C14FE130180903803EF80903807CFC0EB0FC7EC
78483E090381F01F0013F7FEB7E00017C137C49137E0001803A7FFF01FFFC1483B514FE6C15
785FC140127247EA32C>I<3A7FFF01FFFCB5008113FE148314816C010113FC3A03E0000F80
7866C7E151F6D140012005D6D133E137C017E137E013E137CA2013F13FC6D5BA2EB0F815DA2
787EB07C1ECC3E0A2EB03E3ECE7C0130114F75DEB00FFA292C7FC80A2143EA2147E147CA214
788FC5CA2EA0C01003F5BEA7F83EB87E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA07E027
789367EA32C>I<003FB612E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C495A
790C7485A4A5A4A5A4A5A4A5A4AC7FCEB01FC495AEB0FF0495A495A495A49C8FC4848EB01E0
7914848EB03F0485A485A485A485A485AB7FCA46C15E024247DA32C>I<15FF02071380141F
792147F91B512004913C04AC7FCEB03F85CB31307EB1FE013FF007F5BB55A49C8FC6D7E6C7F
793C67F131FEB07F01303B380EB01FEECFFC06D13FF6E1380141F14070200130021417BB92C
794>I<127812FCB3B3B3A9127806416DB92C>I<EA7FC0EAFFF813FE6D7E6C7FC67F131FEB07
795F01303B380EB01FEECFFC06D13FF6E1380141F147F91B512004913C04AC7FCEB03F85CB3
7961307EB1FE013FF007F5BB55A49C8FC13F8EA7FC021417BB92C>I
797E
798%EndDVIPSBitmapFont
799%DVIPSBitmapFont: Fh labx1440 14.4 69
800/Fh 69 256 df<151E153E15FCEC01F8EC03F0EC07E0140FEC1FC0EC3F80EC7F005C5C49
8015A1303495AA2495A131F5C133F5C137F5C13FFA24890C7FCA25A5B1207A25B120FA3485A
802A4123FA25BA2127FA65B12FFB3A3127F7FA6123FA27FA2121FA46C7EA312077FA212037F
8037EA26C7FA2137F80133F80131F80130F6D7EA26D7E13016D7E8080EC3F80EC1FC0EC0FE0
8041407EC03F0EC01F8EC00FC153E151E1F7974D933>40 D<12F07E127E7E6C7E6C7E7F6C7E
8056C7E6C7E7F1200137F806D7EA26D7E80130F80130780130380A26D7EA215807F15C0A214
8067F15E0A3EC3FF0A415F8A2141FA215FCA6140F15FEB3A315FC141FA615F8A2143FA215F0
807A4EC7FE0A315C014FFA215805B1500A2495AA25C13075C130F5C131F5C495AA2495A91C7
808FC13FE12015B485A485A485A5B485A48C8FC127E12F85A1F7979D933>I<EA07E0EA1FF0
809EA3FFC127F7FB5FCA31480A37EA27E7EEA07E7EA0007A3130F1400A35B131E133EA25BA2
8105BA2485A485A1207485A485A90C7FC121E120C1127768F25>44 D<913803FF80023F13F8
81149B6FC010715C04901017F903A3FFC007FF8D97FF0EB1FFC49486D7E48496D7E4A7F4817
812804890C76C13C0A248486E13E0A2001F17F0A3003F17F8A249157FA2007F17FCA600FF17
813FEB3A5007F17FCA6003F17F86D15FFA3001F17F0A3000F17E06D5C6C17C0A26C6D491380
8146C17006E5B6C6D495A6D6C495AD93FFCEB7FF8903A0FFF01FFE06D90B55A010192C7FCD9
815003F13F802031380374F7BCD42>48 D<151E153E15FE1403140F147FEB07FF0003B5FCB6
816FCA3EBF87FEAFC00C7FCB3B3B3A6007FB712FCA52E4E76CD42>I<EC1FFE49B512F0010F
81714FC013FECFF804915E02701FF803F7F2703FC000713FCD807F001017F48486D7FD81F80
8186E138048C87E7013C0D87FE016E001F8806D16F000FF817F7013F8A56C5AA26C5A6C5AEA
8190380C914F05EA218E05E18C05E18804C13005F4C5A4C5A5F4B5B4B5B4B5B94C7FCED0FFC
8204B5A4B5AED7FC04B5A4A90C8FCEC03FC4A5A4A4814F84A5A4A5A4AC8FC02FEEC01F0495A
821495A495A5CD90F80140349C8FC013E1507017FB7FC90B812E05A5A5A5A5A5A5AB9FC18C0
822A4354E7ACD42>I<913807FFC0027F13FC0103B67E010F15E090261FF80313F890267FC0
823007F01FEC7EA3FFE48488148486E138013FE486C6C6D13C0804817E080A66C5B18C06C5B
8246C90C75AD80038168090C8FC4C1300A24C5A5F4C5A4B5B4B13C0030F5BDB7FFEC7FC9138
8257FFFF816C016FCEEFF80DA000313E09238007FF8EE3FFE707E70138018C07013E018F070
82613F8A218FC82A218FEA3EA03C0EA0FF0EA3FFC487EA2B5FCA218FCA25E18F8A26C4816F0
827495C4916E0D83FE04A13C06C485CD80FF04A1380D807FE91387FFE003B03FFE003FFFC6C
82890B65A6C6C15E0010F92C7FC010114FCD9001F1380374F7BCD42>I<17FC1601A2160316
82907160FA2161F163F167FA216FF5D5DA25D5D5D167F153E157E15FC15F8EC01F01403EC07
830E015C0EC0F80141FEC3F00143E5C14FC495A5C495A1307495A5C49C7FC5B137E137C5B12
83101485A5B485A120F485A90C8FC123E127E5ABA1280A5C901FCC7FCAF021FB71280A5394F
8327CCE42>I<486C150601F0153E01FEEC01FED9FFF0133F91B65A5F5F5F5F5F94C7FC16FC
8335E16E093C8FC15FC01F0138091CAFCAC913807FF80023F13F891B512FE01F36E7E9026FF
834FC0113E09139E0007FF891C76C7E496E7E01F86E7E5B7013804916C0C9FC18E08218F0A4
83518F8A31203EA0FE0EA3FF8487EA212FF7FA218F0A25B5E6C4816E05B01C016C06CC85A18
836806C6C4A13007FD80FF04A5A6C6CECFFFCD803FE4913F02701FFE00F5B6C6CB612806D92
837C7FC010F14F8010114C09026003FFCC8FC354F7ACD42>I<ED07FE92B512C0020314F002
8381F14FC91397FFC01FE9139FFE0007F01030180EB3F804990C7121F4948EC7FC0494814FF
8394948010313E0495A49485B5A485BA2485BA2486F13C091C7FC4803001300177E94C7FC5A
840A25B127FA2ED3FF04AB5FC020714C000FF4914F091391F807FF891393E001FFE02786D7E
8414A6D13807013C06D5A4A6D13E018F05C7013F8A291C813FCA44916FEA3127FA6123FA37F
8426C17FCA36C17F85E7E6E15F06C17E06C6D5B6E15C06C4B13806D6C491300D93FFC495A6D
843B4EBFFFC010790B512F06D5D01001580021F01FCC7FC020313C0374F7BCD42>I<121F7F
8447FEBFF8091B8FCA45A18FE18FC18F818F0A218E018C018804817000180C8123E007EC912
8457E5F007C4B5A4C5A5F16074C5A484B5A4CC7FC167E167CC912FC4B5A4B5AA24B5A150F4B
8465AA24B5AA24BC8FC5DA25C5D1403A214075D140FA3141FA2143FA34A5AA414FFA65BAB6D
8475B6E5A6E5A6E5A385279D042>I<913803FFC0023F13FC49B67E010715E090260FFC0013
848F8D93FE0EB1FFCD97F80EB07FE49C76C7E496E1380484880000317C049157F120718E017
8493F120FA27FA27F7F6E147F02E015C08002FC14FF6C01FF15806F481300EDE0036C9138F8
85007FE6F485A6C9138FF1FF06CEDFFE017806D4AC7FC7F010F6E7E6D81010115F06D810103
85115FE010F81D93FF71580D97FC115C02701FF807F14E048EB001F48486D14F04848010314
852F848481300496E13FC003F151F491407007F6F13FE491400177F00FF163F49151F170F17
85307A21703A218FCA27F127F6DED07F8A26C6CED0FF07F6C6CED1FE06C6CED3FC06C6CEDFF
854806C01C0010313006C01FCEB3FFE6C6CB612F8011F15E001071580010002FCC7FC020F13
855C0374F7BCD42>I<913807FF80027F13F849B512FE01076E7E90261FFE0113E0903A7FF8
856003FF049486D7E48496D7E48496D7E484980486F138091C7FC486F13C05A18E0485A18F0
857A27013F812FFA318FCA618FEA35E127FA4003F5DA26C7E5E7E6C6D5B161E6C7F6C6D5B6C
8586C6C13F890393FFC03F06DB55A01074A13FC01001400EC1FF891C8FCA218F85EA301FC16
859F0487E2607FF8015E05E486D15C0A24C1380A24C13005F4A131F6C4B5A49C7485A494A5A
8606C48495B6D01075B2701FF803F90C7FC6C90B512FC013F5C6D14C0010791C8FC9038007F
861F0374F7BCD42>I<BB12FEA5D8000F01E0C700077FF0007F191F190785858586A2F23F80
862A21A1FA31A0FA4DD01F014C01A07A497C7FCA21703A31707170F171F17FF92B6FCA5EDE0
86300171F170F17071703A317011BF8A3F201F0A394C8FCA21A03A21BE0A21A07A31A0F1BC0
8641A1F1A3FA21A7F1AFF4F13801907191F197F060FB5FCBCFCA21B00A34D527CD156>69
865D<B8D88007B712FCA5D8000701F0C9003FEB8000B3AE92BAFCA503F0C9123FB3B1B8D880
86607B712FCA55E527CD167>72 D<B81280A5D8000701F0C7FCB3B3B3B2B81280A529527DD1
86730>I<B812E0A5D8000F01E0CAFCB3B3A91AF8A419011AF0A51903A31907A2190F1AE019
8681FA2193F197F19FF60180760187F0503B5FCBB12C0A545527CD14F>76
869D<EC3FFE0107B512E0011F14FC017F14FF2701FFC00F13C02703FE00037F486C01007F6E
8706D7E486D80707EA2707EA3707F6C5B6C90C7FC6C5AC9FCA60307B5FC0203B6FC147F0103
871B7FC011FEBF00F017F1300EBFFFC000313F04813C0485B4890C7FC5A5B485AF081F012FF
8725BA35EA26D5C127F6D5C003F03F713C36DD901E314E06CD9C00714FF00079026F01F8114
873C06C90B5C61480C602FC6D1300011F01F0EB3FFC01010180EB07F03C387CB642>97
874D<913803FFE0023F13FE91B67E010315E0010F9038003FF8D93FFCEB07FC4948497E4948
875131F4849497E485B485BA24890C7FC5A5B003F6F5A705A705A007F92C8FC5BA312FFAD12
8767F7FA3123F7F6CEE0F80A26C6D141F18006C6D5C6C6D143E6C6D147E6C6D5C6D6C495A6D
877B4EB07F0010F9038C01FE06D90B5128001014AC7FCD9003F13F80203138031387CB63A>
87899 D<ED1FF8913803FFFE020FEBFF80023F14C09139FFF83FE001039038E0FFF0491380
87949010113F85BEB3FFEA2EB7FFCA26F13F0495AEE7FE0EE1F8093C7FCAEB712C0A5C601F8
880C8FCB3B3A7B612FEA52D547CD328>102 D<133FEBFFC0487F487FA2487FA66C5BA26C5B
8816C5B013FC7FC90C8FCAEEB1FF8B5FCA512017EB3B3A6B612F0A51C547CD324>105
882D<D93FF0D91FF84AB47EB591B56C010F13F8030302E0013F13FE030F6E90B6FCDB3F8090
88327F803F80F7F922A7E007FFC07E0077F000302F890283FFE0F80037FC6D9F1F0011F4948
8847EDAF3E0DAFF3E814B153CDAF7805D92C76C496D7F14FF4A5EA24A5EA34A5EB3ADB6D8F8
8850FB66CB612F8A565367BB56E>109 D<D93FF0EB1FFCB591B57E030314E0030F14F89239
8861FC07FFC92397E003FFE000302F86D7EC6EBF1F04B6D7FECF3C0ECF78092C76C7F14FF5C
887A25CA45CB3ACB6D8F807B612C0A542367CB549>I<913801FFC0023F13FE91B67E010315
888E0010F018013F8903A3FFC001FFED97FF0EB07FF49486D7F48496D7F48496D7F91C8127F
8894883488349153F001F83A2003F8349151FA2007F83A400FF1880AC007F1800A3003F5F6D
890153FA2001F5FA26C6C4B5AA26C6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB
8911FFE6DB46CB45A010790B512F0010115C0D9003F49C8FC020313E039387CB642>I<D93F
892F8EB7FF0B50107B5FC031F14C0037F14F09126F9FF0013FCDAFFF8EB3FFF000302E0010F
8937FC602806D7F92C76C7F4A824A804A6E7F85187F85A2183F85A4721380AD4E1300A44E5A
894A26118FF616E5C616E4A5B6E4A5B6F495B03E04990C7FC6FEB7FFE913AF9FE01FFF802F8
895B65A033F14C0030749C8FC030013E093CAFCB1B612F8A5414D7DB549>I<903903FFC00E
896011FEBFC1E90B6127E000315FE3907FE003FD80FF0130F4848130348481301491300127F
89790C8127EA248153EA27FA27F01F091C7FC13FCEBFF806C13FEECFFF06C14FE6F7E6C15E0
8986C816C15FC6C81C681133F010F15801301D9000F14C0EC003F030713E0150100F880167F
8996C153FA2161F7EA217C07E6D143F17807F6DEC7F0001F85C6DEB03FE9039FF801FFC486C
900B512F0D8F81F14C0D8F00791C7FC39E0007FF02B387CB634>115
901D<BB12FCA5D8000F01C0C7000F7F1800193F190F1907190319011900A21A7FA286A386A4
9021B801A0FA497C7FCA684047FB512E092B712FE737E1AE01AF89326E0007F13FE03E0C700
903077F4B02011480726C13C07313E07313F07313F8851BFC851BFE85A37313FFA91BFE61A3
9044F13FCA24F13F8A24F13F04F13E04F13C04F13804EB51200060F5BBB12F8621A804FC7FC
90519C050527BD15D>193 D<B912FEF0FFF019FE737E1AE0D8000F01C0C7001F7F06037F72
9067F726C7E867313807313C0A27313E0A37313F0A94F13E0A34F13C01B80614F1300624F5A
90706035B4E13E0063F5B92B8C7FC19F8A2F1FF8003C0C7001F13E0060113F89538007FFE73
9087E070F13C01BE07313F0851BF87313FCA27313FEA31BFFA91BFEA2611BFCA2614F13F81B
909F0614F13E0077F13C04EB51280060FEBFE00BB5A1AF01AC04FC7FC19C050527BD15D>I<
9100038EC3FFF003C0107B512F8003F013FECFF806DB712E001E316F801F7D9C00713FED9FF
911FCC77F02E0023F7F02806E13E091C87E01FC6F7F496F7F496F7F5B717F5BA249838490CA
912FCA3123EA395B5FCCB5BA24D5BA24D5B614D5B4D5B4D5B4D48C7FCEFFFF8040713E0020F
913B612804A02FCC8FC5FEFFF8091C7001F13F0040013FE94381FFF80050713E0717F717F71
91413FE727E841A807213C0A21AE0841AF0A312F8A57E007C19E0A2007E5F1AC06C5F1A806C
9156C5E6D93B512006C6C4B5B6C6C4B5BD803FC4B5B6CB44B5B6C01E0027F13C06DB40103B5
9165A011F90B648C7FC010716F8010116C0D9003F4AC8FC0200148044547AD250>199
917D<B8D88007B712FCA5D8000701F0C9003FEB80006297B5FCA261A26161A261611ABFF13F
9183FA2197E19FE19FCF001F8A2F003F0F007E0A2F00FC0A2F01F80F03F00A2187EA2604D5A
919A24D5A1707604D5AA24D5A173F95C7FC177EA25F4C5AA24C5AA24C5A4C5AA24C5AA24CC8
920FC167EA25E15F15EEDF3F0A2EDF7E015FF5E5EA293C9FC5DA25DA25D5DB8D88007B712FC
921A55E527CD167>I<B86C0103B612E0A5D8000701F0C9000FEB8000E001FCC7FC505AF20F
922F0505A505A50C8FC1AFE4F5A4F5A4F5A4F5AF13FC04F5A4FC9FCF001FC4E5A4E5A4E5A4E
9235AF07F804ECAFC4D5AEF03F84D5A4D5A4D5A4D7E4D7EEE01FF4C7F4C7F4C7F5E4C7F4C80
924EEFE7FDBF3FC809226F7F83F7F9226FFF01F7FEEC00F0480804C6C7F4B7F4B814B6D7F4B
9256D808486727F8486727F727F8486727F8487737F737F8587737F8587737F737F8588747F
92697B57EB86C90B712F8A55D527CD167>202 D<B600F04EB612F06F606F60A3D800076D4E
92749C7FCA2DADFFFF01F7FA202CF6D173EA302C76D177CA202C36D17F8A202C16DEE01F0A2
92802C06DEE03E0A36F6CEE07C0A26F6CEE0F80A26F6CEE1F00A36F6D153EA26F6D5DA26F6D
9295DA36F6D4A5AA26F6D4A5AA2706C4A5AA3706C4A5AA2706C4AC7FCA2706D133EA3706D5B
930A2706D5BA2706D485AA2706D485AA3716C485AA2716C485AA2716C48C8FCA37113BEA271
93113FCA2715BA3715BA2715BA2D91FF06F5AB600FE050FB712F0A2725AA272C7FC74527CD1
9327D>204 D<B8D88007B712FCA5D8000701F0C9003FEB8000B3AE92BAFCA503F0C9123FB3
933B1B8D88007B712FCA55E527CD167>I<93381FFF800303B512FC033FECFFC092B712F002
93407D9F80113FE021F903A80001FFF804A48C700077FDAFFF8020113F049496E7F4901C0ED
9353FFC49496F7E4990C96C7E4948707F013F854948707F4948707F48864A8248864A177F48
936864849717EA3481B804A83481BC0A44890CB6C13E0A5B51AF0AF6C1BE06E5FA46C1BC0A2
9376E5F6C1B80A36C6D4D1300A26C6D4D5AA26C626C6D4C5B6E5E6C626D6C4C5B6E5E6D6D4B
9385B6D6D4B5B6D6D4B90C7FC6D6D4B5A01016D4A13F86D01FE02075B91263FFFC0013F13C0
9396ED9F801B55A020790B648C8FC020116F8DA003F15C003074AC9FCDB001F1380545479D2
94063>I<BE12FCA5D8000701F0C9003FEB8000B3B3B3B2B8D88007B712FCA55E527CD167>I<
941B912FCF0FFE019FE737E1AE0D8000F01E0C7003F7F060313FC06007F737E7313807313C0
9427313E0851BF0A21BF885A21BFCA91BF8A3611BF0A21BE04F13C0614F13804F13004F5A06
9430713F8063F5B92B812C097C7FC19F8198003E0CBFCB3AEB712FEA54E527CD15A>I<9326
94403FFF01407047F01FF140F0307B600E0131F033F03F8133F92B700FE137F02039126C003
945FF13FF020F01F8C7EA3FC1023F01C0EC0FE391B5C80003B5FC4901FC814949814901E082
946011F498249498292CA7E4948834948835A4A83485B4885A24849187FA2485B1B3FA2485B
9471B1FA25AA21B0091CDFCA2B5FCAE7EA280A36C1A1FA36C7FA21B3F6C7F1B3E6C7F1B7E6C
9486D187C6C1AFC6E18F86C19016D6CEF03F06D7E6FEE07E06D6DEE0FC001076DEE1F806D01
949F8EE3F006D6D16FE6D01FF4B5A023F01C0EC07F8020F01FCEC3FF00203903AFFC001FFC0
950020091B6C7FC033F15FC030715F0DB007F1480040301F0C8FC505479D25F>I<003FBB12
951FEA59126C0007FEB000101FCC7ED001FD87FF0F007FF49844984498490C883A2007E86A3
952007C86A500FC1B80481A0FA6C994C7FCB3B3AD49B912C0A551527BD15C>I<B700F8033F
953B512F0A5D8001F01F0CA383FF0006DF10FC06F606D6D171F7F6F95C7FC6D616D6D173E70
954167E806E6D167C7016FC6E607015016E7F6E607015036E6D5E6E1707826E606F6D140F71
9555D6F161F6F7F7192C8FC6F5E71143E6F6D147E8171147C6F6D14FC6F5EF08001827001C0
9565BF0E003705D70EBF00718F8705DF0FC0F7001FE5B70141F18FF70029FC9FC7113BF19FE
95783836183715BA283DA03805DDA0FF07FDA3FF86D5B4A7E6F6E5A02FF153F6F5D72CAFC60
958187EA24B5C4D5A6E48495A4B130FDA3FE0495A4BEBFFC091261FF80790CBFC6EB55A0203
9595C6E14F06E6C1380DB0FFCCCFC5C537DD163>I<92B812FCA592C701FCCAFCA74BB612FE
96092B812FC020FEFFFC0027F18F849B500E0D9FC1F13FE010FD9FC000200EBFFC04901E004
9611F7F017F0180040713F84948C703017F4849717F4849727E484972138048497213C0A248
962497213E0A248497213F0A2481CF8A291C882A2B51BFCAB6C1CF8A26E60A26C1CF0A26C6D
9634E13E0A26C6D4E13C0A26C6D4E13806C6D4E13006C6D4E5A6C6D4D5B6D6C6C04075B011F
96401E0041F13E06D01FC93B55A0101D9FFE0021F49C7FC6D6C90B812F8020F18C0020005FC
965C8FC03014BC9FC92C701FCCAFCAA92B812FCA55E5279D16D>I<EC3FFE0107B512E0011F
96614FC017F14FF2701FFC00F13C02703FE00037F486C01007F6E6D7E486D80707EA2707EA3
967707F6C5B6C90C7FC6C5AC9FCA60307B5FC0203B6FC147F0103B7FC011FEBF00F017F1300
968EBFFFC000313F04813C0485B4890C7FC5A5B485AF081F012FF5BA35EA26D5C127F6D5C00
9693F03F713C36DD901E314E06CD9C00714FF00079026F01F8114C06C90B5C61480C602FC6D
9701300011F01F0EB3FFC01010180EB07F03C387CB642>224 D<18FC170F17FF163F030FB5
971FC4AB6FC021F5D91B7FC01035E130F495E49168090B8C7FC17F04803E0C8FC4802C0C9FC
9724801F8CAFC14E048138049CBFC5B485A5B5B123F5B5BA23A7F0001FFC0023F13FE91B67E
973D87E0315E0010F018013F8903A3FFC001FFE267C7FF0EB07FF49486D7F00FD496D7FB548
9746D7F91C8127F848449153F84A28449151FA284A41980AC007F1800A3003F5F6D153FA200
9751F5FA26C6C4B5AA26C6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB1FFE6DB4
9766CB45A010790B512F0010115C0D9003F49C8FC020313E039547CD242>I<B712FEEEFFF0
97717FC17FFC69026F8001F7F040713E004017FA2707FA2717EA64D5AA24C5B4C5B4C5B041F
97890C7FC91B612FC17F05F17FC9139F80007FF040113C07013F0717E717E84171F84A21980
979A61900A25F604D5A17FF04035B040F5BB912C095C7FC17FC17C039357CB442>I<B9FCA4
980C69038F8001F160382707EA283A2EF1F80A4170FA694C7FCB3AAB612FEA431357CB439>
981I<91B912F8A4DA00FCC7EBF8005DAE5DA21401A55D1403A35D1407A34A5AA24AC8FCA25C
982143E5CA25C1301495A495A495AEB3F8049C9FC003FBA12FCA491CAFC01F8171FD87FE0EF
98307FE49170349170190CCFC1A7E127EA2007C193EA400FC193F48191FA5484880B449>I<
984913807FF80027F13F849B512FE01076E7E011F010313E0903A3FFC007FF0D97FF06D7E49
985486D7E4849130F48496D7E48824890C77E1880485A82003F17C0A3485A18E082A212FFA2
98690B8FCA401FCCAFCA6127FA37F123FA2EF03E06C7E17076C17C06C6D140F18806C6D141F
9876C6DEC3F006C6D147ED97FFC495AD91FFFEB07F86D9038E03FF0010390B512C001005D02
9883F01FCC7FC020113E033387CB63C>I<001FB50103B600E090387FFFFCA426007FFCD900
9890301E0C7001F90C7FCD90FF8F10FF8D903FCF11FE06D6C4F5A6D6C4F5ADA7FC04D48C8FC
990DA1FE0EF03FC6E6C4D5ADA07FCEF1FF0DA01FEEF3FC06E6C4D5ADB7F804CC9FCDB1FE0ED
99103FCDB0FF04B5ADB07F84B5ADB03FEED3FE004FF157F4B01834A7E4B01E301E37F4B01F3
99201E77F4B01FB01EF7F94B7FC4B834B486C023F7F4A496C496C7F4AD9F80FD9F80F7F4C6C
993497E4A6E01E0804A01E06F7F4A01C06F7F4A01806F7F0400167F4A854A48717F4949717F
9944949717F4949717FA24949717F4949717F4949717F4990C7717EA24948737F00036D4F13
995E0B6D8E003B6D8E003B61280A469357EB46E>I<0070EBFFFED87C0FEBFFF0D87E3F14FE
996007FB77EDA801F13E09026F800037F4901007F01C06E7E5B707E90C8FC007E6F7EA3127C
997A2C9FC4C5AA24C5A5F4B485A4B13C0030F5B49B500FCC7FC4914F0A216FE90C7381FFFC0
99803037F030013F8707E707E707EA2701380A218C0A412F8A36C1780007C5D007E17005E6C
9994B5A6C6C4A5A01E001035BD80FFE011F5B0003B712C0C693C7FC013F14F8010391C8FC32
1000387DB63A>I<B6D8F807B612C0A4C601F8C70007EBC000A25F5FA25F5FA294B5FCEE01F7
1001A2EE03E7EE07C7A2EE0F87EE1F07163F163E167C16FC16F8ED01F0150316E0ED07C0150F
10021680ED1F005D153E5D5DA2ECF9F0ECFBE0A2ECFFC05DA292C7FC5CA25C5CA2B6D8F807B6
100312C0A442357DB449>I<023E141FDAFF80EB7FC0496D497E496D487FA2496D487FA54B7E
10046D5E4B7E6D496D5AA26D90B65A023F92C8FC6E5C020714F8020114E09126001FFEC9FC92
1005CBFCA4B6D8F807B612C0A4C601F8C70007EBC000A25F5FA25F5FA294B5FCEE01F7A2EE03
1006E7EE07C7A2EE0F87EE1F07163F163E167C16FC16F8ED01F0150316E0ED07C0150F1680ED
10071F005D153E5D5DA2ECF9F0ECFBE0A2ECFFC05DA292C7FC5CA25C5CA2B6D8F807B612C0A4
1008424E7DCD49>I<B600F8011FB5FCA4C601F8C7000713C07148C7FCEF07F84D5A4D5AEF7F
1009C04DC8FC4C5AEE07FCEE0FF04C5AEE7FC04CC9FC4B5A4B5AED0FF8151F4B7EEDFFFE02F9
10107F02FB8091B6FC8303CF7F03877FDAFE037F4A7E02F8806F7F707E707F8284707F707F70
10117F707FA2707F717E717F717FA2717F4D13F8B600F890B612E0A443357DB449>I<0103B9
101212E0A490280003F00003EBE0005DB3A914075DA4EA0F80EA1FC0383FE00FEA7FF0D8FFF8
10135BA2141FA292C7FC5CEBF07E387FE0FED9FFFC0103B612E06C5B6C5B6C5B0003018090CA
1014FCD80030CCFC43377EB449>I<B500FC93387FFFFE6E93B5FC8060C6F1FE0081F003DF01
1015FB7FF0079F01F97FF00F1F01F87FA2181E6E7E183C6E7E18786E7E18F0A26E7EEF01E06E
10161380EF03C06E13C0EF07806E13E0EF0F00A26E13F0171EED7FF85FED3FFC5FED1FFEA25F
1017ED0FFF5F815F815FA28194C7FCD807FF7FB500F849011FB512FE167E167C163C4F357CB4
101858>I<B6D8F807B612C0A4C601F8C70007EBC000B291B8FCA402F8C71207B3A5B6D8F807
1019B612C0A442357DB449>I<913801FFC0023F13FE91B67E010315E0010F018013F8903A3F
1020FC001FFED97FF0EB07FF49486D7F48496D7F48496D7F91C8127F4883488349153F001F83
1021A2003F8349151FA2007F83A400FF1880AC007F1800A3003F5F6D153FA2001F5FA26C6C4B
10225AA26C6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB1FFE6DB46CB45A010790
1023B512F0010115C0D9003F49C8FC020313E039387CB642>I<BB12C0A4C601F8C70007EBC0
102400B3B3A9B6D8F807B612C0A442357DB449>I<D93FF8EB7FF0B50107B5FC031F14C0037F
102514F09126F9FF0013FCDAFFF8EB3FFF000302E0010F7FC602806D7F92C76C7F4A824A804A
10266E7F85187F85A2183F85A4721380AD4E1300A44E5AA26118FF616E5C616E4A5B6E4A5B6F
1027495B03E04990C7FC6FEB7FFE913AF9FE01FFF802F8B65A033F14C0030749C8FC030013E0
102893CAFCB1B612F8A5414D7DB549>I<913803FFE0023F13FE91B67E010315E0010F903800
10293FF8D93FFCEB07FC4948497E4948131F4849497E485B485BA24890C7FC5A5B003F6F5A70
10305A705A007F92C8FC5BA312FFAD127F7FA3123F7F6CEE0F80A26C6D141F18006C6D5C6C6D
1031143E6C6D147E6C6D5C6D6C495A6DB4EB07F0010F9038C01FE06D90B5128001014AC7FCD9
1032003F13F80203138031387CB63A>I<007FB812FCA4D9F807EBC03F01C015070180150301
1033001501007E1600A2007C177C00FC177EA348173EA7C71600B3AA017FB612FCA437357DB4
10343E>I<B600E090381FFFFCA4000101F8C700011380943800FE006C177C6E15FC017F5E6E
10351401013F5E8017036D6D5C17076D5E6F130F6D5E6F131F6D93C7FC815F6D6D133E177E6D
1036157C6F13FC027F5C811601DA3FFF5B16036E5C16876E5C16CF6E5C16EF16FF6E91C8FCA2
10376E5BA26E5BA26F5AA36F5AA26F5AA26F5AA35E151F93C9FC5D153E157ED81FC0137C487E
1038486C13FC486C5B14015D4A5A14074A5A6C48485A4948CAFC495A383F81FC6CB45A6C5B00
10390313C0C648CBFC3E4D7DB445>I<EF3FF893B5FCA516031600B3A4912603FF80EC0FFE02
10403F01F091387FFFE091B500FC01F9B512F801036E01FB14FE010FD9C03F903AFFE01FFF80
1041013FD9000FDA800713E0D97FFC6DDA00017F49486D496D7F48496D496E7E48496D496E7E
10424849727E481C804A84481CC091C882481CE0A248487313F0A448487313F8AD6C6C4F13F0
1043A46C6C4F13E0A26C1CC06E606C1C806E606C1C006C6D496D4A5A6C6D4E5A6C6D496D4A5A
10446D6C496D495B6DB449DA80075B010FD9C07FDAF01F13800103D9FFFE01FBB548C7FC0100
104502F801F814F8023F496E13E002010180DA0FFCC8FC91C891CAFCB193B612F8A55D6A7CD2
104666>I<B6D8F001B512FCA4C649C7381FFE00017FED0FF06D6C5D6D6D495A606D6D49C7FC
10476D6D137E6D6D13FE6D6D485A4C5A6D01FC5B6E6C485A6E6C485A161F6EEBBF806E01FFC8
1048FC6E5B5E6E5B806E7F6F7EA26F7E834B7F92B5FC83DA01FB7FDA03F17FDA07F07F4A5A4A
1049486C7E4B6C7E4A486C7F147E02FE6D7F49486D7F49486D7F4A8149487F49486D7F011F6F
10507E013F6F7E48B47EB500FE0107B6FCA440357EB445>I<B6D8F807B612C0A4C601F8C700
105107EBC000B3B3A9BB12E0A4CB12071800F13FF0191F190F19071903A31901A41AF81900A5
105245487DB449>I<B6D8F807B612C0A4C601F8C70007EBC000B1137F80013F153F6E91B5FC
10536D6C130F010790B512F7010115876D6CEBFC07020713C091C8FCB30407B612C0A442357D
1054B449>I<B6D8F81FB60003B612E0A4C601F8C7001F90C70003EBE000B3B3A9BF12E0A463
1055357CB46C>I<B6D8F81FB60003B612E0A4C601F8C7001F90C70003EBE000B3B3A9BF12F0
1056A4CF1203F4007FF51FF81D0F1D071D031D01A31D00A41EFC1E7CA566487CB46C>I<B600
1057F8037FB512FCA4C601F8CA387FFC00B291B512F8EEFFF017FE717E9126F8001F13E00407
10587F04017F707F717EA2717EA2711380A74D1300A24D5AA24D5A4C5B04075B041F5BB9D8C0
10597FB512FC180017F8178056357CB45F>251 D<B612F8A4C601F8CAFCB291B512F8EEFFF0
106017FE717E9126F8001F13E004077F04017F707F717EA2717EA2711380A74D1300A24D5AA2
10614D5A4C5B04075B041F5BB95A95C7FC17F8178039357CB442>I<4AB712FE147F0103B8FC
1062130F013F903AC0003FFE004948C7FCEBFFF8485B5A5C5AA67E807E807EEB7FFE90381FFF
1063C0010790B6FC1301EB001F1401EEFC3F4A13F85C4A13F016E04A13C05C4A1380160091B5
1064FC495B495B5D5B495B495BA2495B495B90B5C7FC5A1207B6D8F83FB512FEA43F357EB445
1065>255 D E
1066%EndDVIPSBitmapFont
1067%DVIPSBitmapFont: Fi larm1000 10 86
1068/Fi 86 256 df<486C1360000314E039070001C0000EEB038048EB070000181306003813
10690E0030130C0070131C00601318A200E01338481330A400CEEB338039FF803FE001C013F0
1070A3007F131FA2393F800FE0390E0003801C1981B91C>16 D<001C1307007FEB1FC039FF80
10713FE0A201C013F0A3007F131F001CEB073000001300A400011470491360A2000314E090C7
107212C048130100061480000E130348EB070048130E485B006013181C1980B91C>I<B81280
1073A2290280962A>21 D<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA2
107412075B120F90C7FCA25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F
10751203A26C7EA26C7E1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>40
1076D<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7F
1077A21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A2
10785BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527CBD20>I<121C127FEAFF80A213C0
1079A3127F121C1200A412011380A2120313005A1206120E5A5A5A12600A19798817>44
1080D<B512FCA516057F941C>I<121C127FEAFF80A5EA7F00121C0909798817>I<1506A2150E
1081150CA2151C151815381530A215701560A215E015C0A214011580A2140315005C1406A214
10820E140CA2141C1418A214381430A21470146014E05CA213015CA2130391C7FCA25B1306A2
1083130E130C131C1318A213381330A213701360A213E05BA212015B120390C8FCA25A1206A2
1084120E120CA2121C1218A21238123012701260A212E05AA21F537BBD2A>I<EB01C0130313
108507131F13FFB5FCA2131F1200B3B3A7497E007FB512F0A31C3779B62A>49
1086D<EB0FF0EB7FFE48B57E3903E03FE0390F000FF0001E6D7E001C6D7E486D7E5A6E7E1260
108712FE6CEC7F807FA56CC7FC121CC8FCEDFF00A25D14015D14035D4A5A4A5A5D4A5A4AC7FC
1088147E5C495A14E0495A495A49C8FC011EEB01805B5B49130348481400485A485A90C75A48
1089B6FC5A5A485CB6FCA321377CB62A>I<EB07F8EB3FFF90B512C03901F80FF03903C007F8
109048486C7E390E0001FEEA0F80391FE000FF7FA56C5A6C5AC7485AA25D14035D4A5A5DEC0F
109180027FC7FCEB1FFCECFF809038000FE06E7EEC01FC816E7EED7F80A216C0A2153F16E0A2
1092121EEA7F80A2487EA316C0157F491480007EC7FC0070ECFF006C495A121E390F8003F839
109307F00FF00001B512C06C6C90C7FCEB0FF823397DB62A>I<1538A2157815F8A214011403
10941407A2140F141F141B14331473146314C313011483EB030313071306130C131C13181330
10951370136013C01201EA038013005A120E120C5A123812305A12E0B712F8A3C73803F800AA
10964A7E0103B512F8A325387EB72A>I<0006140CD80780133C9038F003F890B5FC5D5D1580
109792C7FC14FC38067FE090C9FCAAEB07F8EB1FFE9038780F809038E007E03907C003F0496C
10987E130000066D7E81C8FC8181A21680A4121C127F5A7FA390C713005D12FC00605C12704A
10995A6C5C6C1303001E495A6C6C485A3907E03F800001B5C7FC38007FFCEB1FE021397CB62A
1100>I<EC3FC0903801FFF0010713FC90380FE03E90383F800790387E001F49EB3F80484813
11017F485A12075B000FEC3F0049131E001F91C7FC5B123FA3127F90C9FCEB01FC903807FF80
110239FF1E07E090383801F0496C7E01607F01E0137E497F16805BED1FC0A390C713E0A57EA4
11037F123F16C0A2001FEC3F807F000F15006D5B000714FE6C6C5B6C6C485A3900FE07F09038
11047FFFC0011F90C7FCEB03FC23397DB62A>I<EB03F8EB1FFF017F13C03901FC07E048486C
11057E3907E001F8000F6D7E4848137E5B003F80A248C71380A25AED1FC0A516E0A56C143FA3
11066C7E157F121F6C6C13FF6C6C13DF000313013901F0039F3900FC0F1FD93FFC13C0EB07F0
110790C7FCA2153F1680A216005D120F486C137E486C5BA24A5A4A5A49485A381F000F001CEB
11081F80260F807FC7FC3807FFFE000113F838003FC023397DB62A>57
1109D<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00121C092479A317>
1110I<B712C016F816FE000190398001FF806C90C7EA3FE0EE0FF0EE03F8707E707E177FA2EF
11113F8018C0171F18E0170F18F0A3EF07F8A418FCAC18F8A4EF0FF0A218E0A2171F18C0EF3F
111280A2EF7F0017FE4C5A4C5AEE0FF0EE3FE0486DEBFF80B8C7FC16F816C036397DB83F>68
1113D<B812FEA3000190388000076C90C8FC173F838383A383A31880170116C0A394C7FCA315
111401A21503150F91B5FCA3EC000F15031501A21500A21860A318E093C712C0A41701A3EF03
111580A21707A2170F173F177F486D903807FF00B9FCA333397EB838>I<DBFF8013C0020FEB
1116F001023F13FC9139FF803F03903A03FC000787D90FF0EB03CF4948EB00EF4948147F4948
1117143F49C8121F485A4848150F48481507A248481503A2485A1701123F5B007F1600A44848
11181600AB93B6FCA26C7E9338007FE0EF3FC0A2123F7F121FA26C7EA26C7EA26C7E6C7E6C6C
1119157F6D7E6D6C14FF6D6C14EFD90FF8EB03C7D903FEEB0783903A00FFC03F0191393FFFFC
112000020F01F0130002001380383D7CBA41>71 D<B648B512FEA30001902680000313006C90
1121C76C5AB3A491B6FCA391C71201B3A6486D497EB648B512FEA337397DB83E>I<B612E0A3
1122000101C0C8FC6C90C9FCB3AD1718A517381730A31770A317F0A216011603160FEE1FE048
11236D13FFB8FCA32D397DB834>76 D<B5933807FFF86E5DA20001F0FC002600DFC0ED1BF8A2
1124D9CFE01533A3D9C7F01563A3D9C3F815C3A2D9C1FCEC0183A3D9C0FEEC0303A2027F1406
1125A36E6C130CA36E6C1318A26E6C1330A36E6C1360A26E6C13C0A3913901FC0180A3913900
1126FE0300A2ED7F06A3ED3F8CA2ED1FD8A3ED0FF0A3486C6D5A487ED80FFC6D48497EB500C0
11270203B512F8A2ED018045397DB84C>I<B5913807FFFE8080C69238007FE06EEC1F80D9DF
1128F0EC0F001706EBCFF8EBC7FCA2EBC3FEEBC1FFA201C07F6E7EA26E7E6E7E81140F6E7E81
112914036E7E168080ED7FC016E0153FED1FF0ED0FF8A2ED07FCED03FEA2ED01FF6F1386A2EE
11307FC6EE3FE6A2EE1FF6EE0FFEA216071603A216011600A2177E486C153E487ED80FFC151E
1131B500C0140EA2170637397DB83E>I<B6903807FFFEA3000101809038007FE06C90C8EA1F
113280EF0F001706B3B2170E6D150C80171C133F17186D6C14385F6D6C14F06D6C5C6D6C495A
11336D6CEB07806D6C49C7FC91387F807E91381FFFF8020713E09138007F80373B7DB83E>85
1134D<007FB590383FFFFCA3C601F801071380D97FE0D903FCC7FC013FEC01F06D6C5C5F6D6C
11355C6D6C13034CC8FC6D6C1306160E6D6C5B6DEB8018163891387FC0306E6C5A16E06E6C5A
113691380FF18015FB6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15DF9138019FF09138038FF8
1137150F91380607FC91380E03FE140C4A6C7EEC38000230804A6D7E14E04A6D7E49486D7E13
11380391C76C7E01066E7E130E010C6E7E011C1401013C8101FE822607FF80010713E0B500E0
1139013FEBFF80A339397EB83E>88 D<EB1FE0EBFFFC3803E03F3907000F80390F8007E0486C
11406C7E13E06E7EA26E7E6C5A6C5AC8FCA4147FEB07FFEB3FE0EBFE00EA03F8EA0FF0EA1FC0
1141123F485A90C7FC160C12FEA31401A26C13036CEB077C903980063E18383FC01E3A0FE078
11421FF03A03FFF00FE03A007F8007C026277DA52A>97 D<EB03FC90381FFF8090387E03E039
114301F80070484813F83907E001FC380FC003A2EA1F80123F90380001F848EB00F01500A212
11447E12FEAA127E127FA26C14067F001F140E6D130C000F141C6C6C13386C6C13706C6C13E0
114539007C07C090381FFF00EB07F81F277DA525>99 D<ED0FC0EC03FFA3EC003F150FB0EB03
1146F8EB1FFF90387E078F9038F801EF3903F0007F4848133F4848131FA24848130F123F90C7
1147FC5AA2127E12FEAA127E127FA27EA26C6C131FA26C6C133F6C6C137F6C6CEBEFF03A01F8
114801CFFF39007C078F90381FFE0FD907F813C0283B7DB92E>I<EB07F8EB1FFF90387C0FC0
11493901F803E03903F001F0D807E013F8380FC0004848137CA248C7127E153E5A153F127E12
1150FEA3B7FCA248C8FCA5127EA2127FA26C14037F001F14076C6C13060007140E6D131CD801
1151F013386C6C137090387E03E090381FFF80903803FC0020277EA525>I<147E903803FF80
115290380FC1E0EB1F8790383F0FF0137EA213FCA23901F803C091C7FCADB512FCA3D801F8C7
1153FCB3AB487E387FFFF8A31C3B7FBA19>I<ED03F090390FF00FF890393FFC3C3C9039F81F
1154707C3901F00FE03903E007C03A07C003E010000FECF000A248486C7EA86C6C485AA20007
11555C6C6C485A6D485A6D48C7FC38073FFC38060FF0000EC9FCA4120FA213C06CB512C015F8
11566C14FE6CECFF804815C03A0F80007FE048C7EA0FF0003E140348140116F8481400A56C14
115701007C15F06CEC03E0003F1407D80F80EB0F80D807E0EB3F003901FC01FC39007FFFF001
11580790C7FC26387EA52A>I<EA0380EA0FE0487EA56C5AEA0380C8FCAAEA03F012FFA31207
11591203B3AA487EB512C0A312387EB717>105 D<EA03F012FFA3120F1203B3B3AD487EB512
1160C0A3123A7EB917>108 D<2703F00FF0EB1FE000FFD93FFCEB7FF8913AF03F01E07E903B
1161F1C01F83803F3D0FF3800FC7001F802603F70013CE01FE14DC49D907F8EB0FC0A2495CA3
1162495CB3A3486C496CEB1FE0B500C1B50083B5FCA340257EA445>I<EB03FE90380FFF8090
1163383E03E09038F800F84848137C48487F48487F4848EB0F80001F15C090C712074815E0A2
1164007EEC03F0A400FE15F8A9007E15F0A2007F14076C15E0A26C6CEB0FC0000F15806D131F
11656C6CEB3F006C6C137EC66C13F890387E03F090381FFFC0D903FEC7FC25277EA52A>111
1166D<3903F01FE000FFEB7FF89038F1E07E9039F3801F803A0FF7000FC0D803FEEB07E049EB
116703F04914F849130116FC150016FEA3167FAA16FEA3ED01FCA26DEB03F816F06D13076DEB
11680FE001F614C09039F7803F009038F1E07E9038F0FFF8EC1FC091C8FCAB487EB512C0A328
1169357EA42E>I<D903F813C090381FFE0190387E07819038FC01C33903F000E30007147748
117048133749133F001F141F485A150F48C7FCA312FEAA127FA37E6D131F121F6D133F120F6C
11716C137F6C6C13EF3901F801CF39007E078F90381FFE0FEB07F890C7FCABED1FE00203B5FC
1172A328357DA42C>I<3807E01F00FFEB7FC09038E1E3E09038E387F0380FE707EA03E613EE
11739038EC03E09038FC0080491300A45BB3A2487EB512F0A31C257EA421>I<EBFF03000313
1174E7380F80FF381E003F487F487F00707F12F0A2807EA27EB490C7FCEA7FE013FF6C13E06C
117513F86C7F00037FC67F01071380EB007F141F00C0EB0FC01407A26C1303A37E15806C1307
11767EEC0F00B4131E38F3C07C38E1FFF038C03F801A277DA521>I<1318A51338A31378A313
1177F8120112031207001FB5FCB6FCA2D801F8C7FCB215C0A93800FC011580EB7C03017E1300
11786D5AEB0FFEEB01F81A347FB220>I<D803F0EB07E000FFEB01FFA3000FEB001F00031407
1179B3A4150FA3151F12016D133F0000EC77F86D9038E7FF8090383F03C790381FFF87903A03
1180FC07E00029267EA42E>I<B538807FFFA33A03FE003FF00001EC1F80000092C7FC017E13
11811C6D13186D6C5AECC070010F5B6D6C5AECF180EB03FB6DB4C8FC6D5AA2147F804A7E8114
1182CF903801C7E090380383F090380703F8EB0601496C7E011C137E49137F01787F496D7E48
11836C80000FEC3FF0D8FFFE90B51280A329247FA32C>120 D<B538803FFEA33A0FF8000FF0
11846C48EB07C00003EC03806C7E16007F00001406A2017E5BA2137F6D5BA26D6C5AA2ECC070
1185010F1360A26D6C5AA214F101035BA2D901FBC7FCA214FF6D5AA2147CA31438A21430A214
1186701460A25CA2EA7C0100FE5B130391C8FC1306EAFC0EEA701C6C5AEA1FF0EA0FC027357E
1187A32C>I<B712E016FC16FF0001903980007FC06C90C7EA1FE0707E707E707EA2707EA283
1188A75F16035F4C5A4C5A4C5A4C5AEEFF8091B500FCC7FCA291C7EA7F80EE1FE0EE07F0707E
1189707E83707EA21880177F18C0A7188017FFA24C13005F16034C5AEE1FF8486DEB7FF0B812
1190C094C7FC16F832397DB83B>194 D<0103B812F8A3903C0003C0000FFC006E486D5AAD92
1191C7FC5CA81406A55CA45CA35CA35CA25CA2495A130391C8FC1306130E5B5B137801F84B7E
1192003FB912FCA301E0C9120790CBFC007C183E0078181EA20070180EA200601806A400E018
119307481803A4404980B841>196 D<B812FEA3000190388000076C90C8FC173F838383A383
1194A31880170116C0A394C7FCA31501A21503150F91B5FCA3EC000F15031501A21500A21860
1195A318E093C712C0A41701A3EF0380A21707A2170F173F177F486D903807FF00B9FCA33339
11967EB838>I<0060EBFFC0D8700F13F8D8783F13FE3A7C7F00FF80D87FF0EB3FC001C06D7E
1197496D7E90C76C7E007E81007C6E7E12781501007081A41260A3C85B15035E15075E4B5A4B
11985AED3F8003FEC7FC903807FFF85B90380001FF9138003FC0ED0FF06F7E6F7E6F7E6F7E17
119980EE7FC0A2EE3FE0A212C0A57E0060ED7FC0A2007016806C15FF4B13006C5D6C4A5A6C6C
1200EB0FF8D803E0495AD801FEEBFFC0D8007FB5C7FC011F13FC010113C02B3D7CBA33>199
1201D<B649B5FCA3000101809038007FF06C90C8EA3F80053EC7FC173C17385F5F4C5A4C5A4C
1202C8FC160E5E5E5E5E4B5AED0780030EC9FC5D153E157E15FF5C4A7F4A6C7E140E4A6C7E4A
12036C7E14704A6C7E4A6C7E14804A6C7E6F7EA26F7F707EA2707E707EA2707EA2707E707EA2
1204707E707F8484486D497FB6011FEBFF80A339397DB841>202 D<B6013FB512C0A3000101
1205809039007FE0006C90C86C5AB3A491B7FCA391C8123FB3A6486D4A7EB6013FB512C0A33A
1206397DB841>205 D<EC03FF021F13E09138FE01FC903901F8007ED907E0EB1F8049486D7E
1207D93F80EB07F049C76C7E01FE6E7E48486E7E49157E0003167F4848ED3F80A24848ED1FC0
1208A2001F17E049150F003F17F0A3007F17F8491507A300FF17FCAC007F17F86D150FA3003F
120917F0A26C6CED1FE0A36C6CED3FC0000717806D157F000317006C6C15FEA26C6C4A5A017F
12104A5A6D6C495A6D6C495AD907E0EB1F80D903F8017FC7FC903900FE01FC91381FFFE00203
121190C8FC363D7BBA41>I<BA12C0A300010180C7387FE0006C90C86C5AB3B3AD486D4A7EB6
1212013FB512C0A33A397DB841>I<913A01FF800180020FEBE003027F13F8903A01FF807E07
1213903A03FC000F0FD90FF0EB039F4948EB01DFD93F80EB00FF49C8127F01FE153F12014848
1214151F4848150FA248481507A2485A1703123F5B007F1601A35B00FF93C7FCAD127F6DED01
121580A3123F7F001F160318006C7E5F6C7E17066C6C150E6C6C5D00001618017F15386D6C5C
1216D91FE05C6D6CEB03C0D903FCEB0F80902701FF803FC7FC9039007FFFFC020F13F0020113
121780313D7BBA3C>209 D<49B612E0A3D9000101E0C8FC9138007F80A491381FFFFE0103B6
121812F0903A1FFC7F8FFED97FC0903880FF802601FF00EC3FE0D803FCED0FF048486F7E4848
12196F7E48486F7EA248486F7EA2007F188049167FA200FF18C0A9007F1880A26D16FF003F18
122000A26C6C4B5AA26C6C4B5A6C6C4B5A6C6C4B5A6CB4ED3FE026007FC0ECFF80D91FFCD98F
1221FEC7FC0103B612F0D9001F49C8FC9138007F80A6913801FFE049B612E0A33A397BB845>
1222212 D<EB1FE0EBFFFC3803E03F3907000F80390F8007E0486C6C7E13E06E7EA26E7E6C5A
12236C5AC8FCA4147FEB07FFEB3FE0EBFE00EA03F8EA0FF0EA1FC0123F485A90C7FC160C12FE
1224A31401A26C13036CEB077C903980063E18383FC01E3A0FE0781FF03A03FFF00FE03A007F
12258007C026277DA52A>224 D<16C01507153FEC07FF027F13800103B51200010F13FC013F
122613F0D9FFFEC7FC4813C0D803FCC8FCEA07F0EA0FC05B48C9FC121E5AA212381278387003
1227FE90380FFF8090383E03E03960F800F8D861F0137CD8E3E07FD8E7C07FD8EF80EB0F8000
1228DF15C090C71207B415E0A248EC03F0A416F8A9007E15F0A2007F14076C15E0A26C6CEB0F
1229C0000F15806D131F6C6CEB3F006C6C137EC66C13F890387E03F090381FFFC0D903FEC7FC
1230253B7EB92A>I<B67E15F03907F801FC3903F0007E81ED1F8016C0A5ED3F80160015FEEC
123103F890B512C0A29038F000F8153E81ED0FC016E0150716F0A516E0150F16C0151FED7F80
1232486CEBFE00B65A15E024247EA32A>I<B612FEA23807F8006C48131E150EA215061507A2
12331503A51500B3EA07FCB512F0A220247EA325>I<013FB612E0A2903A01E003FC006D486C
12345AAC14801301A5EB0300A31306A35B131C13185B13F0485A00074A7E007FB712F0A290C8
12351207007C15010070ED0070A20060163000E01638A3481618A52D3180A32E>I<EB07F8EB
12361FFF90387C0FC03901F803E03903F001F0D807E013F8380FC0004848137CA248C7127E15
12373E5A153F127E12FEA3B7FCA248C8FCA5127EA2127FA26C14037F001F14076C6C13060007
1238140E6D131CD801F013386C6C137090387E03E090381FFF80903803FC0020277EA525>I<
1239D83FFF90B538C03FFFA2D807FE903A07F8001FF8D801FC6D48EB0FE0D8007C1780011E04
12401EC7FC6D5ED907805DD901C015E0D900E04A5A02704A5A023C020FC8FC020E141C020F14
12413CDA1F83137E91393FE3F1FFEDF3F3913A7F3BF73F80913AFE1FFE1FC049486C486C7EED
124203F0D903F86E7ED907F06E7ED90FE06E7EA2D91FC06E7ED93F80157FD97F006F7E017E16
12431F01FE834848707E000384000784000F4A6C80B590B539C03FFFC0A242247FA345>I<38
1244C07FF000E3B5FC39FF803FC039FC000FE048EB03F04814F848130115FC5AA2C7FCA215F8
1245EC03F0EC07E0EC0FC0EC3F00EB7FF8809038003F80EC0FE0EC03F0EC01F815FC140015FE
1246A312C0A315FC6C1301006014F80070EB03F0003CEB0FE0000FEB3FC00003B51200C613F0
12471F277EA525>I<B500C1B51280A23B07F8000FF0006C486D5AA4150F151F153F157715E7
124815C71401EC0387EC0707140E140C14181438147014E0EBF1C0148013F3EBF70013FE5B5B
12495BA4486C497EB500C1B51280A229247EA32E>I<011E133C017F137F6E5A01FF80A46D48
12506CC7FC013E133E90381FFFFC010713F00100138091C9FCA4B500C1B51280A23B07F8000F
1251F0006C486D5AA4150F151F153F157715E715C71401EC0387EC0707140E140C1418143814
12527014E0EBF1C0148013F3EBF70013FE5B5B5BA4486C497EB500C1B51280A229347EB32E>
1253I<B538C03FFFA23A07F8001FF86C48EB0FE01680031EC7FC5D5D15E04A5A4A5A020FC8FC
1254141C143C147EEBF1FF13F39038F73F809038FE1FC0496C7E13F06E7E6E7E6E7EA26E7E15
12557F6F7E151F826F7E8282486C80B539C03FFFC0A22A247EA32E>I<90B712C0A2903A03C0
125607F8006D486C5AAF13031400A65B13061238127C12FE130E130C131CD8F818497ED87038
125790B512C0EA3FF0D81FC090C8FC2A257FA32E>I<D8FFF0EC0FFF6D5C000716E0000316C0
1258017C1437A26D1467A36D14C7A290390F800187A3903907C00307A2903803E006A3903801
1259F00CA2903800F818A3EC7C30A2EC3E60A3EC1FC0A23907800F80EA0FC0D81FE0EC0FE027
1260FFFC0701B5FCA230247DA337>I<B500C1B51280A23B07F8000FF0006C486D5AAC90B6FC
1261A29038F00007B0486C497EB500C1B51280A229247EA32E>I<EB03FE90380FFF8090383E
126203E09038F800F84848137C48487F48487F4848EB0F80001F15C090C712074815E0A2007E
1263EC03F0A400FE15F8A9007E15F0A2007F14076C15E0A26C6CEB0FC0000F15806D131F6C6C
1264EB3F006C6C137EC66C13F890387E03F090381FFFC0D903FEC7FC25277EA52A>I<B81280
1265A23B07F8000FF0006C486D5AB3AC486C497EB500C1B51280A229247EA32E>I<3903F01F
1266E000FFEB7FF89038F1E07E9039F3801F803A0FF7000FC0D803FEEB07E049EB03F04914F8
126749130116FC150016FEA3167FAA16FEA3ED01FCA26DEB03F816F06D13076DEB0FE001F614
1268C09039F7803F009038F1E07E9038F0FFF8EC1FC091C8FCAB487EB512C0A328357EA42E>
1269I<EB03FC90381FFF8090387E03E03901F80070484813F83907E001FC380FC003A2EA1F80
1270123F90380001F848EB00F01500A2127E12FEAA127E127FA26C14067F001F140E6D130C00
12710F141C6C6C13386C6C13706C6C13E039007C07C090381FFF00EB07F81F277DA525>I<00
12727FB612E0A2397E03FC07397801F8010070140000601560A200E01570A200C01530A50000
12731500B3EB07FE0003B512FCA224247EA329>I<B538803FFEA23A0FF8000FF86C48EB07E0
12740003EC03C016806C7E16007F00001406A2017E5BA2137F6D5BA26D6C5AA2ECC070010F13
127560A26D6C5AA214F101035BA2D901FBC7FCA214FF6D5AA2147CA31438A21430A214701460
1276A25CA2EA7C0100FE5B130391C8FC1306EAFC0EEA701C6C5AEA1FF0EA0FC027357EA32C>
1277I<153FEC0FFFA31400153FB0D903F8EB07F0D90FFEEB1FFC903B7F07BF783F80903BFC01
1278FFE00FC048486C496C7ED807F090397F8003F848486F7E496DC7FC001F834848167FA248
1279C7ED3F80A300FEEF1FC0AA007FEF3F80A36C6CEE7F00A26C6C16FE000F5F6D90387F8001
12806C6C496C485AD801F8ED07E06C6C486D485A903B7F07BF783F8090280FFE3F1FFCC7FCD9
128103F8EB07F090C790C9FCAB4B7E91380FFFFCA33A4A7DB941>I<B538807FFFA200079038
1282003FF06C48EB1FC06C4891C7FC6C6C131E017E131C6D13186D6C5AECC070010F5B6D6C5A
1283ECF180EB03FB6DB4C8FC6D5AA2147F804A7E8114CF903801C7E090380383F090380703F8
1284EB0601496C7E011C137E49137F01787F496D7E000181000381D81FF8EB3FF8D8FFFE90B5
12851280A229247FA32C>I<B500C1B51280A23B07F8000FF0006C486D5AB3AC486C497EB812
1286C0A2C9121F16071601A2160017E0A31760A52B317EA32E>I<B500C1B51280A23B07F800
12870FF0006C486D5AAC6C7E0000141F017E13FF90383FFFE70107130790C7FCAD4B7E4AB512
128880A229247EA32E>I<B500C3B5380FFFFCA23D07F8001FE0007F806C486D48EB3F00B3AC
1289486C496CEB7F80BA12FCA23E247EA343>I<B500C3B5380FFFFCA23D07F8001FE0007F80
12906C486D48EB3F00B3AC486C496CEB7F80BA12FEA2CCFC193E190EA219061907A31903A540
1291317EA343>I<007FB5FCA2387E03FC387801F812701260A212E0A212C0A5120091B512E0
129216FC9138F800FFEE3F80EE1FC0EE0FE0EE07F0A2EE03F8A5EE07F0A2EE0FE0EE1FC0EE3F
129380496CEBFF00017FB512FC16E02D247EA333>I<B500C00107B5FCA2D807F8C8EA3FC06C
129448151F1880AB90B512C015F89038F001FEEC007FED3F80ED1FC0ED0FE0A2ED07F0A5ED0F
1295E0A2ED1FC0ED3F80DB7F0013C02707F801FE133FB6D8F807B5FC15C038247EA33C>I<B5
129612C0A2D807F8C8FC6C5AAC90B512C015F89038F001FEEC007FED3F80ED1FC0ED0FE0A2ED
129707F0A5ED0FE0A2ED1FC0ED3F80ED7F003907F801FEB612F815C024247EA32A>I<EB3F80
129838C1FFF038E7C0FC38FE003F48EB1F8048EB0FC048EB07E05AEC03F04814F8C7120115FC
1299A3140015FEEA03FE380FFF8014FFEA003FEB0FFCEB03C090C7FCA315FC1401A200C014F8
130014036C14F000601307007014E06CEB0FC06CEB1F806CEB3F003807C07C3801FFF038003F
1301C01F277EA525>I<EE1FE0EEFFFCB539C003F03F923907C00F803C07F8000F0003C06C48
1302011E6D7E033E804B6D7E03FC804B147C0201157EA24A4880A302071680A290B5FCA2EBF0
130307A602031600A26F5C0201157EA26E6C5C037C5C037E1301033E5C6F495A486C903907C0
13040F80B527C003F03FC7FC923800FFFCC9EA1FE039277EA53E>I<49B61280131F903A7F00
13050FF00001FC6D5A485A485A1207A512037F1201EA00FEEB3F80010FB5FC1300ECFE0714FC
1306EB01F8EB03F0130714E0EB0FC0EB1F80133FEB7F00137E13FE485A485A1207001F4A7EB5
130748B51280A229247FA32D>I E
1308%EndDVIPSBitmapFont
1309end
1310%%EndProlog
1311%%BeginSetup
1312%%Feature: *Resolution 600dpi
1313TeXDict begin
1314%%PaperSize: A4
1315 end
1316%%EndSetup
1317%%Page: 1 1
1318TeXDict begin 1 0 bop 1234 -45 a Fi
1319(\321\357\360\340\342\356\367\355\340\377)26 b(\352)n(\340\360\362)n
1320(\340)h(\357\356)g(GNU)i(Emacs)1583 55 y(\(\344\353\377)g
1321(\342\345\360\361\350\350)e(21\))-128 330 y Fh(1)132
1322b(\307\340\357\363)l(\361\352)45 b(Emacs)-128 511 y Fi(\304\353\377)28
1323b(\347\340\357\363)n(\361\352)n(\340)e(GNU)i(Emacs)f(21,)g
1324(\357\360\356\361\362\356)g(\355\340\341\345\360\350\362\345)h
1325(\350\354\377)g(\357\360\356\343\360\340\354\354\373:)f
1326Fg(emacs)-128 611 y Fi(\316)h(\362\356\354,)g(\352)n(\340\352)f
1327(\356\362\352\360\373\342\340\362\374)g(\364\340\351\353\373,)g
1328(\367\350\362)n(\340\351\362\345)h(\344\340\353\345\345)f(\342)g
1329(\360\340\347\344\345\353\345)g(\324\340\351\353\373.)-128
1330886 y Fh(2)132 b(\302\373\365)l(\356)l(\344)45 b(\350\347)f(Emacs)-78
13311065 y Fi(\317\360\350\356\361\362)n(\340\355\356\342\350\362\374)26
1332b(\360\340\341\356\362\363)h(Emacs)g(\(\350\353\350)h
1333(\361\342\345\360\355\363\362\374)f(\342)g(\350\352)n(\356\355\352\363)
1334h(\357\360\350)g(\360\340\341\356\362\345)e(\342)h(X\))255
1335b Fg(C-z)-78 1165 y Fi(\302\373\351\362\350)28 b(\350\347)g(Emacs)2307
1336b Fg(C-x)42 b(C-c)-128 1410 y Fh(3)132 b(\324\340\351\353\373)-78
13371570 y Ff(\356\362\352\360\373\362\374)28 b Fi(\364\340\351\353)f(\342)
1338g(\341\363\364\345\360\345)f(Emacs)1717 b Fg(C-x)42 b(C-f)-78
13391670 y Ff(\361\356)m(\365\360\340\355\350\362\374)29
1340b Fi(\364\340\351\353)e(\356\341\360\340\362\355\356)g(\355\340)g
1341(\344\350\361\352)1627 b Fg(C-x)42 b(C-s)-78 1770 y Fi(\361\356)n
1342(\365\360\340\355\350\362\374)27 b Ff(\342\361\345)g
1343Fi(\364\340\351\353\373)2104 b Fg(C-x)42 b(s)-78 1869
1344y Ff(\342\361\362)m(\340\342\350\362\374)29 b Fi(\361\356)n
1345(\344\345\360)n(\346\350\354\356\345)d(\344\360\363\343\356\343\356)h
1346(\364\340\351\353\340)f(\342)h(\362\345\352\363\371\350\351)h
1347(\341\363\364\345\360)809 b Fg(C-x)42 b(i)-78 1969 y
1348Fi(\356\362\352\360\373\362\374)28 b(\355\363\346\355\373\351)g
1349(\342\340\354)f(\364\340\351\353)g(\342\354\345\361\362\356)g
1350(\362\345\352\363\371\345\343\356)1226 b Fg(C-x)42 b(C-v)-78
13512068 y Fi(\361\356)n(\365\360\340\355\350\362\374)27
1352b(\341\363\364\345\360)f(\342)h(\363\352)n
1353(\340\347\340\355\355\356\354)g(\364\340\351\353\345)1534
1354b Fg(C-x)42 b(C-w)-78 2168 y Fi
1355(\302\352\353\376\367\350\362\374/\342\373\352\353\376\367\350\362\374)
135628 b(\361\356\361\362\356)n(\377\355\350\345)f
1357(\341\363\364\345\360\340)f(\020\362\356\353\374\352)n(\356)g
1358(\344\353\377)i(\367\362\345\355\350\377\021)581 b Fg(C-x)42
1359b(C-q)-128 2413 y Fh(4)132 b(\317\356\353\363\367\345\355\350\345)43
1360b(\357\356\354\356\371\350)-128 2595 y Fi
1361(\321\357\360\340\342\356\367\355\340\377)19 b
1362(\361\350\361\362\345\354\340)i(\344\356\361\362)n
1363(\340\362\356\367\355\356)e(\357\360\356\361\362)n(\340.)h
1364(H\340\346\354\350\362\345)i Fg(C-h)d Fi(\(\350\353\350)i
1365Fg(F1)p Fi(\))f(\350)h(\361\353\345\344\363\351\362\345)g
1366(\350\355\361\362\360\363\352\366\350\377\354.)g(\305\361\353\350)h
1367(\342\373)d(\342)i(\357\345\360\342\373\351)-128 2695
1368y(\360\340\347)28 b(\360\340\341\356\362)n(\340\345\362\345)e(\361)h
1369(Emacs,)h(\355\340\341\345\360\350\362\345)f Fg(C-u)43
1370b(C-h)f(t)h(Russian)e(RET)26 b Fi(\344\353\377)i
1371(\342\373\347\356\342\340)d Ff(\363\367\345\341\355\350\352)m(\340)p
1372Fi(.)-78 2789 y(\307\340\352\360\373\362\374)i(\356\352\355\356)g
1373(\361\357\360\340\342\352\350)2072 b Fg(C-x)42 b(1)-78
13742889 y Fi(\317\360\356\352\360\363\362\350\362\374)28
1375b(\356\352\355\356)f(\361\357\360\340\342\352\350)1940
1376b Fg(C-M-v)-78 2988 y Fi(aprop)r(os:)26 b(\357\356\352)n
1377(\340\347\340\362\374)g(\352)n(\356\354\340\355\344\373,)h
1378(\361\356\356\362\342\345\362\361\362\342\363\376\371\350\345)g
1379(\361\362\360\356\352)n(\345)921 b Fg(C-h)42 b(a)-78
13803088 y Fi(\357\356\352)n(\340\347\340\362\374)26 b(\350\354\377)i
1381(\364\363\355\352\366\350\350,)g(\352)n(\356\362\356\360\340\377)f
1382(\347\340\357\363)n(\361\352)n(\340\345\362\361)n(\377)e
1383(\352\353\340\342\350\370\345\351)835 b Fg(C-h)42 b(c)-78
13843187 y Fi(\356\357\350\361\340\362\374)27 b
1385(\364\363\355\352\366\350\376)2257 b Fg(C-h)42 b(f)-78
13863287 y Fi(\357\356\353\363\367\350\362\374)28 b
1387(\350\355\364\356\360\354\340\366\350\376)f(\356)g
1388(\360\345\346\350\354\345)1672 b Fg(C-h)42 b(m)-128 3533
1389y Fh(5)132 b(\310\361\357\360\340\342\353\345\355\350\345)43
1390b(\356\370\350\341\356\352)-78 3717 y Ff
1391(\357\360\345\360\342\340\362\374)28 b Fi
1392(\367\340\361\362\350\367\355\356)f
1393(\355\340\341\360\340\355\355\363\376)g(\350\353\350)h
1394(\350\361\357\356\353\355\377\345\354\363\376)g(\352)n
1395(\356\354\340\355\344\363)682 b Fg(C-g)-78 3816 y Ff
1396(\342\356\361\361\362)m(\340\355\356\342\350\362\374)29
1397b Fi(\364\340\351\353,)e(\357\356\362\345\360)n(\377\355\355\373\351)g
1398(\357\360\350)h(\352\360\340\365)n(\345)f(\361\350\361\362\345\354\373)
1399895 b Fg(M-x)2857 3916 y(recover-file)-78 4016 y Ff
1400(\356\362\354\345\355\350\362\374)27 b Fi(\355\345\346)n
1401(\345\353\340\362\345\353\374\355\373\345)g
1402(\350\347\354\345\355\345\355\350\377)1502 b Fg(C-x)42
1403b(u)h Fi(\350\353\350)h Fg(C-_)-78 4115 y Fi(\342\356\361\361\362)n
1404(\340\355\356\342\350\362\374)26 b(\341\363\364\345\360)g(\342)h
1405(\357\345\360\342\356\355\340)n(\367\340\353\374\355\356\345)e
1406(\361\356\361\362\356)n(\377\355\350\345)1086 b Fg(M-x)2857
14074215 y(revert-buffer)-78 4315 y Fi
1408(\357\345\360\345\360\350\361\356\342\340\362\374)27
1409b(\347\340\357\356\353\355\345\355\355\373\351)g(\354\363)n
1410(\361\356\360\356\354)f(\375\352\360\340\355)1321 b Fg(C-l)-128
14114560 y Fh(6)132 b(H\340\360\340\371\350\342\340\345\354\373\351)41
1412b(\357\356\350\361\352)-78 4743 y Fi(\357\356\350\361\352)28
1413b(\342\357\345\360\345\344)2436 b Fg(C-s)-78 4843 y Fi
1414(\357\356\350\361\352)28 b(\355\340\347\340\344)2477
1415b Fg(C-r)-78 4943 y Fi(\357\356\350\361\352)28 b(\357\356)f
1416(\360\345\343\363)-5 b(\353\377\360\355\356\354\363)28
1417b(\342\373\360\340\346)n(\345\355\350\376)1616 b Fg(C-M-s)-78
14185042 y Fi(\357\356\350\361\352)28 b(\357\356)f(\360\345\343\363)-5
1419b(\353\377\360\355\356\354\363)28 b(\342\373\360\340\346)n
1420(\345\355\350\376)f(\355\340\347\340\344)1376 b Fg(C-M-r)-78
14215142 y Fi(\342\373\341\360\340\362\374)26 b
1422(\357\360\345\344\373\344\363\371\363\376)i(\361\362\360\356\352\363)g
1423(\357\356\350\361\352)n(\340)1527 b Fg(M-p)-78 5241 y
1424Fi(\342\373\341\360\340\362\374)26 b
1425(\361\353\345\344\363\376\371\363\376)i(\361\362\360\356\352\363)g
1426(\357\356\350\361\352)n(\340)1580 b Fg(M-n)-78 5341 y
1427Fi(\357\360\345\352\360\340\362\350\362\374)28 b
1428(\355\340\360\340\371\350\342\340\345\354\373\351)f
1429(\357\356\350\361\352)1659 b Fg(RET)-78 5441 y Fi
1430(\356\362\354\345\355\350\362\374)28 b(\375\364\364\345\352\362)g
1431(\342\342\356)n(\344\340)d(\357\356\361\353\345\344\355\345\343\356)i
1432(\361\350\354\342\356\353\340)1248 b Fg(DEL)-78 5540
1433y Fi(\357\360\345\360\342\340\362\374)27 b
1434(\362\345\352\363\371\350\351)h(\357\356\350\361\352)1994
1435b Fg(C-g)-128 5636 y Fi(\304\353\377)26 b(\357\356\342\362\356\360\340)
1436f(\357\356\350\361\352)n(\340)f(\342)i(\353\376\341\356\354)f
1437(\355\340\357\360\340\342\353\345\355\350\350)h
1438(\350\361\357\356\353\374\347\363\351\362\345)f
1439(\352\353\340\342\350\370\350)g Fg(C-s)g Fi(\350\353\350)h
1440Fg(C-r)p Fi(.)f(\305\361\353\350)h(Emacs)g(\342\361\345)f(\345\371\345)
1441h(\357\360\356\350\347-)-128 5736 y(\342\356)n(\344\350\362)i
1442(\357\356\350\361\352,)f Fg(C-g)f Fi(\356\362\354\345\355\350\362)j
1443(\362\356\353\374\352)n(\356)e(\355\345\361)n
1444(\344\345\353\340\355\355\363\376)g(\367\340\361\362\374.)1860
14456192 y(1)p eop end
1446%%Page: 2 2
1447TeXDict begin 2 1 bop -128 -45 a Fh(7)132 b
1448(\317\345\360\345\354\345\371\345\355\350\345)-78 139
1449y Ff(\345\344\350\355\350\366\373)32 b
1450(\357\345\360\345\354\345\371\345\355\350\377)1944 b
1451(\355\340\347\340\344)450 b(\342\357\345\360\345\344)-78
1452239 y Fi(\361\350\354\342\356\353)2667 b Fg(C-b)558 b(C-f)-78
1453338 y Fi(\361\353\356\342\356)2726 b Fg(M-b)558 b(M-f)-78
1454438 y Fi(\361\362\360\356\352)n(\340)2683 b Fg(C-p)558
1455b(C-n)-78 537 y Fi(\355\340)n(\367\340\353\356)26 b(\(\350\353\350)j
1456(\352)n(\356\355\345\366\))e(\361\362\360\356\352\350)1916
1457b Fg(C-a)558 b(C-e)-78 637 y Fi(\357\360\345\344\353\356)n(\346)n
1458(\345\355\350\345)2441 b Fg(M-a)558 b(M-e)-78 737 y Fi
1459(\340\341\347\340\366)2726 b Fg(M-{)558 b(M-})-78 836
1460y Fi(\361\362\360\340\355\350\366\340)2589 b Fg(C-x)42
1461b([)472 b(C-x)42 b(])-78 936 y Fi(\342\373\360\340\346)n
1462(\345\355\350\345)27 b(\(sexp\))2261 b Fg(C-M-b)470 b(C-M-f)-78
14631036 y Fi(\364\363\355\352\366\350\377)2597 b Fg(C-M-a)470
1464b(C-M-e)-78 1135 y Fi(\357\345\360\345\365)n(\356)n(\344)27
1465b(\342)g(\355\340)n(\367\340\353\356)f(\(\350\353\350)i(\352)n
1466(\356\355\345\366\))g(\341\363\364\345\360\340)1508 b
1467Fg(M-<)558 b(M->)-78 1243 y Fi(\357\360\356\352\360\363\362\352)n(\340)
146827 b(\375\352\360\340\355\340)g(\342\355\350\347)2054
1469b Fg(C-v)-78 1343 y Fi(\357\360\356\352\360\363\362\352)n(\340)27
1470b(\375\352\360\340\355\340)g(\342\342\345\360)n(\365)2016
1471b Fg(M-v)-78 1442 y Fi(\357\360\356\352\360\363\362\352)n(\340)27
1472b(\342\353\345\342\356)2302 b Fg(C-x)42 b(<)-78 1542
1473y Fi(\357\360\356\352\360\363\362\352)n(\340)27 b
1474(\342\357\360\340\342\356)2251 b Fg(C-x)42 b(>)-78 1642
1475y Fi(\357\360\356\352\360\363\362\352)n(\340)27 b
1476(\362\345\352\363\371\345\351)h(\361\362\360\356\352\350)g(\342)f
1477(\366\345\355\362\360)i(\375\352\360\340\355\340)1306
1478b Fg(C-u)42 b(C-l)-128 1887 y Fh(8)132 b(\323\355\350\367\362\356)l
1479(\346)l(\345\355\350\345)44 b(\350)g(\363)-7 b
1480(\344\340\353\345\355\350\345)-78 2070 y Ff(\363\355\350\367\362\356)m
1481(\346)m(\340\345\354\373\351)33 b(\356\341\372\345\352\362)1956
1482b(\355\340\347\340\344)450 b(\342\357\345\360\345\344)-78
14832170 y Fi(\361\350\354\342\356\353)27 b(\(\363)-5 b
1484(\344\340\353\345\355\350\345,)28 b(\340)f(\355\345)h
1485(\363\355\350\367\362\356)n(\346)n(\345\355\350\345\))1510
1486b Fg(DEL)558 b(C-d)-78 2270 y Fi(\361\353\356\342\356)2726
1487b Fg(M-DEL)470 b(M-d)-78 2369 y Fi(\361\362\360\356\352)n(\340)27
1488b(\(\344\356)h(\352)n(\356\355\366\340)e(\361\362\360\356\352\350\))
14891972 b Fg(M-0)42 b(C-k)384 b(C-k)-78 2469 y Fi
1490(\357\360\345\344\353\356)n(\346)n(\345\355\350\345)2441
1491b Fg(C-x)42 b(DEL)384 b(M-k)-78 2569 y Fi(\342\373\360\340\346)n
1492(\345\355\350\345)2512 b Fg(M\025)42 b(C-M-k)340 b(C-M-k)-78
14932676 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)28
1494b Ff(\356\341\353\340\361\362\374)2116 b Fg(C-w)-78 2776
1495y Fi(\361\352)n(\356\357\350\360\356\342\340\362\374)26
1496b(\356\341\353\340\361\362\374)g(\342)h(\361\357\350\361\356\352)h
1497(\363\355\350\367\362\356)n(\346)n(\345\355\350\351)1265
1498b Fg(M-w)-78 2876 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)28
1499b(\344\356)f(\361\353\345\344\363\376\371\345\343\356)g(\342\365)n
1500(\356)n(\346\344\345\355\350\377)f(\361\350\354\342\356\353\340)h
1501Fe(char)916 b Fg(M-z)42 b Fe(char)-78 2975 y Fi(\342\361\362)n
1502(\340\342\350\362\374)27 b(\357\356\361\353\345\344\355\350\351)g
1503(\363\355\350\367\362\356)n(\346)n(\345\355\355\373\351)h
1504(\356\341\372\345\352\362)1306 b Fg(C-y)-78 3075 y Fi
1505(\347\340\354\345\355\350\362\374)24 b(\362\356\353\374\352)n(\356)e
1506(\367\362\356)i(\342\356\361\361\362)n
1507(\340\355\356\342\353\345\355\355\373\351)d(\362\345\352)n(\361\362)k
1508(\357\360\345\344\370\345\361\362\342\363\376\371\350\354)f
1509(\363\355\350\367\362\356)n(\346)n(\345\355-)-78 3175
1510y(\355\373\354)k(\362\345\352)n(\361\362\356\354)2857
15113075 y(M-y)-128 3420 y Fh(9)132 b(\317\356\354\345\362\352)l(\340)-78
15123580 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)26
1513b(\357\356\354\345\362\352\350)2177 b Fg(C-@)42 b Fi(or)g
1514Fg(C-SPC)-78 3680 y Fi(\356\341\354\345\355\377\362\374)27
1515b(\354\345\361\362)n(\340\354\350)h(\352\363\360\361\356\360)f(\350)h
1516(\357\356\354\345\362\352\363)1546 b Fg(C-x)42 b(C-x)-78
15173779 y Fi(\357\356\354\345\362\350\362\374)28 b Fe(ar)l(g)36
1518b Ff(\361\353\356\342)2219 b Fg(M-@)-78 3879 y Fi
1519(\357\356\354\345\362\350\362\374)28 b Ff
1520(\357\340\360\340\343\360\340\364)2144 b Fg(M-h)-78 3979
1521y Fi(\357\356\354\345\362\350\362\374)28 b Ff
1522(\361\362\360\340\355\350\366\363)2162 b Fg(C-x)42 b(C-p)-78
15234078 y Fi(\357\356\354\345\362\350\362\374)28 b Ff
1524(\342\373\360\340\346)m(\345\355\350\345)2071 b Fg(C-M-@)-78
15254178 y Fi(\357\356\354\345\362\350\362\374)28 b Ff
1526(\364\363\355\352\366\350\376)2148 b Fg(C-M-h)-78 4277
1527y Fi(\357\356\354\345\362\350\362\374)28 b(\342\345\361\374)f
1528Ff(\341\363\364\345\360)2102 b Fg(C-x)42 b(h)-128 4523
1529y Fh(10)131 b(\307\340\354\345\355\340)44 b(\361)g
1530(\347\340\357\360\356\361\356\354)-78 4706 y Fi
1531(\350\355\362\345\360\340\352\362\350\342\355\340\377)28
1532b(\347\340\354\345\355\340)f(\362\345\352)n(\361\362\356\342\356\351)g
1533(\361\362\360\356\352\350)1398 b Fg(M-\045)-78 4806 y
1534Fi(\361)28 b(\350\361\357\356\353\374\347\356\342\340\355\350\345\354)e
1535(\360\345\343\363)-5 b(\353\377\360\355\373\365)27 b
1536(\342\373\360\340\346)n(\345\355\350\351)1333 b Fg(M-x)42
1537b(query-replace-r)o(ege)o(xp)-128 4901 y Fi(\302)28 b
1538(\360\345\346\350\354\345)g
1539(\350\355\362\345\360\340\352\362\350\342\355\356\351)g
1540(\347\340\354\345\355\373)f
1541(\357\356\353\374\347\356\342\340\362\345\353\376)f
1542(\344\356\361\362\363\357\355\373)i
1543(\361\353\345\344\363\376\371\350\345)g(\356\362\342\345\362\373:)-78
15444995 y Ff(\347\340\354\345\355\350\362\374)g Fi
1545(\344\340\355\355\356\345)f
1546(\361\356\356\362\342\345\362\361\362\342\350\345,)g
1547(\357\345\360\345\351\362\350)h(\352)g
1548(\361\353\345\344\363\376\371\345\354\363)815 b Fg(SPC)-78
15495095 y Fi(\347\340\354\345\355\350\362\374)28 b(\375\362\356)f
1550(\361\356\356\362\342\345\362\361\362\342\350\345,)g(\355\345)h
1551(\357\345\360\345\354\345\371\340\362\374\361)n(\377)1238
1552b Fg(,)-78 5194 y Ff(\357\360\356\357\363)m(\361\362\350\362\374)29
1553b Fi(\361\356\356\362\342\345\362\361\362\342\350\345)e(\341\345\347)g
1554(\347\340\354\345\355\373)1487 b Fg(DEL)-78 5294 y Fi
1555(\347\340\354\345\355\350\362\374)28 b(\342\361\345)f(\356\361\362)n
1556(\340\342\370\350\345\361)n(\377)e
1557(\361\356\356\362\342\345\362\361\362\342\350\377)1468
1558b Fg(!)-78 5393 y Ff(\342\345\360\355\363\362\374\361)m(\377)29
1559b Fi(\352)f(\357\360\345\344\373\344\363\371\345\354\363)f
1560(\361\356\356\362\342\345\362\361\362\342\350\376)1337
1561b Fg(\002)-78 5493 y Ff(\342\373\351\362\350)28 b Fi(\350\347)g
1562(\360\345\346\350\354\340)f(\347\340\354\345\355\340)g(\361)h
1563(\347\340\357\360\356\361\356\354)1508 b Fg(RET)-78 5593
1564y Fi(\342\356\351\362\350)38 b(\342)g(\360\345\346\350\354)h
1565(\360\345\352\363\360\361\350\342\355\356\343\356)d
1566(\360\345\344\340\352\362\350\360\356\342\340\355\350\377)i
1567(\(\344\353\377)g(\342\373\365)n(\356)n(\344\340)e
1568(\350\361\357\356\353\374\347\363)n(\345\362\361)n(\377)-78
15695692 y Fg(C-M-c)p Fi(\))2857 5593 y Fg(C-r)1860 6192
1570y Fi(2)p eop end
1571%%Page: 3 3
1572TeXDict begin 3 2 bop -128 -45 a Fh(11)131 b(\314\355\356)l(\346)l
1573(\345\361\362\342\356)44 b(\356\352)l(\356\355)-128 137
1574y Fi(\312\356\354\340\355\344\373,)27 b
1575(\357\360\350\342\345\344\345\355\355\373\345)h(\342\356)e
1576(\342\362\356\360\356\354)h(\361\362\356\353\341\366\345,)h
1577(\357\360\350\354\345\355\377\376\362\361)n(\377)g(\352)g
1578(\344\360\363\343\356\354\363)f
1579(\(\355\345\340\352\362\350\342\355\356\354\363\))h(\356\352\355\363)-7
1580b(.)-78 236 y(\363)i(\344\340\353\350\362\374)28 b(\342\361\345)f
1581(\356\361\362)n(\340\353\374\355\373\345)f(\356\352\355\340)1869
1582b Fg(C-x)42 b(1)-78 344 y Fi(\360\340\347\341\350\362\374)27
1583b(\356\352\355\356)g(\357\356)g(\343\356\360\350\347\356\355\362)n
1584(\340\353\350)1825 b Fg(C-x)42 b(2)472 b(C-x)42 b(5)h(2)-78
1585444 y Fi(\363)-5 b(\344\340\353\350\362\374)28 b
1586(\344\340\355\355\356\345)f(\356\352\355\356)2143 b Fg(C-x)42
1587b(0)472 b(C-x)42 b(5)h(0)-78 543 y Fi(\360\340\347\341\350\362\374)27
1588b(\356\352\355\356)g(\357\356)g(\342\345\360\362\350\352)n
1589(\340\353\350)1904 b Fg(C-x)42 b(3)-78 643 y Fi
1590(\342\373\357\356\353\355\350\362\374)27 b
1591(\357\360\356\352\360\363\362\352\363)h(\342)f
1592(\344\360\363\343\356\354)h(\356\352\355\345)1530 b Fg(C-M-v)-78
1593751 y Fi(\357\345\360\345\354\345\361\362\350\362\374)29
1594b(\352\363\360\361\356\360)e(\342)g(\344\360\363\343\356\345)g
1595(\356\352\355\356)1629 b Fg(C-x)42 b(o)472 b(C-x)42 b(5)h(o)-78
1596850 y Fi(\342\373\341\360\340\362\374)26 b(\341\363\364\345\360)h(\342)
1597g(\344\360\363\343\356\354)h(\356\352\355\345)1795 b
1598Fg(C-x)42 b(4)h(b)385 b(C-x)42 b(5)h(b)-78 950 y Fi(\357\356\352)n
1599(\340\347\340\362\374)26 b(\341\363\364\345\360)h(\342)g
1600(\344\360\363\343\356\354)g(\356\352\355\345)1775 b Fg(C-x)42
1601b(4)h(C-o)297 b(C-x)42 b(5)h(C-o)-78 1050 y Fi
1602(\347\340\343\360\363\347\350\362\374)27 b(\364\340\351\353)g(\342)g
1603(\344\360\363\343\356\345)g(\356\352\355\356)1786 b Fg(C-x)42
1604b(4)h(f)385 b(C-x)42 b(5)h(f)-78 1149 y Fi
1605(\356\362\352\360\373\362\374)28 b(\364\340\351\353)f(\342)g
1606(\360\345\346\350\354\345)h(\367\362\345\355\350\377)h(\342)e
1607(\344\360\363\343\356\354)g(\356\352\355\345)1149 b Fg(C-x)42
1608b(4)h(r)385 b(C-x)42 b(5)h(r)-78 1249 y Fi(\347\340\357\363)n
1609(\361\362\350\362\374)27 b(Dired)h(\342)f(\344\360\363\343\356\354)h
1610(\356\352\355\345)1766 b Fg(C-x)42 b(4)h(d)385 b(C-x)42
1611b(5)h(d)-78 1349 y Fi(\355\340\351\362\350)28 b(\362)n(\340\343)g(\342)
1612f(\344\360\363\343\356\354)g(\356\352\355\345)2003 b
1613Fg(C-x)42 b(4)h(.)385 b(C-x)42 b(5)h(.)-78 1457 y Fi
1614(\363\342\345\353\350\367\350\362\374)28 b(\342\373\361\356\362\363)e
1615(\356\352\355\340)2049 b Fg(C-x)42 b(\002)-78 1556 y
1616Fi(\361\363\347\350\362\374)28 b(\362\345\352\363\371\345\345)f
1617(\356\352\355\356)2148 b Fg(C-x)42 b({)-78 1656 y Fi
1618(\360\340\361\370\350\360\350\362\374)28 b
1619(\362\345\352\363\371\345\345)f(\356\352\355\356)1982
1620b Fg(C-x)42 b(})-128 1901 y Fh(12)131 b
1621(\324\356\360\354\340\362\350\360\356\342\340\355\350\345)-78
16222085 y Fi(\361)n(\344\345\353\340\362\374)27 b
1623(\356\362\361\362\363\357)h(\344\353\377)g
1624(\362\345\352\363\371\345\351)g Ff(\361\362\360\356\352\350)g
1625Fi(\(\342)f(\347\340\342\350\361\350\354\356\361\362\350)g(\356\362)h
1626(\360\345\346\350\354\340\))470 b Fg(TAB)-78 2184 y Fi(\361)n
1627(\344\345\353\340\362\374)27 b(\356\362\361\362\363\357)h(\344\353\377)
1628g Ff(\356\341\353\340\361\362\350)g Fi(\(\342)g
1629(\347\340\342\350\361\350\354\356\361\362\350)f(\356\362)g
1630(\360\345\346\350\354\340\))775 b Fg(C-M-)p Fd(n)-78
16312284 y Fi(\361)n(\344\345\353\340\362\374)27 b
1632(\356\362\361\362\363\357)h(\344\353\377)g Ff(\342\373\360\340\346)m
1633(\345\355\350\377)h Fi(\(\342)e
1634(\347\340\342\350\361\350\354\356\361\362\350)g(\356\362)h
1635(\360\345\346\350\354\340\))617 b Fg(C-M-q)-78 2383 y
1636Fi(\361)n(\344\345\353\340\362\374)27 b(\356\362\361\362\363\357)h
1637(\352)g(\347\340\344\340\355\355\356\351)e Fe(ar)l(g)36
1638b Fi(\352)n(\356\353\356\355\352)n(\345)1445 b Fg(C-x)42
1639b(TAB)-78 2483 y Fi(\342\361\362)n(\340\342\350\362\374)27
1640b(\355\356\342\363\376)f(\361\362\360\356\352\363)i
1641(\357\356\361\353\345)f(\352\363\360\361\356\360\340)1493
1642b Fg(C-o)-78 2583 y Fi(\361)n(\344\342\350\355\363\362\374)27
1643b(\356\361\362)n(\340\362\356\352)g(\361\362\360\356\352\350)h
1644(\342\345\360\362\350\352)n(\340\353\374\355\356)e(\342\355\350\347)
16451293 b Fg(C-M-o)-78 2682 y Fi(\363)-5 b(\344\340\353\350\362\374)28
1646b(\357\363)n(\361\362\373\345)f(\361\362\360\356\352\350)h
1647(\342\356\352\360\363\343)f(\352\363\360\361\356\360\340)1442
1648b Fg(C-x)42 b(C-o)-78 2782 y Fi
1649(\356\341\372\345\344\350\355\350\362\374)27 b
1650(\361\362\360\356\352\363)h(\361)f
1651(\357\360\345\344\373\344\363\371\345\351)h(\(\361\356)f
1652(\361\353\345\344\363\376\371\350\354\350)h(arg\))817
1653b Fg(M-\002)-78 2882 y Fi(\363)-5 b(\344\340\353\350\362\374)28
1654b(\357\363)n(\361\362\356\345)f
1655(\357\360\356\361\362\360\340\355\361\362\342\356)g
1656(\342\356\352\360\363\343)g(\352\363\360\361\356\360\340)1211
1657b Fg(M-)p Fd(n)-78 2981 y Fi(\357\356\354\345\361\362\350\362\374)28
1658b(\362\356\353\374\352)n(\356)f(\356)n(\344\350\355)g
1659(\357\360\356\341\345\353)g(\342)g(\357\356\347\350\366\350\350)h
1660(\352\363\360\361\356\360\340)1036 b Fg(M-SPC)-78 3081
1661y Fi(\347\340\357\356\353\355\350\362\374)27 b
1662(\362\345\352\363\371\350\351)h(\357\340\360\340\343\360\340\364)1799
1663b Fg(M-q)-78 3180 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)
166426 b(\361\362\356\353\341\345\366)h
1665(\347\340\357\356\353\355\345\355\350\377)1739 b Fg(C-x)42
1666b(f)-78 3280 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)26
1667b(\357\360\345\364\350\352)n(\361)h
1668(\347\340\357\356\353\355\345\355\350\377)g(\352)n
1669(\340\346\344\356\351)g(\361\362\360\356\352\350)1108
1670b Fg(C-x)42 b(.)-78 3380 y Fi(\363)n(\361\362)n
1671(\340\355\356\342\350\362\374)26 b(\355\340)n(\367\345\360\362)n
1672(\340\355\350\345)2065 b Fg(M-g)-128 3625 y Fh(13)131
1673b(\310\347\354\345\355\345\355\350\345)44 b
1674(\360\345\343\350\361\362\360\340)-78 3808 y Fi(\361)n
1675(\344\345\353\340\362\374)27 b(\341\363\352\342\373)g
1676(\361\353\356\342\340)f(\347\340\343)n(\353\340\342\355\373\354\350)
16771672 b Fg(M-u)-78 3908 y Fi(\361)n(\344\345\353\340\362\374)27
1678b(\341\363\352\342\373)g(\361\353\356\342\340)f
1679(\361\362\360\356\367\355\373\354\350)1704 b Fg(M-l)-78
16804008 y Fi(\361)n(\344\345\353\340\362\374)27 b
1681(\357\345\360\342\363\376)g(\341\363\352\342\363)g
1682(\361\353\356\342\340)f(\347\340\343)n(\353\340\342\355\356\351)1457
1683b Fg(M-c)-78 4107 y Fi(\361)n(\344\345\353\340\362\374)27
1684b(\341\363\352\342\373)g(\356\341\353\340\361\362\350)f(\347\340\343)n
1685(\353\340\342\355\373\354\350)1585 b Fg(C-x)42 b(C-u)-78
16864207 y Fi(\361)n(\344\345\353\340\362\374)27 b(\341\363\352\342\373)g
1687(\356\341\353\340\361\362\350)f(\361\362\360\356\367\355\373\354\350)
16881617 b Fg(C-x)42 b(C-l)-128 4453 y Fh(14)131 b
1689(\314\350\355\350\341\363\364\345\360)-128 4635 y Fi
1690(\321\353\345\344\363\376\371\350\345)28 b
1691(\352\353\340\342\350\370\350)f(\(\352\353\376\367\350\))i
1692(\356\357\360\345\344\345\353\345\355\373)e(\342)h
1693(\354\350\355\350\341\363\364\345\360\345.)-78 4734 y
1694(\344\356\357\356\353\355\350\362\374)f(\355\340\361\352)n
1695(\356\353\374\352)n(\356)f(\342\356\347\354\356)n(\346\355\356)1727
1696b Fg(TAB)-78 4833 y Fi(\344\356\357\356\353\355\350\362\374)27
1697b(\344\356)h(\356)n(\344\355\356\343\356)e(\361\353\356\342\340)1907
1698b Fg(SPC)-78 4933 y Fi(\344\356\357\356\353\355\350\362\374)27
1699b(\350)h(\342\373\357\356\353\355\350\362\374)2026 b
1700Fg(RET)-78 5033 y Fi(\357\356\352)n(\340\347\340\362\374)26
1701b(\342\356\347\354\356)n(\346\355\373\345)g
1702(\344\356\357\356\353\355\345\355\350\377)1677 b Fg(?)-78
17035132 y Fi(\342\373\341\360\340\362\374)26 b
1704(\357\360\345\344\373\344\363\371\350\351)i(\342\342\356)n(\344)e(\342)
1705h(\354\350\355\350\341\363\364\345\360)1390 b Fg(M-p)-78
17065232 y Fi(\342\373\341\360\340\362\374)26 b
1707(\361\353\345\344\363\376\371\350\351)i(\342\342\356)n(\344)e(\342)h
1708(\354\350\355\350\341\363\364\345\360)1443 b Fg(M-n)-78
17095332 y Fi(\357\356\350\361\352)28 b(\342)f
1710(\350\361\362\356\360\350\350)h(\357\356)f(\360\345\343\363)-5
1711b(\353\377\360\355\356\354\363)28 b(\342\373\360\340\346)n
1712(\345\355\350\376)f(\342)g(\356\341\360\340\362\355\356\354)g
1713(\355\340\357\360\342\353\345\355\350\350)293 b Fg(M-r)-78
17145431 y Fi(\357\356\350\361\352)28 b(\342)f
1715(\350\361\362\356\360\350\350)h(\357\356)f(\360\345\343\363)-5
1716b(\353\377\360\355\356\354\363)28 b(\342\373\360\340\346)n
1717(\345\355\350\376)f(\342)g(\357\360)n(\377\354\356\354)h
1718(\355\340\357\360\342\353\345\355\350\350)361 b Fg(M-s)-78
17195531 y Fi(\357\360\345\360\342\340\362\374)27 b(\352)n
1720(\356\354\340\355\344\363)2247 b Fg(C-g)-128 5627 y Fi
1721(\315\340\341\345\360\350\362\345)31 b Fg(C-x)42 b(ESC)g(ESC)30
1722b Fi(\344\353\377)i
1723(\360\345\344\340\352\362\350\360\356\342\340\355\350\377)e(\350)h
1724(\357\356\342\362\356\360\345\355\350\377)g
1725(\357\356\361\353\345\344\355\345\351)g(\352)n
1726(\356\354\340\355\344\373)f(\355\340\341\360\340\355\355\356\351)g
1727(\342)h(\354\350\355\350\341\363\364\345\360\345.)-128
17285726 y(\315\340\341\345\360\350\362\345)c Fg(F10)p Fi(,)g
1729(\367\362\356\341\373)g(\360\340\341\356\362)n(\340\362\374)f(\361)h
1730(\357\363\355\352\362)n(\340\354\350)h(\354\345\355\376)h(\357\360\350)
1731f(\357\356\354\356\371\350)f(\352)n(\356\354\340\355\344)g
1732(\354\350\355\350\341\363\364\345\360\340.)1860 6192
1733y(3)p eop end
1734%%Page: 4 4
1735TeXDict begin 4 3 bop -128 -45 a Fh(15)131 b(\301\363\364\345\360\340)
1736-78 139 y Fi(\342\373\341\360\340\362\374)26 b
1737(\344\360\363\343\356\351)i(\341\363\364\345\360)2071
1738b Fg(C-x)42 b(b)-78 239 y Fi(\342\373\344\340\362\374)27
1739b(\361\357\350\361\356\352)g(\342\361\345\365)g
1740(\341\363\364\345\360\356\342)1849 b Fg(C-x)42 b(C-b)-78
1741338 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)28
1742b(\341\363\364\345\360)2212 b Fg(C-x)42 b(k)-128 584
1743y Fh(16)131 b(\316\341\354\345\355)43 b(\354\345\361\362)l
1744(\340\354\350)-78 745 y Fi(\356\341\354\345\355\377\362\374)27
1745b(\354\345\361\362)n(\340\354\350)h Ff(\361\350\354\342\356\353\373)
17461842 b Fg(C-t)-78 844 y Fi(\356\341\354\345\355\377\362\374)27
1747b(\354\345\361\362)n(\340\354\350)h Ff(\361\353\356\342\340)1982
1748b Fg(M-t)-78 944 y Fi(\356\341\354\345\355\377\362\374)27
1749b(\354\345\361\362)n(\340\354\350)h Ff(\361\362\360\356\352\350)1925
1750b Fg(C-x)42 b(C-t)-78 1044 y Fi(\356\341\354\345\355\377\362\374)27
1751b(\354\345\361\362)n(\340\354\350)h Ff(\342\373\360\340\346)m
1752(\345\355\350\377)1727 b Fg(C-M-t)-128 1289 y Fh(17)131
1753b(\317\360\356\342\345\360\352)l(\340)44 b
1754(\343\360\340\354\354\340\362\350\352\350)-78 1472 y
1755Fi(\357\360\356\342\345\360\350\362\374)27 b
1756(\362\345\352\363\371\345\345)h(\361\353\356\342\356)1974
1757b Fg(M-$)-78 1572 y Fi(\357\360\356\342\345\360\350\362\374)27
1758b(\342\361\345)g(\361\353\356\342\340)f(\342)i
1759(\356\341\353\340\361\362\350)1776 b Fg(M-x)42 b(ispell-region)-78
17601672 y Fi(\342\373\357\356\353\355\350\362\374)27 b
1761(\357\360\356\342\345\360\352\363)g(\342\361\345\343\356)f
1762(\341\363\364\345\360\340)1624 b Fg(M-x)42 b(ispell-buffer)-128
17631917 y Fh(18)131 b(\322)-11 b(\345\343\350)-78 2077 y
1764Fi(\355\340\351\362\350)28 b
1765(\356\357\360\345\344\345\353\345\355\350\345)g(\362\345\343)n(\340)
17662037 b Fg(M-.)-78 2177 y Fi(\355\340\351\362\350)28 b
1767(\361\353\345\344\363\376\371\345\345)g(\342\365)n(\356)n
1768(\346\344\345\355\350\345)e(\362\345\343)n(\340)1659
1769b Fg(C-u)42 b(M-.)-78 2276 y Fi(\363\352)n(\340\347\340\362\374)26
1770b(\355\356\342\373\351)h(\364\340\351\353)g(\361)h(\362\345\343)n
1771(\340\354\350)1807 b Fg(M-x)42 b(visit-tags-tabl)o(e)-78
17722376 y Fi(\357\356\350\361\352)28 b(\357\356)f
1773(\370\340\341\353\356\355\363)f(\357\356)h(\342\361\345\351)g(\362)n
1774(\340\341\353\350\366\345)g(\362\345\343\356\342)1392
1775b Fg(M-x)42 b(tags-search)-78 2476 y Fi
1776(\342\373\357\356\353\355\350\362\374)27 b(query-replace)f
1777(\355\340\344)h(\342\361\345\354\350)g(\364\340\351\353\340\354\350)
17781237 b Fg(M-x)42 b(tags-query-repl)o(ace)-78 2575 y Fi(\357\360\356)n
1779(\344\356\353\346\350\362\374)27 b(\357\356\350\361\352)h(\350\353\350)
1780g(\357\356\350\361\352-\347\340\354\345\355\363)e(\362\345\343)n(\340)
17811346 b Fg(M-,)-128 2820 y Fh(19)131 b
1782(\312\356\354\340\355\344\355\373\345)43 b
1783(\357\360\356\366\345\361\361\356\360\373)-78 3004 y
1784Fi(\302\373\357\356\353\355\350\362\374)28 b(\352)n
1785(\356\354\340\355\344\363)e(\352)n
1786(\356\354\340\355\344\355\356\343\356)g
1787(\357\360\356\366\345\361\361\356\360\340)1245 b Fg(M-!)-78
17883104 y Fi(\342\373\357\356\353\355\350\362\374)27 b(\352)n
1789(\356\354\340\355\344\363)g(\352)n
1790(\356\354\340\355\344\355\356\343\356)f
1791(\357\360\356\366\345\361\361\356\360\340)g(\355\340\344)i
1792(\356\341\353\340\361\362\374\376)720 b Fg(M-|)-78 3203
1793y Fi(\357\360\356\357\363)n(\361\362\350\362\374)28 b(\361\356)n
1794(\344\345\360)n(\346\350\354\356\345)e(\356\341\353\340\361\362\350)h
1795(\367\345\360\345\347)h(\352)n(\356\354\340\355\344\363)f(\352)n
1796(\356\354\340\355\344\355\356\343\356)f
1797(\357\360\356\366\345\361\361\356\360\340)210 b Fg(C-u)42
1798b(M-|)-78 3303 y Fi(\347\340\357\363)n(\361\362\350\362\374)27
1799b(\352)n(\356\354\340\355\344\355\373\351)h
1800(\357\360\356\366\345\361\361\356\360)e(\342)i(\356\352\355\345)f
1801Fg(*shell*)1098 b(M-x)42 b(shell)-128 3549 y Fh(20)131
1802b(\317\360)l(\377\354\356\363\343\356\353\374\355\373\345)44
1803b(\356\341\353\340\361\362\350)-78 3733 y Fi(\361\352)n
1804(\356\357\350\360\356\342\340\362\374)26 b(\357\360)n
1805(\377\354\356\363\343\356\353\374\355\363\376)g
1806(\356\341\353\340\361\362\374)g(\342)i(\360\345\343\350\361\362\360)
18071140 b Fg(C-x)42 b(r)h(r)-78 3832 y Fi(\363)-5 b
1808(\344\340\353\350\362\374)28 b(\357\360)n
1809(\377\354\356\363\343\356\353\374\355\363\376)e
1810(\356\341\353\340\361\362\374)1692 b Fg(C-x)42 b(r)h(k)-78
18113932 y Fi(\342\361\362)n(\340\342\350\362\374)27 b
1812(\357\356\361\353\345\344\355\363\376)g(\363\355\350\367\362\356)n
1813(\346)n(\345\355\355\363\376)h(\357\360)n
1814(\377\354\356\363\343\356\353\374\355\363\376)e
1815(\356\341\353\340\361\362\374)638 b Fg(C-x)42 b(r)h(y)-78
18164031 y Fi(\356\362\352\360\373\362\374)28 b(\357\360)n
1817(\377\354\356\363\343\356\353\374\355\363\376)e
1818(\356\341\353\340\361\362\374,)h(\361)n(\344\342\350\343)n(\340\377)f
1819(\362\345\352)n(\361\362)i(\342\357\360\340\342\356)821
1820b Fg(C-x)42 b(r)h(o)-78 4131 y Fi(\356\367\350\361\362\350\362\374)28
1821b(\357\360)n(\377\354\356\363\343\356\353\374\355\363\376)f
1822(\356\341\353\340\361\362\374)1652 b Fg(C-x)42 b(r)h(c)-78
18234231 y Fi(\357\360\345\344\342\340\360\350\362\374)27
1824b(\352)n(\340\346\344\363\376)h(\361\362\360\356\352\363)f
1825(\361\362\360\356\352)n(\356\351)g(\362\345\352)n(\361\362)n(\340)1291
1826b Fg(C-x)42 b(r)h(t)-128 4476 y Fh(21)131 b
1827(\321\356\352\360\340\371\345\355\350\377)-78 4659 y
1828Fi(\344\356\341\340\342\350\362\374)26 b(\343)n
1829(\353\356\341\340\353\374\355\356\345)f
1830(\361\356\352\360\340\371\345\355\350\345)1675 b Fg(C-x)42
1831b(a)h(g)-78 4759 y Fi(\344\356\341\340\342\350\362\374)26
1832b(\353\356\352)n(\340\353\374\355\356\345)g(\344\353\377)i
1833(\360\345\346\350\354\340)f(\361\356\352\360\340\371\345\355\350\345)
18341220 b Fg(C-x)42 b(a)h(l)-78 4859 y Fi
1835(\344\356\341\340\342\350\362\374)26 b(\343)n
1836(\353\356\341\340\353\374\355\356\345)f(\347\355\340)n
1837(\367\345\355\350\345)i(\344\353\377)h(\344\340\355\355\356\343\356)e
1838(\361\356\352\360\340\371\345\355\350\377)813 b Fg(C-x)42
1839b(a)h(i)g(g)-78 4958 y Fi(\344\356\341\340\342\350\362\374)26
1840b(\361\357\345\366\350\364\350\367\345\361\352)n(\356\345)h
1841(\344\353\377)h(\360\345\346\350\354\340)f(\347\355\340)n
1842(\367\345\355\350\345)g(\344\340\355\355\356\343\356)g
1843(\361\356\352\360\340\371\345\355\350\377)342 b Fg(C-x)42
1844b(a)h(i)g(l)-78 5058 y Fi(\377\342\355\356)27 b(\342\361\362)n
1845(\340\342\350\362\374)f(\347\355\340)n(\367\345\355\350\345)h
1846(\344\353\377)h(\361\356\352\360\340\371\345\355\350\377)1395
1847b Fg(C-x)42 b(a)h(e)-78 5158 y Fi
1848(\344\350\355\340\354\350\367\345\361\352\350)28 b
1849(\344\356\357\356\353\355\350\362\374)g
1850(\357\360\345\344\373\344\363\371\345\345)f(\361\353\356\342\356)1287
1851b Fg(M-/)1860 6192 y Fi(4)p eop end
1852%%Page: 5 5
1853TeXDict begin 5 4 bop -128 -45 a Fh(22)131 b(\320)l(\345\343\363)-7
1854b(\353\377\360\355\373\345)44 b(\342\373\360\340\346)l
1855(\345\355\350\377)-78 139 y Fi(\353\376\341\356\351)27
1856b(\356)n(\344\350\355\356\367\355\373\351)g(\361\350\354\342\356\353)g
1857(\(\347\340)h(\350\361\352\353\376\367\345\355\350\345\354)g
1858(\361\350\354\342\356\353\340)f(\355\356\342\356\351)f
1859(\361\362\360\356\352\350\))388 b Fg(.)43 b Fi(\(dot\))-78
1860239 y(\355\356\353\374)27 b(\350\353\350)h(\341\356\353\345\345)f
1861(\357\356\342\362\356\360\345\355\350\351)1901 b Fg(*)-78
1862338 y Fi(\356)n(\344\355\356)27 b(\350\353\350)h(\341\356\353\345\345)e
1863(\357\356\342\362\356\360\345\355\350\351)1904 b Fg(+)-78
1864438 y Fi(\355\356\353\374)27 b(\350\353\350)h(\356)n(\344\355\356)f
1865(\357\356\342\362\356\360\345\355\350\345)1940 b Fg(?)-78
1866537 y Fi(\375\352\360\340\355\350\360\356\342\340\362\374)26
1867b(\361\357\345\366\350\340\353\374\355\373\351)h
1868(\361\350\354\342\356\353)h Fe(c)1536 b Fd(n)p Fe(c)-78
1869637 y Fi(\342\373\341\356\360)26 b(\354\345\346\344\363)i(\340\353\374)
1870n(\362\345\360\355\340\362\350\342\340\354\350)f
1871(\(\020\350\353\350\021\))1501 b Fd(nj)-78 737 y Fi
1872(\343\360\363\357\357\350\360\356\342\352)n(\340)2454
1873b Fd(n)p Fg(\()42 b Fc(:)14 b(:)g(:)44 b Fd(n)p Fg(\))-78
1874836 y Fi(\362\345\352)n(\361\362)29 b(\342)e Fe(n)6 b
1875Fi(-\351)27 b(\343\360\363\357\357\345)2227 b Fd(n)p
1876Fe(n)-78 936 y Fi(\343\360\340\355\350\366\340)27 b
1877(\361\353\356\342\340)2394 b Fd(n)p Fg(b)-78 1036 y Fi(\355\345)28
1878b(\343\360\340\355\350\366\340)f(\361\353\356\342\340)2283
1879b Fd(n)p Fg(B)-78 1144 y Ff(\356\341\372\345\352\362)2640
1880b(\355\340)m(\367\340\353\356)79 b(\361\356\356\362-)2857
18811243 y(\342\345\362\361\362\342\350\377)3547 1144 y(\352)m
1882(\356\355\345\366)127 b(\361\356\356\362-)3547 1243 y
1883(\342\345\362\361\362\342\350\377)-78 1343 y Fi(\361\362\360\356\352)n
1884(\340)2683 b Fg(\002)645 b($)-78 1442 y Fi(\361\353\356\342\356)2726
1885b Fd(n)p Fg(<)604 b Fd(n)p Fg(>)-78 1542 y Fi(\341\363\364\345\360)2701
1886b Fd(n)p Fg(`)604 b Fd(n)p Fg(')-78 1650 y Ff(\352\353\340\361\361)33
1887b(\361\350\354\342\356\353\356\342)2262 b
1888(\361\356\356\362\342\345\362-)2857 1750 y(\361\362\342\363)m(\345\362)
188932 b(\350\354)3547 1650 y(\361\356\356\362\342\345\362-)3547
18901750 y(\361\362\342\363)m(\345\362)131 b(\344\360\363-)3547
18911849 y(\343\350\354)-78 1949 y Fi(\377\342\355\373\351)28
1892b(\355\340\341\356\360)2450 b Fg([)43 b Fc(:)14 b(:)g(:)43
1893b Fg(])419 b([\002)p Fc(:)14 b(:)g(:)41 b Fg(])-78 2048
1894y Fi(\361\350\354\342\356\353-\341\363\352\342\340)2423
1895b Fd(n)p Fg(w)604 b Fd(n)p Fg(W)-78 2148 y Fi(\361\350\354\342\356\353)
189627 b(\361)h(\361\350\355\362)n(\340\352)n(\361\350\361\356\354)f
1897Fe(c)2039 b Fd(n)p Fg(s)p Fe(c)566 b Fd(n)p Fg(S)p Fe(c)-128
18982394 y Fh(23)131 b(\314\345\346\344\363\355\340\360\356)l
1899(\344\355\373\345)43 b(\355\340\341\356\360\373)g
1900(\361\350\354\342\356\353\356\342)-78 2578 y Fi
1901(\342\373\341\360\340\362\374)26 b(\377\347\373\352)2406
1902b Fg(M-x)42 b(set-language-en)o(vir)o(on)o(me)o(nt)-78
19032677 y Fi(\357\356\352)n(\340\347\340\362\374)26 b(\342\361\345)h
1904(\342\356\347\354\356)n(\346\355\373\345)f(\354\345\362\356)n(\344\373)
1905i(\342\342\356)n(\344\340)1457 b Fg(M-x)42 b(list-input-meth)o(ods)-78
19062777 y Fi(\360\340\347\360\345\370\350\362\374)27 b(\350\353\350)h
1907(\347\340\357\360\345\362\350\362\374)g(\354\345\362\356)n(\344)g
1908(\342\342\356)n(\344\340)1473 b Fg(C-)p Fd(n)-78 2877
1909y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)26
1910b(\361\350\361\362\345\354\363)i(\352)n(\356)n
1911(\344\350\360\356\342\340\355\350\377)e(\344\353\377)i
1912(\361\353\345\344\363\376\371\345\351)f(\352)n
1913(\356\354\340\355\344\373)705 b Fg(C-x)42 b(RET)g(c)-78
19142976 y Fi(\357\356\352)n(\340\347\340\362\374)26 b
1915(\361\357\350\361\356\352)i(\342\361\345\365)e
1916(\361\350\361\362\345\354)j(\352)n(\356)n
1917(\344\350\360\356\342\340\355\350\377)1338 b Fg(M-x)42
1918b(list-coding-sys)o(tem)o(s)-78 3076 y Fi(\342\373\341\360\340\362\374)
191926 b(\357\360\345\344\357\356\367\362\350\362\345\353\374\355\363\376)j
1920(\361\350\361\362\345\354\363)f(\352)n(\356)n
1921(\344\350\360\356\342\340\355\350\377)1041 b Fg(M-x)42
1922b(prefer-coding-s)o(yst)o(em)-128 3329 y Fh(24)131 b
1923(\310\355\364\356\360\354\340\366\350\377)44 b
1924(\(\361\350\361\362\345\354\340)g(Info\))-78 3519 y Fi
1925(\347\340\357\363)n(\361\362\350\362\374)27 b
1926(\361\350\361\362\345\354\363)i(\344\356\361\362\363\357\340)e(\352)g
1927(\344\356\352\363\354\345\355\362)n(\340\366\350\350)1275
1928b Fg(C-h)42 b(i)-78 3619 y Fi(\355\340\351\362\350)28
1929b(\363\352)n(\340\347\340\355\355\363\376)f
1930(\364\363\355\352\366\350\376)g(\350\353\350)h
1931(\357\345\360\345\354\345\355\355\363\376)h(\342)e
1932(\344\356\352\363\354\345\355\362)n(\340\366\350\350)615
1933b Fg(C-h)42 b(C-i)-128 3719 y Fi
1934(\317\345\360\345\354\345\371\345\355\350\345)28 b
1935(\342\355\363\362\360\350)f(\363\347\353\340)g(\(\355\356)n
1936(\344\340\354\350\):)-78 3818 y(\357\360\356\352\360\363\362\352)n
1937(\340)g(\342\357\345\360\345\344)2257 b Fg(SPC)-78 3917
1938y Fi(\357\360\356\352\360\363\362\352)n(\340)27 b(\355\340\347\340\344)
19392298 b Fg(DEL)-78 4017 y Fi(\357\345\360\345\351\362\350)29
1940b(\352)e(\355\340)n(\367\340\353\363)g(\363\347\353\340)2074
1941b Fg(.)43 b Fi(\(dot\))-128 4112 y
1942(\317\345\360\345\354\345\371\345\355\350\345)28 b
1943(\354\345\346\344\363)g(\363\347\353\340\354\350:)-78
19444206 y Ff(\361\353\345\344\363\376\371\350\351)f Fi(\363\347\345\353)
19452245 b Fg(n)-78 4306 y Ff(\357\360\345\344\373\344\363\371\350\351)27
1946b Fi(\363\347\345\353)2184 b Fg(p)-78 4405 y Fi
1947(\357\345\360\345\351\362\350)29 b(\352)e Ff(\342\345\360)m
1948(\365\355\345\354\363)h Fi(\363\347\353\363)1932 b Fg(u)-78
19494505 y Fi(\342\373\341\360\340\362\374)26 b(\354\345\355\376)j
1950(\357\356)e(\350\354\345\355\350)2020 b Fg(m)-78 4605
1951y Fi(\342\373\341\360\340\362\374)26 b Fe(n)6 b Fi(-\351)28
1952b(\357\363\355\352\362)g(\354\345\355\376)h(\357\356)e
1953(\355\356\354\345\360\363)g(\(1\0259\))1357 b Fe(n)-78
19544704 y Fi(\357\345\360\345\351\362\350)29 b(\357\356)e
1955(\361\361\373\353\352)n(\345)g(\(\342\356\347\342\360\340\362)g(\361)g
1956(\357\356\354\356\371\374\376)g Fg(l)p Fi(\))1330 b Fg(f)-78
19574804 y Fi(\342\356\347\342\360\340\362\350\362\361)n(\377)27
1958b(\352)g(\357\356\361\353\345\344\355\345\354\363)h
1959(\357\360\356\361\354\356\362\360\345\355\355\356\354\363)f
1960(\363\347\353\363)1089 b Fg(l)-78 4904 y Fi
1961(\342\356\347\342\360\340\362\350\362\361)n(\377)27 b(\352)g
1962(\363\347\353\363-\352)n(\340\362)n(\340\353\356\343\363)1841
1963b Fg(d)-78 5003 y Fi(\357\345\360\345\351\362\350)29
1964b(\352)e(\363\347\353\363)-7 b(,)28 b
1965(\347\340\344\340\355\355\356\354\363)e(\350\354\345\355\345\354)1617
1966b Fg(g)-128 5098 y Fi(\304\360\363\343\350\345)27 b(\352)n
1967(\356\354\340\355\344\373:)-78 5192 y(\347\340\357\363)n
1968(\361\362\350\362\374)g Ff(\363\367\345\341\355\350\352)h
1969Fi(\357\356)f(\361\350\361\362\345\354\345)i
1970(\344\356\352\363\354\345\355\362)n(\340\366\350\350)1183
1971b Fg(h)-78 5292 y Ff(\357\360\345\352\360\340\362\350\362\374)32
1972b(\360\340\341\356\362\363)d Fi(\361)e
1973(\344\356\352\363\354\345\355\362)n(\340\366\350\345\351)1455
1974b Fg(q)-78 5392 y Fi(\357\356\350\361\352)28 b(\342)f
1975(\363\347\353\340\365)g(\361)g(\357\356\354\356\371\374\376)g
1976(\360\345\343\363)-5 b(\353\377\360\355\373\365)28 b
1977(\342\373\360\340\346)n(\345\355\350\351)1028 b Fg(M-s)1860
19786192 y Fi(5)p eop end
1979%%Page: 6 6
1980TeXDict begin 6 5 bop -128 -45 a Fh(25)131 b(\320)l
1981(\345\343\350\361\362\360\373)-78 139 y Fi(\361\356)n
1982(\365\360\340\355\350\362\374)27 b(\356\341\353\340\361\362\374)f(\342)
1983h(\360\345\343\350\361\362\360\345)1810 b Fg(C-x)42 b(r)h(s)-78
1984239 y Fi(\342\361\362)n(\340\342\350\362\374)27 b(\361\356)n
1985(\344\345\360)n(\346\350\354\356\345)f
1986(\360\345\343\350\361\362\360\340)i(\342)f(\341\363\364\345\360)1435
1987b Fg(C-x)42 b(r)h(i)-78 338 y Fi(\361\356)n
1988(\365\360\340\355\350\362\374)27 b(\357\356\353\356)n(\346)n
1989(\345\355\350\345)f(\352\363\360\361\356\360\340)h(\342)g
1990(\360\345\343\350\361\362\360\345)1365 b Fg(C-x)42 b(r)h(SPC)-78
1991438 y Fi(\357\345\360\345\351\362\350)29 b(\352)e(\357\356\353\356)n
1992(\346)n(\345\355\350\376)g(\352\363\360\361\356\360\340,)g(\361\356)n
1993(\365\360\340\355\345\355\355\356\354\363)f(\342)h
1994(\360\345\343\350\361\362\360\345)775 b Fg(C-x)42 b(r)h(j)-128
1995683 y Fh(26)131 b(\312\353\340\342\350\340\362\363\360\355\373\345)44
1996b(\354\340\352\360\356\361\373)-78 867 y Ff(\355\340)m
1997(\367\340\362\374)29 b Fi(\356\357\360\345\344\345\353\345\355\350\345)
1998e(\352\353\340\342\350\340\362\363\360\355\356\343\356)f
1999(\354\340\352\360\356\361\340)1227 b Fg(C-x)42 b(\()-78
2000966 y Ff(\347\340\352)m(\356\355\367\350\362\374)29 b
2001Fi(\356\357\360\345\344\345\353\345\355\350\345)e
2002(\352\353\340\342\350\340\362\363\360\355\356\343\356)f
2003(\354\340\352\360\356\361\340)1077 b Fg(C-x)42 b(\))-78
20041066 y Ff(\342\373\357\356\353\355\350\362\374)27 b Fi
2005(\357\356\361\353\345\344\355\350\351)h
2006(\356\357\360\345\344\345\353\345\355\355\373\351)g
2007(\354\340\352\360\356\361)1187 b Fg(C-x)42 b(e)-78 1165
2008y Fi(\344\356\357\356\353\355\350\362\374)27 b
2009(\357\356\361\353\345\344\355\350\351)h
2010(\356\357\360\345\344\345\353\345\355\355\373\351)g
2011(\354\340\352\360\356\361)1260 b Fg(C-u)42 b(C-x)g(\()-78
20121265 y Fi(\347\340\344\340\362\374)27 b(\350\354\377)h(\344\353\377)g
2013(\357\356\361\353\345\344\355\345\343\356)f
2014(\356\357\360\345\344\345\353\345\355\355\356\343\356)f
2015(\354\340\352\360\356\361\340)990 b Fg(M-x)42 b(name-last-kbd-m)o(acr)o
2016(o)-78 1365 y Fi(\342\361\362)n(\340\342\350\362\374)27
2017b(\342)g(\341\363\364\345\360)f
2018(\356\357\360\345\344\345\353\345\355\350\345)i
2019(\354\340\352\360\356\361\340)e(\355\340)i(\377\347\373\352)n(\345)f
2020(Lisp)898 b Fg(M-x)42 b(insert-kbd-macr)o(o)-128 1611
2021y Fh(27)131 b(\312\356\354\340\355\344\373,)43 b
2022(\361\342\377\347\340\355\355\373\345)h(\361)h(Emacs)e(Lisp)-78
20231794 y Fi(\342\373\367\350\361\353\350\362\374)28 b Ff
2024(\342\373\360\340\346)m(\345\355\350\345)g Fi(\357\345\360\345\344)g
2025(\352\363\360\361\356\360\356\354)1389 b Fg(C-x)42 b(C-e)-78
20261894 y Fi(\342\373\367\350\361\353\350\362\374)28 b
2027(\362\345\352\363\371\363\376)g(\364\363\355\352\366\350\376)f
2028Ff(defun)1518 b Fg(C-M-x)-78 1994 y Fi
2029(\342\373\367\350\361\353\350\362\374)28 b Ff
2030(\356\341\353\340\361\362\374)g Fi(\352)n(\340\352)f
2031(\342\373\360\340\346)n(\345\355\350\345)1561 b Fg(M-x)42
2032b(eval-region)-78 2093 y Fi(\361\367\350\362)n(\340\362\374)28
2033b(\350)g(\342\373\367\350\361\353\350\362\374)f(\342\373\360\340\346)n
2034(\345\355\350\345)g(\350\347)g
2035(\354\350\355\350\341\363\364\345\360\340)1078 b Fg(M-:)-78
20362193 y Fi(\347\340\343\360\363\347\350\362\374)27 b(\350\347)h
2037(\361\362)n(\340\355\344\340\360\362\355\356\343\356)e
2038(\361\350\361\362\345\354\355\356\343\356)i(\352)n(\340\362)n
2039(\340\353\356\343)n(\340)1113 b Fg(M-x)42 b(load-library)-128
20402438 y Fh(28)131 b(\317\360\356\361\362)l(\340\377)45
2041b(\355\340\361\362\360\356\351\352)l(\340)-78 2619 y
2042Fi(\355\340\361\362\360\356\350\362\374)28 b
2043(\357\345\360\345\354\345\355\355\373\345)g(\350)f
2044(\356\364\356\360\354\353\345\355\350\345)g(\(faces\))1249
2045b Fg(M-x)42 b(customize)-128 2720 y Fi(\321\356\347\344\340\362\374)27
2046b(\343)n(\353\356\341\340\353\374\355\356\345)e(\355\340\347\355\340)n
2047(\367\345\355\350\345)i(\352\353\376\367\345\351)h(\355\340)f(Emacs)h
2048(Lisp)f(\(\357\360\350\354\345\360\):)-128 2902 y Fg(\(global-set-key)
204938 b("\\C-cg")i('goto-line\))-128 3002 y(\(global-set-key)e("\\M-#")j
2050('query-replace-)o(re)o(gex)o(p\))-128 3276 y Fh(29)131
2051b(\315\340\357\350\361\340\355\350\345)44 b(\352)l
2052(\356\354\340\355\344)-128 3458 y Fg(\(defun)d(<command-name>)d
2053(\(<args>\))-40 3558 y("<documentation)o(>")f(\(interactive)h
2054("<template>"\))-40 3658 y(<body>\))-128 3840 y Fi
2055(\317\360\350\354\345\360:)-128 4023 y Fg(\(defun)j(this-line-to-top-)o
2056(of)o(-wi)o(nd)o(ow)c(\(line\))-40 4122 y("Reposition)i(line)i(point)h
2057(is)h(on)f(to)h(top)f(of)h(window.)-128 4222 y(With)f(ARG,)g(put)h
2058(point)e(on)i(line)f(ARG.")-40 4322 y(\(interactive)c("P"\))-40
20594421 y(\(recenter)h(\(if)k(\(null)e(line\))570 4521 y(0)483
20604621 y(\(prefix-numeric)o(-v)o(al)o(ue)c(line\)\)\)\))-128
20614803 y Fi(\321\357\345\366\350\364\350\352)n(\340\366\350\377)30
2062b Fg(interactive)25 b Fi(\361\356\356\341\371\340\345\362)j(\356)h
2063(\362\356\354,)h(\367\362\356)g(\340\360\343\363\354\345\355\362)g
2064(\355\340\344\356)e(\361\367\350\362\373\342\340\362\374)i
2065(\350\355\362\345\360\340\352\362\350\342\355\356.)g(\304\353\377)f
2066(\344\356\357\356\353\355\350-)-128 4903 y
2067(\362\345\353\374\355\356\351)f
2068(\350\355\364\356\360\354\340\366\350\350)f
2069(\355\340\341\345\360\350\362\345)g Fg(C-h)43 b(f)g(interactive)p
2070Fi(.)1110 5391 y Fb(Cop)n(yrigh)n(t)1461 5389 y(c)1441
20715391 y Fa(\015)23 b Fb(1997)i(F)-6 b(ree)25 b(Soft)n(w)n(are)g(F)-6
2072b(oundation,)25 b(Inc.)1214 5470 y(v2.2)f(for)g(GNU)g(Emacs)e(v)n
2073(ersion)j(21,)f(June)g(1997)1453 5549 y(designed)g(b)n(y)g(Stephen)i
2074(Gildea)1239 5628 y(\317\345\360\345\342\356)n(\344)f(Alex)e(Ott)h
2075(<ottalex)h(at)g(naro)r(d.ru>)-128 5707 y(P)n(ermission)31
2076b(is)h(gran)n(ted)i(to)f(mak)n(e)e(and)i(distribute)g(copies)g(of)e
2077(this)h(card)i(pro)n(vided)f(the)g(cop)n(yrigh)n(t)h(notice)f(and)g
2078(this)f(p)r(ermission)f(notice)i(are)-128 5786 y(preserv)n(ed)27
2079b(on)c(all)g(copies.)-128 5864 y(F)-6 b(or)33 b(copies)f(of)g(the)h
2080(GNU)e(Emacs)g(man)n(ual,)g(write)h(to)h(the)f(F)-6 b(ree)34
2081b(Soft)n(w)n(are)f(F)-6 b(oundation,)33 b(Inc.,)f(59)g(T)-6
2082b(emple)31 b(Place,)h(Suite)g(330,)g(Boston,)h(MA)-128
20835943 y(02111-1307)26 b(USA)1860 6192 y Fi(6)p eop end
2084%%Trailer
2085
2086userdict /end-hook known{end-hook}if
2087%%EOF
diff --git a/etc/ru-refcard.tex b/etc/ru-refcard.tex
new file mode 100644
index 00000000000..608eff79967
--- /dev/null
+++ b/etc/ru-refcard.tex
@@ -0,0 +1,516 @@
1\documentclass[10pt]{article}
2\usepackage{multicol,tabularx}
3\usepackage[a4paper,hmargin={2cm,2cm},vmargin={2cm,2cm},nohead,twoside]{geometry}
4\usepackage[T2A]{fontenc}
5\usepackage[koi8-r]{inputenc}
6\usepackage[english,russian]{babel}
7\usepackage{verbatim}
8%\usepackage{enumerate,calc}
9%\usepackage{indentfirst,amsmath,graphicx,citehack,floatflt}
10%
11%\usepackage{pscyr}
12%\renewcommand{\rmdefault}{fha}
13
14\newlength{\ColWidth}
15\setlength{\ColWidth}{120mm}
16\newlength{\ColThreeWidth}
17\setlength{\ColThreeWidth}{25mm}
18
19\newcommand{\versionnumber}[0]{2.2}
20\newcommand{\nyear}[0]{1997}
21
22\newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill
23 \centerline{\footnotesize \copyright\ \nyear\ Free Software Foundation, Inc.
24 Permissions on back. v\versionnumber}}
25
26\newcommand\copyrightnotice[0]{
27\vskip 1ex plus 2 fill\begingroup\footnotesize
28\centerline{Copyright \copyright\ \nyear\ Free Software Foundation, Inc.}
29\centerline{v\versionnumber{} for GNU Emacs version 21, June \nyear}
30\centerline{designed by Stephen Gildea}
31\centerline{ðÅÒÅ×ÏÄ Alex Ott <ottalex at narod.ru>}
32
33Permission is granted to make and distribute copies of
34this card provided the copyright notice and this permission notice
35are preserved on all copies.
36
37For copies of the GNU Emacs manual, write to the Free Software
38Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
39
40\endgroup}
41
42\hyphenation{mini-buf-fer}
43
44\parindent 0pt
45%\parskip 0.5ex plus .2ex minus .2ex
46
47\newcommand{\kbd}[1]{\texttt{#1}}
48
49\begin{document}
50
51%\begin{multicols}{3}
52
53\centerline{óÐÒÁ×ÏÞÎÁÑ ËÁÒÔÁ ÐÏ GNU Emacs}
54\centerline{(ÄÌÑ ×ÅÒÓÉÉ 21)}
55
56\section{úÁÐÕÓË Emacs}
57
58äÌÑ ÚÁÐÕÓËÁ GNU Emacs 21, ÐÒÏÓÔÏ ÎÁÂÅÒÉÔÅ ÉÍÑ ÐÒÏÇÒÁÍÍÙ: \kbd{emacs}
59
60ï ÔÏÍ, ËÁË ÏÔËÒÙ×ÁÔØ ÆÁÊÌÙ, ÞÉÔÁÊÔÅ ÄÁÌÅÅ × ÒÁÚÄÅÌÅ æÁÊÌÙ.
61
62\section{÷ÙÈÏÄ ÉÚ Emacs}
63
64\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
65ðÒÉÏÓÔÁÎÏ×ÉÔØ ÒÁÂÏÔÕ Emacs (ÉÌÉ Ó×ÅÒÎÕÔØ × ÉËÏÎËÕ ÐÒÉ ÒÁÂÏÔÅ × X) & \kbd{C-z} \\
66÷ÙÊÔÉ ÉÚ Emacs & \kbd{C-x C-c} \\
67\end{tabular}
68
69\section{æÁÊÌÙ}
70
71\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
72{\bf ÏÔËÒÙÔØ} ÆÁÊÌ × ÂÕÆÅÒÅ Emacs & \kbd{C-x C-f} \\
73{\bf ÓÏÈÒÁÎÉÔØ} ÆÁÊÌ ÏÂÒÁÔÎÏ ÎÁ ÄÉÓË & \kbd{C-x C-s} \\
74ÓÏÈÒÁÎÉÔØ {\bf ×ÓÅ} ÆÁÊÌÙ & \kbd{C-x s} \\
75{\bf ×ÓÔÁ×ÉÔØ} ÓÏÄÅÒÖÉÍÏÅ ÄÒÕÇÏÇÏ ÆÁÊÌÁ × ÔÅËÕÝÉÊ ÂÕÆÅÒ & \kbd{C-x i} \\
76ÏÔËÒÙÔØ ÎÕÖÎÙÊ ×ÁÍ ÆÁÊÌ ×ÍÅÓÔÏ ÔÅËÕÝÅÇÏ & \kbd{C-x C-v} \\
77ÓÏÈÒÁÎÉÔØ ÂÕÆÅÒ × ÕËÁÚÁÎÎÏÍ ÆÁÊÌÅ & \kbd{C-x C-w} \\
78÷ËÌÀÞÉÔØ/×ÙËÌÀÞÉÔØ ÓÏÓÔÏÑÎÉÅ ÂÕÆÅÒÁ ``ÔÏÌØËÏ ÄÌÑ ÞÔÅÎÉÑ'' & \kbd{C-x C-q} \\
79\end{tabular}
80
81\section{ðÏÌÕÞÅÎÉÅ ÐÏÍÏÝÉ}
82
83óÐÒÁ×ÏÞÎÁÑ ÓÉÓÔÅÍÁ ÄÏÓÔÁÔÏÞÎÏ ÐÒÏÓÔÁ. HÁÖÍÉÔÅ \kbd{C-h} (ÉÌÉ \kbd{F1}) É
84ÓÌÅÄÕÊÔÅ ÉÎÓÔÒÕËÃÉÑÍ. åÓÌÉ ×Ù × ÐÅÒ×ÙÊ ÒÁÚ ÒÁÂÏÔÁÅÔÅ Ó Emacs, ÎÁÂÅÒÉÔÅ
85\kbd{C-u C-h t Russian RET} ÄÌÑ ×ÙÚÏ×Á {\bf ÕÞÅÂÎÉËÁ}.
86
87\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
88úÁËÒÙÔØ ÏËÎÏ ÓÐÒÁ×ËÉ & \kbd{C-x 1} \\
89ðÒÏËÒÕÔÉÔØ ÏËÎÏ ÓÐÒÁ×ËÉ & \kbd{C-M-v} \\
90
91apropos: ÐÏËÁÚÁÔØ ËÏÍÁÎÄÙ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÓÔÒÏËÅ & \kbd{C-h a} \\
92ÐÏËÁÚÁÔØ ÉÍÑ ÆÕÎËÃÉÉ, ËÏÔÏÒÁÑ ÚÁÐÕÓËÁÅÔÓÑ ËÌÁ×ÉÛÅÊ & \kbd{C-h c} \\
93ÏÐÉÓÁÔØ ÆÕÎËÃÉÀ & \kbd{C-h f} \\
94ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÒÅÖÉÍÅ & \kbd{C-h m} \\
95\end{tabular}
96
97\section{éÓÐÒÁ×ÌÅÎÉÅ ÏÛÉÂÏË}
98
99\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
100{\bf ÐÒÅÒ×ÁÔØ} ÞÁÓÔÉÞÎÏ ÎÁÂÒÁÎÎÕÀ ÉÌÉ ÉÓÐÏÌÎÑÅÍÕÀ ËÏÍÁÎÄÕ & \kbd{C-g} \\
101{\bf ×ÏÓÓÔÁÎÏ×ÉÔØ} ÆÁÊÌ, ÐÏÔÅÒÑÎÎÙÊ ÐÒÉ ËÒÁÈÅ ÓÉÓÔÅÍÙ & \kbd{M-x recover-file} \\
102{\bf ÏÔÍÅÎÉÔØ} ÎÅÖÅÌÁÔÅÌØÎÙÅ ÉÚÍÅÎÅÎÉÑ & \kbd{C-x u {\rm ÉÌÉ} C-\_} \\
103×ÏÓÓÔÁÎÏ×ÉÔØ ÂÕÆÅÒ × ÐÅÒ×ÏÎÁÞÁÌØÎÏÅ ÓÏÓÔÏÑÎÉÅ & \kbd{M-x revert-buffer} \\
104ÐÅÒÅÒÉÓÏ×ÁÔØ ÚÁÐÏÌÎÅÎÎÙÊ ÍÕÓÏÒÏÍ ÜËÒÁÎ & \kbd{C-l} \\
105\end{tabular}
106
107\section{HÁÒÁÝÉ×ÁÅÍÙÊ ÐÏÉÓË}
108
109\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
110ÐÏÉÓË ×ÐÅÒÅÄ & \kbd{C-s} \\
111ÐÏÉÓË ÎÁÚÁÄ & \kbd{C-r} \\
112ÐÏÉÓË ÐÏ ÒÅÇÕÌÑÒÎÏÍÕ ×ÙÒÁÖÅÎÉÀ & \kbd{C-M-s} \\
113ÐÏÉÓË ÐÏ ÒÅÇÕÌÑÒÎÏÍÕ ×ÙÒÁÖÅÎÉÀ ÎÁÚÁÄ & \kbd{C-M-r} \\
114
115×ÙÂÒÁÔØ ÐÒÅÄÙÄÕÝÕÀ ÓÔÒÏËÕ ÐÏÉÓËÁ & \kbd{M-p} \\
116×ÙÂÒÁÔØ ÓÌÅÄÕÀÝÕÀ ÓÔÒÏËÕ ÐÏÉÓËÁ & \kbd{M-n} \\
117ÐÒÅËÒÁÔÉÔØ ÎÁÒÁÝÉ×ÁÅÍÙÊ ÐÏÉÓË & \kbd{RET} \\
118ÏÔÍÅÎÉÔØ ÜÆÆÅËÔ ××ÏÄÁ ÐÏÓÌÅÄÎÅÇÏ ÓÉÍ×ÏÌÁ & \kbd{DEL} \\
119ÐÒÅÒ×ÁÔØ ÔÅËÕÝÉÊ ÐÏÉÓË & \kbd{C-g} \\
120\end{tabular}
121
122äÌÑ ÐÏ×ÔÏÒÁ ÐÏÉÓËÁ × ÌÀÂÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ ÉÓÐÏÌØÚÕÊÔÅ ËÌÁ×ÉÛÉ \kbd{C-s} ÉÌÉ
123\kbd{C-r}. åÓÌÉ Emacs ×ÓÅ ÅÝÅ ÐÒÏÉÚ×ÏÄÉÔ ÐÏÉÓË, \kbd{C-g} ÏÔÍÅÎÉÔ ÔÏÌØËÏ
124ÎÅÓÄÅÌÁÎÎÕÀ ÞÁÓÔØ.
125
126\section{ðÅÒÅÍÅÝÅÎÉÅ}
127
128\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
129{\bf ÅÄÉÎÉÃÙ ÐÅÒÅÍÅÝÅÎÉÑ} & {\bf ÎÁÚÁÄ} & {\bf ×ÐÅÒÅÄ} \\
130ÓÉÍ×ÏÌ & \kbd{C-b} & \kbd{C-f} \\
131ÓÌÏ×Ï & \kbd{M-b} & \kbd{M-f} \\
132ÓÔÒÏËÁ & \kbd{C-p} & \kbd{C-n} \\
133ÎÁÞÁÌÏ (ÉÌÉ ËÏÎÅÃ) ÓÔÒÏËÉ & \kbd{C-a} & \kbd{C-e} \\
134ÐÒÅÄÌÏÖÅÎÉÅ & \kbd{M-a} & \kbd{M-e} \\
135ÁÂÚÁÃ & \kbd{M-\{} & \kbd{M-\}} \\
136ÓÔÒÁÎÉÃÁ & \kbd{C-x [} & \kbd{C-x ]} \\
137×ÙÒÁÖÅÎÉÅ (sexp) & \kbd{C-M-b} & \kbd{C-M-f} \\
138ÆÕÎËÃÉÑ & \kbd{C-M-a} & \kbd{C-M-e} \\
139ÐÅÒÅÈÏÄ × ÎÁÞÁÌÏ (ÉÌÉ ËÏÎÅÃ) ÂÕÆÅÒÁ & \kbd{M-<} & \kbd{M->} \\
140
141\end{tabular}
142
143\begin{tabular}{p{\ColWidth}l}
144ÐÒÏËÒÕÔËÁ ÜËÒÁÎÁ ×ÎÉÚ & \kbd{C-v} \\
145ÐÒÏËÒÕÔËÁ ÜËÒÁÎÁ ××ÅÒÈ & \kbd{M-v} \\
146ÐÒÏËÒÕÔËÁ ×ÌÅ×Ï & \kbd{C-x <} \\
147ÐÒÏËÒÕÔËÁ ×ÐÒÁ×Ï & \kbd{C-x >} \\
148ÐÒÏËÒÕÔËÁ ÔÅËÕÝÅÊ ÓÔÒÏËÉ × ÃÅÎÔÒ ÜËÒÁÎÁ & \kbd{C-u C-l} \\
149\end{tabular}
150
151\section{õÎÉÞÔÏÖÅÎÉÅ É ÕÄÁÌÅÎÉÅ}
152
153\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
154{\bf ÕÎÉÞÔÏÖÁÅÍÙÊ ÏÂßÅËÔ} & {\bf ÎÁÚÁÄ} & {\bf ×ÐÅÒÅÄ} \\
155ÓÉÍ×ÏÌ (ÕÄÁÌÅÎÉÅ, Á ÎÅ ÕÎÉÞÔÏÖÅÎÉÅ) & \kbd{DEL} & \kbd{C-d} \\
156ÓÌÏ×Ï & \kbd{M-DEL} & \kbd{M-d} \\
157ÓÔÒÏËÁ (ÄÏ ËÏÎÃÁ ÓÔÒÏËÉ) & \kbd{M-0 C-k} & \kbd{C-k} \\
158ÐÒÅÄÌÏÖÅÎÉÅ & \kbd{C-x DEL} & \kbd{M-k} \\
159×ÙÒÁÖÅÎÉÅ & \kbd{M-- C-M-k} & \kbd{C-M-k} \\
160\end{tabular}
161
162
163\begin{tabular}{p{\ColWidth}l}
164ÕÎÉÞÔÏÖÉÔØ {\bf ÏÂÌÁÓÔØ} & \kbd{C-w} \\
165ÓËÏÐÉÒÏ×ÁÔØ ÏÂÌÁÓÔØ × ÓÐÉÓÏË ÕÎÉÞÔÏÖÅÎÉÊ & \kbd{M-w} \\
166ÕÎÉÞÔÏÖÉÔØ ÄÏ ÓÌÅÄÕÀÝÅÇÏ ×ÈÏÖÄÅÎÉÑ ÓÉÍ×ÏÌÁ {\it char} & \kbd{M-z {\it char}} \\
167
168×ÓÔÁ×ÉÔØ ÐÏÓÌÅÄÎÉÊ ÕÎÉÞÔÏÖÅÎÎÙÊ ÏÂßÅËÔ & \kbd{C-y} \\
169ÚÁÍÅÎÉÔØ ÔÏÌØËÏ ÞÔÏ ×ÏÓÓÔÁÎÏ×ÌÅÎÎÙÊ ÔÅËÓÔ ÐÒÅÄÛÅÓÔ×ÕÀÝÉÍ ÕÎÉÞÔÏÖÅÎÎÙÍ ÔÅËÓÔÏÍ & M-y \\
170\end{tabular}
171
172\section{ðÏÍÅÔËÁ}
173
174\begin{tabular}{p{\ColWidth}l}
175ÕÓÔÁÎÏ×ÉÔØ ÐÏÍÅÔËÉ & \kbd{C-@ {\rm or} C-SPC} \\
176ÏÂÍÅÎÑÔØ ÍÅÓÔÁÍÉ ËÕÒÓÏÒ É ÐÏÍÅÔËÕ & \kbd{C-x C-x} \\
177
178ÐÏÍÅÔÉÔØ {\it arg\/} {\bf ÓÌÏ×} & \kbd{M-@} \\
179ÐÏÍÅÔÉÔØ {\bf ÐÁÒÁÇÒÁÆ} & \kbd{M-h} \\
180ÐÏÍÅÔÉÔØ {\bf ÓÔÒÁÎÉÃÕ} & \kbd{C-x C-p} \\
181ÐÏÍÅÔÉÔØ {\bf ×ÙÒÁÖÅÎÉÅ} & \kbd{C-M-@} \\
182ÐÏÍÅÔÉÔØ {\bf ÆÕÎËÃÉÀ} & \kbd{C-M-h} \\
183ÐÏÍÅÔÉÔØ ×ÅÓØ {\bf ÂÕÆÅÒ} & \kbd{C-x h} \\
184\end{tabular}
185
186\section{úÁÍÅÎÁ Ó ÚÁÐÒÏÓÏÍ}
187
188\begin{tabular}{p{\ColWidth}l}
189ÉÎÔÅÒÁËÔÉ×ÎÁÑ ÚÁÍÅÎÁ ÔÅËÓÔÏ×ÏÊ ÓÔÒÏËÉ & \kbd{M-\%} \\
190Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ & \kbd{M-x query-replace-regexp} \\
191\end{tabular}
192
193÷ ÒÅÖÉÍÅ ÉÎÔÅÒÁËÔÉ×ÎÏÊ ÚÁÍÅÎÙ ÐÏÌØÚÏ×ÁÔÅÌÀ ÄÏÓÔÕÐÎÙ ÓÌÅÄÕÀÝÉÅ ÏÔ×ÅÔÙ:
194
195\begin{tabular}{p{\ColWidth}l}
196{\bf ÚÁÍÅÎÉÔØ} ÄÁÎÎÏÅ ÓÏÏÔ×ÅÔÓÔ×ÉÅ, ÐÅÒÅÊÔÉ Ë ÓÌÅÄÕÀÝÅÍÕ & \kbd{SPC} \\
197ÚÁÍÅÎÉÔØ ÜÔÏ ÓÏÏÔ×ÅÔÓÔ×ÉÅ, ÎÅ ÐÅÒÅÍÅÝÁÔØÓÑ & \kbd{,} \\
198{\bf ÐÒÏÐÕÓÔÉÔØ} ÓÏÏÔ×ÅÔÓÔ×ÉÅ ÂÅÚ ÚÁÍÅÎÙ & \kbd{DEL} \\
199ÚÁÍÅÎÉÔØ ×ÓÅ ÏÓÔÁ×ÛÉÅÓÑ ÓÏÏÔ×ÅÔÓÔ×ÉÑ & \kbd{!} \\
200{\bf ×ÅÒÎÕÔØÓÑ} Ë ÐÒÅÄÙÄÕÝÅÍÕ ÓÏÏÔ×ÅÔÓÔ×ÉÀ & \kbd{\^} \\
201{\bf ×ÙÊÔÉ} ÉÚ ÒÅÖÉÍÁ ÚÁÍÅÎÁ Ó ÚÁÐÒÏÓÏÍ & \kbd{RET} \\
202×ÏÊÔÉ × ÒÅÖÉÍ ÒÅËÕÒÓÉ×ÎÏÇÏ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ (ÄÌÑ ×ÙÈÏÄÁ ÉÓÐÏÌØÚÕÅÔÓÑ \kbd{C-M-c}) & \kbd{C-r} \\
203\end{tabular}
204
205\section{íÎÏÖÅÓÔ×Ï ÏËÏÎ}
206
207ëÏÍÁÎÄÙ, ÐÒÉ×ÅÄÅÎÎÙÅ ×Ï ×ÔÏÒÏÍ ÓÔÏÌÂÃÅ, ÐÒÉÍÅÎÑÀÔÓÑ Ë ÄÒÕÇÏÍÕ
208(ÎÅÁËÔÉ×ÎÏÍÕ) ÏËÎÕ.
209
210\begin{tabular}{p{\ColWidth}l}
211ÕÄÁÌÉÔØ ×ÓÅ ÏÓÔÁÌØÎÙÅ ÏËÎÁ & \kbd{C-x 1} \\
212\end{tabular}
213
214\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
215ÒÁÚÂÉÔØ ÏËÎÏ ÐÏ ÇÏÒÉÚÏÎÔÁÌÉ & \kbd{C-x 2\ \ \ \ } & \kbd{C-x 5 2} \\
216ÕÄÁÌÉÔØ ÄÁÎÎÏÅ ÏËÎÏ & \kbd{C-x 0\ \ \ \ } & \kbd{C-x 5 0} \\
217
218ÒÁÚÂÉÔØ ÏËÎÏ ÐÏ ×ÅÒÔÉËÁÌÉ & \kbd{C-x 3} \\
219
220×ÙÐÏÌÎÉÔØ ÐÒÏËÒÕÔËÕ × ÄÒÕÇÏÍ ÏËÎÅ & \kbd{C-M-v} \\
221\end{tabular}
222
223\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
224ÐÅÒÅÍÅÓÔÉÔØ ËÕÒÓÏÒ × ÄÒÕÇÏÅ ÏËÎÏ & \kbd{C-x o} & \kbd{C-x 5 o} \\
225
226×ÙÂÒÁÔØ ÂÕÆÅÒ × ÄÒÕÇÏÍ ÏËÎÅ & \kbd{C-x 4 b} & \kbd{C-x 5 b} \\
227ÐÏËÁÚÁÔØ ÂÕÆÅÒ × ÄÒÕÇÏÍ ÏËÎÅ & \kbd{C-x 4 C-o} & \kbd{C-x 5 C-o} \\
228ÚÁÇÒÕÚÉÔØ ÆÁÊÌ × ÄÒÕÇÏÅ ÏËÎÏ & \kbd{C-x 4 f} & \kbd{C-x 5 f} \\
229ÏÔËÒÙÔØ ÆÁÊÌ × ÒÅÖÉÍÅ ÞÔÅÎÉÑ × ÄÒÕÇÏÍ ÏËÎÅ & \kbd{C-x 4 r} & \kbd{C-x 5 r} \\
230ÚÁÐÕÓÔÉÔØ Dired × ÄÒÕÇÏÍ ÏËÎÅ & \kbd{C-x 4 d} & \kbd{C-x 5 d} \\
231ÎÁÊÔÉ ÔÁÇ × ÄÒÕÇÏÍ ÏËÎÅ & \kbd{C-x 4 .} & \kbd{C-x 5 .} \\
232
233\end{tabular}
234
235\begin{tabular}{p{\ColWidth}l}
236Õ×ÅÌÉÞÉÔØ ×ÙÓÏÔÕ ÏËÎÁ & \kbd{C-x \^} \\
237ÓÕÚÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ & \kbd{C-x \{} \\
238ÒÁÓÛÉÒÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ & \kbd{C-x \}} \\
239\end{tabular}
240
241\section{æÏÒÍÁÔÉÒÏ×ÁÎÉÅ}
242
243\begin{tabular}{p{\ColWidth}l}
244ÓÄÅÌÁÔØ ÏÔÓÔÕÐ ÄÌÑ ÔÅËÕÝÅÊ {\bf ÓÔÒÏËÉ} (× ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÒÅÖÉÍÁ) & \kbd{TAB} \\
245ÓÄÅÌÁÔØ ÏÔÓÔÕÐ ÄÌÑ {\bf ÏÂÌÁÓÔÉ} (× ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÒÅÖÉÍÁ) & \kbd{C-M-$\backslash$} \\
246ÓÄÅÌÁÔØ ÏÔÓÔÕÐ ÄÌÑ {\bf ×ÙÒÁÖÅÎÉÑ} (× ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÒÅÖÉÍÁ) & \kbd{C-M-q} \\
247ÓÄÅÌÁÔØ ÏÔÓÔÕÐ Ë ÚÁÄÁÎÎÏÊ {\it arg\/} ËÏÌÏÎËÅ & \kbd{C-x TAB} \\
248
249×ÓÔÁ×ÉÔØ ÎÏ×ÕÀ ÓÔÒÏËÕ ÐÏÓÌÅ ËÕÒÓÏÒÁ & \kbd{C-o} \\
250ÓÄ×ÉÎÕÔØ ÏÓÔÁÔÏË ÓÔÒÏËÉ ×ÅÒÔÉËÁÌØÎÏ ×ÎÉÚ & \kbd{C-M-o} \\
251ÕÄÁÌÉÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ ×ÏËÒÕÇ ËÕÒÓÏÒÁ & \kbd{C-x C-o} \\
252ÏÂßÅÄÉÎÉÔØ ÓÔÒÏËÕ Ó ÐÒÅÄÙÄÕÝÅÊ (ÓÏ ÓÌÅÄÕÀÝÉÍÉ arg) & \kbd{M-\^} \\
253ÕÄÁÌÉÔØ ÐÕÓÔÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ×ÏËÒÕÇ ËÕÒÓÏÒÁ & \kbd{M-$\backslash$} \\
254ÐÏÍÅÓÔÉÔØ ÔÏÌØËÏ ÏÄÉÎ ÐÒÏÂÅÌ × ÐÏÚÉÃÉÉ ËÕÒÓÏÒÁ & \kbd{M-SPC} \\
255
256ÚÁÐÏÌÎÉÔØ ÔÅËÕÝÉÊ ÐÁÒÁÇÒÁÆ & \kbd{M-q} \\
257ÕÓÔÁÎÏ×ÉÔØ ÓÔÏÌÂÅà ÚÁÐÏÌÎÅÎÉÑ & \kbd{C-x f} \\
258ÕÓÔÁÎÏ×ÉÔØ ÐÒÅÆÉËÓ ÚÁÐÏÌÎÅÎÉÑ ËÁÖÄÏÊ ÓÔÒÏËÉ & \kbd{C-x .} \\
259
260ÕÓÔÁÎÏ×ÉÔØ ÎÁÞÅÒÔÁÎÉÅ & \kbd{M-g} \\
261\end{tabular}
262
263\section{éÚÍÅÎÅÎÉÅ ÒÅÇÉÓÔÒÁ}
264
265\begin{tabular}{p{\ColWidth}l}
266ÓÄÅÌÁÔØ ÂÕË×Ù ÓÌÏ×Á ÚÁÇÌÁ×ÎÙÍÉ & \kbd{M-u} \\
267ÓÄÅÌÁÔØ ÂÕË×Ù ÓÌÏ×Á ÓÔÒÏÞÎÙÍÉ & \kbd{M-l} \\
268ÓÄÅÌÁÔØ ÐÅÒ×ÕÀ ÂÕË×Õ ÓÌÏ×Á ÚÁÇÌÁ×ÎÏÊ & \kbd{M-c} \\
269
270ÓÄÅÌÁÔØ ÂÕË×Ù ÏÂÌÁÓÔÉ ÚÁÇÌÁ×ÎÙÍÉ & \kbd{C-x C-u} \\
271ÓÄÅÌÁÔØ ÂÕË×Ù ÏÂÌÁÓÔÉ ÓÔÒÏÞÎÙÍÉ & \kbd{C-x C-l} \\
272\end{tabular}
273
274\section{íÉÎÉÂÕÆÅÒ}
275
276óÌÅÄÕÀÝÉÅ ËÌÁ×ÉÛÉ (ËÌÀÞÉ) ÏÐÒÅÄÅÌÅÎÙ × ÍÉÎÉÂÕÆÅÒÅ.
277
278\begin{tabular}{p{\ColWidth}l}
279ÄÏÐÏÌÎÉÔØ ÎÁÓËÏÌØËÏ ×ÏÚÍÏÖÎÏ & \kbd{TAB} \\
280ÄÏÐÏÌÎÉÔØ ÄÏ ÏÄÎÏÇÏ ÓÌÏ×Á & \kbd{SPC} \\
281ÄÏÐÏÌÎÉÔØ É ×ÙÐÏÌÎÉÔØ & \kbd{RET} \\
282ÐÏËÁÚÁÔØ ×ÏÚÍÏÖÎÙÅ ÄÏÐÏÌÎÅÎÉÑ & \kbd{?} \\
283×ÙÂÒÁÔØ ÐÒÅÄÙÄÕÝÉÊ ××ÏÄ × ÍÉÎÉÂÕÆÅÒ & \kbd{M-p} \\
284×ÙÂÒÁÔØ ÓÌÅÄÕÀÝÉÊ ××ÏÄ × ÍÉÎÉÂÕÆÅÒ & \kbd{M-n} \\
285ÐÏÉÓË × ÉÓÔÏÒÉÉ ÐÏ ÒÅÇÕÌÑÒÎÏÍÕ ×ÙÒÁÖÅÎÉÀ × ÏÂÒÁÔÎÏÍ ÎÁÐÒ×ÌÅÎÉÉ & \kbd{M-r} \\
286ÐÏÉÓË × ÉÓÔÏÒÉÉ ÐÏ ÒÅÇÕÌÑÒÎÏÍÕ ×ÙÒÁÖÅÎÉÀ × ÐÒÑÍÏÍ ÎÁÐÒ×ÌÅÎÉÉ & \kbd{M-s} \\
287ÐÒÅÒ×ÁÔØ ËÏÍÁÎÄÕ & \kbd{C-g} \\
288\end{tabular}
289
290îÁÂÅÒÉÔÅ \kbd{C-x ESC ESC} ÄÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ É ÐÏ×ÔÏÒÅÎÉÑ ÐÏÓÌÅÄÎÅÊ
291ËÏÍÁÎÄÙ ÎÁÂÒÁÎÎÏÊ × ÍÉÎÉÂÕÆÅÒÅ. îÁÂÅÒÉÔÅ \kbd{F10}, ÞÔÏÂÙ ÒÁÂÏÔÁÔØ Ó
292ÐÕÎËÔÁÍÉ ÍÅÎÀ ÐÒÉ ÐÏÍÏÝÉ ËÏÍÁÎÄ ÍÉÎÉÂÕÆÅÒÁ.
293
294\section{âÕÆÅÒÁ}
295
296\begin{tabular}{p{\ColWidth}l}
297×ÙÂÒÁÔØ ÄÒÕÇÏÊ ÂÕÆÅÒ & \kbd{C-x b} \\
298×ÙÄÁÔØ ÓÐÉÓÏË ×ÓÅÈ ÂÕÆÅÒÏ× & \kbd{C-x C-b} \\
299ÕÎÉÞÔÏÖÉÔØ ÂÕÆÅÒ & \kbd{C-x k} \\
300\end{tabular}
301
302\section{ïÂÍÅÎ ÍÅÓÔÁÍÉ}
303
304\begin{tabular}{p{\ColWidth}l}
305ÏÂÍÅÎÑÔØ ÍÅÓÔÁÍÉ {\bf ÓÉÍ×ÏÌÙ} & \kbd{C-t} \\
306ÏÂÍÅÎÑÔØ ÍÅÓÔÁÍÉ {\bf ÓÌÏ×Á} & \kbd{M-t} \\
307ÏÂÍÅÎÑÔØ ÍÅÓÔÁÍÉ {\bf ÓÔÒÏËÉ} & \kbd{C-x C-t} \\
308ÏÂÍÅÎÑÔØ ÍÅÓÔÁÍÉ {\bf ×ÙÒÁÖÅÎÉÑ} & \kbd{C-M-t} \\
309\end{tabular}
310
311\section{ðÒÏ×ÅÒËÁ ÇÒÁÍÍÁÔÉËÉ}
312
313\begin{tabular}{p{\ColWidth}l}
314ÐÒÏ×ÅÒÉÔØ ÔÅËÕÝÅÅ ÓÌÏ×Ï & \kbd{M-\$} \\
315ÐÒÏ×ÅÒÉÔØ ×ÓÅ ÓÌÏ×Á × ÏÂÌÁÓÔÉ & \kbd{M-x ispell-region} \\
316×ÙÐÏÌÎÉÔØ ÐÒÏ×ÅÒËÕ ×ÓÅÇÏ ÂÕÆÅÒÁ & \kbd{M-x ispell-buffer} \\
317\end{tabular}
318
319\section{ôÅÇÉ}
320
321\begin{tabular}{p{\ColWidth}l}
322ÎÁÊÔÉ ÏÐÒÅÄÅÌÅÎÉÅ ÔÅÇÁ & \kbd{M-.} \\
323ÎÁÊÔÉ ÓÌÅÄÕÀÝÅÅ ×ÈÏÖÄÅÎÉÅ ÔÅÇÁ & \kbd{C-u M-.} \\
324ÕËÁÚÁÔØ ÎÏ×ÙÊ ÆÁÊÌ Ó ÔÅÇÁÍÉ & \kbd{M-x visit-tags-table} \\
325
326ÐÏÉÓË ÐÏ ÛÁÂÌÏÎÕ ÐÏ ×ÓÅÊ ÔÁÂÌÉÃÅ ÔÅÇÏ× & \kbd{M-x tags-search} \\
327×ÙÐÏÌÎÉÔØ query-replace ÎÁÄ ×ÓÅÍÉ ÆÁÊÌÁÍÉ & \kbd{M-x tags-query-replace} \\
328ÐÒÏÄÏÌÖÉÔØ ÐÏÉÓË ÉÌÉ ÐÏÉÓË-ÚÁÍÅÎÕ ÔÅÇÁ & \kbd{M-,} \\
329\end{tabular}
330
331\section{ëÏÍÁÎÄÎÙÅ ÐÒÏÃÅÓÓÏÒÙ}
332
333\begin{tabular}{p{\ColWidth}l}
334÷ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ & \kbd{M-!} \\
335×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ ÎÁÄ ÏÂÌÁÓÔØÀ & \kbd{M-|} \\
336ÐÒÏÐÕÓÔÉÔØ ÓÏÄÅÒÖÉÍÏÅ ÏÂÌÁÓÔÉ ÞÅÒÅÚ ËÏÍÁÎÄÕ ËÏÍÁÎÄÎÏÇÏ ÐÒÏÃÅÓÓÏÒÁ & \kbd{C-u M-|} \\
337ÚÁÐÕÓÔÉÔØ ËÏÍÁÎÄÎÙÊ ÐÒÏÃÅÓÓÏÒ × ÏËÎÅ \kbd{*shell*} & \kbd{M-x shell} \\
338\end{tabular}
339
340\section{ðÒÑÍÏÕÇÏÌØÎÙÅ ÏÂÌÁÓÔÉ}
341
342\begin{tabular}{p{\ColWidth}l}
343ÓËÏÐÉÒÏ×ÁÔØ ÐÒÑÍÏÕÇÏÌØÎÕÀ ÏÂÌÁÓÔØ × ÒÅÇÉÓÔÒ & \kbd{C-x r r} \\
344ÕÄÁÌÉÔØ ÐÒÑÍÏÕÇÏÌØÎÕÀ ÏÂÌÁÓÔØ & \kbd{C-x r k} \\
345×ÓÔÁ×ÉÔØ ÐÏÓÌÅÄÎÕÀ ÕÎÉÞÔÏÖÅÎÎÕÀ ÐÒÑÍÏÕÇÏÌØÎÕÀ ÏÂÌÁÓÔØ & \kbd{C-x r y} \\
346ÏÔËÒÙÔØ ÐÒÑÍÏÕÇÏÌØÎÕÀ ÏÂÌÁÓÔØ, ÓÄ×ÉÇÁÑ ÔÅËÓÔ ×ÐÒÁ×Ï & \kbd{C-x r o} \\
347ÏÞÉÓÔÉÔØ ÐÒÑÍÏÕÇÏÌØÎÕÀ ÏÂÌÁÓÔØ & \kbd{C-x r c} \\
348ÐÒÅÄ×ÁÒÉÔØ ËÁÖÄÕÀ ÓÔÒÏËÕ ÓÔÒÏËÏÊ ÔÅËÓÔÁ & \kbd{C-x r t} \\
349\end{tabular}
350
351\section{óÏËÒÁÝÅÎÉÑ}
352
353\begin{tabular}{p{\ColWidth}l}
354ÄÏÂÁ×ÉÔØ ÇÌÏÂÁÌØÎÏÅ ÓÏËÒÁÝÅÎÉÅ & \kbd{C-x a g} \\
355ÄÏÂÁ×ÉÔØ ÌÏËÁÌØÎÏÅ ÄÌÑ ÒÅÖÉÍÁ ÓÏËÒÁÝÅÎÉÅ & \kbd{C-x a l} \\
356ÄÏÂÁ×ÉÔØ ÇÌÏÂÁÌØÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ÄÁÎÎÏÇÏ ÓÏËÒÁÝÅÎÉÑ & \kbd{C-x a i g} \\
357ÄÏÂÁ×ÉÔØ ÓÐÅÃÉÆÉÞÅÓËÏÅ ÄÌÑ ÒÅÖÉÍÁ ÚÎÁÞÅÎÉÅ ÄÁÎÎÏÇÏ ÓÏËÒÁÝÅÎÉÑ & \kbd{C-x a i l} \\
358Ñ×ÎÏ ×ÓÔÁ×ÉÔØ ÚÎÁÞÅÎÉÅ ÄÌÑ ÓÏËÒÁÝÅÎÉÑ & \kbd{C-x a e} \\
359
360ÄÉÎÁÍÉÞÅÓËÉ ÄÏÐÏÌÎÉÔØ ÐÒÅÄÙÄÕÝÅÅ ÓÌÏ×Ï & \kbd{M-/} \\
361\end{tabular}
362
363\section{òÅÇÕÌÑÒÎÙÅ ×ÙÒÁÖÅÎÉÑ}
364
365\begin{tabular}{p{\ColWidth}l}
366ÌÀÂÏÊ ÏÄÉÎÏÞÎÙÊ ÓÉÍ×ÏÌ (ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÓÉÍ×ÏÌÁ ÎÏ×ÏÊ ÓÔÒÏËÉ) & \kbd{. {\rm(dot)}} \\
367ÎÏÌØ ÉÌÉ ÂÏÌÅÅ ÐÏ×ÔÏÒÅÎÉÊ & \kbd{*} \\
368ÏÄÎÏ ÉÌÉ ÂÏÌÅÅ ÐÏ×ÔÏÒÅÎÉÊ & \kbd{+} \\
369ÎÏÌØ ÉÌÉ ÏÄÎÏ ÐÏ×ÔÏÒÅÎÉÅ & \kbd{?} \\
370ÜËÒÁÎÉÒÏ×ÁÔØ ÓÐÅÃÉÁÌØÎÙÊ ÓÉÍ×ÏÌ {\it c\/} & \kbd{$\backslash${\it c}} \\
371×ÙÂÏÒ ÍÅÖÄÕ ÁÌØÔÅÒÎÁÔÉ×ÁÍÉ (``ÉÌÉ'') & \kbd{$\backslash|$} \\
372ÇÒÕÐÐÉÒÏ×ËÁ & \kbd{$\backslash$( {\rm$\ldots$} $\backslash$)} \\
373ÔÅËÓÔ × {\it n\/}-Ê ÇÒÕÐÐÅ & \kbd{$\backslash${\it n}} \\
374ÇÒÁÎÉÃÁ ÓÌÏ×Á & \kbd{$\backslash$b} \\
375ÎÅ ÇÒÁÎÉÃÁ ÓÌÏ×Á & \kbd{$\backslash$B} \\
376\end{tabular}
377
378\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
379{\bf ÏÂßÅËÔ} & {\bf ÎÁÞÁÌÏ ÓÏÏÔ×ÅÔÓÔ×ÉÑ} & {\bf ËÏÎÅà ÓÏÏÔ×ÅÔÓÔ×ÉÑ} \\
380ÓÔÒÏËÁ & \kbd{\^} & \kbd{\$} \\
381ÓÌÏ×Ï & \kbd{$\backslash$<} & \kbd{$\backslash$>} \\
382ÂÕÆÅÒ & \kbd{$\backslash$`} & \kbd{$\backslash$'} \\
383\end{tabular}
384
385\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
386{\bf ËÌÁÓÓ ÓÉÍ×ÏÌÏ×} & {\bf ÓÏÏÔ×ÅÔ\-ÓÔ×ÕÅÔ ÉÍ} & {\bf ÓÏÏÔ×ÅÔ\-ÓÔ×ÕÅÔ ÄÒÕÇÉÍ} \\
387Ñ×ÎÙÊ ÎÁÂÏÒ & \kbd{[ {\rm$\ldots$} ]} & \kbd{[\^ {\rm$\ldots$} ]} \\
388ÓÉÍ×ÏÌ-ÂÕË×Á & \kbd{$\backslash$w} & \kbd{$\backslash$W} \\
389ÓÉÍ×ÏÌ Ó ÓÉÎÔÁËÓÉÓÏÍ {\it c} & \kbd{$\backslash$s{\it c}} & \kbd{$\backslash$S{\it c}} \\
390\end{tabular}
391
392\section{íÅÖÄÕÎÁÒÏÄÎÙÅ ÎÁÂÏÒÙ ÓÉÍ×ÏÌÏ×}
393
394\begin{tabular}{p{\ColWidth}l}
395×ÙÂÒÁÔØ ÑÚÙË & \kbd{M-x set-language-environment} \\
396ÐÏËÁÚÁÔØ ×ÓÅ ×ÏÚÍÏÖÎÙÅ ÍÅÔÏÄÙ ××ÏÄÁ & \kbd{M-x list-input-methods} \\
397ÒÁÚÒÅÛÉÔØ ÉÌÉ ÚÁÐÒÅÔÉÔØ ÍÅÔÏÄ ××ÏÄÁ & \kbd{C-$\backslash$} \\
398ÕÓÔÁÎÏ×ÉÔØ ÓÉÓÔÅÍÕ ËÏÄÉÒÏ×ÁÎÉÑ ÄÌÑ ÓÌÅÄÕÀÝÅÊ ËÏÍÁÎÄÙ & \kbd{C-x RET c} \\
399ÐÏËÁÚÁÔØ ÓÐÉÓÏË ×ÓÅÈ ÓÉÓÔÅÍ ËÏÄÉÒÏ×ÁÎÉÑ & \kbd{M-x list-coding-systems} \\
400×ÙÂÒÁÔØ ÐÒÅÄÐÏÞÔÉÔÅÌØÎÕÀ ÓÉÓÔÅÍÕ ËÏÄÉÒÏ×ÁÎÉÑ & \kbd{M-x prefer-coding-system} \\
401\end{tabular}
402
403\section{éÎÆÏÒÍÁÃÉÑ (ÓÉÓÔÅÍÁ Info)}
404
405\begin{tabular}{p{\ColWidth}l}
406ÚÁÐÕÓÔÉÔØ ÓÉÓÔÅÍÕ ÄÏÓÔÕÐÁ Ë ÄÏËÕÍÅÎÔÁÃÉÉ & \kbd{C-h i} \\
407ÎÁÊÔÉ ÕËÁÚÁÎÎÕÀ ÆÕÎËÃÉÀ ÉÌÉ ÐÅÒÅÍÅÎÎÕÀ × ÄÏËÕÍÅÎÔÁÃÉÉ & \kbd{C-h C-i} \\
408\end{tabular}
409
410ðÅÒÅÍÅÝÅÎÉÅ ×ÎÕÔÒÉ ÕÚÌÁ (ÎÏÄÁÍÉ):
411
412\begin{tabular}{p{\ColWidth}l}
413ÐÒÏËÒÕÔËÁ ×ÐÅÒÅÄ & \kbd{SPC} \\
414ÐÒÏËÒÕÔËÁ ÎÁÚÁÄ & \kbd{DEL} \\
415ÐÅÒÅÊÔÉ Ë ÎÁÞÁÌÕ ÕÚÌÁ & \kbd{. {\rm (dot)}} \\
416\end{tabular}
417
418ðÅÒÅÍÅÝÅÎÉÅ ÍÅÖÄÕ ÕÚÌÁÍÉ:
419
420\begin{tabular}{p{\ColWidth}l}
421{\bf ÓÌÅÄÕÀÝÉÊ} ÕÚÅÌ & \kbd{n} \\
422{\bf ÐÒÅÄÙÄÕÝÉÊ} ÕÚÅÌ & \kbd{p} \\
423ÐÅÒÅÊÔÉ Ë {\bf ×ÅÒÈÎÅÍÕ} ÕÚÌÕ & \kbd{u} \\
424×ÙÂÒÁÔØ ÍÅÎÀ ÐÏ ÉÍÅÎÉ & \kbd{m} \\
425×ÙÂÒÁÔØ {\it n\/}-Ê ÐÕÎËÔ ÍÅÎÀ ÐÏ ÎÏÍÅÒÕ (1--9) & \kbd{{\it n}} \\
426ÐÅÒÅÊÔÉ ÐÏ ÓÓÙÌËÅ (×ÏÚ×ÒÁÔ Ó ÐÏÍÏÝØÀ \kbd{l}) & \kbd{f} \\
427×ÏÚ×ÒÁÔÉÔÓÑ Ë ÐÏÓÌÅÄÎÅÍÕ ÐÒÏÓÍÏÔÒÅÎÎÏÍÕ ÕÚÌÕ & \kbd{l} \\
428×ÏÚ×ÒÁÔÉÔÓÑ Ë ÕÚÌÕ-ËÁÔÁÌÏÇÕ & \kbd{d} \\
429ÐÅÒÅÊÔÉ Ë ÕÚÌÕ, ÚÁÄÁÎÎÏÍÕ ÉÍÅÎÅÍ & \kbd{g} \\
430\end{tabular}
431
432äÒÕÇÉÅ ËÏÍÁÎÄÙ:
433
434\begin{tabular}{p{\ColWidth}l}
435ÚÁÐÕÓÔÉÔØ {\bf ÕÞÅÂÎÉË} ÐÏ ÓÉÓÔÅÍÅ ÄÏËÕÍÅÎÔÁÃÉÉ & \kbd{h} \\
436{\bf ÐÒÅËÒÁÔÉÔØ ÒÁÂÏÔÕ} Ó ÄÏËÕÍÅÎÔÁÃÉÅÊ & \kbd{q} \\
437ÐÏÉÓË × ÕÚÌÁÈ Ó ÐÏÍÏÝØÀ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ & \kbd{M-s} \\
438\end{tabular}
439
440\section{òÅÇÉÓÔÒÙ}
441
442\begin{tabular}{p{\ColWidth}l}
443ÓÏÈÒÁÎÉÔØ ÏÂÌÁÓÔØ × ÒÅÇÉÓÔÒÅ & \kbd{C-x r s} \\
444×ÓÔÁ×ÉÔØ ÓÏÄÅÒÖÉÍÏÅ ÒÅÇÉÓÔÒÁ × ÂÕÆÅÒ & \kbd{C-x r i} \\
445
446ÓÏÈÒÁÎÉÔØ ÐÏÌÏÖÅÎÉÅ ËÕÒÓÏÒÁ × ÒÅÇÉÓÔÒÅ & \kbd{C-x r SPC} \\
447ÐÅÒÅÊÔÉ Ë ÐÏÌÏÖÅÎÉÀ ËÕÒÓÏÒÁ, ÓÏÈÒÁÎÅÎÎÏÍÕ × ÒÅÇÉÓÔÒÅ & \kbd{C-x r j} \\
448\end{tabular}
449
450\section{ëÌÁ×ÉÁÔÕÒÎÙÅ ÍÁËÒÏÓÙ}
451
452\begin{tabular}{p{\ColWidth}l}
453{\bf ÎÁÞÁÔØ} ÏÐÒÅÄÅÌÅÎÉÅ ËÌÁ×ÉÁÔÕÒÎÏÇÏ ÍÁËÒÏÓÁ & \kbd{C-x (} \\
454{\bf ÚÁËÏÎÞÉÔØ} ÏÐÒÅÄÅÌÅÎÉÅ ËÌÁ×ÉÁÔÕÒÎÏÇÏ ÍÁËÒÏÓÁ & \kbd{C-x )} \\
455{\bf ×ÙÐÏÌÎÉÔØ} ÐÏÓÌÅÄÎÉÊ ÏÐÒÅÄÅÌÅÎÎÙÊ ÍÁËÒÏÓ & \kbd{C-x e} \\
456ÄÏÐÏÌÎÉÔØ ÐÏÓÌÅÄÎÉÊ ÏÐÒÅÄÅÌÅÎÎÙÊ ÍÁËÒÏÓ & \kbd{C-u C-x (} \\
457ÚÁÄÁÔØ ÉÍÑ ÄÌÑ ÐÏÓÌÅÄÎÅÇÏ ÏÐÒÅÄÅÌÅÎÎÏÇÏ ÍÁËÒÏÓÁ & \kbd{M-x name-last-kbd-macro} \\
458×ÓÔÁ×ÉÔØ × ÂÕÆÅÒ ÏÐÒÅÄÅÌÅÎÉÅ ÍÁËÒÏÓÁ ÎÁ ÑÚÙËÅ Lisp & \kbd{M-x insert-kbd-macro} \\
459\end{tabular}
460
461\section{ëÏÍÁÎÄÙ, Ó×ÑÚÁÎÎÙÅ Ó Emacs Lisp}
462
463\begin{tabular}{p{\ColWidth}l}
464×ÙÞÉÓÌÉÔØ {\bf ×ÙÒÁÖÅÎÉÅ} ÐÅÒÅÄ ËÕÒÓÏÒÏÍ & \kbd{C-x C-e} \\
465×ÙÞÉÓÌÉÔØ ÔÅËÕÝÕÀ ÆÕÎËÃÉÀ {\bf defun} & \kbd{C-M-x} \\
466×ÙÞÉÓÌÉÔØ {\bf ÏÂÌÁÓÔØ} ËÁË ×ÙÒÁÖÅÎÉÅ & \kbd{M-x eval-region} \\
467ÓÞÉÔÁÔØ É ×ÙÞÉÓÌÉÔØ ×ÙÒÁÖÅÎÉÅ ÉÚ ÍÉÎÉÂÕÆÅÒÁ & \kbd{M-:} \\
468ÚÁÇÒÕÚÉÔØ ÉÚ ÓÔÁÎÄÁÒÔÎÏÇÏ ÓÉÓÔÅÍÎÏÇÏ ËÁÔÁÌÏÇÁ & \kbd{M-x load-library} \\
469\end{tabular}
470
471\section{ðÒÏÓÔÁÑ ÎÁÓÔÒÏÊËÁ}
472
473\begin{tabular}{p{\ColWidth}l}
474ÎÁÓÔÒÏÉÔØ ÐÅÒÅÍÅÎÎÙÅ É ÏÆÏÒÍÌÅÎÉÅ (faces) & \kbd{M-x customize} \\
475\end{tabular}
476
477% The intended audience here is the person who wants to make simple
478% customizations and knows Lisp syntax.
479
480óÏÚÄÁÔØ ÇÌÏÂÁÌØÎÏÅ ÎÁÚÎÁÞÅÎÉÅ ËÌÀÞÅÊ ÎÁ Emacs Lisp (ÐÒÉÍÅÒ):
481
482\begin{verbatim}
483(global-set-key "\C-cg" 'goto-line)
484(global-set-key "\M-#" 'query-replace-regexp)
485\end{verbatim}
486
487\section{îÁÐÉÓÁÎÉÅ ËÏÍÁÎÄ}
488
489\begin{verbatim}
490(defun <command-name> (<args>)
491 "<documentation>" (interactive "<template>")
492 <body>)
493\end{verbatim}
494
495ðÒÉÍÅÒ:
496
497\begin{verbatim}
498(defun this-line-to-top-of-window (line)
499 "Reposition line point is on to top of window.
500With ARG, put point on line ARG."
501 (interactive "P")
502 (recenter (if (null line)
503 0
504 (prefix-numeric-value line))))
505\end{verbatim}
506
507óÐÅÃÉÆÉËÁÃÉÑ \kbd{interactive} ÓÏÏÂÝÁÅÔ Ï ÔÏÍ, ÞÔÏ ÁÒÇÕÍÅÎÔ ÎÁÄÏ ÓÞÉÔÙ×ÁÔØ
508ÉÎÔÅÒÁËÔÉ×ÎÏ. äÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÎÁÂÅÒÉÔÅ \kbd{C-h f interactive}.
509
510\copyrightnotice
511
512%\end{multicols}
513
514\end{document}
515
516% arch-tag: 868a12f6-4339-4a14-a56e-4a3937277a9e
diff --git a/etc/tree-widget/default/close.png b/etc/tree-widget/default/close.png
new file mode 100644
index 00000000000..0725def3dee
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..63a7930fe34
--- /dev/null
+++ b/etc/tree-widget/default/close.xpm
@@ -0,0 +1,284 @@
1/* XPM */
2static char *close[] = {
3/* width height num_colors chars_per_pixel */
4" 16 21 256 2",
5/* colors */
6"`` c #840000",
7"`. c #942929",
8"`# c #9c3131",
9"`a c #9c3939",
10"`b c #a54242",
11"`c c #a54a4a",
12"`d c #ad4a4a",
13"`e c #ad5252",
14"`f c #ad5a5a",
15"`g c None",
16"`h c #ffffff",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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`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
new file mode 100644
index 00000000000..45f464836cc
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..6bb0a285dd8
--- /dev/null
+++ b/etc/tree-widget/default/empty.xpm
@@ -0,0 +1,284 @@
1/* XPM */
2static char *empty[] = {
3/* width height num_colors chars_per_pixel */
4" 16 21 256 2",
5/* colors */
6"`` c #848400",
7"`. c #949429",
8"`# c #9c9c31",
9"`a c #9c9c39",
10"`b c #a5a542",
11"`c c #a5a54a",
12"`d c #adad4a",
13"`e c #adad52",
14"`f c #adad5a",
15"`g c None",
16"`h c #ffffff",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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`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
new file mode 100644
index 00000000000..908048c4293
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..8e5d727b440
--- /dev/null
+++ b/etc/tree-widget/default/end-guide.xpm
@@ -0,0 +1,284 @@
1/* XPM */
2static char *end-guide[] = {
3/* width height num_colors chars_per_pixel */
4" 6 21 256 2",
5/* colors */
6"`` c #000000",
7"`. c #a5a5c6",
8"`# c #ada5c6",
9"`a c #cecee7",
10"`b c #ceceff",
11"`c c None",
12"`d c #ffffff",
13"`e c #ffffff",
14"`f c #ffffff",
15"`g c #ffffff",
16"`h c #ffffff",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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 #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
new file mode 100644
index 00000000000..c93b71ef073
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..56006ee48e0
--- /dev/null
+++ b/etc/tree-widget/default/guide.xpm
@@ -0,0 +1,284 @@
1/* XPM */
2static char *guide[] = {
3/* width height num_colors chars_per_pixel */
4" 6 21 256 2",
5/* colors */
6"`` c #000000",
7"`. c #a5a5c6",
8"`# c #ada5c6",
9"`a c #cecee7",
10"`b c #ceceff",
11"`c c None",
12"`d c #ffffff",
13"`e c #ffffff",
14"`f c #ffffff",
15"`g c #ffffff",
16"`h c #ffffff",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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 #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
new file mode 100644
index 00000000000..8411624adaa
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..11f618b4b25
--- /dev/null
+++ b/etc/tree-widget/default/handle.xpm
@@ -0,0 +1,284 @@
1/* XPM */
2static char *handle[] = {
3/* width height num_colors chars_per_pixel */
4" 10 21 256 2",
5/* colors */
6"`` c #000000",
7"`. c #a5a5c6",
8"`# c #ada5c6",
9"`a c #cecee7",
10"`b c #ceceff",
11"`c c None",
12"`d c #ffffff",
13"`e c #ffffff",
14"`f c #ffffff",
15"`g c #ffffff",
16"`h c #ffffff",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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 #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
new file mode 100644
index 00000000000..0408f38bd5e
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..8b5db38784a
--- /dev/null
+++ b/etc/tree-widget/default/leaf.xpm
@@ -0,0 +1,284 @@
1/* XPM */
2static char *leaf[] = {
3/* width height num_colors chars_per_pixel */
4" 16 21 256 2",
5/* colors */
6"`` c #424242",
7"`. c #737373",
8"`# c #7b7b7b",
9"`a c #848484",
10"`b c #8c8c8c",
11"`c c #949494",
12"`d c #9c9c9c",
13"`e c #a5a5a5",
14"`f c None",
15"`g c #ffffff",
16"`h c #ffffff",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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"`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
new file mode 100644
index 00000000000..dc4292ea98f
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..82729cf59b0
--- /dev/null
+++ b/etc/tree-widget/default/no-guide.xpm
@@ -0,0 +1,284 @@
1/* XPM */
2static char *no-guide[] = {
3/* width height num_colors chars_per_pixel */
4" 6 21 256 2",
5/* colors */
6"`` c #000000",
7"`. c #84849c",
8"`# c #8c8ca5",
9"`a c #a5a5c6",
10"`b c #ada5c6",
11"`c c #b5b5ce",
12"`d c #cecee7",
13"`e c #ceceff",
14"`f c #e7e7ff",
15"`g c None",
16"`h c #808000",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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
new file mode 100644
index 00000000000..00de3c09c26
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..7ce048c91ea
--- /dev/null
+++ b/etc/tree-widget/default/no-handle.xpm
@@ -0,0 +1,284 @@
1/* XPM */
2static char *no-handle[] = {
3/* width height num_colors chars_per_pixel */
4" 10 21 256 2",
5/* colors */
6"`` c #000000",
7"`. c #84849c",
8"`# c #8c8ca5",
9"`a c #a5a5c6",
10"`b c #ada5c6",
11"`c c #b5b5ce",
12"`d c #cecee7",
13"`e c #ceceff",
14"`f c #e7e7ff",
15"`g c None",
16"`h c #808000",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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
new file mode 100644
index 00000000000..d234ecadf39
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..4c5c7b065b8
--- /dev/null
+++ b/etc/tree-widget/default/open.xpm
@@ -0,0 +1,284 @@
1/* XPM */
2static char *open[] = {
3/* width height num_colors chars_per_pixel */
4" 16 21 256 2",
5/* colors */
6"`` c #004200",
7"`. c #296329",
8"`# c #316331",
9"`a c #316b31",
10"`b c #396b39",
11"`c c #427342",
12"`d c #4a734a",
13"`e c #4a7b4a",
14"`f c #528452",
15"`g c #5a845a",
16"`h c #a5a5c6",
17"`i c None",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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"`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
new file mode 100644
index 00000000000..f840ba89a4e
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..1bd40ae6e94
--- /dev/null
+++ b/etc/tree-widget/folder/close.xpm
@@ -0,0 +1,285 @@
1/* XPM */
2static char *close[] = {
3/* width height num_colors chars_per_pixel */
4" 16 22 256 2",
5/* colors */
6"`` c #848400",
7"`. c #9c9c29",
8"`# c #a5a531",
9"`a c #adad39",
10"`b c #adad42",
11"`c c #b5b54a",
12"`d c #b5b552",
13"`e c #bdbd52",
14"`f c #bdbd5a",
15"`g c #c6c663",
16"`h c #c6c66b",
17"`i c #cece6b",
18"`j c #cece73",
19"`k c #dede8c",
20"`l c #e7e794",
21"`m c #e7e79c",
22"`n c #efef9c",
23"`o c None",
24"`p c #ffffff",
25"`q c #ffffff",
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"`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
new file mode 100644
index 00000000000..712af9747c6
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..df92fd22008
--- /dev/null
+++ b/etc/tree-widget/folder/empty.xpm
@@ -0,0 +1,285 @@
1/* XPM */
2static char *empty[] = {
3/* width height num_colors chars_per_pixel */
4" 16 22 256 2",
5/* colors */
6"`` c #424242",
7"`. c #6b6b6b",
8"`# c #737373",
9"`a c #7b7b7b",
10"`b c #848484",
11"`c c #8c8c8c",
12"`d c #949494",
13"`e c #9c9c9c",
14"`f c #a5a5a5",
15"`g c #adadad",
16"`h c None",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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"`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
new file mode 100644
index 00000000000..994c8bbf10a
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..3cdb2332c55
--- /dev/null
+++ b/etc/tree-widget/folder/end-guide.xpm
@@ -0,0 +1,285 @@
1/* XPM */
2static char *end-guide[] = {
3/* width height num_colors chars_per_pixel */
4" 6 22 256 2",
5/* colors */
6"`` c #ada5c6",
7"`. c None",
8"`# c #ffffff",
9"`a c #ffffff",
10"`b c #ffffff",
11"`c c #ffffff",
12"`d c #ffffff",
13"`e c #ffffff",
14"`f c #ffffff",
15"`g c #ffffff",
16"`h c #ffffff",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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"`.`.`.`.`.`.",
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
new file mode 100644
index 00000000000..5a4d4f0b751
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..5d23ef64eeb
--- /dev/null
+++ b/etc/tree-widget/folder/guide.xpm
@@ -0,0 +1,285 @@
1/* XPM */
2static char *guide[] = {
3/* width height num_colors chars_per_pixel */
4" 6 22 256 2",
5/* colors */
6"`` c #ada5c6",
7"`. c None",
8"`# c #ffffff",
9"`a c #ffffff",
10"`b c #ffffff",
11"`c c #ffffff",
12"`d c #ffffff",
13"`e c #ffffff",
14"`f c #ffffff",
15"`g c #ffffff",
16"`h c #ffffff",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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"`.`.`.`.`.`.",
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
new file mode 100644
index 00000000000..87058b7cc4d
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..40d0ca417e9
--- /dev/null
+++ b/etc/tree-widget/folder/handle.xpm
@@ -0,0 +1,285 @@
1/* XPM */
2static char *handle[] = {
3/* width height num_colors chars_per_pixel */
4" 10 22 256 2",
5/* colors */
6"`` c #000000",
7"`. c #a5a5c6",
8"`# c #ada5c6",
9"`a c #cecee7",
10"`b c #ceceff",
11"`c c None",
12"`d c #ffffff",
13"`e c #ffffff",
14"`f c #ffffff",
15"`g c #ffffff",
16"`h c #ffffff",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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 #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
new file mode 100644
index 00000000000..6abb6036f52
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..c353cb2cdf8
--- /dev/null
+++ b/etc/tree-widget/folder/leaf.xpm
@@ -0,0 +1,285 @@
1/* XPM */
2static char *leaf[] = {
3/* width height num_colors chars_per_pixel */
4" 16 22 256 2",
5/* colors */
6"`` c #000000",
7"`. c #424242",
8"`# c #848484",
9"`a c #949494",
10"`b c #9c9c9c",
11"`c c #a5a5a5",
12"`d c #adadad",
13"`e c #b5b5b5",
14"`f c #bdbdbd",
15"`g c #c6c6c6",
16"`h c None",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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"`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
new file mode 100644
index 00000000000..5705cc83cf4
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..2d3e1e7c099
--- /dev/null
+++ b/etc/tree-widget/folder/no-guide.xpm
@@ -0,0 +1,285 @@
1/* XPM */
2static char *no-guide[] = {
3/* width height num_colors chars_per_pixel */
4" 6 22 256 2",
5/* colors */
6"`` c None",
7"`. c #ffffff",
8"`# c #ffffff",
9"`a c #ffffff",
10"`b c #ffffff",
11"`c c #ffffff",
12"`d c #ffffff",
13"`e c #ffffff",
14"`f c #ffffff",
15"`g c #ffffff",
16"`h c #ffffff",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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"````````````",
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
new file mode 100644
index 00000000000..c335dd938ac
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..fa3e4c5874b
--- /dev/null
+++ b/etc/tree-widget/folder/no-handle.xpm
@@ -0,0 +1,285 @@
1/* XPM */
2static char *no-handle[] = {
3/* width height num_colors chars_per_pixel */
4" 10 22 256 2",
5/* colors */
6"`` c #000000",
7"`. c #a5a5c6",
8"`# c #ada5c6",
9"`a c #cecee7",
10"`b c #ceceff",
11"`c c None",
12"`d c #ffffff",
13"`e c #ffffff",
14"`f c #ffffff",
15"`g c #ffffff",
16"`h c #ffffff",
17"`i c #ffffff",
18"`j c #ffffff",
19"`k c #ffffff",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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 #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
new file mode 100644
index 00000000000..4237d3aa648
--- /dev/null
+++ 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
new file mode 100644
index 00000000000..720f79fa94b
--- /dev/null
+++ b/etc/tree-widget/folder/open.xpm
@@ -0,0 +1,285 @@
1/* XPM */
2static char *open[] = {
3/* width height num_colors chars_per_pixel */
4" 16 22 256 2",
5/* colors */
6"`` c #848400",
7"`. c #a5a5c6",
8"`# c #adad39",
9"`a c #adad42",
10"`b c #b5b54a",
11"`c c #bdbd52",
12"`d c #bdbd5a",
13"`e c #c6c663",
14"`f c #c6c66b",
15"`g c #cece6b",
16"`h c #cece73",
17"`i c #cece7b",
18"`j c #d6d67b",
19"`k c None",
20"`l c #ffffff",
21"`m c #ffffff",
22"`n c #ffffff",
23"`o c #ffffff",
24"`p c #ffffff",
25"`q c #ffffff",
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"`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/leim/.gitignore b/leim/.gitignore
index aea98a23838..7c52fa3961a 100644
--- a/leim/.gitignore
+++ b/leim/.gitignore
@@ -1,2 +1,4 @@
1leim-list.el
2Makefile 1Makefile
2changed.misc
3changed.tit
4leim-list.el
diff --git a/leim/ChangeLog b/leim/ChangeLog
index 4e76bdcdb6d..1db2b9dcb0a 100644
--- a/leim/ChangeLog
+++ b/leim/ChangeLog
@@ -1,3 +1,18 @@
12004-05-17 Werner Lemberg <wl@gnu.org>
2
3 * quail/sisheng.el: New file.
4
52004-05-17 Kenichi Handa <handa@m17n.org>
6
7 * Makefile.in (OTHERS): Add ${srcdir}/quail/sisheng.elc.
8
92004-05-11 Eli Zaretskii <eliz@gnu.org>
10
11 * Makefile.in (leim-list.el): Move commands to convert TIT and
12 MISC dictionaries from here...
13 (changed.tit, changed.misc): ...to here. Remove the (now
14 unneeded) test of the contents of changed.* files.
15
12004-05-10 Andreas Schwab <schwab@suse.de> 162004-05-10 Andreas Schwab <schwab@suse.de>
2 17
3 * Makefile.in (all): Readd dependency on ${WORLD} so that lisp 18 * Makefile.in (all): Readd dependency on ${WORLD} so that lisp
diff --git a/leim/Makefile.in b/leim/Makefile.in
index 3f5e61b98a3..ec4497c0497 100644
--- a/leim/Makefile.in
+++ b/leim/Makefile.in
@@ -121,7 +121,8 @@ OTHERS= \
121 ${srcdir}/quail/ethiopic.elc \ 121 ${srcdir}/quail/ethiopic.elc \
122 ${srcdir}/quail/ipa.elc \ 122 ${srcdir}/quail/ipa.elc \
123 ${srcdir}/quail/hebrew.elc \ 123 ${srcdir}/quail/hebrew.elc \
124 ${srcdir}/quail/georgian.elc 124 ${srcdir}/quail/georgian.elc \
125 ${srcdir}/quail/sisheng.elc
125 126
126MISC= \ 127MISC= \
127 quail/tsang-b5.elc \ 128 quail/tsang-b5.elc \
@@ -174,7 +175,9 @@ TIT-SOURCES= \
174 ${srcdir}/CXTERM-DIC/ZOZY.tit 175 ${srcdir}/CXTERM-DIC/ZOZY.tit
175 176
176changed.tit: ${TIT-SOURCES} 177changed.tit: ${TIT-SOURCES}
177 echo "0" > $@ 178 ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \
179 -f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \
180 echo "changed" > $@
178 181
179MISC-SOURCES= \ 182MISC-SOURCES= \
180 ${srcdir}/MISC-DIC/CTLau-b5.html \ 183 ${srcdir}/MISC-DIC/CTLau-b5.html \
@@ -185,19 +188,11 @@ MISC-SOURCES= \
185 ${srcdir}/MISC-DIC/ziranma.cin 188 ${srcdir}/MISC-DIC/ziranma.cin
186 189
187changed.misc: ${MISC-SOURCES} 190changed.misc: ${MISC-SOURCES}
188 echo "0" > $@ 191 ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \
192 -f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; \
193 echo "changed" > $@
189 194
190leim-list.el: ${SUBDIRS} ${NON-TIT-MISC} changed.tit changed.misc 195leim-list.el: ${SUBDIRS} ${NON-TIT-MISC} changed.tit changed.misc
191 if [ `(cat changed.tit)` = 0 ] ; then \
192 ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \
193 -f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \
194 echo "1" > changed.tit; \
195 else true; fi
196 if [ `(cat changed.misc)` = 0 ] ; then \
197 ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \
198 -f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; \
199 echo "1" > changed.misc; \
200 else true; fi
201 ${RUN-EMACS} -l ${buildlisppath}/international/quail \ 196 ${RUN-EMACS} -l ${buildlisppath}/international/quail \
202 -f batch-byte-compile-if-not-done ${TIT-MISC:.elc=.el} 197 -f batch-byte-compile-if-not-done ${TIT-MISC:.elc=.el}
203 if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \ 198 if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \
diff --git a/leim/quail/sisheng.el b/leim/quail/sisheng.el
new file mode 100644
index 00000000000..ea65646e078
--- /dev/null
+++ b/leim/quail/sisheng.el
@@ -0,0 +1,292 @@
1;;; sisheng.el --- sisheng input method for Chinese pinyin transliteration
2
3;; Copyright (C) 2004 Free Software Foundation, Inc.
4
5;; Author: Werner LEMBERG <wl@gnu.org>
6
7;; Keywords: multilingual, input method, Chinese, pinyin, sisheng
8
9;; This program is free software; you can redistribute it and/or modify
10;; it under the terms of the GNU General Public License as published by
11;; the Free Software Foundation; either version 2, or (at your option)
12;; any later version.
13
14;; This program is distributed in the hope that it will be useful,
15;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;; GNU General Public License for more details.
18
19;; You should have received a copy of the GNU General Public License
20;; along with GNU Emacs; see the file COPYING. If not, write to
21;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
22
23;;; Commentary:
24
25;;; Code:
26
27(require 'quail)
28
29(defconst sisheng-regexp
30 "[ÄēīÅūǖ]\\|üē")
31
32;; First element is the key,
33;; second element is the vowel used for the input sequence,
34;; last four elements are the resulting tones.
35;;
36(defconst sisheng-vowel-table
37 '(("Ä" "a" "Ä" "á" "ÇŽ" "à")
38 ("ē" "e" "ē" "é" "ě" "è")
39 ("Ä«" "i" "Ä«" "í" "Ç" "ì")
40 ("Å" "o" "Å" "ó" "Ç’" "ò")
41 ("ū" "u" "ū" "ú" "ǔ" "ù")
42 ("ǖ" "v" "ǖ" "ǘ" "ǚ" "ǜ")
43 ("üē" "ve" "üē" "üé" "üě" "üè")))
44
45
46;; All possible syllables in Mandarin Chinese, presented in the first
47;; tone. Note that make-sisheng-rules always constructs rules for all
48;; four tones even if some of those tones aren't used in Mandarin.
49;;
50(defconst sisheng-syllable-table
51 '("Ä" "Äi" "Än" "Äng" "Äo"
52
53 "bÄ" "bÄi" "bÄn" "bÄng" "bÄo"
54 "bēi" "bēn" "bēng"
55 "bÄ«" "biÄn" "biÄo" "biÄ“" "bÄ«n" "bÄ«ng"
56 "bÅ"
57 "bū"
58
59 "cÄ" "cÄi" "cÄn" "cÄng" "cÄo"
60 "cē" "cēn" "cēng"
61 "cī"
62 "cÅng" "cÅu"
63 "cÅ«" "cuÄn" "cuÄ«" "cÅ«n" "cuÅ"
64
65 "chÄ" "chÄi" "chÄn" "chÄng" "chÄo"
66 "chē" "chēn" "chēng"
67 "chī"
68 "chÅng" "chÅu"
69 "chÅ«" "chuÄ" "chuÄi" "chuÄn" "chuÄng" "chuÄ«" "chÅ«n" "chuÅ"
70
71 "dÄ" "dÄi" "dÄn" "dÄng" "dÄo"
72 "dē" "dēi" "dēn" "dēng"
73 "dÄ«" "diÄn" "diÄo" "diÄ“" "dÄ«ng" "diÅ«"
74 "dÅng" "dÅu"
75 "dÅ«" "duÄn" "duÄ«" "dÅ«n" "duÅ"
76
77 "ē" "ēi" "ēn" "ēng" "ēr"
78
79 "fÄ" "fÄn" "fÄng"
80 "fēi" "fēn" "fēng"
81 "fiÄo"
82 "fÅ" "fÅu"
83 "fū"
84
85 "gÄ" "gÄi" "gÄn" "gÄng" "gÄo"
86 "gē" "gēi" "gēn" "gēng"
87 "gÅng" "gÅu"
88 "gÅ«" "guÄ" "guÄi" "guÄn" "guÄng" "guÄ«" "gÅ«n" "guÅ"
89
90 "hÄ" "hÄi" "hÄn" "hÄng" "hÄo"
91 "hē" "hēi" "hēn" "hēng"
92 "hÅng" "hÅu"
93 "hÅ«" "huÄ" "huÄi" "huÄn" "huÄng" "huÄ«" "hÅ«n" "huÅ"
94
95 "jÄ«" "jiÄ" "jiÄn" "jiÄng" "jiÄo" "jiÄ“" "jÄ«n" "jÄ«ng" "jiÅng" "jiÅ«"
96 "jÅ«" "juÄn" "juÄ“" "jÅ«n"
97
98 "kÄ" "kÄi" "kÄn" "kÄng" "kÄo"
99 "kē" "kēi" "kēn" "kēng"
100 "kÅng" "kÅu"
101 "kÅ«" "kuÄ" "kuÄi" "kuÄn" "kuÄng" "kuÄ«" "kÅ«n" "kuÅ"
102
103 "lÄ" "lÄi" "lÄn" "lÄng" "lÄo"
104 "lē" "lēi" "lēng"
105 "lÄ«" "liÄ" "liÄn" "liÄng" "liÄo" "liÄ“" "lÄ«n" "lÄ«ng" "liÅ«"
106 "lÅng" "lÅu"
107 "lÅ«" "luÄn" "lÅ«n" "luÅ"
108 "lǖ" "lüē"
109
110 "mÄ" "mÄi" "mÄn" "mÄng" "mÄo"
111 "mē" "mēi" "mēn" "mēng"
112 "mÄ«" "miÄn" "miÄo" "miÄ“" "mÄ«n" "mÄ«ng" "miÅ«"
113 "mÅ" "mÅu"
114 "mū"
115
116 "nÄ" "nÄi" "nÄn" "nÄng" "nÄo"
117 "nē" "nēi" "nēn" "nēng"
118 "nÄ«" "niÄn" "niÄng" "niÄo" "niÄ“" "nÄ«n" "nÄ«ng" "niÅ«"
119 "nÅng" "nÅu"
120 "nÅ«" "nuÄn" "nuÅ"
121 "nǖ" "nüē"
122
123 "Å" "Åu"
124
125 "pÄ" "pÄi" "pÄn" "pÄng" "pÄo"
126 "pēi" "pēn" "pēng"
127 "pÄ«" "piÄn" "piÄo" "piÄ“" "pÄ«n" "pÄ«ng"
128 "pÅ" "pÅu"
129 "pū"
130
131 "qÄ«" "qiÄ" "qiÄn" "qiÄng" "qiÄo" "qiÄ“" "qÄ«n" "qÄ«ng" "qiÅng" "qiÅ«"
132 "qÅ«" "quÄn" "quÄ“" "qÅ«n"
133
134 "rÄn" "rÄng" "rÄo"
135 "rē" "rēn" "rēng"
136 "rī"
137 "rÅng" "rÅu"
138 "rÅ«" "ruÄ" "ruÄn" "ruÄ«" "rÅ«n" "ruÅ"
139
140 "sÄ" "sÄi" "sÄn" "sÄng" "sÄo"
141 "sē" "sēn" "sēng"
142 "sī"
143 "sÅng" "sÅu"
144 "sÅ«" "suÄn" "suÄ«" "sÅ«n" "suÅ"
145
146 "shÄ" "shÄi" "shÄn" "shÄng" "shÄo"
147 "shē" "shēi" "shēn" "shēng"
148 "shī"
149 "shÅu"
150 "shÅ«" "shuÄ" "shuÄi" "shuÄn" "shuÄng" "shuÄ«" "shÅ«n" "shuÅ"
151
152 "tÄ" "tÄi" "tÄn" "tÄng" "tÄo"
153 "tē" "tēi" "tēng"
154 "tÄ«" "tiÄn" "tiÄo" "tiÄ“" "tÄ«ng"
155 "tÅng" "tÅu"
156 "tÅ«" "tuÄn" "tuÄ«" "tÅ«n" "tuÅ"
157
158 "wÄ" "wÄi" "wÄn" "wÄng"
159 "wēi" "wēn" "wēng"
160 "wÅ"
161 "wū"
162
163 "xÄ«" "xiÄ" "xiÄn" "xiÄng" "xiÄo" "xiÄ“" "xÄ«n" "xÄ«ng" "xiÅng" "xiÅ«"
164 "xÅ«" "xuÄn" "xuÄ“" "xÅ«n"
165
166 "yÄ" "yÄn" "yÄng" "yÄo"
167 "yē"
168 "yī" "yīn" "yīng"
169 "yÅ" "yÅng" "yÅu"
170 "yÅ«" "yuÄn" "yuÄ“" "yÅ«n"
171
172 "zÄ" "zÄi" "zÄn" "zÄng" "zÄo"
173 "zē" "zēi" "zēn" "zēng"
174 "zī"
175 "zÅng" "zÅu"
176 "zÅ«" "zuÄn" "zuÄ«" "zÅ«n" "zuÅ"
177
178 "zhÄ" "zhÄi" "zhÄn" "zhÄng" "zhÄo"
179 "zhē" "zhēi" "zhēn" "zhēng"
180 "zhī"
181 "zhÅng" "zhÅu"
182 "zhÅ«" "zhuÄ" "zhuÄi" "zhuÄn" "zhuÄng" "zhuÄ«" "zhÅ«n" "zhuÅ"))
183
184;; This function converts e.g.
185;;
186;; "zhuÅ"
187;;
188;; into
189;;
190;; (("zhuo4" ["zhuò"])
191;; ("zhuo3" ["zhuÇ’"])
192;; ("zhuo2" ["zhuó"])
193;; ("zhuo1" ["zhuÅ"]))
194;;
195(defun quail-make-sisheng-rules (syllable)
196 (let ((case-fold-search t)
197 vowel-match
198 vowel-list
199 input-vowel
200 base-key
201 key
202 value
203 key-value-list
204 (i 1))
205 (string-match sisheng-regexp syllable)
206 (setq vowel-match (downcase (match-string 0 syllable)))
207 (setq vowel-list
208 (cdr (assoc-string vowel-match sisheng-vowel-table)))
209 (setq input-vowel (car vowel-list))
210 (setq base-key (replace-match input-vowel nil nil syllable))
211 (while (<= i 4)
212 (setq key (concat base-key (number-to-string i)))
213 (setq value (vector (replace-match (nth i vowel-list) nil nil syllable)))
214 (push (list key value) key-value-list)
215 (setq i (1+ i)))
216 key-value-list))
217
218;; Set up sisheng input method.
219;;
220(quail-define-package
221 "chinese-sisheng" ; name
222 "Chinese" ; language
223 "Çš" ; title
224 t ; guidance
225 "Sìshēng input method for pīnyīn transliteration of Chinese.
226
227Examples: shuang1 -> shuÄng
228 Lv3 -> LÇš
229 AN4 -> ÀN
230
231Use the fifth (unstressed) tone for syllables containing `ü'
232without a tone mark.
233
234Example: nve5 -> nüe
235" ; docstring
236 nil ; translation-keys
237 t ; forget-last-selection
238 nil ; deterministic
239 nil ; kbd-translate
240 nil ; show-layout
241 nil ; create-decode-map
242 nil ; maximum-shortest
243 nil ; overlay-plist
244 nil ; update-translation-function
245 nil ; conversion-keys
246 t ; simple
247 )
248
249;; Call quail-make-sisheng-rules for all syllables in sisheng-syllable-table.
250;;
251(let ((case-table-save (current-case-table))
252 sisheng-list)
253 (set-case-table (standard-case-table))
254 (dolist (syllable sisheng-syllable-table)
255 (setq sisheng-list
256 (append (quail-make-sisheng-rules syllable)
257 sisheng-list)))
258
259 (dolist (syllable sisheng-syllable-table)
260 (setq sisheng-list
261 (append (quail-make-sisheng-rules (upcase-initials syllable))
262 sisheng-list)))
263
264 (dolist (syllable sisheng-syllable-table)
265 (setq sisheng-list
266 (append (quail-make-sisheng-rules (upcase syllable))
267 sisheng-list)))
268
269 (eval `(quail-define-rules
270 ,@sisheng-list
271
272 ("lv5" ["lü"])
273 ("lve5" ["lüe"])
274 ("nv5" ["nü"])
275 ("nve5" ["nüe"])
276
277 ("Lv5" ["Lü"])
278 ("Lve5" ["Lüe"])
279 ("Nv5" ["Nü"])
280 ("Nve5" ["Nüe"])
281
282 ("LV5" ["LÜ"])
283 ("LVE5" ["LÜE"])
284 ("NV5" ["NÜ"])
285 ("NVE5" ["NÜE"])))
286 (set-case-table case-table-save))
287
288;; Local Variables:
289;; coding: utf-8
290;; End:
291
292;;; arch-tag: 1fa6ba5f-6747-44bc-bf12-30628ad3e8ad
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index c841df23097..ac789eb3181 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,7 @@
12004-05-10 Thien-Thi Nguyen <ttn@gnu.org>
2
3 * test-distrib.c (main): For failing cases, exit with `EXIT_FAILURE'.
4
12004-05-08 Jason Rumney <jasonr@gnu.org> 52004-05-08 Jason Rumney <jasonr@gnu.org>
2 6
3 * makefile.w32-in (lisp1, lisp2): Split lisp to avoid long 7 * makefile.w32-in (lisp1, lisp2): Split lisp to avoid long
diff --git a/lib-src/test-distrib.c b/lib-src/test-distrib.c
index 97e87695c7c..0333bd7d710 100644
--- a/lib-src/test-distrib.c
+++ b/lib-src/test-distrib.c
@@ -80,13 +80,13 @@ main (argc, argv)
80 if (argc != 2) 80 if (argc != 2)
81 { 81 {
82 fprintf (stderr, "Usage: %s testfile\n", argv[0]); 82 fprintf (stderr, "Usage: %s testfile\n", argv[0]);
83 exit (2); 83 exit (EXIT_FAILURE);
84 } 84 }
85 fd = open (argv[1], O_RDONLY); 85 fd = open (argv[1], O_RDONLY);
86 if (fd < 0) 86 if (fd < 0)
87 { 87 {
88 perror (argv[1]); 88 perror (argv[1]);
89 exit (2); 89 exit (EXIT_FAILURE);
90 } 90 }
91 if (cool_read (fd, buf, sizeof string1) != sizeof string1 || 91 if (cool_read (fd, buf, sizeof string1) != sizeof string1 ||
92 strcmp (buf, string1) || 92 strcmp (buf, string1) ||
@@ -97,7 +97,7 @@ main (argc, argv)
97Most likely this means that many nonprinting characters\n\ 97Most likely this means that many nonprinting characters\n\
98have been corrupted in the files of Emacs, and it will not work.\n", 98have been corrupted in the files of Emacs, and it will not work.\n",
99 argv[1]); 99 argv[1]);
100 exit (2); 100 exit (EXIT_FAILURE);
101 } 101 }
102 close (fd); 102 close (fd);
103 return EXIT_SUCCESS; 103 return EXIT_SUCCESS;
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 7eb5e70b23a..8e2b74d5b60 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,222 @@
12004-05-18 Masatake YAMATO <jet@gyve.org>
2
3 * wid-edit.el (widget-radio-button-notify): Don't pass `widget'
4 to widget-apply. :action method assumes 2 arguments, not 3.
5
62004-05-17 Glenn Morris <gmorris@ast.cam.ac.uk>
7
8 * progmodes/f90.el (f90-end-block-re, f90-start-block-re): New
9 constants.
10 (hs-special-modes-alist): Add an f90-mode entry.
11
122004-05-17 Sam Steingold <sds@gnu.org>
13
14 * emacs-lisp/cl-indent.el (common-lisp-indent-function-1): Indent
15 "without-" forms just like "with-" and "do-". Use regexp-opt.
16
172004-05-16 Kim F. Storm <storm@cua.dk>
18
19 * emacs-lisp/timer.el (timer-event-handler): Fix last change.
20
212004-05-15 John Wiegley <johnw@newartisans.com>
22
23 * eshell/esh-io.el (eshell-get-target): whitespace changes.
24 (eshell-output-object-to-target): Improve output speed 20% by not
25 calling `eshell-stringify' if something is already known to be a
26 string.
27
282004-05-15 Alex Ott <ott@jet.msk.su>
29
30 * textmodes/ispell.el (ispell-local-dictionary-alist): Add
31 windows-1251 to the choice of coding systems.
32 (ispell-dictionary-alist-6): Add support for "russianw.aff",
33 encoded in cp1251.
34
352004-05-15 Dan Nicolaescu <dann@ics.uci.edu>
36
37 * progmodes/compile.el (compilation-warning-face)
38 (compilation-info-face): Use min-colors.
39
402004-05-15 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
41
42 * toolbar/close.pbm, toolbar/close.xpm
43 * toolbar/copy.pbm, toolbar/copy.xpm
44 * toolbar/cut.pbm, toolbar/cut.xpm
45 * toolbar/help.pbm, toolbar/help.xpm
46 * toolbar/home.pbm, toolbar/home.xpm
47 * toolbar/index.pbm, toolbar/index.xpm
48 * toolbar/jump_to.pbm, toolbar/jump_to.xpm
49 * toolbar/left_arrow.pbm, toolbar/left_arrow.xpm
50 * toolbar/new.pbm, toolbar/new.xpm
51 * toolbar/open.pbm, toolbar/open.xpm
52 * toolbar/paste.pbm, toolbar/paste.xpm
53 * toolbar/preferences.pbm, toolbar/preferences.xpm
54 * toolbar/print.pbm, toolbar/print.xpm
55 * toolbar/right_arrow.pbm, toolbar/right_arrow.xpm
56 * toolbar/save.pbm, toolbar/save.xpm
57 * toolbar/saveas.pbm, toolbar/saveas.xpm
58 * toolbar/search.pbm, toolbar/search.xpm
59 * toolbar/spell.pbm, toolbar/spell.xpm
60 * toolbar/undo.pbm, toolbar/undo.xpm
61 * toolbar/up_arrow.pbm, toolbar/up_arrow.xpm: New icons from
62 GTK+ version 2.
63
64
652004-05-15 Kim F. Storm <storm@cua.dk>
66
67 * emacs-lisp/timer.el (timer-activate): Add optional arg triggered-p.
68 Use it to set triggered-p element of timer.
69 (timer-event-handler): Set triggered-p element non-nil while running
70 the timer function.
71
722004-05-14 David Ponce <david@dponce.com>
73
74 * tree-widget.el: New file.
75
762004-05-13 Marcelo Toledo <marcelo@marcelotoledo.org>
77
78 * language/european.el ("Brazilian Portuguese"): Added support for
79 Brazilian Portuguese.
80
812004-05-13 John Wiegley <johnw@newartisans.com>
82
83 * iswitchb.el (iswitchb-use-virtual-buffers): Only turn on
84 `recentf-mode' if this variable has been customized to t.
85
86 * eshell/esh-test.el (eshell-test): Call the function
87 `emacs-version' rather than trying to build a custom version
88 string.
89
902004-05-13 Stefan Monnier <monnier@iro.umontreal.ca>
91
92 * net/telnet.el (telnet-mode): Use define-derived-mode.
93 Don't modify the global value of comint-prompt-regexp.
94
952004-05-13 John Paul Wallington <jpw@gnu.org>
96
97 * version.el (emacs-version): Check for `gtk' feature before
98 `x-toolkit' feature.
99
1002004-05-13 Juanma Barranquero <lektu@terra.es>
101
102 * files.el (file-truename): Don't mention COUNTER and PREV-DIRS
103 arguments in the docstring, they're used only in recursive calls.
104
105 * help-fns.el (help-arg-highlighting-function)
106 (help-argument-name): Delete.
107 (help-default-arg-highlight): New function.
108 (help-do-arg-highlighting): Use it.
109
1102004-05-13 Glenn Morris <gmorris@ast.cam.ac.uk>
111
112 * calendar/appt.el (appt-disp-window):
113 Use `calendar-set-mode-line' for a centered mode-line.
114
1152004-05-13 Takaaki Ota <Takaaki.Ota@am.sony.com> (tiny change)
116
117 * calendar/appt.el (appt-disp-window): Do not split window
118 excessively when `split-height-threshold' is low.
119
1202004-05-12 Nick Roberts <nickrob@gnu.org>
121
122 * progmodes/gud.el (gud-mode): Add gud-kill-buffer-hook to
123 kill-buffer-hook here and make it local.
124 (gud-kill-buffer-hook): Use kill-process for a sure kill.
125
1262004-05-12 Daniel Pfeiffer <occitan@esperanto.org>
127
128 * progmodes/compile.el (compilation-set-window-height):
129 Use save-excursion to protect against misplaced marker.
130
1312004-05-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
132
133 * custom.el (defface): Document that type can have value gtk.
134
135 * faces.el (face-spec-set-match-display): Handle type gtk in display.
136
1372004-05-12 Kenichi Handa <handa@m17n.org>
138
139 * descr-text.el: Require quail at comile time.
140 (describe-char): If an input method is on and it supports the
141 character, show how to input it.
142
143 * international/quail.el (quail-install-decode-map): Accept a
144 char-table whose subtype is `quail-decode-map'.
145 (quail-store-decode-map-key, quail-gen-decode-map1)
146 (quail-gen-decode-map, quail-find-key1, quail-find-key)
147 (quail-show-key): New functions.
148
1492004-05-12 Juanma Barranquero <lektu@terra.es>
150
151 * generic.el (define-generic-mode): Remove redundant arglist info.
152
153 * help-fns.el (help-split-fundoc, help-add-fundoc-usage):
154 Make arguments match their use in docstring.
155 (help-arg-highlighting-function): New variable.
156 (help-argument-name): Mention it in the docstring.
157 (help-do-arg-highlight): Use it. Expand regexp to accept also
158 ARG-xxx and xxx-ARG references.
159
1602004-05-11 Yoichi NAKAYAMA <yoichi@geiin.org> (tiny change)
161
162 * mail/rfc2368.el (rfc2368-parse-mailto-url): Make the results of
163 parsing "mailto:addr1%2C%20addr2", "mailto:?to=addr1%2C%20addr2",
164 and "mailto:addr1?to=addr2" equal.
165
1662004-05-11 Alexander Pohoyda <alexander.pohoyda@gmx.net> (tiny change)
167
168 * man.el (Man-getpage-in-background): Use shell-file-name
169 and shell-command-switch variables instead of hard-coded values.
170
1712004-05-11 Eli Zaretskii <eliz@gnu.org>
172
173 * iimage.el: New file.
174
1752004-05-11 Juanma Barranquero <lektu@terra.es>
176
177 * custom.el (custom-initialize-default, defcustom): Typo in docstring.
178
179 * files.el (set-visited-file-name, file-expand-wildcards):
180 Fix docstring.
181
1822004-05-10 Stefan Monnier <monnier@iro.umontreal.ca>
183
184 * emacs-lisp/lisp-mode.el (prin1-char): Use eventp.
185
186 * subr.el (eventp): Be more discriminating with integers.
187
1882004-05-10 Daniel Pfeiffer <occitan@esperanto.org>
189
190 * progmodes/compile.el (compile): Add universal prefix arg.
191 (compilation-error-regexp-alist-alist): Add edg patterns.
192
1932004-05-10 Sam Steingold <sds@gnu.org>
194
195 * textmodes/ispell.el (ispell-message):
196 Use `message-cite-prefix-regexp' instead of `message-yank-prefix'.
197
1982004-05-10 Dave Love <fx@gnu.org>
199
200 * progmodes/python.el (help-buffer): Autoload when compiling.
201 (python-after-info-look): Don't assume Info-goto-node returns non-nil.
202 (run-python): Prepend to any existing PYTHONPATH.
203
2042004-05-10 Nick Roberts <nick@nick.uklinux.net>
205
206 * progmodes/gdb-ui.el (gdb-annotation-rules): Add nquery annotation
207 for pending breakpoints.
208
2092004-05-10 Richard M. Stallman <rms@gnu.org>
210
211 * mail/unrmail.el (unrmail): Mostly rewritten. Parses the file
212 directly without calling any functions in Rmail.
213 (unrmail-unprune): Function deleted.
214
2152004-05-10 Stefan Monnier <monnier@iro.umontreal.ca>
216
217 * progmodes/python.el (inferior-python-mode-map): Remove erroneous
218 C-c C-z binding.
219
12004-05-10 Kenichi Handa <handa@m17n.org> 2202004-05-10 Kenichi Handa <handa@m17n.org>
2 221
3 * descr-text.el (describe-char): Fix previous change. Don't make 222 * descr-text.el (describe-char): Fix previous change. Don't make
@@ -10,12 +229,21 @@
10 229
112004-05-10 Juanma Barranquero <lektu@terra.es> 2302004-05-10 Juanma Barranquero <lektu@terra.es>
12 231
13 * subr.el (remove-overlays, read-passwd): Fix docstring.
14
15 * help-fns.el (help-argument-name): Default to italic. 232 * help-fns.el (help-argument-name): Default to italic.
16 (help-highlight-arguments): Return always (usage . doc), even when 233 (help-highlight-arguments): Return always (usage . doc), even when
17 usage is nil. 234 usage is nil.
18 235
236 * ibuf-macs.el (define-ibuffer-column, define-ibuffer-sorter)
237 (define-ibuffer-filter): Add usage info.
238 (define-ibuffer-op): Add usage info (but CL-style defaults for
239 keyword args are not shown).
240
241 * subr.el (remove-overlays, read-passwd): Fix docstring.
242 (start-process-shell-command): Fix docstring. Put usage info in a
243 format usable by `describe-function'.
244 (open-network-stream, open-network-stream-nowait)
245 (open-network-stream-server): Fix docstring.
246
192004-05-09 Jason Rumney <jasonr@gnu.org> 2472004-05-09 Jason Rumney <jasonr@gnu.org>
20 248
21 * international/code-pages (cp932, cp936, cp949, c950): Remove. 249 * international/code-pages (cp932, cp936, cp949, c950): Remove.
@@ -29,24 +257,24 @@
29 257
30 * term/w32-win.el: Require code-pages. 258 * term/w32-win.el: Require code-pages.
31 259
32 * international/mule-cmds.el (set-locale-environment): On 260 * international/mule-cmds.el (set-locale-environment):
33 MS-Windows use ansi code-page for default coding-systems. 261 On MS-Windows use ansi code-page for default coding-systems.
34 Set up paper sizes for Windows 3 letter languages. 262 Set up paper sizes for Windows 3 letter languages.
35 263
36 * international/code-pages.el (cp932, cp936, cp949, cp950): Add 264 * international/code-pages.el (cp932, cp936, cp949, cp950):
37 aliases. Also add cp125* if not already defined. 265 Add aliases. Also add cp125* if not already defined.
38 266
392004-05-09 Juanma Barranquero <lektu@terra.es> 2672004-05-09 Juanma Barranquero <lektu@terra.es>
40 268
41 * net/quickurl.el (quickurl, quickurl-browse-url, quickurl-read): 269 * help-fns.el (help-highlight-arguments): Don't try to highlight
42 Don't use CL-style default args. 270 missing or autoloaded arglists. Accept structured arguments, like
271 the first ones of `do' and `flet'.
43 272
44 * pcvs.el (cvs-mode-run, cvs-is-within-p): Fix typo in docstring. 273 * pcvs.el (cvs-mode-run, cvs-is-within-p): Fix typo in docstring.
45 (cvs-get-marked): Remove redundant arglist info. 274 (cvs-get-marked): Remove redundant arglist info.
46 275
47 * help-fns.el (help-highlight-arguments): Don't try to highlight 276 * net/quickurl.el (quickurl, quickurl-browse-url, quickurl-read):
48 missing or autoloaded arglists. Accept structured arguments, like 277 Don't use CL-style default args.
49 the first ones of `do' and `flet'.
50 278
512004-05-08 Andreas Schwab <schwab@suse.de> 2792004-05-08 Andreas Schwab <schwab@suse.de>
52 280
@@ -62,17 +290,17 @@
62 290
632004-05-08 John Wiegley <johnw@newartisans.com> 2912004-05-08 John Wiegley <johnw@newartisans.com>
64 292
65 * iswitchb.el (iswitchb-use-virtual-buffers): Added support for 293 * iswitchb.el (iswitchb-use-virtual-buffers): Add support for
66 "virtual buffers" (off by default), which makes it possible to 294 "virtual buffers" (off by default), which makes it possible to
67 switch to the "virtual" buffers of recently visited files. When a 295 switch to the "virtual" buffers of recently visited files. When a
68 buffer name search fails, and this option is on, iswitchb will 296 buffer name search fails, and this option is on, iswitchb will
69 look at the list of recently visited files, and permit matching 297 look at the list of recently visited files, and permit matching
70 against those names. When the user hits RET on a match, it will 298 against those names. When the user hits RET on a match, it will
71 revisit that file. 299 revisit that file.
72 (iswitchb-read-buffer): Added two optional arguments, which makes 300 (iswitchb-read-buffer): Add two optional arguments, which makes
73 isearchb.el possible. 301 isearchb.el possible.
74 (iswitchb-completions, iswitchb-set-matches, iswitchb-prev-match, 302 (iswitchb-completions, iswitchb-set-matches, iswitchb-prev-match)
75 iswitchb-next-match): Added support for virtual buffers. 303 (iswitchb-next-match): Add support for virtual buffers.
76 304
77 * isearchb.el: This module extends iswitchb to provide "as you 305 * isearchb.el: This module extends iswitchb to provide "as you
78 type" buffer selection. 306 type" buffer selection.
@@ -108,8 +336,7 @@
108 336
109 * help-fns.el (help-do-arg-highlight): Temporarily set ?\- to be a 337 * help-fns.el (help-do-arg-highlight): Temporarily set ?\- to be a
110 word constituent so FOO-ARG is not recognized as an arg. 338 word constituent so FOO-ARG is not recognized as an arg.
111 (help-highlight-arguments): Don't skip lists in mandatory 339 (help-highlight-arguments): Don't skip lists in mandatory arguments.
112 arguments.
113 340
114 * simple.el (next-error): Fix typo in docstring. 341 * simple.el (next-error): Fix typo in docstring.
115 (open-line): Make argument names match their use in docstring. 342 (open-line): Make argument names match their use in docstring.
@@ -127,11 +354,11 @@
127 354
128 Version 2.0.40 of Tramp released. 355 Version 2.0.40 of Tramp released.
129 356
130 * net/tramp.el (tramp-completion-mode, tramp-md5-function): Use 357 * net/tramp.el (tramp-completion-mode, tramp-md5-function):
131 symbol-function to invoke functions only known on some Emacs 358 Use symbol-function to invoke functions only known on some Emacs
132 flavors. This avoids byte-compiler warnings. Reported by Kevin 359 flavors. This avoids byte-compiler warnings. Reported by Kevin
133 Scaldeferri <kevin@scaldeferri.com>. 360 Scaldeferri <kevin@scaldeferri.com>.
134 (tramp-do-copy-or-rename-file-via-buffer): Renamed from 361 (tramp-do-copy-or-rename-file-via-buffer): Rename from
135 tramp-do-copy-or-rename-via-buffer (without `file'), to make it 362 tramp-do-copy-or-rename-via-buffer (without `file'), to make it
136 consistent with the other tramp-do-* functions. 363 consistent with the other tramp-do-* functions.
137 (tramp-do-copy-or-rename-file): Calls adjusted. 364 (tramp-do-copy-or-rename-file): Calls adjusted.
@@ -145,8 +372,7 @@
145 (tramp-read-passwd): Construct the key for the password cache in a 372 (tramp-read-passwd): Construct the key for the password cache in a
146 way that works for multi methods, too. 373 way that works for multi methods, too.
147 (tramp-bug): Add backup-directory-alist and 374 (tramp-bug): Add backup-directory-alist and
148 bkup-backup-directory-info to bug reports, with Tramp 375 bkup-backup-directory-info to bug reports, with Tramp counterparts.
149 counterparts.
150 376
1512004-05-07 Michael Albinus <michael.albinus@gmx.de> 3772004-05-07 Michael Albinus <michael.albinus@gmx.de>
152 378
@@ -157,8 +383,8 @@
157 (tramp-do-copy-or-rename-file-out-of-band): Asynchronous process 383 (tramp-do-copy-or-rename-file-out-of-band): Asynchronous process
158 used instead of a synchronous one. Allows password entering. 384 used instead of a synchronous one. Allows password entering.
159 (tramp-action-out-of-band): New defun. 385 (tramp-action-out-of-band): New defun.
160 (tramp-open-connection-rsh, tramp-method-out-of-band-p): Remove 386 (tramp-open-connection-rsh, tramp-method-out-of-band-p):
161 restriction with password from doc string. 387 Remove restriction with password from doc string.
162 (tramp-bug): Add variables `tramp-terminal-prompt-regexp', 388 (tramp-bug): Add variables `tramp-terminal-prompt-regexp',
163 `tramp-out-of-band-prompt-regexp', 389 `tramp-out-of-band-prompt-regexp',
164 `tramp-actions-copy-out-of-band', `password-cache' and 390 `tramp-actions-copy-out-of-band', `password-cache' and
@@ -172,15 +398,14 @@
172 Schwab <schwab@suse.de>. 398 Schwab <schwab@suse.de>.
173 (tramp-do-copy-or-rename-file-via-buffer): Set permissions of the 399 (tramp-do-copy-or-rename-file-via-buffer): Set permissions of the
174 new file. 400 new file.
175 (tramp-handle-file-local-copy, tramp-handle-write-region): The 401 (tramp-handle-file-local-copy, tramp-handle-write-region):
176 permissions of the temporary file are set if filename exists. 402 The permissions of the temporary file are set if filename exists.
177 Reported by Ted Stern <stern@cray.com>. 403 Reported by Ted Stern <stern@cray.com>.
178 (tramp-backup-directory-alist) 404 (tramp-backup-directory-alist)
179 (tramp-bkup-backup-directory-info): New defcustoms. 405 (tramp-bkup-backup-directory-info): New defcustoms.
180 (tramp-file-name-handler-alist): Add entry for 406 (tramp-file-name-handler-alist): Add entry for `find-backup-file-name'.
181 `find-backup-file-name'. 407 (tramp-handle-find-backup-file-name): New function.
182 (tramp-handle-find-backup-file-name): New function. Implements 408 Implements Tramp's find-backup-file-name.
183 Tramp's find-backup-file-name.
184 409
185 * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add entry 410 * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add entry
186 for `find-backup-file-name'. 411 for `find-backup-file-name'.
@@ -197,8 +422,7 @@
197 * subr.el (lambda): Add arglist description to docstring. 422 * subr.el (lambda): Add arglist description to docstring.
198 (declare): Fix typo in docstring. 423 (declare): Fix typo in docstring.
199 (open-network-stream): Fix docstring. 424 (open-network-stream): Fix docstring.
200 (process-kill-without-query): Fix docstring and add obsolescence 425 (process-kill-without-query): Fix docstring and add obsolescence info.
201 info.
202 (last, butlast, nbutlast): Make arguments match their use in docstring. 426 (last, butlast, nbutlast): Make arguments match their use in docstring.
203 (insert-buffer-substring-no-properties): Likewise. 427 (insert-buffer-substring-no-properties): Likewise.
204 (insert-buffer-substring-as-yank): Likewise. 428 (insert-buffer-substring-as-yank): Likewise.
@@ -269,13 +493,13 @@
269 493
2702004-05-06 Juanma Barranquero <lektu@terra.es> 4942004-05-06 Juanma Barranquero <lektu@terra.es>
271 495
496 * ehelp.el (electric-help-command-loop): Check whether the last
497 character is visible, not (point-max).
498
272 * help-fns.el (help-argument-name): Default to bold; don't inherit 499 * help-fns.el (help-argument-name): Default to bold; don't inherit
273 from font-lock-variable-name-face. 500 from font-lock-variable-name-face.
274 (help-do-arg-highlight): Grok also ARGth occurrences in the docstring. 501 (help-do-arg-highlight): Grok also ARGth occurrences in the docstring.
275 502
276 * ehelp.el (electric-help-command-loop): Check whether the last
277 character is visible, not (point-max).
278
2792004-05-05 Kenichi Handa <handa@m17n.org> 5032004-05-05 Kenichi Handa <handa@m17n.org>
280 504
281 * descr-text.el (describe-char): Copy the character with text 505 * descr-text.el (describe-char): Copy the character with text
@@ -323,6 +547,9 @@
323 547
3242004-05-04 Juanma Barranquero <lektu@terra.es> 5482004-05-04 Juanma Barranquero <lektu@terra.es>
325 549
550 * ehelp.el (electric-help-command-loop, electric-help-undefined)
551 (electric-help-help): Check against unmapped commands.
552
326 * help-fns.el (help-argument-name): New face, inheriting from 553 * help-fns.el (help-argument-name): New face, inheriting from
327 font-lock-variable-name-face, to highlight function arguments in 554 font-lock-variable-name-face, to highlight function arguments in
328 `describe-function' and `describe-key'. 555 `describe-function' and `describe-key'.
@@ -333,12 +560,9 @@
333 (describe-function-1): Use it. Do docstring output via `insert', 560 (describe-function-1): Use it. Do docstring output via `insert',
334 not 'princ', so text attributes are preserved. 561 not 'princ', so text attributes are preserved.
335 562
336 * winner.el (winner-mode-map): Move winner-undo and winner-redo to 563 * winner.el (winner-mode-map): Move `winner-undo' and
337 C-c <left> and C-c <right>, respectively (the previous bindings 564 `winner-redo' to C-c <left> and C-c <right>, respectively (the
338 conflict with prev-buffer, next-buffer). 565 previous bindings conflict with `prev-buffer', `next-buffer').
339
340 * ehelp.el (electric-help-command-loop, electric-help-undefined)
341 (electric-help-help): Check against unmapped commands.
342 566
3432004-05-03 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> 5672004-05-03 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
344 568
@@ -617,7 +841,7 @@
617 `font-lock-add-keywords'. 841 `font-lock-add-keywords'.
618 (sql-send-string): Add function. 842 (sql-send-string): Add function.
619 843
6202004-04-29 Dave Love <fx@gnu.org> 8442004-04-29 Dave Love <fx@gnu.org>
621 845
622 * progmodes/cfengine.el (cfengine-beginning-of-defun) 846 * progmodes/cfengine.el (cfengine-beginning-of-defun)
623 (cfengine-end-of-defun): Ensure progress through buffer. 847 (cfengine-end-of-defun): Ensure progress through buffer.
@@ -1060,11 +1284,11 @@
1060 1284
10612004-04-21 Juanma Barranquero <lektu@terra.es> 12852004-04-21 Juanma Barranquero <lektu@terra.es>
1062 1286
1063 * makefile.w32-in (WINS): Add url/ directory.
1064
1065 * font-lock.el (font-lock-preprocessor-face): Remove spurious quote. 1287 * font-lock.el (font-lock-preprocessor-face): Remove spurious quote.
1066 (font-lock-warning-face): Fix spacing. 1288 (font-lock-warning-face): Fix spacing.
1067 1289
1290 * makefile.w32-in (WINS): Add url/ directory.
1291
10682004-04-21 Lars Hansen <larsh@math.ku.dk> 12922004-04-21 Lars Hansen <larsh@math.ku.dk>
1069 1293
1070 * desktop.el (desktop-buffer-mode-handlers): New variable. 1294 * desktop.el (desktop-buffer-mode-handlers): New variable.
@@ -1809,7 +2033,7 @@
1809 2033
18102004-04-05 Vinicius Jose Latorre <viniciusjl@ig.com.br> 20342004-04-05 Vinicius Jose Latorre <viniciusjl@ig.com.br>
1811 2035
1812 * printing.el: Dox fix. 2036 * printing.el: Doc fix.
1813 2037
18142004-04-05 Nick Roberts <nick@nick.uklinux.net> 20382004-04-05 Nick Roberts <nick@nick.uklinux.net>
1815 2039
@@ -6811,7 +7035,7 @@
68112003-07-10 Vinicius Jose Latorre <viniciusjl@ig.com.br> 70352003-07-10 Vinicius Jose Latorre <viniciusjl@ig.com.br>
6812 7036
6813 * ps-print.el: Print line number correctly in a region. Reported by 7037 * ps-print.el: Print line number correctly in a region. Reported by
6814 Tim Allen <timallen@ls83.fsnet.co.uk> 7038 Tim Allen <timallen@ls83.fsnet.co.uk>.
6815 (ps-print-version): New version number (6.6.2). 7039 (ps-print-version): New version number (6.6.2).
6816 (ps-printing-region): Code fix. 7040 (ps-printing-region): Code fix.
6817 7041
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
index 002aec878ca..0c911ca8b7d 100644
--- a/lisp/calendar/appt.el
+++ b/lisp/calendar/appt.el
@@ -449,11 +449,10 @@ NEW-TIME is a string giving the date."
449 (same-window-p (buffer-name appt-disp-buf))) 449 (same-window-p (buffer-name appt-disp-buf)))
450 ;; By default, split the bottom window and use the lower part. 450 ;; By default, split the bottom window and use the lower part.
451 (appt-select-lowest-window) 451 (appt-select-lowest-window)
452 (split-window)) 452 (select-window (split-window)))
453 (pop-to-buffer appt-disp-buf)) 453 (switch-to-buffer appt-disp-buf))
454 (setq mode-line-format 454 (calendar-set-mode-line
455 (concat "-------------------- Appointment in " 455 (format " Appointment in %s minutes. %s " min-to-app new-time))
456 min-to-app " minutes. " new-time " %-"))
457 (erase-buffer) 456 (erase-buffer)
458 (insert appt-msg) 457 (insert appt-msg)
459 (shrink-window-if-larger-than-buffer (get-buffer-window appt-disp-buf t)) 458 (shrink-window-if-larger-than-buffer (get-buffer-window appt-disp-buf t))
diff --git a/lisp/custom.el b/lisp/custom.el
index f5cfd55400a..ae9d86cab00 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -54,7 +54,7 @@ Users should not set it.")
54 "Initialize SYMBOL with VALUE. 54 "Initialize SYMBOL with VALUE.
55This will do nothing if symbol already has a default binding. 55This will do nothing if symbol already has a default binding.
56Otherwise, if symbol has a `saved-value' property, it will evaluate 56Otherwise, if symbol has a `saved-value' property, it will evaluate
57the car of that and used as the default binding for symbol. 57the car of that and use it as the default binding for symbol.
58Otherwise, VALUE will be evaluated and used as the default binding for 58Otherwise, VALUE will be evaluated and used as the default binding for
59symbol." 59symbol."
60 (unless (default-boundp symbol) 60 (unless (default-boundp symbol)
@@ -176,7 +176,7 @@ set to nil, as the value is no longer rogue."
176 "Declare SYMBOL as a customizable variable that defaults to VALUE. 176 "Declare SYMBOL as a customizable variable that defaults to VALUE.
177DOC is the variable documentation. 177DOC is the variable documentation.
178 178
179Neither SYMBOL nor VALUE needs to be quoted. 179Neither SYMBOL nor VALUE need to be quoted.
180If SYMBOL is not already bound, initialize it to VALUE. 180If SYMBOL is not already bound, initialize it to VALUE.
181The remaining arguments should have the form 181The remaining arguments should have the form
182 182
@@ -298,8 +298,8 @@ following REQ are defined:
298 298
299`type' (the value of `window-system') 299`type' (the value of `window-system')
300 Under X, in addition to the values `window-system' can take, 300 Under X, in addition to the values `window-system' can take,
301 `motif', `lucid' and `x-toolkit' are allowed, and match when 301 `motif', `lucid', `gtk' and `x-toolkit' are allowed, and match when
302 the Motif toolkit, Lucid toolkit, or any X toolkit is in use. 302 the Motif toolkit, Lucid toolkit, GTK toolkit or any X toolkit is in use.
303 303
304`class' (the frame's color support) 304`class' (the frame's color support)
305 Should be one of `color', `grayscale', or `mono'. 305 Should be one of `color', `grayscale', or `mono'.
diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 6b4f18ff718..75ce294dad6 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -28,7 +28,7 @@
28 28
29;;; Code: 29;;; Code:
30 30
31(eval-when-compile (require 'button)) 31(eval-when-compile (require 'button) (require 'quail))
32 32
33(defun describe-text-done () 33(defun describe-text-done ()
34 "Delete the current window or bury the current buffer." 34 "Delete the current window or bury the current buffer."
@@ -183,7 +183,6 @@ otherwise."
183(defun describe-text-properties-1 (pos output-buffer) 183(defun describe-text-properties-1 (pos output-buffer)
184 (let* ((properties (text-properties-at pos)) 184 (let* ((properties (text-properties-at pos))
185 (overlays (overlays-at pos)) 185 (overlays (overlays-at pos))
186 overlay
187 (wid-field (get-char-property pos 'field)) 186 (wid-field (get-char-property pos 'field))
188 (wid-button (get-char-property pos 'button)) 187 (wid-button (get-char-property pos 'button))
189 (wid-doc (get-char-property pos 'widget-doc)) 188 (wid-doc (get-char-property pos 'widget-doc))
@@ -225,221 +224,214 @@ otherwise."
225 (widget-insert "There are text properties here:\n") 224 (widget-insert "There are text properties here:\n")
226 (describe-property-list properties))))) 225 (describe-property-list properties)))))
227 226
228;;; We cannot use the UnicodeData.txt file as such; it is not free. 227(defcustom describe-char-unicodedata-file nil
229;;; We can turn that info a different format and release the result 228 "Location of Unicode data file.
230;;; as free data. When that is done, we could reinstate the code below. 229This is the UnicodeData.txt file from the Unicode consortium, used for
231;;; For the mean time, here is a dummy placeholder. 230diagnostics. If it is non-nil `describe-char-after' will print data
232;;; -- rms 231looked up from it. This facility is mostly of use to people doing
233(defun describe-char-unicode-data (char) nil) 232multilingual development.
234 233
235;;; (defcustom describe-char-unicodedata-file nil 234This is a fairly large file, not typically present on GNU systems. At
236;;; "Location of Unicode data file. 235the time of writing it is at
237;;; This is the UnicodeData.txt file from the Unicode consortium, used for 236<URL:http://www.unicode.org/Public/UNIDATA/UnicodeData.txt>."
238;;; diagnostics. If it is non-nil `describe-char-after' will print data 237 :group 'mule
239;;; looked up from it. This facility is mostly of use to people doing 238 :version "21.4"
240;;; multilingual development. 239 :type '(choice (const :tag "None" nil)
241 240 file))
242;;; This is a fairly large file, not typically present on GNU systems. At 241
243;;; the time of writing it is at 242;; We could convert the unidata file into a Lispy form once-for-all
244;;; <URL:ftp://www.unicode.org/Public/UNIDATA/UnicodeData.txt>." 243;; and distribute it for loading on demand. It might be made more
245;;; :group 'mule 244;; space-efficient by splitting strings word-wise and replacing them
246;;; :version "21.5" 245;; with lists of symbols interned in a private obarray, e.g.
247;;; :type '(choice (const :tag "None" nil) 246;; "LATIN SMALL LETTER A" => '(LATIN SMALL LETTER A).
248;;; file)) 247
249 248;; Fixme: Check whether this needs updating for Unicode 4.
250;;; ;; We could convert the unidata file into a Lispy form once-for-all 249(defun describe-char-unicode-data (char)
251;;; ;; and distribute it for loading on demand. It might be made more 250 "Return a list of Unicode data for unicode CHAR.
252;;; ;; space-efficient by splitting strings word-wise and replacing them 251Each element is a list of a property description and the property value.
253;;; ;; with lists of symbols interned in a private obarray, e.g. 252The list is null if CHAR isn't found in `describe-char-unicodedata-file'."
254;;; ;; "LATIN SMALL LETTER A" => '(LATIN SMALL LETTER A). 253 (when describe-char-unicodedata-file
255 254 (unless (file-exists-p describe-char-unicodedata-file)
256;;; ;; Fixme: Check whether this needs updating for Unicode 4. 255 (error "`unicodedata-file' %s not found" describe-char-unicodedata-file))
257;;; (defun describe-char-unicode-data (char) 256 (with-current-buffer
258;;; "Return a list of Unicode data for unicode CHAR. 257 ;; Find file in fundamental mode to avoid, e.g. flyspell turned
259;;; Each element is a list of a property description and the property value. 258 ;; on for .txt. Don't use RAWFILE arg in case of DOS line endings.
260;;; The list is null if CHAR isn't found in `describe-char-unicodedata-file'." 259 (let ((auto-mode-alist))
261;;; (when describe-char-unicodedata-file 260 (find-file-noselect describe-char-unicodedata-file))
262;;; (unless (file-exists-p describe-char-unicodedata-file) 261 (goto-char (point-min))
263;;; (error "`unicodedata-file' %s not found" describe-char-unicodedata-file)) 262 (let ((hex (format "%04X" char))
264;;; (save-excursion 263 found first last)
265;;; ;; Find file in fundamental mode to avoid, e.g. flyspell turned 264 (if (re-search-forward (concat "^" hex) nil t)
266;;; ;; on for .txt. Don't use RAWFILE arg in case of DOS line endings. 265 (setq found t)
267;;; (set-buffer (let ((auto-mode-alist)) 266 ;; It's not listed explicitly. Look for ranges, e.g. CJK
268;;; (find-file-noselect describe-char-unicodedata-file))) 267 ;; ideographs, and check whether it's in one of them.
269;;; (goto-char (point-min)) 268 (while (and (re-search-forward "^\\([^;]+\\);[^;]+First>;" nil t)
270;;; (let ((hex (format "%04X" char)) 269 (>= char (setq first
271;;; found first last) 270 (string-to-number (match-string 1) 16)))
272;;; (if (re-search-forward (concat "^" hex) nil t) 271 (progn
273;;; (setq found t) 272 (forward-line 1)
274;;; ;; It's not listed explicitly. Look for ranges, e.g. CJK 273 (looking-at "^\\([^;]+\\);[^;]+Last>;")
275;;; ;; ideographs, and check whether it's in one of them. 274 (> char
276;;; (while (and (re-search-forward "^\\([^;]+\\);[^;]+First>;" nil t) 275 (setq last
277;;; (>= char (setq first 276 (string-to-number (match-string 1) 16))))))
278;;; (string-to-number (match-string 1) 16))) 277 (if (and (>= char first)
279;;; (progn 278 (<= char last))
280;;; (forward-line 1) 279 (setq found t)))
281;;; (looking-at "^\\([^;]+\\);[^;]+Last>;") 280 (if found
282;;; (> char 281 (let ((fields (mapcar (lambda (elt)
283;;; (setq last 282 (if (> (length elt) 0)
284;;; (string-to-number (match-string 1) 16)))))) 283 elt))
285;;; (if (and (>= char first) 284 (cdr (split-string
286;;; (<= char last)) 285 (buffer-substring
287;;; (setq found t))) 286 (line-beginning-position)
288;;; (if found 287 (line-end-position))
289;;; (let ((fields (mapcar (lambda (elt) 288 ";")))))
290;;; (if (> (length elt) 0) 289 ;; The length depends on whether the last field was empty.
291;;; elt)) 290 (unless (or (= 13 (length fields))
292;;; (cdr (split-string 291 (= 14 (length fields)))
293;;; (buffer-substring 292 (error "Invalid contents in %s" describe-char-unicodedata-file))
294;;; (line-beginning-position) 293 ;; The field names and values lists are slightly
295;;; (line-end-position)) 294 ;; modified from Mule-UCS unidata.el.
296;;; ";"))))) 295 (list
297;;; ;; The length depends on whether the last field was empty. 296 (list "Name" (let ((name (nth 0 fields)))
298;;; (unless (or (= 13 (length fields)) 297 ;; Check for <..., First>, <..., Last>
299;;; (= 14 (length fields))) 298 (if (string-match "\\`\\(<[^,]+\\)," name)
300;;; (error "Invalid contents in %s" describe-char-unicodedata-file)) 299 (concat (match-string 1 name) ">")
301;;; ;; The field names and values lists are slightly 300 name)))
302;;; ;; modified from Mule-UCS unidata.el. 301 (list "Category"
303;;; (list 302 (cdr (assoc
304;;; (list "Name" (let ((name (nth 0 fields))) 303 (nth 1 fields)
305;;; ;; Check for <..., First>, <..., Last> 304 '(("Lu" . "uppercase letter")
306;;; (if (string-match "\\`\\(<[^,]+\\)," name) 305 ("Ll" . "lowercase letter")
307;;; (concat (match-string 1 name) ">") 306 ("Lt" . "titlecase letter")
308;;; name))) 307 ("Mn" . "non-spacing mark")
309;;; (list "Category" 308 ("Mc" . "spacing-combining mark")
310;;; (cdr (assoc 309 ("Me" . "enclosing mark")
311;;; (nth 1 fields) 310 ("Nd" . "decimal digit")
312;;; '(("Lu" . "uppercase letter") 311 ("Nl" . "letter number")
313;;; ("Ll" . "lowercase letter") 312 ("No" . "other number")
314;;; ("Lt" . "titlecase letter") 313 ("Zs" . "space separator")
315;;; ("Mn" . "non-spacing mark") 314 ("Zl" . "line separator")
316;;; ("Mc" . "spacing-combining mark") 315 ("Zp" . "paragraph separator")
317;;; ("Me" . "enclosing mark") 316 ("Cc" . "other control")
318;;; ("Nd" . "decimal digit") 317 ("Cf" . "other format")
319;;; ("Nl" . "letter number") 318 ("Cs" . "surrogate")
320;;; ("No" . "other number") 319 ("Co" . "private use")
321;;; ("Zs" . "space separator") 320 ("Cn" . "not assigned")
322;;; ("Zl" . "line separator") 321 ("Lm" . "modifier letter")
323;;; ("Zp" . "paragraph separator") 322 ("Lo" . "other letter")
324;;; ("Cc" . "other control") 323 ("Pc" . "connector punctuation")
325;;; ("Cf" . "other format") 324 ("Pd" . "dash punctuation")
326;;; ("Cs" . "surrogate") 325 ("Ps" . "open punctuation")
327;;; ("Co" . "private use") 326 ("Pe" . "close punctuation")
328;;; ("Cn" . "not assigned") 327 ("Pi" . "initial-quotation punctuation")
329;;; ("Lm" . "modifier letter") 328 ("Pf" . "final-quotation punctuation")
330;;; ("Lo" . "other letter") 329 ("Po" . "other punctuation")
331;;; ("Pc" . "connector punctuation") 330 ("Sm" . "math symbol")
332;;; ("Pd" . "dash punctuation") 331 ("Sc" . "currency symbol")
333;;; ("Ps" . "open punctuation") 332 ("Sk" . "modifier symbol")
334;;; ("Pe" . "close punctuation") 333 ("So" . "other symbol")))))
335;;; ("Pi" . "initial-quotation punctuation") 334 (list "Combining class"
336;;; ("Pf" . "final-quotation punctuation") 335 (cdr (assoc
337;;; ("Po" . "other punctuation") 336 (string-to-number (nth 2 fields))
338;;; ("Sm" . "math symbol") 337 '((0 . "Spacing")
339;;; ("Sc" . "currency symbol") 338 (1 . "Overlays and interior")
340;;; ("Sk" . "modifier symbol") 339 (7 . "Nuktas")
341;;; ("So" . "other symbol"))))) 340 (8 . "Hiragana/Katakana voicing marks")
342;;; (list "Combining class" 341 (9 . "Viramas")
343;;; (cdr (assoc 342 (10 . "Start of fixed position classes")
344;;; (string-to-number (nth 2 fields)) 343 (199 . "End of fixed position classes")
345;;; '((0 . "Spacing") 344 (200 . "Below left attached")
346;;; (1 . "Overlays and interior") 345 (202 . "Below attached")
347;;; (7 . "Nuktas") 346 (204 . "Below right attached")
348;;; (8 . "Hiragana/Katakana voicing marks") 347 (208 . "Left attached (reordrant around \
349;;; (9 . "Viramas") 348single base character)")
350;;; (10 . "Start of fixed position classes") 349 (210 . "Right attached")
351;;; (199 . "End of fixed position classes") 350 (212 . "Above left attached")
352;;; (200 . "Below left attached") 351 (214 . "Above attached")
353;;; (202 . "Below attached") 352 (216 . "Above right attached")
354;;; (204 . "Below right attached") 353 (218 . "Below left")
355;;; (208 . "Left attached (reordrant around \ 354 (220 . "Below")
356;;; single base character)") 355 (222 . "Below right")
357;;; (210 . "Right attached") 356 (224 . "Left (reordrant around single base \
358;;; (212 . "Above left attached") 357character)")
359;;; (214 . "Above attached") 358 (226 . "Right")
360;;; (216 . "Above right attached") 359 (228 . "Above left")
361;;; (218 . "Below left") 360 (230 . "Above")
362;;; (220 . "Below") 361 (232 . "Above right")
363;;; (222 . "Below right") 362 (233 . "Double below")
364;;; (224 . "Left (reordrant around single base \ 363 (234 . "Double above")
365;;; character)") 364 (240 . "Below (iota subscript)")))))
366;;; (226 . "Right") 365 (list "Bidi category"
367;;; (228 . "Above left") 366 (cdr (assoc
368;;; (230 . "Above") 367 (nth 3 fields)
369;;; (232 . "Above right") 368 '(("L" . "Left-to-Right")
370;;; (233 . "Double below") 369 ("LRE" . "Left-to-Right Embedding")
371;;; (234 . "Double above") 370 ("LRO" . "Left-to-Right Override")
372;;; (240 . "Below (iota subscript)"))))) 371 ("R" . "Right-to-Left")
373;;; (list "Bidi category" 372 ("AL" . "Right-to-Left Arabic")
374;;; (cdr (assoc 373 ("RLE" . "Right-to-Left Embedding")
375;;; (nth 3 fields) 374 ("RLO" . "Right-to-Left Override")
376;;; '(("L" . "Left-to-Right") 375 ("PDF" . "Pop Directional Format")
377;;; ("LRE" . "Left-to-Right Embedding") 376 ("EN" . "European Number")
378;;; ("LRO" . "Left-to-Right Override") 377 ("ES" . "European Number Separator")
379;;; ("R" . "Right-to-Left") 378 ("ET" . "European Number Terminator")
380;;; ("AL" . "Right-to-Left Arabic") 379 ("AN" . "Arabic Number")
381;;; ("RLE" . "Right-to-Left Embedding") 380 ("CS" . "Common Number Separator")
382;;; ("RLO" . "Right-to-Left Override") 381 ("NSM" . "Non-Spacing Mark")
383;;; ("PDF" . "Pop Directional Format") 382 ("BN" . "Boundary Neutral")
384;;; ("EN" . "European Number") 383 ("B" . "Paragraph Separator")
385;;; ("ES" . "European Number Separator") 384 ("S" . "Segment Separator")
386;;; ("ET" . "European Number Terminator") 385 ("WS" . "Whitespace")
387;;; ("AN" . "Arabic Number") 386 ("ON" . "Other Neutrals")))))
388;;; ("CS" . "Common Number Separator") 387 (list
389;;; ("NSM" . "Non-Spacing Mark") 388 "Decomposition"
390;;; ("BN" . "Boundary Neutral") 389 (if (nth 4 fields)
391;;; ("B" . "Paragraph Separator") 390 (let* ((parts (split-string (nth 4 fields)))
392;;; ("S" . "Segment Separator") 391 (info (car parts)))
393;;; ("WS" . "Whitespace") 392 (if (string-match "\\`<\\(.+\\)>\\'" info)
394;;; ("ON" . "Other Neutrals"))))) 393 (setq info (match-string 1 info))
395;;; (list 394 (setq info nil))
396;;; "Decomposition" 395 (if info (setq parts (cdr parts)))
397;;; (if (nth 4 fields) 396 ;; Maybe printing ? for unrepresentable unicodes
398;;; (let* ((parts (split-string (nth 4 fields))) 397 ;; here and below should be changed?
399;;; (info (car parts))) 398 (setq parts (mapconcat
400;;; (if (string-match "\\`<\\(.+\\)>\\'" info) 399 (lambda (arg)
401;;; (setq info (match-string 1 info)) 400 (string (or (decode-char
402;;; (setq info nil)) 401 'ucs
403;;; (if info (setq parts (cdr parts))) 402 (string-to-number arg 16))
404;;; ;; Maybe printing ? for unrepresentable unicodes 403 ??)))
405;;; ;; here and below should be changed? 404 parts " "))
406;;; (setq parts (mapconcat 405 (concat info parts))))
407;;; (lambda (arg) 406 (list "Decimal digit value"
408;;; (string (or (decode-char 407 (nth 5 fields))
409;;; 'ucs 408 (list "Digit value"
410;;; (string-to-number arg 16)) 409 (nth 6 fields))
411;;; ??))) 410 (list "Numeric value"
412;;; parts " ")) 411 (nth 7 fields))
413;;; (concat info parts)))) 412 (list "Mirrored"
414;;; (list "Decimal digit value" 413 (if (equal "Y" (nth 8 fields))
415;;; (nth 5 fields)) 414 "yes"))
416;;; (list "Digit value" 415 (list "Old name" (nth 9 fields))
417;;; (nth 6 fields)) 416 (list "ISO 10646 comment" (nth 10 fields))
418;;; (list "Numeric value" 417 (list "Uppercase" (and (nth 11 fields)
419;;; (nth 7 fields)) 418 (string (or (decode-char
420;;; (list "Mirrored" 419 'ucs
421;;; (if (equal "Y" (nth 8 fields)) 420 (string-to-number
422;;; "yes")) 421 (nth 11 fields) 16))
423;;; (list "Old name" (nth 9 fields)) 422 ??))))
424;;; (list "ISO 10646 comment" (nth 10 fields)) 423 (list "Lowercase" (and (nth 12 fields)
425;;; (list "Uppercase" (and (nth 11 fields) 424 (string (or (decode-char
426;;; (string (or (decode-char 425 'ucs
427;;; 'ucs 426 (string-to-number
428;;; (string-to-number 427 (nth 12 fields) 16))
429;;; (nth 11 fields) 16)) 428 ??))))
430;;; ??)))) 429 (list "Titlecase" (and (nth 13 fields)
431;;; (list "Lowercase" (and (nth 12 fields) 430 (string (or (decode-char
432;;; (string (or (decode-char 431 'ucs
433;;; 'ucs 432 (string-to-number
434;;; (string-to-number 433 (nth 13 fields) 16))
435;;; (nth 12 fields) 16)) 434 ??)))))))))))
436;;; ??))))
437;;; (list "Titlecase" (and (nth 13 fields)
438;;; (string (or (decode-char
439;;; 'ucs
440;;; (string-to-number
441;;; (nth 13 fields) 16))
442;;; ??)))))))))))
443 435
444;; Return information about how CHAR is displayed at the buffer 436;; Return information about how CHAR is displayed at the buffer
445;; position POS. If the selected frame is on a graphic display, 437;; position POS. If the selected frame is on a graphic display,
@@ -466,7 +458,6 @@ as well as widgets, buttons, overlays, and text properties."
466 (error "No character follows specified position")) 458 (error "No character follows specified position"))
467 (let* ((char (char-after pos)) 459 (let* ((char (char-after pos))
468 (charset (char-charset char)) 460 (charset (char-charset char))
469 (buffer (current-buffer))
470 (composition (find-composition pos nil nil t)) 461 (composition (find-composition pos nil nil t))
471 (component-chars nil) 462 (component-chars nil)
472 (display-table (or (window-display-table) 463 (display-table (or (window-display-table)
@@ -524,6 +515,13 @@ as well as widgets, buttons, overlays, and text properties."
524 (push (format "%s:" (pop props)) ps) 515 (push (format "%s:" (pop props)) ps)
525 (push (format "%s;" (pop props)) ps)) 516 (push (format "%s;" (pop props)) ps))
526 (list (cons "Properties" (nreverse ps))))) 517 (list (cons "Properties" (nreverse ps)))))
518 ("to input"
519 ,@(let ((key-list (and current-input-method
520 (quail-find-key char))))
521 (if (consp key-list)
522 (list "type"
523 (mapconcat #'(lambda (x) (concat "\"" x "\""))
524 key-list " or ")))))
527 ("buffer code" 525 ("buffer code"
528 ,(encoded-string-description 526 ,(encoded-string-description
529 (string-as-unibyte (char-to-string char)) nil)) 527 (string-as-unibyte (char-to-string char)) nil))
diff --git a/lisp/emacs-lisp/cl-indent.el b/lisp/emacs-lisp/cl-indent.el
index 2e6265d4dfd..c5e13a4c00f 100644
--- a/lisp/emacs-lisp/cl-indent.el
+++ b/lisp/emacs-lisp/cl-indent.el
@@ -216,8 +216,12 @@ If nil, indent backquoted lists as data, i.e., like quoted lists."
216 (cond ((string-match "\\`def" 216 (cond ((string-match "\\`def"
217 function) 217 function)
218 (setq tentative-defun t)) 218 (setq tentative-defun t))
219 ((string-match "\\`\\(with\\|do\\)-" 219 ((string-match
220 function) 220 (eval-when-compile
221 (concat "\\`\\("
222 (regexp-opt '("with" "without" "do"))
223 "\\)-"))
224 function)
221 (setq method '(&lambda &body)))))) 225 (setq method '(&lambda &body))))))
222 ;; backwards compatibility. Bletch. 226 ;; backwards compatibility. Bletch.
223 ((eq method 'defun) 227 ((eq method 'defun)
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 853498b0c8c..4057fe2968e 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -448,7 +448,7 @@ alternative printed representations that can be displayed."
448 "Return a string representing CHAR as a character rather than as an integer. 448 "Return a string representing CHAR as a character rather than as an integer.
449If CHAR is not a character, return nil." 449If CHAR is not a character, return nil."
450 (and (integerp char) 450 (and (integerp char)
451 (char-valid-p (event-basic-type char)) 451 (eventp char)
452 (let ((c (event-basic-type char))) 452 (let ((c (event-basic-type char)))
453 (concat 453 (concat
454 "?" 454 "?"
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el
index 4ab2ac8e0d4..336a1ff82d0 100644
--- a/lisp/emacs-lisp/timer.el
+++ b/lisp/emacs-lisp/timer.el
@@ -161,7 +161,7 @@ fire repeatedly that many seconds apart."
161 (aset timer 6 args) 161 (aset timer 6 args)
162 timer) 162 timer)
163 163
164(defun timer-activate (timer) 164(defun timer-activate (timer &optional triggered-p)
165 "Put TIMER on the list of active timers." 165 "Put TIMER on the list of active timers."
166 (if (and (timerp timer) 166 (if (and (timerp timer)
167 (integerp (aref timer 1)) 167 (integerp (aref timer 1))
@@ -184,7 +184,7 @@ fire repeatedly that many seconds apart."
184 (if last 184 (if last
185 (setcdr last (cons timer timers)) 185 (setcdr last (cons timer timers))
186 (setq timer-list (cons timer timers))) 186 (setq timer-list (cons timer timers)))
187 (aset timer 0 nil) 187 (aset timer 0 triggered-p)
188 (aset timer 7 nil) 188 (aset timer 7 nil)
189 nil) 189 nil)
190 (error "Invalid or uninitialized timer"))) 190 (error "Invalid or uninitialized timer")))
@@ -270,7 +270,7 @@ This function is called, by name, directly by the C code."
270 (setq timer-event-last timer) 270 (setq timer-event-last timer)
271 (let ((inhibit-quit t)) 271 (let ((inhibit-quit t))
272 (if (timerp timer) 272 (if (timerp timer)
273 (progn 273 (let (retrigger)
274 ;; Delete from queue. 274 ;; Delete from queue.
275 (cancel-timer timer) 275 (cancel-timer timer)
276 ;; Re-schedule if requested. 276 ;; Re-schedule if requested.
@@ -287,13 +287,16 @@ This function is called, by name, directly by the C code."
287 (aref timer 4)))) 287 (aref timer 4))))
288 (if (> repeats timer-max-repeats) 288 (if (> repeats timer-max-repeats)
289 (timer-inc-time timer (* (aref timer 4) repeats))))) 289 (timer-inc-time timer (* (aref timer 4) repeats)))))
290 (timer-activate timer))) 290 (timer-activate timer t)
291 (setq retrigger t)))
291 ;; Run handler. 292 ;; Run handler.
292 ;; We do this after rescheduling so that the handler function 293 ;; We do this after rescheduling so that the handler function
293 ;; can cancel its own timer successfully with cancel-timer. 294 ;; can cancel its own timer successfully with cancel-timer.
294 (condition-case nil 295 (condition-case nil
295 (apply (aref timer 5) (aref timer 6)) 296 (apply (aref timer 5) (aref timer 6))
296 (error nil))) 297 (error nil))
298 (if retrigger
299 (aset timer 0 nil)))
297 (error "Bogus timer event")))) 300 (error "Bogus timer event"))))
298 301
299;; This function is incompatible with the one in levents.el. 302;; This function is incompatible with the one in levents.el.
diff --git a/lisp/eshell/.gitignore b/lisp/eshell/.gitignore
index 16ccfcc8c0c..e1d7683a723 100644
--- a/lisp/eshell/.gitignore
+++ b/lisp/eshell/.gitignore
@@ -1 +1,14 @@
1COPYING
2FEATURES
3INSTALL
4Makefile
5NEWS
6README
7_darcs
8_pkg.el
9auto-autoloads.el
1esh-groups.el 10esh-groups.el
11esh-toggle.el
12eshell-auto.el
13eshell.info
14eshell.texi
diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el
index 8d1036b736e..d832fa9cd03 100644
--- a/lisp/eshell/esh-io.el
+++ b/lisp/eshell/esh-io.el
@@ -333,22 +333,23 @@ it defaults to `insert'."
333 (cond 333 (cond
334 ((stringp target) 334 ((stringp target)
335 (let ((redir (assoc target eshell-virtual-targets))) 335 (let ((redir (assoc target eshell-virtual-targets)))
336 (if redir 336 (if redir
337 (if (nth 2 redir) 337 (if (nth 2 redir)
338 (funcall (nth 1 redir) mode) 338 (funcall (nth 1 redir) mode)
339 (nth 1 redir)) 339 (nth 1 redir))
340 (let* ((exists (get-file-buffer target)) 340 (let* ((exists (get-file-buffer target))
341 (buf (find-file-noselect target t))) 341 (buf (find-file-noselect target t)))
342 (with-current-buffer buf 342 (with-current-buffer buf
343 (if buffer-read-only 343 (if buffer-read-only
344 (error "Cannot write to read-only file `%s'" target)) 344 (error "Cannot write to read-only file `%s'" target))
345 (set (make-local-variable 'eshell-output-file-buffer) 345 (set (make-local-variable 'eshell-output-file-buffer)
346 (if (eq exists buf) 0 t)) 346 (if (eq exists buf) 0 t))
347 (cond ((eq mode 'overwrite) 347 (cond ((eq mode 'overwrite)
348 (erase-buffer)) 348 (erase-buffer))
349 ((eq mode 'append) 349 ((eq mode 'append)
350 (goto-char (point-max)))) 350 (goto-char (point-max))))
351 (point-marker)))))) 351 (point-marker))))))
352
352 ((or (bufferp target) 353 ((or (bufferp target)
353 (and (boundp 'eshell-buffer-shorthand) 354 (and (boundp 'eshell-buffer-shorthand)
354 (symbol-value 'eshell-buffer-shorthand) 355 (symbol-value 'eshell-buffer-shorthand)
@@ -363,15 +364,18 @@ it defaults to `insert'."
363 ((eq mode 'append) 364 ((eq mode 'append)
364 (goto-char (point-max)))) 365 (goto-char (point-max))))
365 (point-marker)))) 366 (point-marker))))
366 ((functionp target) 367
367 nil) 368 ((functionp target) nil)
369
368 ((symbolp target) 370 ((symbolp target)
369 (if (eq mode 'overwrite) 371 (if (eq mode 'overwrite)
370 (set target nil)) 372 (set target nil))
371 target) 373 target)
374
372 ((or (eshell-processp target) 375 ((or (eshell-processp target)
373 (markerp target)) 376 (markerp target))
374 target) 377 target)
378
375 (t 379 (t
376 (error "Illegal redirection target: %s" 380 (error "Illegal redirection target: %s"
377 (eshell-stringify target))))) 381 (eshell-stringify target)))))
@@ -481,7 +485,8 @@ Returns what was actually sent, or nil if nothing was sent."
481 (let ((moving (= (point) target))) 485 (let ((moving (= (point) target)))
482 (save-excursion 486 (save-excursion
483 (goto-char target) 487 (goto-char target)
484 (setq object (eshell-stringify object)) 488 (unless (stringp object)
489 (setq object (eshell-stringify object)))
485 (insert-and-inherit object) 490 (insert-and-inherit object)
486 (set-marker target (point-marker))) 491 (set-marker target (point-marker)))
487 (if moving 492 (if moving
@@ -489,7 +494,8 @@ Returns what was actually sent, or nil if nothing was sent."
489 494
490 ((eshell-processp target) 495 ((eshell-processp target)
491 (when (eq (process-status target) 'run) 496 (when (eq (process-status target) 'run)
492 (setq object (eshell-stringify object)) 497 (unless (stringp object)
498 (setq object (eshell-stringify object)))
493 (process-send-string target object))) 499 (process-send-string target object)))
494 500
495 ((consp target) 501 ((consp target)
diff --git a/lisp/eshell/esh-test.el b/lisp/eshell/esh-test.el
index 54edf5e35ab..076505da14e 100644
--- a/lisp/eshell/esh-test.el
+++ b/lisp/eshell/esh-test.el
@@ -167,13 +167,7 @@
167 (local-set-key [(control ?m)] 'eshell-test-goto-func) 167 (local-set-key [(control ?m)] 'eshell-test-goto-func)
168 (local-set-key [return] 'eshell-test-goto-func) 168 (local-set-key [return] 'eshell-test-goto-func)
169 169
170 (insert "Testing Eshell under " 170 (insert "Testing Eshell under " (emacs-version))
171 (format "GNU Emacs %s (%s%s)"
172 emacs-version
173 system-configuration
174 (cond ((featurep 'motif) ", Motif")
175 ((featurep 'x-toolkit) ", X toolkit")
176 (t ""))))
177 (switch-to-buffer test-buffer) 171 (switch-to-buffer test-buffer)
178 (delete-other-windows)) 172 (delete-other-windows))
179 (eshell-for funcname (sort (all-completions "eshell-test--" 173 (eshell-for funcname (sort (all-completions "eshell-test--"
diff --git a/lisp/faces.el b/lisp/faces.el
index 47dab153dba..7bcaf7b6f01 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1309,9 +1309,12 @@ If FRAME is nil, the current FRAME is used."
1309 (memq 'tty options)) 1309 (memq 'tty options))
1310 (and (memq 'motif options) 1310 (and (memq 'motif options)
1311 (featurep 'motif)) 1311 (featurep 'motif))
1312 (and (memq 'gtk options)
1313 (featurep 'gtk))
1312 (and (memq 'lucid options) 1314 (and (memq 'lucid options)
1313 (featurep 'x-toolkit) 1315 (featurep 'x-toolkit)
1314 (not (featurep 'motif))) 1316 (not (featurep 'motif))
1317 (not (featurep 'gtk)))
1315 (and (memq 'x-toolkit options) 1318 (and (memq 'x-toolkit options)
1316 (featurep 'x-toolkit)))) 1319 (featurep 'x-toolkit))))
1317 ((eq req 'min-colors) 1320 ((eq req 'min-colors)
diff --git a/lisp/files.el b/lisp/files.el
index ca24de2862d..91da8a4c2c7 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -663,13 +663,12 @@ The truename of a file name is found by chasing symbolic links
663both at the level of the file and at the level of the directories 663both at the level of the file and at the level of the directories
664containing it, until no links are left at any level. 664containing it, until no links are left at any level.
665 665
666The arguments COUNTER and PREV-DIRS are used only in recursive calls. 666\(fn FILENAME)"
667Do not specify them in other calls." 667 ;; COUNTER and PREV-DIRS are only used in recursive calls.
668 ;; COUNTER can be a cons cell whose car is the count of how many more links 668 ;; COUNTER can be a cons cell whose car is the count of how many
669 ;; to chase before getting an error. 669 ;; more links to chase before getting an error.
670 ;; PREV-DIRS can be a cons cell whose car is an alist 670 ;; PREV-DIRS can be a cons cell whose car is an alist
671 ;; of truenames we've just recently computed. 671 ;; of truenames we've just recently computed.
672
673 (cond ((or (string= filename "") (string= filename "~")) 672 (cond ((or (string= filename "") (string= filename "~"))
674 (setq filename (expand-file-name filename)) 673 (setq filename (expand-file-name filename))
675 (if (string= filename "") 674 (if (string= filename "")
@@ -2330,7 +2329,7 @@ However, the mode will not be changed if
2330(defun set-visited-file-name (filename &optional no-query along-with-file) 2329(defun set-visited-file-name (filename &optional no-query along-with-file)
2331 "Change name of file visited in current buffer to FILENAME. 2330 "Change name of file visited in current buffer to FILENAME.
2332The next time the buffer is saved it will go in the newly specified file. 2331The next time the buffer is saved it will go in the newly specified file.
2333nil or empty string as argument means make buffer not be visiting any file. 2332FILENAME nil or an empty string means make buffer not be visiting any file.
2334Remember to delete the initial contents of the minibuffer 2333Remember to delete the initial contents of the minibuffer
2335if you wish to pass an empty string as the argument. 2334if you wish to pass an empty string as the argument.
2336 2335
@@ -4024,7 +4023,7 @@ by `sh' are supported."
4024 "Expand wildcard pattern PATTERN. 4023 "Expand wildcard pattern PATTERN.
4025This returns a list of file names which match the pattern. 4024This returns a list of file names which match the pattern.
4026 4025
4027If PATTERN is written as an absolute relative file name, 4026If PATTERN is written as an absolute file name,
4028the values are absolute also. 4027the values are absolute also.
4029 4028
4030If PATTERN is written as a relative file name, it is interpreted 4029If PATTERN is written as a relative file name, it is interpreted
diff --git a/lisp/generic.el b/lisp/generic.el
index bd6fa0608aa..ca4b47ff4b1 100644
--- a/lisp/generic.el
+++ b/lisp/generic.el
@@ -1,6 +1,6 @@
1;;; generic.el --- defining simple major modes with comment and font-lock 1;;; generic.el --- defining simple major modes with comment and font-lock
2;; 2;;
3;; Copyright (C) 1997, 1999 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
4;; 4;;
5;; Author: Peter Breton <pbreton@cs.umb.edu> 5;; Author: Peter Breton <pbreton@cs.umb.edu>
6;; Created: Fri Sep 27 1996 6;; Created: Fri Sep 27 1996
@@ -188,9 +188,6 @@ regexp in `generic-find-file-regexp'. If the value is nil,
188 &optional description) 188 &optional description)
189 "Create a new generic mode with NAME. 189 "Create a new generic mode with NAME.
190 190
191Args: (NAME COMMENT-LIST KEYWORD-LIST FONT-LOCK-LIST AUTO-MODE-LIST
192 FUNCTION-LIST &optional DESCRIPTION)
193
194NAME should be a symbol; its string representation is used as the function 191NAME should be a symbol; its string representation is used as the function
195name. If DESCRIPTION is provided, it is used as the docstring for the new 192name. If DESCRIPTION is provided, it is used as the docstring for the new
196function. 193function.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index e2cea8301ec..00a2634ee8c 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,8 @@
12004-05-18 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * gnus-win.el (gnus-all-windows-visible-p): Don't consider
4 non-visible windows.
5
12004-05-07 Stefan Monnier <monnier@iro.umontreal.ca> 62004-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
2 7
3 * rfc2047.el (rfc2047-encode-message-header): Don't encode non-address 8 * rfc2047.el (rfc2047-encode-message-header): Don't encode non-address
diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el
index fa082e7c1d0..4d0c18a8daf 100644
--- a/lisp/gnus/gnus-win.el
+++ b/lisp/gnus/gnus-win.el
@@ -1,5 +1,5 @@
1;;; gnus-win.el --- window configuration functions for Gnus 1;;; gnus-win.el --- window configuration functions for Gnus
2;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002 2;; Copyright (C) 1996, 97, 98, 1999, 2000, 02, 2004
3;; Free Software Foundation, Inc. 3;; Free Software Foundation, Inc.
4 4
5;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> 5;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -516,7 +516,7 @@ should have point."
516 (unless buffer 516 (unless buffer
517 (error "Invalid buffer type: %s" type)) 517 (error "Invalid buffer type: %s" type))
518 (if (and (setq buf (get-buffer (gnus-window-to-buffer-helper buffer))) 518 (if (and (setq buf (get-buffer (gnus-window-to-buffer-helper buffer)))
519 (setq win (get-buffer-window buf t))) 519 (setq win (get-buffer-window buf 0)))
520 (if (memq 'point split) 520 (if (memq 'point split)
521 (setq all-visible win)) 521 (setq all-visible win))
522 (setq all-visible nil))) 522 (setq all-visible nil)))
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index df8f9359853..e0692119a21 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -158,31 +158,31 @@ and the file name is displayed in the echo area."
158 ;; Return the text we displayed. 158 ;; Return the text we displayed.
159 (buffer-string)))))) 159 (buffer-string))))))
160 160
161(defun help-split-fundoc (doc def) 161(defun help-split-fundoc (docstring def)
162 "Split a function docstring DOC into the actual doc and the usage info. 162 "Split a function DOCSTRING into the actual doc and the usage info.
163Return (USAGE . DOC) or nil if there's no usage info. 163Return (USAGE . DOC) or nil if there's no usage info.
164DEF is the function whose usage we're looking for in DOC." 164DEF is the function whose usage we're looking for in DOCSTRING."
165 ;; Functions can get the calling sequence at the end of the doc string. 165 ;; Functions can get the calling sequence at the end of the doc string.
166 ;; In cases where `function' has been fset to a subr we can't search for 166 ;; In cases where `function' has been fset to a subr we can't search for
167 ;; function's name in the doc string so we use `fn' as the anonymous 167 ;; function's name in the doc string so we use `fn' as the anonymous
168 ;; function name instead. 168 ;; function name instead.
169 (when (and doc (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" doc)) 169 (when (and docstring (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" docstring))
170 (cons (format "(%s%s" 170 (cons (format "(%s%s"
171 ;; Replace `fn' with the actual function name. 171 ;; Replace `fn' with the actual function name.
172 (if (consp def) "anonymous" def) 172 (if (consp def) "anonymous" def)
173 (match-string 1 doc)) 173 (match-string 1 docstring))
174 (substring doc 0 (match-beginning 0))))) 174 (substring docstring 0 (match-beginning 0)))))
175 175
176(defun help-add-fundoc-usage (doc arglist) 176(defun help-add-fundoc-usage (docstring arglist)
177 "Add the usage info to the docstring DOC. 177 "Add the usage info to DOCSTRING.
178If DOC already has a usage info, then just return DOC unchanged. 178If DOCSTRING already has a usage info, then just return it unchanged.
179The usage info is built from ARGLIST. DOC can be nil. 179The usage info is built from ARGLIST. DOCSTRING can be nil.
180ARGLIST can also be t or a string of the form \"(fun ARG1 ARG2 ...)\"." 180ARGLIST can also be t or a string of the form \"(FUN ARG1 ARG2 ...)\"."
181 (unless (stringp doc) (setq doc "Not documented")) 181 (unless (stringp docstring) (setq docstring "Not documented"))
182 (if (or (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" doc) (eq arglist t)) 182 (if (or (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" docstring) (eq arglist t))
183 doc 183 docstring
184 (format "%s%s%S" doc 184 (format "%s%s%S" docstring
185 (if (string-match "\n?\n\\'" doc) 185 (if (string-match "\n?\n\\'" docstring)
186 (if (< (- (match-end 0) (match-beginning 0)) 2) "\n" "") 186 (if (< (- (match-end 0) (match-beginning 0)) 2) "\n" "")
187 "\n\n") 187 "\n\n")
188 (if (and (stringp arglist) 188 (if (and (stringp arglist)
@@ -237,8 +237,14 @@ KIND should be `var' for a variable or `subr' for a subroutine."
237 (concat "src/" file) 237 (concat "src/" file)
238 file))))) 238 file)))))
239 239
240(defface help-argument-name '((t (:slant italic))) 240(defun help-default-arg-highlight (arg)
241 "Face to highlight function arguments in docstrings.") 241 "Default function to highlight arguments in *Help* buffers.
242It returns ARG in lowercase italics, if the display supports it;
243else ARG is returned in uppercase normal."
244 (let ((attrs '(:slant italic)))
245 (if (display-supports-face-attributes-p attrs)
246 (propertize (downcase arg) 'face attrs)
247 arg)))
242 248
243(defun help-do-arg-highlight (doc args) 249(defun help-do-arg-highlight (doc args)
244 (with-syntax-table (make-syntax-table emacs-lisp-mode-syntax-table) 250 (with-syntax-table (make-syntax-table emacs-lisp-mode-syntax-table)
@@ -246,8 +252,17 @@ KIND should be `var' for a variable or `subr' for a subroutine."
246 (while args 252 (while args
247 (let ((arg (prog1 (car args) (setq args (cdr args))))) 253 (let ((arg (prog1 (car args) (setq args (cdr args)))))
248 (setq doc (replace-regexp-in-string 254 (setq doc (replace-regexp-in-string
249 (concat "\\<\\(" arg "\\)\\(?:es\\|s\\|th\\)?\\>") 255 ;; This is heuristic, but covers all common cases
250 (propertize arg 'face 'help-argument-name) 256 ;; except ARG1-ARG2
257 (concat "\\<" ; beginning of word
258 "\\(?:[a-z-]+-\\)?" ; for xxx-ARG
259 "\\("
260 arg
261 "\\)"
262 "\\(?:es\\|s\\|th\\)?" ; for ARGth, ARGs
263 "\\(?:-[a-z-]+\\)?" ; for ARG-xxx
264 "\\>") ; end of word
265 (help-default-arg-highlight arg)
251 doc t t 1)))) 266 doc t t 1))))
252 doc)) 267 doc))
253 268
diff --git a/lisp/ibuf-macs.el b/lisp/ibuf-macs.el
index d6b4c2e1da8..effcafd9240 100644
--- a/lisp/ibuf-macs.el
+++ b/lisp/ibuf-macs.el
@@ -93,7 +93,9 @@ Note that this macro expands into a `defun' for a function named
93ibuffer-make-column-NAME. If INLINE is non-nil, then the form will be 93ibuffer-make-column-NAME. If INLINE is non-nil, then the form will be
94inlined into the compiled format versions. This means that if you 94inlined into the compiled format versions. This means that if you
95change its definition, you should explicitly call 95change its definition, you should explicitly call
96`ibuffer-recompile-formats'." 96`ibuffer-recompile-formats'.
97
98\(fn SYMBOL (&key NAME INLINE PROPS SUMMARIZER) &rest BODY)"
97 (let* ((sym (intern (concat "ibuffer-make-column-" 99 (let* ((sym (intern (concat "ibuffer-make-column-"
98 (symbol-name symbol)))) 100 (symbol-name symbol))))
99 (bod-1 `(with-current-buffer buffer 101 (bod-1 `(with-current-buffer buffer
@@ -135,7 +137,9 @@ DESCRIPTION is a short string describing the sorting method.
135 137
136For sorting, the forms in BODY will be evaluated with `a' bound to one 138For sorting, the forms in BODY will be evaluated with `a' bound to one
137buffer object, and `b' bound to another. BODY should return a non-nil 139buffer object, and `b' bound to another. BODY should return a non-nil
138value if and only if `a' is \"less than\" `b'." 140value if and only if `a' is \"less than\" `b'.
141
142\(fn NAME DOCUMENTATION (&key DESCRIPTION) &rest BODY)"
139 `(progn 143 `(progn
140 (defun ,(intern (concat "ibuffer-do-sort-by-" (symbol-name name))) () 144 (defun ,(intern (concat "ibuffer-do-sort-by-" (symbol-name name))) ()
141 ,(or documentation "No :documentation specified for this sorting method.") 145 ,(or documentation "No :documentation specified for this sorting method.")
@@ -189,7 +193,9 @@ ACTIVE-OPSTRING is a string which will be displayed to the user in a
189confirmation message, in the form: 193confirmation message, in the form:
190 \"Really ACTIVE-OPSTRING x buffers?\" 194 \"Really ACTIVE-OPSTRING x buffers?\"
191COMPLEX means this function is special; see the source code of this 195COMPLEX means this function is special; see the source code of this
192macro for exactly what it does." 196macro for exactly what it does.
197
198\(fn OP ARGS DOCUMENTATION (&key INTERACTIVE MARK MODIFIER-P DANGEROUS OPSTRING ACTIVE-OPSTRING COMPLEX) &rest BODY)"
193 `(progn 199 `(progn
194 (defun ,(intern (concat (if (string-match "^ibuffer-do" (symbol-name op)) 200 (defun ,(intern (concat (if (string-match "^ibuffer-do" (symbol-name op))
195 "" "ibuffer-do-") (symbol-name op))) 201 "" "ibuffer-do-") (symbol-name op)))
@@ -265,7 +271,9 @@ DESCRIPTION is a short string describing the filter.
265BODY should contain forms which will be evaluated to test whether or 271BODY should contain forms which will be evaluated to test whether or
266not a particular buffer should be displayed or not. The forms in BODY 272not a particular buffer should be displayed or not. The forms in BODY
267will be evaluated with BUF bound to the buffer object, and QUALIFIER 273will be evaluated with BUF bound to the buffer object, and QUALIFIER
268bound to the current value of the filter." 274bound to the current value of the filter.
275
276\(fn NAME DOCUMENTATION (&key READER DESCRIPTION) &rest BODY)"
269 (let ((fn-name (intern (concat "ibuffer-filter-by-" (symbol-name name))))) 277 (let ((fn-name (intern (concat "ibuffer-filter-by-" (symbol-name name)))))
270 `(progn 278 `(progn
271 (defun ,fn-name (qualifier) 279 (defun ,fn-name (qualifier)
diff --git a/lisp/iimage.el b/lisp/iimage.el
new file mode 100644
index 00000000000..d138498ca3a
--- /dev/null
+++ b/lisp/iimage.el
@@ -0,0 +1,134 @@
1;;; iimage.el --- Inline image minor mode.
2
3;; Copyright (C) 2004 Free Software Foundation
4
5;; Author: KOSEKI Yoshinori <kose@meadowy.org>
6;; Maintainer: KOSEKI Yoshinori <kose@meadowy.org>
7;; Keywords: multimedia
8
9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is free software; you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
13;; the Free Software Foundation; either version 2, or (at your option)
14;; any later version.
15
16;; GNU Emacs is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;; GNU General Public License for more details.
20
21;; You should have received a copy of the GNU General Public License
22;; along with GNU Emacs; see the file COPYING. If not, write to the
23;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24;; Boston, MA 02111-1307, USA.
25
26;;; Commentary:
27
28;; Iimage is a minor mode that display a images, when image-filename
29;; exists in buffer.
30;; http://www.netlaputa.ne.jp/~kose/Emacs/iimage.html
31;;
32;; Add to your `~/.emacs':
33;; (autoload 'iimage-mode "iimage" "SUpport Inline image minor mode." t)
34;;
35;; ** Display images in *Info* buffer.
36;;
37;; (add-hook 'info-mode-hook 'turn-on-iimage-mode)
38;;
39;; .texinfo: @file{file://foo.png}
40;; .info: `file://foo.png'
41;;
42;; ** Display images in Wiki buffer.
43;;
44;; (add-hook 'wiki-mode-hook 'turn-on-iimage-mode)
45;;
46;; wiki-file: [[foo.png]]
47
48;;; Code:
49
50(eval-when-compile
51 (require 'image-file))
52
53(defconst iimage-version "1.0")
54(defvar iimage-mode nil)
55(defvar iimage-mode-map nil)
56
57;; Set up key map.
58(unless iimage-mode-map
59 (setq iimage-mode-map (make-sparse-keymap))
60 (define-key iimage-mode-map "\C-l" 'iimage-recenter))
61
62(defun iimage-recenter (&optional arg)
63"Re-draw images and recenter."
64 (interactive "P")
65 (iimage-mode-buffer 0)
66 (iimage-mode-buffer 1)
67 (recenter arg))
68
69(defvar iimage-mode-image-filename-regex
70 (concat "[-+./_0-9a-zA-Z]+\\."
71 (regexp-opt (nconc (mapcar #'upcase
72 image-file-name-extensions)
73 image-file-name-extensions)
74 t)))
75
76(defvar iimage-mode-image-regex-alist
77 `((,(concat "\\(`?file://\\|\\[\\[\\|<\\|`\\)?"
78 "\\(" iimage-mode-image-filename-regex "\\)"
79 "\\(\\]\\]\\|>\\|'\\)?") . 2))
80"*Alist of filename REGEXP vs NUM.
81Each element looks like (REGEXP . NUM).
82NUM specifies which parenthesized expression in the regexp.
83
84image filename regex exsamples:
85 file://foo.png
86 `file://foo.png'
87 \\[\\[foo.gif]]
88 <foo.png>
89 foo.JPG
90")
91
92(defun turn-on-iimage-mode ()
93"Unconditionally turn on iimage mode."
94 (interactive)
95 (iimage-mode 1))
96
97(defun turn-off-iimage-mode ()
98"Unconditionally turn off iimage mode."
99 (interactive)
100 (iimage-mode 0))
101
102(defun iimage-mode-buffer (arg)
103"Display/Undisplay Images.
104With numeric ARG, display the images if and only if ARG is positive."
105 (interactive)
106 (let ((ing (if (numberp arg)
107 (> arg 0)
108 iimage-mode))
109 (modp (buffer-modified-p (current-buffer)))
110 file buffer-read-only)
111 (save-excursion
112 (goto-char (point-min))
113 (dolist (pair iimage-mode-image-regex-alist)
114 (while (re-search-forward (car pair) nil t)
115 (if (and (setq file (match-string (cdr pair)))
116 (setq file (expand-file-name file default-directory))
117 (file-exists-p file))
118 (if ing
119 (add-text-properties (match-beginning 0) (match-end 0)
120 (list 'display (create-image file)))
121 (remove-text-properties (match-beginning 0) (match-end 0)
122 '(display)))))))
123 (set-buffer-modified-p modp)))
124
125(define-minor-mode iimage-mode
126 "Toggle inline image minor mode."
127 nil " iImg" iimage-mode-map
128 (run-hooks 'iimage-mode-hook)
129 (iimage-mode-buffer iimage-mode))
130
131(provide 'iimage)
132
133;;; arch-tag: f6f8e29a-08f6-4a12-9496-51e67441ce65
134;;; iimage.el ends here
diff --git a/lisp/international/quail.el b/lisp/international/quail.el
index 9e289c300d9..d10e215881b 100644
--- a/lisp/international/quail.el
+++ b/lisp/international/quail.el
@@ -1043,9 +1043,13 @@ which to install MAP.
1043The installed decode map can be referred by the function `quail-decode-map'." 1043The installed decode map can be referred by the function `quail-decode-map'."
1044 (if (null quail-current-package) 1044 (if (null quail-current-package)
1045 (error "No current Quail package")) 1045 (error "No current Quail package"))
1046 (if (not (and (consp decode-map) (eq (car decode-map) 'decode-map))) 1046 (if (if (consp decode-map)
1047 (error "Invalid Quail decode map `%s'" decode-map)) 1047 (eq (car decode-map) 'decode-map)
1048 (setcar (nthcdr 10 quail-current-package) decode-map)) 1048 (if (char-table-p decode-map)
1049 (eq (char-table-subtype decode-map) 'quail-decode-map)))
1050 (setcar (nthcdr 10 quail-current-package) decode-map)
1051 (error "Invalid Quail decode map `%s'" decode-map)))
1052
1049 1053
1050;;;###autoload 1054;;;###autoload
1051(defun quail-defrule (key translation &optional name append) 1055(defun quail-defrule (key translation &optional name append)
@@ -2590,6 +2594,143 @@ KEY BINDINGS FOR CONVERSION
2590 (quail-update-guidance) 2594 (quail-update-guidance)
2591 )))) 2595 ))))
2592 2596
2597;; Add KEY (string) to the element of TABLE (char-table) for CHAR if
2598;; it is not yet stored. As a result, the element is a string or a
2599;; list of strings.
2600
2601(defsubst quail-store-decode-map-key (table char key)
2602 (let ((elt (aref table char)))
2603 (if elt
2604 (if (consp elt)
2605 (or (member key elt)
2606 (aset table char (cons key elt)))
2607 (or (string= key elt)
2608 (aset table char (list key elt))))
2609 (aset table char key))))
2610
2611;; Helper function for quail-gen-decode-map. Store key strings to
2612;; type each character under MAP in TABLE (char-table). MAP is an
2613;; element of the current Quail map reached by typing keys in KEY
2614;; (string).
2615
2616(defun quail-gen-decode-map1 (map key table)
2617 (when (and (consp map) (listp (cdr map)))
2618 (let ((trans (car map)))
2619 (cond ((integerp trans)
2620 (quail-store-decode-map-key table trans key))
2621 ((stringp trans)
2622 (dotimes (i (length trans))
2623 (quail-store-decode-map-key table (aref trans i) key)))
2624 ((or (vectorp trans)
2625 (and (consp trans)
2626 (setq trans (cdr trans))))
2627 (dotimes (i (length trans))
2628 (let ((elt (aref trans i)))
2629 (if (stringp elt)
2630 (if (= (length elt) 1)
2631 (quail-store-decode-map-key table (aref elt 0) key))
2632 (quail-store-decode-map-key table elt key)))))))
2633 (if (> (length key) 1)
2634 (dolist (elt (cdr map))
2635 (quail-gen-decode-map1 (cdr elt) key table))
2636 (dolist (elt (cdr map))
2637 (quail-gen-decode-map1 (cdr elt) (format "%s%c" key (car elt))
2638 table)))))
2639
2640(put 'quail-decode-map 'char-table-extra-slots 0)
2641
2642;; Generate a halfly-cooked decode map (char-table) for the current
2643;; Quail map. An element for a character C is a key string or a list
2644;; of a key strings to type to input C. The lenth of key string is at
2645;; most 2. If it is 2, more keys may be required to input C.
2646
2647(defun quail-gen-decode-map ()
2648 (let ((table (make-char-table 'quail-decode-map nil)))
2649 (dolist (elt (cdr (quail-map)))
2650 (quail-gen-decode-map1 (cdr elt) (string (car elt)) table))
2651 table))
2652
2653;; Helper function for quail-find-key. Prepend key strings to type
2654;; for inputting CHAR by the current input method to KEY-LIST and
2655;; return the result. MAP is an element of the current Quail map
2656;; reached by typing keys in KEY.
2657
2658(defun quail-find-key1 (map key char key-list)
2659 (let ((trans (car map))
2660 (found-here nil))
2661 (cond ((stringp trans)
2662 (setq found-here
2663 (and (= (length trans) 1) (= (aref trans 0) char))))
2664 ((or (vectorp trans) (consp trans))
2665 (if (consp trans)
2666 (setq trans (cdr trans)))
2667 (setq found-here
2668 (catch 'tag
2669 (dotimes (i (length trans))
2670 (let ((target (aref trans i)))
2671 (if (integerp target)
2672 (if (= target char)
2673 (throw 'tag t))
2674 (if (and (= (length target) 1)
2675 (= (aref target 0) char))
2676 (throw 'tag t))))))))
2677 ((integerp trans)
2678 (if (= trans char)
2679 (setq found-here t))))
2680 (if found-here
2681 (setq key-list (cons key key-list)))
2682 (if (> (length key) 1)
2683 (dolist (elt (cdr map))
2684 (setq key-list
2685 (quail-find-key1 (cdr elt) (format "%s%c" key (car elt))
2686 char key-list))))
2687 key-list))
2688
2689(defun quail-find-key (char)
2690 "Return a list of keys to type to input CHAR in the current input method.
2691If CHAR is an ASCII character and can be input by typing itself, return t."
2692 (let ((decode-map (or (quail-decode-map)
2693 (setcar (nthcdr 10 quail-current-package)
2694 (quail-gen-decode-map))))
2695 (key-list nil))
2696 (if (consp decode-map)
2697 (let ((str (string char)))
2698 (mapc #'(lambda (elt)
2699 (if (string= str (car elt))
2700 (setq key-list (cons (cdr elt) key-list))))
2701 (cdr decode-map)))
2702 (let ((key-head (aref decode-map char)))
2703 (if (stringp key-head)
2704 (setq key-list (quail-find-key1
2705 (quail-lookup-key key-head nil t)
2706 key-head char nil))
2707 (mapc #'(lambda (elt)
2708 (setq key-list
2709 (quail-find-key1
2710 (quail-lookup-key elt nil t) elt char key-list)))
2711 key-head))))
2712 (or key-list
2713 (and (< char 128)
2714 (not (quail-lookup-key (string char) 1))))))
2715
2716(defun quail-show-key ()
2717 "Show a list of key strings to type for inputting a character at point."
2718 (interactive)
2719 (or current-input-method
2720 (error "No input method is activated"))
2721 (let* ((char (following-char))
2722 (key-list (quail-find-key char)))
2723 (cond ((consp key-list)
2724 (message "To input `%c', type \"%s\""
2725 char
2726 (mapconcat 'identity key-list "\", \"")))
2727 ((eq key-list t)
2728 (message "To input `%s', just type it"
2729 (single-key-description char)))
2730 (t
2731 (message "%c can't be input by the current input method" char)))))
2732
2733
2593;; Quail map generator from state transition table. 2734;; Quail map generator from state transition table.
2594 2735
2595(defun quail-map-from-table (table) 2736(defun quail-map-from-table (table)
diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el
index 9b124848b18..bda0ce4fddc 100644
--- a/lisp/iswitchb.el
+++ b/lisp/iswitchb.el
@@ -315,7 +315,7 @@ enabled if this variable is configured to a non-nil value."
315 :require 'recentf 315 :require 'recentf
316 :set (function 316 :set (function
317 (lambda (sym value) 317 (lambda (sym value)
318 (recentf-mode value) 318 (if value (recentf-mode 1))
319 (set sym value))) 319 (set sym value)))
320 :group 'iswitchb) 320 :group 'iswitchb)
321 321
diff --git a/lisp/language/european.el b/lisp/language/european.el
index 0719244b950..7c51ec4d556 100644
--- a/lisp/language/european.el
+++ b/lisp/language/european.el
@@ -451,6 +451,19 @@ and it selects the Spanish tutorial."))
451 (unibyte-display . iso-8859-2) 451 (unibyte-display . iso-8859-2)
452 (documentation . "Support for Croatian with Latin-2 encoding.")) 452 (documentation . "Support for Croatian with Latin-2 encoding."))
453 '("European")) 453 '("European"))
454
455(set-language-info-alist
456 "Brazilian Portuguese" '((tutorial . "TUTORIAL.pt_BR")
457 (charset ascii latin-iso8859-1)
458 (coding-system iso-latin-1 iso-latin-9)
459 (coding-priority iso-latin-1)
460 (nonascii-translation . latin-iso8859-1)
461 (unibyte-syntax . "latin-1")
462 (unibyte-display . iso-latin-1)
463 (input-method . "latin-1-prefix")
464 (sample-text . "Oi")
465 (documentation . "Support for Brazilian Portuguese."))
466 '("European"))
454 467
455;; Definitions for the Mac Roman character sets and coding system. 468;; Definitions for the Mac Roman character sets and coding system.
456;; The Mac Roman encoding uses all 128 code points in the range 128 to 469;; The Mac Roman encoding uses all 128 code points in the range 128 to
diff --git a/lisp/mail/rfc2368.el b/lisp/mail/rfc2368.el
index 07ea44cef04..5d603d7be26 100644
--- a/lisp/mail/rfc2368.el
+++ b/lisp/mail/rfc2368.el
@@ -120,12 +120,13 @@ calling this function."
120 ;; deal w/ multiple 'To' recipients 120 ;; deal w/ multiple 'To' recipients
121 (if prequery 121 (if prequery
122 (progn 122 (progn
123 (setq prequery (rfc2368-unhexify-string prequery))
123 (if (assoc "To" headers-alist) 124 (if (assoc "To" headers-alist)
124 (let* ((our-cons-cell 125 (let* ((our-cons-cell
125 (assoc "To" headers-alist)) 126 (assoc "To" headers-alist))
126 (our-cdr 127 (our-cdr
127 (cdr our-cons-cell))) 128 (cdr our-cons-cell)))
128 (setcdr our-cons-cell (concat our-cdr ", " prequery))) 129 (setcdr our-cons-cell (concat prequery ", " our-cdr)))
129 (setq headers-alist 130 (setq headers-alist
130 (cons (cons "To" prequery) headers-alist))))) 131 (cons (cons "To" prequery) headers-alist)))))
131 132
diff --git a/lisp/mail/unrmail.el b/lisp/mail/unrmail.el
index 55f611b53ad..db6990d625b 100644
--- a/lisp/mail/unrmail.el
+++ b/lisp/mail/unrmail.el
@@ -51,43 +51,71 @@ For example, invoke `emacs -batch -f batch-unrmail RMAIL'."
51(defun unrmail (file to-file) 51(defun unrmail (file to-file)
52 "Convert Rmail file FILE to system inbox format file TO-FILE." 52 "Convert Rmail file FILE to system inbox format file TO-FILE."
53 (interactive "fUnrmail (rmail file): \nFUnrmail into (new mailbox file): ") 53 (interactive "fUnrmail (rmail file): \nFUnrmail into (new mailbox file): ")
54 (let ((message-count 1) 54 (with-temp-buffer
55 ;; Prevent rmail from making, or switching to, a summary buffer. 55 ;; Read in the old Rmail file with no decoding.
56 (rmail-display-summary nil) 56 (let ((coding-system-for-read 'raw-text))
57 (rmail-delete-after-output nil) 57 (insert-file-contents file))
58 (temp-buffer (get-buffer-create " unrmail"))) 58 ;; But make it multibyte.
59 (rmail file) 59 (set-buffer-multibyte t)
60
61 (if (not (looking-at "BABYL OPTIONS"))
62 (error "This file is not in Babyl format"))
63
64 ;; Decode the file contents just as Rmail did.
65 (let ((modifiedp (buffer-modified-p))
66 (coding-system rmail-file-coding-system)
67 from to)
68 (goto-char (point-min))
69 (search-forward "\n\^_" nil t) ; Skip BABYL header.
70 (setq from (point))
71 (goto-char (point-max))
72 (search-backward "\n\^_" from 'mv)
73 (setq to (point))
74 (unless (and coding-system
75 (coding-system-p coding-system))
76 (setq coding-system
77 ;; Emacs 21.1 and later writes RMAIL files in emacs-mule, but
78 ;; earlier versions did that with the current buffer's encoding.
79 ;; So we want to favor detection of emacs-mule (whose normal
80 ;; priority is quite low), but still allow detection of other
81 ;; encodings if emacs-mule won't fit. The call to
82 ;; detect-coding-with-priority below achieves that.
83 (car (detect-coding-with-priority
84 from to
85 '((coding-category-emacs-mule . emacs-mule))))))
86 (unless (memq coding-system
87 '(undecided undecided-unix))
88 (set-buffer-modified-p t) ; avoid locking when decoding
89 (let ((buffer-undo-list t))
90 (decode-coding-region from to coding-system))
91 (setq coding-system last-coding-system-used))
92
93 (setq buffer-file-coding-system nil)
94
95 ;; We currently don't use this value, but maybe we should.
96 (setq save-buffer-coding-system
97 (or coding-system 'undecided)))
98
60 ;; Default the directory of TO-FILE based on where FILE is. 99 ;; Default the directory of TO-FILE based on where FILE is.
61 (setq to-file (expand-file-name to-file default-directory)) 100 (setq to-file (expand-file-name to-file default-directory))
62 (condition-case () 101 (condition-case ()
63 (delete-file to-file) 102 (delete-file to-file)
64 (file-error nil)) 103 (file-error nil))
65 (message "Writing messages to %s..." to-file) 104 (message "Writing messages to %s..." to-file)
66 (save-restriction 105 (goto-char (point-min))
67 (widen) 106
68 (while (<= message-count rmail-total-messages) 107 (let ((temp-buffer (get-buffer-create " unrmail"))
69 (let ((beg (rmail-msgbeg message-count)) 108 (from-buffer (current-buffer)))
70 (end (rmail-msgbeg (1+ message-count))) 109
71 (from-buffer (current-buffer)) 110 ;; Process the messages one by one.
72 (coding (or rmail-file-coding-system 'raw-text)) 111 (while (search-forward "\^_\^l" nil t)
112 (let ((beg (point))
113 (end (save-excursion
114 (if (search-forward "\^_" nil t)
115 (1- (point)) (point-max))))
116 (coding 'raw-text)
73 label-line attrs keywords 117 label-line attrs keywords
74 header-beginning mail-from) 118 mail-from reformatted)
75 (save-excursion
76 (goto-char (rmail-msgbeg message-count))
77 (setq header-beginning (point))
78 (search-forward "\n*** EOOH ***\n")
79 (forward-line -1)
80 (search-forward "\n\n")
81 (save-restriction
82 (narrow-to-region header-beginning (point))
83 (setq mail-from
84 (or (mail-fetch-field "Mail-From")
85 (concat "From "
86 (mail-strip-quoted-names (or (mail-fetch-field "from")
87 (mail-fetch-field "really-from")
88 (mail-fetch-field "sender")
89 "unknown"))
90 " " (current-time-string))))))
91 (with-current-buffer temp-buffer 119 (with-current-buffer temp-buffer
92 (setq buffer-undo-list t) 120 (setq buffer-undo-list t)
93 (erase-buffer) 121 (erase-buffer)
@@ -95,11 +123,15 @@ For example, invoke `emacs -batch -f batch-unrmail RMAIL'."
95 (insert-buffer-substring from-buffer beg end) 123 (insert-buffer-substring from-buffer beg end)
96 (goto-char (point-min)) 124 (goto-char (point-min))
97 (forward-line 1) 125 (forward-line 1)
126 ;; Record whether the header is reformatted.
127 (setq reformatted (= (following-char) ?1))
128
129 ;; Collect the label line, then get the attributes
130 ;; and the keywords from it.
98 (setq label-line 131 (setq label-line
99 (buffer-substring (point) 132 (buffer-substring (point)
100 (progn (forward-line 1) 133 (save-excursion (forward-line 1)
101 (point)))) 134 (point))))
102 (forward-line -1)
103 (search-forward ",,") 135 (search-forward ",,")
104 (unless (eolp) 136 (unless (eolp)
105 (setq keywords 137 (setq keywords
@@ -118,9 +150,61 @@ For example, invoke `emacs -batch -f batch-unrmail RMAIL'."
118 (if (string-match ", resent," label-line) ?R ?-) 150 (if (string-match ", resent," label-line) ?R ?-)
119 (if (string-match ", unseen," label-line) ?\ ?-) 151 (if (string-match ", unseen," label-line) ?\ ?-)
120 (if (string-match ", stored," label-line) ?S ?-))) 152 (if (string-match ", stored," label-line) ?S ?-)))
121 (unrmail-unprune) 153
154 ;; Delete the special Babyl lines at the start,
155 ;; and the ***EOOH*** line, and the reformatted header if any.
156 (goto-char (point-min))
157 (if reformatted
158 (progn
159 (forward-line 2)
160 ;; Delete Summary-Line headers.
161 (let ((case-fold-search t))
162 (while (looking-at "Summary-Line:")
163 (forward-line 1)))
164 (delete-region (point-min) (point))
165 ;; Delete the old reformatted header.
166 (re-search-forward "^[*][*][*] EOOH [*][*][*]\n")
167 (forward-line -1)
168 (let ((start (point)))
169 (search-forward "\n\n")
170 (delete-region start (point))))
171 ;; Not reformatted. Delete the special
172 ;; lines before the real header.
173 (re-search-forward "^[*][*][*] EOOH [*][*][*]\n")
174 (delete-region (point-min) (point)))
175
176 ;; Some operations on the message header itself.
122 (goto-char (point-min)) 177 (goto-char (point-min))
178 (save-restriction
179 (narrow-to-region
180 (point-min)
181 (save-excursion (search-forward "\n\n" nil 'move) (point)))
182
183 ;; Fetch or construct what we should use in the `From ' line.
184 (setq mail-from
185 (or (mail-fetch-field "Mail-From")
186 (concat "From "
187 (mail-strip-quoted-names (or (mail-fetch-field "from")
188 (mail-fetch-field "really-from")
189 (mail-fetch-field "sender")
190 "unknown"))
191 " " (current-time-string))))
192
193 ;; If the message specifies a coding system, use it.
194 (let ((maybe-coding (mail-fetch-field "X-Coding-System")))
195 (if maybe-coding
196 (setq coding (intern maybe-coding))))
197
198 ;; Delete the Mail-From: header field if any.
199 (when (re-search-forward "^Mail-from:" nil t)
200 (beginning-of-line)
201 (delete-region (point)
202 (progn (forward-line 1) (point)))))
203
204 (goto-char (point-min))
205 ;; Insert the `From ' line.
123 (insert mail-from "\n") 206 (insert mail-from "\n")
207 ;; Record the keywords and attributes in our special way.
124 (insert "X-BABYL-V6-ATTRIBUTES: " (apply 'string attrs) "\n") 208 (insert "X-BABYL-V6-ATTRIBUTES: " (apply 'string attrs) "\n")
125 (when keywords 209 (when keywords
126 (insert "X-BABYL-V6-KEYWORDS: " keywords "\n")) 210 (insert "X-BABYL-V6-KEYWORDS: " keywords "\n"))
@@ -132,43 +216,12 @@ For example, invoke `emacs -batch -f batch-unrmail RMAIL'."
132 (while (search-forward "\nFrom " nil t) 216 (while (search-forward "\nFrom " nil t)
133 (forward-char -5) 217 (forward-char -5)
134 (insert ?>))) 218 (insert ?>)))
219 ;; Write it to the output file.
135 (write-region (point-min) (point-max) to-file t 220 (write-region (point-min) (point-max) to-file t
136 'nomsg))) 221 'nomsg))))
137 (setq message-count (1+ message-count)))) 222 (kill-buffer temp-buffer))
138 (message "Writing messages to %s...done" to-file))) 223 (message "Writing messages to %s...done" to-file)))
139 224
140(defun unrmail-unprune ()
141 (let* ((pruned
142 (save-excursion
143 (goto-char (point-min))
144 (forward-line 1)
145 (= (following-char) ?1))))
146 (if pruned
147 (progn
148 (goto-char (point-min))
149 (forward-line 2)
150 ;; Delete Summary-Line headers.
151 (let ((case-fold-search t))
152 (while (looking-at "Summary-Line:")
153 (forward-line 1)))
154 (delete-region (point-min) (point))
155 ;; Delete the old reformatted header.
156 (re-search-forward "^[*][*][*] EOOH [*][*][*]\n")
157 (forward-line -1)
158 (let ((start (point)))
159 (search-forward "\n\n")
160 (delete-region start (point))))
161 ;; Delete everything up to the real header.
162 (goto-char (point-min))
163 (re-search-forward "^[*][*][*] EOOH [*][*][*]\n")
164 (delete-region (point-min) (point)))
165 (goto-char (point-min))
166 (when (re-search-forward "^Mail-from:")
167 (beginning-of-line)
168 (delete-region (point)
169 (progn (forward-line 1) (point))))))
170
171
172(provide 'unrmail) 225(provide 'unrmail)
173 226
174;;; unrmail.el ends here 227;;; unrmail.el ends here
diff --git a/lisp/man.el b/lisp/man.el
index 7222c1bad15..983be4a91cc 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -732,11 +732,13 @@ all sections related to a subject, put something appropriate into the
732 (setenv "GROFF_NO_SGR" "1") 732 (setenv "GROFF_NO_SGR" "1")
733 (if (fboundp 'start-process) 733 (if (fboundp 'start-process)
734 (set-process-sentinel 734 (set-process-sentinel
735 (start-process manual-program buffer "sh" "-c" 735 (start-process manual-program buffer
736 shell-file-name shell-command-switch
736 (format (Man-build-man-command) man-args)) 737 (format (Man-build-man-command) man-args))
737 'Man-bgproc-sentinel) 738 'Man-bgproc-sentinel)
738 (let ((exit-status 739 (let ((exit-status
739 (call-process shell-file-name nil (list buffer nil) nil "-c" 740 (call-process shell-file-name nil (list buffer nil) nil
741 shell-command-switch
740 (format (Man-build-man-command) man-args))) 742 (format (Man-build-man-command) man-args)))
741 (msg "")) 743 (msg ""))
742 (or (and (numberp exit-status) 744 (or (and (numberp exit-status)
diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el
index d42c4335daa..40a28494774 100644
--- a/lisp/net/telnet.el
+++ b/lisp/net/telnet.el
@@ -1,6 +1,6 @@
1;;; telnet.el --- run a telnet session from within an Emacs buffer 1;;; telnet.el --- run a telnet session from within an Emacs buffer
2 2
3;; Copyright (C) 1985, 1988, 1992, 1994 Free Software Foundation, Inc. 3;; Copyright (C) 1985, 88, 1992, 94, 2004 Free Software Foundation, Inc.
4 4
5;; Author: William F. Schelter 5;; Author: William F. Schelter
6;; Maintainer: FSF 6;; Maintainer: FSF
@@ -240,22 +240,13 @@ Normally input is edited in Emacs and sent a line at a time."
240 240
241(put 'telnet-mode 'mode-class 'special) 241(put 'telnet-mode 'mode-class 'special)
242 242
243(defun telnet-mode () 243(define-derived-mode telnet-mode comint-mode "Telnet"
244 "This mode is for using telnet (or rsh) from a buffer to another host. 244 "This mode is for using telnet (or rsh) from a buffer to another host.
245It has most of the same commands as comint-mode. 245It has most of the same commands as comint-mode.
246There is a variable ``telnet-interrupt-string'' which is the character 246There is a variable ``telnet-interrupt-string'' which is the character
247sent to try to stop execution of a job on the remote host. 247sent to try to stop execution of a job on the remote host.
248Data is sent to the remote host when RET is typed. 248Data is sent to the remote host when RET is typed."
249 249 (set (make-local-variable 'comint-prompt-regexp) telnet-prompt-pattern))
250\\{telnet-mode-map}
251"
252 (interactive)
253 (comint-mode)
254 (setq major-mode 'telnet-mode
255 mode-name "Telnet"
256 comint-prompt-regexp telnet-prompt-pattern)
257 (use-local-map telnet-mode-map)
258 (run-hooks 'telnet-mode-hook))
259 250
260;;;###autoload (add-hook 'same-window-regexps "\\*rsh-[^-]*\\*\\(\\|<[0-9]*>\\)") 251;;;###autoload (add-hook 'same-window-regexps "\\*rsh-[^-]*\\*\\(\\|<[0-9]*>\\)")
261 252
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index ec381ad8a15..da43b7b7098 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -171,8 +171,15 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
171 "^\"\\([^,\" \n\t]+\\)\", line \\([0-9]+\\)\ 171 "^\"\\([^,\" \n\t]+\\)\", line \\([0-9]+\\)\
172\\(?:[(. pos]+\\([0-9]+\\))?\\)?[:.,; (-]\\( warning:\\|[-0-9 ]*(W)\\)?" 1 2 3 (4)) 172\\(?:[(. pos]+\\([0-9]+\\))?\\)?[:.,; (-]\\( warning:\\|[-0-9 ]*(W)\\)?" 1 2 3 (4))
173 173
174 (edg-1
175 "^\\([^ \n]+\\)(\\([0-9]+\\)): \\(?:error\\|warnin\\(g\\)\\|remar\\(k\\)\\)"
176 1 2 nil (3 . 4))
177 (edg-2
178 "at line \\([0-9]+\\) of \"\\([^ \n]+\\)\"$"
179 2 1 nil 0)
180
174 (epc 181 (epc
175 "^Error [0-9]+ at (\\([0-9]*\\):\\([^)\n]+\\))" 2 1) 182 "^Error [0-9]+ at (\\([0-9]+\\):\\([^)\n]+\\))" 2 1)
176 183
177 (iar 184 (iar
178 "^\"\\(.*\\)\",\\([0-9]+\\)\\s-+\\(?:Error\\|Warnin\\(g\\)\\)\\[[0-9]+\\]:" 185 "^\"\\(.*\\)\",\\([0-9]+\\)\\s-+\\(?:Error\\|Warnin\\(g\\)\\)\\[[0-9]+\\]:"
@@ -265,10 +272,6 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?"
265 (sun-ada 272 (sun-ada
266 "^\\([^, \n\t]+\\), line \\([0-9]+\\), char \\([0-9]+\\)[:., \(-]" 1 2 3) 273 "^\\([^, \n\t]+\\), line \\([0-9]+\\), char \\([0-9]+\\)[:., \(-]" 1 2 3)
267 274
268 ;; Redundant with `mips'
269;; (ultrix
270;; "^\\(?:cfe\\|fort\\): \\(Warning\\)?[^:\n]*: \\([^ \n]*\\), line \\([0-9]+\\):" 2 3 nil (1))
271
272 (4bsd 275 (4bsd
273 "\\(?:^\\|:: \\|\\S ( \\)\\(/[^ \n\t()]+\\)(\\([0-9]+\\))\ 276 "\\(?:^\\|:: \\|\\S ( \\)\\(/[^ \n\t()]+\\)(\\([0-9]+\\))\
274\\(?:: \\(warning:\\)?\\|$\\| ),\\)" 1 2 nil (3))) 277\\(?:: \\(warning:\\)?\\|$\\| ),\\)" 1 2 nil (3)))
@@ -445,17 +448,19 @@ starting the compilation process.")
445(defvar compile-history nil) 448(defvar compile-history nil)
446 449
447(defface compilation-warning-face 450(defface compilation-warning-face
448 '((((type tty) (class color)) (:foreground "cyan" :weight bold)) 451 '((((class color) (min-colors 16)) (:foreground "Orange" :weight bold))
449 (((class color)) (:foreground "Orange" :weight bold)) 452 (((class color)) (:foreground "cyan" :weight bold))
450 (t (:weight bold))) 453 (t (:weight bold)))
451 "Face used to highlight compiler warnings." 454 "Face used to highlight compiler warnings."
452 :group 'font-lock-highlighting-faces 455 :group 'font-lock-highlighting-faces
453 :version "21.4") 456 :version "21.4")
454 457
455(defface compilation-info-face 458(defface compilation-info-face
456 '((((type tty) (class color)) (:foreground "green" :weight bold)) 459 '((((class color) (min-colors 16) (background light))
457 (((class color) (background light)) (:foreground "Green3" :weight bold)) 460 (:foreground "Green3" :weight bold))
458 (((class color) (background dark)) (:foreground "Green" :weight bold)) 461 (((class color) (min-colors 16) (background dark))
462 (:foreground "Green" :weight bold))
463 (((class color)) (:foreground "green" :weight bold))
459 (t (:weight bold))) 464 (t (:weight bold)))
460 "Face used to highlight compiler warnings." 465 "Face used to highlight compiler warnings."
461 :group 'font-lock-highlighting-faces 466 :group 'font-lock-highlighting-faces
@@ -749,6 +754,8 @@ and move to the source code that caused it.
749 754
750Interactively, prompts for the command if `compilation-read-command' is 755Interactively, prompts for the command if `compilation-read-command' is
751non-nil; otherwise uses `compile-command'. With prefix arg, always prompts. 756non-nil; otherwise uses `compile-command'. With prefix arg, always prompts.
757Additionally, with universal prefix arg, compilation buffer will be in
758comint mode, i.e. interactive.
752 759
753To run more than one compilation at once, start one and rename 760To run more than one compilation at once, start one and rename
754the \`*compilation*' buffer to some other name with 761the \`*compilation*' buffer to some other name with
@@ -760,11 +767,13 @@ The name used for the buffer is actually whatever is returned by
760the function in `compilation-buffer-name-function', so you can set that 767the function in `compilation-buffer-name-function', so you can set that
761to a function that generates a unique name." 768to a function that generates a unique name."
762 (interactive 769 (interactive
763 (if (or compilation-read-command current-prefix-arg) 770 (list
764 (list (read-from-minibuffer "Compile command: " 771 (if (or compilation-read-command current-prefix-arg)
765 (eval compile-command) nil nil 772 (read-from-minibuffer "Compile command: "
766 '(compile-history . 1))) 773 (eval compile-command) nil nil
767 (list (eval compile-command)))) 774 '(compile-history . 1))
775 (eval compile-command))
776 (consp current-prefix-arg)))
768 (unless (equal command (eval compile-command)) 777 (unless (equal command (eval compile-command))
769 (setq compile-command command)) 778 (setq compile-command command))
770 (save-some-buffers (not compilation-ask-about-save) nil) 779 (save-some-buffers (not compilation-ask-about-save) nil)
@@ -983,8 +992,9 @@ exited abnormally with code %d\n"
983 ;; buffer, which might not be the same as the selected window's buffer. 992 ;; buffer, which might not be the same as the selected window's buffer.
984 (save-current-buffer 993 (save-current-buffer
985 (save-selected-window 994 (save-selected-window
986 (select-window window) 995 (save-excursion
987 (enlarge-window (- height (window-height)))))))) 996 (select-window window)
997 (enlarge-window (- height (window-height)))))))))
988 998
989(defvar compilation-menu-map 999(defvar compilation-menu-map
990 (let ((map (make-sparse-keymap "Errors"))) 1000 (let ((map (make-sparse-keymap "Errors")))
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index aada9be16dc..53165fbecb7 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -153,7 +153,7 @@
153;;; Code: 153;;; Code:
154 154
155;; TODO 155;; TODO
156;; Support for hideshow, align. 156;; Support for align.
157;; OpenMP, preprocessor highlighting. 157;; OpenMP, preprocessor highlighting.
158 158
159(defvar comment-auto-fill-only-comments) 159(defvar comment-auto-fill-only-comments)
@@ -589,6 +589,53 @@ characters long.")
589(make-variable-buffer-local 'f90-cache-position) 589(make-variable-buffer-local 'f90-cache-position)
590 590
591 591
592;; Hideshow support.
593(defconst f90-end-block-re
594 (concat "^[ \t0-9]*\\<end\\>[ \t]*"
595 (regexp-opt '("do" "if" "forall" "function" "interface"
596 "module" "program" "select" "subroutine"
597 "type" "where" ) t)
598 "[ \t]*\\sw*")
599 "Regexp matching the end of a \"block\" of F90 code.
600Used in the F90 entry in `hs-special-modes-alist'.")
601
602;; Ignore the fact that FUNCTION, SUBROUTINE, WHERE, FORALL have a
603;; following "(". DO, CASE, IF can have labels; IF must be
604;; accompanied by THEN.
605;; A big problem is that many of these statements can be broken over
606;; lines, even with embedded comments. We only try to handle this for
607;; IF ... THEN statements, assuming and hoping it will be less common
608;; for other constructs. We match up to one new-line, provided ")
609;; THEN" appears on one line. Matching on just ") THEN" is no good,
610;; since that includes ELSE branches.
611;; For a fully accurate solution, hideshow would probably have to be
612;; modified to allow functions as well as regexps to be used to
613;; specify block start and end positions.
614(defconst f90-start-block-re
615 (concat
616 "^[ \t0-9]*" ; statement number
617 "\\(\\("
618 "\\(\\sw+[ \t]*:[ \t]*\\)?" ; structure label
619 "\\(do\\|select[ \t]*case\\|if[ \t]*(.*\n?.*)[ \t]*then\\|"
620 ;; Distinguish WHERE block from isolated WHERE.
621 "\\(where\\|forall\\)[ \t]*(.*)[ \t]*\\(!\\|$\\)\\)\\)"
622 "\\|"
623 "program\\|interface\\|module\\|type\\|function\\|subroutine"
624 ;; ") THEN" at line end. Problem - also does ELSE.
625;;; "\\|.*)[ \t]*then[ \t]*\\($\\|!\\)"
626 "\\)"
627 "[ \t]*")
628 "Regexp matching the start of a \"block\" of F90 code.
629A simple regexp cannot do this in fully correct fashion, so this
630tries to strike a compromise between complexity and flexibility.
631Used in the F90 entry in `hs-special-modes-alist'.")
632
633;; hs-special-modes-alist is autoloaded.
634(add-to-list 'hs-special-modes-alist
635 `(f90-mode ,f90-start-block-re ,f90-end-block-re
636 "!" f90-end-of-block nil))
637
638
592;; Imenu support. 639;; Imenu support.
593(defvar f90-imenu-generic-expression 640(defvar f90-imenu-generic-expression
594 (let ((good-char "[^!\"\&\n \t]") (not-e "[^e!\n\"\& \t]") 641 (let ((good-char "[^!\"\&\n \t]") (not-e "[^e!\n\"\& \t]")
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index fc3196cdb4f..19c57979130 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -664,6 +664,7 @@ This filter may simply queue output for a later time."
664 ("commands" gdb-subprompt) 664 ("commands" gdb-subprompt)
665 ("overload-choice" gdb-subprompt) 665 ("overload-choice" gdb-subprompt)
666 ("query" gdb-subprompt) 666 ("query" gdb-subprompt)
667 ("nquery" gdb-subprompt)
667 ("prompt-for-continue" gdb-subprompt) 668 ("prompt-for-continue" gdb-subprompt)
668 ("post-prompt" gdb-post-prompt) 669 ("post-prompt" gdb-post-prompt)
669 ("source" gdb-source) 670 ("source" gdb-source)
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 035b5da875a..84dec78d895 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -2339,7 +2339,8 @@ comint mode, which see."
2339 ;; Don't put repeated commands in command history many times. 2339 ;; Don't put repeated commands in command history many times.
2340 (set (make-local-variable 'comint-input-ignoredups) t) 2340 (set (make-local-variable 'comint-input-ignoredups) t)
2341 (make-local-variable 'paragraph-start) 2341 (make-local-variable 'paragraph-start)
2342 (set (make-local-variable 'gud-delete-prompt-marker) (make-marker))) 2342 (set (make-local-variable 'gud-delete-prompt-marker) (make-marker))
2343 (add-hook 'kill-buffer-hook 'gud-kill-buffer-hook nil t))
2343 2344
2344;; Cause our buffers to be displayed, by default, 2345;; Cause our buffers to be displayed, by default,
2345;; in the selected window. 2346;; in the selected window.
@@ -2546,10 +2547,10 @@ It is saved for when this flag is not set.")
2546 (set-buffer obuf)))))) 2547 (set-buffer obuf))))))
2547 2548
2548(defun gud-kill-buffer-hook () 2549(defun gud-kill-buffer-hook ()
2549 (if gud-minor-mode 2550 (setq gud-minor-mode-type gud-minor-mode)
2550 (setq gud-minor-mode-type gud-minor-mode))) 2551 (condition-case nil
2551 2552 (kill-process (get-buffer-process gud-comint-buffer))
2552(add-hook 'kill-buffer-hook 'gud-kill-buffer-hook) 2553 (error nil)))
2553 2554
2554(defun gud-reset () 2555(defun gud-reset ()
2555 (dolist (buffer (buffer-list)) 2556 (dolist (buffer (buffer-list))
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 214b6f0e24c..cee59a6e3e1 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -297,10 +297,9 @@ comments and strings, or that the bracket/paren nesting depth is nonzero."
297 (syntax-ppss (line-beginning-position))))))) 297 (syntax-ppss (line-beginning-position)))))))
298 298
299(defun python-comment-line-p () 299(defun python-comment-line-p ()
300 "Return non-nil if current line has only a comment or is blank." 300 "Return non-nil iff current line has only a comment."
301 (save-excursion 301 (save-excursion
302 (end-of-line) 302 (end-of-line)
303 ;; FIXME: This looks wrong because it returns nil for empty lines. --Stef
304 (when (eq 'comment (syntax-ppss-context (syntax-ppss))) 303 (when (eq 'comment (syntax-ppss-context (syntax-ppss)))
305 (back-to-indentation) 304 (back-to-indentation)
306 (looking-at (rx (or (syntax comment-start) line-end)))))) 305 (looking-at (rx (or (syntax comment-start) line-end))))))
@@ -1025,7 +1024,6 @@ et al.")
1025 (let ((map (make-sparse-keymap))) 1024 (let ((map (make-sparse-keymap)))
1026 ;; This will inherit from comint-mode-map. 1025 ;; This will inherit from comint-mode-map.
1027 (define-key map "\C-c\C-l" 'python-load-file) 1026 (define-key map "\C-c\C-l" 'python-load-file)
1028 (define-key map "\C-c\C-z" 'python-switch-to-python) ;What for? --Stef
1029 (define-key map "\C-c\C-v" 'python-check) 1027 (define-key map "\C-c\C-v" 'python-check)
1030 ;; Note that we _can_ still use these commands which send to the 1028 ;; Note that we _can_ still use these commands which send to the
1031 ;; Python process even at the prompt iff we have a normal prompt, 1029 ;; Python process even at the prompt iff we have a normal prompt,
@@ -1140,10 +1138,12 @@ to this as appropriate. Runs the hook `inferior-python-mode-hook'
1140 ;; (not a name) in Python buffers from which `run-python' &c is 1138 ;; (not a name) in Python buffers from which `run-python' &c is
1141 ;; invoked. Would support multiple processes better. 1139 ;; invoked. Would support multiple processes better.
1142 (unless (comint-check-proc python-buffer) 1140 (unless (comint-check-proc python-buffer)
1143 (let ((cmdlist (append (python-args-to-list cmd) '("-i"))) 1141 (let* ((cmdlist (append (python-args-to-list cmd) '("-i")))
1144 (process-environment ; to import emacs.py 1142 (path (getenv "PYTHONPATH"))
1145 (push (concat "PYTHONPATH=" data-directory) 1143 (process-environment ; to import emacs.py
1146 process-environment))) 1144 (push (concat "PYTHONPATH=" data-directory
1145 (if path (concat ":" path)))
1146 process-environment)))
1147 (set-buffer (apply 'make-comint "Python" (car cmdlist) nil 1147 (set-buffer (apply 'make-comint "Python" (car cmdlist) nil
1148 (cdr cmdlist))) 1148 (cdr cmdlist)))
1149 (setq python-buffer "*Python*")) 1149 (setq python-buffer "*Python*"))
@@ -1278,7 +1278,6 @@ module-qualified names."
1278 ;; Fixme: I'm not convinced by this logic from python-mode.el. 1278 ;; Fixme: I'm not convinced by this logic from python-mode.el.
1279 (python-send-command 1279 (python-send-command
1280 (if (string-match "\\.py\\'" file-name) 1280 (if (string-match "\\.py\\'" file-name)
1281 ;; Fixme: make sure the directory is in the path list
1282 (let ((module (file-name-sans-extension 1281 (let ((module (file-name-sans-extension
1283 (file-name-nondirectory file-name)))) 1282 (file-name-nondirectory file-name))))
1284 (format "emacs.eimport(%S,%S)" 1283 (format "emacs.eimport(%S,%S)"
@@ -1309,6 +1308,7 @@ See variable `python-buffer'. Starts a new process if necessary."
1309Otherwise inherits from `python-mode-syntax-table'.") 1308Otherwise inherits from `python-mode-syntax-table'.")
1310 1309
1311(defvar view-return-to-alist) 1310(defvar view-return-to-alist)
1311(eval-when-compile (autoload 'help-buffer "help-fns"))
1312 1312
1313;; Fixme: Should this actually be used instead of info-look, i.e. be 1313;; Fixme: Should this actually be used instead of info-look, i.e. be
1314;; bound to C-h S? Can we use other pydoc stuff before python 2.2? 1314;; bound to C-h S? Can we use other pydoc stuff before python 2.2?
@@ -1394,7 +1394,8 @@ Used with `eval-after-load'."
1394 ;; Don't use `info' because it would pop-up a *info* buffer. 1394 ;; Don't use `info' because it would pop-up a *info* buffer.
1395 (with-no-warnings 1395 (with-no-warnings
1396 (Info-goto-node (format "(python%s-lib)Miscellaneous Index" 1396 (Info-goto-node (format "(python%s-lib)Miscellaneous Index"
1397 version))) 1397 version))
1398 t)
1398 (error nil))))) 1399 (error nil)))))
1399 (info-lookup-maybe-add-help 1400 (info-lookup-maybe-add-help
1400 :mode 'python-mode 1401 :mode 'python-mode
diff --git a/lisp/subr.el b/lisp/subr.el
index 5453ee2e45b..5302558d834 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -629,7 +629,11 @@ The normal global definition of the character C-x indirects to this keymap.")
629 629
630(defsubst eventp (obj) 630(defsubst eventp (obj)
631 "True if the argument is an event object." 631 "True if the argument is an event object."
632 (or (integerp obj) 632 (or (and (integerp obj)
633 ;; Filter out integers too large to be events.
634 ;; M is the biggest modifier.
635 (zerop (logand obj (lognot (1- (lsh ?\M-\^@ 1)))))
636 (char-valid-p (event-basic-type obj)))
633 (and (symbolp obj) 637 (and (symbolp obj)
634 (get obj 'event-symbol-elements)) 638 (get obj 'event-symbol-elements))
635 (and (consp obj) 639 (and (consp obj)
@@ -1119,14 +1123,14 @@ Input and output work as for subprocesses; `delete-process' closes it.
1119 1123
1120Args are NAME BUFFER HOST SERVICE. 1124Args are NAME BUFFER HOST SERVICE.
1121NAME is name for process. It is modified if necessary to make it unique. 1125NAME is name for process. It is modified if necessary to make it unique.
1122BUFFER is the buffer (or buffer-name) to associate with the process. 1126BUFFER is the buffer (or buffer name) to associate with the process.
1123 Process output goes at end of that buffer, unless you specify 1127 Process output goes at end of that buffer, unless you specify
1124 an output stream or filter function to handle the output. 1128 an output stream or filter function to handle the output.
1125 BUFFER may be also nil, meaning that this process is not associated 1129 BUFFER may be also nil, meaning that this process is not associated
1126 with any buffer 1130 with any buffer.
1127Third arg is name of the host to connect to, or its IP address. 1131HOST is name of the host to connect to, or its IP address.
1128Fourth arg SERVICE is name of the service desired, or an integer 1132SERVICE is name of the service desired, or an integer specifying
1129specifying a port number to connect to." 1133 a port number to connect to."
1130 (make-network-process :name name :buffer buffer 1134 (make-network-process :name name :buffer buffer
1131 :host host :service service)) 1135 :host host :service service))
1132 1136
@@ -1135,14 +1139,14 @@ specifying a port number to connect to."
1135It returns nil if non-blocking connects are not supported; otherwise, 1139It returns nil if non-blocking connects are not supported; otherwise,
1136it returns a subprocess-object to represent the connection. 1140it returns a subprocess-object to represent the connection.
1137 1141
1138This function is similar to `open-network-stream', except that this 1142This function is similar to `open-network-stream', except that it
1139function returns before the connection is established. When the 1143returns before the connection is established. When the connection
1140connection is completed, the sentinel function will be called with 1144is completed, the sentinel function will be called with second arg
1141second arg matching `open' (if successful) or `failed' (on error). 1145matching `open' (if successful) or `failed' (on error).
1142 1146
1143Args are NAME BUFFER HOST SERVICE SENTINEL FILTER. 1147Args are NAME BUFFER HOST SERVICE SENTINEL FILTER.
1144NAME, BUFFER, HOST, and SERVICE are as for `open-network-stream'. 1148NAME, BUFFER, HOST, and SERVICE are as for `open-network-stream'.
1145Optional args, SENTINEL and FILTER specifies the sentinel and filter 1149Optional args SENTINEL and FILTER specify the sentinel and filter
1146functions to be used for this network stream." 1150functions to be used for this network stream."
1147 (if (featurep 'make-network-process '(:nowait t)) 1151 (if (featurep 'make-network-process '(:nowait t))
1148 (make-network-process :name name :buffer buffer :nowait t 1152 (make-network-process :name name :buffer buffer :nowait t
@@ -1160,17 +1164,17 @@ is called for the new process.
1160 1164
1161Args are NAME BUFFER SERVICE SENTINEL FILTER. 1165Args are NAME BUFFER SERVICE SENTINEL FILTER.
1162NAME is name for the server process. Client processes are named by 1166NAME is name for the server process. Client processes are named by
1163appending the ip-address and port number of the client to NAME. 1167 appending the ip-address and port number of the client to NAME.
1164BUFFER is the buffer (or buffer-name) to associate with the server 1168BUFFER is the buffer (or buffer name) to associate with the server
1165process. Client processes will not get a buffer if a process filter 1169 process. Client processes will not get a buffer if a process filter
1166is specified or BUFFER is nil; otherwise, a new buffer is created for 1170 is specified or BUFFER is nil; otherwise, a new buffer is created for
1167the client process. The name is similar to the process name. 1171 the client process. The name is similar to the process name.
1168Third arg SERVICE is name of the service desired, or an integer 1172Third arg SERVICE is name of the service desired, or an integer
1169specifying a port number to connect to. It may also be t to selected 1173 specifying a port number to connect to. It may also be t to select
1170an unused port number for the server. 1174 an unused port number for the server.
1171Optional args, SENTINEL and FILTER specifies the sentinel and filter 1175Optional args SENTINEL and FILTER specify the sentinel and filter
1172functions to be used for the client processes; the server process 1176 functions to be used for the client processes; the server process
1173does not use these function." 1177 does not use these function."
1174 (if (featurep 'make-network-process '(:server t)) 1178 (if (featurep 'make-network-process '(:server t))
1175 (make-network-process :name name :buffer buffer 1179 (make-network-process :name name :buffer buffer
1176 :service service :server t :noquery t 1180 :service service :server t :noquery t
@@ -1725,16 +1729,17 @@ Strip text properties from the inserted text according to
1725 1729
1726(defun start-process-shell-command (name buffer &rest args) 1730(defun start-process-shell-command (name buffer &rest args)
1727 "Start a program in a subprocess. Return the process object for it. 1731 "Start a program in a subprocess. Return the process object for it.
1728Args are NAME BUFFER COMMAND &rest COMMAND-ARGS.
1729NAME is name for process. It is modified if necessary to make it unique. 1732NAME is name for process. It is modified if necessary to make it unique.
1730BUFFER is the buffer or (buffer-name) to associate with the process. 1733BUFFER is the buffer (or buffer name) to associate with the process.
1731 Process output goes at end of that buffer, unless you specify 1734 Process output goes at end of that buffer, unless you specify
1732 an output stream or filter function to handle the output. 1735 an output stream or filter function to handle the output.
1733 BUFFER may be also nil, meaning that this process is not associated 1736 BUFFER may be also nil, meaning that this process is not associated
1734 with any buffer 1737 with any buffer
1735Third arg is command name, the name of a shell command. 1738COMMAND is the name of a shell command.
1736Remaining arguments are the arguments for the command. 1739Remaining arguments are the arguments for the command.
1737Wildcards and redirection are handled as usual in the shell." 1740Wildcards and redirection are handled as usual in the shell.
1741
1742\(fn NAME BUFFER COMMAND &rest COMMAND-ARGS)"
1738 (cond 1743 (cond
1739 ((eq system-type 'vax-vms) 1744 ((eq system-type 'vax-vms)
1740 (apply 'start-process name buffer args)) 1745 (apply 'start-process name buffer args))
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 39fe89bdaaa..77c63379e2b 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -501,7 +501,8 @@ and then re-start emacs."
501 (choice :tag "Coding system" 501 (choice :tag "Coding system"
502 (const iso-8859-1) 502 (const iso-8859-1)
503 (const iso-8859-2) 503 (const iso-8859-2)
504 (const koi8-r)))) 504 (const koi8-r)
505 (const windows-1251))))
505 :group 'ispell) 506 :group 'ispell)
506 507
507 508
@@ -630,6 +631,10 @@ and then re-start emacs."
630 "[\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]" 631 "[\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]"
631 "[^\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]" 632 "[^\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]"
632 "" nil nil nil koi8-r) 633 "" nil nil nil koi8-r)
634 ("russianw" ; russianw.aff (CP1251 charset)
635 "[\300\301\302\303\304\305\250\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\334\333\332\335\336\337\340\341\342\343\344\345\270\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\374\373\372\375\376\377]"
636 "[^\300\301\302\303\304\305\250\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\334\333\332\335\336\337\340\341\342\343\344\345\270\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\374\373\372\375\376\377]"
637 "" nil nil nil windows-1251)
633 ("slovak" ; Slovakian 638 ("slovak" ; Slovakian
634 "[A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]" 639 "[A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]"
635 "[^A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]" 640 "[^A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]"
@@ -3274,7 +3279,7 @@ You can bind this to the key C-c i in GNUS or mail by adding to
3274 (equal major-mode 'message-mode)) ;GNUS 5 3279 (equal major-mode 'message-mode)) ;GNUS 5
3275 (concat "In article <" "\\|" 3280 (concat "In article <" "\\|"
3276 "[^,;&+=\n]+ <[^,;&+=]+> writes:" "\\|" 3281 "[^,;&+=\n]+ <[^,;&+=]+> writes:" "\\|"
3277 message-yank-prefix "\\|" 3282 message-cite-prefix-regexp "\\|"
3278 default-prefix)) 3283 default-prefix))
3279 ((equal major-mode 'mh-letter-mode) ; mh mail message 3284 ((equal major-mode 'mh-letter-mode) ; mh mail message
3280 (concat "[^,;&+=\n]+ writes:" "\\|" 3285 (concat "[^,;&+=\n]+ writes:" "\\|"
diff --git a/lisp/toolbar/close.pbm b/lisp/toolbar/close.pbm
index 04633c9d1d6..d0eccb1b16d 100644
--- a/lisp/toolbar/close.pbm
+++ b/lisp/toolbar/close.pbm
Binary files differ
diff --git a/lisp/toolbar/close.xpm b/lisp/toolbar/close.xpm
index ff364d57044..498843be6e2 100644
--- a/lisp/toolbar/close.xpm
+++ b/lisp/toolbar/close.xpm
@@ -1,32 +1,29 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * close_xpm[] = {
3/* columns rows colors chars-per-pixel */
4"24 24 2 1", 3"24 24 2 1",
5" c Gray0", 4" c None",
6". c None", 5". c #000000",
7/* pixels */ 6" ",
8"........................", 7" ",
9"........................", 8" ",
10"........................", 9" ",
11"........................", 10" ",
12"........................", 11" ",
13"........................", 12" . . ",
14"....... .... ..........", 13" . ... ",
15"....... .. .........", 14" .. .... ",
16"........ . ..........", 15" .. ... ",
17"........ ...........", 16" ..... ",
18"......... ............", 17" ... ",
19"......... ...........", 18" ..... ",
20"........ ..........", 19" ....... ",
21"........ . .........", 20" ... .... ",
22"....... ... ........", 21" ... .... ",
23"....... ..... .........", 22" ... .. ",
24"........................", 23" ",
25"........................", 24" ",
26"........................", 25" ",
27"........................", 26" ",
28"........................", 27" ",
29"........................", 28" ",
30"........................", 29" "};
31"........................"
32};
diff --git a/lisp/toolbar/copy.pbm b/lisp/toolbar/copy.pbm
index 155be369266..7c19d5c2961 100644
--- a/lisp/toolbar/copy.pbm
+++ b/lisp/toolbar/copy.pbm
Binary files differ
diff --git a/lisp/toolbar/copy.xpm b/lisp/toolbar/copy.xpm
index 06efceae29d..6262a95bc39 100644
--- a/lisp/toolbar/copy.xpm
+++ b/lisp/toolbar/copy.xpm
@@ -1,37 +1,53 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * copy_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 26 1",
4"24 24 7 1", 4" c None",
5" c Gray0", 5". c #000000",
6". c #424242423a3a", 6"+ c #B4B4B4",
7"X c #68e968e96363", 7"@ c #F8F8F8",
8"o c #a8b1a8b1992b", 8"# c #F6F6F6",
9"O c #d3d3d3d3bdbd", 9"$ c #C3C3C3",
10"+ c #e419e419cd6b", 10"% c #E9E9E9",
11"@ c None", 11"& c #989898",
12/* pixels */ 12"* c #828282",
13"@@@@@@@@@@@@@@@@@@@@@@@@", 13"= c #8A8A8A",
14"@@@@@@@@@@@@@@@@@@@@@@@@", 14"- c #E8E8E8",
15"@@@@@@@@@@@@@@@@@@@@@@@@", 15"; c #636363",
16"@@@@@@@@@@@@@@@@@@@@@@@@", 16"> c #5A5A5A",
17"@@@@@@@@@@@@@@@@@@@@@@@@", 17", c #6B6B6B",
18"@@@@@@@@ @@@@@@@@@@@@@@", 18"' c #B3B3B3",
19"@@@@@@ Oo @@@@@@@@@@@@@", 19") c #FFFFFF",
20"@@@@ .ooOO @@@@ @@@@@@@", 20"! c #D6D6D6",
21"@@@@ +XoOOo @ Oo @@@@@@", 21"~ c #818181",
22"@@@@ +.oO++ .ooOO @@@@@@", 22"{ c #A7A7A7",
23"@@@@ XoO+++ +XoOOo @@@@@", 23"] c #8F8F8F",
24"@@@@ oOO+++ +.oO++ @@@@@", 24"^ c #C6C6C6",
25"@@@@ oO++++ XoOO++o @@@@", 25"/ c #808080",
26"@@@@@ +++++ oOO++++o @@@", 26"( c #E7E7E7",
27"@@@@@ o++++ oO++++++ @@@", 27"_ c #6D6D6D",
28"@@@@@@ ++o +++++++o @@", 28": c #767676",
29"@@@@@@ o @@ o++++o @@@", 29"< c #F5F5F5",
30"@@@@@@@ @@@@@ ++o @@@@@", 30" ",
31"@@@@@@@@@@ @@ o @@@@@@@", 31" ............. ",
32"@@@@@@@ @@ @@@@@@@@@", 32" .+@@@@@@@@@#$. ",
33"@@@@@@@ @@@@@@@@@@@@", 33" .@%%%%%%%%%%%. ",
34"@@@@@@@@@@ @@@@@@@@@@@@@", 34" .@&**=%+*%*+%. ",
35"@@@@@@@@@@@@@@@@@@@@@@@@", 35" .@%%%%%%%%---. ",
36"@@@@@@@@@@@@@@@@@@@@@@@@" 36" .@;>%,*+-............ ",
37}; 37" .@%%%%%%.'))))))))))!. ",
38" .@&**%*~.)))))))))))). ",
39" .@%%%%%-.){]]&)^])]^). ",
40" .@;>>%,/.)))))))))))). ",
41" .@%%%%%(.)_;):]^)^])). ",
42" .@&**%*~.)))))))))))). ",
43" .<%%%%%-.){]])]]^)&]). ",
44" .$%%%%%-.)))))))))))). ",
45" ........)_;;):]^)^]). ",
46" .)))))))))))). ",
47" .){]])]]^)&]). ",
48" .)))))))))))). ",
49" .!))))))))))!. ",
50" .............. ",
51" ",
52" ",
53" "};
diff --git a/lisp/toolbar/cut.pbm b/lisp/toolbar/cut.pbm
index 570260767cb..5a80e5b96c8 100644
--- a/lisp/toolbar/cut.pbm
+++ b/lisp/toolbar/cut.pbm
Binary files differ
diff --git a/lisp/toolbar/cut.xpm b/lisp/toolbar/cut.xpm
index 563d64ec343..3f8e71d22ce 100644
--- a/lisp/toolbar/cut.xpm
+++ b/lisp/toolbar/cut.xpm
@@ -1,32 +1,67 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * cut_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 40 1",
4"24 24 2 1", 4" c None",
5" c Gray0", 5". c #000000",
6". c None", 6"+ c #C9C7C2",
7/* pixels */ 7"@ c #E6E4E0",
8"........................", 8"# c #EFEEED",
9"........................", 9"$ c #494946",
10"........................", 10"% c #73726E",
11"........................", 11"& c #F0EEED",
12"........................", 12"* c #7F7D75",
13".................. .....", 13"= c #F2F1EF",
14"................ ......", 14"- c #D2CFC8",
15"............... .......", 15"; c #E7E7E4",
16".............. ........", 16"> c #BAB5AB",
17"............. .........", 17", c #565653",
18".... .... ..... ..", 18"' c #EDECE9",
19"... ... .. ... ....", 19") c #A4A097",
20"... ... ......", 20"! c #817F7E",
21".... ... .........", 21"~ c #4E4C48",
22".......... ............", 22"{ c #F6F5F4",
23"......... ............", 23"] c #474541",
24"........ .. ............", 24"^ c #EFEEEC",
25"....... ... ............", 25"/ c #8C8B8A",
26"....... .. .............", 26"( c #F3F2F0",
27"....... ..............", 27"_ c #77746D",
28"........................", 28": c #323232",
29"........................", 29"< c #EBEBEA",
30"........................", 30"[ c #605D58",
31"........................" 31"} c #F5F4F3",
32}; 32"| c #CECCC7",
33"1 c #363634",
34"2 c #6F6E6D",
35"3 c #BEBDBB",
36"4 c #EAE7E4",
37"5 c #B8B5B1",
38"6 c #474747",
39"7 c #DAD8D4",
40"8 c #9B9996",
41"9 c #161615",
42"0 c #6D6B6A",
43"a c #3A3837",
44" ",
45" ",
46" . . ",
47" . . ",
48" .+. .@. ",
49" .#$ %@. ",
50" .&*. .=-. ",
51" .;>, %'). ",
52" !#*. .=-~ ",
53" .{>] ~^>. ",
54" /(_.:<-[ ",
55" .}|123>. ",
56" .456>. ",
57" .78.. ",
58" .90a. ",
59" ............. ",
60" . ... ... ... ",
61" .. .. .. .. ",
62" . . . . ",
63" .. .. .. .. ",
64" .... .. . ",
65" .... .... ",
66" ",
67" "};
diff --git a/lisp/toolbar/help.pbm b/lisp/toolbar/help.pbm
index 562cc6137b5..2abea9be95f 100644
--- a/lisp/toolbar/help.pbm
+++ b/lisp/toolbar/help.pbm
Binary files differ
diff --git a/lisp/toolbar/help.xpm b/lisp/toolbar/help.xpm
index bca0bf8e4fc..1d65ce03b53 100644
--- a/lisp/toolbar/help.xpm
+++ b/lisp/toolbar/help.xpm
@@ -1,36 +1,271 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * help_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 244 2",
4"24 24 6 1", 4" c None",
5" c Gray0", 5". c #000000",
6". c #65658b8b5e5e", 6"+ c #454442",
7"X c #934ab2448dfb", 7"@ c #1D1D1C",
8"o c #b35dc8c8afaf", 8"# c #040404",
9"O c #e0b2e944df83", 9"$ c #1B1B1B",
10"+ c None", 10"% c #3D3C3A",
11/* pixels */ 11"& c #4D4C4B",
12"++++++++++++++++++++++++", 12"* c #2F2F2D",
13"++++++++++++++++++++++++", 13"= c #C1BFBB",
14"++++++++++++++++++++++++", 14"- c #ECEAE7",
15"++++++++++++++++++++++++", 15"; c #F5F3F0",
16"+++++++++ ++++++++++", 16"> c #F2F0EC",
17"++++++++ oOOOO +++++++++", 17", c #E1DFDC",
18"+++++++ OOOOOOO ++++++++", 18"' c #AFADAA",
19"++++++ oOo oOo +++++++", 19") c #272726",
20"+++++++ O +++ OO +++++++", 20"! c #020202",
21"+++++++O ++++ Oo +++++++", 21"~ c #3F3E3E",
22"++++++++++++ OO. +++++++", 22"{ c #36302D",
23"+++++++++++ OOX ++++++++", 23"] c #181818",
24"++++++++++ OOX +++++++++", 24"^ c #FBF8F5",
25"+++++++++ XOX ++++++++++", 25"/ c #FEFCF8",
26"+++++++++ OX +++++++++++", 26"( c #FAF8F5",
27"+++++++++ +++++++++++", 27"_ c #F5F4F1",
28"++++++++++++++++++++++++", 28": c #F2F1ED",
29"++++++++++ ++++++++++++", 29"< c #F1EFEB",
30"+++++++++ Oo +++++++++++", 30"[ c #F1EEEB",
31"+++++++++ oX +++++++++++", 31"} c #EAE9E6",
32"++++++++++ ++++++++++++", 32"| c #DAD8D4",
33"++++++++++++++++++++++++", 33"1 c #100E0E",
34"++++++++++++++++++++++++", 34"2 c #1F100E",
35"++++++++++++++++++++++++" 35"3 c #AF3A1E",
36}; 36"4 c #FBAB93",
37"5 c #FAE9E3",
38"6 c #F0EFEB",
39"7 c #E9E8E5",
40"8 c #EAE8E6",
41"9 c #ECEAE8",
42"0 c #EDEBE9",
43"a c #EDEBE8",
44"b c #EACFC6",
45"c c #D5340A",
46"d c #751904",
47"e c #100806",
48"f c #34160D",
49"g c #AF3C20",
50"h c #FCCCBD",
51"i c #F7BEAD",
52"j c #E67554",
53"k c #DFDDDB",
54"l c #DBD9D6",
55"m c #D8D7D3",
56"n c #DBDAD6",
57"o c #E3E2DE",
58"p c #ECEBE8",
59"q c #E5572D",
60"r c #E33A0B",
61"s c #D4340A",
62"t c #691504",
63"u c #100504",
64"v c #582C22",
65"w c #0F0F0F",
66"x c #FDD4C8",
67"y c #F7BFAF",
68"z c #E87554",
69"A c #D5512B",
70"B c #C68270",
71"C c #BEBDBA",
72"D c #A5A3A0",
73"E c #9C9A95",
74"F c #B9B7B2",
75"G c #D7D6D2",
76"H c #E7E5E2",
77"I c #E79A85",
78"J c #E53C0B",
79"K c #E43C0B",
80"L c #E23A0B",
81"M c #C93009",
82"N c #010000",
83"O c #040100",
84"P c #FAB19C",
85"Q c #FACCBE",
86"R c #EB8264",
87"S c #D8532D",
88"T c #C0340F",
89"U c #932006",
90"V c #141412",
91"W c #857974",
92"X c #DA370B",
93"Y c #EC7C5B",
94"Z c #E95B32",
95"` c #DE380B",
96" . c #9D2306",
97".. c #626261",
98"+. c #FEF1ED",
99"@. c #F09479",
100"#. c #DC532B",
101"$. c #C0350F",
102"%. c #942006",
103"&. c #621404",
104"*. c #E2522B",
105"=. c #F2A690",
106"-. c #E74E21",
107";. c #E23B0B",
108">. c #C99181",
109",. c #454342",
110"'. c #E5E4E2",
111"). c #FCFBFA",
112"!. c #E2D8D3",
113"~. c #C34C2A",
114"{. c #B02B07",
115"]. c #9E2D12",
116"^. c #EF8D71",
117"/. c #F09B83",
118"(. c #EADDD7",
119"_. c #272724",
120":. c #F0EEEC",
121"<. c #F3F2EF",
122"[. c #D7D6D3",
123"}. c #BFBEBB",
124"|. c #9E6153",
125"1. c #3F0D02",
126"2. c #F0B9A9",
127"3. c #F6F5F4",
128"4. c #E8E7E4",
129"5. c #DAD8D5",
130"6. c #585652",
131"7. c #F6F4F0",
132"8. c #DAD8D6",
133"9. c #C2C1BE",
134"0. c #989691",
135"a. c #0A0A08",
136"b. c #F6F4F2",
137"c. c #F4F3F1",
138"d. c #E4E3E0",
139"e. c #D3D2CE",
140"f. c #63625D",
141"g. c #DCDAD8",
142"h. c #C7C6C2",
143"i. c #ABAAA5",
144"j. c #0A0A0A",
145"k. c #FAF8F6",
146"l. c #EFEDEA",
147"m. c #DDDCD8",
148"n. c #C6C4C2",
149"o. c #3E3E39",
150"p. c #1B1B19",
151"q. c #F0EEEA",
152"r. c #E0DFDD",
153"s. c #CCCBC9",
154"t. c #C0BFBB",
155"u. c #131311",
156"v. c #676663",
157"w. c #FCFAF8",
158"x. c #D6D4D2",
159"y. c #BCBAB7",
160"z. c #3C3C3A",
161"A. c #DEDCD9",
162"B. c #7E4B3E",
163"C. c #232323",
164"D. c #CC9385",
165"E. c #FAFAF7",
166"F. c #E6E6E2",
167"G. c #CDCCCA",
168"H. c #B0B0AC",
169"I. c #EDE3DF",
170"J. c #E78468",
171"K. c #DF5D3A",
172"L. c #631909",
173"M. c #282828",
174"N. c #B46E5E",
175"O. c #FCC3B2",
176"P. c #F1A691",
177"Q. c #DCD2CC",
178"R. c #C8C6C3",
179"S. c #7E7C78",
180"T. c #E8AD9C",
181"U. c #E96139",
182"V. c #EB7452",
183"W. c #EF8E72",
184"X. c #EA8063",
185"Y. c #9E2E13",
186"Z. c #3F1811",
187"`. c #121212",
188" + c #6B433B",
189".+ c #E0A191",
190"++ c #FDD3C7",
191"@+ c #F4AD98",
192"#+ c #DE532B",
193"$+ c #C83409",
194"%+ c #B48274",
195"&+ c #383534",
196"*+ c #D6340A",
197"=+ c #E43D0F",
198"-+ c #E8582E",
199";+ c #ED7957",
200">+ c #F4B6A4",
201",+ c #F4B09D",
202"'+ c #F0E5E0",
203")+ c #F4F3EF",
204"!+ c #FDF8F6",
205"~+ c #FBCEC1",
206"{+ c #F28B6E",
207"]+ c #E44E23",
208"^+ c #D3370A",
209"/+ c #BF2F09",
210"(+ c #260800",
211"_+ c #190F0B",
212":+ c #D5350A",
213"<+ c #E43D0C",
214"[+ c #E74C1F",
215"}+ c #EFBBAB",
216"|+ c #F5F4F3",
217"1+ c #F5F3F1",
218"2+ c #EAB1A0",
219"3+ c #DE4316",
220"4+ c #C5310A",
221"5+ c #591202",
222"6+ c #0E0504",
223"7+ c #C83009",
224"8+ c #E0532B",
225"9+ c #E7E6E3",
226"0+ c #E7E6E2",
227"a+ c #DDDCD9",
228"b+ c #CFCECA",
229"c+ c #C14724",
230"d+ c #AE2907",
231"e+ c #290800",
232"f+ c #0F0705",
233"g+ c #9B2205",
234"h+ c #C1A89F",
235"i+ c #D1D0CC",
236"j+ c #CFCDCA",
237"k+ c #C7C6C3",
238"l+ c #BBBAB7",
239"m+ c #B5B4B1",
240"n+ c #A7A6A2",
241"o+ c #66564F",
242"p+ c #0B0908",
243"q+ c #010100",
244"r+ c #222221",
245"s+ c #51504B",
246"t+ c #5D5C57",
247"u+ c #3B3B37",
248" . . + @ # # $ % ",
249" . . . . & # * = - ; > , ' ) ! ~ . . . . ",
250". . { ] ^ / ( _ : > < [ } | . 1 . . ",
251" . 2 3 4 5 6 - 7 8 9 0 0 a b c d e . ",
252" . f g h i j k l m n o } p a q r s t u . . ",
253" v w x y z A B C D E F G H I J K L M . N ",
254" O P Q R S T U . . . . V W X Y Z K ` .. ",
255" ..+.@.#.$.%.. . . &.*.=.-.;.>.! . ",
256",.'.).!.~.{.. . . ].^./.(.n _.. ",
257"@ :.<.[.}.|.. 1.2.3.4.5.6.. ",
258"# 7.6 8.9.0.. a.b.c.d.e.f.. ",
259"# > < g.h.i.. j.k.l.m.n.o.. ",
260"p., q.r.s.t.u. v.w.9 x.y.. . ",
261"z.' [ 7 A.[.B.. C.D.E.F.G.H.. . ",
262" ) } 0 I.J.K.L.. M.N.O.P.Q.R.S.. . ",
263" ! | T.U.V.W.X.Y.Z.a.`. +.+++@+#+$+%+. . ",
264" &+. *+=+-+;+>+,+'+)+k.!+~+{+]+^+/+(+. . ",
265" . _+d :+L <+[+}+|+l.1+|+2+3+^+4+5+. . . ",
266" . 6+t 7+` 8+9+0+o a+[.b+c+d+e+. . . ",
267" . f+. g+h+i+j+k+l+m+n+o+. . . . ",
268" . . . p+. q+r+s+t+u+. . . . . . . ",
269" . . . . . . . . . . . . ",
270" ",
271" "};
diff --git a/lisp/toolbar/home.pbm b/lisp/toolbar/home.pbm
index 117955f2a74..707f0ccce6b 100644
--- a/lisp/toolbar/home.pbm
+++ b/lisp/toolbar/home.pbm
Binary files differ
diff --git a/lisp/toolbar/home.xpm b/lisp/toolbar/home.xpm
index 33d02aaf387..57e8f9cc25a 100644
--- a/lisp/toolbar/home.xpm
+++ b/lisp/toolbar/home.xpm
@@ -1,36 +1,128 @@
1/* XPM */ 1/* XPM */
2static char * home_xpm[] = { 2static char * home_xpm[] = {
3"24 24 9 1", 3"24 24 101 2",
4" c None", 4" c None",
5". c #020202", 5". c #000000",
6"+ c #6C7962", 6"+ c #212121",
7"@ c #7A8A6E", 7"@ c #2C2C2C",
8"# c #FEFEFE", 8"# c #C1665A",
9"$ c #7E8E76", 9"$ c #924B37",
10"% c #82927A", 10"% c #2A2A2A",
11"& c #C8CEC4", 11"& c #333333",
12"* c #E3E7E1", 12"* c #343434",
13" ", 13"= c #242424",
14" ", 14"- c #944D3A",
15" ", 15"; c #A05443",
16" ", 16"> c #181818",
17" . ... ", 17", c #474747",
18" .#. .&. ", 18"' c #555555",
19" .#*%..&. ", 19") c #8D8D8D",
20" .##&&$.&. ", 20"! c #383838",
21" .##&&&&$&. ", 21"~ c #191919",
22" .*#&&&&&&@. ", 22"{ c #974F3C",
23" .##&&&&&&&&+. ", 23"] c #222222",
24" .###&&&&&&&&&+. ", 24"^ c #313131",
25" ...##&&&&&&&&+... ", 25"/ c #A1A1A1",
26" .##&&&&&&&&+. ", 26"( c #676767",
27" .##....&&&&+. ", 27"_ c #ACACAC",
28" .##.&&.&&&&+. ", 28": c #BCBCBC",
29" .##.&&.&&&&+. ", 29"< c #585858",
30" .#*.&&.&&&&+. ", 30"[ c #141414",
31" .&+.++.+++++. ", 31"} c #1C1C1C",
32" ............. ", 32"| c #464646",
33" ", 33"1 c #666666",
34" ", 34"2 c #BABABA",
35" ", 35"3 c #7E7E7E",
36" "}; 36"4 c #D2D2D2",
37"5 c #FFFFFF",
38"6 c #4F4F4F",
39"7 c #262626",
40"8 c #232323",
41"9 c #505050",
42"0 c #B2B2B2",
43"a c #909090",
44"b c #9A9A9A",
45"c c #838383",
46"d c #171717",
47"e c #202020",
48"f c #717171",
49"g c #A6A6A6",
50"h c #616161",
51"i c #1D1D1D",
52"j c #1F1F1F",
53"k c #C4C4C4",
54"l c #CACACA",
55"m c #AEAEAE",
56"n c #D1D1D1",
57"o c #7C7C7C",
58"p c #BFBFBF",
59"q c #6C6C6C",
60"r c #EEEEEE",
61"s c #949494",
62"t c #C7C7C7",
63"u c #EBEBEB",
64"v c #7D7D7D",
65"w c #6E6E6E",
66"x c #A9A9A9",
67"y c #E99E8F",
68"z c #DD806D",
69"A c #9B5343",
70"B c #CECECE",
71"C c #626262",
72"D c #858585",
73"E c #ECA292",
74"F c #D0533A",
75"G c #934F3E",
76"H c #6D6D6D",
77"I c #ECA291",
78"J c #CF543C",
79"K c #371D16",
80"L c #5D5D5D",
81"M c #868686",
82"N c #787878",
83"O c #ECA696",
84"P c #C95C49",
85"Q c #E17C66",
86"R c #924E3D",
87"S c #888888",
88"T c #A0A0A0",
89"U c #3D1208",
90"V c #D15137",
91"W c #919191",
92"X c #879981",
93"Y c #82947C",
94"Z c #8A9B85",
95"` c #6E8467",
96" . c #5D7555",
97".. c #4C6042",
98"+. c #3F4F37",
99"@. c #303D2A",
100"#. c #7F8F7A",
101"$. c #64785E",
102"%. c #44563E",
103"&. c #657460",
104"*. c #40503A",
105" ",
106" . . ",
107" . . . . . + @ . ",
108" . # $ . . % & * = . ",
109" . - ; . > , ' ) ! ~ . ",
110" . { . ] ^ / ( _ : < [ . ",
111" . . } | 1 2 3 4 : 5 6 7 . ",
112" . 8 9 0 a 4 b 5 : 5 : c d . ",
113" . e f g 4 b 5 : 5 : 5 : 5 h i . ",
114" . j k k l 5 m 5 2 5 2 5 : 5 n o } . ",
115" . 8 m p p p p p p p p . . . . . a q = . ",
116" . . . . r 5 5 5 5 5 5 5 . s t u . v . . . . ",
117" . 4 5 . . . . . 5 . : 5 5 . w . ",
118" . x 5 . y z A . 5 . B 5 5 . C . ",
119" . D 5 . E F G . 5 . . . . . H . ",
120" . . 5 . I J K . k s L L M N . . ",
121" . . r . O P G . 5 5 5 5 5 2 . ",
122" . 2 . Q # R . : : : : : S . ",
123" . T U V # A . 5 5 5 5 5 W . ",
124" . . . . . . . . . . . . . . . . . . . . . ",
125" } X Y Z X ` ...+.@.. Y #.$.%.&.*.. ",
126" . . . . . . . . . . . . . . . . . ",
127" . . . ",
128" "};
diff --git a/lisp/toolbar/index.pbm b/lisp/toolbar/index.pbm
index 5411d49f071..044c835c393 100644
--- a/lisp/toolbar/index.pbm
+++ b/lisp/toolbar/index.pbm
Binary files differ
diff --git a/lisp/toolbar/index.xpm b/lisp/toolbar/index.xpm
index 154e4286083..7e1de12121b 100644
--- a/lisp/toolbar/index.xpm
+++ b/lisp/toolbar/index.xpm
@@ -1,39 +1,201 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * index_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 174 2",
4"24 24 9 1", 4" c None",
5" c Gray0", 5". c #000000",
6". c #4646424233b4", 6"+ c #FDFDFD",
7"X c #6f4d67895151", 7"@ c #F5F5F5",
8"o c #911b871c69df", 8"# c #F6F6F6",
9"O c #b3d8a9b58836", 9"$ c #D0D0D0",
10"+ c #c280b9779c39", 10"% c #C1C1C1",
11"@ c #cd0cc646ae2e", 11"& c #C3C3C3",
12"# c #e0e0e4e4e0e0", 12"* c #C6C6C6",
13"$ c None", 13"= c #C8C8C8",
14/* pixels */ 14"- c #8D8D8D",
15"$$$$$$$$$$$$$$$$$$$$$$$$", 15"; c #CACACA",
16"$$$$$$$$$$$$$$$$$$$$$$$$", 16"> c #919191",
17"$$$$$$$$$$$$$$$$$$$$$$$$", 17", c #EFEFEF",
18"$$$$ $$", 18"' c #878787",
19"$$$$ ################ $$", 19") c #8A8A8A",
20"$$$$ ##### O######## $$", 20"! c #5C5C5C",
21"$$$$ #### oX O####### $$", 21"~ c #F8F8F8",
22"$$$$ @o $$", 22"{ c #EAEAEA",
23"$$$$ #### @o O####### $$", 23"] c #CCCCCC",
24"$$$$ #### @o O##### $$", 24"^ c #CECECE",
25"$$$$ #### @o X. O## $$", 25"/ c #979797",
26"$$$$ +o OX oX $$", 26"( c #CDCDCD",
27"$$$$ ## X +o Oo Oo oX $$", 27"_ c #A1A1A1",
28"$$$$ ## o +OoOOoOOOOo $$", 28": c #090600",
29"$$$$ ## O +++OOOOOOOX $$", 29"< c #A3A3A3",
30"$$$$ O O++O+OOOOOX $$", 30"[ c #C5C5C5",
31"$$$$ ## ooO+++O+OOOOX $$", 31"} c #C4C4C4",
32"$$$$ ### oO++++OOOOo. $$", 32"| c #D1D1D1",
33"$$$$ ### XOO++O+OOOo $$$", 33"1 c #D2D2D1",
34"$$$$ o++++OOOoX $$$", 34"2 c #D2D2D2",
35"$$$$$$$$$ XOO+++OOoX $$$", 35"3 c #9A9A9A",
36"$$$$$$$$$$ oO++OOOX $$$$", 36"4 c #E8E8E8",
37"$$$$$$$$$$$ OO++OOX $$$$", 37"5 c #949494",
38"$$$$$$$$$$$$$$$$$$$$$$$$" 38"6 c #939393",
39}; 39"7 c #574F4F",
40"8 c #FDFDFC",
41"9 c #777777",
42"0 c #7E7E7E",
43"a c #9D9D9D",
44"b c #6B6B6B",
45"c c #F1F1F1",
46"d c #ECECEC",
47"e c #CFCFCF",
48"f c #575050",
49"g c #FDFAF8",
50"h c #A5A5A5",
51"i c #B9B9B9",
52"j c #EEEEEE",
53"k c #EDEDED",
54"l c #D5D5D5",
55"m c #BABABA",
56"n c #6D6767",
57"o c #F9F1EA",
58"p c #9E9E9E",
59"q c #B5B5B5",
60"r c #D9D9D9",
61"s c #D7D7D7",
62"t c #BCBCBC",
63"u c #625C5B",
64"v c #F9EEE4",
65"w c #4F4D4A",
66"x c #646464",
67"y c #747474",
68"z c #D6D6D5",
69"A c #DFDFDF",
70"B c #A0A0A0",
71"C c #615C5B",
72"D c #F9F0E4",
73"E c #746C67",
74"F c #FEFDFC",
75"G c #FFFEFD",
76"H c #131210",
77"I c #636363",
78"J c #7C7C7C",
79"K c #F3F2F2",
80"L c #98948F",
81"M c #F9EFE3",
82"N c #A09489",
83"O c #FEFDFD",
84"P c #766D68",
85"Q c #736961",
86"R c #A3A3A2",
87"S c #A6A6A6",
88"T c #DBDBDB",
89"U c #C7C7C7",
90"V c #E8E5E2",
91"W c #97938E",
92"X c #F6E9D8",
93"Y c #84817A",
94"Z c #FBF3EA",
95"` c #908C86",
96" . c #F1EDE7",
97".. c #7B7975",
98"+. c #878786",
99"@. c #070000",
100"#. c #FAFAFA",
101"$. c #DDDDDD",
102"%. c #E2DFDC",
103"&. c #A8A199",
104"*. c #F0E0CE",
105"=. c #C8BFB4",
106"-. c #D5CCBF",
107";. c #DFD7CD",
108">. c #DAD3C9",
109",. c #DDCFC4",
110"'. c #928C84",
111"). c #A8A8A8",
112"!. c #959595",
113"~. c #040000",
114"{. c #D9D5D2",
115"]. c #D9CABB",
116"^. c #D7C8B8",
117"/. c #DECFBF",
118"(. c #D8C9B9",
119"_. c #E3D3C2",
120":. c #C9BBAC",
121"<. c #D9CEC2",
122"[. c #7F766D",
123"}. c #909090",
124"|. c #D3D3D3",
125"1. c #060100",
126"2. c #C0BDBA",
127"3. c #8C8782",
128"4. c #C2B5A7",
129"5. c #BFB4A6",
130"6. c #B8AB9D",
131"7. c #BAAD9E",
132"8. c #BEB0A2",
133"9. c #948A7F",
134"0. c #716860",
135"a. c #E2E2E2",
136"b. c #A9A9A8",
137"c. c #332C2B",
138"d. c #5D5954",
139"e. c #79736C",
140"f. c #958C80",
141"g. c #8D8379",
142"h. c #988D82",
143"i. c #706760",
144"j. c #787878",
145"k. c #E4E4E4",
146"l. c #C2C2C2",
147"m. c #201A1A",
148"n. c #57514F",
149"o. c #625C59",
150"p. c #625A53",
151"q. c #6B625A",
152"r. c #585251",
153"s. c #696764",
154"t. c #080000",
155"u. c #989898",
156"v. c #B0B0B0",
157"w. c #AFAFAF",
158"x. c #999999",
159"y. c #9D9897",
160"z. c #050000",
161"A. c #0C0303",
162"B. c #080100",
163"C. c #030000",
164"D. c #282523",
165"E. c #5A5A5A",
166"F. c #868686",
167"G. c #ECE4E2",
168"H. c #DED7D5",
169"I. c #D8D1D0",
170"J. c #E0DBD7",
171"K. c #E9E6E3",
172"L. c #FCFBFA",
173"M. c #030500",
174"N. c #0B0505",
175"O. c #14100F",
176"P. c #090806",
177"Q. c #000100",
178" ",
179" . . . . . . . . . . . . . . . . . . . . ",
180" . + @ @ @ @ @ @ @ # # # # # # # # # $ . ",
181" . @ % % % & & & & * * * * * = = = = - . ",
182" . # & & & * * * * = = = = = ; ; ; ; > . ",
183" . , ' ' ' ) ) ) ) - - - - - > > > > ! . ",
184" . ~ { { { { { { { { { { { { { { { { ; . ",
185" . # ; ; ; ] ] ] ] ] ^ ^ ^ ^ $ $ $ $ / . ",
186" . # ] ] ] ( ^ ^ ^ _ : < [ } | 1 | 2 3 . ",
187" . 4 5 5 5 / / / 6 7 8 . 9 0 - a a a b . ",
188" . ~ c d d d d d e f g . h i $ j j k * . ",
189" . ~ 2 2 2 2 l l m n o . > p q r r r < . ",
190" . ~ l l l l s s t u v w . x . y p z < . ",
191" . A B B B B < 9 . C D E F . G H . I J . ",
192" . ~ @ , , , j . K L M N O P F Q R . S . ",
193" . ~ T T T T U . V W X Y Z ` ...+.@.< . ",
194" . #.$.$.$.$.& . %.&.*.=.-.;.>.,.'.@.p . ",
195" . { ).).).).!.~.{.].^./.(._.:.<.[.@.}.. ",
196" . #.@ c c c |.1.2.3.4.5.6.7.8.9.0.@.] . ",
197" . #.a.a.a.a.l b.c.d.e.f.g.9.h.i.. j.q . ",
198" . #.a.a.a.a.k.l.j.m.n.o.p.q.r.s.t.u.q . ",
199" . a.v.v.v.v.v.w.x.y.z.A.t.B.C.D.E.F.m . ",
200" . . . . . . . . . ~.G.H.I.J.K.L.M.. . . ",
201" ~.N.z.O.C.P.. Q. "};
diff --git a/lisp/toolbar/jump_to.pbm b/lisp/toolbar/jump_to.pbm
index effcdcc8bfd..2939a6c4a66 100644
--- a/lisp/toolbar/jump_to.pbm
+++ b/lisp/toolbar/jump_to.pbm
Binary files differ
diff --git a/lisp/toolbar/jump_to.xpm b/lisp/toolbar/jump_to.xpm
index 2106d015285..8f9897974ab 100644
--- a/lisp/toolbar/jump_to.xpm
+++ b/lisp/toolbar/jump_to.xpm
@@ -1,39 +1,171 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * jump_to_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 144 2",
4"24 24 9 1", 4" c None",
5" c #011b011b011b", 5". c #000000",
6". c #5e0868be52d3", 6"+ c #9ABC82",
7"X c #7c7c8b8b6e6e", 7"@ c #C1E3AA",
8"o c #8d4d97577838", 8"# c #A0C487",
9"O c #ae51c17b9b26", 9"$ c #8F6508",
10"+ c #cedcabd6996e", 10"% c #AD671D",
11"@ c #d305cecebaba", 11"& c #D6AF41",
12"# c #e38de39ed709", 12"* c #E1B744",
13"$ c None", 13"= c #B86F20",
14/* pixels */ 14"- c #7E5907",
15"$$$$$$$$$$$$$$$$$$$$$$$$", 15"; c #D8E7CD",
16"$$$$$$$$$$$$$$$$$$$$$$$$", 16"> c #D9E7CF",
17"$$$$$$$$$$$$$$$$$$$$$$$$", 17", c #DDEAD2",
18"$$$$$$$$$$$$$$$$$$$$$$$$", 18"' c #E4EFDA",
19"$$$$$$$$$$$$$$$$$$$$$$$$", 19") c #EBF6DF",
20"$$$$$$$$$$$$$$$$$$$$$$$$", 20"! c #C8EBB0",
21"$$$$$$$$$$$$$ $$$$$$$$", 21"~ c #A2C688",
22"$$$$$$$$$$$ #@+ $$$$$$", 22"{ c #986F26",
23"$$$$$$$$$$$ ###@+ $$$$$$", 23"] c #E2B946",
24"$$$$$$$ #+++ $$$$$", 24"^ c #EFCD64",
25"$$$$$$$ o@##O ++++ $$$$$", 25"/ c #F4D268",
26"$$$$$$$$ .OO. +++o $$$$$", 26"( c #F6D469",
27"$$$$$$ #@O.. +++ $$$$$$", 27"_ c #E7C24A",
28"$$$$ #@@Oo.. ++ $$$$$$", 28": c #D5B044",
29"$$$ #@@OOo. . $$$$$$$$", 29"< c #BC8C31",
30"$$$$ #OOO. $ $$$$$$$$$$", 30"[ c #1A0700",
31"$$$$$ #OX. $$$$$$$$$$$$$", 31"} c #D7E6CD",
32"$$$$$$ O. $$$$$$$$$$$$$$", 32"| c #B2D29C",
33"$$$$$$$ . $$$$$$$$$$$$$$", 33"1 c #B6D69F",
34"$$$$$$$$ $$$$$$$$$$$$$$$", 34"2 c #BDDEA5",
35"$$$$$$$$$$$$$$$$$$$$$$$$", 35"3 c #C4E7AC",
36"$$$$$$$$$$$$$$$$$$$$$$$$", 36"4 c #CAEEB1",
37"$$$$$$$$$$$$$$$$$$$$$$$$", 37"5 c #A1C387",
38"$$$$$$$$$$$$$$$$$$$$$$$$" 38"6 c #CBB86E",
39}; 39"7 c #EDD97E",
40"8 c #FEE882",
41"9 c #FEE77E",
42"0 c #FDDF60",
43"a c #FBD14F",
44"b c #E4BF49",
45"c c #BB8C31",
46"d c #CFE2C3",
47"e c #B2D19C",
48"f c #B5D59F",
49"g c #BBDBA4",
50"h c #C1E3A9",
51"i c #C6E9AE",
52"j c #C3E6AB",
53"k c #A9CE8D",
54"l c #DCBA5C",
55"m c #FBE46B",
56"n c #FFEB64",
57"o c #FFE054",
58"p c #FED952",
59"q c #F8CF4E",
60"r c #C4A13E",
61"s c #8BA27B",
62"t c #618249",
63"u c #628349",
64"v c #64864B",
65"w c #66894D",
66"x c #688B4E",
67"y c #678B4D",
68"z c #6B9251",
69"A c #719755",
70"B c #55833A",
71"C c #ECC75E",
72"D c #FFED59",
73"E c #FFE757",
74"F c #FFDF54",
75"G c #FBD44F",
76"H c #E1BD48",
77"I c #B36C1F",
78"J c #608148",
79"K c #628449",
80"L c #63854A",
81"M c #65894C",
82"N c #6C9151",
83"O c #527E39",
84"P c #B39237",
85"Q c #F0C248",
86"R c #FFF25B",
87"S c #FFEB58",
88"T c #FFE155",
89"U c #FBD450",
90"V c #E3BD49",
91"W c #BC983B",
92"X c #618349",
93"Y c #628549",
94"Z c #65884B",
95"` c #4D7735",
96" . c #907934",
97".. c #DCB444",
98"+. c #FCDB52",
99"@. c #FFEF5A",
100"#. c #FFE957",
101"$. c #FEDF54",
102"%. c #F9D24F",
103"&. c #E0BA48",
104"*. c #B08F37",
105"=. c #52743B",
106"-. c #456A2F",
107";. c #608248",
108">. c #628448",
109",. c #476F31",
110"'. c #7F6B32",
111"). c #D0AF4B",
112"!. c #F5CF4E",
113"~. c #FFE255",
114"{. c #FEDA52",
115"]. c #EAC54B",
116"^. c #D0AC42",
117"/. c #9C5D1A",
118"(. c #5A7B42",
119"_. c #456C2F",
120":. c #6F5C23",
121"<. c #A78833",
122"[. c #F0C54A",
123"}. c #FFDA52",
124"|. c #FFDE53",
125"1. c #C39032",
126"2. c #886423",
127"3. c #BC9D3B",
128"4. c #F0C84E",
129"5. c #FFD551",
130"6. c #FED751",
131"7. c #FDD550",
132"8. c #EDC74C",
133"9. c #E5BF49",
134"0. c #CCA941",
135"a. c #AB7727",
136"b. c #B1822D",
137"c. c #DCB746",
138"d. c #DFBA47",
139"e. c #EDC64C",
140"f. c #E9C34B",
141"g. c #D6B144",
142"h. c #C19D3D",
143"i. c #AB7C2B",
144"j. c #BC7222",
145"k. c #BB983B",
146"l. c #B09638",
147"m. c #A2621B",
148" ",
149" ",
150" . ",
151" . . ",
152" . + . . . . . . . ",
153" . . . . . . @ # . . $ % & * = - . . ",
154" . ; > , ' ) ! ! ~ . { ] ^ / ( _ : < [ . ",
155" . } | 1 2 3 4 4 3 5 . 6 7 8 9 0 a b c . ",
156" . d e f g h i i h j k . l m n o p q r - . ",
157" . s t u v w x x y z A B . C D E F G H I . ",
158" . s J t K L v v M N O . P Q R S T U V W . ",
159" . s J J t X u Y Z ` . ...+.@.#.$.%.&.*.. ",
160" . =.-.-.-.-.;.>.,.. '.).!.E E ~.{.].^./.. ",
161" . . . . . . (._.. :.<.[.}.|.|.{.%.V 1.$ . ",
162" . -.. . 2.3.4.5.6.7.8.9.0.a.. ",
163" . . . . b.c.d.e.f.g.h.i.. . ",
164" . . $ j.k.l.m.$ . . ",
165" . . . . . . ",
166" ",
167" ",
168" ",
169" ",
170" ",
171" "};
diff --git a/lisp/toolbar/left_arrow.pbm b/lisp/toolbar/left_arrow.pbm
index 6d6f07f0983..044ec82a588 100644
--- a/lisp/toolbar/left_arrow.pbm
+++ b/lisp/toolbar/left_arrow.pbm
Binary files differ
diff --git a/lisp/toolbar/left_arrow.xpm b/lisp/toolbar/left_arrow.xpm
index b3f0ae4ab9a..586fe4489c0 100644
--- a/lisp/toolbar/left_arrow.xpm
+++ b/lisp/toolbar/left_arrow.xpm
@@ -1,35 +1,69 @@
1/* XPM */ 1/* XPM */
2static char * left_arrow_xpm[] = { 2static char * left_arrow_xpm[] = {
3"24 24 9 1", 3"24 24 43 1",
4" c None", 4" c None",
5". c #020202", 5". c #000000",
6"+ c #121A12", 6"+ c #B9D0B9",
7"@ c #78A16E", 7"@ c #CDDECB",
8"# c #86AD7D", 8"# c #B6C7B6",
9"$ c #B2C6AE", 9"$ c #B1C9B0",
10"% c #263222", 10"% c #B3C4B3",
11"& c #E7EDE6", 11"& c #B4CBB2",
12"* c #497241", 12"* c #B5CEB5",
13"= c #B7CCB5",
14"- c #B9CEB7",
15"; c #BAD1BA",
16"> c #BBCFBA",
17", c #BBD0B9",
18"' c #B2C9B0",
19") c #7EAB78",
20"! c #AAC7A8",
21"~ c #B3CAB1",
22"{ c #B0C9B0",
23"] c #B0C9AE",
24"^ c #AEC7AC",
25"/ c #AAC5A8",
26"( c #A9C4A7",
27"_ c #698267",
28": c #2D2D2D",
29"< c #CFDFCC",
30"[ c #ADC8AB",
31"} c #B0C7AE",
32"| c #ADC6AB",
33"1 c #678C63",
34"2 c #9BAD9A",
35"3 c #85AE81",
36"4 c #87AF84",
37"5 c #87B083",
38"6 c #88AF84",
39"7 c #88B085",
40"8 c #86AF82",
41"9 c #547150",
42"0 c #3C5235",
43"a c #5B7950",
44"b c #4A6342",
45"c c #3B5035",
46"d c #415639",
13" ", 47" ",
14" ", 48" ",
15" ", 49" ",
16" ", 50" . ",
17" ", 51" .. ",
18" .. ", 52" .+. ",
19" ..$. ", 53" .@#. ",
20" ..&&$. ", 54" .@$%........ ",
21" ..&&&&$. ", 55" .@&*=-;->,'). ",
22" ..&&&&&&$. ", 56" .@!~{]^///^(_. ",
23" .+&&&&&&&&$. ", 57" :<[}||[!^^}^[1. ",
24" ..$&&&&&&&&&$% ", 58" .23444445645789. ",
25" ..**@@@#####@. ", 59" .0aaaaaaaaaaab. ",
26" ..**@#@###@. ", 60" .0aaaaaaaaaab. ",
27" ..**@#@#@. ", 61" .0aabccccccd. ",
28" ..**@@@. ", 62" .0ab........ ",
29" ..*@*. ", 63" .0b. ",
30" ..*. ", 64" .b. ",
31" .. ", 65" .. ",
32" ", 66" . ",
33" ", 67" ",
34" ", 68" ",
35" ", 69" ",
diff --git a/lisp/toolbar/new.pbm b/lisp/toolbar/new.pbm
index 93415bf901e..2c2ee9de87c 100644
--- a/lisp/toolbar/new.pbm
+++ b/lisp/toolbar/new.pbm
Binary files differ
diff --git a/lisp/toolbar/new.xpm b/lisp/toolbar/new.xpm
index bd45e8962a8..2d4690edd3c 100644
--- a/lisp/toolbar/new.xpm
+++ b/lisp/toolbar/new.xpm
@@ -1,37 +1,154 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * new_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 127 2",
4"24 24 7 1", 4" c None",
5" c Gray0", 5". c #000000",
6". c #61b761b7600a", 6"+ c #D3D3D3",
7"X c #828282827474", 7"@ c #F6F6F6",
8"o c #a5d8a5d89550", 8"# c #FFFFFF",
9"O c #d305d305bc3c", 9"$ c #F9F9F9",
10"+ c #ea03ea03d271", 10"% c #DADADA",
11"@ c None", 11"& c #585858",
12/* pixels */ 12"* c #C7C7C7",
13"@@@@@@@@@@@@@@@@@@@@@@@@", 13"= c #D1D1D1",
14"@@@@@@@@@@@@@@@@@@@@@@@@", 14"- c #D6D6D6",
15"@@@@@@@@@@@@@ @@@@@@@@@@", 15"; c #FEFEFE",
16"@@@@@@@@@@@ o @@@@@@@@@", 16"> c #FDFDFD",
17"@@@@@@@@@ oO+ @@@@@@@@@", 17", c #C0C0C0",
18"@@@@@@@ oOOOO+ @@@@@@@@", 18"' c #E1E1E1",
19"@@@@@ oOOOOOO+o @@@@@@@", 19") c #F0F0F0",
20"@@@@ ..OOOOOO+++.@@@@@@@", 20"! c #9B9B9B",
21"@@@@ +.OOOOO+++++ @@@@@@", 21"~ c #FCFCFB",
22"@@@@ ++.OOO++++++o @@@@@", 22"{ c #FBFBFB",
23"@@@@ ++.oOO+++++++ @@@@@", 23"] c #AFAFAE",
24"@@@@ +.oOO+++++++++ @@@@", 24"^ c #E9E9E9",
25"@@@@ oOO++++++++++O @@@", 25"/ c #DFDFDF",
26"@@@@ .OOO+++++++++++O @@", 26"( c #8F8F8F",
27"@@@@ oOO++++++++++++X @@", 27"_ c #FAFAF9",
28"@@@@@ +++++++++++++ @@@", 28": c #F9F9F8",
29"@@@@@ O++++++++++O @@@@@", 29"< c #A4A4A3",
30"@@@@@@.+++++++++X @@@@@@", 30"[ c #F4F4F4",
31"@@@@@@ +++++++O @@@@@@@@", 31"} c #CFCFCF",
32"@@@@@@@ +++++o @@@@@@@@@", 32"| c #A2A2A2",
33"@@@@@@@ O++O. @@@@@@@@@@", 33"1 c #F8F8F7",
34"@@@@@@@@ +o @@@@@@@@@@@@", 34"2 c #F8F7F6",
35"@@@@@@@@@ @@@@@@@@@@@@@", 35"3 c #9E9E9E",
36"@@@@@@@@@@@@@@@@@@@@@@@@" 36"4 c #F7F6F5",
37}; 37"5 c #F6F6F4",
38"6 c #F4F3F2",
39"7 c #DEDDDC",
40"8 c #D3D2D0",
41"9 c #B7B7B5",
42"0 c #9F9E9D",
43"a c #706F6F",
44"b c #65625A",
45"c c #F5F4F3",
46"d c #F2F2F0",
47"e c #E4E4E2",
48"f c #DAD9D7",
49"g c #D8D8D6",
50"h c #CDCCCA",
51"i c #AFAEAC",
52"j c #88847B",
53"k c #F3F3F1",
54"l c #EFEFED",
55"m c #EEEDEB",
56"n c #EDECEA",
57"o c #E9E8E6",
58"p c #D5D4D3",
59"q c #C4C3C2",
60"r c #8F8A81",
61"s c #F6F5F4",
62"t c #F5F5F3",
63"u c #F1F1EF",
64"v c #F1F0EE",
65"w c #ECEBE9",
66"x c #EAE9E7",
67"y c #E5E4E2",
68"z c #E4E3E0",
69"A c #D2D1CE",
70"B c #8D887E",
71"C c #F3F2F1",
72"D c #F0F0EE",
73"E c #F0EFED",
74"F c #EFEEEC",
75"G c #E8E7E5",
76"H c #E5E4E1",
77"I c #E2E1DE",
78"J c #E1DFDC",
79"K c #979288",
80"L c #A49E93",
81"M c #E8E7E4",
82"N c #E7E6E3",
83"O c #E3E2DF",
84"P c #E2E0DD",
85"Q c #E1E0DC",
86"R c #E0DFDB",
87"S c #A19C90",
88"T c #EDEDEB",
89"U c #EBEAE8",
90"V c #E9E8E5",
91"W c #E6E4E1",
92"X c #E3E2DE",
93"Y c #DFDEDA",
94"Z c #DEDDD9",
95"` c #DDDCD8",
96" . c #A19B90",
97".. c #E7E5E2",
98"+. c #E4E3DF",
99"@. c #DCDBD7",
100"#. c #E6E5E2",
101"$. c #E5E4E0",
102"%. c #E2E1DD",
103"&. c #DBD9D5",
104"*. c #D9D7D3",
105"=. c #9F998D",
106"-. c #E4E2DF",
107";. c #DDDBD7",
108">. c #DCDAD6",
109",. c #D8D6D2",
110"'. c #9E988D",
111"). c #EDEDED",
112"!. c #E1E0DD",
113"~. c #E0DEDA",
114"{. c #D8D6D1",
115"]. c #D7D5D1",
116"^. c #9D978B",
117"/. c #E1DFDB",
118"(. c #DEDCD8",
119"_. c #D7D6D1",
120":. c #D5D3CE",
121"<. c #9B958A",
122"[. c #999891",
123"}. c #A39E92",
124"|. c #A39D92",
125"1. c #A39D91",
126"2. c #A29C90",
127"3. c #A19B8F",
128"4. c #9D978C",
129"5. c #9B968A",
130"6. c #676359",
131" ",
132" . . . . . . . . . . . . . ",
133" . + @ # # # # # # # # $ % & . ",
134" . @ # # # # # # # # # # * = - . ",
135" . # # # # # # # ; # ; > , ' ) ! . ",
136" . # # # # # ; > ~ > ~ { ] ^ # / ( . ",
137" . # # # ; > ~ { _ { _ : < ) # [ } | . ",
138" . # ; > ~ { _ : 1 : 1 2 3 . . . . . . . ",
139" . # ~ { _ : 1 2 4 2 4 5 6 7 8 9 0 a b . ",
140" . # _ : 1 2 4 5 c 5 c 6 d e f g h i j . ",
141" . # 1 2 4 5 c 6 k 6 k d l m n o p q r . ",
142" . # s t 6 6 k d u d u v m w x y z A B . ",
143" . # 6 C d D l v E v E F w G H z I J K . ",
144" . # 6 C d D l v E v E F w G H z I J L . ",
145" . # D l l F m n n n n w M N O P Q R S . ",
146" . # T n w w w U V U V V H W X Y Z ` .. ",
147" . # U o o G M M N M N ..+.X R Z ` @. .. ",
148" . # N #.#.#.H W $.W $.+.%.R Z @.&.*.=.. ",
149" . $ z O X -.+.%.X %.X Q Q Z ;.>.*.,.'.. ",
150" . ).!.J Q R %.R Q R Q Y ~.;.>.*.{.].^.. ",
151" . = /.~.Y Z R Z ~.Z ~.(.(.>.>.,._.:.<.. ",
152" . [.}.L |.1.|.S 2.S 2.3. .=.=.4.4.5.6.. ",
153" . . . . . . . . . . . . . . . . . . ",
154" "};
diff --git a/lisp/toolbar/open.pbm b/lisp/toolbar/open.pbm
index 3d2be258a67..d1ddfc51eab 100644
--- a/lisp/toolbar/open.pbm
+++ b/lisp/toolbar/open.pbm
Binary files differ
diff --git a/lisp/toolbar/open.xpm b/lisp/toolbar/open.xpm
index 62b70e7468b..6b95c7e476d 100644
--- a/lisp/toolbar/open.xpm
+++ b/lisp/toolbar/open.xpm
@@ -1,34 +1,200 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * open_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 173 2",
4"24 24 4 1", 4" c None",
5" c Gray0", 5". c #000000",
6". c #999990907b7b", 6"+ c #010100",
7"X c #fffffefef7f7", 7"@ c #B5B8A5",
8"o c None", 8"# c #E4E7D2",
9/* pixels */ 9"$ c #878A76",
10"oooooooooooooooooooooooo", 10"% c #33342B",
11"oooooooooooooooooooooooo", 11"& c #0B0B0B",
12"oooooooooooooooooooooooo", 12"* c #E2E5CF",
13"oooooooooooooooooooooooo", 13"= c #CFD4AF",
14"oooooooooooooooooooooooo", 14"- c #CED3AE",
15"oooooooooooooo oooooooo", 15"; c #B2B696",
16"ooooooooooo .. ooooooo", 16"> c #2D2D25",
17"oooo oo ....XXo ooo", 17", c #23241D",
18"ooo .. ....XXXX .. ooo", 18"' c #9D9F90",
19"ooo .....XXXXX .... ooo", 19") c #C6CAA6",
20"oooo ..XXXXX ...... ooo", 20"! c #C4C9A5",
21"oooo ..XXX ........ ooo", 21"~ c #C6CBA7",
22"ooooo .XX .......... ooo", 22"{ c #C7CCA8",
23"ooooo ..X .......... ooo", 23"] c #C9CEA9",
24"oooooo .X .......... ooo", 24"^ c #555847",
25"oooooo .. ........ oooo", 25"/ c #1A1B15",
26"ooooooo . ...... oooooo", 26"( c #20201A",
27"ooooooo . ..... oooooooo", 27"_ c #D4D6C2",
28"oooooooo ... ooooooooo", 28": c #BEC2A0",
29"oooooooo . ooooooooooo", 29"< c #B3B896",
30"ooooooooo ooooooooooooo", 30"[ c #B0B595",
31"oooooooooooooooooooooooo", 31"} c #B3B797",
32"oooooooooooooooooooooooo", 32"| c #B6BB99",
33"oooooooooooooooooooooooo" 33"1 c #BBC09E",
34}; 34"2 c #BCC19F",
35"3 c #81856C",
36"4 c #3E3F32",
37"5 c #010101",
38"6 c #DADDC8",
39"7 c #AFB494",
40"8 c #AAAF8F",
41"9 c #A3A789",
42"0 c #A6AA8B",
43"a c #A9AD8E",
44"b c #A7AB8D",
45"c c #A4A88A",
46"d c #A1A588",
47"e c #AAAD96",
48"f c #B3B5A5",
49"g c #B8BBAA",
50"h c #BABCAB",
51"i c #C1C3B2",
52"j c #C7CAB7",
53"k c #CACDBB",
54"l c #BABDA8",
55"m c #0C0C09",
56"n c #DDDFCB",
57"o c #969B7E",
58"p c #9DA286",
59"q c #95987C",
60"r c #96997E",
61"s c #9A9D81",
62"t c #999D80",
63"u c #9DA184",
64"v c #A5AA8B",
65"w c #A4A98A",
66"x c #A3A889",
67"y c #A2A588",
68"z c #A2A587",
69"A c #9FA386",
70"B c #9B9E83",
71"C c #898D74",
72"D c #D8DBC9",
73"E c #84866E",
74"F c #7D8169",
75"G c #151612",
76"H c #D7DAC9",
77"I c #797D67",
78"J c #3D3F34",
79"K c #E0E0D9",
80"L c #EBEDDD",
81"M c #E8EBD9",
82"N c #E7EAD8",
83"O c #E3E6D4",
84"P c #DEE1D0",
85"Q c #DADCCC",
86"R c #DADCD1",
87"S c #2B2C28",
88"T c #D7DAC6",
89"U c #6F735E",
90"V c #0D0D0D",
91"W c #F4F4EC",
92"X c #CACFAB",
93"Y c #C6CBA8",
94"Z c #C2C6A4",
95"` c #ABB091",
96" . c #23251E",
97".. c #494B3D",
98"+. c #DCDCD4",
99"@. c #EAECDD",
100"#. c #CDD2AD",
101"$. c #CCD1AC",
102"%. c #CACFAA",
103"&. c #BABF9D",
104"*. c #B5B999",
105"=. c #81836C",
106"-. c #070806",
107";. c #D5D8C4",
108">. c #161616",
109",. c #F2F2EA",
110"'. c #C9CEAA",
111"). c #C8CDA9",
112"!. c #C4C9A6",
113"~. c #C1C5A3",
114"{. c #BCC09F",
115"]. c #B6BB9A",
116"^. c #B0B494",
117"/. c #9DA185",
118"(. c #535445",
119"_. c #B6B8A7",
120":. c #747470",
121"<. c #ECECE2",
122"[. c #C3C8A5",
123"}. c #C2C7A4",
124"|. c #C0C5A2",
125"1. c #BFC4A1",
126"2. c #BDC2A0",
127"3. c #B9BD9C",
128"4. c #B9BE9D",
129"5. c #A9AD8F",
130"6. c #A3A78A",
131"7. c #80836D",
132"8. c #020201",
133"9. c #A6A998",
134"0. c #B8BC9B",
135"a. c #AFB394",
136"b. c #ACB091",
137"c. c #A8AC8E",
138"d. c #A6AA8C",
139"e. c #9FA286",
140"f. c #9B9F83",
141"g. c #9A9D82",
142"h. c #8A8D75",
143"i. c #4F5243",
144"j. c #070705",
145"k. c #9E9F91",
146"l. c #E5E6DA",
147"m. c #ADB192",
148"n. c #A5A98C",
149"o. c #9FA387",
150"p. c #999D81",
151"q. c #95987E",
152"r. c #92957B",
153"s. c #8C8F76",
154"t. c #8A8D74",
155"u. c #71735F",
156"v. c #080908",
157"w. c #E3E5D9",
158"x. c #C0C3AF",
159"y. c #94987C",
160"z. c #8F9379",
161"A. c #8B8F75",
162"B. c #8A8E74",
163"C. c #888C73",
164"D. c #858970",
165"E. c #868971",
166"F. c #82866E",
167"G. c #80836C",
168"H. c #7D8069",
169"I. c #797C66",
170"J. c #727560",
171"K. c #717460",
172"L. c #71745F",
173"M. c #6A6D59",
174"N. c #434538",
175"O. c #080907",
176"P. c #050504",
177" ",
178" ",
179" ",
180" . . . . . . . ",
181" + @ # # # # # $ % ",
182" & * = = = - - ; > ",
183", ' * ) ! ~ { ] ] ^ / ",
184"( _ : < [ } | 1 2 3 4 5 . . . . . . . ",
185", 6 7 8 9 0 8 a b c d e f g h i j k l . ",
186"m n o p q r s t r u v w x y 9 z A B C . ",
187". D E F G . . . . . . . . . . . . . . . 5 5 ",
188". H I J K L M M M M M M M M M M M N O P Q R S ",
189". T U V W = = = = = = = = = - - - X Y Z 1 ` . ",
190". T ..+.@.#.- - #.- #.#.#.#.#.$.%.Y Z &.*.=.-. ",
191". ;.>.,.X %.X %.'.%.'.{ ).).Y !.~.{.].^./.(.m ",
192". _.:.<.[.}.}.Z |.Z 1.2.|.2.3.4.} [ 5.6.7.8. ",
193". 9.+.0.0.*.} } [ [ a.a.a.b.c.d.e.f.g.h.i.j. ",
194". k.l.m.5.d.n.6.6.d o.e.f.p.q.r.s.t.t.u.v. ",
195". w.x.y.z.A.B.C.C.D.E.F.G.H.I.J.K.L.M.N.O. ",
196" . . . . . . . . . . . . . . . . . . P. ",
197" ",
198" ",
199" ",
200" "};
diff --git a/lisp/toolbar/paste.pbm b/lisp/toolbar/paste.pbm
index e51819c682a..e91a80b25d8 100644
--- a/lisp/toolbar/paste.pbm
+++ b/lisp/toolbar/paste.pbm
Binary files differ
diff --git a/lisp/toolbar/paste.xpm b/lisp/toolbar/paste.xpm
index bc4fc3b965e..cdd86366d66 100644
--- a/lisp/toolbar/paste.xpm
+++ b/lisp/toolbar/paste.xpm
@@ -1,35 +1,116 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * paste_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 89 1",
4"24 24 5 1", 4" c None",
5" c Gray0", 5". c #000000",
6". c #62ee62ee62ee", 6"+ c #B9B9B9",
7"X c Gray68", 7"@ c #FEFEFE",
8"o c Gray82", 8"# c #F9F9F9",
9"O c None", 9"$ c #757575",
10/* pixels */ 10"% c #F5F5E8",
11"OOOOOOOOOOOOOOOOOOOOOOOO", 11"& c #565651",
12"OOOOOOOOOOOOOOOOOOOOOOOO", 12"* c #FFFFFF",
13"OOOOOOOOOOOOOOOOOOOOOOOO", 13"= c #A0A0A0",
14"OOOOOOOOO OOOOOOOOOOOO", 14"- c #939393",
15"OOOOOOO ooo OOOOOO OOOO", 15"; c #7C7C7C",
16"OOOOO ooooo OOO OOO", 16"> c #C5C5BB",
17"OOO oo. .Xoo OO OOO", 17", c #CFC6A0",
18"OO ooo.oX..oo OOOOO OOOO", 18"' c #D7CEAA",
19"OO ooo.X..oooo OOOOOOOOO", 19") c #ADA689",
20"OOO oo..Xooooo O OOOOOO", 20"! c #4B483C",
21"OOO oooooooooo oX OOOOO", 21"~ c #6D6D6D",
22"OOOO ooooooo XXoo OOOOO", 22"{ c #6C6C6C",
23"OOOO ooooooo o.XooX OOOO", 23"] c #A9A9A9",
24"OOOOO oooooo o.Xooo OOOO", 24"^ c #3D3A30",
25"OOOOO oooooo .XooooX OOO", 25"/ c #979178",
26"OOOOOO ooooX XooooooX OO", 26"( c #C1B898",
27"OOOOOO XXOXX Xooooooo OO", 27"_ c #8A793D",
28"OOOOOOO XXXX oooooooX O", 28": c #C3BB9A",
29"OOOOOOO XX O XooooX OO", 29"< c #AFA78A",
30"OOOOOOOO OOOO ooX OOOO", 30"[ c #444236",
31"OOOOOOOOOOOOOO X OOOOOO", 31"} c #FAFAFA",
32"OOOOOOOOOOOOOOO OOOOOOOO", 32"| c #EFEFEF",
33"OOOOOOOOOOOOOOOOOOOOOOOO", 33"1 c #C7C7C7",
34"OOOOOOOOOOOOOOOOOOOOOOOO" 34"2 c #D8D8D8",
35}; 35"3 c #D2D2D2",
36"4 c #7B7B7B",
37"5 c #302E26",
38"6 c #89846C",
39"7 c #C4BC9A",
40"8 c #847235",
41"9 c #C5C5C5",
42"0 c #A7A7A7",
43"a c #ADADAD",
44"b c #9A9A9A",
45"c c #9B9B9B",
46"d c #868686",
47"e c #424242",
48"f c #847033",
49"g c #C9C09E",
50"h c #464337",
51"i c #35332A",
52"j c #2D2B23",
53"k c #C6BE9D",
54"l c #826F33",
55"m c #7F7964",
56"n c #4C493C",
57"o c #171612",
58"p c #13120F",
59"q c #3E3B31",
60"r c #282210",
61"s c #474438",
62"t c #B3B3B3",
63"u c #D6D6D6",
64"v c #B7AE90",
65"w c #B1AA8C",
66"x c #37352B",
67"y c #151410",
68"z c #8F8F8F",
69"A c #989898",
70"B c #C6C6C6",
71"C c #B9B293",
72"D c #11100D",
73"E c #434035",
74"F c #636363",
75"G c #767676",
76"H c #AAA48B",
77"I c #A5A086",
78"J c #A19A7F",
79"K c #312F26",
80"L c #AFA88C",
81"M c #050403",
82"N c #12110E",
83"O c #A9A489",
84"P c #A39E85",
85"Q c #EBE7D0",
86"R c #D2C9A5",
87"S c #A29053",
88"T c #8E7C3D",
89"U c #88793B",
90"V c #806C2F",
91"W c #78652B",
92"X c #251F0C",
93" .... ",
94" ......+@#$...... ",
95".%%%%%&*=-;&>%%%,. ",
96".%''')!*~{]^/(''_. ",
97".%::<[}|123456<78. ",
98".%''!900abcde!)'f. ",
99".%g:6hijjjjj56<kl. ",
100".%'''////////(''l. ",
101".%g::::mnopppp^qr.... ",
102".%'''''st***********u. ",
103".%vwwwwx*************. ",
104".%'''''y*0zzA**Bz*zB*. ",
105".%CwwwwD*************. ",
106".%'''''E*~F*GzzB*Bz**. ",
107".%HIJJJK*************. ",
108".%'''''E*0zz*zzzB*Az*. ",
109".%LIJJJM*************. ",
110".%'''''N*~F*GzzB*Bz**. ",
111".%OPJJJK*************. ",
112".Q'''''E*0zz*zzzB*Az*. ",
113".RSTUVWX*************. ",
114" .......u***********u. ",
115" ............. ",
116" "};
diff --git a/lisp/toolbar/preferences.pbm b/lisp/toolbar/preferences.pbm
index 08819766ec0..e266d368559 100644
--- a/lisp/toolbar/preferences.pbm
+++ b/lisp/toolbar/preferences.pbm
Binary files differ
diff --git a/lisp/toolbar/preferences.xpm b/lisp/toolbar/preferences.xpm
index e9a7656bcdc..3cdc884dd4d 100644
--- a/lisp/toolbar/preferences.xpm
+++ b/lisp/toolbar/preferences.xpm
@@ -1,35 +1,114 @@
1/* XPM */ 1/* XPM */
2static char * preferences_xpm[] = { 2static char * preferences_xpm[] = {
3"24 24 8 1", 3"24 24 87 1",
4" c None", 4" c None",
5". c #000000", 5". c #000000",
6"+ c #E1E0E0", 6"+ c #BAB5AB",
7"@ c #D7C99B", 7"@ c #D0CDC6",
8"# c #9A6C4E", 8"# c #88857D",
9"$ c #A4A199", 9"$ c #C9C6BE",
10"% c #858579", 10"% c #CCC8C1",
11"& c #AD8E30", 11"& c #E5E3E0",
12" ", 12"* c #FFFFFF",
13" ", 13"= c #757575",
14" ", 14"- c #2E2E2E",
15" .. ", 15"; c #F6F5F5",
16" ..++. . ", 16"> c #CCCCCC",
17" ..++++. .@. ", 17", c #AFAFAF",
18" ...+++++++. .@#. ", 18"' c #D3D1CB",
19" ..++++++++++. .@#. ", 19") c #C1C0BF",
20" .++++++#++++++.@#. ", 20"! c #F0EFED",
21" .+++++#++++++.@#. ", 21"~ c #797772",
22" .++#+#+++++.@#. ", 22"{ c #DCDCDC",
23" .++#$#++++.@#.+. ", 23"] c #A5A19C",
24" .++##+++.@#.++@. ", 24"^ c #EAE9E5",
25" .++++++.@#.+++@%. ", 25"/ c #F3F1F0",
26" .++++&+..@$$$$%. ", 26"( c #EDEDED",
27" .++++..$$$$$$@. ", 27"_ c #A19D96",
28" .+$%%$+++++.. ", 28": c #C1BDB4",
29" .+++++++++. ", 29"< c #DBD8D3",
30" .++++++.. ", 30"[ c #D9D6D1",
31" .++++@. ", 31"} c #89857E",
32" .++.. ", 32"| c #FCFCFC",
33" .. ", 33"1 c #EAE9E6",
34" ", 34"2 c #F5F4F3",
35"3 c #C6C2BA",
36"4 c #F0EFEE",
37"5 c #F4F4F3",
38"6 c #CBC7C0",
39"7 c #ECECEB",
40"8 c #676560",
41"9 c #54524D",
42"0 c #777676",
43"a c #797978",
44"b c #85827E",
45"c c #79756F",
46"d c #7590AE",
47"e c #A4BAD0",
48"f c #90A6BE",
49"g c #9F9F9E",
50"h c #BEBDBC",
51"i c #B8B4AD",
52"j c #87837C",
53"k c #D3DFEA",
54"l c #A2AEBC",
55"m c #9DB6CE",
56"n c #637B95",
57"o c #E2E2E2",
58"p c #EEEEED",
59"q c #849CB6",
60"r c #D7E2ED",
61"s c #8D98A5",
62"t c #9DB8D2",
63"u c #607791",
64"v c #EDEDEC",
65"w c #99ADC3",
66"x c #DFE7F0",
67"y c #8193A9",
68"z c #586D84",
69"A c #5B7189",
70"B c #F1F1F1",
71"C c #EEEDEB",
72"D c #A7A6A5",
73"E c #726F6A",
74"F c #A1B4C8",
75"G c #EEF3F6",
76"H c #60768F",
77"I c #DEDDDC",
78"J c #787776",
79"K c #4E4E4D",
80"L c #91A6BE",
81"M c #F0F4F7",
82"N c #97A5B6",
83"O c #BFBEBD",
84"P c #AAAAA9",
85"Q c #ACACAB",
86"R c #B0C6DB",
87"S c #EDF2F6",
88"T c #818A95",
89"U c #6C85A1",
90"V c #C0D1E2",
91" .. ",
92" .+@#. ",
93" .$%+. .. ",
94" .&$. .*=. ",
95" .. -;$. .*>,. ",
96" .' ..)!+~. .{,. ",
97" .]%%^/+++. .(.. ",
98" ._:%$<[+}. .|. ",
99" .....123}..>. ",
100" .456.,. ",
101" .7.,.. ",
102" .,.89. ",
103" ....,.0abc. ",
104" .def.. .ghij. ",
105" .dklmn. .op6}. ",
106" .qrsntu. .v/$}. ",
107" .wxyztdA. .BCDE..",
108" .FGyHtdA. .IJK,.",
109" .LMNHtdA. .OPQ.",
110" .RSTtdA.. ... ",
111" .UtVLA.. ",
112" .UUn.. ",
113" ... ",
35" "}; 114" "};
diff --git a/lisp/toolbar/print.pbm b/lisp/toolbar/print.pbm
index 63cea6d84d2..be20a9142cd 100644
--- a/lisp/toolbar/print.pbm
+++ b/lisp/toolbar/print.pbm
Binary files differ
diff --git a/lisp/toolbar/print.xpm b/lisp/toolbar/print.xpm
index 06dee7c26bf..95f2f400800 100644
--- a/lisp/toolbar/print.xpm
+++ b/lisp/toolbar/print.xpm
@@ -1,36 +1,202 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * print_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 175 2",
4"24 24 6 1", 4" c None",
5" c #043904390439", 5". c #000000",
6". c #40403f3f3f3f", 6"+ c #C7C7C7",
7"X c #5a1a5a0458f3", 7"@ c #FAFAFA",
8"o c #a74da686a5ec", 8"# c #FCFCFC",
9"O c #e88de7c9e66c", 9"$ c #FBFBFB",
10"+ c None", 10"% c #F8F8F8",
11/* pixels */ 11"& c #AFAFAF",
12"++++++++++++++++++++++++", 12"* c #F9F9F9",
13"++++++++++++++++++++++++", 13"= c #E5E5E5",
14"++++++++++++++++++++++++", 14"- c #E3E3E3",
15"++++++++++++ ++++++++++", 15"; c #E2E2E2",
16"+++++++++++ OOX +++++++", 16"> c #E0E0E0",
17"++++++++++ OOOOOO. +++", 17", c #DFDFDF",
18"+++++++++ OOOOOOOOOo +++", 18"' c #DCDCDC",
19"+++++++++.OOOOOOOOO ++++", 19") c #DBDBDB",
20"+++++++ oOOOOOOOOX+++++", 20"! c #B6B6B6",
21"+++++ OooXOOOOOOo ++++", 21"~ c #6B6B6B",
22"+++ OOOOOoXXooOO.XX ++", 22"{ c #676767",
23"++ ooOOOOOOOOoXXX.X.. ++", 23"] c #818181",
24"++ ooooOOOOOOOOOO.... ++", 24"^ c #E7E7E7",
25"++ ooooooOOOOOOO..... ++", 25"/ c #606060",
26"++ XooooooooOOO...... ++", 26"( c #A0A0A0",
27"++ X.XoooooooX....... ++", 27"_ c #DADADA",
28"++ XX...XooooX...... ++", 28": c #E1E1E1",
29"+++ XXXX...XX..... ++++", 29"< c #B7B7B7",
30"+++++ .XXXXX... +++++", 30"[ c #FDFDFD",
31"++++++++ .XX.. +++++++", 31"} c #EFEFEF",
32"+++++++++++ ++++++++", 32"| c #EEEEEE",
33"++++++++++++++++++++++++", 33"1 c #EDEDED",
34"++++++++++++++++++++++++", 34"2 c #ECECEC",
35"++++++++++++++++++++++++" 35"3 c #EBEBEB",
36}; 36"4 c #E9E9E9",
37"5 c #E8E8E8",
38"6 c #BFBFBF",
39"7 c #8A8A8A",
40"8 c #6A6A6A",
41"9 c #9E9E9E",
42"0 c #F6F6F6",
43"a c #909090",
44"b c #A2A2A2",
45"c c #AAAAAA",
46"d c #F4F4F4",
47"e c #CECECE",
48"f c #ADADAD",
49"g c #AEAEAE",
50"h c #BEBEBE",
51"i c #A6A6A6",
52"j c #CDCDCD",
53"k c #F5F5F5",
54"l c #DEDEDE",
55"m c #DDDDDD",
56"n c #C9C9C9",
57"o c #878787",
58"p c #888888",
59"q c #D0D0D0",
60"r c #6E6E6E",
61"s c #797979",
62"t c #D1D1D1",
63"u c #A1A1A1",
64"v c #B3B3B3",
65"w c #FFFFFF",
66"x c #CACACA",
67"y c #A7A7A7",
68"z c #A5A5A5",
69"A c #A4A4A4",
70"B c #A3A3A3",
71"C c #87847C",
72"D c #EAE8E3",
73"E c #8D8982",
74"F c #53524C",
75"G c #807D74",
76"H c #AAA9A5",
77"I c #BAB5AB",
78"J c #F3F3F3",
79"K c #C3C1BD",
80"L c #8B8B89",
81"M c #E6E5E1",
82"N c #F9F9F8",
83"O c #FAFAF9",
84"P c #F9F9F7",
85"Q c #F7F6F5",
86"R c #F7F7F4",
87"S c #F6F5F4",
88"T c #F2F1EE",
89"U c #F0EFEC",
90"V c #E5E5E4",
91"W c #9F9F9F",
92"X c #DFDED9",
93"Y c #A4A3A1",
94"Z c #6C6B6A",
95"` c #F5F4F3",
96" . c #D5D5D5",
97".. c #D3D3D3",
98"+. c #D4D4D3",
99"@. c #D4D4D4",
100"#. c #A9A9A9",
101"$. c #B5B5B5",
102"%. c #CDCDCB",
103"&. c #B5B5B4",
104"*. c #DCDAD3",
105"=. c #6B6B6A",
106"-. c #999896",
107";. c #918F87",
108">. c #999895",
109",. c #E6E4E1",
110"'. c #F0EEEC",
111"). c #FAF9F9",
112"!. c #F9F8F7",
113"~. c #F8F7F6",
114"{. c #F8F8F7",
115"]. c #F4F3F1",
116"^. c #F2F1EF",
117"/. c #565655",
118"(. c #858482",
119"_. c #9C9B99",
120":. c #6B6A68",
121"<. c #585858",
122"[. c #5E5C57",
123"}. c #524F4B",
124"|. c #4A4845",
125"1. c #4B4A46",
126"2. c #4B4946",
127"3. c #4A4844",
128"4. c #494743",
129"5. c #484642",
130"6. c #474541",
131"7. c #464440",
132"8. c #514F4B",
133"9. c #53514E",
134"0. c #7B7A77",
135"a. c #797771",
136"b. c #949391",
137"c. c #989694",
138"d. c #868480",
139"e. c #6E6C66",
140"f. c #706D67",
141"g. c #5C5955",
142"h. c #67645F",
143"i. c #5B5954",
144"j. c #585651",
145"k. c #5D5B56",
146"l. c #595652",
147"m. c #53504C",
148"n. c #575450",
149"o. c #595752",
150"p. c #5C5956",
151"q. c #5B5956",
152"r. c #61615E",
153"s. c #696861",
154"t. c #77756F",
155"u. c #7E7B77",
156"v. c #979690",
157"w. c #96938D",
158"x. c #807E77",
159"y. c #7D7A74",
160"z. c #787770",
161"A. c #716F6A",
162"B. c #6E6C67",
163"C. c #595753",
164"D. c #63615C",
165"E. c #686661",
166"F. c #6F6E68",
167"G. c #6D6C66",
168"H. c #72716B",
169"I. c #76746F",
170"J. c #6A6963",
171"K. c #8B8880",
172"L. c #B2AFA8",
173"M. c #B6B3AD",
174"N. c #BFBDB6",
175"O. c #BDBBB4",
176"P. c #B0AEA6",
177"Q. c #ABA8A2",
178"R. c #9C9991",
179" ",
180" . . . . . . . . . . . . ",
181" . + @ # # # # # # # $ % & . ",
182" . * = - - - ; > , , ' ) ! . ",
183" . # ~ { ] ^ / ( _ : > > < . ",
184" . [ } | 1 1 | 2 2 3 4 5 6 . ",
185" . [ 7 8 9 0 a b 4 c a d + . ",
186" . [ # # # # $ $ # # $ $ e . ",
187" . [ f g = h % h i j 3 # j . ",
188" . k l l l m l l , l 5 : n . ",
189" . . @ o ~ p q r s t p u q v . . ",
190" . w . x y z A z z i B b u u 9 . C . ",
191" . w D E F . . . . . . . . . . G C H I . ",
192" . w w J w w w w w w w w w w w w w w w w D . ",
193" . K L M N O N P Q R O O S T T U V D W X I . ",
194" . Y Z ` h .! ..! +.< @.#...$.%.&.*.=.-.;.. ",
195" . >.=.,.'.Q N @ ).N !.~.{.{.].].].^./.(.;.. ",
196" . _.:.<.[.}.|.1.2.2.2.3.4.5.6.4.7.8.9.0.a.. ",
197" . b.c.d.e.f.g.h.i.j.i.k.l.m.n.o.p.q.r.s.t.. ",
198" . u.v.w.;.x.y.z.t.A.t.A.B.C.D.E.F.G.H.I.J.. ",
199" . . . . . . . . . . . . . . . . . . . . ",
200" . K.L.M.N.N.N.N.N.O.P.L.Q.P.R.R.R.G G . ",
201" . . . . . . . . . . . . . . . . . . ",
202" "};
diff --git a/lisp/toolbar/right_arrow.pbm b/lisp/toolbar/right_arrow.pbm
index 583f2bd13fa..4be953e4b2e 100644
--- a/lisp/toolbar/right_arrow.pbm
+++ b/lisp/toolbar/right_arrow.pbm
Binary files differ
diff --git a/lisp/toolbar/right_arrow.xpm b/lisp/toolbar/right_arrow.xpm
index 9e0b14749a8..da8156879d6 100644
--- a/lisp/toolbar/right_arrow.xpm
+++ b/lisp/toolbar/right_arrow.xpm
@@ -1,35 +1,67 @@
1/* XPM */ 1/* XPM */
2static char * right_arrow_xpm[] = { 2static char * right_arrow_xpm[] = {
3"24 24 9 1", 3"24 24 41 1",
4" c None", 4" c None",
5". c #020202", 5". c #000000",
6"+ c #1A1A1A", 6"+ c #8CA782",
7"@ c #779D6D", 7"@ c #B1CDAE",
8"# c #88AE80", 8"# c #77A16E",
9"$ c #97B78B", 9"$ c #B4CEB1",
10"% c #9EBA92", 10"% c #ACC8A9",
11"& c #E9EFE8", 11"& c #709867",
12"* c #3C5936", 12"* c #C1D6BD",
13"= c #BDD3B8",
14"- c #BFD4BB",
15"; c #C2D7BE",
16"> c #B0CAAD",
17", c #B2CBB0",
18"' c #AAC7A8",
19") c #0F1308",
20"! c #AEC5A8",
21"~ c #AEC8AD",
22"{ c #ABC7A8",
23"] c #AAC6A7",
24"^ c #A8C6A5",
25"/ c #ADC8AD",
26"( c #A8C7A8",
27"_ c #A5C4A3",
28": c #7F9F76",
29"< c #A6BFA0",
30"[ c #ABC7AA",
31"} c #A7C5A4",
32"| c #A9C7A6",
33"1 c #AFC8AD",
34"2 c #A4C3A2",
35"3 c #6B9060",
36"4 c #778E6F",
37"5 c #698D60",
38"6 c #6B9063",
39"7 c #445B2C",
40"8 c #6B8661",
41"9 c #5B7950",
42"0 c #6C8562",
43"a c #65815C",
44"b c #506B46",
13" ", 45" ",
14" ", 46" ",
15" ", 47" ",
16" ", 48" . ",
17" ", 49" .. ",
18" .. ", 50" .+. ",
19" .&.. ", 51" .@#. ",
20" .&&&.. ", 52" ........$%&. ",
21" .&&&&&.. ", 53" .*=-;;;;>,'&) ",
22" .&&&&&&&.. ", 54" .!~{{{]^'/(_:. ",
23" .&&&&&&&&&+. ", 55" .<[^}^|{%'{123. ",
24" +&&&&&&&&&&%.. ", 56" .45666666666657. ",
25" .%#######@@*.. ", 57" .8999999999997. ",
26" .%#####@@*.. ", 58" .099999999997. ",
27" .%###@@*.. ", 59" .abbbbbb9997. ",
28" .$#@@*.. ", 60" ........b97. ",
29" .#@*.. ", 61" .b7. ",
30" .*.. ", 62" .7. ",
31" .. ", 63" .. ",
32" ", 64" . ",
33" ", 65" ",
34" ", 66" ",
35" ", 67" ",
diff --git a/lisp/toolbar/save.pbm b/lisp/toolbar/save.pbm
index e153a144432..7bbd296650c 100644
--- a/lisp/toolbar/save.pbm
+++ b/lisp/toolbar/save.pbm
Binary files differ
diff --git a/lisp/toolbar/save.xpm b/lisp/toolbar/save.xpm
index 8bdb36315be..cfa651dfaf3 100644
--- a/lisp/toolbar/save.xpm
+++ b/lisp/toolbar/save.xpm
@@ -1,35 +1,247 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * save_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 220 2",
4"24 24 5 1", 4" c None",
5" c #01be01be01be", 5". c #000000",
6". c #62dd62dd62dd", 6"+ c #C3D7F4",
7"X c Gray62", 7"@ c #A9CDE5",
8"o c #e625e625e625", 8"# c #75757A",
9"O c None", 9"$ c #EFC5BB",
10/* pixels */ 10"% c #F1C8BE",
11"OOOOOOOOOOOOOOOOOOOOOOOO", 11"& c #F0C6BC",
12"OOOOOOOOOOOOOOOOOOOOOOOO", 12"* c #EEBCB2",
13"OOOOOOOOOOOOOOOOOOOOOOOO", 13"= c #EEBEB5",
14"OOOOOOOOOOOOOOOOOOOOOOOO", 14"- c #EEC1B8",
15"OOOOOOOOOOOOO OOOOOOOOO", 15"; c #EDBFB6",
16"OOOOOOOOOOO X. OOOOOOOO", 16"> c #E9B7AD",
17"OOOOOOOOO oXoX OOOOOOOO", 17", c #E9B8AF",
18"OOOOOOO oXoooXX OOOOOOO", 18"' c #E9B9B1",
19"OOOOO oXoooooo. OOOOOOO", 19") c #E5BFBA",
20"OOO XoooooooooX OOOOOO", 20"! c #737277",
21"OO XooooooooooooX OOOOOO", 21"~ c #B3CDE3",
22"OO .XoooooooooooX. OOOOO", 22"{ c #A1BED6",
23"OOO XooooooooooXXX OOOOO", 23"] c #BBD6E8",
24"OOO .XoooooooXX..X. OOOO", 24"^ c #8AAAC5",
25"OOOO XoooooXX...X.X OOOO", 25"/ c #605F68",
26"OOOO .XooXX.Xoo.X.X. OOO", 26"( c #E08D7E",
27"OOOOO XXX.oooooX.X. OOO", 27"_ c #E0826E",
28"OOOOO .XXoo.ooooXX OOO", 28": c #E0806E",
29"OOOOOO XX.o XooX. OOOOO", 29"< c #DC7A68",
30"OOOOOO .XXooXoX OOOOOOO", 30"[ c #DC8171",
31"OOOOOOO .X.oX OOOOOOOOO", 31"} c #DA7868",
32"OOOOOOOO OOOOOOOOOOO", 32"| c #D48173",
33"OOOOOOOOOOOOOOOOOOOOOOOO", 33"1 c #D47D6E",
34"OOOOOOOOOOOOOOOOOOOOOOOO" 34"2 c #CE7265",
35}; 35"3 c #CF7264",
36"4 c #CE7567",
37"5 c #C4675B",
38"6 c #C36558",
39"7 c #626169",
40"8 c #87A3B7",
41"9 c #567187",
42"0 c #BAD5E9",
43"a c #88A7C3",
44"b c #686670",
45"c c #C8817B",
46"d c #CB7C74",
47"e c #CB7A73",
48"f c #CB7B73",
49"g c #CC7C72",
50"h c #CB7D73",
51"i c #BF6B64",
52"j c #CC7A70",
53"k c #C16A62",
54"l c #CC7C73",
55"m c #C2655B",
56"n c #C36459",
57"o c #BA6C6A",
58"p c #819EB6",
59"q c #547086",
60"r c #B6D3E7",
61"s c #87ABC1",
62"t c #737373",
63"u c #FFFFFF",
64"v c #83A0B8",
65"w c #526C80",
66"x c #B9D3E7",
67"y c #85A4BF",
68"z c #4F697C",
69"A c #B9D3E6",
70"B c #84A3BF",
71"C c #CECECE",
72"D c #CDCDCD",
73"E c #BFBFBF",
74"F c #88A4BB",
75"G c #486276",
76"H c #B7D2E7",
77"I c #82A0BB",
78"J c #636363",
79"K c #465E70",
80"L c #B5CAE5",
81"M c #7FA2B9",
82"N c #87A3BA",
83"O c #455C6D",
84"P c #AECCE5",
85"Q c #7DA0B6",
86"R c #C5C5C5",
87"S c #546069",
88"T c #B0D1E4",
89"U c #83A1B6",
90"V c #735B5B",
91"W c #515C64",
92"X c #AACEE3",
93"Y c #7B9BB2",
94"Z c #7A8E9A",
95"` c #7A7A7A",
96" . c #6B6F72",
97".. c #6F6F6F",
98"+. c #696969",
99"@. c #6F777E",
100"#. c #86A2B9",
101"$. c #3A515D",
102"%. c #A9C9E2",
103"&. c #7494AF",
104"*. c #829FB7",
105"=. c #7F9DB6",
106"-. c #7E9CB5",
107";. c #7998B2",
108">. c #85A1B8",
109",. c #8CA7BD",
110"'. c #8AA5BB",
111"). c #364A59",
112"!. c #ABC4E2",
113"~. c #7294AD",
114"{. c #6F90AC",
115"]. c #7192AE",
116"^. c #414A4E",
117"/. c #424A51",
118"(. c #525B63",
119"_. c #626F79",
120":. c #5F6C76",
121"<. c #5C6971",
122"[. c #5A666F",
123"}. c #58636B",
124"|. c #57636A",
125"1. c #3B5360",
126"2. c #39424B",
127"3. c #7897B3",
128"4. c #A4B9CB",
129"5. c #364853",
130"6. c #AAC9E2",
131"7. c #7091AA",
132"8. c #6F8FA7",
133"9. c #4A5359",
134"0. c #97938C",
135"a. c #DFDDDA",
136"b. c #E3E1DE",
137"c. c #EBEAE8",
138"d. c #EAE9E7",
139"e. c #CFCEC9",
140"f. c #C9C6C0",
141"g. c #9B968E",
142"h. c #566168",
143"i. c #4B657A",
144"j. c #54738C",
145"k. c #AAC6DD",
146"l. c #34464E",
147"m. c #AAC9E1",
148"n. c #6C8EA6",
149"o. c #6C8CA4",
150"p. c #40474D",
151"q. c #DAD8D3",
152"r. c #E7E6E2",
153"s. c #67655E",
154"t. c #524F47",
155"u. c #D9D7D4",
156"v. c #C7C5BF",
157"w. c #C0BCB5",
158"x. c #B8B3AB",
159"y. c #434C54",
160"z. c #4D697F",
161"A. c #4F6F84",
162"B. c #B3CADC",
163"C. c #313E49",
164"D. c #A8C8E1",
165"E. c #6B8DA6",
166"F. c #728FA4",
167"G. c #E2E1DD",
168"H. c #F0EFEC",
169"I. c #CDCAC6",
170"J. c #C2BFB9",
171"K. c #CAC6C0",
172"L. c #DCDAD7",
173"M. c #4B555D",
174"N. c #4E697F",
175"O. c #BACCDC",
176"P. c #A4C4DE",
177"Q. c #698BA3",
178"R. c #708AA1",
179"S. c #383E43",
180"T. c #E0DEDA",
181"U. c #514E46",
182"V. c #4F4C44",
183"W. c #C7C4BE",
184"X. c #CBC8C2",
185"Y. c #E1E0DC",
186"Z. c #E9E8E6",
187"`. c #475158",
188" + c #4E6879",
189".+ c #4D6C80",
190"++ c #A3C3DB",
191"@+ c #383F43",
192"#+ c #778999",
193"$+ c #6E899E",
194"%+ c #65859C",
195"&+ c #33383C",
196"*+ c #D7D4D0",
197"=+ c #D6D4D0",
198"-+ c #4E4A43",
199";+ c #4D4942",
200">+ c #D1CEC9",
201",+ c #E6E5E2",
202"'+ c #EDECEA",
203")+ c #454F55",
204"!+ c #486173",
205"~+ c #4D6678",
206"{+ c #A1C1DA",
207"]+ c #373C40",
208"^+ c #0C0D0F",
209"/+ c #4E5E6A",
210"(+ c #5B6E7C",
211"_+ c #4F5B62",
212":+ c #A4A099",
213"<+ c #CCC9C3",
214"[+ c #D7D5D1",
215"}+ c #E4E2E0",
216"|+ c #DDDBD7",
217"1+ c #B8B5B0",
218"2+ c #3E474D",
219"3+ c #4A6176",
220"4+ c #4A6070",
221"5+ c #9BC3D8",
222"6+ c #363C41",
223"7+ c #28323E",
224" ",
225" . . . . . . . . . . . . . . . . . . . ",
226" . + @ # $ % & * = - ; > , > , ' ) ! ~ { . ",
227" . ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 . ",
228" . 0 a b c d e f g h i j k l m n o b p q . ",
229" . r s t u u u u u u u u u u u u u t v w . ",
230" . x y t u u u u u u u u u u u u u t v z . ",
231" . A B t C D D D D D D D D D D D E t F G . ",
232" . H I J u u u u u u u u u u u u u t F K . ",
233" . L M t u u u u u u u u u u u u u t N O . ",
234" . P Q t C D D D D D D D D D D D R t N S . ",
235" . T U V u u u u u u u u u u u u u t v W . ",
236" . X Y Z ` t t t t t ...t t t t +.@.#.$.. ",
237" . %.&.p v #.*.=.-.*.;.#.>.>.N *.,.v '.).. ",
238" . !.~.{.].^./.(._.:.<.[.}.|.(.1.2.3.4.5.. ",
239" . 6.7.8.9.0.a.b.c.c.d.a.e.f.g.h.i.j.k.l.. ",
240" . m.n.o.p.q.r.s.t.t.u.v.w.x.e.y.z.A.B.C.. ",
241" . D.E.F.p.G.H.s.t.t.I.J.w.K.L.M.N.A.O.C.. ",
242" . P.Q.R.S.T.c.U.V.V.W.w.X.Y.Z.`. +.+++@+. ",
243" . #+$+%+&+*+=+-+;+;+w.>+,+'+,+)+!+~+{+]+. ",
244" ^+/+(+_+:+w.x.<+<+[+}+d.|+1+2+3+4+5+6+. ",
245" . . . . . . . . . . . . . . . . 7+. ",
246" ",
247" "};
diff --git a/lisp/toolbar/saveas.pbm b/lisp/toolbar/saveas.pbm
index 9a9022e058e..f888ea06f42 100644
--- a/lisp/toolbar/saveas.pbm
+++ b/lisp/toolbar/saveas.pbm
Binary files differ
diff --git a/lisp/toolbar/saveas.xpm b/lisp/toolbar/saveas.xpm
index 87d9174f67f..2830b06c928 100644
--- a/lisp/toolbar/saveas.xpm
+++ b/lisp/toolbar/saveas.xpm
@@ -1,35 +1,289 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * saveas_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 262 2",
4"24 24 5 1", 4" c None",
5" c #01be01be01be", 5". c #000000",
6". c #62dd62dd62dd", 6"+ c #FBE73B",
7"X c Gray62", 7"@ c #F2B64D",
8"o c #e625e625e625", 8"# c #FCEB3D",
9"O c None", 9"$ c #F7B544",
10/* pixels */ 10"% c #5D502C",
11"OOOOOOOOOOOOOOOOOOOOOOOO", 11"& c #C3D7F4",
12"OOOOOOOOOOOOOOOOOOOOOOOO", 12"* c #A9CDE5",
13"OOOOOOOOOOOOOOOOOOO OOOO", 13"= c #75757A",
14"OOOOOOOOOOOOOOOOOO X OOO", 14"- c #EFC5BB",
15"OOOOOOOOOOOOO OO X. OOO", 15"; c #F1C8BE",
16"OOOOOOOOOOO X. X. OOOO", 16"> c #F0C6BC",
17"OOOOOOOOO oXoX X. OOOOO", 17", c #EEBCB2",
18"OOOOOOO oXoOo X. OOOOOO", 18"' c #EEBEB5",
19"OOOOO oXoOoO X. OOOOOOO", 19") c #EEC1B8",
20"OOO XooOOoO X. OOOOOO", 20"! c #EDBFB6",
21"OO XooOoXoO X. oX OOOOOO", 21"~ c #E8B6AC",
22"OO .XooXoO X. OoX. OOOOO", 22"{ c #FCE93B",
23"OOO XooXOX. ooXXX OOOOO", 23"] c #F7B545",
24"OOO .XoOX ooXX..X. OOOO", 24"^ c #6C5F34",
25"OOOO XoOXooXX...X.X OOOO", 25"/ c #434345",
26"OOOO .XooXX.Xoo.X.X. OOO", 26"( c #92A7B9",
27"OOOOO XXX.oooooX.X. OOO", 27"_ c #96B1C7",
28"OOOOO .XXoo.ooooXX OOO", 28": c #BBD6E8",
29"OOOOOO XX.o XooX. OOOOO", 29"< c #8AAAC5",
30"OOOOOO .XXooXoX OOOOOOO", 30"[ c #605F68",
31"OOOOOOO .X.oX OOOOOOOOO", 31"} c #E08D7E",
32"OOOOOOOO OOOOOOOOOOO", 32"| c #E0826E",
33"OOOOOOOOOOOOOOOOOOOOOOOO", 33"1 c #E0806E",
34"OOOOOOOOOOOOOOOOOOOOOOOO" 34"2 c #DC7A68",
35}; 35"3 c #DC8171",
36"4 c #DA7868",
37"5 c #D38072",
38"6 c #FAE43A",
39"7 c #F4B244",
40"8 c #615030",
41"9 c #783E35",
42"0 c #4D4C52",
43"a c #7790A2",
44"b c #526D82",
45"c c #BAD5E9",
46"d c #88A7C3",
47"e c #686670",
48"f c #C8817B",
49"g c #CB7C74",
50"h c #CB7A73",
51"i c #CB7B73",
52"j c #CC7C72",
53"k c #CA7C72",
54"l c #F9DF39",
55"m c #F3AF42",
56"n c #614F2F",
57"o c #8F4941",
58"p c #945554",
59"q c #5B5A62",
60"r c #7B97AE",
61"s c #536F84",
62"t c #B6D3E7",
63"u c #87ABC1",
64"v c #737373",
65"w c #FFFFFF",
66"x c #FEFEFE",
67"y c #F9DC38",
68"z c #EFB44D",
69"A c #665A32",
70"B c #BBBBBB",
71"C c #CDCDCD",
72"D c #E4E4E4",
73"E c #6E6E6E",
74"F c #819EB6",
75"G c #526C80",
76"H c #B9D3E7",
77"I c #85A4BF",
78"J c #F8D837",
79"K c #F0A93F",
80"L c #655930",
81"M c #BABABA",
82"N c #CCCCCC",
83"O c #E5E5E5",
84"P c #F7F7F7",
85"Q c #727272",
86"R c #83A0B8",
87"S c #4F697C",
88"T c #B9D3E6",
89"U c #84A3BF",
90"V c #CECECE",
91"W c #F6D236",
92"X c #EDA43E",
93"Y c #5C5130",
94"Z c #949494",
95"` c #A3A3A3",
96" . c #B7B7B7",
97".. c #C6C6C6",
98"+. c #BDBDBD",
99"@. c #88A4BB",
100"#. c #486276",
101"$. c #B7D2E7",
102"%. c #82A0BB",
103"&. c #636363",
104"*. c #FDFDFD",
105"=. c #D7AE74",
106"-. c #61562F",
107";. c #465E70",
108">. c #B5CAE5",
109",. c #7FA2B9",
110"'. c #4F4115",
111"). c #87A3BA",
112"!. c #455C6D",
113"~. c #AECCE5",
114"{. c #7DA0B6",
115"]. c #CBCBCB",
116"^. c #9B9B9B",
117"/. c #9C9C9C",
118"(. c #A7A7A7",
119"_. c #B8B8B8",
120":. c #C5C5C5",
121"<. c #546069",
122"[. c #B0D1E4",
123"}. c #83A1B6",
124"|. c #735B5B",
125"1. c #F0F0F0",
126"2. c #D9D9D9",
127"3. c #D3D3D3",
128"4. c #E1E1E1",
129"5. c #EDEDED",
130"6. c #F8F8F8",
131"7. c #515C64",
132"8. c #AACEE3",
133"9. c #7B9BB2",
134"0. c #7A8E9A",
135"a. c #7A7A7A",
136"b. c #707070",
137"c. c #6C6C6C",
138"d. c #6F6F6F",
139"e. c #6A6E71",
140"f. c #696969",
141"g. c #6F777E",
142"h. c #86A2B9",
143"i. c #3A515D",
144"j. c #A9C9E2",
145"k. c #7494AF",
146"l. c #7E9BB4",
147"m. c #7D9AB3",
148"n. c #7998B2",
149"o. c #85A1B8",
150"p. c #829FB7",
151"q. c #8CA7BD",
152"r. c #8AA5BB",
153"s. c #364A59",
154"t. c #ABC4E2",
155"u. c #7294AD",
156"v. c #6F90AC",
157"w. c #7192AE",
158"x. c #414A4E",
159"y. c #424A51",
160"z. c #525B63",
161"A. c #626F79",
162"B. c #5F6C76",
163"C. c #5C6971",
164"D. c #5A666F",
165"E. c #58636B",
166"F. c #57636A",
167"G. c #3B5360",
168"H. c #39424B",
169"I. c #7897B3",
170"J. c #A4B9CB",
171"K. c #364853",
172"L. c #AAC9E2",
173"M. c #7091AA",
174"N. c #6F8FA7",
175"O. c #4A5359",
176"P. c #97938C",
177"Q. c #DFDDDA",
178"R. c #E3E1DE",
179"S. c #EBEAE8",
180"T. c #EAE9E7",
181"U. c #CFCEC9",
182"V. c #C9C6C0",
183"W. c #9B968E",
184"X. c #566168",
185"Y. c #4B657A",
186"Z. c #54738C",
187"`. c #AAC6DD",
188" + c #34464E",
189".+ c #AAC9E1",
190"++ c #6C8EA6",
191"@+ c #6C8CA4",
192"#+ c #40474D",
193"$+ c #DAD8D3",
194"%+ c #E7E6E2",
195"&+ c #67655E",
196"*+ c #524F47",
197"=+ c #D9D7D4",
198"-+ c #C7C5BF",
199";+ c #C0BCB5",
200">+ c #B8B3AB",
201",+ c #434C54",
202"'+ c #4D697F",
203")+ c #4F6F84",
204"!+ c #B3CADC",
205"~+ c #313E49",
206"{+ c #A8C8E1",
207"]+ c #6B8DA6",
208"^+ c #728FA4",
209"/+ c #E2E1DD",
210"(+ c #F0EFEC",
211"_+ c #CDCAC6",
212":+ c #C2BFB9",
213"<+ c #CAC6C0",
214"[+ c #DCDAD7",
215"}+ c #4B555D",
216"|+ c #4E697F",
217"1+ c #BACCDC",
218"2+ c #A4C4DE",
219"3+ c #698BA3",
220"4+ c #708AA1",
221"5+ c #383E43",
222"6+ c #E0DEDA",
223"7+ c #514E46",
224"8+ c #4F4C44",
225"9+ c #C7C4BE",
226"0+ c #CBC8C2",
227"a+ c #E1E0DC",
228"b+ c #E9E8E6",
229"c+ c #475158",
230"d+ c #4E6879",
231"e+ c #4D6C80",
232"f+ c #A3C3DB",
233"g+ c #383F43",
234"h+ c #778999",
235"i+ c #6E899E",
236"j+ c #65859C",
237"k+ c #33383C",
238"l+ c #D7D4D0",
239"m+ c #D6D4D0",
240"n+ c #4E4A43",
241"o+ c #4D4942",
242"p+ c #D1CEC9",
243"q+ c #E6E5E2",
244"r+ c #EDECEA",
245"s+ c #454F55",
246"t+ c #486173",
247"u+ c #4D6678",
248"v+ c #A1C1DA",
249"w+ c #373C40",
250"x+ c #0C0D0F",
251"y+ c #4E5E6A",
252"z+ c #5B6E7C",
253"A+ c #4F5B62",
254"B+ c #A4A099",
255"C+ c #CCC9C3",
256"D+ c #D7D5D1",
257"E+ c #E4E2E0",
258"F+ c #DDDBD7",
259"G+ c #B8B5B0",
260"H+ c #3E474D",
261"I+ c #4A6176",
262"J+ c #4A6070",
263"K+ c #9BC3D8",
264"L+ c #363C41",
265"M+ c #28323E",
266" . . ",
267" . + @ . ",
268" . . . . . . . . . . . . . # $ % . . . ",
269" . & * = - ; > , ' ) ! ~ . { ] ^ . / ( _ . ",
270" . : < [ } | 1 2 3 4 5 . 6 7 8 . 9 0 a b . ",
271" . c d e f g h i j k . l m n . o p q r s . ",
272" . t u v w w w w x . y z A . B C D E F G . ",
273" . H I v w w w x . J K L . M N O P Q R S . ",
274" . T U v V C N . W X Y . Z ` ...+.v @.#.. ",
275" . $.%.&.w w *.. =.-.. M N D P *.w v @.;.. ",
276" . >.,.v w x . '.. . M N D P *.w w v ).!.. ",
277" . ~.{.v V ].. . ^./.(._...].C C :.v ).<.. ",
278" . [.}.|.w *.1.2.3.4.5.6.x w w w w v R 7.. ",
279" . 8.9.0.a.Q b.c.c.d.e.E v v v v f.g.h.i.. ",
280" . j.k.F R h.F l.m.F n.h.o.o.).p.q.R r.s.. ",
281" . t.u.v.w.x.y.z.A.B.C.D.E.F.z.G.H.I.J.K.. ",
282" . L.M.N.O.P.Q.R.S.S.T.Q.U.V.W.X.Y.Z.`. +. ",
283" . .+++@+#+$+%+&+*+*+=+-+;+>+U.,+'+)+!+~+. ",
284" . {+]+^+#+/+(+&+*+*+_+:+;+<+[+}+|+)+1+~+. ",
285" . 2+3+4+5+6+S.7+8+8+9+;+0+a+b+c+d+e+f+g+. ",
286" . h+i+j+k+l+m+n+o+o+;+p+q+r+q+s+t+u+v+w+. ",
287" x+y+z+A+B+;+>+C+C+D+E+T.F+G+H+I+J+K+L+. ",
288" . . . . . . . . . . . . . . . . M+. ",
289" "};
diff --git a/lisp/toolbar/search.pbm b/lisp/toolbar/search.pbm
index 9336eea6874..9c1cf61a645 100644
--- a/lisp/toolbar/search.pbm
+++ b/lisp/toolbar/search.pbm
Binary files differ
diff --git a/lisp/toolbar/search.xpm b/lisp/toolbar/search.xpm
index ff8732201e4..ad6300528e9 100644
--- a/lisp/toolbar/search.xpm
+++ b/lisp/toolbar/search.xpm
@@ -1,38 +1,234 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * search_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 207 2",
4"24 24 8 1", 4" c None",
5" c #011801180102", 5". c #000000",
6". c #464646463e3e", 6"+ c #D3D3D3",
7"X c #5c5c5c5c57a0", 7"@ c #F6F6F6",
8"o c #878787877979", 8"# c #FFFFFF",
9"O c #a910a91097af", 9"$ c #F9F9F9",
10"+ c #ce5ace5ab851", 10"% c #DADADA",
11"@ c #e79de79dd134", 11"& c #585858",
12"# c None", 12"* c #C7C7C7",
13/* pixels */ 13"= c #D1D1D1",
14"########################", 14"- c #D6D6D6",
15"########################", 15"; c #FEFEFE",
16"############# ##########", 16"> c #FDFDFD",
17"########### O #########", 17", c #C0C0C0",
18"######### O@@.#########", 18"' c #E1E1E1",
19"####### O@@@@@ ########", 19") c #F0F0F0",
20"##### O+@@@@@@O #######", 20"! c #9B9B9B",
21"#### XX@++@@@@@@.#######", 21"~ c #FCFCFB",
22"#### @.O+@@@@@@@@ ######", 22"{ c #FBFBFB",
23"#### @@.++@@@@@@@O #####", 23"] c #AFAFAE",
24"#### @@.o+O. .+@@ #####", 24"^ c #E9E9E9",
25"#### @XO+O.O++o.+@@ ####", 25"/ c #DFDFDF",
26"#### O+@.O@@+Oo.@@+ ###", 26"( c #8F8F8F",
27"#### X@@@ +#+OOO @@@@ ##", 27"_ c #FAFAF9",
28"#### O@@@ +@OOOo @@@o ##", 28": c #F9F9F8",
29"##### @@@.oOOOoX.@@ ###", 29"< c #A4A4A3",
30"##### O@@O.oOOX @ #####", 30"[ c #F4F4F4",
31"######X@@@O. .X ######", 31"} c #CFCFCF",
32"###### @@@@@@@+ #####", 32"| c #A2A2A2",
33"####### @@@@@O ## ####", 33"1 c #B8B8B8",
34"####### O@@+. #### ###", 34"2 c #47473F",
35"######## @O ####### ###", 35"3 c #0A0A09",
36"######### #############", 36"4 c #4B4B43",
37"########################" 37"5 c #B4B4B3",
38}; 38"6 c #F7F6F5",
39"7 c #9E9E9E",
40"8 c #A9A9A8",
41"9 c #34342E",
42"0 c #9D9D8D",
43"a c #CFCFB9",
44"b c #C4C4AF",
45"c c #8D8D7F",
46"d c #353530",
47"e c #ACACAA",
48"f c #F1F0EF",
49"g c #DEDDDC",
50"h c #D3D2D0",
51"i c #B7B7B5",
52"j c #9F9E9D",
53"k c #706F6F",
54"l c #65625A",
55"m c #46463F",
56"n c #9C9C8C",
57"o c #E2E2D0",
58"p c #EDEDE7",
59"q c #C0C0AC",
60"r c #B2B29F",
61"s c #828274",
62"t c #4C4C44",
63"u c #E4E4E2",
64"v c #E1E1DF",
65"w c #DAD9D7",
66"x c #D8D8D6",
67"y c #CDCCCA",
68"z c #AFAEAC",
69"A c #88847B",
70"B c #F8F8F7",
71"C c #090908",
72"D c #D5D5BF",
73"E c #FBFBFA",
74"F c #C3C3AE",
75"G c #B5B5A2",
76"H c #A6A695",
77"I c #9C9C8F",
78"J c #080807",
79"K c #CFCFCD",
80"L c #E3E2E0",
81"M c #ECEBE9",
82"N c #E9E8E6",
83"O c #D5D4D3",
84"P c #C4C3C2",
85"Q c #8F8A81",
86"R c #F6F5F4",
87"S c #F3F3F1",
88"T c #090909",
89"U c #CACAB5",
90"V c #DDDDD0",
91"W c #B7B7A4",
92"X c #AAAA98",
93"Y c #9B9B8B",
94"Z c #AEAEA3",
95"` c #BBBAB9",
96" . c #E8E7E5",
97".. c #E5E4E2",
98"+. c #E4E3E0",
99"@. c #D2D1CE",
100"#. c #8D887E",
101"$. c #F4F3F2",
102"%. c #F0EFEE",
103"&. c #474740",
104"*. c #929283",
105"=. c #BABAA7",
106"-. c #ADAD9B",
107";. c #9F9F8E",
108">. c #ACACA1",
109",. c #CFCFCB",
110"'. c #4C4C45",
111"). c #B3B2B1",
112"!. c #E2E1DE",
113"~. c #E1DFDC",
114"{. c #979288",
115"]. c #949493",
116"^. c #34342F",
117"/. c #878779",
118"(. c #A0A090",
119"_. c #AEAEA2",
120":. c #C3C3BE",
121"<. c #010101",
122"[. c #B1B0AF",
123"}. c #D2D1CF",
124"|. c #A49E93",
125"1. c #F0F0EE",
126"2. c #EDEDEB",
127"3. c #DDDDDB",
128"4. c #898988",
129"5. c #414141",
130"6. c #737271",
131"7. c #A4A3A1",
132"8. c #DFDEDB",
133"9. c #E2E0DD",
134"0. c #E1E0DC",
135"a. c #E0DFDB",
136"b. c #A19C90",
137"c. c #E1E0DE",
138"d. c #CBCAC9",
139"e. c #B2B1B0",
140"f. c #A3A2A1",
141"g. c #9D9C9A",
142"h. c #9E9D9C",
143"i. c #9F9F9D",
144"j. c #ABAAA7",
145"k. c #DCDBD7",
146"l. c #DEDDD9",
147"m. c #DDDCD8",
148"n. c #A19B90",
149"o. c #EBEAE8",
150"p. c #E6E5E3",
151"q. c #C8C7C4",
152"r. c #B6B6B3",
153"s. c #B0AFAD",
154"t. c #B3B2B0",
155"u. c #747371",
156"v. c #9D9C99",
157"w. c #DAD9D5",
158"x. c #E7E6E3",
159"y. c #E6E5E2",
160"z. c #E3E2DF",
161"A. c #DBDAD7",
162"B. c #D4D3D0",
163"C. c #D0CFCB",
164"D. c #D1CFCC",
165"E. c #D1D0CC",
166"F. c #C9C8C4",
167"G. c #6B6B69",
168"H. c #CECDC9",
169"I. c #D6D4D0",
170"J. c #9F998D",
171"K. c #E3E2DE",
172"L. c #E4E2DF",
173"M. c #DFDEDA",
174"N. c #D5D4D0",
175"O. c #C0BFBC",
176"P. c #7B7A78",
177"Q. c #BCBAB6",
178"R. c #CECCC8",
179"S. c #9D978C",
180"T. c #EDEDED",
181"U. c #E1E0DD",
182"V. c #E2E1DD",
183"W. c #DBDAD6",
184"X. c #BBB9B6",
185"Y. c #A6A4A1",
186"Z. c #9E9C99",
187"`. c #ACABA7",
188" + c #C7C5C2",
189".+ c #9B9589",
190"++ c #E1DFDB",
191"@+ c #E0DEDA",
192"#+ c #DEDCD8",
193"$+ c #DAD8D4",
194"%+ c #BDBCB8",
195"&+ c #ACABA8",
196"*+ c #B2B1AD",
197"=+ c #C6C4C0",
198"-+ c #999388",
199";+ c #999891",
200">+ c #A39E92",
201",+ c #A39D92",
202"'+ c #A39D91",
203")+ c #A29C90",
204"!+ c #A19B8F",
205"~+ c #9D978B",
206"{+ c #989286",
207"]+ c #918C82",
208"^+ c #938D83",
209"/+ c #979286",
210"(+ c #666258",
211" ",
212" . . . . . . . . . . . . . ",
213" . + @ # # # # # # # # $ % & . ",
214" . @ # # # # # # # # # # * = - . ",
215" . # # # # # # # ; # ; > , ' ) ! . ",
216" . # # # # # ; > ~ > ~ { ] ^ # / ( . ",
217" . # # # ; > ~ { _ { _ : < ) # [ } | . ",
218" . # ; > ~ 1 2 3 3 4 5 6 7 . . . . . . . ",
219" . # ~ { 8 9 0 a b c d e f g h i j k l . ",
220" . # _ : m n o p q r s t u v w x y z A . ",
221" . # B 6 C D E F G H I J K L M N O P Q . ",
222" . # R S T U V W X Y Z 3 ` w ...+.@.#.. ",
223" . # $.%.&.*.=.-.;.>.,.'.).h !.+.!.~.{.. ",
224" . # $.%.].^./.(._.:.<.<.[.}.!.+.!.~.|.. ",
225" . # 1.2.3.4.4 3 3 5.6.<.<.7.8.9.0.a.b.. ",
226" . # 2.M c.d.e.f.g.h.i.<.<.<.j.k.l.m.n.. ",
227" . # o.N p.w q.r.z s.t.u.. <.<.v.w.k.n.. ",
228" . # x.y.y.z.A.B.C.D.E.F.G.<.<.<.H.I.J.. ",
229" . $ +.z.K.L.K.a.a.M.M.N.O.P.<.<.Q.R.S.. ",
230" . T.U.~.0.a.V.a.0.a.0.W.E.X.Y.Z.`. +.+. ",
231" . = ++@+M.l.a.l.@+l.@+#+$+R.%+&+*+=+-+. ",
232" . ;+>+|.,+'+,+b.)+b.)+!+n.~+{+]+^+/+(+. ",
233" . . . . . . . . . . . . . . . . . . ",
234" "};
diff --git a/lisp/toolbar/spell.pbm b/lisp/toolbar/spell.pbm
index c641babe8ed..6532f0176d4 100644
--- a/lisp/toolbar/spell.pbm
+++ b/lisp/toolbar/spell.pbm
Binary files differ
diff --git a/lisp/toolbar/spell.xpm b/lisp/toolbar/spell.xpm
index a2c2282b48b..b53f4510602 100644
--- a/lisp/toolbar/spell.xpm
+++ b/lisp/toolbar/spell.xpm
@@ -1,35 +1,64 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * spell_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 37 1",
4"24 24 5 1", 4" c None",
5" c Gray0", 5". c #000000",
6". c #41415b5b3939", 6"+ c #8BBB8C",
7"X c #4c2f6b4e42d1", 7"@ c #ABD0AC",
8"o c #5fe086865454", 8"# c #1A3B1A",
9"O c None", 9"$ c #8ABA88",
10/* pixels */ 10"% c #B4D5B4",
11"OOOOOOOOOOOOOOOOOOOOOOOO", 11"& c #70A770",
12"OOOOOOOOOOOOOOOOOOOOOOOO", 12"* c #132C13",
13"OOOOOOOOOOOOOOOOOOOOOOOO", 13"= c #77A676",
14"OOOOOOOOOOOOOOOOOOOOOOOO", 14"- c #2D2D2D",
15"OOOO OO OOO OOOOOOOO", 15"; c #CBDFCB",
16"OOO OO O OO O OO OOOOOOO", 16"> c #6FAE6E",
17"OOO O OO OOOOOOOOOO", 17", c #A8CBA6",
18"OOO OO O OO O OO OOOOOOO", 18"' c #6D9D6C",
19"OOO OO O OOO OOOO OO", 19") c #D0E4D0",
20"OOOOOOOOOOOOOOOOOOO OOO", 20"! c #6FAF6F",
21"OOOOOOOOOOO OOOOO OOOO", 21"~ c #587055",
22"OOOOOOOOOOO X OOO . OOOO", 22"{ c #B8D6B8",
23"OOOOOOOOOOOO X O X OOOOO", 23"] c #5B9159",
24"OOOOOOOOOOOO Xo o. OOOOO", 24"^ c #D4E4D4",
25"OOOOOOOOOOOOO XoX OOOOOO", 25"/ c #67AF67",
26"OOOOOOOOOOOOO Xo. OOOOOO", 26"( c #5D905B",
27"OOOOOOOOOOOOOO X OOOOOOO", 27"_ c #9FC59D",
28"OOOOOOOOOOOOOO X OOOOOOO", 28": c #93BE92",
29"OOOOOOOOOOOOOOO OOOOOOOO", 29"< c #B5D1B5",
30"OOOOOOOOOOOOOOOOOOOOOOOO", 30"[ c #67AF68",
31"OOOOOOOOOOOOOOOOOOOOOOOO", 31"} c #63A261",
32"OOOOOOOOOOOOOOOOOOOOOOOO", 32"| c #BBD6BA",
33"OOOOOOOOOOOOOOOOOOOOOOOO", 33"1 c #82B881",
34"OOOOOOOOOOOOOOOOOOOOOOOO" 34"2 c #75AF74",
35}; 35"3 c #6B8868",
36"4 c #9DC39D",
37"5 c #7DB17B",
38"6 c #6BA368",
39"7 c #485C46",
40"8 c #89BA88",
41" ",
42" ",
43" ",
44" ",
45" ... .... ... ",
46" .. . .. . .. . ",
47" .. . .... .. ",
48" ..... .. . .. ",
49" .. . .. . .. . . ",
50" .. . .... ... ... ",
51" .+. ",
52" .. .@# ",
53" .$. .%&. ",
54" *=. -;>. ",
55" .,'. .)!~. ",
56" .{].^/(. ",
57" ._:<[}~. ",
58" .|123. ",
59" .4567. ",
60" .83. ",
61" .37. ",
62" .. ",
63" ",
64" "};
diff --git a/lisp/toolbar/undo.pbm b/lisp/toolbar/undo.pbm
index 5bed67caa40..7a7f2709b48 100644
--- a/lisp/toolbar/undo.pbm
+++ b/lisp/toolbar/undo.pbm
Binary files differ
diff --git a/lisp/toolbar/undo.xpm b/lisp/toolbar/undo.xpm
index c48b0fdae6f..ca5bd760937 100644
--- a/lisp/toolbar/undo.xpm
+++ b/lisp/toolbar/undo.xpm
@@ -1,35 +1,58 @@
1/* XPM */ 1/* XPM */
2static char *magick[] = { 2static char * undo_xpm[] = {
3/* columns rows colors chars-per-pixel */ 3"24 24 31 1",
4"24 24 5 1", 4" c None",
5" c Gray0", 5". c #000000",
6". c #ae6e66e76a0a", 6"+ c #EFE5BA",
7"X c #c6c67d7d8181", 7"@ c #EFE7C1",
8"o c #e4e4e4e4dcdc", 8"# c #EED680",
9"O c None", 9"$ c #EFE4B6",
10/* pixels */ 10"% c #D5B75D",
11"OOOOOOOOOOOOOOOOOOOOOOOO", 11"& c #B29544",
12"OOOOOOOOOOOOOOOOOOOOOOOO", 12"* c #D1B051",
13"OOOOOOOOOOOOOOOOOOOOOOOO", 13"= c #C0AF73",
14"OOOOOOOOOOOOOOOOOOOOOOOO", 14"- c #C0A048",
15"OOOOOOOOOOOOOOOOOOOOOOOO", 15"; c #986B07",
16"OOOOOOOOOOOOOOOOOOOOOOOO", 16"> c #D1940C",
17"OOOOOOOOO OOOOOOOOOOOOOO", 17", c #E0B74C",
18"OOOOOOOO OOOOOOOOOOOOOO", 18"' c #D9C374",
19"OOOOOOO oX OOOOOOOOOOO", 19") c #8F6406",
20"OOOOOO ooooX. OOOOOOOOO", 20"! c #D59D1C",
21"OOOOOOO oo .. OOOOOOOO", 21"~ c #B1933F",
22"OOOOOOOO OOO . OOOOOOOO", 22"{ c #DFB74A",
23"OOOOOOOOO OOOO . OOOOOOO", 23"] c #CCB76D",
24"OOOOOOOOOOOOOOO OOOOOOO", 24"^ c #B8820A",
25"OOOOOOOOOOOOOOO OOOOOOO", 25"/ c #D9A72E",
26"OOOOOOOOOOOOOOO OOOOOOOO", 26"( c #D7A62C",
27"OOOOOOOOOOOOOO OOOOOOOOO", 27"_ c #C7B26A",
28"OOOOOOOOOOOOOOOOOOOOOOOO", 28": c #D4B150",
29"OOOOOOOOOOOOOOOOOOOOOOOO", 29"< c #A39256",
30"OOOOOOOOOOOOOOOOOOOOOOOO", 30"[ c #E2CB79",
31"OOOOOOOOOOOOOOOOOOOOOOOO", 31"} c #C9B46B",
32"OOOOOOOOOOOOOOOOOOOOOOOO", 32"| c #8D7E4A",
33"OOOOOOOOOOOOOOOOOOOOOOOO", 33"1 c #AE9C5C",
34"OOOOOOOOOOOOOOOOOOOOOOOO" 34"2 c #96864F",
35}; 35" ",
36" ",
37" ",
38" . ",
39" .. ",
40" .+. ",
41" .@#.... ",
42" .$####%&. ",
43" .+#######*. ",
44" .=#########-. ",
45" .;>>>>>>,#'.. ",
46" .)>>>>>>!#~. ",
47" .)>...;>{]. ",
48" .;. ..^/#. ",
49" .. ..>#. ",
50" . .(_. ",
51" .:<. ",
52" .[. ",
53" .}|. ",
54" .12. ",
55" .. ",
56" ",
57" ",
58" "};
diff --git a/lisp/toolbar/up_arrow.pbm b/lisp/toolbar/up_arrow.pbm
index ca7e04f7a50..8b63dd75c70 100644
--- a/lisp/toolbar/up_arrow.pbm
+++ b/lisp/toolbar/up_arrow.pbm
Binary files differ
diff --git a/lisp/toolbar/up_arrow.xpm b/lisp/toolbar/up_arrow.xpm
index 44243cfe7f6..09963557d1b 100644
--- a/lisp/toolbar/up_arrow.xpm
+++ b/lisp/toolbar/up_arrow.xpm
@@ -1,33 +1,91 @@
1/* XPM */ 1/* XPM */
2static char * up_arrow_xpm[] = { 2static char * up_arrow_xpm[] = {
3"24 24 9 1", 3"24 24 67 1",
4" c None", 4" c None",
5". c #020202", 5". c #000000",
6"+ c #121A12", 6"+ c #2F2F2F",
7"@ c #78A16E", 7"@ c #A5B4A4",
8"# c #86AD7D", 8"# c #E8F4E6",
9"$ c #B2C6AE", 9"$ c #96B892",
10"% c #263222", 10"% c #41533C",
11"& c #E7EDE6", 11"& c #F1FFF0",
12"* c #497241", 12"* c #B8D6B7",
13"= c #9FC49D",
14"- c #66815E",
15"; c #B6D4B5",
16"> c #B9D7B8",
17", c #A1C69F",
18"' c #68835F",
19") c #637D5B",
20"! c #3F5239",
21"~ c #B8D7B7",
22"{ c #A2C7A0",
23"] c #6A8561",
24"^ c #657F5C",
25"/ c #617959",
26"( c #3E4F39",
27"_ c #F0FEEF",
28": c #B7D5B6",
29"< c #657E5C",
30"[ c #5D7555",
31"} c #D6EAD6",
32"| c #BFD4BF",
33"1 c #C0D5C0",
34"2 c #637C5B",
35"3 c #4D6246",
36"4 c #4C6046",
37"5 c #C7E1C6",
38"6 c #A1C69E",
39"7 c #67815E",
40"8 c #627B59",
41"9 c #3D4E39",
42"0 c #D0E7D0",
43"a c #B5D3B4",
44"b c #A0C39D",
45"c c #607958",
46"d c #B5D2B4",
47"e c #9DC19B",
48"f c #647D5B",
49"g c #607858",
50"h c #C6E0C5",
51"i c #B4D2B3",
52"j c #9CBF99",
53"k c #C5DFC4",
54"l c #B1CEB0",
55"m c #99BC97",
56"n c #617A59",
57"o c #5E7756",
58"p c #C0D9BF",
59"q c #AFCCAE",
60"r c #AECBAD",
61"s c #93B690",
62"t c #607857",
63"u c #5E7656",
64"v c #8DB389",
65"w c #748A72",
66"x c #71916E",
67"y c #5A7257",
68"z c #4D6247",
69"A c #4D6146",
70"B c #43543D",
13" ", 71" ",
14" ", 72" ",
15" ", 73" . ",
16" ", 74" +@. ",
17" .. ", 75" .#$%. ",
18" .. ", 76" .&*=-%. ",
19" .$*. ", 77" .&;>,')!. ",
20" +&*. ", 78" .&~;>{]^/(. ",
21" .&&@*. ", 79" ._~>:>,]</[(. ",
22" .&&@*. ", 80" .}|1>~~,'23444. ",
23" .&&&@@*. ", 81" .....5;;6789..... ",
24" .&&&##*. ", 82" .0;ab^c9. ",
25" .&&&&#@@*. ", 83" .5;defg9. ",
26" .&&&&###*. ", 84" .haij2g9. ",
27" .&&&&&##@@*. ", 85" .kilmno9. ",
28" .&&&&&###@@. ", 86" .pqrstu9. ",
29" .$$$$$$@@@@**. ", 87" .vwxyzAB. ",
30" ......%....... ", 88" ......... ",
31" ", 89" ",
32" ", 90" ",
33" ", 91" ",
diff --git a/lisp/tree-widget.el b/lisp/tree-widget.el
new file mode 100644
index 00000000000..54323e41dd3
--- /dev/null
+++ b/lisp/tree-widget.el
@@ -0,0 +1,736 @@
1;;; tree-widget.el --- Tree widget
2
3;; Copyright (C) 2004 Free Software Foundation, Inc.
4
5;; Author: David Ponce <david@dponce.com>
6;; Maintainer: David Ponce <david@dponce.com>
7;; Created: 16 Feb 2001
8;; Keywords: extensions
9
10;; This file is part of GNU Emacs
11
12;; This program is free software; you can redistribute it and/or
13;; modify it under the terms of the GNU General Public License as
14;; published by the Free Software Foundation; either version 2, or (at
15;; your option) any later version.
16
17;; This program is distributed in the hope that it will be useful, but
18;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20;; General Public License for more details.
21
22;; You should have received a copy of the GNU General Public License
23;; along with this program; see the file COPYING. If not, write to
24;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
25;; Boston, MA 02111-1307, USA.
26
27;;; Commentary:
28;;
29;; This library provide a tree widget useful to display data
30;; structures organized in a hierarchical order.
31;;
32;; The following properties are specific to the tree widget:
33;;
34;; :open
35;; Set to non-nil to unfold the tree. By default the tree is
36;; folded.
37;;
38;; :node
39;; Specify the widget used to represent a tree node. By default
40;; this is an `item' widget which displays the tree-widget :tag
41;; property value if defined or a string representation of the
42;; tree-widget value.
43;;
44;; :keep
45;; Specify a list of properties to keep when the tree is
46;; folded so they can be recovered when the tree is unfolded.
47;; This property can be used in child widgets too.
48;;
49;; :dynargs
50;; Specify a function to be called when the tree is unfolded, to
51;; dynamically provide the tree children in response to an unfold
52;; request. This function will be passed the tree widget and
53;; must return a list of child widgets. That list will be stored
54;; as the :args property of the parent tree.
55
56;; To speed up successive unfold requests, the :dynargs function
57;; can directly return the :args value if non-nil. Refreshing
58;; child values can be achieved by giving the :args property the
59;; value nil, then redrawing the tree.
60;;
61;; :has-children
62;; Specify if this tree has children. This property has meaning
63;; only when used with the above :dynargs one. It indicates that
64;; child widgets exist but will be dynamically provided when
65;; unfolding the node.
66;;
67;; :open-control (default `tree-widget-open-control')
68;; :close-control (default `tree-widget-close-control')
69;; :empty-control (default `tree-widget-empty-control')
70;; :leaf-control (default `tree-widget-leaf-control')
71;; :guide (default `tree-widget-guide')
72;; :end-guide (default `tree-widget-end-guide')
73;; :no-guide (default `tree-widget-no-guide')
74;; :handle (default `tree-widget-handle')
75;; :no-handle (default `tree-widget-no-handle')
76;;
77;; The above nine properties define the widgets used to draw the tree.
78;; For example, using widgets that display this values:
79;;
80;; open-control "[-] "
81;; close-control "[+] "
82;; empty-control "[X] "
83;; leaf-control "[>] "
84;; guide " |"
85;; noguide " "
86;; end-guide " `"
87;; handle "-"
88;; no-handle " "
89;;
90;; A tree will look like this:
91;;
92;; [-] 1 open-control
93;; |-[+] 1.0 guide+handle+close-control
94;; |-[X] 1.1 guide+handle+empty-control
95;; `-[-] 1.2 end-guide+handle+open-control
96;; |-[>] 1.2.1 no-guide+no-handle+guide+handle+leaf-control
97;; `-[>] 1.2.2 no-guide+no-handle+end-guide+handle+leaf-control
98;;
99;; By default, the tree widget try to use images instead of strings to
100;; draw a nice-looking tree. See the `tree-widget-themes-directory'
101;; and `tree-widget-theme' options for more details.
102;;
103
104;;; History:
105;;
106
107;;; Code:
108(eval-when-compile (require 'cl))
109(require 'wid-edit)
110
111;;; Customization
112;;
113(defgroup tree-widget nil
114 "Customization support for the Tree Widget Library."
115 :version "21.4"
116 :group 'widgets)
117
118(defcustom tree-widget-image-enable
119 (not (or (featurep 'xemacs) (< emacs-major-version 21)))
120 "*non-nil means that tree-widget will try to use images."
121 :type 'boolean
122 :group 'tree-widget)
123
124(defcustom tree-widget-themes-directory "tree-widget"
125 "*Name of the directory where to lookup for image themes.
126When nil use the directory where the tree-widget library is located.
127When a relative name is specified, try to locate that sub-directory in
128`load-path', then in the data directory, and use the first one found.
129Default is to search for a \"tree-widget\" sub-directory.
130
131The data directory is the value of:
132 - the variable `data-directory' on GNU Emacs;
133 - `(locate-data-directory \"tree-widget\")' on XEmacs."
134 :type '(choice (const :tag "Default" "tree-widget")
135 (const :tag "With the library" nil)
136 (directory :format "%{%t%}:\n%v"))
137 :group 'tree-widget)
138
139(defcustom tree-widget-theme nil
140 "*Name of the theme to use to lookup for images.
141The theme name must be a subdirectory in `tree-widget-themes-directory'.
142If nil use the \"default\" theme.
143When a image is not found in the current theme, the \"default\" theme
144is searched too.
145A complete theme should contain images with these file names:
146
147Name Represents
148----------- ------------------------------------------------
149open opened node (for example an open folder)
150close closed node (for example a close folder)
151empty empty node (a node without children)
152leaf leaf node (for example a document)
153guide a vertical guide line
154no-guide an invisible guide line
155end-guide the end of a vertical guide line
156handle an horizontal line drawn before a node control
157no-handle an invisible handle
158----------- ------------------------------------------------"
159 :type '(choice (const :tag "Default" nil)
160 (string :tag "Name"))
161 :group 'tree-widget)
162
163(defcustom tree-widget-image-properties-emacs
164 '(:ascent center :mask (heuristic t))
165 "*Properties of GNU Emacs images."
166 :type 'plist
167 :group 'tree-widget)
168
169(defcustom tree-widget-image-properties-xemacs
170 nil
171 "*Properties of XEmacs images."
172 :type 'plist
173 :group 'tree-widget)
174
175;;; Image support
176;;
177(eval-when-compile ;; GNU Emacs/XEmacs compatibility stuff
178 (cond
179 ;; XEmacs
180 ((featurep 'xemacs)
181 (defsubst tree-widget-use-image-p ()
182 "Return non-nil if image support is currently enabled."
183 (and tree-widget-image-enable
184 widget-glyph-enable
185 (console-on-window-system-p)))
186 (defsubst tree-widget-create-image (type file &optional props)
187 "Create an image of type TYPE from FILE.
188Give the image the specified properties PROPS.
189Return the new image."
190 (apply 'make-glyph `([,type :file ,file ,@props])))
191 (defsubst tree-widget-image-formats ()
192 "Return the list of image formats, file name suffixes associations.
193See also the option `widget-image-file-name-suffixes'."
194 (delq nil
195 (mapcar
196 #'(lambda (fmt)
197 (and (valid-image-instantiator-format-p (car fmt)) fmt))
198 widget-image-file-name-suffixes)))
199 )
200 ;; GNU Emacs
201 (t
202 (defsubst tree-widget-use-image-p ()
203 "Return non-nil if image support is currently enabled."
204 (and tree-widget-image-enable
205 widget-image-enable
206 (display-images-p)))
207 (defsubst tree-widget-create-image (type file &optional props)
208 "Create an image of type TYPE from FILE.
209Give the image the specified properties PROPS.
210Return the new image."
211 (apply 'create-image `(,file ,type nil ,@props)))
212 (defsubst tree-widget-image-formats ()
213 "Return the list of image formats, file name suffixes associations.
214See also the option `widget-image-conversion'."
215 (delq nil
216 (mapcar
217 #'(lambda (fmt)
218 (and (image-type-available-p (car fmt)) fmt))
219 widget-image-conversion)))
220 ))
221 )
222
223;; Buffer local cache of theme data.
224(defvar tree-widget--theme nil)
225
226(defsubst tree-widget-theme-name ()
227 "Return the current theme name, or nil if no theme is active."
228 (and tree-widget--theme (aref tree-widget--theme 0)))
229
230(defsubst tree-widget-set-theme (&optional name)
231 "In the current buffer, set the theme to use for images.
232The current buffer should be where the tree widget is drawn.
233Optional argument NAME is the name of the theme to use, which defaults
234to the value of the variable `tree-widget-theme'.
235Does nothing if NAME is the name of the current theme."
236 (or name (setq name (or tree-widget-theme "default")))
237 (unless (equal name (tree-widget-theme-name))
238 (set (make-local-variable 'tree-widget--theme)
239 (make-vector 4 nil))
240 (aset tree-widget--theme 0 name)))
241
242(defun tree-widget-themes-directory ()
243 "Locate the directory where to search for a theme.
244It is defined in variable `tree-widget-themes-directory'.
245Return the absolute name of the directory found, or nil if the
246specified directory is not accessible."
247 (let ((found (aref tree-widget--theme 1)))
248 (if found
249 ;; The directory is available in the cache.
250 (unless (eq found 'void) found)
251 (cond
252 ;; Use the directory where tree-widget is located.
253 ((null tree-widget-themes-directory)
254 (setq found (locate-library "tree-widget"))
255 (when found
256 (setq found (file-name-directory found))
257 (or (file-accessible-directory-p found)
258 (setq found nil))))
259 ;; Check accessibility of absolute directory name.
260 ((file-name-absolute-p tree-widget-themes-directory)
261 (setq found (expand-file-name tree-widget-themes-directory))
262 (or (file-accessible-directory-p found)
263 (setq found nil)))
264 ;; Locate a sub-directory in `load-path' and data directory.
265 (t
266 (let ((path
267 (append load-path
268 ;; The data directory depends on which, GNU
269 ;; Emacs or XEmacs, is running.
270 (list (if (fboundp 'locate-data-directory)
271 (locate-data-directory "tree-widget")
272 data-directory)))))
273 (while (and path (not found))
274 (when (car path)
275 (setq found (expand-file-name
276 tree-widget-themes-directory (car path)))
277 (or (file-accessible-directory-p found)
278 (setq found nil)))
279 (setq path (cdr path))))))
280 ;; Store the result in the cache for later use.
281 (aset tree-widget--theme 1 (or found 'void))
282 found)))
283
284(defsubst tree-widget-set-image-properties (props)
285 "In current theme, set images properties to PROPS."
286 (aset tree-widget--theme 2 props))
287
288(defun tree-widget-image-properties (file)
289 "Return properties of images in current theme.
290If the \"tree-widget-theme-setup.el\" file exists in the directory
291where is located the image FILE, load it to setup theme images
292properties. Typically that file should contain something like this:
293
294 (tree-widget-set-image-properties
295 (if (featurep 'xemacs)
296 '(:ascent center)
297 '(:ascent center :mask (heuristic t))
298 ))
299
300By default, use the global properties provided in variables
301`tree-widget-image-properties-emacs' or
302`tree-widget-image-properties-xemacs'."
303 ;; If properties are in the cache, use them.
304 (or (aref tree-widget--theme 2)
305 (progn
306 ;; Load tree-widget-theme-setup if available.
307 (load (expand-file-name
308 "tree-widget-theme-setup"
309 (file-name-directory file)) t t)
310 ;; If properties have been setup, use them.
311 (or (aref tree-widget--theme 2)
312 ;; By default, use supplied global properties.
313 (tree-widget-set-image-properties
314 (if (featurep 'xemacs)
315 tree-widget-image-properties-xemacs
316 tree-widget-image-properties-emacs))))))
317
318(defun tree-widget-find-image (name)
319 "Find the image with NAME in current theme.
320NAME is an image file name sans extension.
321Search first in current theme, then in default theme.
322A theme is a sub-directory of the root theme directory specified in
323variable `tree-widget-themes-directory'.
324Return the first image found having a supported format in those
325returned by the function `tree-widget-image-formats', or nil if not
326found."
327 (when (tree-widget-use-image-p)
328 ;; Ensure there is an active theme.
329 (tree-widget-set-theme (tree-widget-theme-name))
330 ;; If the image is in the cache, return it.
331 (or (cdr (assoc name (aref tree-widget--theme 3)))
332 ;; Search the image in the current, then default themes.
333 (let ((default-directory (tree-widget-themes-directory)))
334 (when default-directory
335 (let* ((theme (tree-widget-theme-name))
336 (path (mapcar 'expand-file-name
337 (if (equal theme "default")
338 '("default")
339 (list theme "default"))))
340 (formats (tree-widget-image-formats))
341 (found
342 (catch 'found
343 (dolist (dir path)
344 (dolist (fmt formats)
345 (dolist (ext (cdr fmt))
346 (let ((file (expand-file-name
347 (concat name ext) dir)))
348 (and (file-readable-p file)
349 (file-regular-p file)
350 (throw 'found
351 (cons (car fmt) file)))))))
352 nil)))
353 (when found
354 (let ((image
355 (tree-widget-create-image
356 (car found) (cdr found)
357 (tree-widget-image-properties (cdr found)))))
358 ;; Store image in the cache for later use.
359 (push (cons name image) (aref tree-widget--theme 3))
360 image))))))))
361
362;;; Widgets
363;;
364(defvar tree-widget-button-keymap
365 (let (parent-keymap mouse-button1 keymap)
366 (if (featurep 'xemacs)
367 (setq parent-keymap widget-button-keymap
368 mouse-button1 [button1])
369 (setq parent-keymap widget-keymap
370 mouse-button1 [down-mouse-1]))
371 (setq keymap (copy-keymap parent-keymap))
372 (define-key keymap mouse-button1 'widget-button-click)
373 keymap)
374 "Keymap used inside node handle buttons.")
375
376(define-widget 'tree-widget-control 'push-button
377 "Base `tree-widget' control."
378 :format "%[%t%]"
379 :button-keymap tree-widget-button-keymap ; XEmacs
380 :keymap tree-widget-button-keymap ; Emacs
381 )
382
383(define-widget 'tree-widget-open-control 'tree-widget-control
384 "Control widget that represents a opened `tree-widget' node."
385 :tag "[-] "
386 ;;:tag-glyph (tree-widget-find-image "open")
387 :notify 'tree-widget-close-node
388 :help-echo "Hide node"
389 )
390
391(define-widget 'tree-widget-empty-control 'tree-widget-open-control
392 "Control widget that represents an empty opened `tree-widget' node."
393 :tag "[X] "
394 ;;:tag-glyph (tree-widget-find-image "empty")
395 )
396
397(define-widget 'tree-widget-close-control 'tree-widget-control
398 "Control widget that represents a closed `tree-widget' node."
399 :tag "[+] "
400 ;;:tag-glyph (tree-widget-find-image "close")
401 :notify 'tree-widget-open-node
402 :help-echo "Show node"
403 )
404
405(define-widget 'tree-widget-leaf-control 'item
406 "Control widget that represents a leaf node."
407 :tag " " ;; Need at least a char to display the image :-(
408 ;;:tag-glyph (tree-widget-find-image "leaf")
409 :format "%t"
410 )
411
412(define-widget 'tree-widget-guide 'item
413 "Widget that represents a guide line."
414 :tag " |"
415 ;;:tag-glyph (tree-widget-find-image "guide")
416 :format "%t"
417 )
418
419(define-widget 'tree-widget-end-guide 'item
420 "Widget that represents the end of a guide line."
421 :tag " `"
422 ;;:tag-glyph (tree-widget-find-image "end-guide")
423 :format "%t"
424 )
425
426(define-widget 'tree-widget-no-guide 'item
427 "Widget that represents an invisible guide line."
428 :tag " "
429 ;;:tag-glyph (tree-widget-find-image "no-guide")
430 :format "%t"
431 )
432
433(define-widget 'tree-widget-handle 'item
434 "Widget that represent a node handle."
435 :tag " "
436 ;;:tag-glyph (tree-widget-find-image "handle")
437 :format "%t"
438 )
439
440(define-widget 'tree-widget-no-handle 'item
441 "Widget that represent an invisible node handle."
442 :tag " "
443 ;;:tag-glyph (tree-widget-find-image "no-handle")
444 :format "%t"
445 )
446
447(define-widget 'tree-widget 'default
448 "Tree widget."
449 :format "%v"
450 :convert-widget 'widget-types-convert-widget
451 :value-get 'widget-value-value-get
452 :value-create 'tree-widget-value-create
453 :value-delete 'tree-widget-value-delete
454 )
455
456;;; Widget support functions
457;;
458(defun tree-widget-p (widget)
459 "Return non-nil if WIDGET is a `tree-widget' widget."
460 (let ((type (widget-type widget)))
461 (while (and type (not (eq type 'tree-widget)))
462 (setq type (widget-type (get type 'widget-type))))
463 (eq type 'tree-widget)))
464
465(defsubst tree-widget-get-super (widget property)
466 "Return WIDGET's inherited PROPERTY value."
467 (widget-get (get (widget-type (get (widget-type widget)
468 'widget-type))
469 'widget-type)
470 property))
471
472(defsubst tree-widget-super-format-handler (widget escape)
473 "Call WIDGET's inherited format handler to process ESCAPE character."
474 (let ((handler (tree-widget-get-super widget :format-handler)))
475 (and handler (funcall handler widget escape))))
476
477(defun tree-widget-format-handler (widget escape)
478 "For WIDGET, signal that the %p format template is obsolete.
479Call WIDGET's inherited format handler to process other ESCAPE
480characters."
481 (if (eq escape ?p)
482 (message "The %%p format template is obsolete and ignored")
483 (tree-widget-super-format-handler widget escape)))
484(make-obsolete 'tree-widget-format-handler
485 'tree-widget-super-format-handler)
486
487(defsubst tree-widget-node (widget)
488 "Return the tree WIDGET :node value.
489If not found setup a default 'item' widget."
490 (let ((node (widget-get widget :node)))
491 (unless node
492 (setq node `(item :tag ,(or (widget-get widget :tag)
493 (widget-princ-to-string
494 (widget-value widget)))))
495 (widget-put widget :node node))
496 node))
497
498(defsubst tree-widget-open-control (widget)
499 "Return the opened node control specified in WIDGET."
500 (or (widget-get widget :open-control)
501 'tree-widget-open-control))
502
503(defsubst tree-widget-close-control (widget)
504 "Return the closed node control specified in WIDGET."
505 (or (widget-get widget :close-control)
506 'tree-widget-close-control))
507
508(defsubst tree-widget-empty-control (widget)
509 "Return the empty node control specified in WIDGET."
510 (or (widget-get widget :empty-control)
511 'tree-widget-empty-control))
512
513(defsubst tree-widget-leaf-control (widget)
514 "Return the leaf node control specified in WIDGET."
515 (or (widget-get widget :leaf-control)
516 'tree-widget-leaf-control))
517
518(defsubst tree-widget-guide (widget)
519 "Return the guide line widget specified in WIDGET."
520 (or (widget-get widget :guide)
521 'tree-widget-guide))
522
523(defsubst tree-widget-end-guide (widget)
524 "Return the end of guide line widget specified in WIDGET."
525 (or (widget-get widget :end-guide)
526 'tree-widget-end-guide))
527
528(defsubst tree-widget-no-guide (widget)
529 "Return the invisible guide line widget specified in WIDGET."
530 (or (widget-get widget :no-guide)
531 'tree-widget-no-guide))
532
533(defsubst tree-widget-handle (widget)
534 "Return the node handle line widget specified in WIDGET."
535 (or (widget-get widget :handle)
536 'tree-widget-handle))
537
538(defsubst tree-widget-no-handle (widget)
539 "Return the node invisible handle line widget specified in WIDGET."
540 (or (widget-get widget :no-handle)
541 'tree-widget-no-handle))
542
543(defun tree-widget-keep (arg widget)
544 "Save in ARG the WIDGET properties specified by :keep."
545 (dolist (prop (widget-get widget :keep))
546 (widget-put arg prop (widget-get widget prop))))
547
548(defun tree-widget-children-value-save (widget &optional args node)
549 "Save WIDGET children values.
550Children properties and values are saved in ARGS if non-nil else in
551WIDGET :args property value. Data node properties and value are saved
552in NODE if non-nil else in WIDGET :node property value."
553 (let ((args (or args (widget-get widget :args)))
554 (node (or node (tree-widget-node widget)))
555 (children (widget-get widget :children))
556 (node-child (widget-get widget :tree-widget--node))
557 arg child)
558 (while (and args children)
559 (setq arg (car args)
560 args (cdr args)
561 child (car children)
562 children (cdr children))
563 (if (tree-widget-p child)
564;;;; The child is a tree node.
565 (progn
566 ;; Backtrack :args and :node properties.
567 (widget-put arg :args (widget-get child :args))
568 (widget-put arg :node (tree-widget-node child))
569 ;; Save :open property.
570 (widget-put arg :open (widget-get child :open))
571 ;; The node is open.
572 (when (widget-get child :open)
573 ;; Save the widget value.
574 (widget-put arg :value (widget-value child))
575 ;; Save properties specified in :keep.
576 (tree-widget-keep arg child)
577 ;; Save children.
578 (tree-widget-children-value-save
579 child (widget-get arg :args) (widget-get arg :node))))
580;;;; Another non tree node.
581 ;; Save the widget value
582 (widget-put arg :value (widget-value child))
583 ;; Save properties specified in :keep.
584 (tree-widget-keep arg child)))
585 (when (and node node-child)
586 ;; Assume that the node child widget is not a tree!
587 ;; Save the node child widget value.
588 (widget-put node :value (widget-value node-child))
589 ;; Save the node child properties specified in :keep.
590 (tree-widget-keep node node-child))
591 ))
592
593(defvar tree-widget-after-toggle-functions nil
594 "Hooks run after toggling a `tree-widget' folding.
595Each function will receive the `tree-widget' as its unique argument.
596This variable should be local to each buffer used to display
597widgets.")
598
599(defun tree-widget-close-node (widget &rest ignore)
600 "Close the `tree-widget' node associated to this control WIDGET.
601WIDGET's parent should be a `tree-widget'.
602IGNORE other arguments."
603 (let ((tree (widget-get widget :parent)))
604 ;; Before folding the node up, save children values so next open
605 ;; can recover them.
606 (tree-widget-children-value-save tree)
607 (widget-put tree :open nil)
608 (widget-value-set tree nil)
609 (run-hook-with-args 'tree-widget-after-toggle-functions tree)))
610
611(defun tree-widget-open-node (widget &rest ignore)
612 "Open the `tree-widget' node associated to this control WIDGET.
613WIDGET's parent should be a `tree-widget'.
614IGNORE other arguments."
615 (let ((tree (widget-get widget :parent)))
616 (widget-put tree :open t)
617 (widget-value-set tree t)
618 (run-hook-with-args 'tree-widget-after-toggle-functions tree)))
619
620(defun tree-widget-value-delete (widget)
621 "Delete tree WIDGET children."
622 ;; Delete children
623 (widget-children-value-delete widget)
624 ;; Delete node child
625 (widget-delete (widget-get widget :tree-widget--node))
626 (widget-put widget :tree-widget--node nil))
627
628(defun tree-widget-value-create (tree)
629 "Create the TREE widget."
630 (let* ((widget-image-enable (tree-widget-use-image-p)) ; Emacs
631 (widget-glyph-enable widget-image-enable) ; XEmacs
632 (node (tree-widget-node tree))
633 children buttons)
634 (if (widget-get tree :open)
635;;;; Unfolded node.
636 (let* ((args (widget-get tree :args))
637 (dynargs (widget-get tree :dynargs))
638 (flags (widget-get tree :tree-widget--guide-flags))
639 (rflags (reverse flags))
640 (guide (tree-widget-guide tree))
641 (noguide (tree-widget-no-guide tree))
642 (endguide (tree-widget-end-guide tree))
643 (handle (tree-widget-handle tree))
644 (nohandle (tree-widget-no-handle tree))
645 ;; Lookup for images and set widgets' tag-glyphs here,
646 ;; to allow to dynamically change the image theme.
647 (guidi (tree-widget-find-image "guide"))
648 (noguidi (tree-widget-find-image "no-guide"))
649 (endguidi (tree-widget-find-image "end-guide"))
650 (handli (tree-widget-find-image "handle"))
651 (nohandli (tree-widget-find-image "no-handle"))
652 child)
653 (when dynargs
654 ;; Request the definition of dynamic children
655 (setq dynargs (funcall dynargs tree))
656 ;; Unless children have changed, reuse the widgets
657 (unless (eq args dynargs)
658 (setq args (mapcar 'widget-convert dynargs))
659 (widget-put tree :args args)))
660 ;; Insert the node control
661 (push (widget-create-child-and-convert
662 tree (if args (tree-widget-open-control tree)
663 (tree-widget-empty-control tree))
664 :tag-glyph (tree-widget-find-image
665 (if args "open" "empty")))
666 buttons)
667 ;; Insert the node element
668 (widget-put tree :tree-widget--node
669 (widget-create-child-and-convert tree node))
670 ;; Insert children
671 (while args
672 (setq child (car args)
673 args (cdr args))
674 ;; Insert guide lines elements
675 (dolist (f rflags)
676 (widget-create-child-and-convert
677 tree (if f guide noguide)
678 :tag-glyph (if f guidi noguidi))
679 (widget-create-child-and-convert
680 tree nohandle :tag-glyph nohandli)
681 )
682 (widget-create-child-and-convert
683 tree (if args guide endguide)
684 :tag-glyph (if args guidi endguidi))
685 ;; Insert the node handle line
686 (widget-create-child-and-convert
687 tree handle :tag-glyph handli)
688 ;; If leaf node, insert a leaf node control
689 (unless (tree-widget-p child)
690 (push (widget-create-child-and-convert
691 tree (tree-widget-leaf-control tree)
692 :tag-glyph (tree-widget-find-image "leaf"))
693 buttons))
694 ;; Insert the child element
695 (push (widget-create-child-and-convert
696 tree child
697 :tree-widget--guide-flags (cons (if args t) flags))
698 children)))
699;;;; Folded node.
700 ;; Insert the closed node control
701 (push (widget-create-child-and-convert
702 tree (tree-widget-close-control tree)
703 :tag-glyph (tree-widget-find-image "close"))
704 buttons)
705 ;; Insert the node element
706 (widget-put tree :tree-widget--node
707 (widget-create-child-and-convert tree node)))
708 ;; Save widget children and buttons
709 (widget-put tree :children (nreverse children))
710 (widget-put tree :buttons buttons)
711 ))
712
713;;; Utilities
714;;
715(defun tree-widget-map (widget fun)
716 "For each WIDGET displayed child call function FUN.
717FUN is called with three arguments like this:
718
719 (FUN CHILD IS-NODE WIDGET)
720
721where:
722- - CHILD is the child widget.
723- - IS-NODE is non-nil if CHILD is WIDGET node widget."
724 (when (widget-get widget :tree-widget--node)
725 (funcall fun (widget-get widget :tree-widget--node) t widget)
726 (dolist (child (widget-get widget :children))
727 (if (tree-widget-p child)
728 ;; The child is a tree node.
729 (tree-widget-map child fun)
730 ;; Another non tree node.
731 (funcall fun child nil widget)))))
732
733(provide 'tree-widget)
734
735;;; arch-tag: c3a1ada2-1663-41dc-9d16-2479ed8320e8
736;;; tree-widget.el ends here
diff --git a/lisp/version.el b/lisp/version.el
index 6c99d8de1d6..9cae0d25702 100644
--- a/lisp/version.el
+++ b/lisp/version.el
@@ -61,9 +61,9 @@ to the system configuration; look at `system-configuration' instead."
61 system-configuration 61 system-configuration
62 (cond ((featurep 'motif) 62 (cond ((featurep 'motif)
63 (concat ", " (substring motif-version-string 4))) 63 (concat ", " (substring motif-version-string 4)))
64 ((featurep 'x-toolkit) ", X toolkit")
65 ((featurep 'gtk) 64 ((featurep 'gtk)
66 (concat ", GTK+ Version " gtk-version-string)) 65 (concat ", GTK+ Version " gtk-version-string))
66 ((featurep 'x-toolkit) ", X toolkit")
67 (t "")) 67 (t ""))
68 (if (and (boundp 'x-toolkit-scroll-bars) 68 (if (and (boundp 'x-toolkit-scroll-bars)
69 (memq x-toolkit-scroll-bars '(xaw xaw3d))) 69 (memq x-toolkit-scroll-bars '(xaw xaw3d)))
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 33f1f06ba9a..b1a89e4fbef 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -2294,7 +2294,7 @@ Return an alist of (TYPE MATCH)."
2294 2294
2295(defun widget-radio-button-notify (widget child &optional event) 2295(defun widget-radio-button-notify (widget child &optional event)
2296 ;; Tell daddy. 2296 ;; Tell daddy.
2297 (widget-apply (widget-get widget :parent) :action widget event)) 2297 (widget-apply (widget-get widget :parent) :action event))
2298 2298
2299;;; The `radio-button-choice' Widget. 2299;;; The `radio-button-choice' Widget.
2300 2300
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 1cbb8b2f987..c46f718b5c7 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,9 @@
12004-05-10 Juanma Barranquero <lektu@terra.es>
2
3 * modes.texi (Mode Line Variables): Fix description of
4 global-mode-string, which is now after which-func-mode, not the
5 buffer name.
6
12004-05-07 Lars Hansen <larsh@math.ku.dk> 72004-05-07 Lars Hansen <larsh@math.ku.dk>
2 8
3 * modes.texi (Desktop Save Mode): Add. 9 * modes.texi (Desktop Save Mode): Add.
diff --git a/lispref/modes.texi b/lispref/modes.texi
index 12a597484df..4a8d83ecfa0 100644
--- a/lispref/modes.texi
+++ b/lispref/modes.texi
@@ -1454,11 +1454,12 @@ enabled separately in each buffer.
1454@end defvar 1454@end defvar
1455 1455
1456@defvar global-mode-string 1456@defvar global-mode-string
1457This variable holds a mode-line spec that appears in the mode line by 1457This variable holds a mode-line spec that, by default, appears in the
1458default, just after the buffer name. The command @code{display-time} 1458mode line just after the @code{which-func-mode} minor mode if set,
1459else after @code{mode-line-modes}. The command @code{display-time}
1459sets @code{global-mode-string} to refer to the variable 1460sets @code{global-mode-string} to refer to the variable
1460@code{display-time-string}, which holds a string containing the time and 1461@code{display-time-string}, which holds a string containing the time
1461load information. 1462and load information.
1462 1463
1463The @samp{%M} construct substitutes the value of 1464The @samp{%M} construct substitutes the value of
1464@code{global-mode-string}, but that is obsolete, since the variable is 1465@code{global-mode-string}, but that is obsolete, since the variable is
diff --git a/mac/Emacs.app/Contents/.gitignore b/mac/Emacs.app/Contents/.gitignore
index 0d7f092d290..a502976befb 100644
--- a/mac/Emacs.app/Contents/.gitignore
+++ b/mac/Emacs.app/Contents/.gitignore
@@ -1 +1,2 @@
1MacOS 1MacOS
2Resources Disabled
diff --git a/man/ChangeLog b/man/ChangeLog
index 92211707081..30247e10435 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,14 @@
12004-05-16 Karl Berry <karl@gnu.org>
2
3 * emacs.texi (ack.texi) [@ifnottex]: Change condition; with @ifinfo,
4 makeinfo --html fails.
5 * help.texi (Help Summary) [@ifnottex]: Likewise.
6
72004-05-13 Nick Roberts <nickrob@gnu.org>
8
9 * building.texi (GDB Graphical Interface): Update and describe
10 layout first.
11
12004-05-07 Kai Grossjohann <kai@emptydomain.de> 122004-05-07 Kai Grossjohann <kai@emptydomain.de>
2 13
3 Version 2.0.40 of Tramp released. 14 Version 2.0.40 of Tramp released.
diff --git a/man/building.texi b/man/building.texi
index 2985a04895c..994e3be3f59 100644
--- a/man/building.texi
+++ b/man/building.texi
@@ -286,7 +286,7 @@ Emacs. @xref{MS-DOS}.
286The GUD (Grand Unified Debugger) library provides an interface to 286The GUD (Grand Unified Debugger) library provides an interface to
287various symbolic debuggers from within Emacs. We recommend the debugger 287various symbolic debuggers from within Emacs. We recommend the debugger
288GDB, which is free software, but you can also run DBX, SDB or XDB if you 288GDB, which is free software, but you can also run DBX, SDB or XDB if you
289have them. GUD can also serve as an interface to the Perl's debugging 289have them. GUD can also serve as an interface to Perl's debugging
290mode, the Python debugger PDB, and to JDB, the Java Debugger. 290mode, the Python debugger PDB, and to JDB, the Java Debugger.
291@xref{Debugging,, The Lisp Debugger, elisp, the Emacs Lisp Reference Manual}, 291@xref{Debugging,, The Lisp Debugger, elisp, the Emacs Lisp Reference Manual},
292for information on debugging Emacs Lisp programs. 292for information on debugging Emacs Lisp programs.
@@ -311,9 +311,13 @@ to a particular debugger program.
311@table @kbd 311@table @kbd
312@item M-x gdb @key{RET} @var{file} @key{RET} 312@item M-x gdb @key{RET} @var{file} @key{RET}
313@findex gdb 313@findex gdb
314Run GDB as a subprocess of Emacs. This command creates a buffer 314Run GDB as a subprocess of Emacs. If the variable
315for input and output to GDB, and switches to it. If a GDB buffer 315@code{gud-gdb-command-name} is ``gdb --annotate=3'' (the default
316already exists, it just switches to that buffer. 316value) then GDB starts as for @kbd{M-x gdba} below. If you want to
317GDB to start as in Emacs 21.3 and earlier then set
318@code{gud-gdb-command-name} to ``gdb --fullname''. In this case, the
319command creates a buffer for input and output to GDB, and switches to
320it. If a GDB buffer already exists, it just switches to that buffer.
317 321
318@item M-x gdba @key{RET} @var{file} @key{RET} 322@item M-x gdba @key{RET} @var{file} @key{RET}
319Run GDB as a subprocess of Emacs, providing a graphical interface 323Run GDB as a subprocess of Emacs, providing a graphical interface
@@ -638,13 +642,59 @@ mode is that you can do it through menus and clicks, without needing
638to know GDB commands. 642to know GDB commands.
639 643
640@menu 644@menu
645* Layout:: Control the number of displayed buffers.
641* Breakpoints Buffer:: A breakpoint control panel. 646* Breakpoints Buffer:: A breakpoint control panel.
642* Stack Buffer:: Select a frame from the call stack. 647* Stack Buffer:: Select a frame from the call stack.
643* Watch Expressions:: Monitor variable values in the speedbar. 648* Watch Expressions:: Monitor variable values in the speedbar.
644* Other Buffers:: Input/output, locals, registers and assembler buffers. 649* Other Buffers:: Input/output, locals, registers and assembler buffers.
645* Layout:: Control the number of displayed buffers.
646@end menu 650@end menu
647 651
652@node Layout
653@subsubsection Layout
654@cindex GDB User Interface layout
655
656@findex gdb-many-windows
657@vindex gdb-many-windows
658
659If the variable @code{gdb-many-windows} is @code{nil} (the default
660value) then gdb just pops up the GUD buffer unless the variable
661@code{gdb-show-main} is non-@code{nil}. In this case it starts with
662two windows: one displaying the GUD buffer and the other with the
663source file with the main routine of the inferior.
664
665If @code{gdb-many-windows} is non-@code{nil}, regardless of the value of
666@code{gdb-show-main}, the layout below will appear unless
667@code{gdb-use-inferior-io-buffer} is @code{nil}. In this case the
668source buffer occupies the full width of the frame.
669
670@multitable @columnfractions .5 .5
671@item GUD buffer (I/O of GDB)
672@tab Locals buffer
673@item
674@tab
675@item Source buffer
676@tab Input/Output (of inferior) buffer
677@item
678@tab
679@item Stack buffer
680@tab Breakpoints buffer
681@end multitable
682
683To toggle this layout, do @kbd{M-x gdb-many-windows}.
684
685@findex gdb-restore-windows
686If you change the window layout, for example, while editing and
687re-compiling your program, then you can restore it with the command
688@code{gdb-restore-windows}.
689
690You may also choose which additional buffers you want to display,
691either in the same frame or a different one. Select GDB-windows or
692GDB-Frames from the menu-bar under the heading GUD. If the menu-bar
693is unavailable, type @code{M-x
694gdb-display-@var{buffertype}-buffer} or @code{M-x
695gdb-frame-@var{buffertype}-buffer} respectively, where @var{buffertype}
696is the relevant buffer type e.g breakpoints.
697
648@node Breakpoints Buffer 698@node Breakpoints Buffer
649@subsubsection Breakpoints Buffer 699@subsubsection Breakpoints Buffer
650 700
@@ -705,7 +755,7 @@ on the tag to the left of the expression.
705@kindex RET @r{(GDB speedbar)} 755@kindex RET @r{(GDB speedbar)}
706@findex gdb-var-delete 756@findex gdb-var-delete
707With the cursor over the root expression of a complex data type, type 757With the cursor over the root expression of a complex data type, type
708@key{D} to delete it from the speedbar 758@kbd{D} to delete it from the speedbar
709(@code{gdb-var-delete}). 759(@code{gdb-var-delete}).
710 760
711@findex gdb-edit-value 761@findex gdb-edit-value
@@ -730,7 +780,8 @@ the default value is @code{nil}.
730 780
731@table @asis 781@table @asis
732@item Input/Output Buffer 782@item Input/Output Buffer
733The executable program that is being debugged takes its input and 783If the variable @code{gdb-use-inferior-io-buffer} is non-@code{nil},
784the executable program that is being debugged takes its input and
734displays its output here. Some of the commands from shell mode are 785displays its output here. Some of the commands from shell mode are
735available here. @xref{Shell Mode}. 786available here. @xref{Shell Mode}.
736 787
@@ -763,44 +814,6 @@ make the selected thread become the current one.
763 814
764@end table 815@end table
765 816
766@node Layout
767@subsubsection Layout
768@cindex GDB User Interface layout
769
770@findex gdb-many-windows
771@vindex gdb-many-windows
772If @code{gdb-many-windows} is @code{nil} (the default value), then GDB starts
773with just two windows: the GUD and the source buffer. If it is @code{t}, then
774six windows with the following layout will appear:
775
776@multitable @columnfractions .5 .5
777@item GUD buffer (I/O of GDB)
778@tab Locals buffer
779@item
780@tab
781@item Source buffer
782@tab Input/Output (of debuggee) buffer
783@item
784@tab
785@item Stack buffer
786@tab Breakpoints buffer
787@end multitable
788
789To toggle this layout, do @kbd{M-x gdb-many-windows}.
790
791@findex gdb-restore-windows
792If you change the window layout, for example, while editing and
793re-compiling your program, then you can restore it with
794@code{gdb-restore-windows}.
795
796You may also choose which additional buffers you want to display,
797either in the same frame or a different one. Select GDB-windows or
798GDB-Frames from the menu-bar under the heading GUD. If the menu-bar
799is unavailable, type @code{M-x
800gdb-display-@var{buffertype}-buffer} or @code{M-x
801gdb-frame-@var{buffertype}-buffer} respectively, where @var{buffertype}
802is the relevant buffer type e.g breakpoints.
803
804@node Executing Lisp 817@node Executing Lisp
805@section Executing Lisp Expressions 818@section Executing Lisp Expressions
806 819
diff --git a/man/emacs.texi b/man/emacs.texi
index 3162cd1e167..b5f40a6d9e6 100644
--- a/man/emacs.texi
+++ b/man/emacs.texi
@@ -12,7 +12,7 @@ This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},
12updated for Emacs version @value{EMACSVER}. 12updated for Emacs version @value{EMACSVER}.
13 13
14Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 14Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998,
151999, 2000, 2001, 2002 Free Software Foundation, Inc. 151999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
16 16
17@quotation 17@quotation
18Permission is granted to copy, distribute and/or modify this document 18Permission is granted to copy, distribute and/or modify this document
@@ -1500,9 +1500,9 @@ edit files while running shell commands.
1500@include msdog.texi 1500@include msdog.texi
1501@include gnu.texi 1501@include gnu.texi
1502@include glossary.texi 1502@include glossary.texi
1503@ifinfo 1503@ifnottex
1504@include ack.texi 1504@include ack.texi
1505@end ifinfo 1505@end ifnottex
1506 1506
1507@c The Option Index is produced only in the on-line version, 1507@c The Option Index is produced only in the on-line version,
1508@c because the index entries related to command-line options 1508@c because the index entries related to command-line options
diff --git a/man/help.texi b/man/help.texi
index 56fb9f542d4..050e600759b 100644
--- a/man/help.texi
+++ b/man/help.texi
@@ -1,5 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000, 2001 2@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000, 2001, 2004
3@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Help, Mark, M-x, Top 5@node Help, Mark, M-x, Top
@@ -103,10 +103,10 @@ command.
103@iftex 103@iftex
104@node Help Summary 104@node Help Summary
105@end iftex 105@end iftex
106@ifinfo 106@ifnottex
107@node Help Summary 107@node Help Summary
108@section Help Summary 108@section Help Summary
109@end ifinfo 109@end ifnottex
110 110
111 Here is a summary of the Emacs interactive help commands. 111 Here is a summary of the Emacs interactive help commands.
112@xref{Help Files}, for other help commands that just display a 112@xref{Help Files}, for other help commands that just display a
diff --git a/msdos/ChangeLog b/msdos/ChangeLog
index 6cec44d3a99..6d221726b7e 100644
--- a/msdos/ChangeLog
+++ b/msdos/ChangeLog
@@ -1,3 +1,9 @@
12004-05-11 Eli Zaretskii <eliz@gnu.org>
2
3 * sedleim.inp (distclean): Remove stamp-subdirs.
4 (SUBDIRS): Don't use `touch', use `djecho' instead.
5 (changed.tit, changed.misc): Use `djecho' instead of `echo'.
6
12004-05-02 Eli Zaretskii <eliz@gnu.org> 72004-05-02 Eli Zaretskii <eliz@gnu.org>
2 8
3 * sed2v2.inp (HAVE_GETRUSAGE): Define. 9 * sed2v2.inp (HAVE_GETRUSAGE): Define.
diff --git a/msdos/sedleim.inp b/msdos/sedleim.inp
index ff9c6b73337..f4795e749b8 100644
--- a/msdos/sedleim.inp
+++ b/msdos/sedleim.inp
@@ -28,6 +28,9 @@ MAKESHELL=/xyzzy/command
28/^INSTALLDIR=/c\ 28/^INSTALLDIR=/c\
29INSTALLDIR=. 29INSTALLDIR=.
30 30
31/touch stamp-subdir/s|touch|djecho "stamp-subdir" >|
32s|\([ ]\)echo|\1djecho|g
33
31/RUN-EMACS *=/,/^$/c\ 34/RUN-EMACS *=/,/^$/c\
32export EMACSLOADPATH=${buildlisppath}\ 35export EMACSLOADPATH=${buildlisppath}\
33RUN-EMACS = ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte 36RUN-EMACS = ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
@@ -52,5 +55,8 @@ RUN-EMACS = ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
52install: all\ 55install: all\
53 56
54/^ if test -f/d 57/^ if test -f/d
58/^distclean:/,/^$/ {
59 s|\(rm -f Makefile\)|\1 stamp-subdir|
60}
55 61
56# arch-tag: 33c5eed1-78bc-4a6e-9d11-cbc7c541b763 62# arch-tag: 33c5eed1-78bc-4a6e-9d11-cbc7c541b763
diff --git a/src/.gdbinit b/src/.gdbinit
index 1b141a42064..c976d3633de 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -81,7 +81,7 @@ end
81define xvectype 81define xvectype
82 xgetptr $ 82 xgetptr $
83 set $size = ((struct Lisp_Vector *) $ptr)->size 83 set $size = ((struct Lisp_Vector *) $ptr)->size
84 output ($size & PVEC_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size 84 output ($size & PVEC_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~gdb_array_mark_flag
85 echo \n 85 echo \n
86end 86end
87document xvectype 87document xvectype
@@ -199,7 +199,7 @@ end
199define xstring 199define xstring
200 xgetptr $ 200 xgetptr $
201 print (struct Lisp_String *) $ptr 201 print (struct Lisp_String *) $ptr
202 output ($->size > 1000) ? 0 : ($->data[0])@($->size_byte < 0 ? $->size : $->size_byte) 202 output ($->size > 1000) ? 0 : ($->data[0])@($->size_byte < 0 ? $->size & ~gdb_array_mark_flag : $->size_byte)
203 echo \n 203 echo \n
204end 204end
205document xstring 205document xstring
@@ -210,7 +210,7 @@ end
210define xvector 210define xvector
211 xgetptr $ 211 xgetptr $
212 print (struct Lisp_Vector *) $ptr 212 print (struct Lisp_Vector *) $ptr
213 output ($->size > 50) ? 0 : ($->contents[0])@($->size) 213 output ($->size > 50) ? 0 : ($->contents[0])@($->size & ~gdb_array_mark_flag)
214echo \n 214echo \n
215end 215end
216document xvector 216document xvector
@@ -289,7 +289,7 @@ end
289define xboolvector 289define xboolvector
290 xgetptr $ 290 xgetptr $
291 print (struct Lisp_Bool_Vector *) $ptr 291 print (struct Lisp_Bool_Vector *) $ptr
292 output ($->size > 256) ? 0 : ($->data[0])@(($->size + 7)/ 8) 292 output ($->size > 256) ? 0 : ($->data[0])@((($->size & ~gdb_array_mark_flag) + 7)/ 8)
293 echo \n 293 echo \n
294end 294end
295document xboolvector 295document xboolvector
@@ -377,7 +377,7 @@ define xprintsym
377 set $sym = (struct Lisp_Symbol *) $ptr 377 set $sym = (struct Lisp_Symbol *) $ptr
378 xgetptr $sym->xname 378 xgetptr $sym->xname
379 set $sym_name = (struct Lisp_String *) $ptr 379 set $sym_name = (struct Lisp_String *) $ptr
380 output ($sym_name->data[0])@($sym_name->size_byte < 0 ? $sym_name->size : $sym_name->size_byte) 380 output ($sym_name->data[0])@($sym_name->size_byte < 0 ? $sym_name->size & ~gdb_array_mark_flag : $sym_name->size_byte)
381end 381end
382document xprintsym 382document xprintsym
383 Print argument as a symbol. 383 Print argument as a symbol.
@@ -395,7 +395,7 @@ define xbacktrace
395 if $type == Lisp_Vectorlike 395 if $type == Lisp_Vectorlike
396 xgetptr (*$bt->function) 396 xgetptr (*$bt->function)
397 set $size = ((struct Lisp_Vector *) $ptr)->size 397 set $size = ((struct Lisp_Vector *) $ptr)->size
398 output ($size & PVEC_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size 398 output ($size & PVEC_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~gdb_array_mark_flag
399 else 399 else
400 printf "Lisp type %d", $type 400 printf "Lisp type %d", $type
401 end 401 end
diff --git a/src/ChangeLog b/src/ChangeLog
index fad84ff38f5..7425754e042 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,186 @@
12004-05-18 Eli Zaretskii <eliz@gnu.org>
2
3 * lisp.h (DECL_ALIGN): Remove restriction on MS-DOS systems.
4
5 * msdos.c (syms_of_msdos): Initialize dos-unsupported-char-glyph
6 with make_number.
7 (IT_write_glyphs): Extract glyph from dos-unsupported-char-glyph
8 with XINT.
9
102004-05-18 Kim F. Storm <storm@cua.dk>
11
12 * blockinput.h (INPUT_BLOCKED_P): New macros.
13
14 * keyboard.c (Frecursive_edit): Return immediately if input blocked.
15 (Ftop_level): Unblock input if blocked.
16
17 * buffer.h (GET_OVERLAYS_AT): New macro.
18 * msdos.c (IT_note_mouse_highlight): Use it.
19 * textprop.c (get_char_property_and_overlay): Use it.
20 * xdisp.c (next_overlay_change, note_mouse_highlight): Use it.
21 * xfaces.c (face_at_buffer_position): Use it.
22
23 * print.c (print_object): Increase buf size.
24
252004-05-17 Jason Rumney <jasonr@gnu.org>
26
27 * w32fns.c (Fw32_register_hot_key, Fw32_unregister_hot_key)
28 (Fw32_toggle_lock_key) [USE_LISP_UNION_TYPE]: Cast from
29 Lisp_Object using i member.
30 (w32_quit_key): Rename from Vw32_quit_key, and make an int.
31 (syms_of_w32fns, globals_of_w32fns): Use Lisp_Object and int
32 consistently.
33
34 * w32proc.c (create_child): Use make_number instead of masking pid.
35
36 * w32fns.c (w32_color_map_lookup): Return a Lisp_Object.
37 (x_to_w32_charset, w32_to_x_charset, w32_to_all_x_charsets):
38 Use EQ to compare Lisp_Objects.
39 (w32_parse_hot_key): Use int for lisp_modifiers consistently.
40
41 * w32term.c (w32_num_mouse_buttons): Rename from
42 Vw32_num_mouse_buttons and make it an int.
43
44 * w32.c (init_environment): Use it.
45
46 * w32fns.c (w32_wnd_proc): Likewise.
47
48 * w32proc.c (w32_pipe_read_delay): Rename from
49 Vw32_pipe_read_delay and make it an int.
50
51 * w32.c (_sys_read_ahead): Use it.
52
53 * lisp.h (egetenv) [USE_CRT_DLL]: Remove condition.
54
55 * w32proc.c (create_child) [USE_LSB_TAG]: Don't try to mask pid.
56
57 * w32inevt.c (w32_console_mouse_position, do_mouse_event)
58 (key_event): Don't mix Lisp_Object and int.
59
60 * w32heap.c (init_heap) [USE_LSB_TAG]: Don't check heap location.
61
62 * keyboard.c (kbd_buffer_get_event): Don't use event->code and
63 modifiers in language change event.
64
652004-05-17 Kim F. Storm <storm@cua.dk>
66
67 * alloc.c (mark_object): Ignore Lisp_Misc_Free objects.
68 Such objects may be freed markers which still exist on an undo list.
69
702004-05-16 Juanma Barranquero <lektu@terra.es>
71
72 * data.c (Fset_default): Make argument names match their use in
73 docstring.
74
752004-05-15 Andreas Schwab <schwab@suse.de>
76
77 * emacs.c (gdb_array_mark_flag): Define.
78 * .gdbinit: Mask off gdb_array_mark_flag from vector sizes.
79
802004-05-15 Eli Zaretskii <eliz@gnu.org>
81
82 * lisp.h (DECL_ALIGN) [MSDOS]: Don't define DECL_ALIGN to use
83 __attribute__((__aligned__)), so that USE_LSB_TAG would not become
84 defined for the MS-DOS build.
85
862004-05-14 Stefan Monnier <monnier@iro.umontreal.ca>
87
88 * w32fns.c (Fw32_define_rgb_color): Avoid XSET.
89
902004-05-14 Kenichi Handa <handa@m17n.org>
91
92 * ccl.c (Fccl_execute_on_string): Fix setting elements of STATUS.
93
942004-05-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
95
96 * lisp.h (Vx_resource_name, Vx_resource_class): Move from xfns.c
97 section to frame.c section.
98 (Fxw_display_color_p, Fx_file_dialog): Declare if
99 HAVE_WINDOW_SYSTEM defined.
100 * macfns.c (Fx_create_frame): Fix int/Lisp_Object mixup.
101 * macmenu.c (set_frame_menubar): Use NILP to test a lisp value.
102 * macterm.c (mac_get_emulated_btn, mac_event_to_emacs_modifiers)
103 (mac_get_mouse_btn): Use NILP and EQ to test/compare lisp values.
104 (XTread_socket): Fix int/Lisp_Object mixup.
105 (mac_check_for_quit_char): Fix pointer/Lisp_Object mixup.
106 * macterm.h (struct frame, struct face, struct image)
107 (display_x_get_resource, Fx_display_color_p)
108 (Fx_display_grayscale_p, Fx_display_planes, x_free_gcs):
109 Add prototypes.
110
1112004-05-14 Kim F. Storm <storm@cua.dk>
112
113 * process.c (wait_reading_process_input): Make reentrant.
114 Make Available and Connecting non-static. Save and restore value
115 of waiting_for_user_input_p.
116
1172004-05-13 Kim F. Storm <storm@cua.dk>
118
119 * keyboard.c (mark_kboards): Don't mark x and y members
120 that are overloaded in selection request events.
121
1222004-05-13 Stefan Monnier <monnier@iro.umontreal.ca>
123
124 * lisp.h (USE_LSB_TAG): Make it the default when it is known to work.
125
1262004-05-13 Glenn Morris <gmorris@ast.cam.ac.uk>
127
128 * window.c (Fdisplay_buffer, Fsplit_window)
129 (split-height-threshold): Doc fix.
130
1312004-05-13 Juanma Barranquero <lektu@terra.es>
132
133 * xfaces.c (Ftty_supports_face_attributes_p)
134 (Finternal_copy_lisp_face): Fix typo in docstring.
135 (Finternal_get_lisp_face_attribute): Fix docstring.
136
1372004-05-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
138
139 * xfns.c (syms_of_xfns): Provide x-toolkit also for GTK.
140
1412004-05-11 Steven Tamm <steventamm@mac.com>
142
143 * macfns.c (Fx_create_frame): Default to using tool-bar by
144 setting tool-bar-lines to 1 in default-frame-alist.
145
1462004-05-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
147
148 * image.c (xpm_scan, xpm_make_color_table_v, xpm_put_color_table_v)
149 (xpm_get_color_table_v, xpm_make_color_table_h)
150 (xpm_put_color_table_h, xpm_get_color_table_h)
151 (xpm_str_to_color_key, xpm_load_image, xpm_load)
152 (syms_of_image): Support XPM on Carbon Emacs. Does not
153 depend on libXpm, but only supports XPM version 3 without extensions.
154
1552004-05-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
156
157 * macterm.c (x_flush, XTframe_up_to_date): Use FRAME_MAC_P
158 instead of FRAME_X_P
159
1602004-05-11 Kim F. Storm <storm@cua.dk>
161
162 * process.c (read_process_output): Grow decoding_buf when needed;
163 this could cause a crash in allocate_string and compact_small_strings.
164
1652004-04-29 Jim Blandy <jimb@redhat.com>
166
167 * regex.c (mutually_exclusive_p): In 'case wordbeg', compare op2
168 against proper opcode.
169
1702004-05-10 Juanma Barranquero <lektu@terra.es>
171
172 * process.c (Fstart_process): Fix docstring.
173
174 * charset.c (Fget_unused_iso_final_char): Fix typos in docstring.
175 (Fchar_bytes, Fchar_width, Fstring_width, Fchar_direction)
176 (Fsplit_char, Fchar_charset): Make argument names match their use
177 in docstring.
178
1792004-05-10 Richard M. Stallman <rms@gnu.org>
180
181 * print.c (print_preprocess): Use being_printed, loop_count and
182 halftail to detect overdeep nesting and cyclic cdr chains.
183
12004-05-10 Andreas Schwab <schwab@suse.de> 1842004-05-10 Andreas Schwab <schwab@suse.de>
2 185
3 * lisp.h: Declare Fmake_symbolic_link. 186 * lisp.h: Declare Fmake_symbolic_link.
@@ -115,8 +298,8 @@
115 298
1162004-05-02 Eli Zaretskii <eliz@gnu.org> 2992004-05-02 Eli Zaretskii <eliz@gnu.org>
117 300
118 * syntax.h (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY_INT): Avoid 301 * syntax.h (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY_INT):
119 compiler warnings. 302 Avoid compiler warnings.
120 303
121 * Makefile.in (region-cache.o): Depend on config.h. 304 * Makefile.in (region-cache.o): Depend on config.h.
122 305
@@ -1461,7 +1644,7 @@
1461 1644
14622004-02-09 Sam Steingold <sds@gnu.org> 16452004-02-09 Sam Steingold <sds@gnu.org>
1463 1646
1464 * w32term.c (w32_draw_fringe_bitmap): Fixed a typo in the last patch. 1647 * w32term.c (w32_draw_fringe_bitmap): Fix a typo in the last patch.
1465 1648
14662004-02-09 Kim F. Storm <storm@cua.dk> 16492004-02-09 Kim F. Storm <storm@cua.dk>
1467 1650
@@ -8193,7 +8376,7 @@
8193 8376
8194 * msdos.c (croak): Add `void' to definition. 8377 * msdos.c (croak): Add `void' to definition.
8195 8378
8196 * sysdep.c [MSDOS] (request_sigio, unrequest_sigio): 8379 * sysdep.c (request_sigio, unrequest_sigio) [MSDOS]:
8197 Don't define them, they are defined in msdos.c. 8380 Don't define them, they are defined in msdos.c.
8198 8381
8199 * mem-limits.h [MSDOS]: Declare etext. 8382 * mem-limits.h [MSDOS]: Declare etext.
diff --git a/src/alloc.c b/src/alloc.c
index 29351952860..63447d078f9 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -845,7 +845,7 @@ lisp_align_free (block)
845 free_ablock = ablock; 845 free_ablock = ablock;
846 /* Update busy count. */ 846 /* Update busy count. */
847 ABLOCKS_BUSY (abase) = (struct ablocks *) (-2 + (long) ABLOCKS_BUSY (abase)); 847 ABLOCKS_BUSY (abase) = (struct ablocks *) (-2 + (long) ABLOCKS_BUSY (abase));
848 848
849 if (2 > (long) ABLOCKS_BUSY (abase)) 849 if (2 > (long) ABLOCKS_BUSY (abase))
850 { /* All the blocks are free. */ 850 { /* All the blocks are free. */
851 int i = 0, aligned = (long) ABLOCKS_BUSY (abase); 851 int i = 0, aligned = (long) ABLOCKS_BUSY (abase);
@@ -4467,6 +4467,17 @@ returns nil, because real GC can't be done. */)
4467 mark_kboards (); 4467 mark_kboards ();
4468 mark_ttys (); 4468 mark_ttys ();
4469 4469
4470#if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES
4471 mark_stack ();
4472#endif
4473
4474#ifdef USE_GTK
4475 {
4476 extern void xg_mark_data ();
4477 xg_mark_data ();
4478 }
4479#endif
4480
4470 /* Look thru every buffer's undo list 4481 /* Look thru every buffer's undo list
4471 for elements that update markers that were not marked, 4482 for elements that update markers that were not marked,
4472 and delete them. */ 4483 and delete them. */
@@ -4510,17 +4521,6 @@ returns nil, because real GC can't be done. */)
4510 } 4521 }
4511 } 4522 }
4512 4523
4513#if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES
4514 mark_stack ();
4515#endif
4516
4517#ifdef USE_GTK
4518 {
4519 extern void xg_mark_data ();
4520 xg_mark_data ();
4521 }
4522#endif
4523
4524 gc_sweep (); 4524 gc_sweep ();
4525 4525
4526 /* Clear the mark bits that we set in certain root slots. */ 4526 /* Clear the mark bits that we set in certain root slots. */
@@ -4978,6 +4978,14 @@ mark_object (arg)
4978 break; 4978 break;
4979 4979
4980 case Lisp_Misc: 4980 case Lisp_Misc:
4981 if (XMISCTYPE (obj) == Lisp_Misc_Free)
4982 {
4983 /* This is (probably) a freed marker which may still exist on
4984 a buffer undo list, so accept it here, as check below will
4985 fail (not live). KFS 2004-05-17 */
4986 XMARKER (obj)->gcmarkbit = 1;
4987 break;
4988 }
4981 CHECK_ALLOCATED_AND_LIVE (live_misc_p); 4989 CHECK_ALLOCATED_AND_LIVE (live_misc_p);
4982 if (XMARKER (obj)->gcmarkbit) 4990 if (XMARKER (obj)->gcmarkbit)
4983 break; 4991 break;
diff --git a/src/blockinput.h b/src/blockinput.h
index eba192c9863..e9f2f3bc217 100644
--- a/src/blockinput.h
+++ b/src/blockinput.h
@@ -97,6 +97,9 @@ extern int pending_atimers;
97#define TOTALLY_UNBLOCK_INPUT (interrupt_input_blocked = 0) 97#define TOTALLY_UNBLOCK_INPUT (interrupt_input_blocked = 0)
98#define UNBLOCK_INPUT_RESIGNAL UNBLOCK_INPUT 98#define UNBLOCK_INPUT_RESIGNAL UNBLOCK_INPUT
99 99
100/* In critical section ? */
101#define INPUT_BLOCKED_P (interrupt_input_blocked > 0)
102
100/* Defined in keyboard.c */ 103/* Defined in keyboard.c */
101/* Don't use a prototype here; it causes trouble in some files. */ 104/* Don't use a prototype here; it causes trouble in some files. */
102extern void reinvoke_input_signal (); 105extern void reinvoke_input_signal ();
diff --git a/src/buffer.h b/src/buffer.h
index e2205a916e6..b5227cb9981 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -823,6 +823,25 @@ extern void buffer_slot_type_mismatch P_ ((int));
823extern void fix_overlays_before P_ ((struct buffer *, EMACS_INT, EMACS_INT)); 823extern void fix_overlays_before P_ ((struct buffer *, EMACS_INT, EMACS_INT));
824extern void mmap_set_vars P_ ((int)); 824extern void mmap_set_vars P_ ((int));
825 825
826/* Get overlays at POSN into array OVERLAYS with NOVERLAYS elements.
827 If NEXTP is non-NULL, return next overlay there.
828 See overlay_at arg CHANGE_REQ for meaning of CHRQ arg. */
829
830#define GET_OVERLAYS_AT(posn, overlays, noverlays, nextp, chrq) \
831 do { \
832 int maxlen = 40; \
833 overlays = (Lisp_Object *) alloca (maxlen * sizeof (Lisp_Object)); \
834 noverlays = overlays_at (posn, 0, &overlays, &maxlen, \
835 nextp, NULL, chrq); \
836 if (noverlays > maxlen) \
837 { \
838 maxlen = noverlays; \
839 overlays = (Lisp_Object *) alloca (maxlen * sizeof (Lisp_Object)); \
840 noverlays = overlays_at (posn, 0, &overlays, &maxlen, \
841 nextp, NULL, chrq); \
842 } \
843 } while (0)
844
826EXFUN (Fbuffer_name, 1); 845EXFUN (Fbuffer_name, 1);
827EXFUN (Fget_file_buffer, 1); 846EXFUN (Fget_file_buffer, 1);
828EXFUN (Fnext_overlay_change, 1); 847EXFUN (Fnext_overlay_change, 1);
diff --git a/src/ccl.c b/src/ccl.c
index 81e90319e52..4c3528075b4 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -2196,8 +2196,8 @@ See the documentation of `define-ccl-program' for the detail of CCL program. */
2196 produced = ccl_driver (&ccl, SDATA (str), outbuf, 2196 produced = ccl_driver (&ccl, SDATA (str), outbuf,
2197 SBYTES (str), outbufsize, (int *) 0); 2197 SBYTES (str), outbufsize, (int *) 0);
2198 for (i = 0; i < 8; i++) 2198 for (i = 0; i < 8; i++)
2199 XSET (AREF (status, i), Lisp_Int, ccl.reg[i]); 2199 ASET (status, i, make_number (ccl.reg[i]));
2200 XSETINT (AREF (status, 8), ccl.ic); 2200 ASET (status, 8, make_number (ccl.ic));
2201 UNGCPRO; 2201 UNGCPRO;
2202 2202
2203 if (NILP (unibyte_p)) 2203 if (NILP (unibyte_p))
diff --git a/src/charset.c b/src/charset.c
index 48382a44bd6..57a12b2398d 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1,7 +1,7 @@
1/* Basic multilingual character support. 1/* Basic multilingual character support.
2 Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN. 2 Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN.
3 Licensed to the Free Software Foundation. 3 Licensed to the Free Software Foundation.
4 Copyright (C) 2001 Free Software Foundation, Inc. 4 Copyright (C) 2001, 2004 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
7 7
@@ -730,7 +730,7 @@ It includes a generic character for a charset not yet defined. */)
730 730
731DEFUN ("get-unused-iso-final-char", Fget_unused_iso_final_char, 731DEFUN ("get-unused-iso-final-char", Fget_unused_iso_final_char,
732 Sget_unused_iso_final_char, 2, 2, 0, 732 Sget_unused_iso_final_char, 2, 2, 0,
733 doc: /* Return an unsed ISO's final char for a charset of DIMENISION and CHARS. 733 doc: /* Return an unused ISO's final char for a charset of DIMENSION and CHARS.
734DIMENSION is the number of bytes to represent a character: 1 or 2. 734DIMENSION is the number of bytes to represent a character: 1 or 2.
735CHARS is the number of characters in a dimension: 94 or 96. 735CHARS is the number of characters in a dimension: 94 or 96.
736 736
@@ -1028,9 +1028,9 @@ Internal use only. */)
1028} 1028}
1029 1029
1030DEFUN ("split-char", Fsplit_char, Ssplit_char, 1, 1, 0, 1030DEFUN ("split-char", Fsplit_char, Ssplit_char, 1, 1, 0,
1031 doc: /* Return list of charset and one or two position-codes of CHAR. 1031 doc: /* Return list of charset and one or two position-codes of CH.
1032If CHAR is invalid as a character code, 1032If CH is invalid as a character code,
1033return a list of symbol `unknown' and CHAR. */) 1033return a list of symbol `unknown' and CH. */)
1034 (ch) 1034 (ch)
1035 Lisp_Object ch; 1035 Lisp_Object ch;
1036{ 1036{
@@ -1048,7 +1048,7 @@ return a list of symbol `unknown' and CHAR. */)
1048} 1048}
1049 1049
1050DEFUN ("char-charset", Fchar_charset, Schar_charset, 1, 1, 0, 1050DEFUN ("char-charset", Fchar_charset, Schar_charset, 1, 1, 0,
1051 doc: /* Return charset of CHAR. */) 1051 doc: /* Return charset of CH. */)
1052 (ch) 1052 (ch)
1053 Lisp_Object ch; 1053 Lisp_Object ch;
1054{ 1054{
@@ -1179,7 +1179,7 @@ The conversion is done based on `nonascii-translation-table' (which see)
1179} 1179}
1180 1180
1181DEFUN ("char-bytes", Fchar_bytes, Schar_bytes, 1, 1, 0, 1181DEFUN ("char-bytes", Fchar_bytes, Schar_bytes, 1, 1, 0,
1182 doc: /* Return 1 regardless of the argument CHAR. */) 1182 doc: /* Return 1 regardless of the argument CH. */)
1183 (ch) 1183 (ch)
1184 Lisp_Object ch; 1184 Lisp_Object ch;
1185{ 1185{
@@ -1223,7 +1223,7 @@ char_bytes (c)
1223 : 4)))) 1223 : 4))))
1224 1224
1225DEFUN ("char-width", Fchar_width, Schar_width, 1, 1, 0, 1225DEFUN ("char-width", Fchar_width, Schar_width, 1, 1, 0,
1226 doc: /* Return width of CHAR when displayed in the current buffer. 1226 doc: /* Return width of CH when displayed in the current buffer.
1227The width is measured by how many columns it occupies on the screen. 1227The width is measured by how many columns it occupies on the screen.
1228Tab is taken to occupy `tab-width' columns. */) 1228Tab is taken to occupy `tab-width' columns. */)
1229 (ch) 1229 (ch)
@@ -1406,18 +1406,18 @@ When calculating width of a multibyte character in STRING,
1406only the base leading-code is considered; the validity of 1406only the base leading-code is considered; the validity of
1407the following bytes is not checked. Tabs in STRING are always 1407the following bytes is not checked. Tabs in STRING are always
1408taken to occupy `tab-width' columns. */) 1408taken to occupy `tab-width' columns. */)
1409 (str) 1409 (string)
1410 Lisp_Object str; 1410 Lisp_Object string;
1411{ 1411{
1412 Lisp_Object val; 1412 Lisp_Object val;
1413 1413
1414 CHECK_STRING (str); 1414 CHECK_STRING (string);
1415 XSETFASTINT (val, lisp_string_width (str, -1, NULL, NULL)); 1415 XSETFASTINT (val, lisp_string_width (string, -1, NULL, NULL));
1416 return val; 1416 return val;
1417} 1417}
1418 1418
1419DEFUN ("char-direction", Fchar_direction, Schar_direction, 1, 1, 0, 1419DEFUN ("char-direction", Fchar_direction, Schar_direction, 1, 1, 0,
1420 doc: /* Return the direction of CHAR. 1420 doc: /* Return the direction of CH.
1421The returned value is 0 for left-to-right and 1 for right-to-left. */) 1421The returned value is 0 for left-to-right and 1 for right-to-left. */)
1422 (ch) 1422 (ch)
1423 Lisp_Object ch; 1423 Lisp_Object ch;
diff --git a/src/data.c b/src/data.c
index 992aac66476..5a1a648dcb7 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1407,7 +1407,7 @@ local bindings in certain buffers. */)
1407} 1407}
1408 1408
1409DEFUN ("set-default", Fset_default, Sset_default, 2, 2, 0, 1409DEFUN ("set-default", Fset_default, Sset_default, 2, 2, 0,
1410 doc: /* Set SYMBOL's default value to VAL. SYMBOL and VAL are evaluated. 1410 doc: /* Set SYMBOL's default value to VALUE. SYMBOL and VALUE are evaluated.
1411The default value is seen in buffers that do not have their own values 1411The default value is seen in buffers that do not have their own values
1412for this variable. */) 1412for this variable. */)
1413 (symbol, value) 1413 (symbol, value)
diff --git a/src/emacs.c b/src/emacs.c
index 75bea1da4cf..f7bae2dc13d 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -105,6 +105,7 @@ EMACS_INT gdb_data_seg_bits = DATA_SEG_BITS;
105EMACS_INT gdb_data_seg_bits = 0; 105EMACS_INT gdb_data_seg_bits = 0;
106#endif 106#endif
107EMACS_INT PVEC_FLAG = PSEUDOVECTOR_FLAG; 107EMACS_INT PVEC_FLAG = PSEUDOVECTOR_FLAG;
108EMACS_INT gdb_array_mark_flag = ARRAY_MARK_FLAG;
108 109
109/* Command line args from shell, as list of strings. */ 110/* Command line args from shell, as list of strings. */
110Lisp_Object Vcommand_line_args; 111Lisp_Object Vcommand_line_args;
diff --git a/src/image.c b/src/image.c
index c7bedb5de32..700ab3fa2d9 100644
--- a/src/image.c
+++ b/src/image.c
@@ -3184,12 +3184,15 @@ xbm_load (f, img)
3184 XPM images 3184 XPM images
3185 ***********************************************************************/ 3185 ***********************************************************************/
3186 3186
3187#ifdef HAVE_XPM 3187#if defined (HAVE_XPM) || defined (MAC_OS)
3188 3188
3189static int xpm_image_p P_ ((Lisp_Object object)); 3189static int xpm_image_p P_ ((Lisp_Object object));
3190static int xpm_load P_ ((struct frame *f, struct image *img)); 3190static int xpm_load P_ ((struct frame *f, struct image *img));
3191static int xpm_valid_color_symbols_p P_ ((Lisp_Object)); 3191static int xpm_valid_color_symbols_p P_ ((Lisp_Object));
3192 3192
3193#endif /* HAVE_XPM || MAC_OS */
3194
3195#ifdef HAVE_XPM
3193#ifdef HAVE_NTGUI 3196#ifdef HAVE_NTGUI
3194/* Indicate to xpm.h that we don't have Xlib. */ 3197/* Indicate to xpm.h that we don't have Xlib. */
3195#define FOR_MSW 3198#define FOR_MSW
@@ -3208,7 +3211,9 @@ static int xpm_valid_color_symbols_p P_ ((Lisp_Object));
3208#else 3211#else
3209#include "X11/xpm.h" 3212#include "X11/xpm.h"
3210#endif /* HAVE_NTGUI */ 3213#endif /* HAVE_NTGUI */
3214#endif /* HAVE_XPM */
3211 3215
3216#if defined (HAVE_XPM) || defined (MAC_OS)
3212/* The symbol `xpm' identifying XPM-format images. */ 3217/* The symbol `xpm' identifying XPM-format images. */
3213 3218
3214Lisp_Object Qxpm; 3219Lisp_Object Qxpm;
@@ -3536,10 +3541,13 @@ xpm_image_p (object)
3536 || xpm_valid_color_symbols_p (fmt[XPM_COLOR_SYMBOLS].value))); 3541 || xpm_valid_color_symbols_p (fmt[XPM_COLOR_SYMBOLS].value)));
3537} 3542}
3538 3543
3544#endif /* HAVE_XPM || MAC_OS */
3539 3545
3540/* Load image IMG which will be displayed on frame F. Value is 3546/* Load image IMG which will be displayed on frame F. Value is
3541 non-zero if successful. */ 3547 non-zero if successful. */
3542 3548
3549#ifdef HAVE_XPM
3550
3543static int 3551static int
3544xpm_load (f, img) 3552xpm_load (f, img)
3545 struct frame *f; 3553 struct frame *f;
@@ -3771,6 +3779,467 @@ xpm_load (f, img)
3771 3779
3772#endif /* HAVE_XPM */ 3780#endif /* HAVE_XPM */
3773 3781
3782#ifdef MAC_OS
3783
3784/* XPM support functions for Mac OS where libxpm is not available.
3785 Only XPM version 3 (without any extensions) is supported. */
3786
3787static int xpm_scan P_ ((unsigned char **, unsigned char *,
3788 unsigned char **, int *));
3789static Lisp_Object xpm_make_color_table_v
3790 P_ ((void (**) (Lisp_Object, unsigned char *, int, Lisp_Object),
3791 Lisp_Object (**) (Lisp_Object, unsigned char *, int)));
3792static void xpm_put_color_table_v P_ ((Lisp_Object, unsigned char *,
3793 int, Lisp_Object));
3794static Lisp_Object xpm_get_color_table_v P_ ((Lisp_Object,
3795 unsigned char *, int));
3796static Lisp_Object xpm_make_color_table_h
3797 P_ ((void (**) (Lisp_Object, unsigned char *, int, Lisp_Object),
3798 Lisp_Object (**) (Lisp_Object, unsigned char *, int)));
3799static void xpm_put_color_table_h P_ ((Lisp_Object, unsigned char *,
3800 int, Lisp_Object));
3801static Lisp_Object xpm_get_color_table_h P_ ((Lisp_Object,
3802 unsigned char *, int));
3803static int xpm_str_to_color_key P_ ((char *));
3804static int xpm_load_image P_ ((struct frame *, struct image *,
3805 unsigned char *, unsigned char *));
3806
3807/* Tokens returned from xpm_scan. */
3808
3809enum xpm_token
3810{
3811 XPM_TK_IDENT = 256,
3812 XPM_TK_STRING,
3813 XPM_TK_EOF
3814};
3815
3816/* Scan an XPM data and return a character (< 256) or a token defined
3817 by enum xpm_token above. *S and END are the start (inclusive) and
3818 the end (exclusive) addresses of the data, respectively. Advance
3819 *S while scanning. If token is either XPM_TK_IDENT or
3820 XPM_TK_STRING, *BEG and *LEN are set to the start address and the
3821 length of the corresponding token, respectively. */
3822
3823static int
3824xpm_scan (s, end, beg, len)
3825 unsigned char **s, *end, **beg;
3826 int *len;
3827{
3828 int c;
3829
3830 while (*s < end)
3831 {
3832 /* Skip white-space. */
3833 while (*s < end && (c = *(*s)++, isspace (c)))
3834 ;
3835
3836 /* gnus-pointer.xpm uses '-' in its identifier.
3837 sb-dir-plus.xpm uses '+' in its identifier. */
3838 if (isalpha (c) || c == '_' || c == '-' || c == '+')
3839 {
3840 *beg = *s - 1;
3841 while (*s < end &&
3842 (c = **s, isalnum (c) || c == '_' || c == '-' || c == '+'))
3843 ++*s;
3844 *len = *s - *beg;
3845 return XPM_TK_IDENT;
3846 }
3847 else if (c == '"')
3848 {
3849 *beg = *s;
3850 while (*s < end && **s != '"')
3851 ++*s;
3852 *len = *s - *beg;
3853 if (*s < end)
3854 ++*s;
3855 return XPM_TK_STRING;
3856 }
3857 else if (c == '/')
3858 {
3859 if (*s < end && **s == '*')
3860 {
3861 /* C-style comment. */
3862 ++*s;
3863 do
3864 {
3865 while (*s < end && *(*s)++ != '*')
3866 ;
3867 }
3868 while (*s < end && **s != '/');
3869 if (*s < end)
3870 ++*s;
3871 }
3872 else
3873 return c;
3874 }
3875 else
3876 return c;
3877 }
3878
3879 return XPM_TK_EOF;
3880}
3881
3882/* Functions for color table lookup in XPM data. A Key is a string
3883 specifying the color of each pixel in XPM data. A value is either
3884 an integer that specifies a pixel color, Qt that specifies
3885 transparency, or Qnil for the unspecified color. If the length of
3886 the key string is one, a vector is used as a table. Otherwise, a
3887 hash table is used. */
3888
3889static Lisp_Object
3890xpm_make_color_table_v (put_func, get_func)
3891 void (**put_func) (Lisp_Object, unsigned char *, int, Lisp_Object);
3892 Lisp_Object (**get_func) (Lisp_Object, unsigned char *, int);
3893{
3894 *put_func = xpm_put_color_table_v;
3895 *get_func = xpm_get_color_table_v;
3896 return Fmake_vector (make_number (256), Qnil);
3897}
3898
3899static void
3900xpm_put_color_table_v (color_table, chars_start, chars_len, color)
3901 Lisp_Object color_table;
3902 unsigned char *chars_start;
3903 int chars_len;
3904 Lisp_Object color;
3905{
3906 XVECTOR (color_table)->contents[*chars_start] = color;
3907}
3908
3909static Lisp_Object
3910xpm_get_color_table_v (color_table, chars_start, chars_len)
3911 Lisp_Object color_table;
3912 unsigned char *chars_start;
3913 int chars_len;
3914{
3915 return XVECTOR (color_table)->contents[*chars_start];
3916}
3917
3918static Lisp_Object
3919xpm_make_color_table_h (put_func, get_func)
3920 void (**put_func) (Lisp_Object, unsigned char *, int, Lisp_Object);
3921 Lisp_Object (**get_func) (Lisp_Object, unsigned char *, int);
3922{
3923 *put_func = xpm_put_color_table_h;
3924 *get_func = xpm_get_color_table_h;
3925 return make_hash_table (Qequal, make_number (DEFAULT_HASH_SIZE),
3926 make_float (DEFAULT_REHASH_SIZE),
3927 make_float (DEFAULT_REHASH_THRESHOLD),
3928 Qnil, Qnil, Qnil);
3929}
3930
3931static void
3932xpm_put_color_table_h (color_table, chars_start, chars_len, color)
3933 Lisp_Object color_table;
3934 unsigned char *chars_start;
3935 int chars_len;
3936 Lisp_Object color;
3937{
3938 struct Lisp_Hash_Table *table = XHASH_TABLE (color_table);
3939 unsigned hash_code;
3940 Lisp_Object chars = make_unibyte_string (chars_start, chars_len);
3941
3942 hash_lookup (table, chars, &hash_code);
3943 hash_put (table, chars, color, hash_code);
3944}
3945
3946static Lisp_Object
3947xpm_get_color_table_h (color_table, chars_start, chars_len)
3948 Lisp_Object color_table;
3949 unsigned char *chars_start;
3950 int chars_len;
3951{
3952 struct Lisp_Hash_Table *table = XHASH_TABLE (color_table);
3953 int i = hash_lookup (table, make_unibyte_string (chars_start, chars_len),
3954 NULL);
3955
3956 return i >= 0 ? HASH_VALUE (table, i) : Qnil;
3957}
3958
3959enum xpm_color_key {
3960 XPM_COLOR_KEY_S,
3961 XPM_COLOR_KEY_M,
3962 XPM_COLOR_KEY_G4,
3963 XPM_COLOR_KEY_G,
3964 XPM_COLOR_KEY_C
3965};
3966
3967static char xpm_color_key_strings[][4] = {"s", "m", "g4", "g", "c"};
3968
3969static int
3970xpm_str_to_color_key (s)
3971 char *s;
3972{
3973 int i;
3974
3975 for (i = 0;
3976 i < sizeof xpm_color_key_strings / sizeof xpm_color_key_strings[0];
3977 i++)
3978 if (strcmp (xpm_color_key_strings[i], s) == 0)
3979 return i;
3980 return -1;
3981}
3982
3983static int
3984xpm_load_image (f, img, contents, end)
3985 struct frame *f;
3986 struct image *img;
3987 unsigned char *contents, *end;
3988{
3989 unsigned char *s = contents, *beg, *str;
3990 unsigned char buffer[BUFSIZ];
3991 int width, height, x, y;
3992 int num_colors, chars_per_pixel;
3993 int len, LA1;
3994 void (*put_color_table) (Lisp_Object, unsigned char *, int, Lisp_Object);
3995 Lisp_Object (*get_color_table) (Lisp_Object, unsigned char *, int);
3996 Lisp_Object frame, color_symbols, color_table;
3997 int best_key, have_mask = 0;
3998 XImagePtr ximg = NULL, mask_img = NULL;
3999
4000#define match() \
4001 LA1 = xpm_scan (&s, end, &beg, &len)
4002
4003#define expect(TOKEN) \
4004 if (LA1 != (TOKEN)) \
4005 goto failure; \
4006 else \
4007 match ()
4008
4009#define expect_ident(IDENT) \
4010 if (LA1 == XPM_TK_IDENT \
4011 && strlen ((IDENT)) == len && memcmp ((IDENT), beg, len) == 0) \
4012 match (); \
4013 else \
4014 goto failure
4015
4016 if (!(end - s >= 9 && memcmp (s, "/* XPM */", 9) == 0))
4017 goto failure;
4018 s += 9;
4019 match();
4020 expect_ident ("static");
4021 expect_ident ("char");
4022 expect ('*');
4023 expect (XPM_TK_IDENT);
4024 expect ('[');
4025 expect (']');
4026 expect ('=');
4027 expect ('{');
4028 expect (XPM_TK_STRING);
4029 if (len >= BUFSIZ)
4030 goto failure;
4031 memcpy (buffer, beg, len);
4032 buffer[len] = '\0';
4033 if (sscanf (buffer, "%d %d %d %d", &width, &height,
4034 &num_colors, &chars_per_pixel) != 4
4035 || width <= 0 || height <= 0
4036 || num_colors <= 0 || chars_per_pixel <= 0)
4037 goto failure;
4038 expect (',');
4039
4040 XSETFRAME (frame, f);
4041 if (!NILP (Fxw_display_color_p (frame)))
4042 best_key = XPM_COLOR_KEY_C;
4043 else if (!NILP (Fx_display_grayscale_p (frame)))
4044 best_key = (XFASTINT (Fx_display_planes (frame)) > 2
4045 ? XPM_COLOR_KEY_G : XPM_COLOR_KEY_G4);
4046 else
4047 best_key = XPM_COLOR_KEY_M;
4048
4049 color_symbols = image_spec_value (img->spec, QCcolor_symbols, NULL);
4050 if (chars_per_pixel == 1)
4051 color_table = xpm_make_color_table_v (&put_color_table,
4052 &get_color_table);
4053 else
4054 color_table = xpm_make_color_table_h (&put_color_table,
4055 &get_color_table);
4056
4057 while (num_colors-- > 0)
4058 {
4059 unsigned char *color, *max_color;
4060 int key, next_key, max_key = 0;
4061 Lisp_Object symbol_color = Qnil, color_val;
4062 XColor cdef;
4063
4064 expect (XPM_TK_STRING);
4065 if (len <= chars_per_pixel || len >= BUFSIZ + chars_per_pixel)
4066 goto failure;
4067 memcpy (buffer, beg + chars_per_pixel, len - chars_per_pixel);
4068 buffer[len - chars_per_pixel] = '\0';
4069
4070 str = strtok (buffer, " \t");
4071 if (str == NULL)
4072 goto failure;
4073 key = xpm_str_to_color_key (str);
4074 if (key < 0)
4075 goto failure;
4076 do
4077 {
4078 color = strtok (NULL, " \t");
4079 if (color == NULL)
4080 goto failure;
4081
4082 while (str = strtok (NULL, " \t"))
4083 {
4084 next_key = xpm_str_to_color_key (str);
4085 if (next_key >= 0)
4086 break;
4087 color[strlen (color)] = ' ';
4088 }
4089
4090 if (key == XPM_COLOR_KEY_S)
4091 {
4092 if (NILP (symbol_color))
4093 symbol_color = build_string (color);
4094 }
4095 else if (max_key < key && key <= best_key)
4096 {
4097 max_key = key;
4098 max_color = color;
4099 }
4100 key = next_key;
4101 }
4102 while (str);
4103
4104 color_val = Qnil;
4105 if (!NILP (color_symbols) && !NILP (symbol_color))
4106 {
4107 Lisp_Object specified_color = Fassoc (symbol_color, color_symbols);
4108
4109 if (CONSP (specified_color) && STRINGP (XCDR (specified_color)))
4110 if (xstricmp (SDATA (XCDR (specified_color)), "None") == 0)
4111 color_val = Qt;
4112 else if (x_defined_color (f, SDATA (XCDR (specified_color)),
4113 &cdef, 0))
4114 color_val = make_number (cdef.pixel);
4115 }
4116 if (NILP (color_val) && max_key > 0)
4117 if (xstricmp (max_color, "None") == 0)
4118 color_val = Qt;
4119 else if (x_defined_color (f, max_color, &cdef, 0))
4120 color_val = make_number (cdef.pixel);
4121 if (!NILP (color_val))
4122 (*put_color_table) (color_table, beg, chars_per_pixel, color_val);
4123
4124 expect (',');
4125 }
4126
4127 if (!x_create_x_image_and_pixmap (f, width, height, 0,
4128 &ximg, &img->pixmap)
4129 || !x_create_x_image_and_pixmap (f, width, height, 1,
4130 &mask_img, &img->mask))
4131 {
4132 image_error ("Out of memory (%s)", img->spec, Qnil);
4133 goto error;
4134 }
4135
4136 for (y = 0; y < height; y++)
4137 {
4138 expect (XPM_TK_STRING);
4139 str = beg;
4140 if (len < width * chars_per_pixel)
4141 goto failure;
4142 for (x = 0; x < width; x++, str += chars_per_pixel)
4143 {
4144 Lisp_Object color_val =
4145 (*get_color_table) (color_table, str, chars_per_pixel);
4146
4147 XPutPixel (ximg, x, y,
4148 (INTEGERP (color_val) ? XINT (color_val)
4149 : FRAME_FOREGROUND_PIXEL (f)));
4150 XPutPixel (mask_img, x, y,
4151 (!EQ (color_val, Qt) ? PIX_MASK_DRAW (f)
4152 : (have_mask = 1, PIX_MASK_RETAIN (f))));
4153 }
4154 if (y + 1 < height)
4155 expect (',');
4156 }
4157
4158 img->width = width;
4159 img->height = height;
4160
4161 x_put_x_image (f, ximg, img->pixmap, width, height);
4162 x_destroy_x_image (ximg);
4163 if (have_mask)
4164 {
4165 x_put_x_image (f, mask_img, img->mask, width, height);
4166 x_destroy_x_image (mask_img);
4167 }
4168 else
4169 {
4170 x_destroy_x_image (mask_img);
4171 Free_Pixmap (FRAME_X_DISPLAY (f), img->mask);
4172 img->mask = NO_PIXMAP;
4173 }
4174
4175 return 1;
4176
4177 failure:
4178 image_error ("Invalid XPM file (%s)", img->spec, Qnil);
4179 error:
4180 x_destroy_x_image (ximg);
4181 x_destroy_x_image (mask_img);
4182 x_clear_image (f, img);
4183 return 0;
4184
4185#undef match
4186#undef expect
4187#undef expect_ident
4188}
4189
4190static int
4191xpm_load (f, img)
4192 struct frame *f;
4193 struct image *img;
4194{
4195 int success_p = 0;
4196 Lisp_Object file_name;
4197
4198 /* If IMG->spec specifies a file name, create a non-file spec from it. */
4199 file_name = image_spec_value (img->spec, QCfile, NULL);
4200 if (STRINGP (file_name))
4201 {
4202 Lisp_Object file;
4203 unsigned char *contents;
4204 int size;
4205 struct gcpro gcpro1;
4206
4207 file = x_find_image_file (file_name);
4208 GCPRO1 (file);
4209 if (!STRINGP (file))
4210 {
4211 image_error ("Cannot find image file `%s'", file_name, Qnil);
4212 UNGCPRO;
4213 return 0;
4214 }
4215
4216 contents = slurp_file (SDATA (file), &size);
4217 if (contents == NULL)
4218 {
4219 image_error ("Error loading XPM image `%s'", img->spec, Qnil);
4220 UNGCPRO;
4221 return 0;
4222 }
4223
4224 success_p = xpm_load_image (f, img, contents, contents + size);
4225 xfree (contents);
4226 UNGCPRO;
4227 }
4228 else
4229 {
4230 Lisp_Object data;
4231
4232 data = image_spec_value (img->spec, QCdata, NULL);
4233 success_p = xpm_load_image (f, img, SDATA (data),
4234 SDATA (data) + SBYTES (data));
4235 }
4236
4237 return success_p;
4238}
4239
4240#endif /* MAC_OS */
4241
4242
3774 4243
3775/*********************************************************************** 4244/***********************************************************************
3776 Color table 4245 Color table
@@ -7447,7 +7916,7 @@ syms_of_image ()
7447 Qxbm = intern ("xbm"); 7916 Qxbm = intern ("xbm");
7448 staticpro (&Qxbm); 7917 staticpro (&Qxbm);
7449 7918
7450#ifdef HAVE_XPM 7919#if defined (HAVE_XPM) || defined (MAC_OS)
7451 Qxpm = intern ("xpm"); 7920 Qxpm = intern ("xpm");
7452 staticpro (&Qxpm); 7921 staticpro (&Qxpm);
7453#endif 7922#endif
@@ -7517,7 +7986,7 @@ init_image ()
7517 define_image_type (&xbm_type); 7986 define_image_type (&xbm_type);
7518 define_image_type (&pbm_type); 7987 define_image_type (&pbm_type);
7519 7988
7520#ifdef HAVE_XPM 7989#if defined (HAVE_XPM) || defined (MAC_OS)
7521 IF_LIB_AVAILABLE(init_xpm_functions) 7990 IF_LIB_AVAILABLE(init_xpm_functions)
7522 define_image_type (&xpm_type); 7991 define_image_type (&xpm_type);
7523#endif 7992#endif
diff --git a/src/keyboard.c b/src/keyboard.c
index 2a1c1c89e87..75a049b5775 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -985,6 +985,11 @@ This function is called by the editor initialization to begin editing. */)
985 int count = SPECPDL_INDEX (); 985 int count = SPECPDL_INDEX ();
986 Lisp_Object buffer; 986 Lisp_Object buffer;
987 987
988 /* If we enter while input is blocked, don't lock up here.
989 This may happen through the debugger during redisplay. */
990 if (INPUT_BLOCKED_P)
991 return Qnil;
992
988 command_loop_level++; 993 command_loop_level++;
989 update_mode_lines = 1; 994 update_mode_lines = 1;
990 995
@@ -1281,6 +1286,12 @@ DEFUN ("top-level", Ftop_level, Stop_level, 0, 0, "",
1281 if (display_hourglass_p) 1286 if (display_hourglass_p)
1282 cancel_hourglass (); 1287 cancel_hourglass ();
1283#endif 1288#endif
1289
1290 /* Unblock input if we enter with input blocked. This may happen if
1291 redisplay traps e.g. during tool-bar update with input blocked. */
1292 while (INPUT_BLOCKED_P)
1293 UNBLOCK_INPUT;
1294
1284 return Fthrow (Qtop_level, Qnil); 1295 return Fthrow (Qtop_level, Qnil);
1285} 1296}
1286 1297
@@ -3964,9 +3975,7 @@ kbd_buffer_get_event (kbp, used_mouse_menu)
3964 else if (event->kind == LANGUAGE_CHANGE_EVENT) 3975 else if (event->kind == LANGUAGE_CHANGE_EVENT)
3965 { 3976 {
3966 /* Make an event (language-change (FRAME CHARSET LCID)). */ 3977 /* Make an event (language-change (FRAME CHARSET LCID)). */
3967 obj = Fcons (event->modifiers, Qnil); 3978 obj = Fcons (event->frame_or_window, Qnil);
3968 obj = Fcons (event->code, obj);
3969 obj = Fcons (event->frame_or_window, obj);
3970 obj = Fcons (Qlanguage_change, Fcons (obj, Qnil)); 3979 obj = Fcons (Qlanguage_change, Fcons (obj, Qnil));
3971 kbd_fetch_ptr = event + 1; 3980 kbd_fetch_ptr = event + 1;
3972 } 3981 }
@@ -11548,8 +11557,11 @@ mark_kboards ()
11548 { 11557 {
11549 if (event == kbd_buffer + KBD_BUFFER_SIZE) 11558 if (event == kbd_buffer + KBD_BUFFER_SIZE)
11550 event = kbd_buffer; 11559 event = kbd_buffer;
11551 mark_object (event->x); 11560 if (event->kind != SELECTION_REQUEST_EVENT)
11552 mark_object (event->y); 11561 {
11562 mark_object (event->x);
11563 mark_object (event->y);
11564 }
11553 mark_object (event->frame_or_window); 11565 mark_object (event->frame_or_window);
11554 mark_object (event->arg); 11566 mark_object (event->arg);
11555 } 11567 }
diff --git a/src/lisp.h b/src/lisp.h
index 023bedaea04..ca060cb4c2f 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -284,24 +284,51 @@ enum pvec_type
284#define BOOL_VECTOR_BITS_PER_CHAR 8 284#define BOOL_VECTOR_BITS_PER_CHAR 8
285 285
286/***** Select the tagging scheme. *****/ 286/***** Select the tagging scheme. *****/
287/* There are basically two options that control the tagging scheme:
288 - NO_UNION_TYPE says that Lisp_Object should be an integer instead
289 of a union.
290 - USE_LSB_TAG means that we can assume the least 3 bits of pointers are
291 always 0, and we can thus use them to hold tag bits, without
292 restricting our addressing space.
293
294 If USE_LSB_TAG is not set, then we use the top 3 bits for tagging, thus
295 restricting our possible address range. Currently USE_LSB_TAG is not
296 allowed together with a union. This is not due to any fundamental
297 technical (or political ;-) problem: nobody wrote the code to do it yet.
298
299 USE_LSB_TAG not only requires the least 3 bits of pointers returned by
300 malloc to be 0 but also needs to be able to impose a mult-of-8 alignment
301 on the few static Lisp_Objects used: all the defsubr as well
302 as the two special buffers buffer_defaults and buffer_local_symbols. */
287 303
288/* First, try and define DECL_ALIGN(type,var) which declares a static 304/* First, try and define DECL_ALIGN(type,var) which declares a static
289 variable VAR of type TYPE with the added requirement that it be 305 variable VAR of type TYPE with the added requirement that it be
290 TYPEBITS-aligned. */ 306 TYPEBITS-aligned. */
291#if defined USE_LSB_TAG && !defined DECL_ALIGN 307#ifndef DECL_ALIGN
292/* What compiler directive should we use for non-gcc compilers? -stef */ 308/* What compiler directive should we use for non-gcc compilers? -stef */
293# if defined (__GNUC__) 309# if defined (__GNUC__)
294# define DECL_ALIGN(type, var) \ 310# define DECL_ALIGN(type, var) \
295 type __attribute__ ((__aligned__ (1 << GCTYPEBITS))) var 311 type __attribute__ ((__aligned__ (1 << GCTYPEBITS))) var
296# else
297# error "USE_LSB_TAG used without defining DECL_ALIGN"
298# endif 312# endif
299#endif 313#endif
300 314
301#ifndef USE_LSB_TAG 315/* Let's USE_LSB_TAG on systems where we know malloc returns mult-of-8. */
316#if defined GNU_MALLOC || defined DOUG_LEA_MALLOC || defined __GLIBC__ || defined MAC_OSX
317/* We also need to be able to specify mult-of-8 alignment on static vars. */
318# if defined DECL_ALIGN
319/* We currently do not support USE_LSB_TAG with a union Lisp_Object. */
320# if defined NO_UNION_TYPE
321# define USE_LSB_TAG
322# endif
323# endif
324#endif
325
302/* Just remove the alignment annotation if we don't use it. */ 326/* Just remove the alignment annotation if we don't use it. */
303#undef DECL_ALIGN 327#ifndef DECL_ALIGN
304#define DECL_ALIGN(type, var) type var 328# ifdef USE_LSB_TAG
329# error "USE_LSB_TAG used without defining DECL_ALIGN"
330# endif
331# define DECL_ALIGN(type, var) type var
305#endif 332#endif
306 333
307 334
@@ -2857,6 +2884,10 @@ extern int indented_beyond_p P_ ((int, int, double));
2857extern void syms_of_indent P_ ((void)); 2884extern void syms_of_indent P_ ((void));
2858 2885
2859/* defined in frame.c */ 2886/* defined in frame.c */
2887#ifdef HAVE_WINDOW_SYSTEM
2888extern Lisp_Object Vx_resource_name;
2889extern Lisp_Object Vx_resource_class;
2890#endif /* HAVE_WINDOW_SYSTEM */
2860extern Lisp_Object Qvisible; 2891extern Lisp_Object Qvisible;
2861extern void store_frame_param P_ ((struct frame *, Lisp_Object, Lisp_Object)); 2892extern void store_frame_param P_ ((struct frame *, Lisp_Object, Lisp_Object));
2862extern void store_in_alist P_ ((Lisp_Object *, Lisp_Object, Lisp_Object)); 2893extern void store_in_alist P_ ((Lisp_Object *, Lisp_Object, Lisp_Object));
@@ -3079,11 +3110,12 @@ extern int getloadavg P_ ((double *, int));
3079#ifdef HAVE_X_WINDOWS 3110#ifdef HAVE_X_WINDOWS
3080/* Defined in xfns.c */ 3111/* Defined in xfns.c */
3081extern void syms_of_xfns P_ ((void)); 3112extern void syms_of_xfns P_ ((void));
3082extern Lisp_Object Vx_resource_name; 3113#endif /* HAVE_X_WINDOWS */
3083extern Lisp_Object Vx_resource_class; 3114#ifdef HAVE_WINDOW_SYSTEM
3115/* Defined in xfns.c, w32fns.c, or macfns.c */
3084EXFUN (Fxw_display_color_p, 1); 3116EXFUN (Fxw_display_color_p, 1);
3085EXFUN (Fx_file_dialog, 4); 3117EXFUN (Fx_file_dialog, 4);
3086#endif /* HAVE_X_WINDOWS */ 3118#endif /* HAVE_WINDOW_SYSTEM */
3087 3119
3088/* Defined in xsmfns.c */ 3120/* Defined in xsmfns.c */
3089extern void syms_of_xsmfns P_ ((void)); 3121extern void syms_of_xsmfns P_ ((void));
@@ -3109,9 +3141,7 @@ extern void xfree P_ ((POINTER_TYPE *));
3109 3141
3110extern char *xstrdup P_ ((const char *)); 3142extern char *xstrdup P_ ((const char *));
3111 3143
3112#ifndef USE_CRT_DLL
3113extern char *egetenv P_ ((char *)); 3144extern char *egetenv P_ ((char *));
3114#endif
3115 3145
3116/* Set up the name of the machine we're running on. */ 3146/* Set up the name of the machine we're running on. */
3117extern void init_system_name P_ ((void)); 3147extern void init_system_name P_ ((void));
diff --git a/src/macfns.c b/src/macfns.c
index dbb8adb3fe1..625ca29336c 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -2598,7 +2598,7 @@ This function is an internal primitive--use `make-frame' instead. */)
2598 2598
2599 if (!NILP (parent)) 2599 if (!NILP (parent))
2600 { 2600 {
2601 f->output_data.mac->parent_desc = (Window) parent; 2601 f->output_data.mac->parent_desc = (Window) XFASTINT (parent);
2602 f->output_data.mac->explicit_parent = 1; 2602 f->output_data.mac->explicit_parent = 1;
2603 } 2603 }
2604 else 2604 else
@@ -2708,7 +2708,7 @@ This function is an internal primitive--use `make-frame' instead. */)
2708 2708
2709 x_default_parameter (f, parms, Qmenu_bar_lines, make_number (1), 2709 x_default_parameter (f, parms, Qmenu_bar_lines, make_number (1),
2710 "menuBar", "MenuBar", RES_TYPE_NUMBER); 2710 "menuBar", "MenuBar", RES_TYPE_NUMBER);
2711 x_default_parameter (f, parms, Qtool_bar_lines, make_number (0), 2711 x_default_parameter (f, parms, Qtool_bar_lines, make_number (1),
2712 "toolBar", "ToolBar", RES_TYPE_NUMBER); 2712 "toolBar", "ToolBar", RES_TYPE_NUMBER);
2713 x_default_parameter (f, parms, Qbuffer_predicate, Qnil, 2713 x_default_parameter (f, parms, Qbuffer_predicate, Qnil,
2714 "bufferPredicate", "BufferPredicate", RES_TYPE_SYMBOL); 2714 "bufferPredicate", "BufferPredicate", RES_TYPE_SYMBOL);
diff --git a/src/macmenu.c b/src/macmenu.c
index 06b1b16cf41..de768d4aea5 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -1424,7 +1424,8 @@ set_frame_menubar (f, first_time, deep_p)
1424 1424
1425 for (i = 0; i < previous_menu_items_used; i++) 1425 for (i = 0; i < previous_menu_items_used; i++)
1426 if (menu_items_used == i 1426 if (menu_items_used == i
1427 || (!Fequal (previous_items[i], XVECTOR (menu_items)->contents[i]))) 1427 || (NILP (Fequal (previous_items[i],
1428 XVECTOR (menu_items)->contents[i]))))
1428 break; 1429 break;
1429 if (i == menu_items_used && i == previous_menu_items_used && i != 0) 1430 if (i == menu_items_used && i == previous_menu_items_used && i != 0)
1430 { 1431 {
diff --git a/src/macterm.c b/src/macterm.c
index 1a281d808a0..9351fd5e36f 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -1210,7 +1210,7 @@ x_flush (f)
1210 FOR_EACH_FRAME (rest, frame) 1210 FOR_EACH_FRAME (rest, frame)
1211 x_flush (XFRAME (frame)); 1211 x_flush (XFRAME (frame));
1212 } 1212 }
1213 else if (FRAME_X_P (f)) 1213 else if (FRAME_MAC_P (f))
1214 XFlush (FRAME_MAC_DISPLAY (f)); 1214 XFlush (FRAME_MAC_DISPLAY (f));
1215 UNBLOCK_INPUT; 1215 UNBLOCK_INPUT;
1216#endif /* TARGET_API_MAC_CARBON */ 1216#endif /* TARGET_API_MAC_CARBON */
@@ -1410,7 +1410,7 @@ static void
1410XTframe_up_to_date (f) 1410XTframe_up_to_date (f)
1411 struct frame *f; 1411 struct frame *f;
1412{ 1412{
1413 if (FRAME_X_P (f)) 1413 if (FRAME_MAC_P (f))
1414 { 1414 {
1415 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); 1415 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
1416 1416
@@ -7033,8 +7033,8 @@ static int
7033mac_get_emulated_btn ( UInt32 modifiers ) 7033mac_get_emulated_btn ( UInt32 modifiers )
7034{ 7034{
7035 int result = 0; 7035 int result = 0;
7036 if (Vmac_emulate_three_button_mouse != Qnil) { 7036 if (!NILP (Vmac_emulate_three_button_mouse)) {
7037 int cmdIs3 = (Vmac_emulate_three_button_mouse != Qreverse); 7037 int cmdIs3 = !EQ (Vmac_emulate_three_button_mouse, Qreverse);
7038 if (modifiers & controlKey) 7038 if (modifiers & controlKey)
7039 result = cmdIs3 ? 2 : 1; 7039 result = cmdIs3 ? 2 : 1;
7040 else if (modifiers & optionKey) 7040 else if (modifiers & optionKey)
@@ -7052,7 +7052,7 @@ mac_event_to_emacs_modifiers (EventRef eventRef)
7052 UInt32 mods = 0; 7052 UInt32 mods = 0;
7053 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL, 7053 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL,
7054 sizeof (UInt32), NULL, &mods); 7054 sizeof (UInt32), NULL, &mods);
7055 if (Vmac_emulate_three_button_mouse != Qnil && 7055 if (!NILP (Vmac_emulate_three_button_mouse) &&
7056 GetEventClass(eventRef) == kEventClassMouse) 7056 GetEventClass(eventRef) == kEventClassMouse)
7057 { 7057 {
7058 mods &= ~(optionKey & cmdKey); 7058 mods &= ~(optionKey & cmdKey);
@@ -7071,7 +7071,7 @@ mac_get_mouse_btn (EventRef ref)
7071 switch (result) 7071 switch (result)
7072 { 7072 {
7073 case kEventMouseButtonPrimary: 7073 case kEventMouseButtonPrimary:
7074 if (Vmac_emulate_three_button_mouse == Qnil) 7074 if (NILP (Vmac_emulate_three_button_mouse))
7075 return 0; 7075 return 0;
7076 else { 7076 else {
7077 UInt32 mods = 0; 7077 UInt32 mods = 0;
@@ -8227,7 +8227,7 @@ XTread_socket (int sd, int expected, struct input_event *hold_quit)
8227 inev.timestamp = er.when * (1000 / 60); 8227 inev.timestamp = er.when * (1000 / 60);
8228 /* ticks to milliseconds */ 8228 /* ticks to milliseconds */
8229 8229
8230 XSETINT (inev.x, tracked_scroll_bar->left + 2); 8230 XSETINT (inev.x, XFASTINT (tracked_scroll_bar->left) + 2);
8231 XSETINT (inev.y, mouse_loc.v - 24); 8231 XSETINT (inev.y, mouse_loc.v - 24);
8232 tracked_scroll_bar->dragging = Qnil; 8232 tracked_scroll_bar->dragging = Qnil;
8233 mouse_tracking_in_progress = mouse_tracking_none; 8233 mouse_tracking_in_progress = mouse_tracking_none;
@@ -8312,6 +8312,8 @@ XTread_socket (int sd, int expected, struct input_event *hold_quit)
8312 else 8312 else
8313 { 8313 {
8314 Lisp_Object window; 8314 Lisp_Object window;
8315 int x = mouse_loc.h;
8316 int y = mouse_loc.v;
8315 8317
8316 XSETFRAME (inev.frame_or_window, mwp->mFP); 8318 XSETFRAME (inev.frame_or_window, mwp->mFP);
8317 if (er.what == mouseDown) 8319 if (er.what == mouseDown)
@@ -8319,14 +8321,14 @@ XTread_socket (int sd, int expected, struct input_event *hold_quit)
8319 = mouse_tracking_mouse_movement; 8321 = mouse_tracking_mouse_movement;
8320 else 8322 else
8321 mouse_tracking_in_progress = mouse_tracking_none; 8323 mouse_tracking_in_progress = mouse_tracking_none;
8322 window = window_from_coordinates (mwp->mFP, inev.x, inev.y, 0, 0, 0, 1); 8324 window = window_from_coordinates (mwp->mFP, x, y, 0, 0, 0, 1);
8323 8325
8324 if (EQ (window, mwp->mFP->tool_bar_window)) 8326 if (EQ (window, mwp->mFP->tool_bar_window))
8325 { 8327 {
8326 if (er.what == mouseDown) 8328 if (er.what == mouseDown)
8327 handle_tool_bar_click (mwp->mFP, inev.x, inev.y, 1, 0); 8329 handle_tool_bar_click (mwp->mFP, x, y, 1, 0);
8328 else 8330 else
8329 handle_tool_bar_click (mwp->mFP, inev.x, inev.y, 0, 8331 handle_tool_bar_click (mwp->mFP, x, y, 0,
8330#if USE_CARBON_EVENTS 8332#if USE_CARBON_EVENTS
8331 mac_event_to_emacs_modifiers (eventRef) 8333 mac_event_to_emacs_modifiers (eventRef)
8332#else 8334#else
@@ -9024,7 +9026,7 @@ mac_check_for_quit_char ()
9024 EVENT_INIT (e); 9026 EVENT_INIT (e);
9025 e.kind = ASCII_KEYSTROKE_EVENT; 9027 e.kind = ASCII_KEYSTROKE_EVENT;
9026 e.code = quit_char; 9028 e.code = quit_char;
9027 e.arg = NULL; 9029 e.arg = Qnil;
9028 e.modifiers = NULL; 9030 e.modifiers = NULL;
9029 e.timestamp = EventTimeToTicks (GetEventTime (event)) * (1000/60); 9031 e.timestamp = EventTimeToTicks (GetEventTime (event)) * (1000/60);
9030 XSETFRAME (e.frame_or_window, mwp->mFP); 9032 XSETFRAME (e.frame_or_window, mwp->mFP);
diff --git a/src/macterm.h b/src/macterm.h
index 1b4148ed71d..6ce034e9534 100644
--- a/src/macterm.h
+++ b/src/macterm.h
@@ -562,8 +562,18 @@ struct scroll_bar {
562 text from glomming up against the scroll bar */ 562 text from glomming up against the scroll bar */
563#define VERTICAL_SCROLL_BAR_WIDTH_TRIM (0) 563#define VERTICAL_SCROLL_BAR_WIDTH_TRIM (0)
564 564
565 565struct frame;
566struct frame * check_x_frame (Lisp_Object); 566struct face;
567struct image;
568
569Lisp_Object display_x_get_resource P_ ((struct x_display_info *,
570 Lisp_Object, Lisp_Object,
571 Lisp_Object, Lisp_Object));
572struct frame *check_x_frame P_ ((Lisp_Object));
573EXFUN (Fx_display_color_p, 1);
574EXFUN (Fx_display_grayscale_p, 1);
575EXFUN (Fx_display_planes, 1);
576extern void x_free_gcs P_ ((struct frame *));
567 577
568void activate_scroll_bars (FRAME_PTR); 578void activate_scroll_bars (FRAME_PTR);
569void deactivate_scroll_bars (FRAME_PTR); 579void deactivate_scroll_bars (FRAME_PTR);
diff --git a/src/msdos.c b/src/msdos.c
index 6c534d6d2d9..da7fab89c7e 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -951,8 +951,8 @@ static void
951IT_write_glyphs (struct glyph *str, int str_len) 951IT_write_glyphs (struct glyph *str, int str_len)
952{ 952{
953 unsigned char *screen_buf, *screen_bp, *screen_buf_end, *bp; 953 unsigned char *screen_buf, *screen_bp, *screen_buf_end, *bp;
954 int unsupported_face = FAST_GLYPH_FACE (Vdos_unsupported_char_glyph); 954 int unsupported_face = 0;
955 unsigned unsupported_char= FAST_GLYPH_CHAR (Vdos_unsupported_char_glyph); 955 unsigned unsupported_char = '\177';
956 int offset = 2 * (new_pos_X + screen_size_X * new_pos_Y); 956 int offset = 2 * (new_pos_X + screen_size_X * new_pos_Y);
957 register int sl = str_len; 957 register int sl = str_len;
958 register int tlen = GLYPH_TABLE_LENGTH; 958 register int tlen = GLYPH_TABLE_LENGTH;
@@ -978,6 +978,13 @@ IT_write_glyphs (struct glyph *str, int str_len)
978 978
979 if (str_len <= 0) return; 979 if (str_len <= 0) return;
980 980
981 /* Set up the unsupported character glyph */
982 if (!NILP (Vdos_unsupported_char_glyph))
983 {
984 unsupported_char = FAST_GLYPH_CHAR (XINT (Vdos_unsupported_char_glyph));
985 unsupported_face = FAST_GLYPH_FACE (XINT (Vdos_unsupported_char_glyph));
986 }
987
981 screen_buf = screen_bp = alloca (str_len * 2); 988 screen_buf = screen_bp = alloca (str_len * 2);
982 screen_buf_end = screen_buf + str_len * 2; 989 screen_buf_end = screen_buf + str_len * 2;
983 sf = SELECTED_FRAME(); 990 sf = SELECTED_FRAME();
@@ -1042,7 +1049,7 @@ IT_write_glyphs (struct glyph *str, int str_len)
1042 if (! CHAR_VALID_P (ch, 0)) 1049 if (! CHAR_VALID_P (ch, 0))
1043 { 1050 {
1044 g = !NILP (Vdos_unsupported_char_glyph) 1051 g = !NILP (Vdos_unsupported_char_glyph)
1045 ? Vdos_unsupported_char_glyph 1052 ? XINT (Vdos_unsupported_char_glyph)
1046 : MAKE_GLYPH (sf, '\177', GLYPH_FACE (sf, g)); 1053 : MAKE_GLYPH (sf, '\177', GLYPH_FACE (sf, g));
1047 ch = FAST_GLYPH_CHAR (g); 1054 ch = FAST_GLYPH_CHAR (g);
1048 } 1055 }
@@ -1572,7 +1579,7 @@ IT_note_mouse_highlight (struct frame *f, int x, int y)
1572 { 1579 {
1573 extern Lisp_Object Qmouse_face; 1580 extern Lisp_Object Qmouse_face;
1574 Lisp_Object mouse_face, overlay, position, *overlay_vec; 1581 Lisp_Object mouse_face, overlay, position, *overlay_vec;
1575 int len, noverlays, obegv, ozv;; 1582 int noverlays, obegv, ozv;;
1576 struct buffer *obuf; 1583 struct buffer *obuf;
1577 1584
1578 /* If we get an out-of-range value, return now; avoid an error. */ 1585 /* If we get an out-of-range value, return now; avoid an error. */
@@ -1591,20 +1598,8 @@ IT_note_mouse_highlight (struct frame *f, int x, int y)
1591 /* Is this char mouse-active or does it have help-echo? */ 1598 /* Is this char mouse-active or does it have help-echo? */
1592 XSETINT (position, pos); 1599 XSETINT (position, pos);
1593 1600
1594 /* Put all the overlays we want in a vector in overlay_vec. 1601 /* Put all the overlays we want in a vector in overlay_vec. */
1595 Store the length in len. If there are more than 10, make 1602 GET_OVERLAYS_AT (pos, overlay_vec, noverlays, NULL, 0);
1596 enough space for all, and try again. */
1597 len = 10;
1598 overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
1599 noverlays = overlays_at (pos, 0, &overlay_vec, &len, NULL, NULL, 0);
1600 if (noverlays > len)
1601 {
1602 len = noverlays;
1603 overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
1604 noverlays = overlays_at (pos,
1605 0, &overlay_vec, &len, NULL, NULL, 0);
1606 }
1607
1608 /* Sort overlays into increasing priority order. */ 1603 /* Sort overlays into increasing priority order. */
1609 noverlays = sort_overlays (overlay_vec, noverlays, w); 1604 noverlays = sort_overlays (overlay_vec, noverlays, w);
1610 1605
@@ -5292,7 +5287,7 @@ syms_of_msdos ()
5292 DEFVAR_LISP ("dos-unsupported-char-glyph", &Vdos_unsupported_char_glyph, 5287 DEFVAR_LISP ("dos-unsupported-char-glyph", &Vdos_unsupported_char_glyph,
5293 doc: /* *Glyph to display instead of chars not supported by current codepage. 5288 doc: /* *Glyph to display instead of chars not supported by current codepage.
5294This variable is used only by MSDOS terminals. */); 5289This variable is used only by MSDOS terminals. */);
5295 Vdos_unsupported_char_glyph = '\177'; 5290 Vdos_unsupported_char_glyph = make_number ('\177');
5296 5291
5297#endif 5292#endif
5298#ifndef subprocesses 5293#ifndef subprocesses
diff --git a/src/print.c b/src/print.c
index e729b468fd1..74f8fad8d15 100644
--- a/src/print.c
+++ b/src/print.c
@@ -791,7 +791,7 @@ A printed representation of an object is text which describes that object. */)
791 if (SBYTES (object) == SCHARS (object)) 791 if (SBYTES (object) == SCHARS (object))
792 STRING_SET_UNIBYTE (object); 792 STRING_SET_UNIBYTE (object);
793 793
794 /* Note that this won't make prepare_to_modify_buffer call 794 /* Note that this won't make prepare_to_modify_buffer call
795 ask-user-about-supersession-threat because this buffer 795 ask-user-about-supersession-threat because this buffer
796 does not visit a file. */ 796 does not visit a file. */
797 Ferase_buffer (); 797 Ferase_buffer ();
@@ -929,7 +929,7 @@ DEFUN ("redirect-debugging-output", Fredirect_debugging_output, Sredirect_debugg
929 doc: /* Redirect debugging output (stderr stream) to file FILE. 929 doc: /* Redirect debugging output (stderr stream) to file FILE.
930If FILE is nil, reset target to the initial stderr stream. 930If FILE is nil, reset target to the initial stderr stream.
931Optional arg APPEND non-nil (interactively, with prefix arg) means 931Optional arg APPEND non-nil (interactively, with prefix arg) means
932append to existing target file. */) 932append to existing target file. */)
933 (file, append) 933 (file, append)
934 Lisp_Object file, append; 934 Lisp_Object file, append;
935{ 935{
@@ -1280,6 +1280,26 @@ print_preprocess (obj)
1280{ 1280{
1281 int i; 1281 int i;
1282 EMACS_INT size; 1282 EMACS_INT size;
1283 int loop_count = 0;
1284 Lisp_Object halftail;
1285
1286 /* Avoid infinite recursion for circular nested structure
1287 in the case where Vprint_circle is nil. */
1288 if (NILP (Vprint_circle))
1289 {
1290 for (i = 0; i < print_depth; i++)
1291 if (EQ (obj, being_printed[i]))
1292 return;
1293 being_printed[print_depth] = obj;
1294 }
1295
1296 /* Give up if we go so deep that print_object will get an error. */
1297 /* See similar code in print_object. */
1298 if (print_depth >= PRINT_CIRCLE)
1299 return;
1300
1301 print_depth++;
1302 halftail = obj;
1283 1303
1284 loop: 1304 loop:
1285 if (STRINGP (obj) || CONSP (obj) || VECTORP (obj) 1305 if (STRINGP (obj) || CONSP (obj) || VECTORP (obj)
@@ -1340,8 +1360,15 @@ print_preprocess (obj)
1340 break; 1360 break;
1341 1361
1342 case Lisp_Cons: 1362 case Lisp_Cons:
1363 /* Use HALFTAIL and LOOP_COUNT to detect circular lists,
1364 just as in print_object. */
1365 if (loop_count && EQ (obj, halftail))
1366 break;
1343 print_preprocess (XCAR (obj)); 1367 print_preprocess (XCAR (obj));
1344 obj = XCDR (obj); 1368 obj = XCDR (obj);
1369 loop_count++;
1370 if (!(loop_count & 1))
1371 halftail = XCDR (halftail);
1345 goto loop; 1372 goto loop;
1346 1373
1347 case Lisp_Vectorlike: 1374 case Lisp_Vectorlike:
@@ -1356,6 +1383,7 @@ print_preprocess (obj)
1356 break; 1383 break;
1357 } 1384 }
1358 } 1385 }
1386 print_depth--;
1359} 1387}
1360 1388
1361static void 1389static void
@@ -1372,7 +1400,7 @@ print_object (obj, printcharfun, escapeflag)
1372 register Lisp_Object printcharfun; 1400 register Lisp_Object printcharfun;
1373 int escapeflag; 1401 int escapeflag;
1374{ 1402{
1375 char buf[30]; 1403 char buf[40];
1376 1404
1377 QUIT; 1405 QUIT;
1378 1406
@@ -1426,6 +1454,7 @@ print_object (obj, printcharfun, escapeflag)
1426 1454
1427 print_depth++; 1455 print_depth++;
1428 1456
1457 /* See similar code in print_preprocess. */
1429 if (print_depth > PRINT_CIRCLE) 1458 if (print_depth > PRINT_CIRCLE)
1430 error ("Apparently circular structure being printed"); 1459 error ("Apparently circular structure being printed");
1431#ifdef MAX_PRINT_CHARS 1460#ifdef MAX_PRINT_CHARS
diff --git a/src/process.c b/src/process.c
index db7e31dd244..d5e76b29b98 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1457,12 +1457,12 @@ static Lisp_Object start_process_unwind ();
1457DEFUN ("start-process", Fstart_process, Sstart_process, 3, MANY, 0, 1457DEFUN ("start-process", Fstart_process, Sstart_process, 3, MANY, 0,
1458 doc: /* Start a program in a subprocess. Return the process object for it. 1458 doc: /* Start a program in a subprocess. Return the process object for it.
1459NAME is name for process. It is modified if necessary to make it unique. 1459NAME is name for process. It is modified if necessary to make it unique.
1460BUFFER is the buffer or (buffer-name) to associate with the process. 1460BUFFER is the buffer (or buffer name) to associate with the process.
1461 Process output goes at end of that buffer, unless you specify 1461 Process output goes at end of that buffer, unless you specify
1462 an output stream or filter function to handle the output. 1462 an output stream or filter function to handle the output.
1463 BUFFER may be also nil, meaning that this process is not associated 1463 BUFFER may be also nil, meaning that this process is not associated
1464 with any buffer. 1464 with any buffer.
1465Third arg is program file name. It is searched for in PATH. 1465PROGRAM is the program file name. It is searched for in PATH.
1466Remaining arguments are strings to give program as arguments. 1466Remaining arguments are strings to give program as arguments.
1467 1467
1468usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) 1468usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */)
@@ -4018,8 +4018,8 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
4018 int do_display; 4018 int do_display;
4019{ 4019{
4020 register int channel, nfds; 4020 register int channel, nfds;
4021 static SELECT_TYPE Available; 4021 SELECT_TYPE Available;
4022 static SELECT_TYPE Connecting; 4022 SELECT_TYPE Connecting;
4023 int check_connect, check_delay, no_avail; 4023 int check_connect, check_delay, no_avail;
4024 int xerrno; 4024 int xerrno;
4025 Lisp_Object proc; 4025 Lisp_Object proc;
@@ -4030,6 +4030,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
4030 /* Either nil or a cons cell, the car of which is of interest and 4030 /* Either nil or a cons cell, the car of which is of interest and
4031 may be changed outside of this routine. */ 4031 may be changed outside of this routine. */
4032 Lisp_Object wait_for_cell = Qnil; 4032 Lisp_Object wait_for_cell = Qnil;
4033 int saved_waiting_for_user_input_p = waiting_for_user_input_p;
4033 4034
4034 FD_ZERO (&Available); 4035 FD_ZERO (&Available);
4035 FD_ZERO (&Connecting); 4036 FD_ZERO (&Connecting);
@@ -4643,7 +4644,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
4643 } /* end for each file descriptor */ 4644 } /* end for each file descriptor */
4644 } /* end while exit conditions not met */ 4645 } /* end while exit conditions not met */
4645 4646
4646 waiting_for_user_input_p = 0; 4647 waiting_for_user_input_p = saved_waiting_for_user_input_p;
4647 4648
4648 /* If calling from keyboard input, do not quit 4649 /* If calling from keyboard input, do not quit
4649 since we want to return C-g as an input character. 4650 since we want to return C-g as an input character.
@@ -4894,6 +4895,8 @@ read_process_output (proc, channel)
4894 } 4895 }
4895 4896
4896 carryover = nbytes - coding->consumed; 4897 carryover = nbytes - coding->consumed;
4898 if (SCHARS (p->decoding_buf) < carryover)
4899 p->decoding_buf = make_uninit_string (carryover);
4897 bcopy (chars + coding->consumed, SDATA (p->decoding_buf), 4900 bcopy (chars + coding->consumed, SDATA (p->decoding_buf),
4898 carryover); 4901 carryover);
4899 XSETINT (p->decoding_carryover, carryover); 4902 XSETINT (p->decoding_carryover, carryover);
@@ -4998,6 +5001,8 @@ read_process_output (proc, channel)
4998 } 5001 }
4999 } 5002 }
5000 carryover = nbytes - coding->consumed; 5003 carryover = nbytes - coding->consumed;
5004 if (SCHARS (p->decoding_buf) < carryover)
5005 p->decoding_buf = make_uninit_string (carryover);
5001 bcopy (chars + coding->consumed, SDATA (p->decoding_buf), 5006 bcopy (chars + coding->consumed, SDATA (p->decoding_buf),
5002 carryover); 5007 carryover);
5003 XSETINT (p->decoding_carryover, carryover); 5008 XSETINT (p->decoding_carryover, carryover);
diff --git a/src/regex.c b/src/regex.c
index a145183510d..a518ef81a0c 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -4661,7 +4661,7 @@ mutually_exclusive_p (bufp, p1, p2)
4661 case wordbeg: 4661 case wordbeg:
4662 case syntaxspec: 4662 case syntaxspec:
4663 return ((re_opcode_t) *p1 == notsyntaxspec 4663 return ((re_opcode_t) *p1 == notsyntaxspec
4664 && p1[1] == (op2 == wordend ? Sword : p2[1])); 4664 && p1[1] == (op2 == wordbeg ? Sword : p2[1]));
4665 4665
4666 case wordbound: 4666 case wordbound:
4667 return (((re_opcode_t) *p1 == notsyntaxspec 4667 return (((re_opcode_t) *p1 == notsyntaxspec
diff --git a/src/textprop.c b/src/textprop.c
index 4f13aefb1be..c8ec008dcbd 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -637,30 +637,13 @@ get_char_property_and_overlay (position, prop, object, overlay)
637 } 637 }
638 if (BUFFERP (object)) 638 if (BUFFERP (object))
639 { 639 {
640 int posn = XINT (position);
641 int noverlays; 640 int noverlays;
642 Lisp_Object *overlay_vec, tem; 641 Lisp_Object *overlay_vec;
643 int len;
644 struct buffer *obuf = current_buffer; 642 struct buffer *obuf = current_buffer;
645 643
646 set_buffer_temp (XBUFFER (object)); 644 set_buffer_temp (XBUFFER (object));
647 645
648 /* First try with room for 40 overlays. */ 646 GET_OVERLAYS_AT (XINT (position), overlay_vec, noverlays, NULL, 0);
649 len = 40;
650 overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
651
652 noverlays = overlays_at (posn, 0, &overlay_vec, &len,
653 NULL, NULL, 0);
654
655 /* If there are more than 40,
656 make enough space for all, and try again. */
657 if (noverlays > len)
658 {
659 len = noverlays;
660 overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
661 noverlays = overlays_at (posn, 0, &overlay_vec, &len,
662 NULL, NULL, 0);
663 }
664 noverlays = sort_overlays (overlay_vec, noverlays, w); 647 noverlays = sort_overlays (overlay_vec, noverlays, w);
665 648
666 set_buffer_temp (obuf); 649 set_buffer_temp (obuf);
@@ -668,7 +651,7 @@ get_char_property_and_overlay (position, prop, object, overlay)
668 /* Now check the overlays in order of decreasing priority. */ 651 /* Now check the overlays in order of decreasing priority. */
669 while (--noverlays >= 0) 652 while (--noverlays >= 0)
670 { 653 {
671 tem = Foverlay_get (overlay_vec[noverlays], prop); 654 Lisp_Object tem = Foverlay_get (overlay_vec[noverlays], prop);
672 if (!NILP (tem)) 655 if (!NILP (tem))
673 { 656 {
674 if (overlay) 657 if (overlay)
diff --git a/src/w32.c b/src/w32.c
index 98d630529e6..12d1f21b091 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -105,7 +105,7 @@ void globals_of_w32 ();
105extern Lisp_Object Vw32_downcase_file_names; 105extern Lisp_Object Vw32_downcase_file_names;
106extern Lisp_Object Vw32_generate_fake_inodes; 106extern Lisp_Object Vw32_generate_fake_inodes;
107extern Lisp_Object Vw32_get_true_file_attributes; 107extern Lisp_Object Vw32_get_true_file_attributes;
108extern Lisp_Object Vw32_num_mouse_buttons; 108extern int w32_num_mouse_buttons;
109 109
110 110
111/* 111/*
@@ -1094,7 +1094,7 @@ init_environment (char ** argv)
1094 /* Determine if there is a middle mouse button, to allow parse_button 1094 /* Determine if there is a middle mouse button, to allow parse_button
1095 to decide whether right mouse events should be mouse-2 or 1095 to decide whether right mouse events should be mouse-2 or
1096 mouse-3. */ 1096 mouse-3. */
1097 XSETINT (Vw32_num_mouse_buttons, GetSystemMetrics (SM_CMOUSEBUTTONS)); 1097 w32_num_mouse_buttons = GetSystemMetrics (SM_CMOUSEBUTTONS);
1098 1098
1099 init_user_info (); 1099 init_user_info ();
1100} 1100}
@@ -1627,7 +1627,7 @@ static WIN32_FIND_DATA dir_find_data;
1627/* Support shares on a network resource as subdirectories of a read-only 1627/* Support shares on a network resource as subdirectories of a read-only
1628 root directory. */ 1628 root directory. */
1629static HANDLE wnet_enum_handle = INVALID_HANDLE_VALUE; 1629static HANDLE wnet_enum_handle = INVALID_HANDLE_VALUE;
1630HANDLE open_unc_volume (char *); 1630HANDLE open_unc_volume (const char *);
1631char *read_unc_volume (HANDLE, char *, int); 1631char *read_unc_volume (HANDLE, char *, int);
1632void close_unc_volume (HANDLE); 1632void close_unc_volume (HANDLE);
1633 1633
@@ -1740,7 +1740,7 @@ readdir (DIR *dirp)
1740} 1740}
1741 1741
1742HANDLE 1742HANDLE
1743open_unc_volume (char *path) 1743open_unc_volume (const char *path)
1744{ 1744{
1745 NETRESOURCE nr; 1745 NETRESOURCE nr;
1746 HANDLE henum; 1746 HANDLE henum;
@@ -1797,7 +1797,7 @@ close_unc_volume (HANDLE henum)
1797} 1797}
1798 1798
1799DWORD 1799DWORD
1800unc_volume_file_attributes (char *path) 1800unc_volume_file_attributes (const char *path)
1801{ 1801{
1802 HANDLE henum; 1802 HANDLE henum;
1803 DWORD attrs; 1803 DWORD attrs;
@@ -3486,7 +3486,7 @@ sys_pipe (int * phandles)
3486} 3486}
3487 3487
3488/* From ntproc.c */ 3488/* From ntproc.c */
3489extern Lisp_Object Vw32_pipe_read_delay; 3489extern int w32_pipe_read_delay;
3490 3490
3491/* Function to do blocking read of one byte, needed to implement 3491/* Function to do blocking read of one byte, needed to implement
3492 select. It is only allowed on sockets and pipes. */ 3492 select. It is only allowed on sockets and pipes. */
@@ -3526,7 +3526,7 @@ _sys_read_ahead (int fd)
3526 shell on NT is very slow if we don't do this. */ 3526 shell on NT is very slow if we don't do this. */
3527 if (rc > 0) 3527 if (rc > 0)
3528 { 3528 {
3529 int wait = XINT (Vw32_pipe_read_delay); 3529 int wait = w32_pipe_read_delay;
3530 3530
3531 if (wait > 0) 3531 if (wait > 0)
3532 Sleep (wait); 3532 Sleep (wait);
diff --git a/src/w32console.c b/src/w32console.c
index 14885f90730..b2d340d579c 100644
--- a/src/w32console.c
+++ b/src/w32console.c
@@ -55,18 +55,18 @@ extern int meta_key;
55 55
56static void move_cursor (int row, int col); 56static void move_cursor (int row, int col);
57static void clear_to_end (void); 57static void clear_to_end (void);
58static void clear_frame (void); 58void clear_frame (void);
59static void clear_end_of_line (int); 59void clear_end_of_line (int);
60static void ins_del_lines (int vpos, int n); 60static void ins_del_lines (int vpos, int n);
61static void insert_glyphs (struct glyph *start, int len); 61void insert_glyphs (struct glyph *start, int len);
62static void write_glyphs (struct glyph *string, int len); 62void write_glyphs (struct glyph *string, int len);
63static void delete_glyphs (int n); 63void delete_glyphs (int n);
64void w32_sys_ring_bell (void); 64void w32_sys_ring_bell (void);
65static void reset_terminal_modes (void); 65void reset_terminal_modes (void);
66static void set_terminal_modes (void); 66void set_terminal_modes (void);
67static void set_terminal_window (int size); 67void set_terminal_window (int size);
68static void update_begin (struct frame * f); 68void update_begin (struct frame * f);
69static void update_end (struct frame * f); 69void update_end (struct frame * f);
70static WORD w32_face_attributes (struct frame *f, int face_id); 70static WORD w32_face_attributes (struct frame *f, int face_id);
71 71
72static COORD cursor_coords; 72static COORD cursor_coords;
@@ -103,7 +103,7 @@ ctrl_c_handler (unsigned long type)
103#define PICK_FRAME() (updating_frame ? updating_frame : SELECTED_FRAME ()) 103#define PICK_FRAME() (updating_frame ? updating_frame : SELECTED_FRAME ())
104 104
105/* Move the cursor to (row, col). */ 105/* Move the cursor to (row, col). */
106void 106static void
107move_cursor (int row, int col) 107move_cursor (int row, int col)
108{ 108{
109 cursor_coords.X = col; 109 cursor_coords.X = col;
@@ -116,7 +116,7 @@ move_cursor (int row, int col)
116} 116}
117 117
118/* Clear from cursor to end of screen. */ 118/* Clear from cursor to end of screen. */
119void 119static void
120clear_to_end (void) 120clear_to_end (void)
121{ 121{
122 struct frame * f = PICK_FRAME (); 122 struct frame * f = PICK_FRAME ();
@@ -240,7 +240,7 @@ ins_del_lines (int vpos, int n)
240#define LEFT 1 240#define LEFT 1
241#define RIGHT 0 241#define RIGHT 0
242 242
243void 243static void
244scroll_line (int dist, int direction) 244scroll_line (int dist, int direction)
245{ 245{
246 /* The idea here is to implement a horizontal scroll in one line to 246 /* The idea here is to implement a horizontal scroll in one line to
diff --git a/src/w32fns.c b/src/w32fns.c
index fc40f5f68da..f56ecc35cc6 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -1,5 +1,5 @@
1/* Graphical user interface functions for the Microsoft W32 API. 1/* Graphical user interface functions for the Microsoft W32 API.
2 Copyright (C) 1989, 92, 93, 94, 95, 1996, 1997, 1998, 1999, 2000, 2001 2 Copyright (C) 1989, 92, 93, 94, 95, 96, 97, 98, 1999, 2000, 01, 2004
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -88,7 +88,7 @@ Lisp_Object Vw32_pass_alt_to_system;
88Lisp_Object Vw32_alt_is_meta; 88Lisp_Object Vw32_alt_is_meta;
89 89
90/* If non-zero, the windows virtual key code for an alternative quit key. */ 90/* If non-zero, the windows virtual key code for an alternative quit key. */
91Lisp_Object Vw32_quit_key; 91int w32_quit_key;
92 92
93/* Non nil if left window key events are passed on to Windows (this only 93/* Non nil if left window key events are passed on to Windows (this only
94 affects whether "tapping" the key opens the Start menu). */ 94 affects whether "tapping" the key opens the Start menu). */
@@ -132,11 +132,11 @@ Lisp_Object Vw32_enable_palette;
132 132
133/* Control how close left/right button down events must be to 133/* Control how close left/right button down events must be to
134 be converted to a middle button down event. */ 134 be converted to a middle button down event. */
135Lisp_Object Vw32_mouse_button_tolerance; 135int w32_mouse_button_tolerance;
136 136
137/* Minimum interval between mouse movement (and scroll bar drag) 137/* Minimum interval between mouse movement (and scroll bar drag)
138 events that are passed on to the event loop. */ 138 events that are passed on to the event loop. */
139Lisp_Object Vw32_mouse_move_interval; 139int w32_mouse_move_interval;
140 140
141/* Flag to indicate if XBUTTON events should be passed on to Windows. */ 141/* Flag to indicate if XBUTTON events should be passed on to Windows. */
142int w32_pass_extra_mouse_buttons_to_system; 142int w32_pass_extra_mouse_buttons_to_system;
@@ -235,7 +235,7 @@ Lisp_Object Qw32_charset_unicode;
235#endif 235#endif
236 236
237/* The ANSI codepage. */ 237/* The ANSI codepage. */
238Lisp_Object Vw32_ansi_code_page; 238int w32_ansi_code_page;
239 239
240/* Prefix for system colors. */ 240/* Prefix for system colors. */
241#define SYSTEM_COLOR_PREFIX "System" 241#define SYSTEM_COLOR_PREFIX "System"
@@ -283,7 +283,7 @@ int image_cache_refcount, dpyinfo_refcount;
283 283
284 284
285/* From w32term.c. */ 285/* From w32term.c. */
286extern Lisp_Object Vw32_num_mouse_buttons; 286extern int w32_num_mouse_buttons;
287extern Lisp_Object Vw32_recognize_altgr; 287extern Lisp_Object Vw32_recognize_altgr;
288 288
289extern HWND w32_system_caret_hwnd; 289extern HWND w32_system_caret_hwnd;
@@ -465,7 +465,7 @@ if the entry is new. */)
465 CHECK_NUMBER (blue); 465 CHECK_NUMBER (blue);
466 CHECK_STRING (name); 466 CHECK_STRING (name);
467 467
468 XSET (rgb, Lisp_Int, RGB(XUINT (red), XUINT (green), XUINT (blue))); 468 XSETINT (rgb, RGB(XUINT (red), XUINT (green), XUINT (blue)));
469 469
470 BLOCK_INPUT; 470 BLOCK_INPUT;
471 471
@@ -828,7 +828,7 @@ w32_to_x_color (rgb)
828 return Qnil; 828 return Qnil;
829} 829}
830 830
831COLORREF 831static Lisp_Object
832w32_color_map_lookup (colorname) 832w32_color_map_lookup (colorname)
833 char *colorname; 833 char *colorname;
834{ 834{
@@ -847,7 +847,7 @@ w32_color_map_lookup (colorname)
847 847
848 if (lstrcmpi (SDATA (tem), colorname) == 0) 848 if (lstrcmpi (SDATA (tem), colorname) == 0)
849 { 849 {
850 ret = XUINT (Fcdr (elt)); 850 ret = Fcdr (elt);
851 break; 851 break;
852 } 852 }
853 853
@@ -910,7 +910,7 @@ add_system_logical_colors_to_map (system_colors)
910} 910}
911 911
912 912
913COLORREF 913static Lisp_Object
914x_to_w32_color (colorname) 914x_to_w32_color (colorname)
915 char * colorname; 915 char * colorname;
916{ 916{
@@ -970,7 +970,8 @@ x_to_w32_color (colorname)
970 if (i == 2) 970 if (i == 2)
971 { 971 {
972 UNBLOCK_INPUT; 972 UNBLOCK_INPUT;
973 return (colorval); 973 XSETINT (ret, colorval);
974 return ret;
974 } 975 }
975 color = end; 976 color = end;
976 } 977 }
@@ -1023,7 +1024,8 @@ x_to_w32_color (colorname)
1023 if (*end != '\0') 1024 if (*end != '\0')
1024 break; 1025 break;
1025 UNBLOCK_INPUT; 1026 UNBLOCK_INPUT;
1026 return (colorval); 1027 XSETINT (ret, colorval);
1028 return ret;
1027 } 1029 }
1028 if (*end != '/') 1030 if (*end != '/')
1029 break; 1031 break;
@@ -1064,7 +1066,8 @@ x_to_w32_color (colorname)
1064 if (*end != '\0') 1066 if (*end != '\0')
1065 break; 1067 break;
1066 UNBLOCK_INPUT; 1068 UNBLOCK_INPUT;
1067 return (colorval); 1069 XSETINT (ret, colorval);
1070 return ret;
1068 } 1071 }
1069 if (*end != '/') 1072 if (*end != '/')
1070 break; 1073 break;
@@ -2418,6 +2421,10 @@ Lisp_Object w32_grabbed_keys;
2418#define HOTKEY_VK_CODE(k) (XFASTINT (k) & 255) 2421#define HOTKEY_VK_CODE(k) (XFASTINT (k) & 255)
2419#define HOTKEY_MODIFIERS(k) (XFASTINT (k) >> 8) 2422#define HOTKEY_MODIFIERS(k) (XFASTINT (k) >> 8)
2420 2423
2424#define RAW_HOTKEY_ID(k) ((k) & 0xbfff)
2425#define RAW_HOTKEY_VK_CODE(k) ((k) & 255)
2426#define RAW_HOTKEY_MODIFIERS(k) ((k) >> 8)
2427
2421/* Register hot-keys for reserved key combinations when Emacs has 2428/* Register hot-keys for reserved key combinations when Emacs has
2422 keyboard focus, since this is the only way Emacs can receive key 2429 keyboard focus, since this is the only way Emacs can receive key
2423 combinations like Alt-Tab which are used by the system. */ 2430 combinations like Alt-Tab which are used by the system. */
@@ -2499,20 +2506,20 @@ w32_msg_pump (deferred_msg * msg_buf)
2499 focus_window = GetFocus (); 2506 focus_window = GetFocus ();
2500 if (focus_window != NULL) 2507 if (focus_window != NULL)
2501 RegisterHotKey (focus_window, 2508 RegisterHotKey (focus_window,
2502 HOTKEY_ID (msg.wParam), 2509 RAW_HOTKEY_ID (msg.wParam),
2503 HOTKEY_MODIFIERS (msg.wParam), 2510 RAW_HOTKEY_MODIFIERS (msg.wParam),
2504 HOTKEY_VK_CODE (msg.wParam)); 2511 RAW_HOTKEY_VK_CODE (msg.wParam));
2505 /* Reply is not expected. */ 2512 /* Reply is not expected. */
2506 break; 2513 break;
2507 case WM_EMACS_UNREGISTER_HOT_KEY: 2514 case WM_EMACS_UNREGISTER_HOT_KEY:
2508 focus_window = GetFocus (); 2515 focus_window = GetFocus ();
2509 if (focus_window != NULL) 2516 if (focus_window != NULL)
2510 UnregisterHotKey (focus_window, HOTKEY_ID (msg.wParam)); 2517 UnregisterHotKey (focus_window, RAW_HOTKEY_ID (msg.wParam));
2511 /* Mark item as erased. NB: this code must be 2518 /* Mark item as erased. NB: this code must be
2512 thread-safe. The next line is okay because the cons 2519 thread-safe. The next line is okay because the cons
2513 cell is never made into garbage and is not relocated by 2520 cell is never made into garbage and is not relocated by
2514 GC. */ 2521 GC. */
2515 XSETCAR ((Lisp_Object) msg.lParam, Qnil); 2522 XSETCAR ((Lisp_Object) ((EMACS_INT) msg.lParam), Qnil);
2516 if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0)) 2523 if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0))
2517 abort (); 2524 abort ();
2518 break; 2525 break;
@@ -2520,7 +2527,7 @@ w32_msg_pump (deferred_msg * msg_buf)
2520 { 2527 {
2521 int vk_code = (int) msg.wParam; 2528 int vk_code = (int) msg.wParam;
2522 int cur_state = (GetKeyState (vk_code) & 1); 2529 int cur_state = (GetKeyState (vk_code) & 1);
2523 Lisp_Object new_state = (Lisp_Object) msg.lParam; 2530 Lisp_Object new_state = (Lisp_Object) ((EMACS_INT) msg.lParam);
2524 2531
2525 /* NB: This code must be thread-safe. It is safe to 2532 /* NB: This code must be thread-safe. It is safe to
2526 call NILP because symbols are not relocated by GC, 2533 call NILP because symbols are not relocated by GC,
@@ -2710,7 +2717,7 @@ post_character_message (hwnd, msg, wParam, lParam, modifiers)
2710 c = make_ctrl_char (c) & 0377; 2717 c = make_ctrl_char (c) & 0377;
2711 if (c == quit_char 2718 if (c == quit_char
2712 || (wmsg.dwModifiers == 0 && 2719 || (wmsg.dwModifiers == 0 &&
2713 XFASTINT (Vw32_quit_key) && wParam == XFASTINT (Vw32_quit_key))) 2720 w32_quit_key && wParam == w32_quit_key))
2714 { 2721 {
2715 Vquit_flag = Qt; 2722 Vquit_flag = Qt;
2716 2723
@@ -3120,7 +3127,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
3120 are used together, but only if user has two button mouse. */ 3127 are used together, but only if user has two button mouse. */
3121 case WM_LBUTTONDOWN: 3128 case WM_LBUTTONDOWN:
3122 case WM_RBUTTONDOWN: 3129 case WM_RBUTTONDOWN:
3123 if (XINT (Vw32_num_mouse_buttons) > 2) 3130 if (w32_num_mouse_buttons > 2)
3124 goto handle_plain_button; 3131 goto handle_plain_button;
3125 3132
3126 { 3133 {
@@ -3170,7 +3177,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
3170 /* Hold onto message for now. */ 3177 /* Hold onto message for now. */
3171 mouse_button_timer = 3178 mouse_button_timer =
3172 SetTimer (hwnd, MOUSE_BUTTON_ID, 3179 SetTimer (hwnd, MOUSE_BUTTON_ID,
3173 XINT (Vw32_mouse_button_tolerance), NULL); 3180 w32_mouse_button_tolerance, NULL);
3174 saved_mouse_button_msg.msg.hwnd = hwnd; 3181 saved_mouse_button_msg.msg.hwnd = hwnd;
3175 saved_mouse_button_msg.msg.message = msg; 3182 saved_mouse_button_msg.msg.message = msg;
3176 saved_mouse_button_msg.msg.wParam = wParam; 3183 saved_mouse_button_msg.msg.wParam = wParam;
@@ -3183,7 +3190,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
3183 3190
3184 case WM_LBUTTONUP: 3191 case WM_LBUTTONUP:
3185 case WM_RBUTTONUP: 3192 case WM_RBUTTONUP:
3186 if (XINT (Vw32_num_mouse_buttons) > 2) 3193 if (w32_num_mouse_buttons > 2)
3187 goto handle_plain_button; 3194 goto handle_plain_button;
3188 3195
3189 { 3196 {
@@ -3279,7 +3286,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
3279 track_mouse_window = hwnd; 3286 track_mouse_window = hwnd;
3280 } 3287 }
3281 case WM_VSCROLL: 3288 case WM_VSCROLL:
3282 if (XINT (Vw32_mouse_move_interval) <= 0 3289 if (w32_mouse_move_interval <= 0
3283 || (msg == WM_MOUSEMOVE && button_state == 0)) 3290 || (msg == WM_MOUSEMOVE && button_state == 0))
3284 { 3291 {
3285 wmsg.dwModifiers = w32_get_modifiers (); 3292 wmsg.dwModifiers = w32_get_modifiers ();
@@ -3295,7 +3302,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
3295 if (saved_mouse_move_msg.msg.hwnd == 0) 3302 if (saved_mouse_move_msg.msg.hwnd == 0)
3296 mouse_move_timer = 3303 mouse_move_timer =
3297 SetTimer (hwnd, MOUSE_MOVE_ID, 3304 SetTimer (hwnd, MOUSE_MOVE_ID,
3298 XINT (Vw32_mouse_move_interval), NULL); 3305 w32_mouse_move_interval, NULL);
3299 3306
3300 /* Hold onto message for now. */ 3307 /* Hold onto message for now. */
3301 saved_mouse_move_msg.msg.hwnd = hwnd; 3308 saved_mouse_move_msg.msg.hwnd = hwnd;
@@ -4772,46 +4779,46 @@ x_to_w32_charset (lpcs)
4772 w32_charset = Fcar (Fcdr (this_entry)); 4779 w32_charset = Fcar (Fcdr (this_entry));
4773 4780
4774 /* Translate Lisp symbol to number. */ 4781 /* Translate Lisp symbol to number. */
4775 if (w32_charset == Qw32_charset_ansi) 4782 if (EQ (w32_charset, Qw32_charset_ansi))
4776 return ANSI_CHARSET; 4783 return ANSI_CHARSET;
4777 if (w32_charset == Qw32_charset_symbol) 4784 if (EQ (w32_charset, Qw32_charset_symbol))
4778 return SYMBOL_CHARSET; 4785 return SYMBOL_CHARSET;
4779 if (w32_charset == Qw32_charset_shiftjis) 4786 if (EQ (w32_charset, Qw32_charset_shiftjis))
4780 return SHIFTJIS_CHARSET; 4787 return SHIFTJIS_CHARSET;
4781 if (w32_charset == Qw32_charset_hangeul) 4788 if (EQ (w32_charset, Qw32_charset_hangeul))
4782 return HANGEUL_CHARSET; 4789 return HANGEUL_CHARSET;
4783 if (w32_charset == Qw32_charset_chinesebig5) 4790 if (EQ (w32_charset, Qw32_charset_chinesebig5))
4784 return CHINESEBIG5_CHARSET; 4791 return CHINESEBIG5_CHARSET;
4785 if (w32_charset == Qw32_charset_gb2312) 4792 if (EQ (w32_charset, Qw32_charset_gb2312))
4786 return GB2312_CHARSET; 4793 return GB2312_CHARSET;
4787 if (w32_charset == Qw32_charset_oem) 4794 if (EQ (w32_charset, Qw32_charset_oem))
4788 return OEM_CHARSET; 4795 return OEM_CHARSET;
4789#ifdef JOHAB_CHARSET 4796#ifdef JOHAB_CHARSET
4790 if (w32_charset == Qw32_charset_johab) 4797 if (EQ (w32_charset, Qw32_charset_johab))
4791 return JOHAB_CHARSET; 4798 return JOHAB_CHARSET;
4792 if (w32_charset == Qw32_charset_easteurope) 4799 if (EQ (w32_charset, Qw32_charset_easteurope))
4793 return EASTEUROPE_CHARSET; 4800 return EASTEUROPE_CHARSET;
4794 if (w32_charset == Qw32_charset_turkish) 4801 if (EQ (w32_charset, Qw32_charset_turkish))
4795 return TURKISH_CHARSET; 4802 return TURKISH_CHARSET;
4796 if (w32_charset == Qw32_charset_baltic) 4803 if (EQ (w32_charset, Qw32_charset_baltic))
4797 return BALTIC_CHARSET; 4804 return BALTIC_CHARSET;
4798 if (w32_charset == Qw32_charset_russian) 4805 if (EQ (w32_charset, Qw32_charset_russian))
4799 return RUSSIAN_CHARSET; 4806 return RUSSIAN_CHARSET;
4800 if (w32_charset == Qw32_charset_arabic) 4807 if (EQ (w32_charset, Qw32_charset_arabic))
4801 return ARABIC_CHARSET; 4808 return ARABIC_CHARSET;
4802 if (w32_charset == Qw32_charset_greek) 4809 if (EQ (w32_charset, Qw32_charset_greek))
4803 return GREEK_CHARSET; 4810 return GREEK_CHARSET;
4804 if (w32_charset == Qw32_charset_hebrew) 4811 if (EQ (w32_charset, Qw32_charset_hebrew))
4805 return HEBREW_CHARSET; 4812 return HEBREW_CHARSET;
4806 if (w32_charset == Qw32_charset_vietnamese) 4813 if (EQ (w32_charset, Qw32_charset_vietnamese))
4807 return VIETNAMESE_CHARSET; 4814 return VIETNAMESE_CHARSET;
4808 if (w32_charset == Qw32_charset_thai) 4815 if (EQ (w32_charset, Qw32_charset_thai))
4809 return THAI_CHARSET; 4816 return THAI_CHARSET;
4810 if (w32_charset == Qw32_charset_mac) 4817 if (EQ (w32_charset, Qw32_charset_mac))
4811 return MAC_CHARSET; 4818 return MAC_CHARSET;
4812#endif /* JOHAB_CHARSET */ 4819#endif /* JOHAB_CHARSET */
4813#ifdef UNICODE_CHARSET 4820#ifdef UNICODE_CHARSET
4814 if (w32_charset == Qw32_charset_unicode) 4821 if (EQ (w32_charset, Qw32_charset_unicode))
4815 return UNICODE_CHARSET; 4822 return UNICODE_CHARSET;
4816#endif 4823#endif
4817 4824
@@ -4937,8 +4944,8 @@ w32_to_x_charset (fncharset)
4937 4944
4938 /* Look for Same charset and a valid codepage (or non-int 4945 /* Look for Same charset and a valid codepage (or non-int
4939 which means ignore). */ 4946 which means ignore). */
4940 if (w32_charset == charset_type 4947 if (EQ (w32_charset, charset_type)
4941 && (!INTEGERP (codepage) || codepage == CP_DEFAULT 4948 && (!INTEGERP (codepage) || XINT (codepage) == CP_DEFAULT
4942 || IsValidCodePage (XINT (codepage)))) 4949 || IsValidCodePage (XINT (codepage))))
4943 { 4950 {
4944 /* If we don't have a match already, then this is the 4951 /* If we don't have a match already, then this is the
@@ -5095,8 +5102,8 @@ w32_to_all_x_charsets (fncharset)
5095 5102
5096 /* Look for Same charset and a valid codepage (or non-int 5103 /* Look for Same charset and a valid codepage (or non-int
5097 which means ignore). */ 5104 which means ignore). */
5098 if (w32_charset == charset_type 5105 if (EQ (w32_charset, charset_type)
5099 && (!INTEGERP (codepage) || codepage == CP_DEFAULT 5106 && (!INTEGERP (codepage) || XINT (codepage) == CP_DEFAULT
5100 || IsValidCodePage (XINT (codepage)))) 5107 || IsValidCodePage (XINT (codepage))))
5101 { 5108 {
5102 retval = Fcons (x_charset, retval); 5109 retval = Fcons (x_charset, retval);
@@ -6145,6 +6152,9 @@ w32_find_ccl_program (fontp)
6145 } 6152 }
6146} 6153}
6147 6154
6155/* directory-files from dired.c. */
6156Lisp_Object Fdirectory_files P_((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object));
6157
6148 6158
6149/* Find BDF files in a specified directory. (use GCPRO when calling, 6159/* Find BDF files in a specified directory. (use GCPRO when calling,
6150 as this calls lisp to get a directory listing). */ 6160 as this calls lisp to get a directory listing). */
@@ -6158,7 +6168,7 @@ w32_find_bdf_fonts_in_dir (Lisp_Object directory)
6158 return Qnil; 6168 return Qnil;
6159 6169
6160 filelist = Fdirectory_files (directory, Qt, 6170 filelist = Fdirectory_files (directory, Qt,
6161 build_string (".*\\.[bB][dD][fF]"), Qt); 6171 build_string (".*\\.[bB][dD][fF]"), Qt);
6162 6172
6163 for ( ; CONSP(filelist); filelist = XCDR (filelist)) 6173 for ( ; CONSP(filelist); filelist = XCDR (filelist))
6164 { 6174 {
@@ -7945,7 +7955,7 @@ lookup_vk_code (char *key)
7945 7955
7946/* Convert a one-element vector style key sequence to a hot key 7956/* Convert a one-element vector style key sequence to a hot key
7947 definition. */ 7957 definition. */
7948static int 7958static Lisp_Object
7949w32_parse_hot_key (key) 7959w32_parse_hot_key (key)
7950 Lisp_Object key; 7960 Lisp_Object key;
7951{ 7961{
@@ -7977,7 +7987,7 @@ w32_parse_hot_key (key)
7977 if (SYMBOLP (c)) 7987 if (SYMBOLP (c))
7978 { 7988 {
7979 c = parse_modifiers (c); 7989 c = parse_modifiers (c);
7980 lisp_modifiers = Fcar (Fcdr (c)); 7990 lisp_modifiers = XINT (Fcar (Fcdr (c)));
7981 c = Fcar (c); 7991 c = Fcar (c);
7982 if (!SYMBOLP (c)) 7992 if (!SYMBOLP (c))
7983 abort (); 7993 abort ();
@@ -8046,8 +8056,13 @@ The return value is the hotkey-id if registered, otherwise nil. */)
8046 8056
8047 /* Notify input thread about new hot-key definition, so that it 8057 /* Notify input thread about new hot-key definition, so that it
8048 takes effect without needing to switch focus. */ 8058 takes effect without needing to switch focus. */
8059#ifdef USE_LISP_UNION_TYPE
8060 PostThreadMessage (dwWindowsThreadId, WM_EMACS_REGISTER_HOT_KEY,
8061 (WPARAM) key.i, 0);
8062#else
8049 PostThreadMessage (dwWindowsThreadId, WM_EMACS_REGISTER_HOT_KEY, 8063 PostThreadMessage (dwWindowsThreadId, WM_EMACS_REGISTER_HOT_KEY,
8050 (WPARAM) key, 0); 8064 (WPARAM) key, 0);
8065#endif
8051 } 8066 }
8052 8067
8053 return key; 8068 return key;
@@ -8070,8 +8085,14 @@ DEFUN ("w32-unregister-hot-key", Fw32_unregister_hot_key,
8070 { 8085 {
8071 /* Notify input thread about hot-key definition being removed, so 8086 /* Notify input thread about hot-key definition being removed, so
8072 that it takes effect without needing focus switch. */ 8087 that it takes effect without needing focus switch. */
8088#ifdef USE_LISP_UNION_TYPE
8089 if (PostThreadMessage (dwWindowsThreadId, WM_EMACS_UNREGISTER_HOT_KEY,
8090 (WPARAM) XINT (XCAR (item)), (LPARAM) item.i))
8091#else
8073 if (PostThreadMessage (dwWindowsThreadId, WM_EMACS_UNREGISTER_HOT_KEY, 8092 if (PostThreadMessage (dwWindowsThreadId, WM_EMACS_UNREGISTER_HOT_KEY,
8074 (WPARAM) XINT (XCAR (item)), (LPARAM) item)) 8093 (WPARAM) XINT (XCAR (item)), (LPARAM) item.i))
8094
8095#endif
8075 { 8096 {
8076 MSG msg; 8097 MSG msg;
8077 GetMessage (&msg, NULL, WM_EMACS_DONE, WM_EMACS_DONE); 8098 GetMessage (&msg, NULL, WM_EMACS_DONE, WM_EMACS_DONE);
@@ -8144,8 +8165,13 @@ is set to off if the low bit of NEW-STATE is zero, otherwise on. */)
8144 if (!dwWindowsThreadId) 8165 if (!dwWindowsThreadId)
8145 return make_number (w32_console_toggle_lock_key (vk_code, new_state)); 8166 return make_number (w32_console_toggle_lock_key (vk_code, new_state));
8146 8167
8168#ifdef USE_LISP_UNION_TYPE
8169 if (PostThreadMessage (dwWindowsThreadId, WM_EMACS_TOGGLE_LOCK_KEY,
8170 (WPARAM) vk_code, (LPARAM) new_state.i))
8171#else
8147 if (PostThreadMessage (dwWindowsThreadId, WM_EMACS_TOGGLE_LOCK_KEY, 8172 if (PostThreadMessage (dwWindowsThreadId, WM_EMACS_TOGGLE_LOCK_KEY,
8148 (WPARAM) vk_code, (LPARAM) new_state)) 8173 (WPARAM) vk_code, (LPARAM) new_state.i))
8174#endif
8149 { 8175 {
8150 MSG msg; 8176 MSG msg;
8151 GetMessage (&msg, NULL, WM_EMACS_DONE, WM_EMACS_DONE); 8177 GetMessage (&msg, NULL, WM_EMACS_DONE, WM_EMACS_DONE);
@@ -8424,9 +8450,9 @@ open the System menu. When nil, Emacs silently swallows alt key events. */);
8424When nil, Emacs will translate the alt key to the Alt modifier, and not Meta. */); 8450When nil, Emacs will translate the alt key to the Alt modifier, and not Meta. */);
8425 Vw32_alt_is_meta = Qt; 8451 Vw32_alt_is_meta = Qt;
8426 8452
8427 DEFVAR_INT ("w32-quit-key", &Vw32_quit_key, 8453 DEFVAR_INT ("w32-quit-key", &w32_quit_key,
8428 doc: /* If non-zero, the virtual key code for an alternative quit key. */); 8454 doc: /* If non-zero, the virtual key code for an alternative quit key. */);
8429 XSETINT (Vw32_quit_key, 0); 8455 w32_quit_key = 0;
8430 8456
8431 DEFVAR_LISP ("w32-pass-lwindow-to-system", 8457 DEFVAR_LISP ("w32-pass-lwindow-to-system",
8432 &Vw32_pass_lwindow_to_system, 8458 &Vw32_pass_lwindow_to_system,
@@ -8440,9 +8466,9 @@ When non-nil, the Start menu is opened by tapping the key. */);
8440When non-nil, the Start menu is opened by tapping the key. */); 8466When non-nil, the Start menu is opened by tapping the key. */);
8441 Vw32_pass_rwindow_to_system = Qt; 8467 Vw32_pass_rwindow_to_system = Qt;
8442 8468
8443 DEFVAR_INT ("w32-phantom-key-code", 8469 DEFVAR_LISP ("w32-phantom-key-code",
8444 &Vw32_phantom_key_code, 8470 &Vw32_phantom_key_code,
8445 doc: /* Virtual key code used to generate \"phantom\" key presses. 8471 doc: /* Virtual key code used to generate \"phantom\" key presses.
8446Value is a number between 0 and 255. 8472Value is a number between 0 and 255.
8447 8473
8448Phantom key presses are generated in order to stop the system from 8474Phantom key presses are generated in order to stop the system from
@@ -8450,7 +8476,7 @@ acting on \"Windows\" key events when `w32-pass-lwindow-to-system' or
8450`w32-pass-rwindow-to-system' is nil. */); 8476`w32-pass-rwindow-to-system' is nil. */);
8451 /* Although 255 is technically not a valid key code, it works and 8477 /* Although 255 is technically not a valid key code, it works and
8452 means that this hack won't interfere with any real key code. */ 8478 means that this hack won't interfere with any real key code. */
8453 Vw32_phantom_key_code = 255; 8479 XSETINT (Vw32_phantom_key_code, 255);
8454 8480
8455 DEFVAR_LISP ("w32-enable-num-lock", 8481 DEFVAR_LISP ("w32-enable-num-lock",
8456 &Vw32_enable_num_lock, 8482 &Vw32_enable_num_lock,
@@ -8505,21 +8531,21 @@ Any other value will cause the key to be ignored. */);
8505 Vw32_enable_palette = Qt; 8531 Vw32_enable_palette = Qt;
8506 8532
8507 DEFVAR_INT ("w32-mouse-button-tolerance", 8533 DEFVAR_INT ("w32-mouse-button-tolerance",
8508 &Vw32_mouse_button_tolerance, 8534 &w32_mouse_button_tolerance,
8509 doc: /* Analogue of double click interval for faking middle mouse events. 8535 doc: /* Analogue of double click interval for faking middle mouse events.
8510The value is the minimum time in milliseconds that must elapse between 8536The value is the minimum time in milliseconds that must elapse between
8511left/right button down events before they are considered distinct events. 8537left/right button down events before they are considered distinct events.
8512If both mouse buttons are depressed within this interval, a middle mouse 8538If both mouse buttons are depressed within this interval, a middle mouse
8513button down event is generated instead. */); 8539button down event is generated instead. */);
8514 XSETINT (Vw32_mouse_button_tolerance, GetDoubleClickTime () / 2); 8540 w32_mouse_button_tolerance = GetDoubleClickTime () / 2;
8515 8541
8516 DEFVAR_INT ("w32-mouse-move-interval", 8542 DEFVAR_INT ("w32-mouse-move-interval",
8517 &Vw32_mouse_move_interval, 8543 &w32_mouse_move_interval,
8518 doc: /* Minimum interval between mouse move events. 8544 doc: /* Minimum interval between mouse move events.
8519The value is the minimum time in milliseconds that must elapse between 8545The value is the minimum time in milliseconds that must elapse between
8520successive mouse move (or scroll bar drag) events before they are 8546successive mouse move (or scroll bar drag) events before they are
8521reported as lisp events. */); 8547reported as lisp events. */);
8522 XSETINT (Vw32_mouse_move_interval, 0); 8548 w32_mouse_move_interval = 0;
8523 8549
8524 DEFVAR_BOOL ("w32-pass-extra-mouse-buttons-to-system", 8550 DEFVAR_BOOL ("w32-pass-extra-mouse-buttons-to-system",
8525 &w32_pass_extra_mouse_buttons_to_system, 8551 &w32_pass_extra_mouse_buttons_to_system,
@@ -8800,9 +8826,9 @@ void globals_of_w32fns ()
8800 GetProcAddress (user32_lib, "GetClipboardSequenceNumber"); 8826 GetProcAddress (user32_lib, "GetClipboardSequenceNumber");
8801 8827
8802 DEFVAR_INT ("w32-ansi-code-page", 8828 DEFVAR_INT ("w32-ansi-code-page",
8803 &Vw32_ansi_code_page, 8829 &w32_ansi_code_page,
8804 doc: /* The ANSI code page used by the system. */); 8830 doc: /* The ANSI code page used by the system. */);
8805 XSETINT (Vw32_ansi_code_page, GetACP ()); 8831 w32_ansi_code_page = GetACP ();
8806} 8832}
8807 8833
8808#undef abort 8834#undef abort
diff --git a/src/w32heap.c b/src/w32heap.c
index b40db430ea9..d947842474f 100644
--- a/src/w32heap.c
+++ b/src/w32heap.c
@@ -245,6 +245,7 @@ init_heap ()
245 exit (1); 245 exit (1);
246 } 246 }
247 247
248#if defined (NO_UNION_TYPE) && !defined (USE_LSB_TAG)
248 /* Ensure that the addresses don't use the upper tag bits since 249 /* Ensure that the addresses don't use the upper tag bits since
249 the Lisp type goes there. */ 250 the Lisp type goes there. */
250 if (((unsigned long) data_region_base & ~VALMASK) != 0) 251 if (((unsigned long) data_region_base & ~VALMASK) != 0)
@@ -252,7 +253,7 @@ init_heap ()
252 printf ("Error: The heap was allocated in upper memory.\n"); 253 printf ("Error: The heap was allocated in upper memory.\n");
253 exit (1); 254 exit (1);
254 } 255 }
255 256#endif
256 data_region_end = data_region_base; 257 data_region_end = data_region_base;
257 real_data_region_end = data_region_end; 258 real_data_region_end = data_region_end;
258 } 259 }
diff --git a/src/w32inevt.c b/src/w32inevt.c
index 168a0fb87b3..8dd4f406881 100644
--- a/src/w32inevt.c
+++ b/src/w32inevt.c
@@ -464,12 +464,12 @@ key_event (KEY_EVENT_RECORD *event, struct input_event *emacs_ev, int *isdead)
464 } 464 }
465 if (event->uChar.AsciiChar == 0) 465 if (event->uChar.AsciiChar == 0)
466 return 0; 466 return 0;
467 XSETINT (emacs_ev->code, event->uChar.AsciiChar); 467 emacs_ev->code = event->uChar.AsciiChar;
468 } 468 }
469 else 469 else
470 { 470 {
471 emacs_ev->kind = NON_ASCII_KEYSTROKE_EVENT; 471 emacs_ev->kind = NON_ASCII_KEYSTROKE_EVENT;
472 XSETINT (emacs_ev->code, event->wVirtualKeyCode); 472 emacs_ev->code = event->wVirtualKeyCode;
473 } 473 }
474 474
475 XSETFRAME (emacs_ev->frame_or_window, get_frame ()); 475 XSETFRAME (emacs_ev->frame_or_window, get_frame ());
@@ -524,8 +524,8 @@ w32_console_mouse_position (FRAME_PTR *f,
524 *part = 0; 524 *part = 0;
525 SELECTED_FRAME ()->mouse_moved = 0; 525 SELECTED_FRAME ()->mouse_moved = 0;
526 526
527 *x = movement_pos.X; 527 XSETINT(*x, movement_pos.X);
528 *y = movement_pos.Y; 528 XSETINT(*y, movement_pos.Y);
529 *time = movement_time; 529 *time = movement_time;
530 530
531 UNBLOCK_INPUT; 531 UNBLOCK_INPUT;
@@ -593,9 +593,9 @@ do_mouse_event (MOUSE_EVENT_RECORD *event,
593 if (but_change & mask) 593 if (but_change & mask)
594 { 594 {
595 if (i < NUM_TRANSLATED_MOUSE_BUTTONS) 595 if (i < NUM_TRANSLATED_MOUSE_BUTTONS)
596 XSETINT (emacs_ev->code, emacs_button_translation[i]); 596 emacs_ev->code = emacs_button_translation[i];
597 else 597 else
598 XSETINT (emacs_ev->code, i); 598 emacs_ev->code = i;
599 break; 599 break;
600 } 600 }
601 601
diff --git a/src/w32proc.c b/src/w32proc.c
index edd286e50d0..842869726df 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -82,7 +82,7 @@ Lisp_Object Vw32_start_process_inherit_error_mode;
82 avoids the inefficiency of frequently reading small amounts of data. 82 avoids the inefficiency of frequently reading small amounts of data.
83 This is primarily necessary for handling DOS processes on Windows 95, 83 This is primarily necessary for handling DOS processes on Windows 95,
84 but is useful for W32 processes on both Windows 95 and NT as well. */ 84 but is useful for W32 processes on both Windows 95 and NT as well. */
85Lisp_Object Vw32_pipe_read_delay; 85int w32_pipe_read_delay;
86 86
87/* Control conversion of upper case file names to lower case. 87/* Control conversion of upper case file names to lower case.
88 nil means no, t means yes. */ 88 nil means no, t means yes. */
@@ -367,7 +367,7 @@ create_child (char *exe, char *cmdline, char *env, int is_gui_app,
367 cp->pid = -cp->pid; 367 cp->pid = -cp->pid;
368 368
369 /* pid must fit in a Lisp_Int */ 369 /* pid must fit in a Lisp_Int */
370 cp->pid = (cp->pid & VALMASK); 370 cp->pid = XUINT (make_number (cp->pid));
371 371
372 *pPid = cp->pid; 372 *pPid = cp->pid;
373 373
@@ -2202,7 +2202,7 @@ When non-nil, they inherit their error mode setting from Emacs, which stops
2202them blocking when trying to access unmounted drives etc. */); 2202them blocking when trying to access unmounted drives etc. */);
2203 Vw32_start_process_inherit_error_mode = Qt; 2203 Vw32_start_process_inherit_error_mode = Qt;
2204 2204
2205 DEFVAR_INT ("w32-pipe-read-delay", &Vw32_pipe_read_delay, 2205 DEFVAR_INT ("w32-pipe-read-delay", &w32_pipe_read_delay,
2206 doc: /* Forced delay before reading subprocess output. 2206 doc: /* Forced delay before reading subprocess output.
2207This is done to improve the buffering of subprocess output, by 2207This is done to improve the buffering of subprocess output, by
2208avoiding the inefficiency of frequently reading small amounts of data. 2208avoiding the inefficiency of frequently reading small amounts of data.
@@ -2211,7 +2211,7 @@ If positive, the value is the number of milliseconds to sleep before
2211reading the subprocess output. If negative, the magnitude is the number 2211reading the subprocess output. If negative, the magnitude is the number
2212of time slices to wait (effectively boosting the priority of the child 2212of time slices to wait (effectively boosting the priority of the child
2213process temporarily). A value of zero disables waiting entirely. */); 2213process temporarily). A value of zero disables waiting entirely. */);
2214 Vw32_pipe_read_delay = 50; 2214 w32_pipe_read_delay = 50;
2215 2215
2216 DEFVAR_LISP ("w32-downcase-file-names", &Vw32_downcase_file_names, 2216 DEFVAR_LISP ("w32-downcase-file-names", &Vw32_downcase_file_names,
2217 doc: /* Non-nil means convert all-upper case file names to lower case. 2217 doc: /* Non-nil means convert all-upper case file names to lower case.
diff --git a/src/w32term.c b/src/w32term.c
index 3a2ef2e1c19..9629595561c 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -177,7 +177,7 @@ int last_scroll_bar_drag_pos;
177static RECT last_mouse_glyph; 177static RECT last_mouse_glyph;
178static Lisp_Object last_mouse_press_frame; 178static Lisp_Object last_mouse_press_frame;
179 179
180Lisp_Object Vw32_num_mouse_buttons; 180int w32_num_mouse_buttons;
181 181
182Lisp_Object Vw32_swap_mouse_buttons; 182Lisp_Object Vw32_swap_mouse_buttons;
183 183
@@ -4360,10 +4360,16 @@ w32_read_socket (sd, expected, hold_quit)
4360 4360
4361 /* If the contents of the global variable help_echo_string 4361 /* If the contents of the global variable help_echo_string
4362 has changed, generate a HELP_EVENT. */ 4362 has changed, generate a HELP_EVENT. */
4363#if 0 /* The below is an invalid comparison when USE_LISP_UNION_TYPE.
4364 But it was originally changed to this to fix a bug, so I have
4365 not removed it completely in case the bug is still there. */
4363 if (help_echo_string != previous_help_echo_string || 4366 if (help_echo_string != previous_help_echo_string ||
4364 (!NILP (help_echo_string) && !STRINGP (help_echo_string) && f->mouse_moved)) 4367 (!NILP (help_echo_string) && !STRINGP (help_echo_string) && f->mouse_moved))
4368#else /* This is what xterm.c does. */
4369 if (!NILP (help_echo_string)
4370 || !NILP (previous_help_echo_string))
4365 do_help = 1; 4371 do_help = 1;
4366 4372#endif
4367 break; 4373 break;
4368 4374
4369 case WM_LBUTTONDOWN: 4375 case WM_LBUTTONDOWN:
@@ -4784,7 +4790,7 @@ w32_read_socket (sd, expected, hold_quit)
4784 4790
4785 if (do_help > 0) 4791 if (do_help > 0)
4786 { 4792 {
4787 if (help_echo_string == Qnil) 4793 if (NILP (help_echo_string))
4788 { 4794 {
4789 help_echo_object = help_echo_window = Qnil; 4795 help_echo_object = help_echo_window = Qnil;
4790 help_echo_pos = -1; 4796 help_echo_pos = -1;
@@ -6460,9 +6466,9 @@ syms_of_w32term ()
6460 Qvendor_specific_keysyms = intern ("vendor-specific-keysyms"); 6466 Qvendor_specific_keysyms = intern ("vendor-specific-keysyms");
6461 6467
6462 DEFVAR_INT ("w32-num-mouse-buttons", 6468 DEFVAR_INT ("w32-num-mouse-buttons",
6463 &Vw32_num_mouse_buttons, 6469 &w32_num_mouse_buttons,
6464 doc: /* Number of physical mouse buttons. */); 6470 doc: /* Number of physical mouse buttons. */);
6465 Vw32_num_mouse_buttons = Qnil; 6471 w32_num_mouse_buttons = 2;
6466 6472
6467 DEFVAR_LISP ("w32-swap-mouse-buttons", 6473 DEFVAR_LISP ("w32-swap-mouse-buttons",
6468 &Vw32_swap_mouse_buttons, 6474 &Vw32_swap_mouse_buttons,
diff --git a/src/window.c b/src/window.c
index 8a2c16598ec..03ca22dd525 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3272,6 +3272,10 @@ If FRAME is nil, search only the selected frame
3272 unless `pop-up-frames' or `display-buffer-reuse-frames' is non-nil, 3272 unless `pop-up-frames' or `display-buffer-reuse-frames' is non-nil,
3273 which means search visible and iconified frames. 3273 which means search visible and iconified frames.
3274 3274
3275If a full-width window on a splittable frame is available to display
3276the buffer, it may be split, subject to the value of the variable
3277`split-height-threshold'.
3278
3275If `even-window-heights' is non-nil, window heights will be evened out 3279If `even-window-heights' is non-nil, window heights will be evened out
3276if displaying the buffer causes two vertically adjacent windows to be 3280if displaying the buffer causes two vertically adjacent windows to be
3277displayed. */) 3281displayed. */)
@@ -3587,7 +3591,8 @@ DEFUN ("split-window", Fsplit_window, Ssplit_window, 0, 3, "",
3587WINDOW defaults to selected one and SIZE to half its size. 3591WINDOW defaults to selected one and SIZE to half its size.
3588If optional third arg HORFLAG is non-nil, split side by side 3592If optional third arg HORFLAG is non-nil, split side by side
3589and put SIZE columns in the first of the pair. In that case, 3593and put SIZE columns in the first of the pair. In that case,
3590SIZE includes that window's scroll bar, or the divider column to its right. */) 3594SIZE includes that window's scroll bar, or the divider column to its right.
3595Returns the newly-created window. */)
3591 (window, size, horflag) 3596 (window, size, horflag)
3592 Lisp_Object window, size, horflag; 3597 Lisp_Object window, size, horflag;
3593{ 3598{
@@ -6594,7 +6599,7 @@ See also `same-window-buffer-names'. */);
6594 next_screen_context_lines = 2; 6599 next_screen_context_lines = 2;
6595 6600
6596 DEFVAR_INT ("split-height-threshold", &split_height_threshold, 6601 DEFVAR_INT ("split-height-threshold", &split_height_threshold,
6597 doc: /* *display-buffer would prefer to split the largest window if this large. 6602 doc: /* *A window must be at least this tall to be eligible for splitting by `display-buffer'.
6598If there is only one window, it is split regardless of this value. */); 6603If there is only one window, it is split regardless of this value. */);
6599 split_height_threshold = 500; 6604 split_height_threshold = 500;
6600 6605
diff --git a/src/xdisp.c b/src/xdisp.c
index 7f5b38e550b..7c2a850fe49 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -2730,19 +2730,10 @@ next_overlay_change (pos)
2730 int noverlays; 2730 int noverlays;
2731 int endpos; 2731 int endpos;
2732 Lisp_Object *overlays; 2732 Lisp_Object *overlays;
2733 int len;
2734 int i; 2733 int i;
2735 2734
2736 /* Get all overlays at the given position. */ 2735 /* Get all overlays at the given position. */
2737 len = 10; 2736 GET_OVERLAYS_AT (pos, overlays, noverlays, &endpos, 1);
2738 overlays = (Lisp_Object *) alloca (len * sizeof *overlays);
2739 noverlays = overlays_at (pos, 0, &overlays, &len, &endpos, NULL, 1);
2740 if (noverlays > len)
2741 {
2742 len = noverlays;
2743 overlays = (Lisp_Object *) alloca (len * sizeof *overlays);
2744 noverlays = overlays_at (pos, 0, &overlays, &len, &endpos, NULL, 1);
2745 }
2746 2737
2747 /* If any of these overlays ends before endpos, 2738 /* If any of these overlays ends before endpos,
2748 use its ending point instead. */ 2739 use its ending point instead. */
@@ -20832,7 +20823,7 @@ note_mouse_highlight (f, x, y)
20832 Lisp_Object object; 20823 Lisp_Object object;
20833 Lisp_Object mouse_face = Qnil, overlay = Qnil, position; 20824 Lisp_Object mouse_face = Qnil, overlay = Qnil, position;
20834 Lisp_Object *overlay_vec = NULL; 20825 Lisp_Object *overlay_vec = NULL;
20835 int len, noverlays; 20826 int noverlays;
20836 struct buffer *obuf; 20827 struct buffer *obuf;
20837 int obegv, ozv, same_region; 20828 int obegv, ozv, same_region;
20838 20829
@@ -20919,19 +20910,8 @@ note_mouse_highlight (f, x, y)
20919 20910
20920 if (BUFFERP (object)) 20911 if (BUFFERP (object))
20921 { 20912 {
20922 /* Put all the overlays we want in a vector in overlay_vec. 20913 /* Put all the overlays we want in a vector in overlay_vec. */
20923 Store the length in len. If there are more than 40, make 20914 GET_OVERLAYS_AT (pos, overlay_vec, noverlays, NULL, 0);
20924 enough space for all, and try again. */
20925 len = 40;
20926 overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
20927 noverlays = overlays_at (pos, 0, &overlay_vec, &len, NULL, NULL, 0);
20928 if (noverlays > len)
20929 {
20930 len = noverlays;
20931 overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
20932 noverlays = overlays_at (pos, 0, &overlay_vec, &len, NULL, NULL,0);
20933 }
20934
20935 /* Sort overlays into increasing priority order. */ 20915 /* Sort overlays into increasing priority order. */
20936 noverlays = sort_overlays (overlay_vec, noverlays, w); 20916 noverlays = sort_overlays (overlay_vec, noverlays, w);
20937 } 20917 }
diff --git a/src/xfaces.c b/src/xfaces.c
index 9e49833c736..bae9b569f1a 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -3860,7 +3860,7 @@ Otherwise check for the existence of a global face. */)
3860DEFUN ("internal-copy-lisp-face", Finternal_copy_lisp_face, 3860DEFUN ("internal-copy-lisp-face", Finternal_copy_lisp_face,
3861 Sinternal_copy_lisp_face, 4, 4, 0, 3861 Sinternal_copy_lisp_face, 4, 4, 0,
3862 doc: /* Copy face FROM to TO. 3862 doc: /* Copy face FROM to TO.
3863If FRAME it t, copy the global face definition of FROM to the 3863If FRAME is t, copy the global face definition of FROM to the
3864global face definition of TO. Otherwise, copy the frame-local 3864global face definition of TO. Otherwise, copy the frame-local
3865definition of FROM on FRAME to the frame-local definition of TO 3865definition of FROM on FRAME to the frame-local definition of TO
3866on NEW-FRAME, or FRAME if NEW-FRAME is nil. 3866on NEW-FRAME, or FRAME if NEW-FRAME is nil.
@@ -4687,8 +4687,8 @@ DEFUN ("internal-get-lisp-face-attribute", Finternal_get_lisp_face_attribute,
4687 doc: /* Return face attribute KEYWORD of face SYMBOL. 4687 doc: /* Return face attribute KEYWORD of face SYMBOL.
4688If SYMBOL does not name a valid Lisp face or KEYWORD isn't a valid 4688If SYMBOL does not name a valid Lisp face or KEYWORD isn't a valid
4689face attribute name, signal an error. 4689face attribute name, signal an error.
4690If the optional argument FRAME is given, report on face FACE in that 4690If the optional argument FRAME is given, report on face SYMBOL in that
4691frame. If FRAME is t, report on the defaults for face FACE (for new 4691frame. If FRAME is t, report on the defaults for face SYMBOL (for new
4692frames). If FRAME is omitted or nil, use the selected frame. */) 4692frames). If FRAME is omitted or nil, use the selected frame. */)
4693 (symbol, keyword, frame) 4693 (symbol, keyword, frame)
4694 Lisp_Object symbol, keyword, frame; 4694 Lisp_Object symbol, keyword, frame;
@@ -5238,10 +5238,10 @@ with the default face for display, can be represented in a way that's
5238 \(1) different in appearance than the default face, and 5238 \(1) different in appearance than the default face, and
5239 \(2) `close in spirit' to what the attributes specify, if not exact. 5239 \(2) `close in spirit' to what the attributes specify, if not exact.
5240 5240
5241Point (2) implies that a `:weight black' attribute will be satisified 5241Point (2) implies that a `:weight black' attribute will be satisfied
5242by any terminal that can display bold, and a `:foreground "yellow"' as 5242by any terminal that can display bold, and a `:foreground "yellow"' as
5243long as the terminal can display a yellowish color, but `:slant italic' 5243long as the terminal can display a yellowish color, but `:slant italic'
5244will _not_ be satisified by the tty display code's automatic 5244will _not_ be satisfied by the tty display code's automatic
5245substitution of a `dim' face for italic. */) 5245substitution of a `dim' face for italic. */)
5246 (attributes, frame) 5246 (attributes, frame)
5247 Lisp_Object attributes, frame; 5247 Lisp_Object attributes, frame;
@@ -5449,8 +5449,8 @@ clear_face_gcs (c)
5449} 5449}
5450 5450
5451 5451
5452/* Free all realized faces in face cache C, including basic faces. C 5452/* Free all realized faces in face cache C, including basic faces.
5453 may be null. If faces are freed, make sure the frame's current 5453 C may be null. If faces are freed, make sure the frame's current
5454 matrix is marked invalid, so that a display caused by an expose 5454 matrix is marked invalid, so that a display caused by an expose
5455 event doesn't try to use faces we destroyed. */ 5455 event doesn't try to use faces we destroyed. */
5456 5456
@@ -7306,24 +7306,8 @@ face_at_buffer_position (w, pos, region_beg, region_end,
7306 /* Look at properties from overlays. */ 7306 /* Look at properties from overlays. */
7307 { 7307 {
7308 int next_overlay; 7308 int next_overlay;
7309 int len;
7310
7311 /* First try with room for 40 overlays. */
7312 len = 40;
7313 overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
7314 noverlays = overlays_at (pos, 0, &overlay_vec, &len,
7315 &next_overlay, NULL, 0);
7316
7317 /* If there are more than 40, make enough space for all, and try
7318 again. */
7319 if (noverlays > len)
7320 {
7321 len = noverlays;
7322 overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
7323 noverlays = overlays_at (pos, 0, &overlay_vec, &len,
7324 &next_overlay, NULL, 0);
7325 }
7326 7309
7310 GET_OVERLAYS_AT (pos, overlay_vec, noverlays, &next_overlay, 0);
7327 if (next_overlay < endpos) 7311 if (next_overlay < endpos)
7328 endpos = next_overlay; 7312 endpos = next_overlay;
7329 } 7313 }
diff --git a/src/xfns.c b/src/xfns.c
index 3b0b2884246..56593453b2c 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -5506,6 +5506,11 @@ Chinese, Japanese, and Korean. */);
5506#endif /* USE_X_TOOLKIT */ 5506#endif /* USE_X_TOOLKIT */
5507 5507
5508#ifdef USE_GTK 5508#ifdef USE_GTK
5509 /* Provide x-toolkit also for GTK. Internally GTK does not use Xt so it
5510 is not an X toolkit in that sense (USE_X_TOOLKIT is not defined).
5511 But for a user it is a toolkit for X, and indeed, configure
5512 accepts --with-x-toolkit=gtk. */
5513 Fprovide (intern ("x-toolkit"), Qnil);
5509 Fprovide (intern ("gtk"), Qnil); 5514 Fprovide (intern ("gtk"), Qnil);
5510 5515
5511 DEFVAR_LISP ("gtk-version-string", &Vgtk_version_string, 5516 DEFVAR_LISP ("gtk-version-string", &Vgtk_version_string,