aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2005-04-02 22:40:25 +0000
committerMiles Bader2005-04-02 22:40:25 +0000
commit4a2283bcc7998fef3788136a16a6c2b10df6fe6f (patch)
treedc8199f604a6e5a2d57754d843773be6c88c4f36
parent417294f4d1d8872d7a4a698de1a9650f18af3b37 (diff)
parentab77efd0e55c661ea8fd45df28f2a39d0c46fbd8 (diff)
downloademacs-4a2283bcc7998fef3788136a16a6c2b10df6fe6f.tar.gz
emacs-4a2283bcc7998fef3788136a16a6c2b10df6fe6f.zip
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-33
Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 223-227) - Update from CVS
-rw-r--r--admin/ChangeLog13
-rw-r--r--admin/FOR-RELEASE46
-rw-r--r--etc/ChangeLog28
-rw-r--r--etc/NEWS4
-rw-r--r--etc/TUTORIAL3
-rw-r--r--etc/TUTORIAL.bg301
-rw-r--r--etc/TUTORIAL.cn3
-rw-r--r--etc/TUTORIAL.cs2
-rw-r--r--etc/TUTORIAL.de1
-rw-r--r--etc/TUTORIAL.es6
-rw-r--r--etc/TUTORIAL.fr1
-rw-r--r--etc/TUTORIAL.it1
-rw-r--r--etc/TUTORIAL.ja3
-rw-r--r--etc/TUTORIAL.ko2
-rw-r--r--etc/TUTORIAL.nl3
-rw-r--r--etc/TUTORIAL.pl3
-rw-r--r--etc/TUTORIAL.pt_BR11
-rw-r--r--etc/TUTORIAL.ro2
-rw-r--r--etc/TUTORIAL.ru3
-rw-r--r--etc/TUTORIAL.sk2
-rw-r--r--etc/TUTORIAL.sl1
-rw-r--r--etc/TUTORIAL.sv6
-rw-r--r--etc/TUTORIAL.th2
-rw-r--r--etc/TUTORIAL.zh3
-rw-r--r--lisp/ChangeLog124
-rw-r--r--lisp/calc/calc-embed.el56
-rw-r--r--lisp/calc/calc-graph.el14
-rw-r--r--lisp/calc/calc.el116
-rw-r--r--lisp/emacs-lisp/autoload.el2
-rw-r--r--lisp/emacs-lisp/easy-mmode.el16
-rw-r--r--lisp/files.el10
-rw-r--r--lisp/generic.el52
-rw-r--r--lisp/ido.el30
-rw-r--r--lisp/language/thai-word.el2
-rw-r--r--lisp/mail/rmail.el49
-rw-r--r--lisp/mouse.el28
-rw-r--r--lisp/pcvs.el105
-rw-r--r--lisp/progmodes/scheme.el4
-rw-r--r--lisp/simple.el1
-rw-r--r--lisp/tooltip.el22
-rw-r--r--lisp/url/vc-dav.el184
-rw-r--r--lisp/vc-hooks.el4
-rw-r--r--lispref/ChangeLog9
-rw-r--r--lispref/nonascii.texi21
-rw-r--r--lwlib/ChangeLog13
-rw-r--r--lwlib/xlwmenu.c132
-rw-r--r--lwlib/xlwmenuP.h8
-rw-r--r--man/ChangeLog28
-rw-r--r--man/calc.texi261
-rw-r--r--man/calendar.texi6
-rw-r--r--man/cmdargs.texi5
-rw-r--r--man/files.texi22
-rw-r--r--man/maintaining.texi21
-rw-r--r--src/ChangeLog55
-rw-r--r--src/alloc.c4
-rw-r--r--src/casetab.c7
-rw-r--r--src/coding.c2
-rw-r--r--src/keyboard.c14
-rw-r--r--src/lisp.h3
-rw-r--r--src/ralloc.c5
-rw-r--r--src/search.c67
-rw-r--r--src/xterm.c29
62 files changed, 1364 insertions, 617 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog
index efcd9b2d5e5..c3c65379a16 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,16 @@
12005-03-30 Marcelo Toledo <marcelo@marcelotoledo.org>
2
3 * FOR-RELEASE (Documentation): Added check the Emacs Tutorial. The
4 first line of every tutorial must begin with a sentence saying
5 "Emacs Tutorial" in the respective language. This should be
6 followed by "See end for copying conditions", likewise in the
7 respective language.
8
92005-03-29 Luc Teirlinck <teirllm@auburn.edu>
10
11 * FOR-RELEASE (TO BE DONE SHORTLY BEFORE RELEASE): New section.
12 Add `undo-ask-before-discard' to it.
13
12005-03-02 Miles Bader <miles@gnu.org> 142005-03-02 Miles Bader <miles@gnu.org>
2 15
3 * quick-install-emacs: Only use the mkdir --verbose option if the 16 * quick-install-emacs: Only use the mkdir --verbose option if the
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 9ce510a6ee6..ff6b4c7e73e 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -1,8 +1,8 @@
1Tasks needed before the next release. 1Tasks needed before the next release.
2 2
3* THINGS THAT HAVE TO BE DONE SHORTLY BEFORE RELEASE 3* TO BE DONE SHORTLY BEFORE RELEASE
4 4
5`undo-ask-before-discard', currently set to t for debugging purposes 5** `undo-ask-before-discard', currently set to t for debugging purposes
6has to be set to nil: when t, it can leak memory and cause other problems. 6has to be set to nil: when t, it can leak memory and cause other problems.
7 7
8* NEW FEATURES 8* NEW FEATURES
@@ -23,6 +23,8 @@ See msg from rms to emacs-devel on 21 Dec.
23 23
24* FATAL ERRORS 24* FATAL ERRORS
25 25
26** Make unexec handle memory mapping policy of the latest versions of Linux.
27
26** Investigate reported crashes in compact_small_strings. 28** Investigate reported crashes in compact_small_strings.
27 29
28** Investigate reported crashes related to using an 30** Investigate reported crashes related to using an
@@ -150,7 +152,7 @@ man/basic.texi "Luc Teirlinck" Chong Yidong
150man/buffers.texi "Luc Teirlinck" Chong Yidong 152man/buffers.texi "Luc Teirlinck" Chong Yidong
151man/building.texi "Ted Zlatanov" <tzz@lifelogs.com> 153man/building.texi "Ted Zlatanov" <tzz@lifelogs.com>
152man/calendar.texi joakim@verona.se Chong Yidong 154man/calendar.texi joakim@verona.se Chong Yidong
153man/cmdargs.texi Chong Yidong 155man/cmdargs.texi Chong Yidong "Luc Teirlinck"
154man/commands.texi "Luc Teirlinck" Chong Yidong 156man/commands.texi "Luc Teirlinck" Chong Yidong
155man/custom.texi Chong Yidong 157man/custom.texi Chong Yidong
156man/dired.texi Chong Yidong joakim@verona.se 158man/dired.texi Chong Yidong joakim@verona.se
@@ -216,7 +218,7 @@ lispref/frames.texi "Luc Teirlinck" Chong Yidong
216lispref/functions.texi "Luc Teirlinck" Chong Yidong 218lispref/functions.texi "Luc Teirlinck" Chong Yidong
217lispref/hash.texi "Luc Teirlinck" Chong Yidong 219lispref/hash.texi "Luc Teirlinck" Chong Yidong
218lispref/help.texi "Luc Teirlinck" Chong Yidong 220lispref/help.texi "Luc Teirlinck" Chong Yidong
219lispref/hooks.texi 221lispref/hooks.texi Lute Kamstra
220lispref/internals.texi "Luc Teirlinck" Chong Yidong 222lispref/internals.texi "Luc Teirlinck" Chong Yidong
221lispref/intro.texi "Luc Teirlinck" 223lispref/intro.texi "Luc Teirlinck"
222lispref/keymaps.texi "Luc Teirlinck" Chong Yidong 224lispref/keymaps.texi "Luc Teirlinck" Chong Yidong
@@ -245,6 +247,42 @@ lispref/tips.texi "Luc Teirlinck" Chong Yidong
245lispref/variables.texi "Luc Teirlinck" Chong Yidong 247lispref/variables.texi "Luc Teirlinck" Chong Yidong
246lispref/windows.texi "Luc Teirlinck" Chong Yidong 248lispref/windows.texi "Luc Teirlinck" Chong Yidong
247 249
250** Check the Emacs Tutorial.
251
252The first line of every tutorial must begin with a sentence saying
253"Emacs Tutorial" in the respective language. This should be followed
254by "See end for copying conditions", likewise in the respective
255language.
256
257After each file name, on the same line or the following line, come the
258names of the people who have checked it.
259
260
261SECTION READERS
262----------------------------------
263etc/TUTORIAL rms
264etc/TUTORIAL.bg Ognyan Kulev <ogi@fmi.uni-sofia.bg>
265etc/TUTORIAL.cn
266etc/TUTORIAL.cs
267etc/TUTORIAL.de
268etc/TUTORIAL.es Marcelo Toledo
269etc/TUTORIAL.fr
270etc/TUTORIAL.it
271etc/TUTORIAL.ja
272etc/TUTORIAL.ko
273etc/TUTORIAL.nl Lute Kamstra
274etc/TUTORIAL.pl
275etc/TUTORIAL.pt_BR Marcelo Toledo
276etc/TUTORIAL.ro
277etc/TUTORIAL.ru
278etc/TUTORIAL.sk
279etc/TUTORIAL.sl
280etc/TUTORIAL.sv Mats Lidell <matsl@contactor.se>
281etc/TUTORIAL.th
282etc/TUTORIAL.zh
283
284
285
248 286
249Local variables: 287Local variables:
250mode: outline 288mode: outline
diff --git a/etc/ChangeLog b/etc/ChangeLog
index aaefbea4b09..8d7a9610321 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,31 @@
12005-04-02 Richard M. Stallman <rms@gnu.org>
2
3 * TUTORIAL.ja, TUTORIAL.cn, TUTORIAL.ru, TUTORIAL.zh: Remove the
4 old intro line that apparently was a longer version of "Emacs
5 tutorial".
6
7 * TUTORIAL.es: Clean up line breaks.
8
92005-04-01 Marcelo Toledo <marcelo@marcelotoledo.org>
10
11 * TUTORIAL.pt_BR, TUTORIAL.cn, TUTORIAL.cs, TUTORIAL.de,
12 TUTORIAL.es, TUTORIAL.fr, TUTORIAL.it, TUTORIAL.ja, TUTORIAL.ko,
13 TUTORIAL.pl, TUTORIAL.pt_BR, TUTORIAL.ro, TUTORIAL.ru,
14 TUTORIAL.sk, TUTORIAL.sl, TUTORIAL.th, TUTORIAL.zh: Fix title
15 line.
16
17 * TUTORIAL.bg: Fix title line; Applied TUTORIAL changes in
18 2005-02-08T14:20:54Z!lute@gnu.org, "Emacs" is not transliterated to cyrillic anymore;
19 Minor fixes; by Ognyan Kulev <ogi@fmi.uni-sofia.bg>.
20
21 * TUTORIAL.sv: Sync some other changes with the TUTORIAL version
22 2005-04-01T00:31:25Z!rms@gnu.org by Mats Lidell <matsl@contactor.se>.
23
24
252005-04-01 Lute Kamstra <lute@gnu.org>
26
27 * TUTORIAL.nl: Fix title line.
28
12005-03-30 Thien-Thi Nguyen <ttn@gnu.org> 292005-03-30 Thien-Thi Nguyen <ttn@gnu.org>
2 30
3 * TUTORIAL: Add title line. 31 * TUTORIAL: Add title line.
diff --git a/etc/NEWS b/etc/NEWS
index a64beed16af..431fb8d9bc7 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2804,6 +2804,10 @@ the command `undefined'. (In earlier Emacs versions, it used
2804 2804
2805* Lisp Changes in Emacs 22.1 2805* Lisp Changes in Emacs 22.1
2806 2806
2807---
2808** easy-mmode-define-global-mode has been renamed to
2809define-global-minor-mode. The old name remains as an alias.
2810
2807+++ 2811+++
2808** The new function `filter-buffer-substring' extracts a buffer 2812** The new function `filter-buffer-substring' extracts a buffer
2809substring, passes it through a set of filter functions, and returns 2813substring, passes it through a set of filter functions, and returns
diff --git a/etc/TUTORIAL b/etc/TUTORIAL
index dd3b25bce3b..48fa02f93d9 100644
--- a/etc/TUTORIAL
+++ b/etc/TUTORIAL
@@ -1,5 +1,4 @@
1Emacs Tutorial 1Emacs tutorial. See end for copying conditions.
2You are looking at the Emacs tutorial. See end for copying conditions.
3Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation. 2Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation.
4 3
5Emacs commands generally involve the CONTROL key (sometimes labeled 4Emacs commands generally involve the CONTROL key (sometimes labeled
diff --git a/etc/TUTORIAL.bg b/etc/TUTORIAL.bg
index ba32e814b91..239d3d58c19 100644
--- a/etc/TUTORIAL.bg
+++ b/etc/TUTORIAL.bg
@@ -1,8 +1,7 @@
1âúâåäåíèåòî íà Åìàêñ 1Âúâåäåíèå â Emacs. Óñëîâèÿòà çà êîïèðàíå ñà â êðàÿ íà òåêñòà.
2Âèå ãëåäàòå âúâåäåíèåòî íà Åìàêñ. Óñëîâèÿòà çà êîïèðàíå ñà â êðàÿ íà òåêñòà. 2Copyright (c) 1985,1996,1998,2001,2002,2003,2005 Free Software Foundation.
3Copyright (c) 1985, 1996, 1998, 2001, 2002, 2003 Free Software Foundation.
4 3
5Êîìàíäèòå íà Åìàêñ íàé-÷åñòî âêëþ÷âàò êëàâèøèòå CONTROL (ïîíÿêîãà 4Êîìàíäèòå íà Emacs íàé-÷åñòî âêëþ÷âàò êëàâèøèòå CONTROL (ïîíÿêîãà
6îòáåëÿçâàí ñ CTRL èëè CTL) è META (ïîíÿêîãà îòáåëÿçâàí ñ EDIT èëè 5îòáåëÿçâàí ñ CTRL èëè CTL) è META (ïîíÿêîãà îòáåëÿçâàí ñ EDIT èëè
7ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå 6ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå
8ñëåäíèòå ñúêðàùåíèÿ: 7ñëåäíèòå ñúêðàùåíèÿ:
@@ -16,7 +15,7 @@ ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå
16 êëàâèøà ESC è ñëåä òîâà âúâåäåòå <çíàê>. Íèå 15 êëàâèøà ESC è ñëåä òîâà âúâåäåòå <çíàê>. Íèå
17 çàïèñâàìå <ESC>, çà äà îòáåëåæèì êëàâèøà ESC. 16 çàïèñâàìå <ESC>, çà äà îòáåëåæèì êëàâèøà ESC.
18 17
19Âàæíà áåëåæêà: â êðàÿ íà Åìàêñ ñåñèÿòà âúâåäåòå äâàòà çíàêà C-x C-c. 18Âàæíà áåëåæêà: â êðàÿ íà Emacs ñåñèÿòà âúâåäåòå äâàòà çíàêà C-x C-c.
20Çíàöèòå ">>" îòëÿâî âè äàâàò óêàçàíèå äà èçïúëíèòå êîìàíäà. Íàïðèìåð: 19Çíàöèòå ">>" îòëÿâî âè äàâàò óêàçàíèå äà èçïúëíèòå êîìàíäà. Íàïðèìåð:
21<<Blank lines inserted here by startup of help-with-tutorial>> 20<<Blank lines inserted here by startup of help-with-tutorial>>
22>> Ñåãà âúâåäåòå C-v (Ïîêàæè ñëåäâàùèÿ åêðàí), çà äà ñå ïðèäâèæèòå êúì 21>> Ñåãà âúâåäåòå C-v (Ïîêàæè ñëåäâàùèÿ åêðàí), çà äà ñå ïðèäâèæèòå êúì
@@ -94,7 +93,7 @@ Next (ñëåäâàù), B çà Backward (íàçàä) è F çà Forward (íàïðåä). Âèå ùå
94 93
95Âñåêè ðåä îò òåêñò çàâúðøâà ñúñ çíàê çà íîâ ðåä, êîéòî ñëóæè çà 94Âñåêè ðåä îò òåêñò çàâúðøâà ñúñ çíàê çà íîâ ðåä, êîéòî ñëóæè çà
96îòäåëÿíåòî íà ðåäà îò ñëåäâàùèÿ ðåä. Ïîñëåäíèÿò ðåä âúâ âàøèÿ ôàéë 95îòäåëÿíåòî íà ðåäà îò ñëåäâàùèÿ ðåä. Ïîñëåäíèÿò ðåä âúâ âàøèÿ ôàéë
97òðÿáâà äà èìà çíàê çà íîâ ðåä â êðàÿ (íî Åìàêñ íå èçèñêâà òàêúâ, 96òðÿáâà äà èìà çíàê çà íîâ ðåä â êðàÿ (íî Emacs íå èçèñêâà òàêúâ,
98êîãàòî ïðî÷èòà ôàéëà). 97êîãàòî ïðî÷èòà ôàéëà).
99 98
100>> Îïèòàéòå C-b â íà÷àëîòî íà ðåä. Òîâà òðÿáâà äà âè ïðèäâèæè â êðàÿ 99>> Îïèòàéòå C-b â íà÷àëîòî íà ðåä. Òîâà òðÿáâà äà âè ïðèäâèæè â êðàÿ
@@ -110,7 +109,7 @@ C-f ìîæå äà ïðèäâèæâà ïðåç çíàê çà íîâ ðåä òî÷íî êàêòî C-b.
110 109
111Êîãàòî ñå ïðèäâèæâàòå ñëåä ãîðíèÿ èëè äîëíèÿ êðàé íà åêðàíà, òåêñòúò 110Êîãàòî ñå ïðèäâèæâàòå ñëåä ãîðíèÿ èëè äîëíèÿ êðàé íà åêðàíà, òåêñòúò
112îòâúä êðàÿ ñå èçìåñòâà êúì åêðàíà. Òîâà ñå íàðè÷à "ñêðîëèðàíå". Òî 111îòâúä êðàÿ ñå èçìåñòâà êúì åêðàíà. Òîâà ñå íàðè÷à "ñêðîëèðàíå". Òî
113ïîçâîëÿâà íà Åìàêñ äà ïðèäâèæâà êóðñîðà êúì çàäàäåíîòî ìÿñòî â òåêñòà, 112ïîçâîëÿâà íà Emacs äà ïðèäâèæâà êóðñîðà êúì çàäàäåíîòî ìÿñòî â òåêñòà,
114áåç äà ãî èçêàðâà èçâúí åêðàíà. 113áåç äà ãî èçêàðâà èçâúí åêðàíà.
115 114
116>> Îïèòàéòå ñå äà ïðèäâèæèòå êóðñîðà ñëåä äîëíèÿ êðàé íà åêðàíà ñ C-n 115>> Îïèòàéòå ñå äà ïðèäâèæèòå êóðñîðà ñëåä äîëíèÿ êðàé íà åêðàíà ñ C-n
@@ -193,7 +192,7 @@ Shift áèõòå âúâåëè M-çàïåòàÿ.
193Âèå ìîæåòå ñúùî äà ñå ïðèäâèæâàòå ñ êëàâèøèòå-ñòðåëêè, àêî âàøèÿò 192Âèå ìîæåòå ñúùî äà ñå ïðèäâèæâàòå ñ êëàâèøèòå-ñòðåëêè, àêî âàøèÿò
194òåðìèíàë èìà òàêèâà. Íèå ïðåïîðú÷âàìå äà íàó÷èòå C-b, C-f, C-n è C-p 193òåðìèíàë èìà òàêèâà. Íèå ïðåïîðú÷âàìå äà íàó÷èòå C-b, C-f, C-n è C-p
195ïî òðè ïðè÷èíè. Ïúðâî, òå ðàáîòÿò íà âñè÷êè âèäîâå òåðìèíàëè. Âòîðî, 194ïî òðè ïðè÷èíè. Ïúðâî, òå ðàáîòÿò íà âñè÷êè âèäîâå òåðìèíàëè. Âòîðî,
196âåäíúæ ñëåä êàòî äîáèåòå ïðàêòèêà â èçïîëçâàíåòî íà Åìàêñ, ùå 195âåäíúæ ñëåä êàòî äîáèåòå ïðàêòèêà â èçïîëçâàíåòî íà Emacs, ùå
197îòêðèåòå, ÷å âúâåæäàíåòî íà òåçè Control-çíàöè å ïî-áúðçî îò 196îòêðèåòå, ÷å âúâåæäàíåòî íà òåçè Control-çíàöè å ïî-áúðçî îò
198âúâåæäàíåòî íà êëàâèøèòå ñòðåëêè, çàùîòî íå òðÿáâà äà ïðåìåñòâàòå 197âúâåæäàíåòî íà êëàâèøèòå ñòðåëêè, çàùîòî íå òðÿáâà äà ïðåìåñòâàòå
199ðúêàòà ñè äàëå÷ îò îáëàñòòà íà êëàâèøèòå ñ áóêâè. Òðåòî, âåäíúæ ñëåä 198ðúêàòà ñè äàëå÷ îò îáëàñòòà íà êëàâèøèòå ñ áóêâè. Òðåòî, âåäíúæ ñëåä
@@ -201,7 +200,7 @@ Shift áèõòå âúâåëè M-çàïåòàÿ.
201ìîæåòå ñúùî òàêà ëåñíî äà íàó÷èòå ïî-íàïðåäíàëèòå êîìàíäè çà äâèæåíèå 200ìîæåòå ñúùî òàêà ëåñíî äà íàó÷èòå ïî-íàïðåäíàëèòå êîìàíäè çà äâèæåíèå
202íà êóðñîðà. 201íà êóðñîðà.
203 202
204Ïîâå÷åòî Åìàêñ êîìàíäè ïðèåìàò ÷èñëîâ àðãóìåíò; çà ïîâå÷åòî îò òÿõ òîé 203Ïîâå÷åòî Emacs êîìàíäè ïðèåìàò ÷èñëîâ àðãóìåíò; çà ïîâå÷åòî îò òÿõ òîé
205ñëóæè êàòî áðîÿ÷ íà ïîâòîðåíèÿ. Íà÷èíúò, ïî êîéòî äàâàòå ÷èñëîâ 204ñëóæè êàòî áðîÿ÷ íà ïîâòîðåíèÿ. Íà÷èíúò, ïî êîéòî äàâàòå ÷èñëîâ
206áðîÿ÷, å ñ âúâåæäàíå íà C-u, ïîñëåäâàíî îò âúâåæäàíå íà öèôðèòå, è 205áðîÿ÷, å ñ âúâåæäàíå íà C-u, ïîñëåäâàíî îò âúâåæäàíå íà öèôðèòå, è
207âñè÷êî òîâà ïðåäè âúâåæäàíå íà ñàìàòà êîìàíäà. Àêî èìàòå êëàâèø META 206âñè÷êî òîâà ïðåäè âúâåæäàíå íà ñàìàòà êîìàíäà. Àêî èìàòå êëàâèø META
@@ -233,7 +232,7 @@ C-v è M-v ñà äðóã âèä èçêëþ÷åíèå. Êîãàòî èì å äàäåí àðãóìåíò, òå
233 232
234Àêî èçïîëçâàòå ãðàôè÷åí èíòåðôåéñ, êàòî X11 èëè MS-Windows, áè 233Àêî èçïîëçâàòå ãðàôè÷åí èíòåðôåéñ, êàòî X11 èëè MS-Windows, áè
235òðÿáâàëî äà èìà òúíêà ïðàâîúãúëíà îáëàñò, íàðå÷åíà ïëúçãà÷ (scroll 234òðÿáâàëî äà èìà òúíêà ïðàâîúãúëíà îáëàñò, íàðå÷åíà ïëúçãà÷ (scroll
236bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå 235bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Emacs. Âèå ìîæåòå äà ñêðîëèðàòå
237òåêñòà, ùðàêàéêè ñ ìèøêàòà â ïëúçãà÷à. 236òåêñòà, ùðàêàéêè ñ ìèøêàòà â ïëúçãà÷à.
238 237
239>> Îïèòàéòå äà íàòèñíåòå ñðåäíèÿ áóòîí íà âúðõà íà îñâåòåíàòà îáëàñò 238>> Îïèòàéòå äà íàòèñíåòå ñðåäíèÿ áóòîí íà âúðõà íà îñâåòåíàòà îáëàñò
@@ -245,10 +244,10 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå
245 íàãîðå è íàäîëó, êàòî äâèæèòå ìèøêàòà. 244 íàãîðå è íàäîëó, êàòî äâèæèòå ìèøêàòà.
246 245
247 246
248* ÊÎÃÀÒÎ ÅÌÀÊÑ Å ÁËÎÊÈÐÀË 247* ÊÎÃÀÒÎ EMACS Å ÁËÎÊÈÐÀË
249------------------------- 248-------------------------
250 249
251Àêî Åìàêñ ñïðå äà îòãîâàðÿ íà âàøèòå êîìàíäè, âèå ìîæåòå äà ãî ñïðåòå 250Àêî Emacs ñïðå äà îòãîâàðÿ íà âàøèòå êîìàíäè, âèå ìîæåòå äà ãî ñïðåòå
252áåçîïàñíî, êàòî âúâåäåòå C-g. Ìîæå äà èçïîëçâàòå C-g, çà äà ñïðåòå 251áåçîïàñíî, êàòî âúâåäåòå C-g. Ìîæå äà èçïîëçâàòå C-g, çà äà ñïðåòå
253êîìàíäà, êîÿòî ñå èçïúëíÿâà òâúðäå äúëãî. 252êîìàíäà, êîÿòî ñå èçïúëíÿâà òâúðäå äúëãî.
254 253
@@ -265,15 +264,15 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå
265* ÇÀÁÐÀÍÅÍÈ ÊÎÌÀÍÄÈ 264* ÇÀÁÐÀÍÅÍÈ ÊÎÌÀÍÄÈ
266------------------- 265-------------------
267 266
268Íÿêîè êîìàíäè íà Åìàêñ ñà "çàáðàíåíè", òàêà ÷å íà÷èíàåùèòå ïîòðåáèòåëè 267Íÿêîè êîìàíäè íà Emacs ñà "çàáðàíåíè", òàêà ÷å íà÷èíàåùèòå ïîòðåáèòåëè
269äà íå ìîãàò äà ãè óïîòðåáÿò ïî ïîãðåøêà. 268äà íå ìîãàò äà ãè óïîòðåáÿò ïî ïîãðåøêà.
270 269
271Àêî âúâåäåòå íÿêîÿ îò çàáðàíåíèòå êîìàíäè, Åìàêñ èçâåæäà ñúîáùåíèå, 270Àêî âúâåäåòå íÿêîÿ îò çàáðàíåíèòå êîìàíäè, Emacs èçâåæäà ñúîáùåíèå,
272êàçâàéêè êàêâà å áèëà êîìàíäàòà è ïèòàéêè âè äàëè èñêàòå äà ïðîäúëæèòå 271êàçâàéêè êàêâà å áèëà êîìàíäàòà è ïèòàéêè âè äàëè èñêàòå äà ïðîäúëæèòå
273íàïðåä è äà èçïúëíèòå êîìàíäàòà. 272íàïðåä è äà èçïúëíèòå êîìàíäàòà.
274 273
275Àêî íàèñòèíà èñêàòå äà èçïðîáâàòå êîìàíäàòà, âúâåäåòå êëàâèøà èíòåðâàë 274Àêî íàèñòèíà èñêàòå äà èçïðîáâàòå êîìàíäàòà, âúâåäåòå <SPC> (êëàâèøà
276â îòãîâîð íà âúïðîñà. Îáèêíîâåíî àêî íå èñêàòå äà èçïúëíèòå 275èíòåðâàë) â îòãîâîð íà âúïðîñà. Îáèêíîâåíî àêî íå èñêàòå äà èçïúëíèòå
277çàáðàíåíàòà êîìàíäà, îòãîâàðÿòå íà âúïðîñà ñ "n". 276çàáðàíåíàòà êîìàíäà, îòãîâàðÿòå íà âúïðîñà ñ "n".
278 277
279>> Âúâåäåòå C-x C-l (êîÿòî å çàáðàíåíà êîìàíäà), è ñëåä òîâà âúâåäåòå 278>> Âúâåäåòå C-x C-l (êîÿòî å çàáðàíåíà êîìàíäà), è ñëåä òîâà âúâåäåòå
@@ -283,7 +282,7 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå
283* ÏÐÎÇÎÐÖÈ 282* ÏÐÎÇÎÐÖÈ
284---------- 283----------
285 284
286Åìàêñ ìîæå äà óïðàâëÿâà íÿêîëêî ïðîçîðåöà, âñåêè èçâåæäàéêè ñâîé 285Emacs ìîæå äà óïðàâëÿâà íÿêîëêî ïðîçîðåöà, âñåêè èçâåæäàéêè ñâîé
287ñîáñòâåí òåêñò. Íèå ùå îáÿñíèì ïî-êúñíî êàê äà èçïîëçâàòå íÿêîëêî 286ñîáñòâåí òåêñò. Íèå ùå îáÿñíèì ïî-êúñíî êàê äà èçïîëçâàòå íÿêîëêî
288ïðîçîðåöà. Òî÷íî ñåãà íèå èñêàìå äà îáÿñíèì êàê äà ñå îòúðâåòå îò 287ïðîçîðåöà. Òî÷íî ñåãà íèå èñêàìå äà îáÿñíèì êàê äà ñå îòúðâåòå îò
289äîïúëíèòåëíè ïðîçîðöè è äà ñå âúðíåòå êúì îñíîâíîòî ðåäàêòèðàíå ñ åäèí 288äîïúëíèòåëíè ïðîçîðöè è äà ñå âúðíåòå êúì îñíîâíîòî ðåäàêòèðàíå ñ åäèí
@@ -313,13 +312,13 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå
313---------------------- 312----------------------
314 313
315Àêî èñêàòå äà âìúêíåòå òåêñò, ïðîñòî ãî âúâåäåòå. Çíàöèòå, êîèòî 314Àêî èñêàòå äà âìúêíåòå òåêñò, ïðîñòî ãî âúâåäåòå. Çíàöèòå, êîèòî
316ìîãàò äà ñå âèæäàò, êàòî À, 7, * è ò.í., ñå âúçïðèåìàò îò Åìàêñ êàòî 315ìîãàò äà ñå âèæäàò, êàòî À, 7, * è ò.í., ñå âúçïðèåìàò îò Emacs êàòî
317òåêñò è ñå âìúêâàò âåäíàãà. Âúâåäåòå <Return> (êëàâèøúò çà âðúùàíå â 316òåêñò è ñå âìúêâàò âåäíàãà. Âúâåäåòå <Return> (êëàâèøúò çà âðúùàíå â
318íà÷àëîòî íà ðåäà), çà äà âìúêíåòå çíàê çà íîâ ðåä. 317íà÷àëîòî íà ðåäà), çà äà âìúêíåòå çíàê çà íîâ ðåä.
319 318
320Ìîæå äà èçòðèåòå ïîñëåäíèÿ çíàê, êîéòî ñòå âúâåëè, ñ âúâåæäàíå íà 319Ìîæå äà èçòðèåòå ïîñëåäíèÿ çíàê, êîéòî ñòå âúâåëè, ñ âúâåæäàíå íà
321<Delback>. <Delback> å êëàâèø îò êëàâèàòóðàòà -- ñúùèÿò, êîéòî 320<Delback>. <Delback> å êëàâèø îò êëàâèàòóðàòà -- ñúùèÿò, êîéòî
322îáèêíîâåíî èçïîëçâàòå èçâúí Åìàêñ, çà äà èçòðèåòå ïîñëåäíèÿ âúâåäåí îò 321îáèêíîâåíî èçïîëçâàòå èçâúí Emacs, çà äà èçòðèåòå ïîñëåäíèÿ âúâåäåí îò
323âàñ çíàê. Îáèêíîâåíî å ãîëÿì êëàâèø, íà íÿêîëêî ðåäà ðàçñòîÿíèå îò 322âàñ çíàê. Îáèêíîâåíî å ãîëÿì êëàâèø, íà íÿêîëêî ðåäà ðàçñòîÿíèå îò
324êëàâèøà <Return>, è îáèêíîâåíî å îòáåëÿçàí ñ "Delete", "Del" èëè 323êëàâèøà <Return>, è îáèêíîâåíî å îòáåëÿçàí ñ "Delete", "Del" èëè
325"Backspace". 324"Backspace".
@@ -359,24 +358,24 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå
359>> Âúâåäåòå <Return>, çà äà âìúêíåòå íàíîâî çíàêà çà íîâ ðåä, êîéòî 358>> Âúâåäåòå <Return>, çà äà âìúêíåòå íàíîâî çíàêà çà íîâ ðåä, êîéòî
360 èçòðèõòå. 359 èçòðèõòå.
361 360
362Çàïîìíåòå, ÷å íà ïîâå÷åòî êîìàíäè íà Åìàêñ ìîæå äà áúäå çàäàäåí áðîÿ÷ 361Çàïîìíåòå, ÷å íà ïîâå÷åòî êîìàíäè íà Emacs ìîæå äà áúäå çàäàäåí áðîÿ÷
363íà ïîâòîðåíèÿòà; òîâà âêëþ÷âà âìúêâàíåòî íà òåêñòîâè çíàöè. 362íà ïîâòîðåíèÿòà; òîâà âêëþ÷âà âìúêâàíåòî íà òåêñòîâè çíàöè.
364Ïîâòàðÿíåòî íà òåêñòîâ çíàê ãî âìúêâà íÿêîëêî ïúòè. 363Ïîâòàðÿíåòî íà òåêñòîâ çíàê ãî âìúêâà íÿêîëêî ïúòè.
365 364
366>> Îïèòàéòå òîâà ñåãà -- âúâåäåòå C-u 8 *, çà äà âìúêíåòå ********. 365>> Îïèòàéòå òîâà ñåãà -- âúâåäåòå C-u 8 *, çà äà âìúêíåòå ********.
367 366
368Ñåãà âèå ñòå íàó÷èëè íàé-îñíîâíèòå íà÷èíè çà âúâåæäàíå íà íåùî â Åìàêñ 367Ñåãà âèå ñòå íàó÷èëè íàé-îñíîâíèòå íà÷èíè çà âúâåæäàíå íà íåùî â Emacs
369è ïîïðàâÿíå íà ãðåøêè. Ìîæåòå ñúùî òàêà äà èçòðèâàòå äóìè èëè ðåäîâå. 368è ïîïðàâÿíå íà ãðåøêè. Ìîæåòå ñúùî òàêà äà èçòðèâàòå äóìè èëè ðåäîâå.
370Åòî îáîáùåíèå íà èçòðèâàùèòå äåéñòâèÿ: 369Åòî îáîáùåíèå íà èçòðèâàùèòå äåéñòâèÿ:
371 370
372 <Delback> èçòðèâàíå íà çíàêà òî÷íî ïðåäè êóðñîðà 371 <Delback> Èçòðèâàíå íà çíàêà òî÷íî ïðåäè êóðñîðà
373 C-d èçòðèâàíå íà çíàêà òî÷íî ñëåä êóðñîðà 372 C-d Èçòðèâàíå íà çíàêà òî÷íî ñëåä êóðñîðà
374 373
375 M-<Delback> èçòðèâàíå íà äóìàòà íåïîñðåäñòâåíî ïðåäè êóðñîðà 374 M-<Delback> Èçòðèâàíå íà äóìàòà íåïîñðåäñòâåíî ïðåäè êóðñîðà
376 M-d èçòðèâàíå íà äóìàòà ñëåä êóðñîðà 375 M-d Èçòðèâàíå íà äóìàòà ñëåä êóðñîðà
377 376
378 C-k èçòðèâàíå îò ìÿñòîòî íà êóðñîðà äî êðàÿ íà ðåäà 377 C-k Èçòðèâàíå îò ìÿñòîòî íà êóðñîðà äî êðàÿ íà ðåäà
379 M-k èçòðèâàíå äî êðàÿ íà òåêóùîòî èçðå÷åíèå 378 M-k Èçòðèâàíå äî êðàÿ íà òåêóùîòî èçðå÷åíèå
380 379
381Çàáåëåæåòå, ÷å <Delback> è C-d, ñðàâíåíè ñ M-<Delback> è M-d, 380Çàáåëåæåòå, ÷å <Delback> è C-d, ñðàâíåíè ñ M-<Delback> è M-d,
382ðàçøèðÿâàò ïîäîáèåòî, çàïî÷íàòî îò C-f è M-f (äîáðå, <Delback> íå å 381ðàçøèðÿâàò ïîäîáèåòî, çàïî÷íàòî îò C-f è M-f (äîáðå, <Delback> íå å
@@ -386,12 +385,12 @@ M-k ñà ïîäîáíè íà C-e è M-e â ñìèñúë, ÷å åäíèòå ñà çà ðåäîâå, à
386 385
387Ìîæåòå ñúùî äà ïðåìàõíåòå âñÿêà ÷àñò îò áóôåðà ñ åäèí óíèâåðñàëåí 386Ìîæåòå ñúùî äà ïðåìàõíåòå âñÿêà ÷àñò îò áóôåðà ñ åäèí óíèâåðñàëåí
388íà÷èí. Ïðèäâèæåòå ñå äî åäèíèÿ êðàé íà ÷àñòòà è âúâåäåòå C-@ èëè 387íà÷èí. Ïðèäâèæåòå ñå äî åäèíèÿ êðàé íà ÷àñòòà è âúâåäåòå C-@ èëè
389C-èíòåðâàë (êîåòî è äà å îò äâåòå). Ïðèäâèæåòå ñå äî äðóãèÿ êðàé íà 388C-<SPC> (êîåòî è äà å îò äâåòå). (<SPC> å êëàâèøúò èíòåðâàë.)
390÷àñòòà è âúâåäåòå C-w. Òîâà ùå èçðåæå öåëèÿ òåêñò ìåæäó òåçè äâà 389Ïðèäâèæåòå ñå äî äðóãèÿ êðàé íà ÷àñòòà è âúâåäåòå C-w. Òîâà ùå èçðåæå
391êðàÿ. 390öåëèÿ òåêñò ìåæäó òåçè äâà êðàÿ.
392 391
393>> Ïðèäâèæåòå êóðñîðà äî çíàêà "Ì" â íà÷àëîòî íà ïðåäèøíèÿ àáçàö. 392>> Ïðèäâèæåòå êóðñîðà äî çíàêà "Ì" â íà÷àëîòî íà ïðåäèøíèÿ àáçàö.
394>> Âúâåäåòå C-èíòåðâàë. Åìàêñ òðÿáâà äà èçâåäå ñúîáùåíèå "Mark set" â 393>> Âúâåäåòå C-<SPC>. Emacs òðÿáâà äà èçâåäå ñúîáùåíèå "Mark set" â
395 äîëíèÿ êðàé íà åêðàíà. 394 äîëíèÿ êðàé íà åêðàíà.
396>> Ïðèäâèæåòå êóðñîðà äî áóêâàòà "ð" â "êðàé" íà âòîðèÿ ðåä îò àáçàöà. 395>> Ïðèäâèæåòå êóðñîðà äî áóêâàòà "ð" â "êðàé" íà âòîðèÿ ðåä îò àáçàöà.
397>> Âúâåäåòå C-w. Òîâà ùå èçðåæå òåêñòà, çàïî÷âàù îò "Ì" è çàâúðøâàù 396>> Âúâåäåòå C-w. Òîâà ùå èçðåæå òåêñòà, çàïî÷âàù îò "Ì" è çàâúðøâàù
@@ -421,9 +420,9 @@ C-k îáðàáîòâà ÷èñëîâèòå àðãóìåíòè ïî ñïåöèàëåí íà÷èí: ïðåìàõâàò ñå
421Âðúùàíåòî îáðàòíî íà òåêñò ñå íàðè÷à "âìúêâàíå". (Ìèñëåòå çà íåãî 420Âðúùàíåòî îáðàòíî íà òåêñò ñå íàðè÷à "âìúêâàíå". (Ìèñëåòå çà íåãî
422êàòî çà èçâàæäàíå îáðàòíî, èëè äðúïâàíå îáðàòíî, íà òåêñò, êîéòî å áèë 421êàòî çà èçâàæäàíå îáðàòíî, èëè äðúïâàíå îáðàòíî, íà òåêñò, êîéòî å áèë
423èçðÿçàí.) Ìîæåòå äà âìúêâàòå èçðÿçàíèÿ òåêñò èëè íà ñúùîòî ìÿñòî, 422èçðÿçàí.) Ìîæåòå äà âìúêâàòå èçðÿçàíèÿ òåêñò èëè íà ñúùîòî ìÿñòî,
424îòêúäåòî å áèë ïðåìàõíàò, èëè íà äðóãî ìÿñòî â áóôåðà, äàæå è â 423îòêúäåòî å áèë ïðåìàõíàò, èëè íà äðóãî ìÿñòî â ðåäàêòèðàíèÿ òåêñò,
425ðàçëè÷åí ôàéë. Ìîæåòå äà âìúêâàòå åäèí è ñúù òåêñò íÿêîëêî ïúòè; òîâà 424äàæå è â ðàçëè÷åí ôàéë. Ìîæåòå äà âìúêâàòå åäèí è ñúù òåêñò íÿêîëêî
426ïðàâè íÿêîëêî êîïèÿ îò íåãî. 425ïúòè; òîâà ïðàâè íÿêîëêî êîïèÿ îò íåãî.
427 426
428Êîìàíäàòà çà âìúêâàíå å C-y. Òÿ âìúêâà íàíîâî ïîñëåäíèÿ èçðÿçàí òåêñò 427Êîìàíäàòà çà âìúêâàíå å C-y. Òÿ âìúêâà íàíîâî ïîñëåäíèÿ èçðÿçàí òåêñò
429â òåêóùîòî ìÿñòî íà êóðñîðà. 428â òåêóùîòî ìÿñòî íà êóðñîðà.
@@ -502,25 +501,25 @@ C_- å, ÷å íà íÿêîè êëàâèàòóðè íå å î÷åâèäíî êàê òðÿáâà äà ñå âúâåäå.
502--------- 501---------
503 502
504Çà äà íàïðàâèòå òåêñòà, êîéòî ðåäàêòèðàòå, ïîñòîÿíåí, òðÿáâà äà ãî 503Çà äà íàïðàâèòå òåêñòà, êîéòî ðåäàêòèðàòå, ïîñòîÿíåí, òðÿáâà äà ãî
505ñëîæèòå âúâ ôàéë.  ïðîòèâåí ñëó÷àé òîé ùå èç÷åçíå, êîãàòî Åìàêñ 504ñëîæèòå âúâ ôàéë.  ïðîòèâåí ñëó÷àé òîé ùå èç÷åçíå, êîãàòî Emacs
506ïðèêëþ÷è. Çà äà ñëîæèòå âàøèÿ òåêñò âúâ ôàéë, òðÿáâà äà "íàìåðèòå" 505ïðèêëþ÷è. Çà äà ñëîæèòå âàøèÿ òåêñò âúâ ôàéë, òðÿáâà äà "íàìåðèòå"
507ôàéëà ïðåäè äà âúâåæäàòå òåêñò. (Òîâà ñúùî ñå íàðè÷à "ïîñåùàâàíå" íà 506ôàéëà ïðåäè äà âúâåæäàòå òåêñò. (Òîâà ñúùî ñå íàðè÷à "ïîñåùàâàíå" íà
508ôàéëà.) 507ôàéëà.)
509 508
510Íàìèðàíå íà ôàéë îçíà÷àâà, ÷å âèæäàòå ñúäúðæàíèåòî ìó â Åìàêñ.  509Íàìèðàíå íà ôàéë îçíà÷àâà, ÷å âèæäàòå ñúäúðæàíèåòî ìó â Emacs. Â
511ìíîãî ñëó÷àè òîâà å êàòî äà ðåäàêòèðàòå ñàìèÿ ôàéë. Îáà÷å ïðîìåíèòå, 510ìíîãî ñëó÷àè òîâà å êàòî äà ðåäàêòèðàòå ñàìèÿ ôàéë. Îáà÷å ïðîìåíèòå,
512êîèòî ïðàâèòå, èçïîëçâàéêè Åìàêñ, íå îñòàâàò ïîñòîÿííè, äîêàòî íå 511êîèòî ïðàâèòå, èçïîëçâàéêè Emacs, íå îñòàâàò ïîñòîÿííè, äîêàòî íå
513"çàïèøåòå" ôàéëà. Òîâà å òàêà, çà äà ñå ïðåäîòâðàòè îñòàâÿíåòî íà 512"çàïèøåòå" ôàéëà. Òîâà å òàêà, çà äà ñå ïðåäîòâðàòè îñòàâÿíåòî íà
514ïîëóïðîìåíåí ôàéë â ñèñòåìàòà, êîãàòî íå èñêàòå òîâà. Äîðè êîãàòî 513ïîëóïðîìåíåí ôàéë â ñèñòåìàòà, êîãàòî íå èñêàòå òîâà. Äîðè êîãàòî
515çàïèñâàòå, Åìàêñ îñòàâÿ íà÷àëíèÿ ôàéë ïîä ïðîìåíåíî èìå, â ñëó÷àé, ÷å 514çàïèñâàòå, Emacs îñòàâÿ íà÷àëíèÿ ôàéë ïîä ïðîìåíåíî èìå, â ñëó÷àé, ÷å
516ïî-êúñíî ðåøèòå, ÷å âàøèòå ïðîìåíè ñà áèëè ãðåøêà. 515ïî-êúñíî ðåøèòå, ÷å âàøèòå ïðîìåíè ñà áèëè ãðåøêà.
517 516
518Àêî ïîãëåäíåòå â äúíîòî íà åêðàíà, ùå âèäèòå ðåä, êîéòî çàïî÷âà è 517Àêî ïîãëåäíåòå â äúíîòî íà åêðàíà, ùå âèäèòå ðåä, êîéòî çàïî÷âà è
519çàâúðøâà ñ òèðåòà è çàïî÷âà ñ "-R:-- TUTORIAL.bg" èëè íåùî ïîäîáíî. 518çàâúðøâà ñ òèðåòà è çàïî÷âà ñ "-R:-- TUTORIAL.bg" èëè íåùî ïîäîáíî.
520Òàçè ÷àñò îò åêðàíà ïîêàçâà èìåòî íà ôàéëà, êîéòî ñòå ïîñåòèëè. Òî÷íî 519Òàçè ÷àñò îò åêðàíà ïîêàçâà èìåòî íà ôàéëà, êîéòî ñòå ïîñåòèëè. Òî÷íî
521ñåãà âèå ñòå ïîñåòèëè ôàéë, íàðå÷åí "TUTORIAL.bg", êîéòî å âàøåòî 520ñåãà âèå ñòå ïîñåòèëè ôàéë, íàðå÷åí "TUTORIAL.bg", êîéòî å âàøåòî
522ëè÷íî êîïèå-÷åðíîâà íà Åìàêñ âúâåäåíèåòî. Êîãàòî íàìåðèòå ôàéë â 521ëè÷íî êîïèå-÷åðíîâà íà Emacs âúâåäåíèåòî. Êîãàòî íàìåðèòå ôàéë â
523Åìàêñ, èìåòî íà òîçè ôàéë ùå ñå ïîÿâè íà ñúùîòî ìÿñòî. 522Emacs, èìåòî íà òîçè ôàéë ùå ñå ïîÿâè íà ñúùîòî ìÿñòî.
524 523
525Îñîáåíîñò íà êîìàíäàòà çà íàìèðàíå íà ôàéë å, ÷å òðÿáâà äà êàæåòå 524Îñîáåíîñò íà êîìàíäàòà çà íàìèðàíå íà ôàéë å, ÷å òðÿáâà äà êàæåòå
526èìåòî íà ôàéëà, êîéòî èñêàòå. Íèå ãî íàðè÷àìå "÷åòåíå íà àðãóìåíò îò 525èìåòî íà ôàéëà, êîéòî èñêàòå. Íèå ãî íàðè÷àìå "÷åòåíå íà àðãóìåíò îò
@@ -529,10 +528,10 @@ C_- å, ÷å íà íÿêîè êëàâèàòóðè íå å î÷åâèäíî êàê òðÿáâà äà ñå âúâåäå.
529 528
530 C-x C-f Íàìèðàíå íà ôàéë 529 C-x C-f Íàìèðàíå íà ôàéë
531 530
532Åìàêñ âè ïîäêàíÿ äà âúâåäåòå èìåòî íà ôàéëà. Èìåòî íà ôàéëà, êîåòî 531Emacs âè ïîäêàíÿ äà âúâåäåòå èìåòî íà ôàéëà. Èìåòî íà ôàéëà, êîåòî
533íàïèøåòå, ñå ïîÿâÿâà â äúíîòî íà åêðàíà. Ðåäúò â äúíîòî íà åêðàíà ñå 532íàïèøåòå, ñå ïîÿâÿâà â äúíîòî íà åêðàíà. Ðåäúò â äúíîòî íà åêðàíà ñå
534íàðè÷à ìèíèáóôåð, êîãàòî ñå èçïîëçâà çà òîçè âèä âõîä. Ìîæåòå äà 533íàðè÷à ìèíèáóôåð, êîãàòî ñå èçïîëçâà çà òîçè âèä âõîä. Ìîæåòå äà
535èçïîëçâàòå îáèêíîâåíèòå êîìàíäè çà ðåäàêòèðàíå íà Åìàêñ, çà äà 534èçïîëçâàòå îáèêíîâåíèòå êîìàíäè çà ðåäàêòèðàíå íà Emacs, çà äà
536ðåäàêòèðàòå èìåòî íà ôàéëà. 535ðåäàêòèðàòå èìåòî íà ôàéëà.
537 536
538Êîãàòî âúâåæäàòå èìåòî íà ôàéëà (èëè êàêúâòî è äà å âõîä â 537Êîãàòî âúâåæäàòå èìåòî íà ôàéëà (èëè êàêúâòî è äà å âõîä â
@@ -553,12 +552,12 @@ C_- å, ÷å íà íÿêîè êëàâèàòóðè íå å î÷åâèäíî êàê òðÿáâà äà ñå âúâåäå.
553 552
554 C-x C-s Çàïàçâàíå íà ôàéëà 553 C-x C-s Çàïàçâàíå íà ôàéëà
555 554
556Òîâà êîïèðà òåêñòà îò Åìàêñ âúâ ôàéëà. Ïúðâèÿ ïúò, êîãàòî òîâà ñå 555Òîâà êîïèðà òåêñòà îò Emacs âúâ ôàéëà. Ïúðâèÿ ïúò, êîãàòî òîâà ñå
557íàïðàâè, Åìàêñ ïðåèìåíóâà íà÷àëíèÿ ôàéë ñ íîâî èìå, òàêà ÷å òîé äà íå 556íàïðàâè, Emacs ïðåèìåíóâà íà÷àëíèÿ ôàéë ñ íîâî èìå, òàêà ÷å òîé äà íå
558ñå èçãóáè. Íîâîòî èìå ñå ïîñòðîÿâà ñ äîáàâÿíå íà "~" â êðàÿ íà èìåòî 557ñå èçãóáè. Íîâîòî èìå ñå ïîñòðîÿâà ñ äîáàâÿíå íà "~" â êðàÿ íà èìåòî
559íà íà÷àëíèÿ ôàéë. 558íà íà÷àëíèÿ ôàéë.
560 559
561Êîãàòî çàïàçâàíåòî å ñâúðøèëî, Åìàêñ èçâåæäà èìåòî íà ôàéëà, êîéòî å 560Êîãàòî çàïàçâàíåòî å ñâúðøèëî, Emacs èçâåæäà èìåòî íà ôàéëà, êîéòî å
562áèë çàïèñàí. Òðÿáâà äà çàïèñâàòå äîñòàòú÷íî ÷åñòî, òàêà ÷å äà íå 561áèë çàïèñàí. Òðÿáâà äà çàïèñâàòå äîñòàòú÷íî ÷åñòî, òàêà ÷å äà íå
563èçãóáèòå ìíîãî ðàáîòà, àêî ñèñòåìàòà ñå ñðèíå ïî íÿêàêâà ïðè÷èíà. 562èçãóáèòå ìíîãî ðàáîòà, àêî ñèñòåìàòà ñå ñðèíå ïî íÿêàêâà ïðè÷èíà.
564 563
@@ -566,19 +565,19 @@ C_- å, ÷å íà íÿêîè êëàâèàòóðè íå å î÷åâèäíî êàê òðÿáâà äà ñå âúâåäå.
566 Òîâà òðÿáâà äà èçâåäå "Wrote ...TUTORIAL.bg" â äúíîòî íà åêðàíà. 565 Òîâà òðÿáâà äà èçâåäå "Wrote ...TUTORIAL.bg" â äúíîòî íà åêðàíà.
567 566
568ÇÀÁÅËÅÆÊÀ: Íà íÿêîè ñèñòåìè âúâåæäàíåòî íà C-x C-s ùå çàìðúçè åêðàíà è 567ÇÀÁÅËÅÆÊÀ: Íà íÿêîè ñèñòåìè âúâåæäàíåòî íà C-x C-s ùå çàìðúçè åêðàíà è
569âèå íÿìà äà âèæäàòå ïîâå÷å èçõîä îò Åìàêñ. Òîâà ïîêàçâà, ÷å åäíà 568âèå íÿìà äà âèæäàòå ïîâå÷å èçõîä îò Emacs. Òîâà ïîêàçâà, ÷å åäíà
570"ñïîñîáíîñò" íà îïåðàöèîííàòà ñèñòåìà, íàðè÷àíà "óïðàâëåíèå íà ïîòîêà" 569"ñïîñîáíîñò" íà îïåðàöèîííàòà ñèñòåìà, íàðè÷àíà "óïðàâëåíèå íà ïîòîêà"
571(flow control), å ïðèõâàíàëà C-s è íå ãî ïðîïóñêà êúì Åìàêñ. Çà äà 570(flow control), å ïðèõâàíàëà C-s è íå ãî ïðîïóñêà êúì Emacs. Çà äà
572ðàçìðàçèòå åêðàíà, âúâåäåòå C-q. Òîãàâà âèæòå ñåêöèÿòà "Ñïîíòàííî 571ðàçìðàçèòå åêðàíà, âúâåäåòå C-q. Òîãàâà âèæòå ñåêöèÿòà "Ñïîíòàííî
573âêëþ÷âàíå íà ïîñòúïêîâî òúðñåíå" (Spontaneous Entry to Incremental 572âêëþ÷âàíå íà ïîñòúïêîâî òúðñåíå" (Spontaneous Entry to Incremental
574Search) â ðúêîâîäñòâîòî íà Åìàêñ çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè 573Search) â ðúêîâîäñòâîòî íà Emacs çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè
575"ñïîñîáíîñò". 574"ñïîñîáíîñò".
576 575
577Ìîæå äà íàìåðèòå ñúùåñòâóâàù ôàéë, äà ãî ðàçãëåäàòå è äà ãî 576Ìîæå äà íàìåðèòå ñúùåñòâóâàù ôàéë, äà ãî ðàçãëåäàòå è äà ãî
578ðåäàêòèðàòå. Ìîæåòå ñúùî äà íàìåðèòå ôàéë, êîéòî íå ñúùåñòâóâà. Òîâà 577ðåäàêòèðàòå. Ìîæåòå ñúùî äà íàìåðèòå ôàéë, êîéòî íå ñúùåñòâóâà. Òîâà
579å íà÷èíúò çà ñúçäàâàíå íà íîâè ôàéëîâå â Åìàêñ: íàìèðàòå ôàéëà, êîéòî 578å íà÷èíúò çà ñúçäàâàíå íà íîâè ôàéëîâå â Emacs: íàìèðàòå ôàéëà, êîéòî
580ùå áúäå â íà÷àëîòî ïðàçåí, è òîãàâà çàïî÷âàòå âìúêâàíåòî íà òåêñòà çà 579ùå áúäå â íà÷àëîòî ïðàçåí, è òîãàâà çàïî÷âàòå âìúêâàíåòî íà òåêñòà çà
581ôàéëà. Êîãàòî ãîâîðèòå çà "çàïèñâàíå" íà ôàéë, Åìàêñ âñúùíîñò ùå 580ôàéëà. Êîãàòî ãîâîðèòå çà "çàïèñâàíå" íà ôàéë, Emacs âñúùíîñò ùå
582ñúçäàäå ôàéëà ñ òåêñòà, êîéòî ñòå âúâåëè. Îòòàì íàòàòúê ìîæå äà 581ñúçäàäå ôàéëà ñ òåêñòà, êîéòî ñòå âúâåëè. Îòòàì íàòàòúê ìîæå äà
583ñ÷èòàòå, ÷å ðåäàêòèðàòå âå÷å ñúùåñòâóâàù ôàéë. 582ñ÷èòàòå, ÷å ðåäàêòèðàòå âå÷å ñúùåñòâóâàù ôàéë.
584 583
@@ -586,9 +585,9 @@ Search) â ðúêîâîäñòâîòî íà Åìàêñ çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè
586* ÁÓÔÅÐÈ 585* ÁÓÔÅÐÈ
587-------- 586--------
588 587
589Àêî íàìåðèòå âòîðè ôàéë ñ C-x C-f, ïúðâèÿò ôàéë îñòàâà â Åìàêñ. 588Àêî íàìåðèòå âòîðè ôàéë ñ C-x C-f, ïúðâèÿò ôàéë îñòàâà â Emacs.
590Ìîæåòå äà ïðåâêëþ÷èòå îáðàòíî êúì íåãî, êàòî ãî íàìåðèòå ïàê ñ C-x 589Ìîæåòå äà ïðåâêëþ÷èòå îáðàòíî êúì íåãî, êàòî ãî íàìåðèòå ïàê ñ C-x
591C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Åìàêñ. 590C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Emacs.
592 591
593>> Ñúçäàéòå ôàéë ñ èìå "foo", âúâåæäàéêè C-x C-f foo <Return>. 592>> Ñúçäàéòå ôàéë ñ èìå "foo", âúâåæäàéêè C-x C-f foo <Return>.
594 Âìúêíåòå ìàëêî òåêñò, ðåäàêòèðàéòå ãî è çàïàçåòå "foo" ñ âúâåæäàíå 593 Âìúêíåòå ìàëêî òåêñò, ðåäàêòèðàéòå ãî è çàïàçåòå "foo" ñ âúâåæäàíå
@@ -596,16 +595,16 @@ C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Åìàêñ.
596 Íàêðàÿ âúâåäåòå C-x C-f TUTORIAL.bg <Return>, çà äà ñå âúðíåòå 595 Íàêðàÿ âúâåäåòå C-x C-f TUTORIAL.bg <Return>, çà äà ñå âúðíåòå
597 îáðàòíî âúâ âúâåäåíèåòî. 596 îáðàòíî âúâ âúâåäåíèåòî.
598 597
599Åìàêñ çàïàçâà òåêñòà íà âñåêè ôàéë â îáåêò, íàðè÷àí "áóôåð". 598Emacs çàïàçâà òåêñòà íà âñåêè ôàéë â îáåêò, íàðè÷àí "áóôåð".
600Íàìèðàíåòî íà ôàéë ïðàâè íîâ áóôåð â Åìàêñ. Çà äà âèäèòå ñïèñúê íà 599Íàìèðàíåòî íà ôàéë ïðàâè íîâ áóôåð â Emacs. Çà äà âèäèòå ñïèñúê íà
601áóôåðèòå, êîèòî â ìîìåíòà ñúùåñòâóâàò âúâ âàøèÿ Åìàêñ, âúâåäåòå 600áóôåðèòå, êîèòî â ìîìåíòà ñúùåñòâóâàò âúâ âàøèÿ Emacs, âúâåäåòå
602 601
603 C-x C-b Ïîêàçâàíå íà áóôåðèòå 602 C-x C-b Ïîêàçâàíå íà áóôåðèòå
604 603
605>> Îïèòàéòå C-x C-b ñåãà. 604>> Îïèòàéòå C-x C-b ñåãà.
606 605
607Âèæòå êàê âñåêè áóôåð èìà èìå, à ïîíÿêîãà è èìå íà ôàéë çà ôàéëà, 606Âèæòå êàê âñåêè áóôåð èìà èìå, à ïîíÿêîãà è èìå íà ôàéë çà ôàéëà,
608÷èåòî ñúäúðæàíèå äúðæè. ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Åìàêñ ïðîçîðåö, 607÷èåòî ñúäúðæàíèå äúðæè. ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Emacs ïðîçîðåö,
609å âèíàãè ÷àñò îò íÿêàêúâ áóôåð. 608å âèíàãè ÷àñò îò íÿêàêúâ áóôåð.
610 609
611>> Âúâåäåòå C-x 1, çà äà ìàõíåòå ñïèñúêà ñ áóôåðèòå. 610>> Âúâåäåòå C-x 1, çà äà ìàõíåòå ñïèñúêà ñ áóôåðèòå.
@@ -627,13 +626,13 @@ C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Åìàêñ.
627Ñïèñúêúò ñ áóôåðèòå, êîéòî ïðàâèòå ñ C-x C-b, âèíàãè âè ïîêàçâà èìåòî 626Ñïèñúêúò ñ áóôåðèòå, êîéòî ïðàâèòå ñ C-x C-b, âèíàãè âè ïîêàçâà èìåòî
628íà âñåêè áóôåð. 627íà âñåêè áóôåð.
629 628
630ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Åìàêñ ïðîçîðåö, å âèíàãè ÷àñò îò íÿêàêúâ 629ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Emacs ïðîçîðåö, å âèíàãè ÷àñò îò íÿêàêúâ
631áóôåð. Íÿêîè áóôåðè íå ñúîòâåòñòâàò íà ôàéëîâå. Íàïðèìåð áóôåðúò, 630áóôåð. Íÿêîè áóôåðè íå ñúîòâåòñòâàò íà ôàéëîâå. Íàïðèìåð áóôåðúò,
632èìåíóâàí "*Buffer List*", íå ñúîòâåòñòâà íà ôàéë. Òîâà å áóôåðúò, 631èìåíóâàí "*Buffer List*", íå ñúîòâåòñòâà íà ôàéë. Òîâà å áóôåðúò,
633êîéòî ñúäúðæà ñïèñúêà ñ áóôåðèòå, êîèòî ñòå íàïðàâèëè ñ C-x C-b. 632êîéòî ñúäúðæà ñïèñúêà ñ áóôåðèòå, êîèòî ñòå íàïðàâèëè ñ C-x C-b.
634Áóôåðúò, èìåíóâàí "*Messages*", ñúùî íå ñúîòâåòñòâà íà ôàéë; òîé 633Áóôåðúò, èìåíóâàí "*Messages*", ñúùî íå ñúîòâåòñòâà íà ôàéë; òîé
635ñúäúðæà ñúîáùåíèÿòà, êîèòî ñå ïîÿâÿâàò â äúíîòî íà åêðàíà ïî âðåìå íà 634ñúäúðæà ñúîáùåíèÿòà, êîèòî ñå ïîÿâÿâàò â äúíîòî íà åêðàíà ïî âðåìå íà
636Åìàêñ ñåñèÿòà. 635Emacs ñåñèÿòà.
637 636
638>> Âúâåäåòå C-x b *Messages* <Return>, çà äà âèäèòå áóôåðà ñúñ 637>> Âúâåäåòå C-x b *Messages* <Return>, çà äà âèäèòå áóôåðà ñúñ
639 ñúîáùåíèÿòà. Ñëåä òîâà âúâåäåòå C-x C-b TUTORIAL <Return>, çà äà 638 ñúîáùåíèÿòà. Ñëåä òîâà âúâåäåòå C-x C-b TUTORIAL <Return>, çà äà
@@ -641,7 +640,7 @@ C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Åìàêñ.
641 640
642Àêî íàïðàâèòå ïðîìåíè â òåêñòà íà åäèí ôàéë è òîãàâà íàìåðèòå äðóã 641Àêî íàïðàâèòå ïðîìåíè â òåêñòà íà åäèí ôàéë è òîãàâà íàìåðèòå äðóã
643ôàéë, òîâà íÿìà äà çàïèøå ïúðâèÿ ôàéë. Íåãîâèòå ïðîìåíè îñòàâàò âúòðå 642ôàéë, òîâà íÿìà äà çàïèøå ïúðâèÿ ôàéë. Íåãîâèòå ïðîìåíè îñòàâàò âúòðå
644â Åìàêñ, â áóôåðà íà ôàéëà. Ñúçäàâàíåòî èëè ðåäàêòèðàíåòî íà áóôåðà 643â Emacs, â áóôåðà íà ôàéëà. Ñúçäàâàíåòî èëè ðåäàêòèðàíåòî íà áóôåðà
645íà âòîðèÿ ôàéë íÿìà åôåêò âúðõó áóôåðà íà ïúðâèÿ ôàéë. Òîâà å ìíîãî 644íà âòîðèÿ ôàéë íÿìà åôåêò âúðõó áóôåðà íà ïúðâèÿ ôàéë. Òîâà å ìíîãî
646ïîëåçíî, íî ñúùî îçíà÷àâà, ÷å ñå íóæäàåòå îò óäîáåí íà÷èí äà çàïàçèòå 645ïîëåçíî, íî ñúùî îçíà÷àâà, ÷å ñå íóæäàåòå îò óäîáåí íà÷èí äà çàïàçèòå
647áóôåðà íà ïúðâèÿ ôàéë. Ùå å íåóäîáíî äà ïðåâêëþ÷èòå îáðàòíî ñ C-x 646áóôåðà íà ïúðâèÿ ôàéë. Ùå å íåóäîáíî äà ïðåâêëþ÷èòå îáðàòíî ñ C-x
@@ -660,8 +659,8 @@ C-x s ïèòà çà âñåêè áóôåð, êîéòî ñúäúðæà ïðîìåíè, êîèòî íå ñòå
660* ÐÀÇØÈÐßÂÀÍÅ ÍÀ ÍÀÁÎÐÀ ÊÎÌÀÍÄÈ 659* ÐÀÇØÈÐßÂÀÍÅ ÍÀ ÍÀÁÎÐÀ ÊÎÌÀÍÄÈ
661------------------------------- 660-------------------------------
662 661
663Èìà ìíîãî, ìíîãî ïîâå÷å êîìàíäè íà Åìàêñ, îòêîëêîòî ìîãàò äà ñå ñëîæàò 662Èìà ìíîãî, ìíîãî ïîâå÷å êîìàíäè íà Emacs, îòêîëêîòî ìîãàò äà ñå ñëîæàò
664íà âñè÷êè êîíòðîëíè è ìåòà çíàöè. Åìàêñ çàîáèêàëÿ òîâà ñ X (eXtended) 663íà âñè÷êè êîíòðîëíè è ìåòà çíàöè. Emacs çàîáèêàëÿ òîâà ñ X (eXtended)
665êîìàíäàòà. Òîâà ñòàâà ïî äâà íà÷èíà: 664êîìàíäàòà. Òîâà ñòàâà ïî äâà íà÷èíà:
666 665
667 C-x Çíàêîâî ðàçøèðÿâàíå. Ïîñëåäâàíî îò åäèí çíàê. 666 C-x Çíàêîâî ðàçøèðÿâàíå. Ïîñëåäâàíî îò åäèí çíàê.
@@ -669,49 +668,49 @@ C-x s ïèòà çà âñåêè áóôåð, êîéòî ñúäúðæà ïðîìåíè, êîèòî íå ñòå
669 èìå. 668 èìå.
670 669
671Òåçè êîìàíäè ñà îáùî âçåòî ïîëåçíè, íî ïî-ìàëêî, îòêîëêîòî êîìàíäèòå, 670Òåçè êîìàíäè ñà îáùî âçåòî ïîëåçíè, íî ïî-ìàëêî, îòêîëêîòî êîìàíäèòå,
672êîèòî äîñåãà ñòå íàó÷èëè. Âå÷å âèäÿõòå äâå îò òÿõ: êîìàíäèòå âúðõó 671êîèòî äîñåãà ñòå íàó÷èëè. Âå÷å âèäÿõòå íÿêîëêî îò òÿõ: íàïðèìåð
673ôàéëîâå C-x C-f çà íàìèðàíå (Find) è C-x C-s çà çàïàçâàíå (Save). 672êîìàíäèòå âúðõó ôàéëîâå C-x C-f çà íàìèðàíå (Find) è C-x C-s çà
674Äðóã ïðèìåð å êîìàíäàòà çà êðàé íà Åìàêñ ñåñèÿòà -- òîâà å êîìàíäàòà 673çàïàçâàíå (Save). Äðóã ïðèìåð å êîìàíäàòà çà êðàé íà Emacs ñåñèÿòà --
675C-x C-c. (Íå ñå áåçïîêîéòå, ÷å ìîæå äà èçãóáèòå âñè÷êè ïðîìåíè, êîèòî 674òîâà å êîìàíäàòà C-x C-c. (Íå ñå áåçïîêîéòå, ÷å ìîæå äà èçãóáèòå
676ñòå íàïðàâèëè; C-x C-c ïðåäëàãà äà çàïàçè âñåêè ïðîìåíåí ôàéë, ïðåäè 675âñè÷êè ïðîìåíè, êîèòî ñòå íàïðàâèëè; C-x C-c ïðåäëàãà äà çàïàçè âñåêè
677äà ïðåìàõíå Åìàêñ.) 676ïðîìåíåí ôàéë, ïðåäè äà ïðåìàõíå Emacs.)
678 677
679C-z å êîìàíäàòà çà èçëèçàíå îò Åìàêñ *âðåìåííî* -- òàêà ÷å äà ìîæåòå 678C-z å êîìàíäàòà çà èçëèçàíå îò Emacs *âðåìåííî* -- òàêà ÷å äà ìîæåòå
680äà ñå âúðíåòå êúì ñúùàòà Åìàêñ ñåñèÿ ïî-êúñíî. 679äà ñå âúðíåòå êúì ñúùàòà Emacs ñåñèÿ ïî-êúñíî.
681 680
682Íà ñèñòåìè, êîèòî ïîçâîëÿâàò òîâà, C-z "èçîñòàâÿ" (suspend) Åìàêñ, 681Íà ñèñòåìè, êîèòî ïîçâîëÿâàò òîâà, C-z "èçîñòàâÿ" (suspend) Emacs,
683ò.å. âðúùà êúì îáâèâêàòà, íî íå ðàçðóøàâà Åìàêñ.  ïîâå÷åòî îáâèâêè 682ò.å. âðúùà êúì îáâèâêàòà, íî íå ðàçðóøàâà Emacs.  ïîâå÷åòî îáâèâêè
684ìîæåòå äà ïðîäúëæèòå Åìàêñ ñåñèÿòà ñ êîìàíäàòà "fg" èëè ñ "%emacs". 683ìîæåòå äà ïðîäúëæèòå Emacs ñåñèÿòà ñ êîìàíäàòà "fg" èëè ñ "%emacs".
685 684
686Íà ñèñòåìè, êîèòî íå ïîçâîëÿâàò èçîñòàâÿíå, C-z ñúçäàâà íîâà 685Íà ñèñòåìè, êîèòî íå ïîçâîëÿâàò èçîñòàâÿíå, C-z ñúçäàâà íîâà
687ïîäîáâèâêà, êîÿòî âúðâè ïîä Åìàêñ, çà äà âè äàäå øàíñ äà ñòàðòèðàòå 686ïîäîáâèâêà, êîÿòî âúðâè ïîä Emacs, çà äà âè äàäå øàíñ äà ñòàðòèðàòå
688äðóãè ïðîãðàìè è äà ñå âúðíåòå êúì Åìàêñ ñëåä òîâà; òîâà íå å èñòèíñêî 687äðóãè ïðîãðàìè è äà ñå âúðíåòå êúì Emacs ñëåä òîâà; òîâà íå å èñòèíñêî
689"èçëèçàíå" îò Åìàêñ.  òîçè ñëó÷àé êîìàíäàòà íà îáâèâêàòà "exit" å 688"èçëèçàíå" îò Emacs.  òîçè ñëó÷àé êîìàíäàòà íà îáâèâêàòà "exit" å
690îáèêíîâåíèÿò íà÷èí äà ñå âúðíåòå îáðàòíî êúì Åìàêñ îò ïîäîáâèâêàòà. 689îáèêíîâåíèÿò íà÷èí äà ñå âúðíåòå îáðàòíî êúì Emacs îò ïîäîáâèâêàòà.
691 690
692Ìîìåíòúò äà èçïîëçâàòå C-x C-c å, êîãàòî èñêàòå äà èçëåçåòå îò 691Ìîìåíòúò äà èçïîëçâàòå C-x C-c å, êîãàòî èñêàòå äà èçëåçåòå îò
693ñèñòåìàòà. Òîâà å è ïðàâèëíàòà êîìàíäà çà èçëèçàíå, êîãàòî Åìàêñ å 692ñèñòåìàòà. Òîâà å è ïðàâèëíàòà êîìàíäà çà èçëèçàíå, êîãàòî Emacs å
694èçâèêàí îò ïîùåíñêà ïðîãðàìà èëè äðóãè ñòðàíè÷íè ïðîãðàìè, òúé êàòî òå 693èçâèêàí îò ïîùåíñêà ïðîãðàìà èëè äðóãè ñòðàíè÷íè ïðîãðàìè, òúé êàòî òå
695ìîæå è äà íå çíàÿò êàê äà ñå ñïðàâÿò ñ èçîñòàâÿíåòî íà Åìàêñ. Ïðè 694ìîæå è äà íå çíàÿò êàê äà ñå ñïðàâÿò ñ èçîñòàâÿíåòî íà Emacs. Ïðè
696îáèêíîâåíè îáñòîÿòåëñòâà, îáà÷å, àêî íå ñòå òðúãíàëè äà èçëèçàòå îò 695îáèêíîâåíè îáñòîÿòåëñòâà, îáà÷å, àêî íå ñòå òðúãíàëè äà èçëèçàòå îò
697ñèñòåìàòà, ïî-äîáðå å äà èçîñòàâèòå Åìàêñ ñ C-z, âìåñòî äà èçëèçàòå îò 696ñèñòåìàòà, ïî-äîáðå å äà èçîñòàâèòå Emacs ñ C-z, âìåñòî äà èçëèçàòå îò
698Åìàêñ. 697Emacs.
699 698
700Èìà ìíîãî êîìàíäè C-x. Åòî ñïèñúê íà òåçè, êîèòî ñòå íàó÷èëè: 699Èìà ìíîãî êîìàíäè C-x. Åòî ñïèñúê íà òåçè, êîèòî ñòå íàó÷èëè:
701 700
702 C-x C-f Íàìèðàíå íà ôàéë. 701 C-x C-f Íàìèðàíå íà ôàéë
703 C-x C-s Çàïàçâàíå íà ôàéë. 702 C-x C-s Çàïàçâàíå íà ôàéë
704 C-x C-b Ñïèñúê íà áóôåðèòå. 703 C-x C-b Ñïèñúê íà áóôåðèòå
705 C-x C-c Èçëèçàíå îò Åìàêñ. 704 C-x C-c Èçëèçàíå îò Emacs
706 C-x 1 Èçòðèâàíå íà âñè÷êè ïðîçîðöè îñâåí åäèí. 705 C-x 1 Èçòðèâàíå íà âñè÷êè ïðîçîðöè, îñâåí åäèí
707 C-x u Îòìÿíà. 706 C-x u Îòìÿíà
708 707
709Èìåíóâàíèòå ðàçøèðåíè êîìàíäè ñà êîìàíäè, êîèòî ñå èçïîëçâàò äàæå îùå 708Èìåíóâàíèòå ðàçøèðåíè êîìàíäè ñà êîìàíäè, êîèòî ñå èçïîëçâàò äàæå îùå
710ïî-ðÿäêî, èëè êîìàíäè, êîèòî ñå èçïîëçâàò ñàìî â îïðåäåëåíè ðåæèìè. 709ïî-ðÿäêî, èëè êîìàíäè, êîèòî ñå èçïîëçâàò ñàìî â îïðåäåëåíè ðåæèìè.
711Ïðèìåð å êîìàíäàòà replace-string, êîÿòî çàìåíÿ ãëîáàëíî åäèí íèç ñ 710Ïðèìåð å êîìàíäàòà replace-string, êîÿòî çàìåíÿ ãëîáàëíî åäèí íèç ñ
712äðóã. Êîãàòî âúâåäåòå M-x, Åìàêñ âè ïîäñêàçâà â äúíîòî íà åêðàíà ñ 711äðóã. Êîãàòî âúâåäåòå M-x, Emacs âè ïîäñêàçâà â äúíîòî íà åêðàíà ñ
713M-x è âèå òðÿáâà äà âúâåäåòå èìåòî íà êîìàíäàòà, â òîçè ñëó÷àé 712M-x è âèå òðÿáâà äà âúâåäåòå èìåòî íà êîìàíäàòà, â òîçè ñëó÷àé
714"replace-string". Ïðîñòî âúâåäåòå "repl s<TAB>" è Åìàêñ ùå çàâúðøè 713"replace-string". Ïðîñòî âúâåäåòå "repl s<TAB>" è Emacs ùå çàâúðøè
715èìåòî. (<TAB> å êëàâèøúò Tab, îáèêíîâåíî íàìèðàù ñå íàä êëàâèøà 714èìåòî. (<TAB> å êëàâèøúò Tab, îáèêíîâåíî íàìèðàù ñå íàä êëàâèøà
716CapsLock èëè êëàâèøà Shift áëèçî äî ëåâèÿ êðàé íà êëàâèàòóðàòà.) 715CapsLock èëè êëàâèøà Shift áëèçî äî ëåâèÿ êðàé íà êëàâèàòóðàòà.)
717Çàâúðøåòå èìåòî íà êîìàíäàòà ñ <Return>. 716Çàâúðøåòå èìåòî íà êîìàíäàòà ñ <Return>.
@@ -735,11 +734,11 @@ CapsLock èëè êëàâèøà Shift áëèçî äî ëåâèÿ êðàé íà êëàâèàòóðàòà.)
735 734
736Êîãàòî ñòå íàïðàâèëè ïðîìåíè âúâ ôàéë, íî îùå íå ñòå ãî çàïàçèëè, òå 735Êîãàòî ñòå íàïðàâèëè ïðîìåíè âúâ ôàéë, íî îùå íå ñòå ãî çàïàçèëè, òå
737ìîãàò äà áúäàò çàãóáåíè, àêî êîìïþòúðúò âíåçàïíî ñå èçêëþ÷è. Çà äà âè 736ìîãàò äà áúäàò çàãóáåíè, àêî êîìïþòúðúò âíåçàïíî ñå èçêëþ÷è. Çà äà âè
738ïðåäïàçè îò òàêèâà ñèòóàöèè, Åìàêñ ïåðèîäè÷íî çàïàçâà "àâòîìàòè÷íî 737ïðåäïàçè îò òàêèâà ñèòóàöèè, Emacs ïåðèîäè÷íî çàïàçâà "àâòîìàòè÷íî
739çàïàçâàí" ôàéë çà âñåêè ôàéë, êîéòî ðåäàêòèðàòå. Èìåòî íà àâòîìàòè÷íî 738çàïàçâàí" ôàéë çà âñåêè ôàéë, êîéòî ðåäàêòèðàòå. Èìåòî íà àâòîìàòè÷íî
740çàïàçâàíèÿ ôàéë èìà # â íà÷àëîòî è â êðàÿ; íàïðèìåð, àêî âàøèÿò ôàéë å 739çàïàçâàíèÿ ôàéë èìà # â íà÷àëîòî è â êðàÿ; íàïðèìåð, àêî âàøèÿò ôàéë å
741ñ èìå "hello.c", èìåòî íà íåãîâèÿ àâòîìàòè÷íî çàïàçâàí ôàéë ùå áúäå 740ñ èìå "hello.c", èìåòî íà íåãîâèÿ àâòîìàòè÷íî çàïàçâàí ôàéë ùå áúäå
742"#hello.c#". Êîãàòî çàïàçâàòå ôàéë ïî îáèêíîâåíèÿ íà÷èí, Åìàêñ 741"#hello.c#". Êîãàòî çàïàçâàòå ôàéë ïî îáèêíîâåíèÿ íà÷èí, Emacs
743èçòðèâà íåãîâèÿ àâòîìàòè÷íî çàïèñâàí ôàéë. 742èçòðèâà íåãîâèÿ àâòîìàòè÷íî çàïèñâàí ôàéë.
744 743
745Àêî êîìïþòúðúò çàâèñíå, ìîæå äà âúçñòàíîâèòå âàøàòà àâòîìàòè÷íî 744Àêî êîìïþòúðúò çàâèñíå, ìîæå äà âúçñòàíîâèòå âàøàòà àâòîìàòè÷íî
@@ -753,7 +752,7 @@ M-x recover file<Return>. Êîãàòî êîìàíäàòà èçèñêà ïîòâúðæäåíèå,
753* ÅÕÎ ÎÁËÀÑÒÒÀ 752* ÅÕÎ ÎÁËÀÑÒÒÀ
754-------------- 753--------------
755 754
756Àêî Åìàêñ âèäè, ÷å âúâåæäàòå ìíîãîçíàêîâè êîìàíäè áàâíî, ùå âè ãè 755Àêî Emacs âèäè, ÷å âúâåæäàòå ìíîãîçíàêîâè êîìàíäè áàâíî, ùå âè ãè
757ïîêàæå â äúíîòî íà åêðàíà, â îáëàñò, íàðè÷àíà "åõî îáëàñò". Åõî 756ïîêàæå â äúíîòî íà åêðàíà, â îáëàñò, íàðè÷àíà "åõî îáëàñò". Åõî
758îáëàñòòà îáõâàùà ïîñëåäíèÿ ðåä îò åêðàíà. 757îáëàñòòà îáõâàùà ïîñëåäíèÿ ðåä îò åêðàíà.
759 758
@@ -764,18 +763,18 @@ M-x recover file<Return>. Êîãàòî êîìàíäàòà èçèñêà ïîòâúðæäåíèå,
764Ðåäúò òî÷íî íàä åõî îáëàñòòà ñå íàðè÷à "ðåä íà ðåæèìà" (mode line). 763Ðåäúò òî÷íî íàä åõî îáëàñòòà ñå íàðè÷à "ðåä íà ðåæèìà" (mode line).
765Òîé ïîêàçâà íåùî êàòî: 764Òîé ïîêàçâà íåùî êàòî:
766 765
767-R:** TUTORIAL.bg (Fundamental)--L670--58%---------------- 766-D:** TUTORIAL.bg 63% L749 (Fundamental)---------------------
768 767
769Òîçè ðåä äàâà ïîëåçíà èíôîðìàöèÿ çà ñúñòîÿíèåòî íà Åìàêñ è òåêñòà, 768Òîçè ðåä äàâà ïîëåçíà èíôîðìàöèÿ çà ñúñòîÿíèåòî íà Emacs è òåêñòà,
770êîéòî ðåäàêòèðàòå. 769êîéòî ðåäàêòèðàòå.
771 770
772Âå÷å çíàåòå êàêâî îçíà÷àâà èìåòî íà ôàéëà -- òîâà å ôàéëúò, êîéòî ñòå 771Âå÷å çíàåòå êàêâî îçíà÷àâà èìåòî íà ôàéëà -- òîâà å ôàéëúò, êîéòî ñòå
773íàìåðèëè. -NN%-- ïîêàçâà âàøàòà òåêóùà ïîçèöèÿ â òåêñòà; òîâà 772íàìåðèëè. NN% ïîêàçâà âàøàòà òåêóùà ïîçèöèÿ â òåêñòà; òîâà îçíà÷àâà,
774îçíà÷àâà, ÷å NN ïðîöåíòà îò òåêñòà å íàä âúðõà íà åêðàíà. Àêî 773÷å NN ïðîöåíòà îò òåêñòà å íàä âúðõà íà åêðàíà. Àêî íà÷àëîòî íà ôàéëà
775íà÷àëîòî íà ôàéëà å íà åêðàíà, ùå ñå ïîêàçâà --Top-- (âðúõ) âìåñòî 774å íà åêðàíà, ùå ñå ïîêàçâà --Top-- (âðúõ) âìåñòî --00%--. Àêî êðàÿò
776--00%--. Àêî êðàÿ íà ôàéëà å íà åêðàíà, ùå ñå ïîêàçâà --Bot-- (äúíî). 775íà ôàéëà å íà åêðàíà, ùå ñå ïîêàçâà --Bot-- (äúíî). Àêî ãëåäàòå
777Àêî ãëåäàòå òåêñò, êîéòî å òîëêîâà ìàëúê, ÷å ñå ïîêàçâà èçöÿëî íà 776òåêñò, êîéòî å òîëêîâà ìàëúê, ÷å ñå ïîêàçâà èçöÿëî íà åêðàíà, ðåäúò íà
778åêðàíà, ðåäúò íà ðåæèìà ùå èçâåäå --All--. 777ðåæèìà ùå èçâåäå --All--.
779 778
780Çíàêúò L è öèôðèòå ïîêàçâàò ìÿñòîòî ïî äðóã íà÷èí: òîâà å íîìåðúò íà 779Çíàêúò L è öèôðèòå ïîêàçâàò ìÿñòîòî ïî äðóã íà÷èí: òîâà å íîìåðúò íà
781òåêóùèÿ ðåä íà òî÷êàòà. 780òåêóùèÿ ðåä íà òî÷êàòà.
@@ -789,7 +788,7 @@ M-x recover file<Return>. Êîãàòî êîìàíäàòà èçèñêà ïîòâúðæäåíèå,
789Fundamental (Îñíîâåí), êîéòî èçïîëçâàòå â ìîìåíòà. Òîâà å ïðèìåð çà 788Fundamental (Îñíîâåí), êîéòî èçïîëçâàòå â ìîìåíòà. Òîâà å ïðèìåð çà
790"ãëàâåí ðåæèì" (major mode). 789"ãëàâåí ðåæèì" (major mode).
791 790
792Åìàêñ èìà ìíîãî ãëàâíè ðåæèìè. Íÿêîè îò òÿõ ñà ïðåäâèäåíè çà 791Emacs èìà ìíîãî ãëàâíè ðåæèìè. Íÿêîè îò òÿõ ñà ïðåäâèäåíè çà
793ðåäàêòèðàíå íà ðàçëè÷íè åçèöè è/èëè âèäîâå òåêñò, êàòî íàïðèìåð ðåæèì 792ðåäàêòèðàíå íà ðàçëè÷íè åçèöè è/èëè âèäîâå òåêñò, êàòî íàïðèìåð ðåæèì
794Ëèñï, ðåæèì Òåêñò è äðóãè. Âúâ âñåêè åäèí ìîìåíò îò âðåìå òî÷íî åäèí 793Ëèñï, ðåæèì Òåêñò è äðóãè. Âúâ âñåêè åäèí ìîìåíò îò âðåìå òî÷íî åäèí
795ãëàâåí ðåæèì å àêòèâåí è íåãîâîòî èìå ìîæå âèíàãè äà áúäå íàìåðåíî â 794ãëàâåí ðåæèì å àêòèâåí è íåãîâîòî èìå ìîæå âèíàãè äà áúäå íàìåðåíî â
@@ -808,7 +807,7 @@ Fundamental (Îñíîâåí), êîéòî èçïîëçâàòå â ìîìåíòà. Òîâà å ïðèìåð çà
808 807
809>> Âúâåäåòå M-x text mode<Return>. 808>> Âúâåäåòå M-x text mode<Return>.
810 809
811Íå ñå áåçïîêîéòå, íèêîÿ îò Åìàêñ êîìàíäèòå, êîèòî ñòå íàó÷èëè, íÿìà äà 810Íå ñå áåçïîêîéòå, íèêîÿ îò Emacs êîìàíäèòå, êîèòî ñòå íàó÷èëè, íÿìà äà
812ñå ïðîìåíè ïî íÿêàêúâ ñúùåñòâåí íà÷èí. Íî ìîæå äà çàáåëåæèòå, ÷å M-f 811ñå ïðîìåíè ïî íÿêàêúâ ñúùåñòâåí íà÷èí. Íî ìîæå äà çàáåëåæèòå, ÷å M-f
813è M-b ñåãà âúçïðèåìàò àïîñòðîôèòå (') êàòî ÷àñò îò äóìèòå. Ïðåäè 812è M-b ñåãà âúçïðèåìàò àïîñòðîôèòå (') êàòî ÷àñò îò äóìèòå. Ïðåäè
814òîâà, â îñíîâíèÿ ðåæèì (Fundamental), M-f è M-b ñå âúçïðèåìàõà êàòî 813òîâà, â îñíîâíèÿ ðåæèì (Fundamental), M-f è M-b ñå âúçïðèåìàõà êàòî
@@ -837,7 +836,7 @@ m.
837 836
838Åäèí ãëàâåí ðåæèì, êîéòî å ìíîãî ïîëåçåí, îñîáåíî çà ðåäàêòèðàíå íà 837Åäèí ãëàâåí ðåæèì, êîéòî å ìíîãî ïîëåçåí, îñîáåíî çà ðåäàêòèðàíå íà
839òåêñò íà åñòåñòâåí åçèê, å ðåæèìúò íà àâòîìàòè÷íî çàïúëâàíå (Auto Fill 838òåêñò íà åñòåñòâåí åçèê, å ðåæèìúò íà àâòîìàòè÷íî çàïúëâàíå (Auto Fill
840mode). Êîãàòî òîçè ðåæèì å âêëþ÷åí, Åìàêñ àâòîìàòè÷íî ðàçäåëÿ ðåäà 839mode). Êîãàòî òîçè ðåæèì å âêëþ÷åí, Emacs àâòîìàòè÷íî ðàçäåëÿ ðåäà
841ïðè ìÿñòîòî ìåæäó äóìèòå, êîãàòî âìúêâàòå òåêñò è íàïðàâèòå ðåä, êîéòî 840ïðè ìÿñòîòî ìåæäó äóìèòå, êîãàòî âìúêâàòå òåêñò è íàïðàâèòå ðåä, êîéòî
842å òâúðäå äúëúã. 841å òâúðäå äúëúã.
843 842
@@ -857,7 +856,7 @@ auto fill mode<Return>. Êîãàòî ðåæèìúò å âêëþ÷åí, ìîæå äà ãî
857àðãóìåíò íà êîìàíäàòà. 856àðãóìåíò íà êîìàíäàòà.
858 857
859>> Âúâåäåòå C-x f ñ àðãóìåíò 20. (C-u 2 0 C-x f). 858>> Âúâåäåòå C-x f ñ àðãóìåíò 20. (C-u 2 0 C-x f).
860 Ñåãà âúâåäåòå íÿêàêúâ òåêñò è âèæòå êàê Åìàêñ çàïúëâà ðåäîâåòå ñ ïî 859 Ñåãà âúâåäåòå íÿêàêúâ òåêñò è âèæòå êàê Emacs çàïúëâà ðåäîâåòå ñ ïî
861 íå ïîâå÷å îò 20 çíàêà. Ïîñëå âúðíåòå îáðàòíî ãðàíèöàòà íà 70, 860 íå ïîâå÷å îò 20 çíàêà. Ïîñëå âúðíåòå îáðàòíî ãðàíèöàòà íà 70,
862 èçïîëçâàéêè C-x f îòíîâî. 861 èçïîëçâàéêè C-x f îòíîâî.
863 862
@@ -872,12 +871,12 @@ auto fill mode<Return>. Êîãàòî ðåæèìúò å âêëþ÷åí, ìîæå äà ãî
872* ÒÚÐÑÅÍÅ 871* ÒÚÐÑÅÍÅ
873--------- 872---------
874 873
875Åìàêñ ìîæå äà èçâúðøâà òúðñåíèÿ íà íèçîâå (òîâà ñà ïîñëåäîâàòåëíîñòè 874Emacs ìîæå äà èçâúðøâà òúðñåíèÿ íà íèçîâå (òîâà ñà ïîñëåäîâàòåëíîñòè
876îò çíàöè èëè äóìè) èëè íàïðåä â òåêñòà, èëè íàçàä â íåãî. Òúðñåíåòî 875îò çíàöè èëè äóìè) èëè íàïðåä â òåêñòà, èëè íàçàä â íåãî. Òúðñåíåòî
877íà íèç å ïðèäâèæâàùà êóðñîðà êîìàíäà; òÿ ïðåìåñòâà êóðñîðà íà 876íà íèç å ïðèäâèæâàùà êóðñîðà êîìàíäà; òÿ ïðåìåñòâà êóðñîðà íà
878ñëåäâàùîòî ìÿñòî, êúäåòî ñå ñðåùà íèçúò. 877ñëåäâàùîòî ìÿñòî, êúäåòî ñå ñðåùà íèçúò.
879 878
880Êîìàíäàòà çà òúðñåíå íà Åìàêñ ñå ðàçëè÷àâà îò êîìàíäàòà çà òúðñåíå íà 879Êîìàíäàòà çà òúðñåíå íà Emacs ñå ðàçëè÷àâà îò êîìàíäàòà çà òúðñåíå íà
881ïîâå÷åòî ðåäàêòîðè ïî òîâà, ÷å òÿ å "ïîñòúïêîâà". Òîâà îçíà÷àâà, ÷å 880ïîâå÷åòî ðåäàêòîðè ïî òîâà, ÷å òÿ å "ïîñòúïêîâà". Òîâà îçíà÷àâà, ÷å
882òúðñåíåòî ñå èçâúðøâà îùå äîêàòî âúâåæäàòå òåêñòà, êîéòî òúðñèòå. 881òúðñåíåòî ñå èçâúðøâà îùå äîêàòî âúâåæäàòå òåêñòà, êîéòî òúðñèòå.
883 882
@@ -885,7 +884,7 @@ auto fill mode<Return>. Êîãàòî ðåæèìúò å âêëþ÷åí, ìîæå äà ãî
885òúðñåíå íàçàä. ÍÎ ÏÎ×ÀÊÀÉÒÅ! Íå ãè ïðîáâàéòå ñåãà. 884òúðñåíå íàçàä. ÍÎ ÏÎ×ÀÊÀÉÒÅ! Íå ãè ïðîáâàéòå ñåãà.
886 885
887Êîãàòî âúâåäåòå C-s, ùå çàáåëåæèòå, ÷å íèçúò "I-search" ñå ïîÿâÿâà 886Êîãàòî âúâåäåòå C-s, ùå çàáåëåæèòå, ÷å íèçúò "I-search" ñå ïîÿâÿâà
888êàòî ïîäñêàçêà â åõî îáëàñòòà. Òîâà âè êàçâà, ÷å Åìàêñ å â òîâà, 887êàòî ïîäñêàçêà â åõî îáëàñòòà. Òîâà âè êàçâà, ÷å Emacs å â òîâà,
889êîåòî ñå íàðè÷à ïîñòúïêîâî òúðñåíå, ÷àêàéêè âè äà âúâåæäàòå òåêñòà, 888êîåòî ñå íàðè÷à ïîñòúïêîâî òúðñåíå, ÷àêàéêè âè äà âúâåæäàòå òåêñòà,
890êîéòî èñêàòå äà òúðñèòå. <Return> ïðèêëþ÷âà òúðñåíåòî. 889êîéòî èñêàòå äà òúðñèòå. <Return> ïðèêëþ÷âà òúðñåíåòî.
891 890
@@ -897,19 +896,19 @@ auto fill mode<Return>. Êîãàòî ðåæèìúò å âêëþ÷åí, ìîæå äà ãî
897>> Ñåãà âúâåäåòå <Delback> òðè ïúòè è âèæòå êàê ñå ïðèäâèæâà êóðñîðà. 896>> Ñåãà âúâåäåòå <Delback> òðè ïúòè è âèæòå êàê ñå ïðèäâèæâà êóðñîðà.
898>> Âúâåäåòå <Return>, çà äà ïðåêðàòèòå òúðñåíåòî. 897>> Âúâåäåòå <Return>, çà äà ïðåêðàòèòå òúðñåíåòî.
899 898
900Çàáåëÿçàõòå ëè êàêâî ñòàíà? Åìàêñ, êîãàòî òúðñè ïîñòúïêîâî, ñå îïèòâà 899Çàáåëÿçàõòå ëè êàêâî ñòàíà? Emacs, êîãàòî òúðñè ïîñòúïêîâî, ñå îïèòâà
901äà íàìåðè ñëåäâàùîòî ñúâïàäåíèå íà íèçà, êîéòî ñå âúâåæäà. Çà äà 900äà íàìåðè ñëåäâàùîòî ñúâïàäåíèå íà íèçà, êîéòî ñå âúâåæäà. Çà äà
902îòèäåòå íà ñëåäâàùîòî ñúâïàäåíèå íà "òúðñíå", ïðîñòî îòíîâî âúâåäåòå 901îòèäåòå íà ñëåäâàùîòî ñúâïàäåíèå íà "òúðñíå", ïðîñòî îòíîâî âúâåäåòå
903C-s. Àêî íÿìà òàêîâà ñúâïàäåíèå, Åìàêñ áèáèïâà è âè êàçâà, ÷å 902C-s. Àêî íÿìà òàêîâà ñúâïàäåíèå, Emacs áèáèïâà è âè êàçâà, ÷å
904òúðñåíåòî å "ïðîâàëåíî" (failing). C-g ñúùî ïðåêðàòÿâà òúðñåíåòî. 903òúðñåíåòî å "ïðîâàëåíî" (failing). C-g ñúùî ïðåêðàòÿâà òúðñåíåòî.
905 904
906ÇÀÁÅËÅÆÊÀ: Íà íÿêîè ñèñòåìè âúâåæäàíåòî íà C-s ùå çàìðàçè åêðàíà è âèå 905ÇÀÁÅËÅÆÊÀ: Íà íÿêîè ñèñòåìè âúâåæäàíåòî íà C-s ùå çàìðàçè åêðàíà è âèå
907íÿìà äà ìîæå äà âèäèòå ïîâå÷å ðåàêöèÿ îò Åìàêñ. Òîâà ïîêàçâà, ÷å 906íÿìà äà ìîæå äà âèäèòå ïîâå÷å ðåàêöèÿ îò Emacs. Òîâà ïîêàçâà, ÷å
908"ñïîñîáíîñò" íà îïåðàöèîííàòà ñèñòåìà, íàðå÷åíà "óïðàâëåíèå íà ïîòîêà" 907"ñïîñîáíîñò" íà îïåðàöèîííàòà ñèñòåìà, íàðå÷åíà "óïðàâëåíèå íà ïîòîêà"
909(flow control), å ïðèõâàíàëà C-s è íå ãî ïðîïóñêà äî Åìàêñ. Çà äà 908(flow control), å ïðèõâàíàëà C-s è íå ãî ïðîïóñêà äî Emacs. Çà äà
910ðàçìðàçèòå åêðàíà, âúâåäåòå C-q. Òîãàâà âèæòå ñåêöèÿòà "Ñïîíòàííî 909ðàçìðàçèòå åêðàíà, âúâåäåòå C-q. Òîãàâà âèæòå ñåêöèÿòà "Ñïîíòàííî
911âêëþ÷âàíå íà ïîñòúïêîâîòî òúðñåíå" (Spontaneous Entry to Incremental 910âêëþ÷âàíå íà ïîñòúïêîâîòî òúðñåíå" (Spontaneous Entry to Incremental
912Search) â ðúêîâîäñòâîòî íà Åìàêñ çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè 911Search) â ðúêîâîäñòâîòî íà Emacs çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè
913"ñïîñîáíîñò". 912"ñïîñîáíîñò".
914 913
915Àêî ñòå â ñðåäàòà íà ïîñòúïêîâî òúðñåíå è âúâåäåòå <Delback>, ùå 914Àêî ñòå â ñðåäàòà íà ïîñòúïêîâî òúðñåíå è âúâåäåòå <Delback>, ùå
@@ -931,9 +930,9 @@ C-s çàïî÷âà òúðñåíå, êîåòî ãëåäà çà ñúâïàäåíèå ñ íèçà, äàäåí çà
931 930
932 931
933* ÌÍÎÆÅÑÒÂÎ ÏÐÎÇÎÐÖÈ 932* ÌÍÎÆÅÑÒÂÎ ÏÐÎÇÎÐÖÈ
934---------------- 933--------------------
935 934
936Åäíà îò ïðèâëåêàòåëíèòå ñïîñîáíîñòè íà Åìàêñ å òàçè, ÷å ìîæå äà 935Åäíà îò ïðèâëåêàòåëíèòå ñïîñîáíîñòè íà Emacs å òàçè, ÷å ìîæå äà
937ãëåäàòå ïîâå÷å îò åäèí ïðîçîðåö íà åêðàíà â äàäåí ìîìåíò îò âðåìå. 936ãëåäàòå ïîâå÷å îò åäèí ïðîçîðåö íà åêðàíà â äàäåí ìîìåíò îò âðåìå.
938 937
939>> Ïðèäâèæåòå êóðñîðà äî òîçè ðåä è âúâåäåòå C-u 0 C-l (òîâà å 938>> Ïðèäâèæåòå êóðñîðà äî òîçè ðåä è âúâåäåòå C-u 0 C-l (òîâà å
@@ -944,7 +943,7 @@ C-s çàïî÷âà òúðñåíå, êîåòî ãëåäà çà ñúâïàäåíèå ñ íèçà, äàäåí çà
944 îñòàâà íà ïî-ãîðíèÿ ïðîçîðåö. 943 îñòàâà íà ïî-ãîðíèÿ ïðîçîðåö.
945 944
946>> Âúâåäåòå C-M-v, çà äà ñêðîëèðàòå äîëíèÿ ïðîçîðåö. (Àêî íÿìàòå 945>> Âúâåäåòå C-M-v, çà äà ñêðîëèðàòå äîëíèÿ ïðîçîðåö. (Àêî íÿìàòå
947 èñòèíñêè êëàâèø META, âúâåäåòå ESC C-v.) 946 èñòèíñêè êëàâèø META, âúâåäåòå <ESC> C-v.)
948 947
949>> Âúâåäåòå C-x o ("o" îò "other" -- "äðóã"), çà äà ïðèäâèæèòå 948>> Âúâåäåòå C-x o ("o" îò "other" -- "äðóã"), çà äà ïðèäâèæèòå
950 êóðñîðà â äîëíèÿ ïðîçîðåö. 949 êóðñîðà â äîëíèÿ ïðîçîðåö.
@@ -973,10 +972,10 @@ C-M-v å ïðèìåð çà çíàê CONTROL-META. Àêî èìàòå èñòèíñêè êëàâèø META,
973ïúðâè", çàùîòî è äâàòà êëàâèøà äåéñòâàò, ìîäèôèöèðàéêè çíàêà, êîéòî 972ïúðâè", çàùîòî è äâàòà êëàâèøà äåéñòâàò, ìîäèôèöèðàéêè çíàêà, êîéòî
974ñòå âúâåëè. 973ñòå âúâåëè.
975 974
976Àêî íÿìàòå èñòèíñêè êëàâèø META è èçïîëçâàòå ESC âìåñòî òîâà, ðåäúò 975Àêî íÿìàòå èñòèíñêè êëàâèø META è èçïîëçâàòå <ESC> âìåñòî òîâà, ðåäúò
977èìà çíà÷åíèå: òðÿáâà äà âúâåæäàòå ESC, ïîñëåäâàí îò CONTROL-v, çàùîòî 976èìà çíà÷åíèå: òðÿáâà äà âúâåæäàòå <ESC>, ïîñëåäâàí îò CONTROL-v,
978CONTROL-ESC v íÿìà äà ðàáîòè. Òîâà å òàêà, çàùîòî ESC å ñîáñòâåí 977çàùîòî CONTROL-<ESC> v íÿìà äà ðàáîòè. Òîâà å òàêà, çàùîòî <ESC> å
979çíàê, à íå ìîäèôèêàòîð. 978ñîáñòâåí çíàê, à íå ìîäèôèêàòîð.
980 979
981>> Âúâåäåòå C-x 1 (â ãîðíèÿ ïðîçîðåö), çà äà ìàõíåòå äîëíèÿ ïðîçîðåö. 980>> Âúâåäåòå C-x 1 (â ãîðíèÿ ïðîçîðåö), çà äà ìàõíåòå äîëíèÿ ïðîçîðåö.
982 981
@@ -1009,13 +1008,13 @@ CONTROL-ESC v íÿìà äà ðàáîòè. Òîâà å òàêà, çàùîòî ESC å ñîáñòâåí
1009íà ãëàâíèÿ ðåæèì. Íàïðèìåð, ìîæå äà âèäèòå [(Fundamental)] âìåñòî 1008íà ãëàâíèÿ ðåæèì. Íàïðèìåð, ìîæå äà âèäèòå [(Fundamental)] âìåñòî
1010(Fundamental). 1009(Fundamental).
1011 1010
1012Çà äà ñå ìàõíåòå îò âëîæåíîòî íèâî íà ðåäàêòèðàíå, âúâåäåòå ESC ESC 1011Çà äà ñå ìàõíåòå îò âëîæåíîòî íèâî íà ðåäàêòèðàíå, âúâåäåòå <ESC>
1013ESC. Òîâà å îáùà êîìàíäà çà "èçëèçàíå". Ìîæå è äà ÿ èçïîëçâàòå çà 1012<ESC> <ESC>. Òîâà å îáùà êîìàíäà çà "èçëèçàíå". Ìîæå è äà ÿ
1014ìàõàíå (ñêðèâàíå) íà äîïúëíèòåëíè ïðîçîðöè, êàêòî è çà äà ñå ìàõíåòå 1013èçïîëçâàòå çà ìàõàíå (ñêðèâàíå) íà äîïúëíèòåëíè ïðîçîðöè, êàêòî è çà
1015îò ìèíèáóôåðà. 1014äà ñå ìàõíåòå îò ìèíèáóôåðà.
1016 1015
1017>> Âúâåäåòå M-x, çà äà âëåçåòå â ìèíèáóôåð; òîãàâà âúâåäåòå ESC ESC 1016>> Âúâåäåòå M-x, çà äà âëåçåòå â ìèíèáóôåð; òîãàâà âúâåäåòå <ESC> <ESC>
1018 ESC, çà äà èçëåçåòå. 1017 <ESC>, çà äà èçëåçåòå.
1019 1018
1020Íå ìîæåòå äà èçïîëçâàòå C-g, çà äà èçëåçåòå îò âëîæåíî íèâî íà 1019Íå ìîæåòå äà èçïîëçâàòå C-g, çà äà èçëåçåòå îò âëîæåíî íèâî íà
1021ðåäàêòèðàíå. Òîâà å òàêà, çàùîòî C-g ñå èçïîëçâà çà ïðåêðàòÿâàíå íà 1020ðåäàêòèðàíå. Òîâà å òàêà, çàùîòî C-g ñå èçïîëçâà çà ïðåêðàòÿâàíå íà
@@ -1026,16 +1025,16 @@ ESC. Òîâà å îáùà êîìàíäà çà "èçëèçàíå". Ìîæå è äà ÿ èçïîëçâàòå çà
1026---------------------------------- 1025----------------------------------
1027 1026
1028 òîâà âúâåäåíèå ñå îïèòàõìå äà îñèãóðèì äîñòàòú÷íî èíôîðìàöèÿ, çà äà 1027 òîâà âúâåäåíèå ñå îïèòàõìå äà îñèãóðèì äîñòàòú÷íî èíôîðìàöèÿ, çà äà
1029çàïî÷íåòå äà èçïîëçâàòå Åìàêñ. Èìà òîëêîâà ìíîãî îùå â Åìàêñ, ÷å íå å 1028çàïî÷íåòå äà èçïîëçâàòå Emacs. Èìà òîëêîâà ìíîãî îùå â Emacs, ÷å íå å
1030âúçìîæíî òî äà áúäå îáÿñíåíî âñè÷êîòî òóê. Îáà÷å ìîæå äà ïîèñêàòå äà 1029âúçìîæíî òî äà áúäå îáÿñíåíî âñè÷êîòî òóê. Îáà÷å ìîæå äà ïîèñêàòå äà
1031íàó÷èòå ïîâå÷å çà Åìàêñ, òúé êàòî òîé ïðèòåæàâà îùå ìíîãî ïîëåçíè 1030íàó÷èòå ïîâå÷å çà Emacs, òúé êàòî òîé ïðèòåæàâà îùå ìíîãî ïîëåçíè
1032ñïîñîáíîñòè. Åìàêñ èìà êîìàíäè çà ÷åòåíå íà äîêóìåíòàöèÿòà íà Åìàêñ 1031ñïîñîáíîñòè. Emacs èìà êîìàíäè çà ÷åòåíå íà äîêóìåíòàöèÿòà íà Emacs
1033êîìàíäèòå. Òåçè "ïîìîùíè" êîìàíäè âñè÷êè çàïî÷âàò ñúñ çíàêà 1032êîìàíäèòå. Òåçè "ïîìîùíè" êîìàíäè âñè÷êè çàïî÷âàò ñúñ çíàêà
1034CONTROL-h, êîéòî ñå íàðè÷à "çíàêúò çà ïîìîù". 1033CONTROL-h, êîéòî ñå íàðè÷à "çíàêúò çà ïîìîù".
1035 1034
1036Çà äà èçïîëçâàòå âúçìîæíîñòèòå íà òàçè ïîìîù, âúâåäåòå çíàêà C-h è 1035Çà äà èçïîëçâàòå âúçìîæíîñòèòå íà òàçè ïîìîù, âúâåäåòå çíàêà C-h è
1037ñëåä òîâà çíàêà, êàçâàù êàêúâ âèä ïîìîù èñêàòå. Àêî ÍÀÈÑÒÈÍÀ ñòå ñå 1036ñëåä òîâà çíàêà, êàçâàù êàêúâ âèä ïîìîù èñêàòå. Àêî ÍÀÈÑÒÈÍÀ ñòå ñå
1038èçãóáèëè, âúâåäåòå C-h ? è Åìàêñ ùå âè êàæå ñ êàêâî ìîæå äà âè 1037èçãóáèëè, âúâåäåòå C-h ? è Emacs ùå âè êàæå ñ êàêâî ìîæå äà âè
1039ïîìîãíå. Àêî ñòå âúâåëè C-h è ðåøèòå, ÷å íå ñå íóæäàåòå îò ïîìîù, 1038ïîìîãíå. Àêî ñòå âúâåëè C-h è ðåøèòå, ÷å íå ñå íóæäàåòå îò ïîìîù,
1040ïðîñòî âúâåäåòå C-g, çà äà ÿ ïðåêðàòèòå. 1039ïðîñòî âúâåäåòå C-g, çà äà ÿ ïðåêðàòèòå.
1041 1040
@@ -1047,7 +1046,7 @@ CONTROL-h, êîéòî ñå íàðè÷à "çíàêúò çà ïîìîù".
1047 1046
1048Íàé-îñíîâíîòî ïîìîùíî ñðåäñòâî å C-h c. Âúâåäåòå C-h, çíàêà c è 1047Íàé-îñíîâíîòî ïîìîùíî ñðåäñòâî å C-h c. Âúâåäåòå C-h, çíàêà c è
1049êîìàíäåí çíàê èëè ïîñëåäîâàòåëíîñò îò çíàöè, îáðàçóâàùè êîìàíäà; 1048êîìàíäåí çíàê èëè ïîñëåäîâàòåëíîñò îò çíàöè, îáðàçóâàùè êîìàíäà;
1050òîãàâà Åìàêñ ùå èçâåäå ìíîãî êðàòêî îïèñàíèå íà êîìàíäàòà. 1049òîãàâà Emacs ùå èçâåäå ìíîãî êðàòêî îïèñàíèå íà êîìàíäàòà.
1051 1050
1052>> Type C-h c C-p. 1051>> Type C-h c C-p.
1053 1052
@@ -1057,7 +1056,7 @@ CONTROL-h, êîéòî ñå íàðè÷à "çíàêúò çà ïîìîù".
1057 (C-p èçïúëíÿâà êîìàíäàòà ïðåäèøåí-ðåä) 1056 (C-p èçïúëíÿâà êîìàíäàòà ïðåäèøåí-ðåä)
1058 1057
1059Òîâà âè êàçâà "èìåòî íà ôóíêöèÿòà". Èìåíàòà íà ôóíêöèèòå ñå èçïîëçâàò 1058Òîâà âè êàçâà "èìåòî íà ôóíêöèÿòà". Èìåíàòà íà ôóíêöèèòå ñå èçïîëçâàò
1060íàé-âå÷å çà íàñòðîéâàíå è ðàçøèðÿâàíå íà Åìàêñ. Íî òúé êàòî èìåíàòà 1059íàé-âå÷å çà íàñòðîéâàíå è ðàçøèðÿâàíå íà Emacs. Íî òúé êàòî èìåíàòà
1061íà ôóíêöèèòå ñà èçáðàíè òàêà, ÷å äà ïîêàçâàò êàêâî ïðàâè êîìàíäàòà, òå 1060íà ôóíêöèèòå ñà èçáðàíè òàêà, ÷å äà ïîêàçâàò êàêâî ïðàâè êîìàíäàòà, òå
1062ìîãàò äà ñëóæàò è çà ìíîãî êðàòêà äîêóìåíòàöèÿ -- äîñòàòú÷íà, çà äà âè 1061ìîãàò äà ñëóæàò è çà ìíîãî êðàòêà äîêóìåíòàöèÿ -- äîñòàòú÷íà, çà äà âè
1063ïðèïîìíè êîìàíäè, êîèòî âå÷å ñòå ó÷èëè. 1062ïðèïîìíè êîìàíäè, êîèòî âå÷å ñòå ó÷èëè.
@@ -1071,7 +1070,7 @@ c.
1071>> Âúâåäåòå C-h k C-p. 1070>> Âúâåäåòå C-h k C-p.
1072 1071
1073Òîâà èçâåæäà äîêóìåíòàöèÿòà íà ôóíêöèÿòà, êàêòî è íåéíîòî èìå, â 1072Òîâà èçâåæäà äîêóìåíòàöèÿòà íà ôóíêöèÿòà, êàêòî è íåéíîòî èìå, â
1074îòäåëåí Åìàêñ ïðîçîðåö. Êîãàòî ÿ ïðî÷åòåòå, âúâåäåòå C-x 1, çà äà 1073îòäåëåí Emacs ïðîçîðåö. Êîãàòî ÿ ïðî÷åòåòå, âúâåäåòå C-x 1, çà äà
1075ìàõíåòå ïîìîùíèÿ òåêñò. Íå å íóæíî äà ïðàâèòå òîâà òî÷íî ñåãà. Ìîæå 1074ìàõíåòå ïîìîùíèÿ òåêñò. Íå å íóæíî äà ïðàâèòå òîâà òî÷íî ñåãà. Ìîæå
1076äà ðåäàêòèðàòå, äîêàòî ñå îáðúùàòå êúì ïîìîùíèÿ òåêñò çà ñïðàâêà, è 1075äà ðåäàêòèðàòå, äîêàòî ñå îáðúùàòå êúì ïîìîùíèÿ òåêñò çà ñïðàâêà, è
1077ñëåä òîâà äà âúâåäåòå C-x 1. 1076ñëåä òîâà äà âúâåäåòå C-x 1.
@@ -1082,14 +1081,14 @@ c.
1082 ôóíêöèÿòà. 1081 ôóíêöèÿòà.
1083 1082
1084>> Îïèòàéòå ñ âúâåæäàíå íà C-h f previous-line<Return>. 1083>> Îïèòàéòå ñ âúâåæäàíå íà C-h f previous-line<Return>.
1085 Òîâà èçâåæäà öÿëàòà èíôîðìàöèÿ, êîÿòî Åìàêñ çíàå çà ôóíêöèÿòà, 1084 Òîâà èçâåæäà öÿëàòà èíôîðìàöèÿ, êîÿòî Emacs çíàå çà ôóíêöèÿòà,
1086 êîÿòî îñúùåñòâÿâà êîìàíäàòà C-p. 1085 êîÿòî îñúùåñòâÿâà êîìàíäàòà C-p.
1087 1086
1088Ïîäîáíà êîìàíäà, C-h v, èçâåæäà äîêóìåíòàöèÿòà íà ïðîìåíëèâèòå, êîèòî 1087Ïîäîáíà êîìàíäà, C-h v, èçâåæäà äîêóìåíòàöèÿòà íà ïðîìåíëèâèòå, êîèòî
1089ìîæå äà ïðîìåíÿòå, çà äà íàñòðîéâàòå ïîâåäåíèåòî íà Åìàêñ. Òðÿáâà äà 1088ìîæå äà ïðîìåíÿòå, çà äà íàñòðîéâàòå ïîâåäåíèåòî íà Emacs. Òðÿáâà äà
1090âúâåäåòå èìåòî íà ïðîìåíëèâàòà, êîãàòî Åìàêñ âè ïîäñêàæå òîâà. 1089âúâåäåòå èìåòî íà ïðîìåíëèâàòà, êîãàòî Emacs âè ïîäñêàæå òîâà.
1091 1090
1092 C-h a Êîìàíäà Àïðîïîñ. Âúâåäåòå êëþ÷îâà äóìà è Åìàêñ ùå 1091 C-h a Êîìàíäà Àïðîïîñ. Âúâåäåòå êëþ÷îâà äóìà è Emacs ùå
1093 ïîêàæå ñïèñúê íà âñè÷êè êîìàíäè, ÷èåòî èìå ñúäúðæà 1092 ïîêàæå ñïèñúê íà âñè÷êè êîìàíäè, ÷èåòî èìå ñúäúðæà
1094 òàçè êëþ÷îâà äóìà. Òåçè êîìàíäè ìîãàò âñè÷êè äà áúäàò 1093 òàçè êëþ÷îâà äóìà. Òåçè êîìàíäè ìîãàò âñè÷êè äà áúäàò
1095 èçâèêàíè ÷ðåç META-x. Çà íÿêîè êîìàíäè êîìàíäàòà 1094 èçâèêàíè ÷ðåç META-x. Çà íÿêîè êîìàíäè êîìàíäàòà
@@ -1112,18 +1111,18 @@ C-f, èçáðîåíè èçìåæäó ñúîòâåòíèòå èìåíà íà êîìàíäè, êàòî find-file.
1112 ñïåöèàëåí áóôåð, íàðè÷àí "*info*", êúäåòî ìîæå äà 1111 ñïåöèàëåí áóôåð, íàðè÷àí "*info*", êúäåòî ìîæå äà
1113 ÷åòåòå ðúêîâîäñòâàòà íà èíñòàëèðàíèòå âúâ âàøàòà 1112 ÷åòåòå ðúêîâîäñòâàòà íà èíñòàëèðàíèòå âúâ âàøàòà
1114 ñèñòåìà ïàêåòè. Âúâåäåòå m emacs <Return>, çà äà 1113 ñèñòåìà ïàêåòè. Âúâåäåòå m emacs <Return>, çà äà
1115 ÷åòåòå ðúêîâîäñòâîòî íà Åìàêñ. Àêî íèêîãà ïðåäè òîâà 1114 ÷åòåòå ðúêîâîäñòâîòî íà Emacs. Àêî íèêîãà ïðåäè òîâà
1116 íå ñòå èçïîëçâàëè Info, âúâåäåòå ? è Åìàêñ ùå âêëþ÷è 1115 íå ñòå èçïîëçâàëè Info, âúâåäåòå ? è Emacs ùå âêëþ÷è
1117 âúâåäåíèå âúâ âúçìîæíîñòèòå íà ðåæèìà Èíôî. Âåäíúæ 1116 âúâåäåíèå âúâ âúçìîæíîñòèòå íà ðåæèìà Èíôî. Âåäíúæ
1118 ñëåä êàòî ñòå ïðåìèíàëè òîâà âúâåäåíèå, òðÿáâà äà ñå 1117 ñëåä êàòî ñòå ïðåìèíàëè òîâà âúâåäåíèå, òðÿáâà äà ñå
1119 êîíñóëòèðàòå ñ Åìàêñ Èíôî ðúêîâîäñòâîòî êàòî âàøà 1118 êîíñóëòèðàòå ñ Emacs Èíôî ðúêîâîäñòâîòî êàòî âàøà
1120 îñíîâíà äîêóìåíòàöèÿ. 1119 îñíîâíà äîêóìåíòàöèÿ.
1121 1120
1122 1121
1123* ÎÙÅ ÂÚÇÌÎÆÍÎÑÒÈ 1122* ÎÙÅ ÂÚÇÌÎÆÍÎÑÒÈ
1124----------------- 1123-----------------
1125 1124
1126Ìîæå äà íàó÷èòå ïîâå÷å çà Åìàêñ ñ ÷åòåíå íà íåãîâîòî ðúêîâîäñòâî, èëè 1125Ìîæå äà íàó÷èòå ïîâå÷å çà Emacs ñ ÷åòåíå íà íåãîâîòî ðúêîâîäñòâî, èëè
1127êàòî êíèãà, èëè â Èíôî (èçïîëçâàéòå ìåíþòî ïîìîù (Help) èëè âúâåäåòå 1126êàòî êíèãà, èëè â Èíôî (èçïîëçâàéòå ìåíþòî ïîìîù (Help) èëè âúâåäåòå
1128F10 h r). Äâå âúçìîæíîñòè, êîèòî ìîæå äà æåëàåòå â íà÷àëîòî, ñà 1127F10 h r). Äâå âúçìîæíîñòè, êîèòî ìîæå äà æåëàåòå â íà÷àëîòî, ñà
1129äîâúðøâàíå (completion), êîåòî ñïåñòÿâà ïèñàíå, è dired, êîéòî 1128äîâúðøâàíå (completion), êîåòî ñïåñòÿâà ïèñàíå, è dired, êîéòî
@@ -1131,26 +1130,26 @@ F10 h r). Äâå âúçìîæíîñòè, êîèòî ìîæå äà æåëàåòå â íà÷àëîòî, ñà
1131 1130
1132Äîâúðøâàíåòî å íà÷èí äà èçáÿãâàòå íåíóæíî ïèñàíå. Íàïðèìåð, àêî 1131Äîâúðøâàíåòî å íà÷èí äà èçáÿãâàòå íåíóæíî ïèñàíå. Íàïðèìåð, àêî
1133èñêàòå äà ïðåâêëþ÷èòå êúì áóôåðà *Messages*, ìîæå äà âúâåäåòå C-x b 1132èñêàòå äà ïðåâêëþ÷èòå êúì áóôåðà *Messages*, ìîæå äà âúâåäåòå C-x b
1134*M<Tab> è Åìàêñ ùå çàïúëíè îñòàíàëàòà ÷àñò îò èìåòî íà áóôåðà, 1133*M<Tab> è Emacs ùå çàïúëíè îñòàíàëàòà ÷àñò îò èìåòî íà áóôåðà,
1135äîêîëêîòî ìîæå äà ñå îïðåäåëè îò òîâà, êîåòî ñòå âúâåëè. Äîâúðøâàíåòî 1134äîêîëêîòî ìîæå äà ñå îïðåäåëè îò òîâà, êîåòî ñòå âúâåëè. Äîâúðøâàíåòî
1136å îïèñàíî â Èíôî-ðúêîâîäñòâîòî íà Åìàêñ â ñòðàíèöàòà "Äîâúðøâàíå" 1135å îïèñàíî â Èíôî-ðúêîâîäñòâîòî íà Emacs â ñòðàíèöàòà "Äîâúðøâàíå"
1137("Completion"). 1136("Completion").
1138 1137
1139Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî 1138Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî
1140âúçìîæíîñò: íåéíèòå ïîääèðåêòîðèè), äà ñå ïðèäâèæâàòå â òîçè ñïèñúê, 1139âúçìîæíîñò: íåéíèòå ïîääèðåêòîðèè), äà ñå ïðèäâèæâàòå â òîçè ñïèñúê,
1141äà ïîñåùàâàòå, ïðåèìåíóâàòå, èçòðèâàòå è èçîáùî äåéñòâàòå âúðõó 1140äà ïîñåùàâàòå, ïðåèìåíóâàòå, èçòðèâàòå è èçîáùî äåéñòâàòå âúðõó
1142ôàéëîâåòå. Dired å îïèñàí â Èíôî-ðúêîâîäñòâîòî íà Åìàêñ â ñòðàíèöàòà 1141ôàéëîâåòå. Dired å îïèñàí â Èíôî-ðúêîâîäñòâîòî íà Emacs â ñòðàíèöàòà
1143"Dired". 1142"Dired".
1144 1143
1145Ðúêîâîäñòâîòî íà Åìàêñ îïèñâà îùå ìíîãî äðóãè âúçìîæíîñòè íà 1144Ðúêîâîäñòâîòî íà Emacs îïèñâà îùå ìíîãî äðóãè âúçìîæíîñòè íà
1146ðåäàêòîðà. 1145ðåäàêòîðà.
1147 1146
1148 1147
1149* ÇÀÊËÞ×ÅÍÈÅ 1148* ÇÀÊËÞ×ÅÍÈÅ
1150------------ 1149------------
1151 1150
1152Çàïîìíåòå: çà äà èçëåçåòå áåçâúçâðàòíî îò Åìàêñ, èçïîëçâàéòå C-x C-c. 1151Çàïîìíåòå: çà äà èçëåçåòå áåçâúçâðàòíî îò Emacs, èçïîëçâàéòå C-x C-c.
1153Çà äà èçëåçåòå âðåìåííî â îáâèâêà, òàêà ÷å äà ñå âúðíåòå â Åìàêñ 1152Çà äà èçëåçåòå âðåìåííî â îáâèâêà, òàêà ÷å äà ñå âúðíåòå â Emacs
1154ïî-êúñíî, èçïîëçâàéòå C-z. 1153ïî-êúñíî, èçïîëçâàéòå C-z.
1155 1154
1156Òîâà âúâåäåíèå å ïðåäâèäåíî äà áúäå ðàçáèðàåìî çà âñè÷êè íîâè 1155Òîâà âúâåäåíèå å ïðåäâèäåíî äà áúäå ðàçáèðàåìî çà âñè÷êè íîâè
@@ -1161,17 +1160,17 @@ Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî
1161* ÊÎÏÈÐÀÍÅ 1160* ÊÎÏÈÐÀÍÅ
1162---------- 1161----------
1163 1162
1164Òîâà âúâåäåíèå ïðîèçëèçà îò äúëãà ïîðåäèöà âúâåäåíèÿ â Åìàêñ, 1163Òîâà âúâåäåíèå ïðîèçëèçà îò äúëãà ïîðåäèöà âúâåäåíèÿ â Emacs,
1165çàïî÷âàéêè îò åäíî, íàïèñàíî îò Ñòþúðò Êðàêðàôò çà íà÷àëíèÿ Åìàêñ. 1164çàïî÷âàéêè îò åäíî, íàïèñàíî îò Ñòþúðò Êðàêðàôò çà íà÷àëíèÿ Emacs.
1166 1165
1167Òàçè âåðñèÿ íà âúâåäåíèåòî, êàêòî è ÃÍÓ Åìàêñ, å çàùèòåíà ñ àâòîðñêè 1166Òàçè âåðñèÿ íà âúâåäåíèåòî, êàêòî è GNU Emacs, å çàùèòåíà ñ àâòîðñêè
1168ïðàâà è èäâà ñ ðàçðåøåíèå äà ðàçïðîñòðàíÿâàòå êîïèÿ ïðè ñëåäíèòå 1167ïðàâà è èäâà ñ ðàçðåøåíèå äà ðàçïðîñòðàíÿâàòå êîïèÿ ïðè ñëåäíèòå
1169óñëîâèÿ: 1168óñëîâèÿ:
1170 1169
1171This version of the tutorial, like GNU Emacs, is copyrighted, and 1170This version of the tutorial, like GNU Emacs, is copyrighted, and
1172comes with permission to distribute copies on certain conditions: 1171comes with permission to distribute copies on certain conditions:
1173 1172
1174Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation 1173Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation
1175 1174
1176 Permission is granted to anyone to make or distribute verbatim copies 1175 Permission is granted to anyone to make or distribute verbatim copies
1177 of this document as received, in any medium, provided that the 1176 of this document as received, in any medium, provided that the
@@ -1184,8 +1183,8 @@ Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation
1184 under the above conditions, provided also that they 1183 under the above conditions, provided also that they
1185 carry prominent notices stating who last altered them. 1184 carry prominent notices stating who last altered them.
1186 1185
1187Óñëîâèÿòà çà êîïèðàíå íà ñàìèÿ Åìàêñ ñà ïî-ñëîæíè, íî â ñúùèÿ äóõ. 1186Óñëîâèÿòà çà êîïèðàíå íà ñàìèÿ Emacs ñà ïî-ñëîæíè, íî â ñúùèÿ äóõ.
1188Ìîëÿ, ïðî÷åòåòå ôàéëà COPYING è òîãàâà äàâàéòå êîïèÿ íà ÃÍÓ Åìàêñ íà 1187Ìîëÿ, ïðî÷åòåòå ôàéëà COPYING è òîãàâà äàâàéòå êîïèÿ íà GNU Emacs íà
1189ñâîè ïðèÿòåëè. Ïîìîãíåòå äà ñïðåì çàòâîðåíîñòòà íà ïðîãðàìèòå 1188ñâîè ïðèÿòåëè. Ïîìîãíåòå äà ñïðåì çàòâîðåíîñòòà íà ïðîãðàìèòå
1190("ïðèòåæàíèåòî"), êàòî èçïîëçâàìå, ïèøåì è ñïîäåëÿìå ñâîáîäåí ñîôòóåð! 1189("ïðèòåæàíèåòî"), êàòî èçïîëçâàìå, ïèøåì è ñïîäåëÿìå ñâîáîäåí ñîôòóåð!
1191 1190
diff --git a/etc/TUTORIAL.cn b/etc/TUTORIAL.cn
index e286d4f19c8..1b30b6e909a 100644
--- a/etc/TUTORIAL.cn
+++ b/etc/TUTORIAL.cn
@@ -1,5 +1,4 @@
1Emacs ¿ìËÙÖ¸ÄÏ 1Emacs ¿ìËÙÖ¸ÄÏ.
2ÄúÕýÔÚÔĶÁ Emacs ¿ìËÙÖ¸ÄÏ£¨ Emacs tutorial £©¡£Çë¼ûҳβÓйظ´ÖÆÌõ¼þ¡£
3Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation. 2Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation.
4 3
5Emacs Ö¸Áîͨ³£°üº¬ÓÐ CONTROL ¼ü£¨ÓÐʱºòÒÔ CTRL »ò CTL À´±êʾ£©»òÊÇ 4Emacs Ö¸Áîͨ³£°üº¬ÓÐ CONTROL ¼ü£¨ÓÐʱºòÒÔ CTRL »ò CTL À´±êʾ£©»òÊÇ
diff --git a/etc/TUTORIAL.cs b/etc/TUTORIAL.cs
index bac3a3a228e..f8945b89e36 100644
--- a/etc/TUTORIAL.cs
+++ b/etc/TUTORIAL.cs
@@ -1,4 +1,4 @@
1tutoriál k Emacsu 1tutoriál k Emacsu.
2Copyright (c) 1985 Free Software Foundation, Inc; podmínky viz na konci. 2Copyright (c) 1985 Free Software Foundation, Inc; podmínky viz na konci.
3Do èe¹tiny pøelo¾il Milan Zamazal <pdm@zamazal.org>. 3Do èe¹tiny pøelo¾il Milan Zamazal <pdm@zamazal.org>.
4 4
diff --git a/etc/TUTORIAL.de b/etc/TUTORIAL.de
index 3f03d983651..a007fef752b 100644
--- a/etc/TUTORIAL.de
+++ b/etc/TUTORIAL.de
@@ -1,4 +1,3 @@
1Einführung in Emacs
2Einführung in Emacs. (c) 2002, 2003 Free Software Foundation, Inc. 1Einführung in Emacs. (c) 2002, 2003 Free Software Foundation, Inc.
3 2
4Emacs-Befehle beinhalten im allgemeinen die CONTROL-Taste (manchmal 3Emacs-Befehle beinhalten im allgemeinen die CONTROL-Taste (manchmal
diff --git a/etc/TUTORIAL.es b/etc/TUTORIAL.es
index 939ad3c2a23..ed55cc5ca41 100644
--- a/etc/TUTORIAL.es
+++ b/etc/TUTORIAL.es
@@ -1,7 +1,5 @@
1tutorial de Emacs 1Tutorial de Emacs. Vea al final las condiciones de copiado.
2Usted esta viendo el tutorial de Emacs. Vea al final las condiciones 2Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation.
3de copiado. Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software
4Foundation.
5 3
6Generalmente los comandos de Emacs involucran la tecla CONTROL 4Generalmente los comandos de Emacs involucran la tecla CONTROL
7(algunas veces llamada CTRL O CTL) o la tecla meta (algunas veces 5(algunas veces llamada CTRL O CTL) o la tecla meta (algunas veces
diff --git a/etc/TUTORIAL.fr b/etc/TUTORIAL.fr
index 99bf4c00ff2..38853c608b9 100644
--- a/etc/TUTORIAL.fr
+++ b/etc/TUTORIAL.fr
@@ -1,4 +1,3 @@
1Didacticiel d'Emacs
2Didacticiel d'Emacs. Voir la fin de ce document pour les conditions. 1Didacticiel d'Emacs. Voir la fin de ce document pour les conditions.
3Copyright (c) 1985, 2001, 2002 Free Software Foundation, Inc. 2Copyright (c) 1985, 2001, 2002 Free Software Foundation, Inc.
4 3
diff --git a/etc/TUTORIAL.it b/etc/TUTORIAL.it
index 6611675b583..02a91045d0e 100644
--- a/etc/TUTORIAL.it
+++ b/etc/TUTORIAL.it
@@ -1,4 +1,3 @@
1Esercitazione di Emacs
2Esercitazione di Emacs. Copyright (c) 2003 Free Software Foundation, Inc. 1Esercitazione di Emacs. Copyright (c) 2003 Free Software Foundation, Inc.
3Condizioni d'uso alla fine del file. 2Condizioni d'uso alla fine del file.
4 3
diff --git a/etc/TUTORIAL.ja b/etc/TUTORIAL.ja
index 48d807f6ce0..3ca2afa7c41 100644
--- a/etc/TUTORIAL.ja
+++ b/etc/TUTORIAL.ja
@@ -1,5 +1,4 @@
1Emacs $BF~Lg%,%$%I$G$9(B 1Emacs $BF~Lg%,%$%I$G$9(B.
2$B$"$J$?$,8=:_8+$F$$$k$N$O(B Emacs $BF~Lg%,%$%I$G$9!#%U%!%$%k:G8e$r;2>H$N$3$H!#(B
3Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation. 2Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation.
4 3
5Emacs $B$N%3%^%s%I$rF~NO$9$k$K$O!"0lHL$K%3%s%H%m!<%k%-!<!J%-!<%H%C%W$K(B 4Emacs $B$N%3%^%s%I$rF~NO$9$k$K$O!"0lHL$K%3%s%H%m!<%k%-!<!J%-!<%H%C%W$K(B
diff --git a/etc/TUTORIAL.ko b/etc/TUTORIAL.ko
index 5df936a998f..8e94db3c658 100644
--- a/etc/TUTORIAL.ko
+++ b/etc/TUTORIAL.ko
@@ -1,4 +1,4 @@
1$(C@L8F=:(B(Emacs) $(CAvD'<-@T4O4Y(B 1$(C@L8F=:(B(Emacs) $(CAvD'<-@T4O4Y(B.
2$(C@z@[1G(B (c) 1985, 2001 Free Software Foundation, Inc; $(C3!?!4B(B $(C:9;g(B $(CA60G@L(B 2$(C@z@[1G(B (c) 1985, 2001 Free Software Foundation, Inc; $(C3!?!4B(B $(C:9;g(B $(CA60G@L(B
3$(C@V=@4O4Y(B. $(CAv1](B $(C@P0m(B $(C@V4B(B $(C@L(B $(C1[@:(B $(C@L8F=:(B(Emacs) $(CAvD'<-@T4O4Y(B. 3$(C@V=@4O4Y(B. $(CAv1](B $(C@P0m(B $(C@V4B(B $(C@L(B $(C1[@:(B $(C@L8F=:(B(Emacs) $(CAvD'<-@T4O4Y(B.
4 4
diff --git a/etc/TUTORIAL.nl b/etc/TUTORIAL.nl
index 905021095db..6b6a20a1bba 100644
--- a/etc/TUTORIAL.nl
+++ b/etc/TUTORIAL.nl
@@ -1,5 +1,4 @@
1Emacs-inleiding 1Emacs-inleiding. De kopieervoorwaarden staan onderaan.
2Je leest nu de Emacs-inleiding. De kopieervoorwaarden staan onderaan.
3Copyright (c) 1985, 1996, 1997, 2003, 2004, 2005 Free Software Foundation 2Copyright (c) 1985, 1996, 1997, 2003, 2004, 2005 Free Software Foundation
4 3
5De meeste Emacs-commando's gebruiken de CONTROL-toets (soms CTRL of CTL 4De meeste Emacs-commando's gebruiken de CONTROL-toets (soms CTRL of CTL
diff --git a/etc/TUTORIAL.pl b/etc/TUTORIAL.pl
index 5b5b4d4eb8c..c3bcb8047c8 100644
--- a/etc/TUTORIAL.pl
+++ b/etc/TUTORIAL.pl
@@ -1,5 +1,4 @@
1krótki samouczek Emacsa 1krótki samouczek Emacsa. Copyright (c) 1985, 2001
2Czytasz w³a¶nie krótki samouczek Emacsa. Copyright (c) 1985, 2001
3Free Software Foundation, Inc. Szczegó³y na koñcu pliku. 2Free Software Foundation, Inc. Szczegó³y na koñcu pliku.
4 3
5Polecenia Emacsa wymagaj± na ogó³ wci¶niêcia klawisza CONTROL (oznaczanego 4Polecenia Emacsa wymagaj± na ogó³ wci¶niêcia klawisza CONTROL (oznaczanego
diff --git a/etc/TUTORIAL.pt_BR b/etc/TUTORIAL.pt_BR
index 6492c1ce3dd..a7a50804ca0 100644
--- a/etc/TUTORIAL.pt_BR
+++ b/etc/TUTORIAL.pt_BR
@@ -1,6 +1,5 @@
1Tutorial do Emacs 1Tutorial do Emacs. Veja no fim as condições para cópia.
2Copyright (c) 2004 Free Software Foundation, Inc; Veja no fim as 2Copyright (c) 2004, 2005 Free Software Foundation.
3condições.
4 3
5Os comandos do Emacs geralmente envolvem a tecla CONTROL (algumas vezes 4Os comandos do Emacs geralmente envolvem a tecla CONTROL (algumas vezes
6nomeada CTRL ou CTL) ou a tecla META (algumas vezes nomeada EDIT ou 5nomeada CTRL ou CTL) ou a tecla META (algumas vezes nomeada EDIT ou
@@ -131,8 +130,8 @@ jeito na direção contraria.
131 você pode observar a ação do M-f e M-b de varias lugares dentro e no 130 você pode observar a ação do M-f e M-b de varias lugares dentro e no
132 meio de palavras. 131 meio de palavras.
133 132
134Observe o paralelismo entre C-f e C-b em uma o, e M-f e M-b na 133Observe o paralelismo entre C-f e C-b por um lado, e M-f e M-b por outro
135outra. Muito freqüentemente os caracteres Meta são usados para operações 134lado. Muito freqüentemente os caracteres Meta são usados para operações
136relacionadas com as unidades definidas pela linguagem (palavras, 135relacionadas com as unidades definidas pela linguagem (palavras,
137sentenças, parágrafos), enquanto caracteres Control operam nas unidades 136sentenças, parágrafos), enquanto caracteres Control operam nas unidades
138básicas que são independente do que você está editando (caracteres, 137básicas que são independente do que você está editando (caracteres,
@@ -860,7 +859,7 @@ manual do Emacs para uma dica de como lhe dar com esse "recurso".
860 859
861Se você estiver no meio de uma pesquisa incremental e digitar <Delete>, 860Se você estiver no meio de uma pesquisa incremental e digitar <Delete>,
862você percebera que o ultimo caractere da pesquisa será apagado e a 861você percebera que o ultimo caractere da pesquisa será apagado e a
863pesquisa voltara para o ultimo lugar da pesquisa. Por instancia, imagine 862pesquisa voltara para o ultimo lugar da pesquisa. Por exemplo, imagine
864que você tenha digitado "c", para pesquisar a primeira ocorrência de 863que você tenha digitado "c", para pesquisar a primeira ocorrência de
865"c". Agora se você digitar "u", o cursor ira mover para a primeira 864"c". Agora se você digitar "u", o cursor ira mover para a primeira
866ocorrência de "cu". Agora digite <Delete>. Isso ira apagar o "u" da 865ocorrência de "cu". Agora digite <Delete>. Isso ira apagar o "u" da
diff --git a/etc/TUTORIAL.ro b/etc/TUTORIAL.ro
index d4dde10f237..459d3726cee 100644
--- a/etc/TUTORIAL.ro
+++ b/etc/TUTORIAL.ro
@@ -1,4 +1,4 @@
1tutorialului de Emacs 1tutorialului de Emacs.
2Copyright (c) 1998 Free Software Foundation -*-coding: latin-2;-*- 2Copyright (c) 1998 Free Software Foundation -*-coding: latin-2;-*-
3Traducere din englezã de Tudor Hulubei <tudor@gnu.org>. 3Traducere din englezã de Tudor Hulubei <tudor@gnu.org>.
4Mulþumiri Aidei Hulubei <aida@chang.pub.ro> pentru corecturi ºi sugestii. 4Mulþumiri Aidei Hulubei <aida@chang.pub.ro> pentru corecturi ºi sugestii.
diff --git a/etc/TUTORIAL.ru b/etc/TUTORIAL.ru
index 10b96e56076..f1deaf6c89f 100644
--- a/etc/TUTORIAL.ru
+++ b/etc/TUTORIAL.ru
@@ -1,5 +1,4 @@
1ÕÞÅÂÎÉË Emacs 1ÕÞÅÂÎÉË Emacs.
2÷Ù ÞÉÔÁÅÔÅ ÕÞÅÂÎÉË Emacs. õÓÌÏ×ÉÑ ËÏÐÉÒÏ×ÁÎÉÑ × ËÏÎÃÅ ÆÁÊÌÁ.
3Copyright (c) 1985, 1996, 2004 Free Software Foundation, Inc. 2Copyright (c) 1985, 1996, 2004 Free Software Foundation, Inc.
4 3
5äÌÑ ÕÐÒÁ×ÌÅÎÉÑ Emacs ÏÂÙÞÎÏ ÉÓÐÏÌØÚÕÅÔÓÑ ËÌÀÞ (ÓÏÞÅÔÁÎÉÅ ËÌÁ×ÉÛ ËÌÁ×ÉÁÔÕÒÙ 4äÌÑ ÕÐÒÁ×ÌÅÎÉÑ Emacs ÏÂÙÞÎÏ ÉÓÐÏÌØÚÕÅÔÓÑ ËÌÀÞ (ÓÏÞÅÔÁÎÉÅ ËÌÁ×ÉÛ ËÌÁ×ÉÁÔÕÒÙ
diff --git a/etc/TUTORIAL.sk b/etc/TUTORIAL.sk
index 58812197287..465a3805a62 100644
--- a/etc/TUTORIAL.sk
+++ b/etc/TUTORIAL.sk
@@ -1,4 +1,4 @@
1tútorial k Emacsu 1tútorial k Emacsu.
2Copyright (c) 1985 Free Software Foundation, Inc; podmienky pozri na konci. 2Copyright (c) 1985 Free Software Foundation, Inc; podmienky pozri na konci.
3Do èe¹tiny prelo¾il Milan Zamazal <pdm@zamazal.org>, do slovenèiny Miroslav 3Do èe¹tiny prelo¾il Milan Zamazal <pdm@zamazal.org>, do slovenèiny Miroslav
4Va¹ko <zemiak@zoznam.sk>. 4Va¹ko <zemiak@zoznam.sk>.
diff --git a/etc/TUTORIAL.sl b/etc/TUTORIAL.sl
index f1e64ec748d..263019643db 100644
--- a/etc/TUTORIAL.sl
+++ b/etc/TUTORIAL.sl
@@ -1,4 +1,3 @@
1Prvo berilo za Emacs
2Prvo berilo za Emacs. Pogoji uporabe in raz¹irjanja so navedeni na koncu. 1Prvo berilo za Emacs. Pogoji uporabe in raz¹irjanja so navedeni na koncu.
3Copyright (c) 1985, 1996, 1997, 2001, 2002 Free Software Foundation, Inc. 2Copyright (c) 1985, 1996, 1997, 2001, 2002 Free Software Foundation, Inc.
4 3
diff --git a/etc/TUTORIAL.sv b/etc/TUTORIAL.sv
index 2f9bbe7ceab..bbda74380b2 100644
--- a/etc/TUTORIAL.sv
+++ b/etc/TUTORIAL.sv
@@ -1,7 +1,5 @@
1användarhandledningen till Emacs 1användarhandledningen till Emacs. I slutet finns kopieringsvillkoren.
2Detta är den Svenska användarhandledningen till Emacs. I slutet finns 2Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation, Inc.
3kopieringsvillkoren. Copyright (c) 1985, 1996, 1998, 2001, 2002 Free
4Software Foundation, Inc.
5 3
6Emacs-kommandon innebär ofta användning av kontrolltangenten (vanligen 4Emacs-kommandon innebär ofta användning av kontrolltangenten (vanligen
7märkt CTRL eller CTL) eller META-tangenten (på vissa tangentbord märkt 5märkt CTRL eller CTL) eller META-tangenten (på vissa tangentbord märkt
diff --git a/etc/TUTORIAL.th b/etc/TUTORIAL.th
index 85280907c60..e1fb9d561e1 100644
--- a/etc/TUTORIAL.th
+++ b/etc/TUTORIAL.th
@@ -1,4 +1,4 @@
10,T7h1R9!S0EQ1'0HV1!IR0$Yh10AW1M!RCc0*i10MU1aA!0Jl1(B 10,T7h1R9!S0EQ1'0HV1!IR0$Yh10AW1M!RCc0*i10MU1aA!0Jl1(B.
2,TJ'G90ET1"0JT1708Tl1(B ,T>(B.,TH(B. 2528 ,Tb4B:0CT10IQ17?0CU1+M?05l1aG0Cl1?RG09l1`40*Q19(B (Free Software 2,TJ'G90ET1"0JT1708Tl1(B ,T>(B.,TH(B. 2528 ,Tb4B:0CT10IQ17?0CU1+M?05l1aG0Cl1?RG09l1`40*Q19(B (Free Software
3Foundation, Inc); ,T!0CX13R0HV1!IR`0'Wh1M9d"5M907i1RB:7(B. 3Foundation, Inc); ,T!0CX13R0HV1!IR`0'Wh1M9d"5M907i1RB:7(B.
40,T7h1R9!S0EQ1'0HV1!IR0$Yh10AW1M!RCc0*i10MU1aA!0Jl1(B (Emacs tutorial) ,TM0BYh1c9"3P09Ui1(B. 40,T7h1R9!S0EQ1'0HV1!IR0$Yh10AW1M!RCc0*i10MU1aA!0Jl1(B (Emacs tutorial) ,TM0BYh1c9"3P09Ui1(B.
diff --git a/etc/TUTORIAL.zh b/etc/TUTORIAL.zh
index f8d1d208252..8411bf878f5 100644
--- a/etc/TUTORIAL.zh
+++ b/etc/TUTORIAL.zh
@@ -1,5 +1,4 @@
1Emacs §Ö³t«ü«n¡] 1Emacs §Ö³t«ü«n¡].
2±z¥¿¦b¾\Ū Emacs §Ö³t«ü«n¡] Emacs tutorial ¡^¡C½Ð¨£­¶§À¦³Ãö½Æ»s±ø¥ó¡C
3Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation. 2Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation.
4 3
5Emacs «ü¥O³q±`¥]§t¦³ CONTROL Áä¡]¦³®É­Ô¥H CTRL ©Î CTL ¨Ó¼Ð¥Ü¡^©Î¬O 4Emacs «ü¥O³q±`¥]§t¦³ CONTROL Áä¡]¦³®É­Ô¥H CTRL ©Î CTL ¨Ó¼Ð¥Ü¡^©Î¬O
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 91e775869e6..ec3d4f8a831 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,4 +1,108 @@
12005-03-31 Kenichi Handa <handa@etlken2> 12005-04-02 Luc Teirlinck <teirllm@auburn.edu>
2
3 * simple.el (visible-mode): Use explicit :group keyword.
4 This changes the group of `visible-mode-hook' from paren-blinking
5 to editing-basics.
6
72005-04-02 Sergey Poznyakoff <gray@Mirddin.farlep.net> (tiny change)
8
9 * mail/rmail.el (rmail-parse-url): Bugfix. Parse traditional
10 mailbox specifications as well as URLs.
11 (rmail-insert-inbox-text): Remove unused conditional branches.
12
132005-04-01 Jay Belanger <belanger@truman.edu>
14
15 * calc/calc-graph.el (calc-gnuplot-name, calc-gnuplot-plot-command)
16 (calc-gnuplot-print-command): Move definitions to calc.el.
17
18 * calc/calc-embed.el (calc-embedded-announce-formula)
19 (calc-embedded-open-formula, calc-embedded-close-formula)
20 (calc-embedded-open-word, calc-embedded-close-word)
21 (calc-embedded-open-plain, calc-embedded-close-plain)
22 (calc-embedded-open-new-formula, calc-embedded-close-new-formula)
23 (calc-embedded-open-mode, calc-embedded-close-mode):
24 Move definitions to calc.el.
25
26 * calc/calc.el (calc-settings-file, calc-language-alist):
27 Make customizable.
28 (calc-embedded-announce-formula, calc-embedded-open-formula)
29 (calc-embedded-close-formula, calc-embedded-open-word)
30 (calc-embedded-close-word, calc-embedded-open-plain)
31 (calc-embedded-close-plain, calc-embedded-open-new-formula)
32 (calc-embedded-close-new-formula, calc-embedded-open-mode)
33 (calc-embedded-close-mode, calc-gnuplot-name)
34 (calc-gnuplot-plot-command, calc-gnuplot-print-command): Move here
35 from other files and make customizable.
36
372005-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
38
39 * pcvs.el (cvs-temp-buffer, cvs-mode-kill-process, cvs-buffer-check):
40 Use buffer-live-p.
41 (cvs-mode-run): Don't call cvs-update-header here.
42 (cvs-run-process): Call cvs-update-header.
43 Use process properties for cvs-postprocess and cvs-buffer so that
44 the sentinel can behave better if the temp buffer is killed.
45 Use a pipe rather than a tty, to better handle unexpected prompts.
46 (cvs-sentinel): Rewrite. Call cvs-update-header.
47
482005-04-01 Andre Spiegel <spiegel@gnu.org>
49
50 * vc-hooks.el (vc-workfile-unchanged-p): Disable mtime check when
51 we go via Tramp or Ange-FTP. Suggested by Kai Grossjohann.
52
532005-03-31 Stefan Monnier <monnier@iro.umontreal.ca>
54
55 * generic.el (define-generic-mode): Add indentation rule.
56
572005-03-31 Luc Teirlinck <teirllm@auburn.edu>
58
59 * files.el (mode-require-final-newline): Make Custom correctly
60 report a nil value and allow to set it to nil via Custom.
61 Doc fix.
62
632005-04-01 Kenichi Handa <handa@m17n.org>
64
65 * international/characters.el: Enable the correct case setting for
66 dotless-i and dotted-I.
67
682005-04-01 Kim F. Storm <storm@cua.dk>
69
70 * ido.el (ido-file-internal): Fall back to non-ido command if
71 initial directory is on slow ftp (or tramp) host.
72
732005-03-31 Richard M. Stallman <rms@gnu.org>
74
75 * emacs-lisp/autoload.el (make-autoload):
76 Handle define-global-minor-mode.
77
78 * emacs-lisp/easy-mmode.el (define-global-minor-mode):
79 Rename from easy-mmode-define-global-mode.
80 (easy-mmode-define-global-mode): Alias for define-global-minor-mode.
81
82 * progmodes/scheme.el (scheme-mode-syntax-table):
83 Update syntax of | and # for two-character comment syntax.
84
852005-03-31 Lute Kamstra <lute@gnu.org>
86
87 * emacs-lisp/easy-mmode.el (easy-mmode-define-global-mode)
88 (define-minor-mode): Call custom-current-group at load-time.
89
90 * generic.el (define-generic-mode): Add debug declaration.
91 Add defcustom for the mode hook.
92 (generic-mode-internal): Use run-mode-hooks.
93
942005-03-31 Kim F. Storm <storm@cua.dk>
95
96 * mouse.el (mouse-1-click-follows-link): Increase to 450 ms.
97 (mouse-fixup-help-message): New defun called by show_help_echo
98 to fixup mouse-2 prefix in help messages when applicable.
99
100 * tooltip.el (tooltip-show-help-function): Don't fixup message here.
101
1022005-03-31 Kenichi Handa <handa@m17n.org>
103
104 * language/thai-word.el (thai-find-word-ends): Pay attention to
105 the case that we reach the end of buffer.
2 106
3 * textmodes/fill.el (fill-text-properties-at): New function. 107 * textmodes/fill.el (fill-text-properties-at): New function.
4 (fill-newline): Use fill-text-properties-at instead of 108 (fill-newline): Use fill-text-properties-at instead of
@@ -69,13 +173,13 @@
69 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset) 173 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
70 (org-agenda-convert-date, org-agenda-goto-calendar): New commands. 174 (org-agenda-convert-date, org-agenda-goto-calendar): New commands.
71 (org-diary-default-entry): New function. 175 (org-diary-default-entry): New function.
72 (org-get-entries-from-diary): Better parsing of diary entries 176 (org-get-entries-from-diary): Better parsing of diary entries.
73 (org-agenda-check-no-diary): New function. 177 (org-agenda-check-no-diary): New function.
74 ("diary-lib"): Advice to function `add-to-diary-list', to allow 178 ("diary-lib"): Advice to function `add-to-diary-list', to allow
75 linking to diary entries. 179 linking to diary entries.
76 (org-agenda-execute-calendar-command): New function 180 (org-agenda-execute-calendar-command): New function.
77 (org-agenda): Improved visible section in window. And 181 (org-agenda): Improve visible section in window.
78 use `org-fit-agenda-window'. 182 Use `org-fit-agenda-window'.
79 (org-fit-agenda-window): New option. 183 (org-fit-agenda-window): New option.
80 (org-move-subtree-down): Better handling of empty lines 184 (org-move-subtree-down): Better handling of empty lines
81 at end of subtree. 185 at end of subtree.
@@ -84,12 +188,10 @@
84 (org-fontify-done-headline): New option. 188 (org-fontify-done-headline): New option.
85 (org-headline-done-face): New face. 189 (org-headline-done-face): New face.
86 (org-set-font-lock-defaults): Use `org-headline-done-face'. 190 (org-set-font-lock-defaults): Use `org-headline-done-face'.
87 (org-table-copy-down): renamed from 191 (org-table-copy-down): Rename from `org-table-copy-from-above'.
88 `org-table-copy-from-above'. When current field is non-empty, it 192 When current field is non-empty, it is copied to next row.
89 is copied to next row. 193 (org-table-copy-from-above): Fix bug which made it
90 (org-table-copy-from-above): Fixed bug which made it 194 impossible to copy fields containing only a single non-white character.
91 impossible to copy fields containing only a single non-white
92 character.
93 195
942005-03-30 Kim F. Storm <storm@cua.dk> 1962005-03-30 Kim F. Storm <storm@cua.dk>
95 197
diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el
index 2d2f66b1ebf..4f45419c136 100644
--- a/lisp/calc/calc-embed.el
+++ b/lisp/calc/calc-embed.el
@@ -1,6 +1,6 @@
1;;; calc-embed.el --- embed Calc in a buffer 1;;; calc-embed.el --- embed Calc in a buffer
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
@@ -48,48 +48,18 @@
48(defvar calc-embedded-some-active nil) 48(defvar calc-embedded-some-active nil)
49(make-variable-buffer-local 'calc-embedded-some-active) 49(make-variable-buffer-local 'calc-embedded-some-active)
50 50
51(defvar calc-embedded-open-formula "\\`\\|^\n\\|\\$\\$?\\|\\\\\\[\\|^\\\\begin[^{].*\n\\|^\\\\begin{.*[^x]}.*\n\\|^@.*\n\\|^\\.EQ.*\n\\|\\\\(\\|^%\n\\|^\\.\\\\\"\n" 51;; The following variables are customizable and defined in calc.el.
52 "*A regular expression for the opening delimiter of a formula used by 52(defvar calc-embedded-announce-formula)
53calc-embedded.") 53(defvar calc-embedded-open-formula)
54 54(defvar calc-embedded-close-formula)
55(defvar calc-embedded-close-formula "\\'\\|\n$\\|\\$\\$?\\|\\\\]\\|^\\\\end[^{].*\n\\|^\\\\end{.*[^x]}.*\n\\|^@.*\n\\|^\\.EN.*\n\\|\\\\)\\|\n%\n\\|^\\.\\\\\"\n" 55(defvar calc-embedded-open-word)
56 "*A regular expression for the closing delimiter of a formula used by 56(defvar calc-embedded-close-word)
57calc-embedded.") 57(defvar calc-embedded-open-plain)
58 58(defvar calc-embedded-close-plain)
59(defvar calc-embedded-open-word "^\\|[^-+0-9.eE]" 59(defvar calc-embedded-open-new-formula)
60 "*A regular expression for the opening delimiter of a formula used by 60(defvar calc-embedded-close-new-formula)
61calc-embedded-word.") 61(defvar calc-embedded-open-mode)
62 62(defvar calc-embedded-close-mode)
63(defvar calc-embedded-close-word "$\\|[^-+0-9.eE]"
64 "*A regular expression for the closing delimiter of a formula used by
65calc-embedded-word.")
66
67(defvar calc-embedded-open-plain "%%% "
68 "*A string which is the opening delimiter for a \"plain\" formula.
69If calc-show-plain mode is enabled, this is inserted at the front of
70each formula.")
71
72(defvar calc-embedded-close-plain " %%%\n"
73 "*A string which is the closing delimiter for a \"plain\" formula.
74See calc-embedded-open-plain.")
75
76(defvar calc-embedded-open-new-formula "\n\n"
77 "*A string which is inserted at front of formula by calc-embedded-new-formula.")
78
79(defvar calc-embedded-close-new-formula "\n\n"
80 "*A string which is inserted at end of formula by calc-embedded-new-formula.")
81
82(defvar calc-embedded-announce-formula "%Embed\n\\(% .*\n\\)*"
83 "*A regular expression which is sure to be followed by a calc-embedded formula." )
84
85(defvar calc-embedded-open-mode "% "
86 "*A string which should precede calc-embedded mode annotations.
87This is not required to be present for user-written mode annotations.")
88
89(defvar calc-embedded-close-mode "\n"
90 "*A string which should follow calc-embedded mode annotations.
91This is not required to be present for user-written mode annotations.")
92
93 63
94(defconst calc-embedded-mode-vars '(("precision" . calc-internal-prec) 64(defconst calc-embedded-mode-vars '(("precision" . calc-internal-prec)
95 ("word-size" . calc-word-size) 65 ("word-size" . calc-word-size)
diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el
index 662de5db867..6a58a6215fa 100644
--- a/lisp/calc/calc-graph.el
+++ b/lisp/calc/calc-graph.el
@@ -1,6 +1,6 @@
1;;; calc-graph.el --- graph output functions for Calc 1;;; calc-graph.el --- graph output functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
@@ -33,14 +33,10 @@
33 33
34;;; Graphics 34;;; Graphics
35 35
36(defvar calc-gnuplot-name "gnuplot" 36;; The following three variables are customizable and defined in calc.el.
37 "*Name of GNUPLOT program, for calc-graph features.") 37(defvar calc-gnuplot-name)
38 38(defvar calc-gnuplot-plot-command)
39(defvar calc-gnuplot-plot-command nil 39(defvar calc-gnuplot-print-command)
40 "*Name of command for displaying GNUPLOT output; %s = file name to print.")
41
42(defvar calc-gnuplot-print-command "lp %s"
43 "*Name of command for printing GNUPLOT output; %s = file name to print.")
44 40
45(defvar calc-gnuplot-tempfile "calc") 41(defvar calc-gnuplot-tempfile "calc")
46 42
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index 639b6f31a68..3d78599ecc1 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -206,9 +206,121 @@
206 206
207(require 'calc-macs) 207(require 'calc-macs)
208 208
209(defgroup calc nil
210 "GNU Calc"
211 :prefix "calc-"
212 :tag "Calc")
213
209;;;###autoload 214;;;###autoload
210(defvar calc-settings-file (convert-standard-filename "~/.calc.el") 215(defcustom calc-settings-file
211 "*File in which to record permanent settings.") 216 (convert-standard-filename "~/.calc.el")
217 "*File in which to record permanent settings."
218 :group 'calc
219 :type '(file))
220
221(defcustom calc-language-alist
222 '((latex-mode . latex)
223 (tex-mode . tex)
224 (plain-tex-mode . tex)
225 (context-mode . tex)
226 (nroff-mode . eqn)
227 (pascal-mode . pascal)
228 (c-mode . c)
229 (c++-mode . c)
230 (fortran-mode . fortran)
231 (f90-mode . fortran))
232 "*Alist of major modes with appropriate Calc languages."
233 :group 'calc
234 :type '(alist :key-type symbol :value-type symbol))
235
236(defcustom calc-embedded-announce-formula
237 "%Embed\n\\(% .*\n\\)*"
238 "*A regular expression which is sure to be followed by a calc-embedded formula."
239 :group 'calc
240 :type '(regexp))
241
242(defcustom calc-embedded-open-formula
243 "\\`\\|^\n\\|\\$\\$?\\|\\\\\\[\\|^\\\\begin[^{].*\n\\|^\\\\begin{.*[^x]}.*\n\\|^@.*\n\\|^\\.EQ.*\n\\|\\\\(\\|^%\n\\|^\\.\\\\\"\n"
244 "*A regular expression for the opening delimiter of a formula used by calc-embedded."
245 :group 'calc
246 :type '(regexp))
247
248(defcustom calc-embedded-close-formula
249 "\\'\\|\n$\\|\\$\\$?\\|\\\\]\\|^\\\\end[^{].*\n\\|^\\\\end{.*[^x]}.*\n\\|^@.*\n\\|^\\.EN.*\n\\|\\\\)\\|\n%\n\\|^\\.\\\\\"\n"
250 "*A regular expression for the closing delimiter of a formula used by calc-embedded."
251 :group 'calc
252 :type '(regexp))
253
254(defcustom calc-embedded-open-word
255 "^\\|[^-+0-9.eE]"
256 "*A regular expression for the opening delimiter of a formula used by calc-embedded-word."
257 :group 'calc
258 :type '(regexp))
259
260(defcustom calc-embedded-close-word
261 "$\\|[^-+0-9.eE]"
262 "*A regular expression for the closing delimiter of a formula used by calc-embedded-word."
263 :group 'calc
264 :type '(regexp))
265
266(defcustom calc-embedded-open-plain
267 "%%% "
268 "*A string which is the opening delimiter for a \"plain\" formula.
269If calc-show-plain mode is enabled, this is inserted at the front of
270each formula."
271 :group 'calc
272 :type '(string))
273
274(defcustom calc-embedded-close-plain
275 " %%%\n"
276 "*A string which is the closing delimiter for a \"plain\" formula.
277See calc-embedded-open-plain."
278 :group 'calc
279 :type '(string))
280
281(defcustom calc-embedded-open-new-formula
282 "\n\n"
283 "*A string which is inserted at front of formula by calc-embedded-new-formula."
284 :group 'calc
285 :type '(string))
286
287(defcustom calc-embedded-close-new-formula
288 "\n\n"
289 "*A string which is inserted at end of formula by calc-embedded-new-formula."
290 :group 'calc
291 :type '(string))
292
293(defcustom calc-embedded-open-mode
294 "% "
295 "*A string which should precede calc-embedded mode annotations.
296This is not required to be present for user-written mode annotations."
297 :group 'calc
298 :type '(string))
299
300(defcustom calc-embedded-close-mode
301 "\n"
302 "*A string which should follow calc-embedded mode annotations.
303This is not required to be present for user-written mode annotations."
304 :group 'calc
305 :type '(string))
306
307(defcustom calc-gnuplot-name
308 "gnuplot"
309 "*Name of GNUPLOT program, for calc-graph features."
310 :group 'calc
311 :type '(string))
312
313(defcustom calc-gnuplot-plot-command
314 nil
315 "*Name of command for displaying GNUPLOT output; %s = file name to print."
316 :group 'calc
317 :type '(choice (string) (sexp)))
318
319(defcustom calc-gnuplot-print-command
320 "lp %s"
321 "*Name of command for printing GNUPLOT output; %s = file name to print."
322 :group 'calc
323 :type '(choice (string) (sexp)))
212 324
213(defvar calc-bug-address "belanger@truman.edu" 325(defvar calc-bug-address "belanger@truman.edu"
214 "Address of the author of Calc, for use by `report-calc-bug'.") 326 "Address of the author of Calc, for use by `report-calc-bug'.")
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 0a75a43827e..68d1287d98c 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -72,7 +72,7 @@ or macro definition or a defcustom)."
72 (let ((car (car-safe form)) expand) 72 (let ((car (car-safe form)) expand)
73 (cond 73 (cond
74 ;; For complex cases, try again on the macro-expansion. 74 ;; For complex cases, try again on the macro-expansion.
75 ((and (memq car '(easy-mmode-define-global-mode 75 ((and (memq car '(easy-mmode-define-global-mode define-global-minor-mode
76 easy-mmode-define-minor-mode define-minor-mode)) 76 easy-mmode-define-minor-mode define-minor-mode))
77 (setq expand (let ((load-file-name file)) (macroexpand form))) 77 (setq expand (let ((load-file-name file)) (macroexpand form)))
78 (eq (car expand) 'progn) 78 (eq (car expand) 'progn)
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index b6b91710ed4..a96b1741139 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -1,6 +1,7 @@
1;;; easy-mmode.el --- easy definition for major and minor modes 1;;; easy-mmode.el --- easy definition for major and minor modes
2 2
3;; Copyright (C) 1997,2000,01,02,03,2004 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 2000, 2001, 2002, 2003, 2004, 2005
4;; Free Software Foundation, Inc.
4 5
5;; Author: Georges Brun-Cottan <Georges.Brun-Cottan@inria.fr> 6;; Author: Georges Brun-Cottan <Georges.Brun-Cottan@inria.fr>
6;; Maintainer: Stefan Monnier <monnier@gnu.org> 7;; Maintainer: Stefan Monnier <monnier@gnu.org>
@@ -152,8 +153,8 @@ For example, you could write
152 (unless group 153 (unless group
153 ;; We might as well provide a best-guess default group. 154 ;; We might as well provide a best-guess default group.
154 (setq group 155 (setq group
155 `(:group ',(or (custom-current-group) 156 `(:group (or (custom-current-group)
156 (intern (replace-regexp-in-string 157 ',(intern (replace-regexp-in-string
157 "-mode\\'" "" mode-name)))))) 158 "-mode\\'" "" mode-name))))))
158 159
159 `(progn 160 `(progn
@@ -253,8 +254,9 @@ With zero or negative ARG turn mode off.
253;;; 254;;;
254 255
255;;;###autoload 256;;;###autoload
256(defmacro easy-mmode-define-global-mode (global-mode mode turn-on 257(defalias 'easy-mmode-define-global-mode 'define-global-minor-mode)
257 &rest keys) 258;;;###autoload
259(defmacro define-global-minor-mode (global-mode mode turn-on &rest keys)
258 "Make GLOBAL-MODE out of the buffer-local minor MODE. 260 "Make GLOBAL-MODE out of the buffer-local minor MODE.
259TURN-ON is a function that will be called with no args in every buffer 261TURN-ON is a function that will be called with no args in every buffer
260 and that should try to turn MODE on if applicable for that buffer. 262 and that should try to turn MODE on if applicable for that buffer.
@@ -278,8 +280,8 @@ KEYS is a list of CL-style keyword arguments:
278 (unless group 280 (unless group
279 ;; We might as well provide a best-guess default group. 281 ;; We might as well provide a best-guess default group.
280 (setq group 282 (setq group
281 `(:group ',(or (custom-current-group) 283 `(:group (or (custom-current-group)
282 (intern (replace-regexp-in-string 284 ',(intern (replace-regexp-in-string
283 "-mode\\'" "" (symbol-name mode))))))) 285 "-mode\\'" "" (symbol-name mode)))))))
284 286
285 `(progn 287 `(progn
diff --git a/lisp/files.el b/lisp/files.el
index 15d6f794e16..eca86c52a79 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -291,7 +291,7 @@ from `mode-require-final-newline'."
291 :group 'editing-basics) 291 :group 'editing-basics)
292 292
293(defcustom mode-require-final-newline t 293(defcustom mode-require-final-newline t
294 "*Whether to add a newline at the end of the file, in certain major modes. 294 "*Whether to add a newline at end of file, in certain major modes.
295Those modes set `require-final-newline' to this value when you enable them. 295Those modes set `require-final-newline' to this value when you enable them.
296They do so because they are used for files that are supposed 296They do so because they are used for files that are supposed
297to end in newlines, and the question is how to arrange that. 297to end in newlines, and the question is how to arrange that.
@@ -299,10 +299,16 @@ to end in newlines, and the question is how to arrange that.
299A value of t means do this only when the file is about to be saved. 299A value of t means do this only when the file is about to be saved.
300A value of `visit' means do this right after the file is visited. 300A value of `visit' means do this right after the file is visited.
301A value of `visit-save' means do it at both of those times. 301A value of `visit-save' means do it at both of those times.
302Any other non-nil value means ask user whether to add a newline, when saving." 302Any other non-nil value means ask user whether to add a newline, when saving.
303nil means don't add newlines.
304
305You will have to be careful if you set this to nil: you will have
306to remember to manually add a final newline whenever you finish a
307file that really needs one."
303 :type '(choice (const :tag "When visiting" visit) 308 :type '(choice (const :tag "When visiting" visit)
304 (const :tag "When saving" t) 309 (const :tag "When saving" t)
305 (const :tag "When visiting or saving" visit-save) 310 (const :tag "When visiting or saving" visit-save)
311 (const :tag "Never" nil)
306 (other :tag "Ask" ask)) 312 (other :tag "Ask" ask))
307 :group 'editing-basics 313 :group 'editing-basics
308 :version "22.1") 314 :version "22.1")
diff --git a/lisp/generic.el b/lisp/generic.el
index 014419edf34..78d329b358f 100644
--- a/lisp/generic.el
+++ b/lisp/generic.el
@@ -217,58 +217,72 @@ FUNCTION-LIST is a list of functions to call to do some
217additional setup. 217additional setup.
218 218
219See the file generic-x.el for some examples of `define-generic-mode'." 219See the file generic-x.el for some examples of `define-generic-mode'."
220 (let* ((name-unquoted (if (eq (car-safe mode) 'quote) ; Backward compatibility. 220 (declare (debug (sexp def-form def-form def-form form def-form
221 (eval mode) 221 &optional stringp))
222 mode)) 222 (indent 1))
223 (name-string (symbol-name name-unquoted)) 223
224 ;; Backward compatibility.
225 (when (eq (car-safe mode) 'quote)
226 (setq mode (eval mode)))
227 (let* ((mode-name (symbol-name mode))
224 (pretty-name (capitalize (replace-regexp-in-string 228 (pretty-name (capitalize (replace-regexp-in-string
225 "-mode\\'" "" name-string)))) 229 "-mode\\'" "" mode-name)))
230 (mode-hook (intern (concat mode-name "-hook"))))
226 231
227 `(progn 232 `(progn
228 ;; Add a new entry. 233 ;; Add a new entry.
229 (add-to-list 'generic-mode-list ,name-string) 234 (add-to-list 'generic-mode-list ,mode-name)
230 235
231 ;; Add it to auto-mode-alist 236 ;; Add it to auto-mode-alist
232 (dolist (re ,auto-mode-list) 237 (dolist (re ,auto-mode-list)
233 (add-to-list 'auto-mode-alist (cons re ',name-unquoted))) 238 (add-to-list 'auto-mode-alist (cons re ',mode)))
234 239
235 (defun ,name-unquoted () 240 (defcustom ,mode-hook nil
241 ,(concat "Hook run when entering " pretty-name " mode.")
242 :type 'hook
243 :group (or (custom-current-group)
244 ',(intern (replace-regexp-in-string
245 "-mode\\'" "" mode-name))))
246
247 (defun ,mode ()
236 ,(or docstring 248 ,(or docstring
237 (concat pretty-name " mode.\n" 249 (concat pretty-name " mode.\n"
238 "This a generic mode defined with `define-generic-mode'.")) 250 "This a generic mode defined with `define-generic-mode'."))
239 (interactive) 251 (interactive)
240 (generic-mode-internal ',name-unquoted ,comment-list ,keyword-list 252 (generic-mode-internal ',mode ,comment-list ,keyword-list
241 ,font-lock-list ,function-list))))) 253 ,font-lock-list ,function-list)))))
242 254
243;;;###autoload 255;;;###autoload
244(defun generic-mode-internal (mode comments keywords font-lock-list funs) 256(defun generic-mode-internal (mode comment-list keyword-list
257 font-lock-list function-list)
245 "Go into the generic mode MODE." 258 "Go into the generic mode MODE."
246 (let* ((modename (symbol-name mode)) 259 (let* ((mode-name (symbol-name mode))
247 (generic-mode-hooks (intern (concat modename "-hook")))
248 (pretty-name (capitalize (replace-regexp-in-string 260 (pretty-name (capitalize (replace-regexp-in-string
249 "-mode\\'" "" modename)))) 261 "-mode\\'" "" mode-name)))
262 (mode-hook (intern (concat mode-name "-hook"))))
250 263
251 (kill-all-local-variables) 264 (kill-all-local-variables)
252 265
253 (setq major-mode mode 266 (setq major-mode mode
254 mode-name pretty-name) 267 mode-name pretty-name)
255 268
256 (generic-mode-set-comments comments) 269 (generic-mode-set-comments comment-list)
257 270
258 ;; Font-lock functionality. 271 ;; Font-lock functionality.
259 ;; Font-lock-defaults is always set even if there are no keywords 272 ;; Font-lock-defaults is always set even if there are no keywords
260 ;; or font-lock expressions, so comments can be highlighted. 273 ;; or font-lock expressions, so comments can be highlighted.
261 (setq generic-font-lock-keywords 274 (setq generic-font-lock-keywords
262 (append 275 (append
263 (when keywords 276 (when keyword-list
264 (list (generic-make-keywords-list keywords font-lock-keyword-face))) 277 (list (generic-make-keywords-list keyword-list
278 font-lock-keyword-face)))
265 font-lock-list)) 279 font-lock-list))
266 (setq font-lock-defaults '(generic-font-lock-keywords nil)) 280 (setq font-lock-defaults '(generic-font-lock-keywords nil))
267 281
268 ;; Call a list of functions 282 ;; Call a list of functions
269 (mapcar 'funcall funs) 283 (mapcar 'funcall function-list)
270 284
271 (run-hooks generic-mode-hooks))) 285 (run-mode-hooks mode-hook)))
272 286
273;;;###autoload 287;;;###autoload
274(defun generic-mode (mode) 288(defun generic-mode (mode)
@@ -392,7 +406,7 @@ This hook will be installed if the variable
392 406
393(defun generic-mode-ini-file-find-file-hook () 407(defun generic-mode-ini-file-find-file-hook ()
394 "Hook function to enter Default-Generic mode automatically for INI files. 408 "Hook function to enter Default-Generic mode automatically for INI files.
395Done if the first few lines of a file in Fundamental mode look like an 409Done if the first few lines of a file in Fundamental mode look like an
396INI file. This hook is NOT installed by default." 410INI file. This hook is NOT installed by default."
397 (and (eq major-mode 'fundamental-mode) 411 (and (eq major-mode 'fundamental-mode)
398 (save-excursion 412 (save-excursion
diff --git a/lisp/ido.el b/lisp/ido.el
index 86a88d0d491..ddeecbb9b69 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -1935,19 +1935,21 @@ If INITIAL is non-nil, it specifies the initial input string."
1935 ;; Internal function for ido-find-file and friends 1935 ;; Internal function for ido-find-file and friends
1936 (unless item 1936 (unless item
1937 (setq item 'file)) 1937 (setq item 'file))
1938 (let* ((ido-current-directory (ido-expand-directory default)) 1938 (let ((ido-current-directory (ido-expand-directory default))
1939 (ido-directory-nonreadable (ido-nonreadable-directory-p ido-current-directory)) 1939 (ido-context-switch-command switch-cmd)
1940 (ido-directory-too-big (and (not ido-directory-nonreadable) 1940 ido-directory-nonreadable ido-directory-too-big
1941 (ido-directory-too-big-p ido-current-directory))) 1941 filename)
1942 (ido-context-switch-command switch-cmd) 1942
1943 filename) 1943 (if (or (not ido-mode) (ido-is-slow-ftp-host))
1944 1944 (setq filename t
1945 (cond 1945 ido-exit 'fallback)
1946 ((or (not ido-mode) (ido-is-slow-ftp-host)) 1946 (setq ido-directory-nonreadable
1947 (setq filename t 1947 (ido-nonreadable-directory-p ido-current-directory)
1948 ido-exit 'fallback)) 1948 ido-directory-too-big
1949 1949 (and (not ido-directory-nonreadable)
1950 ((and (eq item 'file) 1950 (ido-directory-too-big-p ido-current-directory))))
1951
1952 (when (and (eq item 'file)
1951 (or ido-use-url-at-point ido-use-filename-at-point)) 1953 (or ido-use-url-at-point ido-use-filename-at-point))
1952 (let (fn d) 1954 (let (fn d)
1953 (require 'ffap) 1955 (require 'ffap)
@@ -1966,7 +1968,7 @@ If INITIAL is non-nil, it specifies the initial input string."
1966 (setq d (file-name-directory fn)) 1968 (setq d (file-name-directory fn))
1967 (file-directory-p d)) 1969 (file-directory-p d))
1968 (setq ido-current-directory d) 1970 (setq ido-current-directory d)
1969 (setq initial (file-name-nondirectory fn))))))) 1971 (setq initial (file-name-nondirectory fn))))))
1970 1972
1971 (let (ido-saved-vc-hb 1973 (let (ido-saved-vc-hb
1972 (vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends)) 1974 (vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends))
diff --git a/lisp/language/thai-word.el b/lisp/language/thai-word.el
index 9c3ba81859e..2548a44ea80 100644
--- a/lisp/language/thai-word.el
+++ b/lisp/language/thai-word.el
@@ -10780,7 +10780,7 @@ the current word list."
10780 ;; character by character. 10780 ;; character by character.
10781 (while this 10781 (while this
10782 (setq pos (1+ pos) 10782 (setq pos (1+ pos)
10783 char (char-after pos) 10783 char (or (char-after pos) 0)
10784 category-set (char-category-set char)) 10784 category-set (char-category-set char))
10785 ;; If the current sequence is recorded in `thai-word-table' 10785 ;; If the current sequence is recorded in `thai-word-table'
10786 ;; (i.e. (car THIS) is 1) and the following Thai character is 10786 ;; (i.e. (car THIS) is 1) and the following Thai character is
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index a150259efea..7106bf80bd5 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -1622,13 +1622,15 @@ a remote mailbox, PASSWORD is the password if it should be
1622supplied as a separate argument to `movemail' or nil otherwise, GOT-PASSWORD 1622supplied as a separate argument to `movemail' or nil otherwise, GOT-PASSWORD
1623is non-nil if the user has supplied the password interactively. 1623is non-nil if the user has supplied the password interactively.
1624" 1624"
1625 (if (string-match "^\\([^:]+\\)://\\(\\([^:@]+\\)\\(:\\([^@]+\\)\\)?@\\)?.*" file) 1625 (cond
1626 ((string-match "^\\([^:]+\\)://\\(\\([^:@]+\\)\\(:\\([^@]+\\)\\)?@\\)?.*" file)
1626 (let (got-password supplied-password 1627 (let (got-password supplied-password
1627 (proto (match-string 1 file)) 1628 (proto (match-string 1 file))
1628 (user (match-string 3 file)) 1629 (user (match-string 3 file))
1629 (pass (match-string 5 file)) 1630 (pass (match-string 5 file))
1630 (host (substring file (or (match-end 2) 1631 (host (substring file (or (match-end 2)
1631 (+ 3 (match-end 1)))))) 1632 (+ 3 (match-end 1))))))
1633
1632 (if (not pass) 1634 (if (not pass)
1633 (when rmail-remote-password-required 1635 (when rmail-remote-password-required
1634 (setq got-password (not (rmail-have-password))) 1636 (setq got-password (not (rmail-have-password)))
@@ -1645,8 +1647,22 @@ is non-nil if the user has supplied the password interactively.
1645 (list file 1647 (list file
1646 (or (string-equal proto "pop") (string-equal proto "imap")) 1648 (or (string-equal proto "pop") (string-equal proto "imap"))
1647 supplied-password 1649 supplied-password
1648 got-password))) 1650 got-password))))
1649 (list file nil nil nil))) 1651
1652 ((string-match "^po:\\([^:]+\\)\\(:\\(.*\\)\\)?" file)
1653 (let (got-password supplied-password
1654 (proto "pop")
1655 (user (match-string 1 file))
1656 (host (match-string 3 file)))
1657
1658 (when rmail-remote-password-required
1659 (setq got-password (not (rmail-have-password)))
1660 (setq supplied-password (rmail-get-remote-password nil)))
1661
1662 (list file "pop" supplied-password got-password)))
1663
1664 (t
1665 (list file nil nil nil))))
1650 1666
1651(defun rmail-insert-inbox-text (files renamep) 1667(defun rmail-insert-inbox-text (files renamep)
1652 ;; Detect a locked file now, so that we avoid moving mail 1668 ;; Detect a locked file now, so that we avoid moving mail
@@ -1686,15 +1702,7 @@ is non-nil if the user has supplied the password interactively.
1686 (expand-file-name buffer-file-name)))) 1702 (expand-file-name buffer-file-name))))
1687 ;; Always use movemail to rename the file, 1703 ;; Always use movemail to rename the file,
1688 ;; since there can be mailboxes in various directories. 1704 ;; since there can be mailboxes in various directories.
1689 (setq movemail t) 1705 (if (not popmail)
1690;;; ;; If getting from mail spool directory,
1691;;; ;; use movemail to move rather than just renaming,
1692;;; ;; so as to interlock with the mailer.
1693;;; (setq movemail (string= file
1694;;; (file-truename
1695;;; (concat rmail-spool-directory
1696;;; (file-name-nondirectory file)))))
1697 (if (and movemail (not popmail))
1698 (progn 1706 (progn
1699 ;; On some systems, /usr/spool/mail/foo is a directory 1707 ;; On some systems, /usr/spool/mail/foo is a directory
1700 ;; and the actual inbox is /usr/spool/mail/foo/foo. 1708 ;; and the actual inbox is /usr/spool/mail/foo/foo.
@@ -1716,23 +1724,6 @@ is non-nil if the user has supplied the password interactively.
1716 ((or (file-exists-p tofile) (and (not popmail) 1724 ((or (file-exists-p tofile) (and (not popmail)
1717 (not (file-exists-p file)))) 1725 (not (file-exists-p file))))
1718 nil) 1726 nil)
1719 ((and (not movemail) (not popmail))
1720 ;; Try copying. If that fails (perhaps no space) and
1721 ;; we're allowed to blow away the inbox, rename instead.
1722 (if rmail-preserve-inbox
1723 (copy-file file tofile nil)
1724 (condition-case nil
1725 (copy-file file tofile nil)
1726 (error
1727 ;; Third arg is t so we can replace existing file TOFILE.
1728 (rename-file file tofile t))))
1729 ;; Make the real inbox file empty.
1730 ;; Leaving it deleted could cause lossage
1731 ;; because mailers often won't create the file.
1732 (if (not rmail-preserve-inbox)
1733 (condition-case ()
1734 (write-region (point) (point) file)
1735 (file-error nil))))
1736 (t 1727 (t
1737 (with-temp-buffer 1728 (with-temp-buffer
1738 (let ((errors (current-buffer))) 1729 (let ((errors (current-buffer)))
diff --git a/lisp/mouse.el b/lisp/mouse.el
index fdc99205780..a409efadeca 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -49,7 +49,7 @@
49 :version "22.1" 49 :version "22.1"
50 :group 'mouse) 50 :group 'mouse)
51 51
52(defcustom mouse-1-click-follows-link 350 52(defcustom mouse-1-click-follows-link 450
53 "Non-nil means that clicking Mouse-1 on a link follows the link. 53 "Non-nil means that clicking Mouse-1 on a link follows the link.
54 54
55With the default setting, an ordinary Mouse-1 click on a link 55With the default setting, an ordinary Mouse-1 click on a link
@@ -837,6 +837,29 @@ at the same position."
837 (funcall action pos)) 837 (funcall action pos))
838 (t action))))))) 838 (t action)))))))
839 839
840(defun mouse-fixup-help-message (msg)
841 "Fix help message MSG for `mouse-1-click-follows-link'."
842 (let (mp pos)
843 (if (and mouse-1-click-follows-link
844 (stringp msg)
845 (save-match-data
846 (string-match "^mouse-2" msg))
847 (setq mp (mouse-pixel-position))
848 (consp (setq pos (cdr mp)))
849 (car pos) (>= (car pos) 0)
850 (cdr pos) (>= (cdr pos) 0)
851 (setq pos (posn-at-x-y (car pos) (cdr pos) (car mp)))
852 (windowp (posn-window pos)))
853 (with-current-buffer (window-buffer (posn-window pos))
854 (if (mouse-on-link-p pos)
855 (setq msg (concat
856 (cond
857 ((eq mouse-1-click-follows-link 'double) "double-")
858 ((and (integerp mouse-1-click-follows-link)
859 (< mouse-1-click-follows-link 0)) "Long ")
860 (t ""))
861 "mouse-1" (substring msg 7)))))))
862 msg)
840 863
841(defun mouse-drag-region-1 (start-event) 864(defun mouse-drag-region-1 (start-event)
842 (mouse-minibuffer-check start-event) 865 (mouse-minibuffer-check start-event)
@@ -886,6 +909,7 @@ at the same position."
886 (track-mouse 909 (track-mouse
887 (while (progn 910 (while (progn
888 (setq event (read-event)) 911 (setq event (read-event))
912 (setq mve (cons event (and (boundp 'mve) mve)))
889 (or (mouse-movement-p event) 913 (or (mouse-movement-p event)
890 (memq (car-safe event) '(switch-frame select-window)))) 914 (memq (car-safe event) '(switch-frame select-window))))
891 (if (memq (car-safe event) '(switch-frame select-window)) 915 (if (memq (car-safe event) '(switch-frame select-window))
@@ -997,7 +1021,7 @@ at the same position."
997 (= (window-start start-window) 1021 (= (window-start start-window)
998 start-window-start))) 1022 start-window-start)))
999 (if (and on-link 1023 (if (and on-link
1000 (not end-point) 1024 (or (not end-point) (= end-point start-point))
1001 (consp event) 1025 (consp event)
1002 (or remap-double-click 1026 (or remap-double-click
1003 (and 1027 (and
diff --git a/lisp/pcvs.el b/lisp/pcvs.el
index b00de07e50f..7330960b93e 100644
--- a/lisp/pcvs.el
+++ b/lisp/pcvs.el
@@ -358,7 +358,7 @@ from the current buffer."
358 (dir default-directory) 358 (dir default-directory)
359 (buf (cond 359 (buf (cond
360 (name (cvs-get-buffer-create name)) 360 (name (cvs-get-buffer-create name))
361 ((and (bufferp cvs-temp-buffer) (buffer-name cvs-temp-buffer)) 361 ((and (bufferp cvs-temp-buffer) (buffer-live-p cvs-temp-buffer))
362 cvs-temp-buffer) 362 cvs-temp-buffer)
363 (t 363 (t
364 (set (make-local-variable 'cvs-temp-buffer) 364 (set (make-local-variable 'cvs-temp-buffer)
@@ -528,39 +528,49 @@ If non-nil, NEW means to create a new buffer no matter what."
528 (files (nth 1 dir+files+rest)) 528 (files (nth 1 dir+files+rest))
529 (rest (nth 2 dir+files+rest))) 529 (rest (nth 2 dir+files+rest)))
530 530
531 ;; setup the (current) process buffer
532 (set (make-local-variable 'cvs-postprocess)
533 (if (null rest)
534 ;; this is the last invocation
535 postprocess
536 ;; else, we have to register ourselves to be rerun on the rest
537 `(cvs-run-process ',args ',rest ',postprocess ',single-dir)))
538 (add-hook 'kill-buffer-hook 531 (add-hook 'kill-buffer-hook
539 (lambda () 532 (lambda ()
540 (let ((proc (get-buffer-process (current-buffer)))) 533 (let ((proc (get-buffer-process (current-buffer))))
541 (when (processp proc) 534 (when (processp proc)
542 (set-process-filter proc nil) 535 (set-process-filter proc nil)
543 (set-process-sentinel proc nil) 536 ;; Abort postprocessing but leave the sentinel so it
544 (delete-process proc)))) 537 ;; will update the list of running procs.
538 (process-put proc 'cvs-postprocess nil)
539 (interrupt-process proc))))
545 nil t) 540 nil t)
546 541
547 ;; create the new process and setup the procbuffer correspondingly 542 ;; create the new process and setup the procbuffer correspondingly
548 (let* ((args (append (cvs-flags-query 'cvs-cvs-flags nil 'noquery) 543 (let* ((msg (cvs-header-msg args fis))
544 (args (append (cvs-flags-query 'cvs-cvs-flags nil 'noquery)
549 (if cvs-cvsroot (list "-d" cvs-cvsroot)) 545 (if cvs-cvsroot (list "-d" cvs-cvsroot))
550 args 546 args
551 files)) 547 files))
552 ;; If process-connection-type is nil and the repository 548 ;; If process-connection-type is nil and the repository
553 ;; is accessed via SSH, a bad interaction between libc, 549 ;; is accessed via SSH, a bad interaction between libc,
554 ;; CVS and SSH can lead to garbled output. 550 ;; CVS and SSH can lead to garbled output.
555 ;; It might be a glibc-specific problem (but it also happens 551 ;; It might be a glibc-specific problem (but it can also happens
556 ;; under Mac OS X, it seems). 552 ;; under Mac OS X, it seems).
557 ;; Until the problem is cleared, we'll use a pty rather than 553 ;; It seems that using a pty can help circumvent the problem,
558 ;; a pipe. 554 ;; but at the cost of screwing up when the process thinks it
559 ;; (process-connection-type nil) ; Use a pipe, not a pty. 555 ;; can ask for user input (such as password or host-key
556 ;; confirmation). A better workaround is to set CVS_RSH to
557 ;; an appropriate script, or to use a later version of CVS.
558 (process-connection-type nil) ; Use a pipe, not a pty.
560 (process 559 (process
561 ;; the process will be run in the selected dir 560 ;; the process will be run in the selected dir
562 (let ((default-directory (cvs-expand-dir-name dir))) 561 (let ((default-directory (cvs-expand-dir-name dir)))
563 (apply 'start-process "cvs" procbuf cvs-program args)))) 562 (apply 'start-process "cvs" procbuf cvs-program args))))
563 ;; setup the process.
564 (process-put process 'cvs-buffer cvs-buffer)
565 (with-current-buffer cvs-buffer (cvs-update-header msg 'add))
566 (process-put process 'cvs-header msg)
567 (process-put
568 process 'cvs-postprocess
569 (if (null rest)
570 ;; this is the last invocation
571 postprocess
572 ;; else, we have to register ourselves to be rerun on the rest
573 `(cvs-run-process ',args ',rest ',postprocess ',single-dir)))
564 (set-process-sentinel process 'cvs-sentinel) 574 (set-process-sentinel process 'cvs-sentinel)
565 (set-process-filter process 'cvs-update-filter) 575 (set-process-filter process 'cvs-update-filter)
566 (set-marker (process-mark process) (point-max)) 576 (set-marker (process-mark process) (point-max))
@@ -636,33 +646,35 @@ If non-nil, NEW means to create a new buffer no matter what."
636This is responsible for parsing the output from the cvs update when 646This is responsible for parsing the output from the cvs update when
637it is finished." 647it is finished."
638 (when (memq (process-status proc) '(signal exit)) 648 (when (memq (process-status proc) '(signal exit))
639 (if (null (buffer-name (process-buffer proc))) 649 (let ((cvs-postproc (process-get proc 'cvs-postprocess))
640 ;;(set-process-buffer proc nil) 650 (cvs-buf (process-get proc 'cvs-buffer)))
641 (error "cvs' process buffer was killed") 651 ;; Since the buffer and mode line will show that the
642 (let* ((obuf (current-buffer)) 652 ;; process is dead, we can delete it now. Otherwise it
643 (procbuffer (process-buffer proc))) 653 ;; will stay around until M-x list-processes.
644 (set-buffer (with-current-buffer procbuffer cvs-buffer)) 654 (process-put proc 'postprocess nil)
645 (setq cvs-mode-line-process (symbol-name (process-status proc))) 655 (delete-process proc)
646 (force-mode-line-update) 656 ;; Don't do anything if the main buffer doesn't exist any more.
647 (set-buffer procbuffer) 657 (when (buffer-live-p cvs-buf)
648 (let ((cvs-postproc cvs-postprocess)) 658 (with-current-buffer cvs-buf
649 ;; Since the buffer and mode line will show that the 659 (cvs-update-header (process-get proc 'cvs-header) nil)
650 ;; process is dead, we can delete it now. Otherwise it 660 (setq cvs-mode-line-process (symbol-name (process-status proc)))
651 ;; will stay around until M-x list-processes. 661 (force-mode-line-update)
652 (delete-process proc) 662 (when cvs-postproc
653 (setq cvs-postprocess nil) 663 (if (null (buffer-live-p (process-buffer proc)))
654 ;; do the postprocessing like parsing and such 664 ;;(set-process-buffer proc nil)
655 (save-excursion (eval cvs-postproc)) 665 (error "cvs' process buffer was killed")
656 ;; check whether something is left 666 (with-current-buffer (process-buffer proc)
657 (unless cvs-postprocess 667 ;; do the postprocessing like parsing and such
658 ;; IIRC, we enable undo again once the process is finished 668 (save-excursion (eval cvs-postproc))
659 ;; for cases where the output was inserted in *vc-diff* or 669 ;; check whether something is left
660 ;; in a file-like buffer. -stef 670 (unless (get-buffer-process (current-buffer))
661 (buffer-enable-undo) 671 ;; IIRC, we enable undo again once the process is finished
662 (with-current-buffer cvs-buffer 672 ;; for cases where the output was inserted in *vc-diff* or
663 (message "CVS process has completed in %s" (buffer-name))))) 673 ;; in a file-like buffer. --Stef
664 ;; This might not even be necessary 674 (buffer-enable-undo)
665 (set-buffer obuf))))) 675 (with-current-buffer cvs-buffer
676 (message "CVS process has completed in %s"
677 (buffer-name))))))))))))
666 678
667(defun cvs-parse-process (dcd &optional subdir old-fis) 679(defun cvs-parse-process (dcd &optional subdir old-fis)
668 "Parse the output of a cvs process. 680 "Parse the output of a cvs process.
@@ -770,7 +782,7 @@ before calling the real function `" (symbol-name fun-1) "'.\n")
770(defun-cvs-mode cvs-mode-kill-process () 782(defun-cvs-mode cvs-mode-kill-process ()
771 "Kill the temporary buffer and associated process." 783 "Kill the temporary buffer and associated process."
772 (interactive) 784 (interactive)
773 (when (and (bufferp cvs-temp-buffer) (buffer-name cvs-temp-buffer)) 785 (when (and (bufferp cvs-temp-buffer) (buffer-live-p cvs-temp-buffer))
774 (let ((proc (get-buffer-process cvs-temp-buffer))) 786 (let ((proc (get-buffer-process cvs-temp-buffer)))
775 (when proc (delete-process proc))))) 787 (when proc (delete-process proc)))))
776 788
@@ -1133,7 +1145,7 @@ Full documentation is in the Texinfo file."
1133 (eq (ewoc-buffer cvs-cookies) buf) 1145 (eq (ewoc-buffer cvs-cookies) buf)
1134 (setq check 'cvs-temp-buffer) 1146 (setq check 'cvs-temp-buffer)
1135 (or (null cvs-temp-buffer) 1147 (or (null cvs-temp-buffer)
1136 (null (buffer-name cvs-temp-buffer)) 1148 (null (buffer-live-p cvs-temp-buffer))
1137 (and (eq (with-current-buffer cvs-temp-buffer cvs-buffer) buf) 1149 (and (eq (with-current-buffer cvs-temp-buffer cvs-buffer) buf)
1138 (equal (with-current-buffer cvs-temp-buffer 1150 (equal (with-current-buffer cvs-temp-buffer
1139 default-directory) 1151 default-directory)
@@ -1822,11 +1834,6 @@ POSTPROC is a list of expressions to be evaluated at the very end (after
1822 ;; absence of `cvs update' output has a specific meaning. 1834 ;; absence of `cvs update' output has a specific meaning.
1823 (or fis (list (cvs-create-fileinfo 'DIRCHANGE "" "." "")))))) 1835 (or fis (list (cvs-create-fileinfo 'DIRCHANGE "" "." ""))))))
1824 (push `(cvs-parse-process ',dont-change-disc nil ',old-fis) postproc))) 1836 (push `(cvs-parse-process ',dont-change-disc nil ',old-fis) postproc)))
1825 (let ((msg (cvs-header-msg args fis)))
1826 (cvs-update-header msg 'add)
1827 (push `(with-current-buffer cvs-buffer
1828 (cvs-update-header ',msg nil))
1829 postproc))
1830 (setq postproc (if (cdr postproc) (cons 'progn postproc) (car postproc))) 1837 (setq postproc (if (cdr postproc) (cons 'progn postproc) (car postproc)))
1831 (with-current-buffer buf 1838 (with-current-buffer buf
1832 (let ((inhibit-read-only t)) (erase-buffer)) 1839 (let ((inhibit-read-only t)) (erase-buffer))
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index d9ffea852d1..c792b59ad87 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -90,7 +90,7 @@
90 (modify-syntax-entry ?\] ")[ " st) 90 (modify-syntax-entry ?\] ")[ " st)
91 (modify-syntax-entry ?{ "(} " st) 91 (modify-syntax-entry ?{ "(} " st)
92 (modify-syntax-entry ?} "){ " st) 92 (modify-syntax-entry ?} "){ " st)
93 (modify-syntax-entry ?\| " 23" st) 93 (modify-syntax-entry ?\| "\" 23b" st)
94 94
95 ;; Other atom delimiters 95 ;; Other atom delimiters
96 (modify-syntax-entry ?\( "() " st) 96 (modify-syntax-entry ?\( "() " st)
@@ -103,7 +103,7 @@
103 ;; Special characters 103 ;; Special characters
104 (modify-syntax-entry ?, "' " st) 104 (modify-syntax-entry ?, "' " st)
105 (modify-syntax-entry ?@ "' " st) 105 (modify-syntax-entry ?@ "' " st)
106 (modify-syntax-entry ?# "' 14" st) 106 (modify-syntax-entry ?# "' 14bn" st)
107 (modify-syntax-entry ?\\ "\\ " st) 107 (modify-syntax-entry ?\\ "\\ " st)
108 st)) 108 st))
109 109
diff --git a/lisp/simple.el b/lisp/simple.el
index a6aa4daf04e..691ed0cf675 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -5238,6 +5238,7 @@ Enabling Visible mode makes all invisible text temporarily visible.
5238Disabling Visible mode turns off that effect. Visible mode 5238Disabling Visible mode turns off that effect. Visible mode
5239works by saving the value of `buffer-invisibility-spec' and setting it to nil." 5239works by saving the value of `buffer-invisibility-spec' and setting it to nil."
5240 :lighter " Vis" 5240 :lighter " Vis"
5241 :group 'editing-basics
5241 (when (local-variable-p 'vis-mode-saved-buffer-invisibility-spec) 5242 (when (local-variable-p 'vis-mode-saved-buffer-invisibility-spec)
5242 (setq buffer-invisibility-spec vis-mode-saved-buffer-invisibility-spec) 5243 (setq buffer-invisibility-spec vis-mode-saved-buffer-invisibility-spec)
5243 (kill-local-variable 'vis-mode-saved-buffer-invisibility-spec)) 5244 (kill-local-variable 'vis-mode-saved-buffer-invisibility-spec))
diff --git a/lisp/tooltip.el b/lisp/tooltip.el
index e6a85439166..59f82c12e31 100644
--- a/lisp/tooltip.el
+++ b/lisp/tooltip.el
@@ -469,27 +469,7 @@ This function must return nil if it doesn't handle EVENT."
469(defun tooltip-show-help-function (msg) 469(defun tooltip-show-help-function (msg)
470 "Function installed as `show-help-function'. 470 "Function installed as `show-help-function'.
471MSG is either a help string to display, or nil to cancel the display." 471MSG is either a help string to display, or nil to cancel the display."
472 (let ((previous-help tooltip-help-message) 472 (let ((previous-help tooltip-help-message))
473 mp pos)
474 (if (and mouse-1-click-follows-link
475 (stringp msg)
476 (save-match-data
477 (string-match "^mouse-2" msg))
478 (setq mp (mouse-pixel-position))
479 (consp (setq pos (cdr mp)))
480 (car pos) (>= (car pos) 0)
481 (cdr pos) (>= (cdr pos) 0)
482 (setq pos (posn-at-x-y (car pos) (cdr pos) (car mp)))
483 (windowp (posn-window pos)))
484 (with-current-buffer (window-buffer (posn-window pos))
485 (if (mouse-on-link-p pos)
486 (setq msg (concat
487 (cond
488 ((eq mouse-1-click-follows-link 'double) "double-")
489 ((and (integerp mouse-1-click-follows-link)
490 (< mouse-1-click-follows-link 0)) "Long ")
491 (t ""))
492 "mouse-1" (substring msg 7))))))
493 (setq tooltip-help-message msg) 473 (setq tooltip-help-message msg)
494 (cond ((null msg) 474 (cond ((null msg)
495 ;; Cancel display. This also cancels a delayed tip, if 475 ;; Cancel display. This also cancels a delayed tip, if
diff --git a/lisp/url/vc-dav.el b/lisp/url/vc-dav.el
new file mode 100644
index 00000000000..3bf03165564
--- /dev/null
+++ b/lisp/url/vc-dav.el
@@ -0,0 +1,184 @@
1;;; vc-dav.el --- vc.el support for WebDAV
2
3;; Copyright (C) 2001 Free Software Foundation, Inc.
4
5;; Author: Bill Perry <wmperry@gnu.org>
6;; Maintainer: Bill Perry <wmperry@gnu.org>
7;; Keywords: url, vc
8
9;; GNU Emacs 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;; GNU Emacs 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 the
21;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22;; Boston, MA 02111-1307, USA.
23
24
25;;; Commentary:
26
27;;; Code:
28
29(require 'url)
30(require 'url-dav)
31
32;;; Required functions for a vc backend
33(defun vc-dav-registered (url)
34 "Return t iff URL is registered with a DAV aware server."
35 (url-dav-vc-registered url))
36
37(defun vc-dav-state (url)
38 "Return the current version control state of URL.
39For a list of possible values, see `vc-state'."
40 ;; Things we can support for WebDAV
41 ;;
42 ;; up-to-date - use lockdiscovery
43 ;; edited - check for an active lock by us
44 ;; USER - use lockdiscovery + owner
45 ;;
46 ;; These don't make sense for WebDAV
47 ;; needs-patch
48 ;; needs-merge
49 ;; unlocked-changes
50 (let ((locks (url-dav-active-locks url)))
51 (cond
52 ((null locks) 'up-to-date)
53 ((assoc url locks)
54 ;; SOMEBODY has a lock... let's find out who.
55 (setq locks (cdr (assoc url locks)))
56 (if (rassoc url-dav-lock-identifier locks)
57 ;; _WE_ have a lock
58 'edited
59 (cdr (car locks)))))))
60
61(defun vc-dav-checkout-model (url)
62 "Indicate whether URL needs to be \"checked out\" before it can be edited.
63See `vc-checkout-model' for a list of possible values."
64 ;; The only thing we can support with webdav is 'locking
65 'locking)
66
67;; This should figure out the version # of the file somehow. What is
68;; the most appropriate property in WebDAV to look at for this?
69(defun vc-dav-workfile-version (url)
70 "Return the current workfile version of URL."
71 "Unknown")
72
73(defun vc-dav-register (url &optional rev comment)
74 "Register URL in the DAV backend."
75 ;; Do we need to do anything here? FIXME?
76 )
77
78(defun vc-dav-checkin (url rev comment)
79 "Commit changes in URL to WebDAV.
80If REV is non-nil, that should become the new revision number.
81COMMENT is used as a check-in comment."
82 ;; This should PUT the resource and release any locks that we hold.
83 )
84
85(defun vc-dav-checkout (url &optional editable rev destfile)
86 "Check out revision REV of URL into the working area.
87
88If EDITABLE is non-nil URL should be writable by the user and if
89locking is used for URL, a lock should also be set.
90
91If REV is non-nil, that is the revision to check out. If REV is the
92empty string, that means to check ou tht ehead of the trunk.
93
94If optional arg DESTFILE is given, it is an alternate filename to
95write the contents to.
96"
97 ;; This should LOCK the resource.
98 )
99
100(defun vc-dav-revert (url &optional contents-done)
101 "Revert URL back to the current workfile version.
102
103If optional arg CONTENTS-DONE is non-nil, then the contents of FILE
104have already been reverted from a version backup, and this function
105only needs to update the status of URL within the backend.
106"
107 ;; Should do a GET if !contents_done
108 ;; Should UNLOCK the file.
109 )
110
111(defun vc-dav-print-log (url)
112 "Insert the revision log of URL into the *vc* buffer."
113 )
114
115(defun vc-dav-diff (url &optional rev1 rev2)
116 "Insert the diff for URL into the *vc-diff* buffer.
117If REV1 and REV2 are non-nil report differences from REV1 to REV2.
118If REV1 is nil, use the current workfile version as the older version.
119If REV2 is nil, use the current workfile contents as the nwer version.
120
121It should return a status of either 0 (no differences found), or
1221 (either non-empty diff or the diff is run asynchronously).
123"
124 ;; We should do this asynchronously...
125 ;; How would we do it at all, that is the question!
126 )
127
128
129
130;;; Optional functions
131;; Should be faster than vc-dav-state - but how?
132(defun vc-dav-state-heuristic (url)
133 "Estimate the version control state of URL at visiting time."
134 (vc-dav-state url))
135
136;; This should use url-dav-get-properties with a depth of `1' to get
137;; all the properties.
138(defun vc-dav-dir-state (url)
139 "find the version control state of all files in DIR in a fast way."
140 )
141
142(defun vc-dav-workfile-unchanged-p (url)
143 "Return non-nil if URL is unchanged from its current workfile version."
144 ;; Probably impossible with webdav
145 )
146
147(defun vc-dav-responsible-p (url)
148 "Return non-nil if DAV considers itself `responsible' for URL."
149 ;; Check for DAV support on the web server.
150 t)
151
152(defun vc-dav-could-register (url)
153 "Return non-nil if URL could be registered under this backend."
154 ;; Check for DAV support on the web server.
155 t)
156
157;;; Unimplemented functions
158;;
159;; vc-dav-latest-on-branch-p(URL)
160;; Return non-nil if the current workfile version of FILE is the
161;; latest on its branch. There are no branches in webdav yet.
162;;
163;; vc-dav-mode-line-string(url)
164;; Return a dav-specific mode line string for URL. Are there any
165;; specific states that we want exposed?
166;;
167;; vc-dav-dired-state-info(url)
168;; Translate the `vc-state' property of URL into a string that can
169;; be used in a vc-dired buffer. Are there any extra states that
170;; we want exposed?
171;;
172;; vc-dav-receive-file(url rev)
173;; Let this backend `receive' a file that is already registered
174;; under another backend. The default just calls `register', which
175;; should be sufficient for WebDAV.
176;;
177;; vc-dav-unregister(url)
178;; Unregister URL. Not possible with WebDAV, other than by
179;; deleting the resource.
180
181(provide 'vc-dav)
182
183;; arch-tag: 0a0fb9fe-8190-4c0a-a179-5c291d3a467e
184;;; vc-dav.el ends here
diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el
index 81a18eadd87..52b4659cec6 100644
--- a/lisp/vc-hooks.el
+++ b/lisp/vc-hooks.el
@@ -481,7 +481,9 @@ and does not employ any heuristic at all."
481 "Return non-nil if FILE has not changed since the last checkout." 481 "Return non-nil if FILE has not changed since the last checkout."
482 (let ((checkout-time (vc-file-getprop file 'vc-checkout-time)) 482 (let ((checkout-time (vc-file-getprop file 'vc-checkout-time))
483 (lastmod (nth 5 (file-attributes file)))) 483 (lastmod (nth 5 (file-attributes file))))
484 (if checkout-time 484 (if (and checkout-time
485 ;; Tramp and Ange-FTP return this when they don't know the time.
486 (not (equal lastmod '(0 0))))
485 (equal checkout-time lastmod) 487 (equal checkout-time lastmod)
486 (let ((unchanged (vc-call workfile-unchanged-p file))) 488 (let ((unchanged (vc-call workfile-unchanged-p file)))
487 (vc-file-setprop file 'vc-checkout-time (if unchanged lastmod 0)) 489 (vc-file-setprop file 'vc-checkout-time (if unchanged lastmod 0))
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 7f22ad2e485..8a34499507f 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,12 @@
12005-04-01 Richard M. Stallman <rms@gnu.org>
2
3 * nonascii.texi (Coding System Basics): Clarify previous change.
4
52005-04-01 Kenichi Handa <handa@m17n.org>
6
7 * nonascii.texi (Coding System Basics): Describe about rondtrip
8 identity of coding systems.
9
12005-03-29 Chong Yidong <cyd@stupidchicken.com> 102005-03-29 Chong Yidong <cyd@stupidchicken.com>
2 11
3 * text.texi (Buffer Contents): Add filter-buffer-substring and 12 * text.texi (Buffer Contents): Add filter-buffer-substring and
diff --git a/lispref/nonascii.texi b/lispref/nonascii.texi
index 70e77e0a837..4e38c300a61 100644
--- a/lispref/nonascii.texi
+++ b/lispref/nonascii.texi
@@ -628,6 +628,27 @@ characters; for example, there are three coding systems for the Cyrillic
628conversion, but some of them leave the choice unspecified---to be chosen 628conversion, but some of them leave the choice unspecified---to be chosen
629heuristically for each file, based on the data. 629heuristically for each file, based on the data.
630 630
631In general, a coding system doesn't guarantee roundtrip identity:
632decoding text then encoding the result in the same coding system can
633produce a different byte sequence from the one you originally decoded.
634However, the following coding systems do guarantee that the result
635will be the same as what you originally decoded:
636
637@quotation
638chinese-big5 chinese-iso-8bit cyrillic-iso-8bit emacs-mule
639greek-iso-8bit hebrew-iso-8bit iso-latin-1 iso-latin-2 iso-latin-3
640iso-latin-4 iso-latin-5 iso-latin-8 iso-latin-9 iso-safe
641japanese-iso-8bit japanese-shift-jis korean-iso-8bit raw-text
642@end quotation
643
644Encoding buffer text and then decoding the result can also fail to
645reproduce the original text. For instance, when you encode Latin-2
646characters with @code{utf-8} and decode the result using the same
647coding system, you'll get Unicode characters (of charset
648@code{mule-unicode-0100-24ff}). When you encode Unicode characters
649with @code{iso-latin-2} and decode them back with the same coding
650system, you'll get Latin-2 characters.
651
631@cindex end of line conversion 652@cindex end of line conversion
632 @dfn{End of line conversion} handles three different conventions used 653 @dfn{End of line conversion} handles three different conventions used
633on various systems for representing end of line in files. The Unix 654on various systems for representing end of line in files. The Unix
diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index 7823673ec1b..d085f41ff77 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,16 @@
12005-04-01 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 Reenable support for I18N to Lucid menus.
4
5 * xlwmenuP.h (_XlwMenu_part): Add fontSet resource.
6
7 * xlwmenu.c (string_width):
8 (MENU_FONT_HEIGHT, MENU_FONT_ASCENT): Ditto.
9 (display_menu_item, make_drawing_gcs, XlwMenuInitialize)
10 (XlwMenuSetValues): Use font if fontSet is NULL, use only
11 font for !HAVE_X_I18N.
12 (xlwMenuResources): Add fontSet resource.
13
12005-03-22 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 142005-03-22 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2 15
3 * xlwmenuP.h: Temporary #undef HAVE_X_I18N until FontSet for UTF-8 16 * xlwmenuP.h: Temporary #undef HAVE_X_I18N until FontSet for UTF-8
diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c
index 77b61d32e21..3fab2e80dbe 100644
--- a/lwlib/xlwmenu.c
+++ b/lwlib/xlwmenu.c
@@ -131,20 +131,16 @@ xlwMenuTranslations [] =
131 131
132/* FIXME: F10 should enter the menu, the first one in the menu-bar. */ 132/* FIXME: F10 should enter the menu, the first one in the menu-bar. */
133 133
134/* FIXME: HAVE_X_I18N does not work yet. */
135#undef HAVE_X_I18N
136
137#define offset(field) XtOffset(XlwMenuWidget, field) 134#define offset(field) XtOffset(XlwMenuWidget, field)
138static XtResource 135static XtResource
139xlwMenuResources[] = 136xlwMenuResources[] =
140{ 137{
141#ifdef HAVE_X_I18N 138#ifdef HAVE_X_I18N
142 {XtNfont, XtCFont, XtRFontSet, sizeof(XFontSet), 139 {XtNfontSet, XtCFontSet, XtRFontSet, sizeof(XFontSet),
143 offset(menu.font), XtRString, "XtDefaultFontSet"}, 140 offset(menu.fontSet), XtRFontSet, NULL},
144#else 141#endif
145 {XtNfont, XtCFont, XtRFontStruct, sizeof(XFontStruct *), 142 {XtNfont, XtCFont, XtRFontStruct, sizeof(XFontStruct *),
146 offset(menu.font), XtRString, "XtDefaultFont"}, 143 offset(menu.font), XtRString, "XtDefaultFont"},
147#endif
148 {XtNforeground, XtCForeground, XtRPixel, sizeof(Pixel), 144 {XtNforeground, XtCForeground, XtRPixel, sizeof(Pixel),
149 offset(menu.foreground), XtRString, "XtDefaultForeground"}, 145 offset(menu.foreground), XtRString, "XtDefaultForeground"},
150 {XtNdisabledForeground, XtCDisabledForeground, XtRPixel, sizeof(Pixel), 146 {XtNdisabledForeground, XtCDisabledForeground, XtRPixel, sizeof(Pixel),
@@ -361,24 +357,31 @@ string_width (mw, s)
361 XlwMenuWidget mw; 357 XlwMenuWidget mw;
362 char *s; 358 char *s;
363{ 359{
364#ifdef HAVE_X_I18N
365 XRectangle ink, logical;
366 XmbTextExtents (mw->menu.font, s, strlen (s), &ink, &logical);
367 return logical.width;
368#else
369 XCharStruct xcs; 360 XCharStruct xcs;
370 int drop; 361 int drop;
362#ifdef HAVE_X_I18N
363 XRectangle ink, logical;
364 if (mw->menu.fontSet)
365 {
366 XmbTextExtents (mw->menu.fontSet, s, strlen (s), &ink, &logical);
367 return logical.width;
368 }
369#endif
371 370
372 XTextExtents (mw->menu.font, s, strlen (s), &drop, &drop, &drop, &xcs); 371 XTextExtents (mw->menu.font, s, strlen (s), &drop, &drop, &drop, &xcs);
373 return xcs.width; 372 return xcs.width;
374#endif 373
375} 374}
376 375
377#ifdef HAVE_X_I18N 376#ifdef HAVE_X_I18N
378#define MENU_FONT_HEIGHT(mw) \ 377#define MENU_FONT_HEIGHT(mw) \
379 ((mw)->menu.font_extents->max_logical_extent.height) 378 ((mw)->menu.fontSet != NULL \
379 ? (mw)->menu.font_extents->max_logical_extent.height \
380 : (mw)->menu.font->ascent + (mw)->menu.font->descent)
380#define MENU_FONT_ASCENT(mw) \ 381#define MENU_FONT_ASCENT(mw) \
381 (- (mw)->menu.font_extents->max_logical_extent.y) 382 ((mw)->menu.fontSet != NULL \
383 ? - (mw)->menu.font_extents->max_logical_extent.y \
384 : (mw)->menu.font->ascent)
382#else 385#else
383#define MENU_FONT_HEIGHT(mw) \ 386#define MENU_FONT_HEIGHT(mw) \
384 ((mw)->menu.font->ascent + (mw)->menu.font->descent) 387 ((mw)->menu.font->ascent + (mw)->menu.font->descent)
@@ -1053,10 +1056,14 @@ display_menu_item (mw, val, ws, where, highlighted_p, horizontal_p,
1053 1056
1054 1057
1055#ifdef HAVE_X_I18N 1058#ifdef HAVE_X_I18N
1056 XmbDrawString (XtDisplay (mw), ws->window, mw->menu.font, 1059 if (mw->menu.fontSet)
1057#else 1060 XmbDrawString (XtDisplay (mw), ws->window, mw->menu.fontSet,
1058 XDrawString (XtDisplay (mw), ws->window, 1061 text_gc, x_offset,
1062 y + v_spacing + shadow + font_ascent,
1063 display_string, strlen (display_string));
1064 else
1059#endif 1065#endif
1066 XDrawString (XtDisplay (mw), ws->window,
1060 text_gc, x_offset, 1067 text_gc, x_offset,
1061 y + v_spacing + shadow + font_ascent, 1068 y + v_spacing + shadow + font_ascent,
1062 display_string, strlen (display_string)); 1069 display_string, strlen (display_string));
@@ -1083,10 +1090,16 @@ display_menu_item (mw, val, ws, where, highlighted_p, horizontal_p,
1083 else if (val->key) 1090 else if (val->key)
1084 { 1091 {
1085#ifdef HAVE_X_I18N 1092#ifdef HAVE_X_I18N
1086 XmbDrawString (XtDisplay (mw), ws->window, mw->menu.font, 1093 if (mw->menu.fontSet)
1087#else 1094 XmbDrawString (XtDisplay (mw), ws->window,
1088 XDrawString (XtDisplay (mw), ws->window, 1095 mw->menu.fontSet,
1096 text_gc,
1097 x + label_width + mw->menu.arrow_spacing,
1098 y + v_spacing + shadow + font_ascent,
1099 val->key, strlen (val->key));
1100 else
1089#endif 1101#endif
1102 XDrawString (XtDisplay (mw), ws->window,
1090 text_gc, 1103 text_gc,
1091 x + label_width + mw->menu.arrow_spacing, 1104 x + label_width + mw->menu.arrow_spacing,
1092 y + v_spacing + shadow + font_ascent, 1105 y + v_spacing + shadow + font_ascent,
@@ -1493,34 +1506,25 @@ make_drawing_gcs (mw)
1493{ 1506{
1494 XGCValues xgcv; 1507 XGCValues xgcv;
1495 float scale; 1508 float scale;
1509 XtGCMask mask = GCForeground | GCBackground;
1496 1510
1497#ifndef HAVE_X_I18N 1511#ifdef HAVE_X_I18N
1512 if (!mw->menu.fontSet)
1513 {
1514 xgcv.font = mw->menu.font->fid;
1515 mask |= GCFont;
1516 }
1517#else
1498 xgcv.font = mw->menu.font->fid; 1518 xgcv.font = mw->menu.font->fid;
1519 mask |= GCFont;
1499#endif 1520#endif
1500 xgcv.foreground = mw->menu.foreground; 1521 xgcv.foreground = mw->menu.foreground;
1501 xgcv.background = mw->core.background_pixel; 1522 xgcv.background = mw->core.background_pixel;
1502 mw->menu.foreground_gc = XtGetGC ((Widget)mw, 1523 mw->menu.foreground_gc = XtGetGC ((Widget)mw, mask, &xgcv);
1503#ifndef HAVE_X_I18N
1504 GCFont |
1505#endif
1506 GCForeground | GCBackground,
1507 &xgcv);
1508 1524
1509#ifndef HAVE_X_I18N
1510 xgcv.font = mw->menu.font->fid;
1511#endif
1512 xgcv.foreground = mw->menu.button_foreground; 1525 xgcv.foreground = mw->menu.button_foreground;
1513 xgcv.background = mw->core.background_pixel; 1526 mw->menu.button_gc = XtGetGC ((Widget)mw, mask, &xgcv);
1514 mw->menu.button_gc = XtGetGC ((Widget)mw,
1515#ifndef HAVE_X_I18N
1516 GCFont |
1517#endif
1518 GCForeground | GCBackground,
1519 &xgcv);
1520 1527
1521#ifndef HAVE_X_I18N
1522 xgcv.font = mw->menu.font->fid;
1523#endif
1524 xgcv.background = mw->core.background_pixel; 1528 xgcv.background = mw->core.background_pixel;
1525 1529
1526#define BRIGHTNESS(color) (((color) & 0xff) + (((color) >> 8) & 0xff) + (((color) >> 16) & 0xff)) 1530#define BRIGHTNESS(color) (((color) & 0xff) + (((color) >> 8) & 0xff) + (((color) >> 16) & 0xff))
@@ -1545,49 +1549,26 @@ make_drawing_gcs (mw)
1545 xgcv.foreground = mw->menu.foreground; 1549 xgcv.foreground = mw->menu.foreground;
1546 xgcv.fill_style = FillStippled; 1550 xgcv.fill_style = FillStippled;
1547 xgcv.stipple = mw->menu.gray_pixmap; 1551 xgcv.stipple = mw->menu.gray_pixmap;
1548 mw->menu.disabled_gc = XtGetGC ((Widget)mw, 1552 mw->menu.disabled_gc = XtGetGC ((Widget)mw, mask
1549#ifndef HAVE_X_I18N
1550 GCFont |
1551#endif
1552 GCForeground | GCBackground
1553 | GCFillStyle | GCStipple, &xgcv); 1553 | GCFillStyle | GCStipple, &xgcv);
1554 } 1554 }
1555 else 1555 else
1556 { 1556 {
1557 /* Many colors available, use disabled pixel. */ 1557 /* Many colors available, use disabled pixel. */
1558 xgcv.foreground = mw->menu.disabled_foreground; 1558 xgcv.foreground = mw->menu.disabled_foreground;
1559 mw->menu.disabled_gc = XtGetGC ((Widget)mw, 1559 mw->menu.disabled_gc = XtGetGC ((Widget)mw, mask, &xgcv);
1560#ifndef HAVE_X_I18N
1561 GCFont |
1562#endif
1563 GCForeground | GCBackground, &xgcv);
1564 } 1560 }
1565 1561
1566#ifndef HAVE_X_I18N
1567 xgcv.font = mw->menu.font->fid;
1568#endif
1569 xgcv.foreground = mw->menu.button_foreground; 1562 xgcv.foreground = mw->menu.button_foreground;
1570 xgcv.background = mw->core.background_pixel; 1563 xgcv.background = mw->core.background_pixel;
1571 xgcv.fill_style = FillStippled; 1564 xgcv.fill_style = FillStippled;
1572 xgcv.stipple = mw->menu.gray_pixmap; 1565 xgcv.stipple = mw->menu.gray_pixmap;
1573 mw->menu.inactive_button_gc = XtGetGC ((Widget)mw, 1566 mw->menu.inactive_button_gc = XtGetGC ((Widget)mw, mask
1574#ifndef HAVE_X_I18N
1575 GCFont |
1576#endif
1577 GCForeground | GCBackground
1578 | GCFillStyle | GCStipple, &xgcv); 1567 | GCFillStyle | GCStipple, &xgcv);
1579 1568
1580#ifndef HAVE_X_I18N
1581 xgcv.font = mw->menu.font->fid;
1582#endif
1583 xgcv.foreground = mw->core.background_pixel; 1569 xgcv.foreground = mw->core.background_pixel;
1584 xgcv.background = mw->menu.foreground; 1570 xgcv.background = mw->menu.foreground;
1585 mw->menu.background_gc = XtGetGC ((Widget)mw, 1571 mw->menu.background_gc = XtGetGC ((Widget)mw, mask, &xgcv);
1586#ifndef HAVE_X_I18N
1587 GCFont |
1588#endif
1589 GCForeground | GCBackground,
1590 &xgcv);
1591} 1572}
1592 1573
1593static void 1574static void
@@ -1793,14 +1774,14 @@ XlwMenuInitialize (request, mw, args, num_args)
1793 gray_bitmap_width, gray_bitmap_height, 1774 gray_bitmap_width, gray_bitmap_height,
1794 (unsigned long)1, (unsigned long)0, 1); 1775 (unsigned long)1, (unsigned long)0, 1);
1795 1776
1796#ifndef HAVE_X_I18N
1797 /* I don't understand why this ends up 0 sometimes, 1777 /* I don't understand why this ends up 0 sometimes,
1798 but it does. This kludge works around it. 1778 but it does. This kludge works around it.
1799 Can anyone find a real fix? -- rms. */ 1779 Can anyone find a real fix? -- rms. */
1800 if (mw->menu.font == 0) 1780 if (mw->menu.font == 0)
1801 mw->menu.font = xlwmenu_default_font; 1781 mw->menu.font = xlwmenu_default_font;
1802#else 1782#ifdef HAVE_X_I18N
1803 mw->menu.font_extents = XExtentsOfFontSet (mw->menu.font); 1783 if (mw->menu.fontSet)
1784 mw->menu.font_extents = XExtentsOfFontSet (mw->menu.fontSet);
1804#endif 1785#endif
1805 1786
1806 make_drawing_gcs (mw); 1787 make_drawing_gcs (mw);
@@ -1969,7 +1950,10 @@ XlwMenuSetValues (current, request, new)
1969 1950
1970 if (newmw->core.background_pixel != oldmw->core.background_pixel 1951 if (newmw->core.background_pixel != oldmw->core.background_pixel
1971 || newmw->menu.foreground != oldmw->menu.foreground 1952 || newmw->menu.foreground != oldmw->menu.foreground
1972#ifndef HAVE_X_I18N 1953#ifdef HAVE_X_I18N
1954 || newmw->menu.fontSet != oldmw->menu.fontSet
1955 || (newmw->menu.fontSet == NULL && newmw->menu.font != oldmw->menu.font)
1956#else
1973 || newmw->menu.font != oldmw->menu.font 1957 || newmw->menu.font != oldmw->menu.font
1974#endif 1958#endif
1975 ) 1959 )
@@ -1999,10 +1983,10 @@ XlwMenuSetValues (current, request, new)
1999 } 1983 }
2000 1984
2001#ifdef HAVE_X_I18N 1985#ifdef HAVE_X_I18N
2002 if (newmw->menu.font != oldmw->menu.font) 1986 if (newmw->menu.fontSet != oldmw->menu.fontSet && newmw->menu.fontSet != NULL)
2003 { 1987 {
2004 redisplay = True; 1988 redisplay = True;
2005 newmw->menu.font_extents = XExtentsOfFontSet (newmw->menu.font); 1989 newmw->menu.font_extents = XExtentsOfFontSet (newmw->menu.fontSet);
2006 } 1990 }
2007#endif 1991#endif
2008 1992
diff --git a/lwlib/xlwmenuP.h b/lwlib/xlwmenuP.h
index 12cc1790d9d..ac908d34b74 100644
--- a/lwlib/xlwmenuP.h
+++ b/lwlib/xlwmenuP.h
@@ -24,9 +24,6 @@ Boston, MA 02111-1307, USA. */
24#include "xlwmenu.h" 24#include "xlwmenu.h"
25#include <X11/CoreP.h> 25#include <X11/CoreP.h>
26 26
27/* FIXME: HAVE_X_I18N does not work yet. */
28#undef HAVE_X_I18N
29
30/* Elements in the stack arrays. */ 27/* Elements in the stack arrays. */
31typedef struct _window_state 28typedef struct _window_state
32{ 29{
@@ -47,11 +44,10 @@ typedef struct _XlwMenu_part
47{ 44{
48 /* slots set by the resources */ 45 /* slots set by the resources */
49#ifdef HAVE_X_I18N 46#ifdef HAVE_X_I18N
50 XFontSet font; 47 XFontSet fontSet;
51 XFontSetExtents *font_extents; 48 XFontSetExtents *font_extents;
52#else
53 XFontStruct* font;
54#endif 49#endif
50 XFontStruct* font;
55 Pixel foreground; 51 Pixel foreground;
56 Pixel disabled_foreground; 52 Pixel disabled_foreground;
57 Pixel button_foreground; 53 Pixel button_foreground;
diff --git a/man/ChangeLog b/man/ChangeLog
index d808b9fe6d7..4a51f051431 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,29 @@
12005-04-01 Jay Belanger <belanger@truman.edu>
2
3 * calc.texi (Troubleshooting Commands): Remove comment about
4 installation.
5 (Installation): Remove section.
6 (Customizable Variables): New section.
7 (Basic Embedded Mode, Customizing Embedded Mode, Graphics)
8 (Graphical Devices): Add references to Customizable Variables.
9
102005-04-01 Lute Kamstra <lute@gnu.org>
11
12 * maintaining.texi (Change Log): add-change-log-entry uses
13 add-log-mailing-address.
14
152005-03-31 Luc Teirlinck <teirllm@auburn.edu>
16
17 * files.texi (Reverting): Move `auto-revert-check-vc-info' to
18 `VC Mode Line' and put in an xref to that node.
19 (VC Mode Line): Move `auto-revert-check-vc-info' here and clarify
20 its description.
21
222005-03-31 Paul Eggert <eggert@cs.ucla.edu>
23
24 * calendar.texi (Calendar Systems): Say that the Persian calendar
25 implemented here is the arithmetical one championed by Birashk.
26
12005-03-30 Glenn Morris <gmorris@ast.cam.ac.uk> 272005-03-30 Glenn Morris <gmorris@ast.cam.ac.uk>
2 28
3 * programs.texi (Fortran Motion): Fix previous change. 29 * programs.texi (Fortran Motion): Fix previous change.
@@ -21,7 +47,7 @@
21 (Longlines): New node. 47 (Longlines): New node.
22 (Auto Fill): Don't index "word wrap" here. 48 (Auto Fill): Don't index "word wrap" here.
23 (Filling): Add Longlines to menu. 49 (Filling): Add Longlines to menu.
24 50
252005-03-29 Richard M. Stallman <rms@gnu.org> 512005-03-29 Richard M. Stallman <rms@gnu.org>
26 52
27 * xresources.texi: Minor fixes. 53 * xresources.texi: Minor fixes.
diff --git a/man/calc.texi b/man/calc.texi
index 07c33206f28..087cdbe6457 100644
--- a/man/calc.texi
+++ b/man/calc.texi
@@ -165,7 +165,7 @@ longer Info tutorial.)
165* Embedded Mode:: Working with formulas embedded in a file. 165* Embedded Mode:: Working with formulas embedded in a file.
166* Programming:: Calc as a programmable calculator. 166* Programming:: Calc as a programmable calculator.
167 167
168* Installation:: Installing Calc as a part of GNU Emacs. 168* Customizable Variables:: Customizable Variables.
169* Reporting Bugs:: How to report bugs and make suggestions. 169* Reporting Bugs:: How to report bugs and make suggestions.
170 170
171* Summary:: Summary of Calc commands and functions. 171* Summary:: Summary of Calc commands and functions.
@@ -10613,11 +10613,6 @@ If this happens, the easiest workaround is to type @kbd{M-# L}
10613loaded right away. This will cause Emacs to take up a lot more 10613loaded right away. This will cause Emacs to take up a lot more
10614memory than it would otherwise, but it's guaranteed to fix the problem. 10614memory than it would otherwise, but it's guaranteed to fix the problem.
10615 10615
10616If you seem to run into this problem no matter what you do, or if
10617even the @kbd{M-# L} command crashes, Calc may have been improperly
10618installed. @xref{Installation}, for details of the installation
10619process.
10620
10621@node Recursion Depth, Caches, Autoloading Problems, Troubleshooting Commands 10616@node Recursion Depth, Caches, Autoloading Problems, Troubleshooting Commands
10622@subsection Recursion Depth 10617@subsection Recursion Depth
10623 10618
@@ -12306,7 +12301,7 @@ if this file exists, and this file becomes the one that Calc will
12306use in the future for commands like @kbd{m m}. The default settings 12301use in the future for commands like @kbd{m m}. The default settings
12307file name is @file{~/.calc.el}. You can see the current file name by 12302file name is @file{~/.calc.el}. You can see the current file name by
12308giving a blank response to the @kbd{m F} prompt. See also the 12303giving a blank response to the @kbd{m F} prompt. See also the
12309discussion of the @code{calc-settings-file} variable; @pxref{Installation}. 12304discussion of the @code{calc-settings-file} variable; @pxref{Customizable Variables}.
12310 12305
12311If the file name you give is your user init file (typically 12306If the file name you give is your user init file (typically
12312@file{~/.emacs}), @kbd{m F} will not automatically load the new file. This 12307@file{~/.emacs}), @kbd{m F} will not automatically load the new file. This
@@ -29109,7 +29104,7 @@ of the @samp{*Gnuplot Commands*} buffer.
29109@vindex calc-gnuplot-print-command 29104@vindex calc-gnuplot-print-command
29110@vindex calc-gnuplot-print-device 29105@vindex calc-gnuplot-print-device
29111@vindex calc-gnuplot-print-output 29106@vindex calc-gnuplot-print-output
29112If you are installing Calc you may wish to configure the default and 29107You may wish to configure the default and
29113printer devices and output files for the whole system. The relevant 29108printer devices and output files for the whole system. The relevant
29114Lisp variables are @code{calc-gnuplot-default-device} and @code{-output}, 29109Lisp variables are @code{calc-gnuplot-default-device} and @code{-output},
29115and @code{calc-gnuplot-print-device} and @code{-output}. The output 29110and @code{calc-gnuplot-print-device} and @code{-output}. The output
@@ -29122,7 +29117,8 @@ display or print the output of GNUPLOT, respectively. These may be
29122@code{nil} if no command is necessary, or strings which can include 29117@code{nil} if no command is necessary, or strings which can include
29123@samp{%s} to signify the name of the file to be displayed or printed. 29118@samp{%s} to signify the name of the file to be displayed or printed.
29124Or, these variables may contain Lisp expressions which are evaluated 29119Or, these variables may contain Lisp expressions which are evaluated
29125to display or print the output. 29120to display or print the output. These variables are customizable
29121(@pxref{Customizable Variables}).
29126 29122
29127@kindex g x 29123@kindex g x
29128@pindex calc-graph-display 29124@pindex calc-graph-display
@@ -29910,7 +29906,8 @@ Similarly, Calc will use @TeX{} language for @code{tex-mode},
29910@code{plain-tex-mode} and @code{context-mode}, C language for 29906@code{plain-tex-mode} and @code{context-mode}, C language for
29911@code{c-mode} and @code{c++-mode}, FORTRAN language for 29907@code{c-mode} and @code{c++-mode}, FORTRAN language for
29912@code{fortran-mode} and @code{f90-mode}, Pascal for @code{pascal-mode}, 29908@code{fortran-mode} and @code{f90-mode}, Pascal for @code{pascal-mode},
29913and eqn for @code{nroff-mode}. These can be overridden with Calc's mode 29909and eqn for @code{nroff-mode} (@pxref{Customizable Variables}).
29910These can be overridden with Calc's mode
29914changing commands (@pxref{Mode Settings in Embedded Mode}). If no 29911changing commands (@pxref{Mode Settings in Embedded Mode}). If no
29915suitable language is available, Calc will continue with its current language. 29912suitable language is available, Calc will continue with its current language.
29916 29913
@@ -30612,10 +30609,10 @@ for @code{Save} have no effect.
30612 30609
30613@noindent 30610@noindent
30614You can modify Embedded mode's behavior by setting various Lisp 30611You can modify Embedded mode's behavior by setting various Lisp
30615variables described here. Use @kbd{M-x set-variable} or 30612variables described here. These variables are customizable
30616@kbd{M-x edit-options} to adjust a variable on the fly, or 30613(@pxref{Customizable Variables}), or you can use @kbd{M-x set-variable}
30617put a suitable @code{setq} statement in your Calc init file (or 30614or @kbd{M-x edit-options} to adjust a variable on the fly.
30618@file{~/.emacs}) to set a variable permanently. (Another possibility would 30615(Another possibility would
30619be to use a file-local variable annotation at the end of the 30616be to use a file-local variable annotation at the end of the
30620file; @pxref{File Variables, , Local Variables in Files, emacs, the 30617file; @pxref{File Variables, , Local Variables in Files, emacs, the
30621Emacs manual}.) 30618Emacs manual}.)
@@ -30760,7 +30757,7 @@ is simply a newline, @code{"\n"}. If you change this, it is a
30760good idea still to end with a newline so that mode annotations 30757good idea still to end with a newline so that mode annotations
30761will appear on lines by themselves. 30758will appear on lines by themselves.
30762 30759
30763@node Programming, Installation, Embedded Mode, Top 30760@node Programming, Customizable Variables, Embedded Mode, Top
30764@chapter Programming 30761@chapter Programming
30765 30762
30766@noindent 30763@noindent
@@ -34610,70 +34607,204 @@ used the first time, your hook should add a variable to the
34610list and also call @code{make-local-variable} itself. 34607list and also call @code{make-local-variable} itself.
34611@end defvar 34608@end defvar
34612 34609
34613@node Installation, Reporting Bugs, Programming, Top 34610@node Customizable Variables, Reporting Bugs, Programming, Top
34614@appendix Installation 34611@appendix Customizable Variables
34612
34613GNU Calc is controlled by many variables, most of which can be reset
34614from within Calc. Some variables are less involved with actual
34615calculation, and can be set outside of Calc using Emacs's
34616customization facilities. These variables are listed below.
34617Typing @kbd{M-x customize-variable RET @var{variable-name} RET}
34618will bring up a buffer in which the variable's value can be redefined.
34619Typing @kbd{M-x customize-group RET calc RET} will bring up a buffer which
34620contains all of Calc's customizable variables. (These variables can
34621also be reset by putting the appropriate lines in your .emacs file;
34622@xref{Init File, ,Init File, emacs, The GNU Emacs Manual}.)
34623
34624Some of the customizable variables are regular expressions. A regular
34625expression is basically a pattern that Calc can search for.
34626See @ref{Regexp Search,, Regular Expression Search, emacs, The GNU Emacs Manual}
34627to see how regular expressions work.
34615 34628
34616@noindent 34629@table @code
34617As of Calc 2.02g, Calc is integrated with GNU Emacs, and thus requires
34618no separate installation of its Lisp files and this manual.
34619 34630
34620@appendixsec The GNUPLOT Program 34631@item calc-settings-file
34621 34632
34622@noindent 34633@vindex calc-settings-file
34623Calc's graphing commands use the GNUPLOT program. If you have GNUPLOT 34634The variable @code{calc-settings-file} holds the file name in
34624but you must type some command other than @file{gnuplot} to get it, 34635which commands like @kbd{m m} and @kbd{Z P} store ``permanent''
34625you should add a command to set the Lisp variable @code{calc-gnuplot-name} 34636definitions.
34626to the appropriate file name. You may also need to change the variables 34637If @code{calc-settings-file} is not your user init file (typically
34627@code{calc-gnuplot-plot-command} and @code{calc-gnuplot-print-command} in 34638@file{~/.emacs}) and if the variable @code{calc-loaded-settings-file} is
34628order to get correct displays and hardcopies, respectively, of your 34639@code{nil}, then Calc will automatically load your settings file (if it
34629plots. 34640exists) the first time Calc is invoked.
34641
34642The default value for this variable is @code{"~/.calc.el"}.
34643
34644@item calc-gnuplot-name
34645
34646See @ref{Graphics}.@*
34647The variable @code{calc-gnuplot-name} should be the name of the
34648GNUPLOT program (a string). If you have GNUPLOT installed on your
34649system but Calc is unable to find it, you may need to set this
34650variable. (@pxref{Customizable Variables})
34651You may also need to set some Lisp variables to show Calc how to run
34652GNUPLOT on your system, see @ref{Devices, ,Graphical Devices} . The default value
34653of @code{calc-gnuplot-name} is @code{"gnuplot"}.
34654
34655@item calc-gnuplot-plot-command
34656@itemx calc-gnuplot-print-command
34657
34658See @ref{Devices, ,Graphical Devices}.@*
34659The variables @code{calc-gnuplot-plot-command} and
34660@code{calc-gnuplot-print-command} represent system commands to
34661display and print the output of GNUPLOT, respectively. These may be
34662@code{nil} if no command is necessary, or strings which can include
34663@samp{%s} to signify the name of the file to be displayed or printed.
34664Or, these variables may contain Lisp expressions which are evaluated
34665to display or print the output.
34630 34666
34631@ifinfo 34667The default value of @code{calc-gnuplot-plot-command} is @code{nil},
34668and the default value of @code{calc-gnuplot-print-command} is
34669@code{"lp %s"}.
34670
34671@item calc-language-alist
34672
34673See @ref{Basic Embedded Mode}.@*
34674The variable @code{calc-language-alist} controls the languages that
34675Calc will associate with major modes. When Calc embedded mode is
34676enabled, it will try to use the current major mode to
34677determine what language should be used. (This can be overridden using
34678Calc's mode changing commands, @xref{Mode Settings in Embedded Mode}.)
34679The variable @code{calc-language-alist} consists of a list of pairs of
34680the form @code{(@var{KEY} . @var{VALUE})}; for example,
34681@code{(latex-mode . latex)} is one such pair. If Calc embedded is
34682activated in a buffer whose major mode is @var{KEY}, it will set itself
34683to use the language @var{VALUE}.
34684
34685The default value of @code{calc-language-alist} is
34632@example 34686@example
34633 34687 ((latex-mode . latex)
34688 (tex-mode . tex)
34689 (plain-tex-mode . tex)
34690 (context-mode . tex)
34691 (nroff-mode . eqn)
34692 (pascal-mode . pascal)
34693 (c-mode . c)
34694 (c++-mode . c)
34695 (fortran-mode . fortran)
34696 (f90-mode . fortran))
34634@end example 34697@end example
34635@end ifinfo
34636 34698
34637@appendixsec Settings File 34699@item calc-embedded-announce-formula
34638 34700
34639@noindent 34701See @ref{Customizing Embedded Mode}.@*
34640@vindex calc-settings-file 34702The variable @code{calc-embedded-announce-formula} helps determine
34641Another variable you might want to set is @code{calc-settings-file}, 34703what formulas @kbd{M-# a} will activate in a buffer. It is a
34642which holds the file name in which commands like @kbd{m m} and @kbd{Z P} 34704regular expression, and when activating embedded formulas with
34643store ``permanent'' definitions. The default value for this variable 34705@kbd{M-# a}, it will tell Calc that what follows is a formula to be
34644is @code{"~/.calc.el"}. If @code{calc-settings-file} is not your user 34706activated. (Calc also uses other patterns to find formulas, such as
34645init file (typically @file{~/.emacs}) and if the variable 34707@samp{=>} and @samp{:=}.)
34646@code{calc-loaded-settings-file} is @code{nil}, then Calc will
34647automatically load your settings file (if it exists) the first time
34648Calc is invoked.
34649 34708
34650@ifinfo 34709The default pattern is @code{"%Embed\n\\(% .*\n\\)*"}, which checks
34651@example 34710for @samp{%Embed} followed by any number of lines beginning with
34711@samp{%} and a space.
34652 34712
34653@end example 34713@item calc-embedded-open-formula
34654@end ifinfo 34714@itemx calc-embedded-close-formula
34655@appendixsec Testing the Installation
34656 34715
34657@noindent 34716See @ref{Customizing Embedded Mode}.@*
34658To test your installation of Calc, start a new Emacs and type @kbd{M-# c} 34717The variables @code{calc-embedded-open-formula} and
34659to make sure the autoloads and key bindings work. Type @kbd{M-# i} 34718@code{calc-embedded-open-formula} control the region that Calc will
34660to make sure Calc can find its Info documentation. Press @kbd{q} to 34719activate as a formula when Embedded mode is entered with @kbd{M-# e}.
34661exit the Info system and @kbd{M-# c} to re-enter the Calculator. 34720They are regular expressions;
34662Type @kbd{20 S} to compute the sine of 20 degrees; this will test the 34721Calc normally scans backward and forward in the buffer for the
34663autoloading of the extensions modules. The result should be 34722nearest text matching these regular expressions to be the ``formula
346640.342020143326. Finally, press @kbd{M-# c} again to make sure the 34723delimiters''.
34665Calculator can exit. 34724
34725The simplest delimiters are blank lines. Other delimiters that
34726Embedded mode understands by default are:
34727@enumerate
34728@item
34729The @TeX{} and La@TeX{} math delimiters @samp{$ $}, @samp{$$ $$},
34730@samp{\[ \]}, and @samp{\( \)};
34731@item
34732Lines beginning with @samp{\begin} and @samp{\end} (except matrix delimiters);
34733@item
34734Lines beginning with @samp{@@} (Texinfo delimiters).
34735@item
34736Lines beginning with @samp{.EQ} and @samp{.EN} (@dfn{eqn} delimiters);
34737@item
34738Lines containing a single @samp{%} or @samp{.\"} symbol and nothing else.
34739@end enumerate
34666 34740
34667You may also wish to test the GNUPLOT interface; to plot a sine wave, 34741@item calc-embedded-open-word
34668type @kbd{' [0 ..@: 360], sin(x) @key{RET} g f}. Type @kbd{g q} when you 34742@itemx calc-embedded-close-word
34669are done viewing the plot.
34670 34743
34671Calc is now ready to use. If you wish to go through the Calc Tutorial, 34744See @ref{Customizing Embedded Mode}.@*
34672press @kbd{M-# t} to begin. 34745The variables @code{calc-embedded-open-word} and
34673@example 34746@code{calc-embedded-close-word} control the region that Calc will
34747activate when Embedded mode is entered with @kbd{M-# w}. They are
34748regular expressions.
34674 34749
34675@end example 34750The default values of @code{calc-embedded-open-word} and
34676@node Reporting Bugs, Summary, Installation, Top 34751@code{calc-embedded-close-word} are @code{"^\\|[^-+0-9.eE]"} and
34752@code{"$\\|[^-+0-9.eE]"} respectively.
34753
34754@item calc-embedded-open-plain
34755@itemx calc-embedded-close-plain
34756
34757See @ref{Customizing Embedded Mode}.@*
34758The variables @code{calc-embedded-open-plain} and
34759@code{calc-embedded-open-plain} are used to delimit ``plain''
34760formulas. Note that these are actual strings, not regular
34761expressions, because Calc must be able to write these string into a
34762buffer as well as to recognize them.
34763
34764The default string for @code{calc-embedded-open-plain} is
34765@code{"%%% "}, note the trailing space. The default string for
34766@code{calc-embedded-close-plain} is @code{" %%%\n"}, without
34767the trailing newline here, the first line of a Big mode formula
34768that followed might be shifted over with respect to the other lines.
34769
34770@item calc-embedded-open-new-formula
34771@itemx calc-embedded-close-new-formula
34772
34773See @ref{Customizing Embedded Mode}.@*
34774The variables @code{calc-embedded-open-new-formula} and
34775@code{calc-embedded-close-new-formula} are strings which are
34776inserted before and after a new formula when you type @kbd{M-# f}.
34777
34778The default value of @code{calc-embedded-open-new-formula} is
34779@code{"\n\n"}. If this string begins with a newline character and the
34780@kbd{M-# f} is typed at the beginning of a line, @kbd{M-# f} will skip
34781this first newline to avoid introducing unnecessary blank lines in the
34782file. The default value of @code{calc-embedded-close-new-formula} is
34783also @code{"\n\n"}. The final newline is omitted by @w{@kbd{M-# f}}
34784if typed at the end of a line. (It follows that if @kbd{M-# f} is
34785typed on a blank line, both a leading opening newline and a trailing
34786closing newline are omitted.)
34787
34788@item calc-embedded-open-mode
34789@itemx calc-embedded-close-mode
34790
34791See @ref{Customizing Embedded Mode}.@*
34792The variables @code{calc-embedded-open-mode} and
34793@code{calc-embedded-close-mode} are strings which Calc will place before
34794and after any mode annotations that it inserts. Calc never scans for
34795these strings; Calc always looks for the annotation itself, so it is not
34796necessary to add them to user-written annotations.
34797
34798The default value of @code{calc-embedded-open-mode} is @code{"% "}
34799and the default value of @code{calc-embedded-close-mode} is
34800@code{"\n"}.
34801If you change the value of @code{calc-embedded-close-mode}, it is a good
34802idea still to end with a newline so that mode annotations will appear on
34803lines by themselves.
34804
34805@end table
34806
34807@node Reporting Bugs, Summary, Customizable Variables, Top
34677@appendix Reporting Bugs 34808@appendix Reporting Bugs
34678 34809
34679@noindent 34810@noindent
diff --git a/man/calendar.texi b/man/calendar.texi
index 999c29dae06..723fa7ce3c4 100644
--- a/man/calendar.texi
+++ b/man/calendar.texi
@@ -691,6 +691,12 @@ Their calendar consists of twelve months of which the first six have 31
691days, the next five have 30 days, and the last has 29 in ordinary years 691days, the next five have 30 days, and the last has 29 in ordinary years
692and 30 in leap years. Leap years occur in a complicated pattern every 692and 30 in leap years. Leap years occur in a complicated pattern every
693four or five years. 693four or five years.
694The calendar implemented here is the arithmetical Persian calendar
695championed by Birashk, based on a 2,820-year cycle. It differs from
696the astronomical Persian calendar, which is based on astronomical
697events. As of this writing the first future discrepancy is projected
698to occur on March 20, 2025. It is currently not clear what the
699official calendar of Iran will be that far into the future.
694 700
695@cindex Chinese calendar 701@cindex Chinese calendar
696 The Chinese calendar is a complicated system of lunar months arranged 702 The Chinese calendar is a complicated system of lunar months arranged
diff --git a/man/cmdargs.texi b/man/cmdargs.texi
index 38ac3301781..d49ffba6103 100644
--- a/man/cmdargs.texi
+++ b/man/cmdargs.texi
@@ -1196,8 +1196,9 @@ appear until you deiconify it.
1196@opindex -hb 1196@opindex -hb
1197@itemx --horizontal-scroll-bars 1197@itemx --horizontal-scroll-bars
1198@opindex --horizontal-scroll-bars 1198@opindex --horizontal-scroll-bars
1199@cindex horizontal scroll bars, command-line argument 1199@c @cindex horizontal scroll bars, command-line argument
1200Enable horizontal scroll bars. 1200Enable horizontal scroll bars. Since horizontal scroll bars
1201are not yet implemented, this actually does nothing.
1201 1202
1202@item -vb 1203@item -vb
1203@opindex -vb 1204@opindex -vb
diff --git a/man/files.texi b/man/files.texi
index 7ed2baa0b93..a03bb2a64ea 100644
--- a/man/files.texi
+++ b/man/files.texi
@@ -940,14 +940,8 @@ Auto-Revert Tail mode, @kbd{M-x auto-revert-tail-mode}.
940for a changed file. Since checking a remote file is too slow, these 940for a changed file. Since checking a remote file is too slow, these
941modes do not check or revert remote files. 941modes do not check or revert remote files.
942 942
943@vindex auto-revert-check-vc-info 943@xref{VC Mode Line}, for Auto Revert peculiarities in buffers that
944 Whenever Auto Revert mode reverts the buffer, it updates the version 944visit files under version control.
945control information, such as the version control number displayed in
946the mode line. However, this information may not be properly updated
947if the version control state changes outside of Emacs---for example,
948if a new version is checked in from outside the current Emacs session.
949If you set @code{auto-revert-check-vc-info} to @code{t}, Auto Revert
950mode will update the version control status information periodically.
951 945
952@node Auto Save 946@node Auto Save
953@section Auto-Saving: Protection Against Disasters 947@section Auto-Saving: Protection Against Disasters
@@ -1375,6 +1369,18 @@ locking is not in use). @samp{:} indicates that the file is locked, or
1375that it is modified. If the file is locked by some other user (for 1369that it is modified. If the file is locked by some other user (for
1376instance, @samp{jim}), that is displayed as @samp{RCS:jim:1.3}. 1370instance, @samp{jim}), that is displayed as @samp{RCS:jim:1.3}.
1377 1371
1372@vindex auto-revert-check-vc-info
1373 When Auto Revert mode (@pxref{Reverting}) reverts a buffer that is
1374under version control, it updates the version control information in
1375the mode line. However, Auto Revert mode may not properly update this
1376information if the version control status changes without changes to
1377the work file, from outside the current Emacs session. If you set
1378@code{auto-revert-check-vc-info} to @code{t}, Auto Revert mode updates
1379the version control status information every
1380@code{auto-revert-interval} seconds, even if the work file itself is
1381unchanged. The resulting CPU usage depends on the version control
1382system, but is usually not excessive.
1383
1378@node Basic VC Editing 1384@node Basic VC Editing
1379@subsection Basic Editing under Version Control 1385@subsection Basic Editing under Version Control
1380 1386
diff --git a/man/maintaining.texi b/man/maintaining.texi
index 231699a7d02..f8bc0de5992 100644
--- a/man/maintaining.texi
+++ b/man/maintaining.texi
@@ -1,5 +1,6 @@
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,99,00,2001 Free Software Foundation, Inc. 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
3@c 2001, 2005 Free Software Foundation, Inc.
3@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
4@node Maintaining, Abbrevs, Building, Top 5@node Maintaining, Abbrevs, Building, Top
5@chapter Maintaining Programs 6@chapter Maintaining Programs
@@ -8,8 +9,8 @@
8@cindex program editing 9@cindex program editing
9 10
10 This chapter describes Emacs features for maintaining programs. The 11 This chapter describes Emacs features for maintaining programs. The
11version control features (@pxref{Version Control}) are also 12version control features (@pxref{Version Control}) are also particularly
12particularly useful for this purpose. 13useful for this purpose.
13 14
14@menu 15@menu
15* Change Log:: Maintaining a change history for your program. 16* Change Log:: Maintaining a change history for your program.
@@ -51,13 +52,13 @@ permitted provided the copyright notice and this notice are preserved.
51@noindent 52@noindent
52Of course, you should substitute the proper years and copyright holder. 53Of course, you should substitute the proper years and copyright holder.
53 54
54 A change log entry starts with a header line that contains the 55 A change log entry starts with a header line that contains the current
55current date, your name, and your email address (taken from the 56date, your name, and your email address (taken from the variable
56variable @code{user-mail-address}). Aside from these header lines, 57@code{add-log-mailing-address}). Aside from these header lines, every
57every line in the change log starts with a space or a tab. The bulk 58line in the change log starts with a space or a tab. The bulk of the
58of the entry consists of @dfn{items}, each of which starts with a line 59entry consists of @dfn{items}, each of which starts with a line starting
59starting with whitespace and a star. Here are two entries, both dated 60with whitespace and a star. Here are two entries, both dated in May
60in May 1993, each with two items: 611993, each with two items:
61 62
62@iftex 63@iftex
63@medbreak 64@medbreak
diff --git a/src/ChangeLog b/src/ChangeLog
index c3f13e624a8..a7c0dfdb8fa 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,56 @@
12005-04-02 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 * alloc.c (allocate_string_data): Call BLOCK_INPUT before calling
4 mallopt.
5
6 * ralloc.c (r_alloc_init): Ditto.
7
82005-04-01 Kenichi Handa <handa@m17n.org>
9
10 * lisp.h (Vascii_upcase_table, Vascii_canon_table,
11 Vascii_eqv_table): Extern them.
12
13 * casetab.c (set_case_table): If standard is nonzero, setup
14 Vascii_upcase_table, Vascii_canon_table, and Vascii_eqv_table.
15
16 * search.c (looking_at_1): Use current_buffer->case_canon_table,
17 not DOWNCASE_TABLE.
18 (string_match_1): Likewise.
19 (fast_c_string_match_ignore_case): Use Vascii_canon_table, not
20 Vascii_downcase_table.
21 (fast_string_match_ignore_case): Likewise.
22 (search_buffer): Fix checking of boyer-moore usability.
23 (boyer_moore): Calculate translate_prev_byte1/2/3 in advance. No
24 need of tranlating characters in PAT. Fix calculation of
25 simple_translate.
26
272005-03-31 Stefan Monnier <monnier@iro.umontreal.ca>
28
29 * xterm.c [HAVE_XAW3D]: Include ThreeD.h for XtNbeNiceToColormap.
30 (x_create_toolkit_scroll_bar): Test XtNbeNiceToColormap before using it.
31 Use XtNtopShadowPixel and XtNbottomShadowPixel.
32 (x_set_toolkit_scroll_bar_thumb): Remove ugly old hack that didn't
33 really work and that breaks with some versions of Xaw3d.
34
352005-03-31 Kenichi Handa <handa@m17n.org>
36
37 * coding.c (syms_of_coding): Fix previous change.
38
392005-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
40
41 * fileio.c (search_embedded_absfilename): Fix last change.
42
432005-03-25 Kenichi Handa <handa@m17n.org>
44
45 * coding.c (syms_of_coding): Suggest to use set-coding-category in
46 the docstring of coding-category-list.
47
482005-03-31 Kim F. Storm <storm@cua.dk>
49
50 * keyboard.c (Qmouse_fixup_help_message): New var.
51 (syms_of_keyboard): Intern and staticpro it.
52 (show_help_echo): Apply mouse-fixup-help-message to help string.
53
12005-03-30 Kim F. Storm <storm@cua.dk> 542005-03-30 Kim F. Storm <storm@cua.dk>
2 55
3 * xdisp.c (display_line): Allow multiple overlay arrows in window. 56 * xdisp.c (display_line): Allow multiple overlay arrows in window.
@@ -15,7 +68,7 @@
15 68
162005-03-26 Lennart Borgman <lennart.borgman.073@student.lu.se> 692005-03-26 Lennart Borgman <lennart.borgman.073@student.lu.se>
17 70
18 * w32term.h (x_output): add focus_state. 71 * w32term.h (x_output): Add focus_state.
19 72
20 * w32term.c (x_focus_changed, w32_detect_focus_change): New functions. 73 * w32term.c (x_focus_changed, w32_detect_focus_change): New functions.
21 (w32_read_socket) [WM_SETFOCUS]: Call w32_detect_focus_change. 74 (w32_read_socket) [WM_SETFOCUS]: Call w32_detect_focus_change.
diff --git a/src/alloc.c b/src/alloc.c
index aacce3041d5..aee09c3f16c 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -1933,14 +1933,18 @@ allocate_string_data (s, nchars, nbytes)
1933 mmap'ed data typically have an address towards the top of the 1933 mmap'ed data typically have an address towards the top of the
1934 address space, which won't fit into an EMACS_INT (at least on 1934 address space, which won't fit into an EMACS_INT (at least on
1935 32-bit systems with the current tagging scheme). --fx */ 1935 32-bit systems with the current tagging scheme). --fx */
1936 BLOCK_INPUT;
1936 mallopt (M_MMAP_MAX, 0); 1937 mallopt (M_MMAP_MAX, 0);
1938 UNBLOCK_INPUT;
1937#endif 1939#endif
1938 1940
1939 b = (struct sblock *) lisp_malloc (size + GC_STRING_EXTRA, MEM_TYPE_NON_LISP); 1941 b = (struct sblock *) lisp_malloc (size + GC_STRING_EXTRA, MEM_TYPE_NON_LISP);
1940 1942
1941#ifdef DOUG_LEA_MALLOC 1943#ifdef DOUG_LEA_MALLOC
1942 /* Back to a reasonable maximum of mmap'ed areas. */ 1944 /* Back to a reasonable maximum of mmap'ed areas. */
1945 BLOCK_INPUT;
1943 mallopt (M_MMAP_MAX, MMAP_MAX_AREAS); 1946 mallopt (M_MMAP_MAX, MMAP_MAX_AREAS);
1947 UNBLOCK_INPUT;
1944#endif 1948#endif
1945 1949
1946 b->next_free = &b->first_data; 1950 b->next_free = &b->first_data;
diff --git a/src/casetab.c b/src/casetab.c
index 63f29666a50..d0e0e137462 100644
--- a/src/casetab.c
+++ b/src/casetab.c
@@ -161,7 +161,12 @@ set_case_table (table, standard)
161 XCHAR_TABLE (canon)->extras[2] = eqv; 161 XCHAR_TABLE (canon)->extras[2] = eqv;
162 162
163 if (standard) 163 if (standard)
164 Vascii_downcase_table = table; 164 {
165 Vascii_downcase_table = table;
166 Vascii_upcase_table = up;
167 Vascii_canon_table = canon;
168 Vascii_eqv_table = eqv;
169 }
165 else 170 else
166 { 171 {
167 current_buffer->downcase_table = table; 172 current_buffer->downcase_table = table;
diff --git a/src/coding.c b/src/coding.c
index 6fcb031b432..66430553a84 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -9357,7 +9357,7 @@ associated with each coding-category one by one in this order. When
9357one algorithm agrees with a byte sequence of source text, the coding 9357one algorithm agrees with a byte sequence of source text, the coding
9358system bound to the corresponding coding-category is selected. 9358system bound to the corresponding coding-category is selected.
9359 9359
9360Don't modify this variable directly, but use `set-coding-category'. */); 9360Don't modify this variable directly, but use `set-coding-priority'. */);
9361 { 9361 {
9362 int i; 9362 int i;
9363 9363
diff --git a/src/keyboard.c b/src/keyboard.c
index ec68d35cae6..bd3e27c0f1a 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -523,6 +523,10 @@ Lisp_Object Qmake_frame_visible;
523Lisp_Object Qselect_window; 523Lisp_Object Qselect_window;
524Lisp_Object Qhelp_echo; 524Lisp_Object Qhelp_echo;
525 525
526#ifdef HAVE_MOUSE
527Lisp_Object Qmouse_fixup_help_message;
528#endif
529
526/* Symbols to denote kinds of events. */ 530/* Symbols to denote kinds of events. */
527Lisp_Object Qfunction_key; 531Lisp_Object Qfunction_key;
528Lisp_Object Qmouse_click; 532Lisp_Object Qmouse_click;
@@ -2304,6 +2308,11 @@ show_help_echo (help, window, object, pos, ok_to_overwrite_keystroke_echo)
2304 return; 2308 return;
2305 } 2309 }
2306 2310
2311#ifdef HAVE_MOUSE
2312 if (!noninteractive && STRINGP (help))
2313 help = call1 (Qmouse_fixup_help_message, help);
2314#endif
2315
2307 if (STRINGP (help) || NILP (help)) 2316 if (STRINGP (help) || NILP (help))
2308 { 2317 {
2309 if (!NILP (Vshow_help_function)) 2318 if (!NILP (Vshow_help_function))
@@ -10873,6 +10882,11 @@ syms_of_keyboard ()
10873 Qmenu_bar = intern ("menu-bar"); 10882 Qmenu_bar = intern ("menu-bar");
10874 staticpro (&Qmenu_bar); 10883 staticpro (&Qmenu_bar);
10875 10884
10885#ifdef HAVE_MOUSE
10886 Qmouse_fixup_help_message = intern ("mouse-fixup-help-message");
10887 staticpro (&Qmouse_fixup_help_message);
10888#endif
10889
10876 Qabove_handle = intern ("above-handle"); 10890 Qabove_handle = intern ("above-handle");
10877 staticpro (&Qabove_handle); 10891 staticpro (&Qabove_handle);
10878 Qhandle = intern ("handle"); 10892 Qhandle = intern ("handle");
diff --git a/src/lisp.h b/src/lisp.h
index 160a5cb398b..ca8795fb1e1 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1879,7 +1879,8 @@ extern Lisp_Object case_temp2;
1879 NATNUMP (case_temp2)) \ 1879 NATNUMP (case_temp2)) \
1880 ? XFASTINT (case_temp2) : case_temp1) 1880 ? XFASTINT (case_temp2) : case_temp1)
1881 1881
1882extern Lisp_Object Vascii_downcase_table; 1882extern Lisp_Object Vascii_downcase_table, Vascii_upcase_table;
1883extern Lisp_Object Vascii_canon_table, Vascii_eqv_table;
1883 1884
1884/* Number of bytes of structure consed since last GC. */ 1885/* Number of bytes of structure consed since last GC. */
1885 1886
diff --git a/src/ralloc.c b/src/ralloc.c
index 75c25258a9d..fd0d62e1977 100644
--- a/src/ralloc.c
+++ b/src/ralloc.c
@@ -28,6 +28,7 @@ Boston, MA 02111-1307, USA. */
28 28
29#include <config.h> 29#include <config.h>
30#include "lisp.h" /* Needed for VALBITS. */ 30#include "lisp.h" /* Needed for VALBITS. */
31#include "blockinput.h"
31 32
32#ifdef HAVE_UNISTD_H 33#ifdef HAVE_UNISTD_H
33#include <unistd.h> 34#include <unistd.h>
@@ -1255,7 +1256,9 @@ r_alloc_init ()
1255#endif 1256#endif
1256 1257
1257#ifdef DOUG_LEA_MALLOC 1258#ifdef DOUG_LEA_MALLOC
1258 mallopt (M_TOP_PAD, 64 * 4096); 1259 BLOCK_INPUT;
1260 mallopt (M_TOP_PAD, 64 * 4096);
1261 UNBLOCK_INPUT;
1259#else 1262#else
1260#ifndef SYSTEM_MALLOC 1263#ifndef SYSTEM_MALLOC
1261 /* Give GNU malloc's morecore some hysteresis 1264 /* Give GNU malloc's morecore some hysteresis
diff --git a/src/search.c b/src/search.c
index 30e4be41ca9..fb149c665a9 100644
--- a/src/search.c
+++ b/src/search.c
@@ -259,7 +259,7 @@ looking_at_1 (string, posix)
259 CHECK_STRING (string); 259 CHECK_STRING (string);
260 bufp = compile_pattern (string, &search_regs, 260 bufp = compile_pattern (string, &search_regs,
261 (!NILP (current_buffer->case_fold_search) 261 (!NILP (current_buffer->case_fold_search)
262 ? DOWNCASE_TABLE : Qnil), 262 ? current_buffer->case_canon_table : Qnil),
263 posix, 263 posix,
264 !NILP (current_buffer->enable_multibyte_characters)); 264 !NILP (current_buffer->enable_multibyte_characters));
265 265
@@ -365,7 +365,7 @@ string_match_1 (regexp, string, start, posix)
365 365
366 bufp = compile_pattern (regexp, &search_regs, 366 bufp = compile_pattern (regexp, &search_regs,
367 (!NILP (current_buffer->case_fold_search) 367 (!NILP (current_buffer->case_fold_search)
368 ? DOWNCASE_TABLE : Qnil), 368 ? current_buffer->case_canon_table : Qnil),
369 posix, 369 posix,
370 STRING_MULTIBYTE (string)); 370 STRING_MULTIBYTE (string));
371 immediate_quit = 1; 371 immediate_quit = 1;
@@ -465,7 +465,7 @@ fast_c_string_match_ignore_case (regexp, string)
465 regexp = string_make_unibyte (regexp); 465 regexp = string_make_unibyte (regexp);
466 re_match_object = Qt; 466 re_match_object = Qt;
467 bufp = compile_pattern (regexp, 0, 467 bufp = compile_pattern (regexp, 0,
468 Vascii_downcase_table, 0, 468 Vascii_canon_table, 0,
469 0); 469 0);
470 immediate_quit = 1; 470 immediate_quit = 1;
471 val = re_search (bufp, string, len, 0, len, 0); 471 val = re_search (bufp, string, len, 0, len, 0);
@@ -482,7 +482,7 @@ fast_string_match_ignore_case (regexp, string)
482 int val; 482 int val;
483 struct re_pattern_buffer *bufp; 483 struct re_pattern_buffer *bufp;
484 484
485 bufp = compile_pattern (regexp, 0, Vascii_downcase_table, 485 bufp = compile_pattern (regexp, 0, Vascii_canon_table,
486 0, STRING_MULTIBYTE (string)); 486 0, STRING_MULTIBYTE (string));
487 immediate_quit = 1; 487 immediate_quit = 1;
488 re_match_object = string; 488 re_match_object = string;
@@ -1253,6 +1253,7 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
1253 if (RE && *base_pat == '\\') 1253 if (RE && *base_pat == '\\')
1254 { 1254 {
1255 len--; 1255 len--;
1256 raw_pattern_size--;
1256 base_pat++; 1257 base_pat++;
1257 } 1258 }
1258 c = *base_pat++; 1259 c = *base_pat++;
@@ -1487,16 +1488,18 @@ simple_search (n, pat, len, len_byte, trt, pos, pos_byte, lim, lim_byte)
1487 return n; 1488 return n;
1488} 1489}
1489 1490
1490/* Do Boyer-Moore search N times for the string PAT, 1491/* Do Boyer-Moore search N times for the string BASE_PAT,
1491 whose length is LEN/LEN_BYTE, 1492 whose length is LEN/LEN_BYTE,
1492 from buffer position POS/POS_BYTE until LIM/LIM_BYTE. 1493 from buffer position POS/POS_BYTE until LIM/LIM_BYTE.
1493 DIRECTION says which direction we search in. 1494 DIRECTION says which direction we search in.
1494 TRT and INVERSE_TRT are translation tables. 1495 TRT and INVERSE_TRT are translation tables.
1496 Characters in PAT are already translated by TRT.
1495 1497
1496 This kind of search works if all the characters in PAT that have 1498 This kind of search works if all the characters in BASE_PAT that
1497 nontrivial translation are the same aside from the last byte. This 1499 have nontrivial translation are the same aside from the last byte.
1498 makes it possible to translate just the last byte of a character, 1500 This makes it possible to translate just the last byte of a
1499 and do so after just a simple test of the context. 1501 character, and do so after just a simple test of the context.
1502 CHARSET_BASE is nonzero iff there is such a non-ASCII character.
1500 1503
1501 If that criterion is not satisfied, do not call this function. */ 1504 If that criterion is not satisfied, do not call this function. */
1502 1505
@@ -1523,8 +1526,13 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
1523 int multibyte = ! NILP (current_buffer->enable_multibyte_characters); 1526 int multibyte = ! NILP (current_buffer->enable_multibyte_characters);
1524 1527
1525 unsigned char simple_translate[0400]; 1528 unsigned char simple_translate[0400];
1526 int translate_prev_byte = 0; 1529 /* These are set to the preceding bytes of a byte to be translated
1527 int translate_anteprev_byte = 0; 1530 if charset_base is nonzero. As the maximum byte length of a
1531 multibyte character is 4, we have to check at most three previous
1532 bytes. */
1533 int translate_prev_byte1 = 0;
1534 int translate_prev_byte2 = 0;
1535 int translate_prev_byte3 = 0;
1528 1536
1529#ifdef C_ALLOCA 1537#ifdef C_ALLOCA
1530 int BM_tab_space[0400]; 1538 int BM_tab_space[0400];
@@ -1590,6 +1598,23 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
1590 for (i = 0; i < 0400; i++) 1598 for (i = 0; i < 0400; i++)
1591 simple_translate[i] = i; 1599 simple_translate[i] = i;
1592 1600
1601 if (charset_base)
1602 {
1603 /* Setup translate_prev_byte1/2/3 from CHARSET_BASE. Only a
1604 byte following them are the target of translation. */
1605 int sample_char = charset_base | 0x20;
1606 unsigned char str[MAX_MULTIBYTE_LENGTH];
1607 int len = CHAR_STRING (sample_char, str);
1608
1609 translate_prev_byte1 = str[len - 2];
1610 if (len > 2)
1611 {
1612 translate_prev_byte2 = str[len - 3];
1613 if (len > 3)
1614 translate_prev_byte3 = str[len - 4];
1615 }
1616 }
1617
1593 i = 0; 1618 i = 0;
1594 while (i != infinity) 1619 while (i != infinity)
1595 { 1620 {
@@ -1777,9 +1802,13 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
1777 || ((cursor == tail_end_ptr 1802 || ((cursor == tail_end_ptr
1778 || CHAR_HEAD_P (cursor[1])) 1803 || CHAR_HEAD_P (cursor[1]))
1779 && (CHAR_HEAD_P (cursor[0]) 1804 && (CHAR_HEAD_P (cursor[0])
1780 || (translate_prev_byte == cursor[-1] 1805 /* Check if this is the last byte of
1781 && (CHAR_HEAD_P (translate_prev_byte) 1806 a translable character. */
1782 || translate_anteprev_byte == cursor[-2]))))) 1807 || (translate_prev_byte1 == cursor[-1]
1808 && (CHAR_HEAD_P (translate_prev_byte1)
1809 || (translate_prev_byte2 == cursor[-2]
1810 && (CHAR_HEAD_P (translate_prev_byte2)
1811 || (translate_prev_byte3 == cursor[-3]))))))))
1783 ch = simple_translate[*cursor]; 1812 ch = simple_translate[*cursor];
1784 else 1813 else
1785 ch = *cursor; 1814 ch = *cursor;
@@ -1857,9 +1886,13 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
1857 || ((ptr == tail_end_ptr 1886 || ((ptr == tail_end_ptr
1858 || CHAR_HEAD_P (ptr[1])) 1887 || CHAR_HEAD_P (ptr[1]))
1859 && (CHAR_HEAD_P (ptr[0]) 1888 && (CHAR_HEAD_P (ptr[0])
1860 || (translate_prev_byte == ptr[-1] 1889 /* Check if this is the last byte of a
1861 && (CHAR_HEAD_P (translate_prev_byte) 1890 translable character. */
1862 || translate_anteprev_byte == ptr[-2]))))) 1891 || (translate_prev_byte1 == ptr[-1]
1892 && (CHAR_HEAD_P (translate_prev_byte1)
1893 || (translate_prev_byte2 == ptr[-2]
1894 && (CHAR_HEAD_P (translate_prev_byte2)
1895 || translate_prev_byte3 == ptr[-3])))))))
1863 ch = simple_translate[*ptr]; 1896 ch = simple_translate[*ptr];
1864 else 1897 else
1865 ch = *ptr; 1898 ch = *ptr;
diff --git a/src/xterm.c b/src/xterm.c
index 3b6d2e18ac6..26af2848f9b 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -131,9 +131,7 @@ extern void _XEditResCheckMessages ();
131#ifdef HAVE_XAW3D 131#ifdef HAVE_XAW3D
132#include <X11/Xaw3d/Simple.h> 132#include <X11/Xaw3d/Simple.h>
133#include <X11/Xaw3d/Scrollbar.h> 133#include <X11/Xaw3d/Scrollbar.h>
134#define ARROW_SCROLLBAR 134#include <X11/Xaw3d/ThreeD.h>
135#define XAW_ARROW_SCROLLBARS
136#include <X11/Xaw3d/ScrollbarP.h>
137#else /* !HAVE_XAW3D */ 135#else /* !HAVE_XAW3D */
138#include <X11/Xaw/Simple.h> 136#include <X11/Xaw/Simple.h>
139#include <X11/Xaw/Scrollbar.h> 137#include <X11/Xaw/Scrollbar.h>
@@ -4553,6 +4551,7 @@ x_create_toolkit_scroll_bar (f, bar)
4553 f->output_data.x->scroll_bar_bottom_shadow_pixel = pixel; 4551 f->output_data.x->scroll_bar_bottom_shadow_pixel = pixel;
4554 } 4552 }
4555 4553
4554#ifdef XtNbeNiceToColormap
4556 /* Tell the toolkit about them. */ 4555 /* Tell the toolkit about them. */
4557 if (f->output_data.x->scroll_bar_top_shadow_pixel == -1 4556 if (f->output_data.x->scroll_bar_top_shadow_pixel == -1
4558 || f->output_data.x->scroll_bar_bottom_shadow_pixel == -1) 4557 || f->output_data.x->scroll_bar_bottom_shadow_pixel == -1)
@@ -4576,16 +4575,17 @@ x_create_toolkit_scroll_bar (f, bar)
4576 pixel = f->output_data.x->scroll_bar_top_shadow_pixel; 4575 pixel = f->output_data.x->scroll_bar_top_shadow_pixel;
4577 if (pixel != -1) 4576 if (pixel != -1)
4578 { 4577 {
4579 XtSetArg (av[ac], "topShadowPixel", pixel); 4578 XtSetArg (av[ac], XtNtopShadowPixel, pixel);
4580 ++ac; 4579 ++ac;
4581 } 4580 }
4582 pixel = f->output_data.x->scroll_bar_bottom_shadow_pixel; 4581 pixel = f->output_data.x->scroll_bar_bottom_shadow_pixel;
4583 if (pixel != -1) 4582 if (pixel != -1)
4584 { 4583 {
4585 XtSetArg (av[ac], "bottomShadowPixel", pixel); 4584 XtSetArg (av[ac], XtNbottomShadowPixel, pixel);
4586 ++ac; 4585 ++ac;
4587 } 4586 }
4588 } 4587 }
4588#endif
4589 4589
4590 widget = XtCreateWidget (scroll_bar_name, scrollbarWidgetClass, 4590 widget = XtCreateWidget (scroll_bar_name, scrollbarWidgetClass,
4591 f->output_data.x->edit_widget, av, ac); 4591 f->output_data.x->edit_widget, av, ac);
@@ -4731,30 +4731,11 @@ x_set_toolkit_scroll_bar_thumb (bar, portion, position, whole)
4731 XawScrollbarSetThumb (widget, top, shown); 4731 XawScrollbarSetThumb (widget, top, shown);
4732 else 4732 else
4733 { 4733 {
4734#ifdef HAVE_XAW3D
4735 ScrollbarWidget sb = (ScrollbarWidget) widget;
4736 int scroll_mode = 0;
4737
4738 /* `scroll_mode' only exists with Xaw3d + ARROW_SCROLLBAR. */
4739 if (xaw3d_arrow_scroll)
4740 {
4741 /* Xaw3d stupidly ignores resize requests while dragging
4742 so we have to make it believe it's not in dragging mode. */
4743 scroll_mode = sb->scrollbar.scroll_mode;
4744 if (scroll_mode == 2)
4745 sb->scrollbar.scroll_mode = 0;
4746 }
4747#endif
4748 /* Try to make the scrolling a tad smoother. */ 4734 /* Try to make the scrolling a tad smoother. */
4749 if (!xaw3d_pick_top) 4735 if (!xaw3d_pick_top)
4750 shown = min (shown, old_shown); 4736 shown = min (shown, old_shown);
4751 4737
4752 XawScrollbarSetThumb (widget, top, shown); 4738 XawScrollbarSetThumb (widget, top, shown);
4753
4754#ifdef HAVE_XAW3D
4755 if (xaw3d_arrow_scroll && scroll_mode == 2)
4756 sb->scrollbar.scroll_mode = scroll_mode;
4757#endif
4758 } 4739 }
4759 } 4740 }
4760 } 4741 }