aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mackenzie2012-01-15 19:34:11 +0000
committerAlan Mackenzie2012-01-15 19:34:11 +0000
commit44b0225ed09cfbc6cee7ed53c630988c342df806 (patch)
treec2e9c9eb79d76db50179d0be46da54a82b751033
parentb493658e2c67e9ae41798edefd7cb9a264e53e99 (diff)
parent97912defd376ad75ac582d073851a5a7a4d3cc12 (diff)
downloademacs-44b0225ed09cfbc6cee7ed53c630988c342df806.tar.gz
emacs-44b0225ed09cfbc6cee7ed53c630988c342df806.zip
Merge.
-rw-r--r--admin/ChangeLog5
-rw-r--r--admin/FOR-RELEASE8
-rw-r--r--doc/emacs/ChangeLog40
-rw-r--r--doc/emacs/anti.texi124
-rw-r--r--doc/emacs/cmdargs.texi226
-rw-r--r--doc/emacs/display.texi18
-rw-r--r--doc/emacs/emacs.texi9
-rw-r--r--doc/emacs/files.texi7
-rw-r--r--doc/emacs/misc.texi16
-rw-r--r--doc/emacs/rmail.texi4
-rw-r--r--doc/emacs/xresources.texi926
-rw-r--r--etc/ChangeLog5
-rw-r--r--etc/tutorials/TUTORIAL6
-rw-r--r--etc/tutorials/TUTORIAL.he227
-rw-r--r--etc/tutorials/TUTORIAL.translators5
-rw-r--r--lisp/ChangeLog27
-rw-r--r--lisp/cedet/ChangeLog17
-rw-r--r--lisp/cedet/ede.el215
-rw-r--r--lisp/cedet/ede/auto.el28
-rw-r--r--lisp/cedet/ede/simple.el3
-rw-r--r--lisp/dired.el21
-rw-r--r--lisp/epg.el7
-rw-r--r--lisp/info.el2
-rw-r--r--lisp/net/tramp-sh.el1
-rw-r--r--lisp/startup.el4
-rw-r--r--msdos/ChangeLog5
-rw-r--r--msdos/sed4.inp1
-rw-r--r--src/ChangeLog5
-rw-r--r--src/w32fns.c5
29 files changed, 851 insertions, 1116 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 3bfbab881aa..597beb60ce2 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,8 @@
12012-01-14 Eli Zaretskii <eliz@gnu.org>
2
3 * FOR-RELEASE (Check the Emacs Tutorial): Mark TUTORIAL.he as
4 updated and checked.
5
12011-11-26 Andreas Schwab <schwab@linux-m68k.org> 62011-11-26 Andreas Schwab <schwab@linux-m68k.org>
2 7
3 * grammars/bovine-grammar.el (bovine--grammar-newstyle-unquote): 8 * grammars/bovine-grammar.el (bovine--grammar-newstyle-unquote):
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index c82dbf36f0d..daf8e33d041 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -107,7 +107,7 @@ TUTORIAL.de
107TUTORIAL.eo 107TUTORIAL.eo
108TUTORIAL.es 108TUTORIAL.es
109TUTORIAL.fr 109TUTORIAL.fr
110TUTORIAL.he 110TUTORIAL.he eliz
111TUTORIAL.it 111TUTORIAL.it
112TUTORIAL.ja 112TUTORIAL.ja
113TUTORIAL.ko 113TUTORIAL.ko
@@ -133,7 +133,7 @@ buffers.texi cyd
133building.texi cyd 133building.texi cyd
134calendar.texi 134calendar.texi
135cal-xtra.texi 135cal-xtra.texi
136cmdargs.texi 136cmdargs.texi cyd
137commands.texi cyd 137commands.texi cyd
138custom.texi cyd 138custom.texi cyd
139dired.texi cyd 139dired.texi cyd
@@ -144,7 +144,7 @@ emacs-xtra.texi
144emerge-xtra.texi 144emerge-xtra.texi
145entering.texi cyd 145entering.texi cyd
146files.texi cyd 146files.texi cyd
147fixit.texi 147fixit.texi cyd
148fortran-xtra.texi 148fortran-xtra.texi
149frames.texi cyd 149frames.texi cyd
150glossary.texi 150glossary.texi
@@ -175,7 +175,7 @@ trouble.texi cyd
175vc-xtra.texi cyd 175vc-xtra.texi cyd
176vc1-xtra.texi cyd 176vc1-xtra.texi cyd
177windows.texi cyd 177windows.texi cyd
178xresources.texi 178xresources.texi cyd
179 179
180** Check the Lisp manual. 180** Check the Lisp manual.
181 181
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 8f7f8ebb220..4f3e5f77fd5 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,43 @@
12012-01-15 Chong Yidong <cyd@gnu.org>
2
3 * xresources.texi (X Resources): Describe GTK+ case first.
4 (Resources): Don't use borderWidth as an example, since it doesn't
5 work with GTK+.
6 (Table of Resources): Clarify role of several resources, including
7 the Emacs 24 behavior of cursorBlink etc.
8 (Face Resources): Node deleted. Recommend using Customize
9 instead. Add paragraph to `Table of Resources' node summarizing
10 how to use X resources for changing faces.
11 (Lucid Resources): Rewrite, omitting description of font names,
12 referring to the Fonts node instead.
13 (LessTif Resources): Copyedits.
14 (GTK resources): Rewrite, describing the difference between gtk2
15 and gtk3.
16 (GTK Resource Basics): New node.
17 (GTK Widget Names, GTK Names in Emacs): Rewrite.
18 (GTK styles): Just refer to Fonts node for GTK font format.
19
20 * display.texi (Faces): Document the cursor face.
21
222012-01-14 Chong Yidong <cyd@gnu.org>
23
24 * cmdargs.texi (Action Arguments): No need to mention
25 EMACSLOADPATH.
26 (General Variables): Add xref to Lisp Libraries.
27 (Initial Options): Copyedits.
28 (Resume Arguments): Node deleted; emacs.bash/csh are obsolete.
29 (Environment): Clarify what getenv does.
30 (General Variables): Clarify EMACSPATH etc. Emacs does not assume
31 light backgrounds on xterms.
32 (Misc Variables): TEMP and TMP are not Windows-specific.
33 (Display X): Copyedits.
34 (Colors X): -bd does nothing for GTK.
35 (Icons X): Gnome 3 doesn't use taskbars.
36
37 * misc.texi (Shell): Document exec-path here.
38
39 * rmail.texi (Movemail): Add xref for exec-path.
40
12012-01-13 Glenn Morris <rgm@gnu.org> 412012-01-13 Glenn Morris <rgm@gnu.org>
2 42
3 * dired.texi (Dired and Find): Clarify find-ls-options. 43 * dired.texi (Dired and Find): Clarify find-ls-options.
diff --git a/doc/emacs/anti.texi b/doc/emacs/anti.texi
index 68f617d2cfd..d9f17c91f5e 100644
--- a/doc/emacs/anti.texi
+++ b/doc/emacs/anti.texi
@@ -3,135 +3,19 @@
3@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
4 4
5@node Antinews, Mac OS / GNUstep, X Resources, Top 5@node Antinews, Mac OS / GNUstep, X Resources, Top
6@appendix Emacs 22 Antinews 6@appendix Emacs 23 Antinews
7@c Update the emacs.texi Antinews menu entry with the above version number. 7@c Update the emacs.texi Antinews menu entry with the above version number.
8 8
9 For those users who live backwards in time, here is information 9 For those users who live backwards in time, here is information
10about downgrading to Emacs version 22.3. We hope you will enjoy the 10about downgrading to Emacs version 23.4. We hope you will enjoy the
11greater simplicity that results from the absence of many Emacs 11greater simplicity that results from the absence of many Emacs
12@value{EMACSVER} features. 12@value{EMACSVER} features.
13 13
14@itemize @bullet 14@itemize @bullet
15
16@item
17We have switched to a character representation specially designed for
18Emacs. Rather than forcing all the widely used scripts into artificial
19alignment, as Unicode does, Emacs treats them all equally, giving
20each one a place in the space of character codes. We have eliminated
21the confusing practice, in Emacs 23, whereby one character can belong
22to multiple character sets. Now each script has its own variant, and
23they all are different as far as Emacs is concerned. For example,
24there's a Latin-1 c-cedilla character, and there's a Latin-2
25c-cedilla; searching a buffer for the Latin-1 variant only finds that
26variant, but not the others.
27
28@item
29Emacs now uses its own special internal encoding for non-@acronym{ASCII}
30characters, known as @samp{emacs-mule}. This was imperative to
31support several different variants of the same character, each one
32belonging to its own script: @samp{emacs-mule} marks each character
33with its script, to better discern them from one another.
34
35@item
36For simplicity, the functions @code{encode-coding-region} and
37@code{decode-coding-region} no longer accept an argument saying where
38to store the result of their conversions. The result always replaces
39the original, so there's no need to look for it elsewhere.
40
41@item
42Emacs no longer performs font anti-aliasing. If your fonts look ugly,
43try choosing a larger font and increasing the screen resolution.
44Admittedly, this becomes difficult as you go further back in time,
45since available screen resolutions will decrease.
46
47@item
48The Fontconfig font library is no longer supported. To specify a
49font, you must use an XLFD (X Logical Font Descriptor). The other
50ways of specifying fonts---so-called ``Fontconfig'' and ``GTK'' font
51names---are redundant, so they have been removed.
52
53@item
54Transient Mark mode is now disabled by default. Furthermore, some
55commands that operate specifically on the region when it is active and
56Transient Mark mode is enabled (such as @code{fill-paragraph}
57@code{ispell-word}, and @code{indent-for-tab-command}), no longer do
58so.
59
60@item
61Holding @key{shift} while typing a motion command no longer creates a
62temporarily active region, since that's inconsistent with how Emacs
63normally handles keybindings. The variable @code{shift-select-mode}
64has been deleted. You can, however, still create temporarily active
65regions by dragging the mouse.
66
67@item
68The line motion commands, @kbd{C-n} and @kbd{C-p}, now move by logical
69text lines, not screen lines. Even if a long text line is continued
70over multiple screen lines, @kbd{C-n} and @kbd{C-p} treat it as a
71single line, because that's ultimately what it is.
72
73@item
74Visual Line mode, which provides ``word wrap'' functionality, has been
75removed. You can still use Long Lines mode to gain an approximation
76of word wrapping, though this has some drawbacks---for instance,
77syntax highlighting often doesn't work well on wrapped lines.
78
79@item
80@kbd{C-l} now runs @code{recenter} instead of
81@code{recenter-top-bottom}. This always sets the current line at the
82center of the window, instead of cycling through the center, top, and
83bottom of the window on successive invocations. This lets you type
84@kbd{C-l C-l C-l C-l} to be @emph{absolutely sure} that you have
85recentered the line.
86
87@item
88The way Emacs generates possible minibuffer completions is now much
89simpler to understand. It matches alternatives to the text before
90point, ignoring the text after point; it also does not attempt to
91perform partial completion if the first completion attempt fails.
92
93@item
94Typing @kbd{M-n} at the start of the minibuffer history list no longer
95attempts to generate guesses of possible minibuffer input. It instead
96does the straightforward thing, by issuing the message @samp{End of
97history; no default available}.
98
99@item
100Individual buffers can no longer display faces specially. The text
101scaling commands @kbd{C-x C-+}, @kbd{C-x C--}, and @kbd{C-x C-0} have
102been removed, and so has the buffer face menu bound to
103@kbd{S-down-mouse-1}.
104
105@item
106VC no longer supports fileset-based operations on distributed version
107control systems (DVCSs) such as Arch, Bazaar, Subversion, Mercurial,
108and Git. For instance, multi-file commits will be performed by
109committing one file at a time. As you go further back in time, we
110will remove DVCS support entirely, so you should migrate your projects
111to CVS.
112
113@item
114Rmail now uses a special file format, Babyl format, specifically designed
115for storing and editing mail. When you visit a file in Rmail, or get new
116mail, Rmail converts it automatically to Babyl format.
117
118@item
119Emacs can no longer display frames on X windows and text terminals
120(ttys) simultaneously. If you start Emacs as an X application, it
121can only create X frames; if you start Emacs on a tty, it can only use
122that tty. No more confusion about which type of frame
123@command{emacsclient} will use in any given Emacs session!
124
125@item
126Emacs can no longer be started as a daemon. You can be sure that if
127you don't see Emacs, then it's not running.
128
129@item 15@item
130Emacs has added support for many soon-to-be-non-obsolete platforms, 16FIXME
131including VMS, DECstation, SCO Unix, and systems lacking alloca.
132Support for Sun windows has been added.
133 17
134@item 18@item
135To keep up with decreasing computer memory capacity and disk space, many 19To keep up with decreasing computer memory capacity and disk space, many
136other functions and files have been eliminated in Emacs 22.3. 20other functions and files have been eliminated in Emacs 23.4.
137@end itemize 21@end itemize
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 11cc4df8ce9..00730cc6510 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -65,7 +65,6 @@ arguments.)
65 and call functions. 65 and call functions.
66* Initial Options:: Arguments that take effect while starting Emacs. 66* Initial Options:: Arguments that take effect while starting Emacs.
67* Command Example:: Examples of using command line arguments. 67* Command Example:: Examples of using command line arguments.
68* Resume Arguments:: Specifying arguments when you resume a running Emacs.
69* Environment:: Environment variables that Emacs uses. 68* Environment:: Environment variables that Emacs uses.
70* Display X:: Changing the default display and using remote login. 69* Display X:: Changing the default display and using remote login.
71* Font X:: Choosing a font for text, under X. 70* Font X:: Choosing a font for text, under X.
@@ -124,10 +123,9 @@ Visit @var{file} using @code{find-file}, then go to line number
124@opindex --load 123@opindex --load
125@cindex loading Lisp libraries, command-line argument 124@cindex loading Lisp libraries, command-line argument
126Load a Lisp library named @var{file} with the function @code{load}. 125Load a Lisp library named @var{file} with the function @code{load}.
127@xref{Lisp Libraries}. If @var{file} is not an absolute file name, 126If @var{file} is not an absolute file name, Emacs first looks for it
128the library can be found either in the current directory, or in the 127in the current directory, then in the directories listed in
129Emacs library search path as specified with @env{EMACSLOADPATH} 128@code{load-path} (@pxref{Lisp Libraries}).
130(@pxref{General Variables}).
131 129
132@strong{Warning:} If previous command-line arguments have visited 130@strong{Warning:} If previous command-line arguments have visited
133files, the current directory is the directory of the last file 131files, the current directory is the directory of the last file
@@ -186,11 +184,11 @@ specifically related to the X Window System appear in the following
186sections. 184sections.
187 185
188 Some initial options affect the loading of the initialization file. 186 Some initial options affect the loading of the initialization file.
189The normal actions of Emacs are to first load @file{site-start.el} if 187Normally, Emacs first loads @file{site-start.el} if it exists, then
190it exists, then your own initialization file @file{~/.emacs} if it 188your own initialization file if it exists, and finally the default
191exists, and finally @file{default.el} if it exists. @xref{Init File}. 189initialization file @file{default.el} if it exists (@pxref{Init
192Certain options prevent loading of some of these files or substitute 190File}). Certain options prevent loading of some of these files or
193other files for them. 191substitute other files for them.
194 192
195@table @samp 193@table @samp
196@item -chdir @var{directory} 194@item -chdir @var{directory}
@@ -207,8 +205,8 @@ stopped. This makes desktop saving and restoring easier.
207@itemx --terminal=@var{device} 205@itemx --terminal=@var{device}
208@opindex --terminal 206@opindex --terminal
209@cindex device for Emacs terminal I/O 207@cindex device for Emacs terminal I/O
210Use @var{device} as the device for terminal input and output. 208Use @var{device} as the device for terminal input and output. This
211@samp{--terminal} implies @samp{--no-window-system}. 209option implies @samp{--no-window-system}.
212 210
213@item -d @var{display} 211@item -d @var{display}
214@opindex -d 212@opindex -d
@@ -252,7 +250,7 @@ terminal's standard input stream (@code{stdin}) instead.
252@samp{--batch} implies @samp{-q} (do not load an initialization file), 250@samp{--batch} implies @samp{-q} (do not load an initialization file),
253but @file{site-start.el} is loaded nonetheless. It also causes Emacs 251but @file{site-start.el} is loaded nonetheless. It also causes Emacs
254to exit after processing all the command options. In addition, it 252to exit after processing all the command options. In addition, it
255disables auto-saving except in buffers for which it has been 253disables auto-saving except in buffers for which auto-saving is
256explicitly requested. 254explicitly requested.
257 255
258@item --script @var{file} 256@item --script @var{file}
@@ -270,8 +268,8 @@ Emacs. They can start with this text on the first line
270 268
271@noindent 269@noindent
272which will invoke Emacs with @samp{--script} and supply the name of 270which will invoke Emacs with @samp{--script} and supply the name of
273the script file as @var{file}. Emacs Lisp then treats @samp{#!} as a 271the script file as @var{file}. Emacs Lisp then treats the @samp{#!}
274comment delimiter. 272on this first line as a comment delimiter.
275 273
276@item -q 274@item -q
277@opindex -q 275@opindex -q
@@ -280,11 +278,10 @@ comment delimiter.
280@cindex bypassing init and @file{default.el} file 278@cindex bypassing init and @file{default.el} file
281@cindex init file, not loading 279@cindex init file, not loading
282@cindex @file{default.el} file, not loading 280@cindex @file{default.el} file, not loading
283Do not load your Emacs initialization file, and do not load the file 281Do not load any initialization file (@pxref{Init File}). When Emacs
284@file{default.el} either (@pxref{Init File}). Regardless of this 282is invoked with this option, the Customize facility does not allow
285switch, @file{site-start.el} is still loaded. When Emacs is invoked 283options to be saved (@pxref{Easy Customization}). This option does
286like this, the Customize facility does not allow options to be saved 284not disable loading @file{site-start.el}.
287(@pxref{Easy Customization}).
288 285
289@item --no-site-file 286@item --no-site-file
290@opindex --no-site-file 287@opindex --no-site-file
@@ -371,45 +368,6 @@ also guarantees there will be no problem redirecting output to
371@file{log}, because Emacs will not assume that it has a display terminal 368@file{log}, because Emacs will not assume that it has a display terminal
372to work with. 369to work with.
373 370
374@node Resume Arguments
375@appendixsec Resuming Emacs with Arguments
376
377 You can specify action arguments for Emacs when you resume it after
378a suspension. To prepare for this, put the following code in your
379@file{.emacs} file (@pxref{Hooks}):
380
381@c `resume-suspend-hook' is correct. It is the name of a function.
382@example
383(add-hook 'suspend-hook 'resume-suspend-hook)
384(add-hook 'suspend-resume-hook 'resume-process-args)
385@end example
386
387 As further preparation, you must execute the shell script
388@file{emacs.csh} (if you use csh as your shell) or @file{emacs.bash}
389(if you use bash as your shell). These scripts define an alias named
390@code{edit}, which will resume Emacs giving it new command line
391arguments such as files to visit. The scripts are found in the
392@file{etc} subdirectory of the Emacs distribution.
393
394 Only action arguments work properly when you resume Emacs. Initial
395arguments are not recognized---it's too late to execute them anyway.
396
397 Note that resuming Emacs (with or without arguments) must be done from
398within the shell that is the parent of the Emacs job. This is why
399@code{edit} is an alias rather than a program or a shell script. It is
400not possible to implement a resumption command that could be run from
401other subjobs of the shell; there is no way to define a command that could
402be made the value of @env{EDITOR}, for example. Therefore, this feature
403does not take the place of the Emacs Server feature (@pxref{Emacs
404Server}).
405
406 The aliases use the Emacs Server feature if you appear to have a
407server Emacs running. However, they cannot determine this with complete
408accuracy. They may think that a server is still running when in
409actuality you have killed that Emacs, because the file
410@file{/tmp/esrv@dots{}} still exists. If this happens, find that
411file and delete it.
412
413@node Environment 371@node Environment
414@appendixsec Environment Variables 372@appendixsec Environment Variables
415@cindex environment variables 373@cindex environment variables
@@ -424,19 +382,19 @@ letters only. The values are all text strings.
424environment automatically from their parent process. This means you 382environment automatically from their parent process. This means you
425can set up an environment variable in your login shell, and all the 383can set up an environment variable in your login shell, and all the
426programs you run (including Emacs) will automatically see it. 384programs you run (including Emacs) will automatically see it.
427Subprocesses of Emacs (such as shells, compilers, and version-control 385Subprocesses of Emacs (such as shells, compilers, and version control
428software) inherit the environment from Emacs, too. 386programs) inherit the environment from Emacs, too.
429 387
430@findex setenv 388@findex setenv
431@findex getenv 389@findex getenv
432@vindex initial-environment 390@vindex initial-environment
433 Inside Emacs, the command @kbd{M-x getenv} gets the value of an 391 Inside Emacs, the command @kbd{M-x getenv} reads the name of an
434environment variable. @kbd{M-x setenv} sets a variable in the Emacs 392environment variable, and prints its value in the echo area. @kbd{M-x
435environment, and @kbd{C-u M-x setenv} removes a variable. 393setenv} sets a variable in the Emacs environment, and @kbd{C-u M-x
436(Environment variable substitutions with @samp{$} work in the value 394setenv} removes a variable. (Environment variable substitutions with
437just as in file names; see @ref{File Names with $}.) The variable 395@samp{$} work in the value just as in file names; see @ref{File Names
438@code{initial-environment} stores the initial environment inherited by 396with $}.) The variable @code{initial-environment} stores the initial
439Emacs. 397environment inherited by Emacs.
440 398
441 The way to set environment variables outside of Emacs depends on the 399 The way to set environment variables outside of Emacs depends on the
442operating system, and especially the shell that you are using. For 400operating system, and especially the shell that you are using. For
@@ -483,22 +441,25 @@ This is used to initialize the Lisp variable @code{data-directory}.
483Directory for the documentation string file, which is used to 441Directory for the documentation string file, which is used to
484initialize the Lisp variable @code{doc-directory}. 442initialize the Lisp variable @code{doc-directory}.
485@item EMACSLOADPATH 443@item EMACSLOADPATH
486A colon-separated list of directories@footnote{ 444A colon-separated list of directories@footnote{ Here and below,
487Here and below, whenever we say ``colon-separated list of directories,'' 445whenever we say ``colon-separated list of directories,'' it pertains
488it pertains to Unix and GNU/Linux systems. On MS-DOS and MS-Windows, 446to Unix and GNU/Linux systems. On MS-DOS and MS-Windows, the
489the directories are separated by semi-colons instead, since DOS/Windows 447directories are separated by semi-colons instead, since DOS/Windows
490file names might include a colon after a drive letter.} 448file names might include a colon after a drive letter.} to search for
491to search for Emacs Lisp files---used to initialize @code{load-path}. 449Emacs Lisp files. If set, it overrides the usual initial value of the
450@code{load-path} variable (@pxref{Lisp Libraries}).
492@item EMACSPATH 451@item EMACSPATH
493A colon-separated list of directories to search for executable 452A colon-separated list of directories to search for executable files.
494files---used to initialize @code{exec-path}. 453If set, Emacs uses this in addition to @env{PATH} (see below) when
454initializing the variable @code{exec-path} (@pxref{Shell}).
495@item EMAIL 455@item EMAIL
496@vindex user-mail-address@r{, initialization} 456@vindex user-mail-address@r{, initialization}
497Your email address; used to initialize the Lisp variable 457Your email address; used to initialize the Lisp variable
498@code{user-mail-address}, which the Emacs mail interface puts into 458@code{user-mail-address}, which the Emacs mail interface puts into the
499the @samp{From} header of outgoing messages (@pxref{Mail Headers}). 459@samp{From} header of outgoing messages (@pxref{Mail Headers}).
500@item ESHELL 460@item ESHELL
501Used for shell-mode to override the @env{SHELL} environment variable. 461Used for shell-mode to override the @env{SHELL} environment variable
462(@pxref{Interactive Shell}).
502@item HISTFILE 463@item HISTFILE
503The name of the file that shell commands are saved in between logins. 464The name of the file that shell commands are saved in between logins.
504This variable defaults to @file{~/.bash_history} if you use Bash, to 465This variable defaults to @file{~/.bash_history} if you use Bash, to
@@ -554,23 +515,28 @@ environment and coding system. @xref{Language Environments}.
554The user's login name. See also @env{USER}. 515The user's login name. See also @env{USER}.
555@item MAIL 516@item MAIL
556The name of your system mail inbox. 517The name of your system mail inbox.
518@ifnottex
557@item MH 519@item MH
558Name of setup file for the mh system. (The default is @file{~/.mh_profile}.) 520Name of setup file for the mh system. @xref{Top,,MH-E,mh-e, The Emacs
521Interface to MH}.
522@end ifnottex
559@item NAME 523@item NAME
560Your real-world name. 524Your real-world name. This is used to initialize the variable
525@code{user-full-name} (@pxref{Mail Headers}).
561@item NNTPSERVER 526@item NNTPSERVER
562The name of the news server. Used by the mh and Gnus packages. 527The name of the news server. Used by the mh and Gnus packages.
563@item ORGANIZATION 528@item ORGANIZATION
564The name of the organization to which you belong. Used for setting the 529The name of the organization to which you belong. Used for setting the
565`Organization:' header in your posts from the Gnus package. 530`Organization:' header in your posts from the Gnus package.
566@item PATH 531@item PATH
567A colon-separated list of directories in which executables reside. This 532A colon-separated list of directories containing executable files.
568is used to initialize the Emacs Lisp variable @code{exec-path}. 533This is used to initialize the variable @code{exec-path}
534(@pxref{Shell}).
569@item PWD 535@item PWD
570If set, this should be the default directory when Emacs was started. 536If set, this should be the default directory when Emacs was started.
571@item REPLYTO 537@item REPLYTO
572If set, this specifies an initial value for the variable 538If set, this specifies an initial value for the variable
573@code{mail-default-reply-to}. @xref{Mail Headers}. 539@code{mail-default-reply-to} (@pxref{Mail Headers}).
574@item SAVEDIR 540@item SAVEDIR
575The name of a directory in which news articles are saved by default. 541The name of a directory in which news articles are saved by default.
576Used by the Gnus package. 542Used by the Gnus package.
@@ -578,23 +544,29 @@ Used by the Gnus package.
578The name of an interpreter used to parse and execute programs run from 544The name of an interpreter used to parse and execute programs run from
579inside Emacs. 545inside Emacs.
580@item SMTPSERVER 546@item SMTPSERVER
581The name of the outgoing mail server. Used by the SMTP library 547The name of the outgoing mail server. This is used to initialize the
582(@pxref{Top,,,smtpmail,Sending mail via SMTP}). 548variable @code{smtpmail-smtp-server} (@pxref{Mail Sending}).
583@cindex background mode, on @command{xterm} 549@cindex background mode, on @command{xterm}
584@item TERM 550@item TERM
585The type of the terminal that Emacs is using. This variable must be 551The type of the terminal that Emacs is using. This variable must be
586set unless Emacs is run in batch mode. On MS-DOS, it defaults to 552set unless Emacs is run in batch mode. On MS-DOS, it defaults to
587@samp{internal}, which specifies a built-in terminal emulation that 553@samp{internal}, which specifies a built-in terminal emulation that
588handles the machine's own display. If the value of @env{TERM} indicates 554handles the machine's own display.
589that Emacs runs in non-windowed mode from @command{xterm} or a similar
590terminal emulator, the background mode defaults to @samp{light}, and
591Emacs will choose colors that are appropriate for a light background.
592@item TERMCAP 555@item TERMCAP
593The name of the termcap library file describing how to program the 556The name of the termcap library file describing how to program the
594terminal specified by the @env{TERM} variable. This defaults to 557terminal specified by @env{TERM}. This defaults to
595@file{/etc/termcap}. 558@file{/etc/termcap}.
596@item TMPDIR 559@item TMPDIR
597Used by the Emerge package as a prefix for temporary files. 560@itemx TMP
561@itemx TEMP
562These environment variables are used to initialize the variable
563@code{temporary-file-directory}, which specifies a directory in which
564to put temporary files (@pxref{Backup}). Emacs tries to use
565@env{TMPDIR} first; if that is unset, it tries @env{TMP}, then
566@env{TEMP}, and finally @file{/tmp}. But on MS-Windows and MS-DOS,
567Emacs tries @env{TEMP}, then @env{TMPDIR}, then @env{TMP}, and finally
568@file{c:/temp}.
569
598@item TZ 570@item TZ
599This specifies the current time zone and possibly also daylight 571This specifies the current time zone and possibly also daylight
600saving time information. On MS-DOS, if @env{TZ} is not set in the 572saving time information. On MS-DOS, if @env{TZ} is not set in the
@@ -624,11 +596,6 @@ variable.
624On MS-DOS, this variable defaults to the value of the @env{USER} 596On MS-DOS, this variable defaults to the value of the @env{USER}
625variable. 597variable.
626 598
627@item TEMP
628@itemx TMP
629On MS-DOS and MS-Windows, these specify the name of the directory for
630storing temporary files in.
631
632@item EMACSTEST 599@item EMACSTEST
633On MS-DOS, this specifies a file to use to log the operation of the 600On MS-DOS, this specifies a file to use to log the operation of the
634internal terminal emulator. This feature is useful for submitting bug 601internal terminal emulator. This feature is useful for submitting bug
@@ -710,27 +677,21 @@ of the settings which on X belong in the @file{.Xdefaults} file
710@cindex display name (X Window System) 677@cindex display name (X Window System)
711@cindex @env{DISPLAY} environment variable 678@cindex @env{DISPLAY} environment variable
712 679
713 The environment variable @env{DISPLAY} tells all X clients, including 680 The environment variable @env{DISPLAY} tells all X clients,
714Emacs, where to display their windows. Its value is set by default 681including Emacs, where to display their windows. Its value is set by
715in ordinary circumstances, when you start an X server and run jobs 682default in ordinary circumstances, when you start an X server and run
716locally. Occasionally you may need to specify the display yourself; for 683jobs locally. You can specify the display yourself; one reason to do
717example, if you do a remote login and want to run a client program 684this is if you want to log into another system and run Emacs there,
718remotely, displaying on your local screen. 685and have the window displayed at your local terminal.
719
720 With Emacs, the main reason people change the default display is to
721let them log into another system, run Emacs on that system, but have the
722window displayed at their local terminal. You might need to log in
723to another system because the files you want to edit are there, or
724because the Emacs executable file you want to run is there.
725 686
726 @env{DISPLAY} has the syntax 687 @env{DISPLAY} has the syntax
727@samp{@var{host}:@var{display}.@var{screen}}, where @var{host} is the 688@samp{@var{host}:@var{display}.@var{screen}}, where @var{host} is the
728host name of the X Window System server machine, @var{display} is an 689host name of the X Window System server machine, @var{display} is an
729arbitrarily-assigned number that distinguishes your server (X 690arbitrarily-assigned number that distinguishes your server (X
730terminal) from other servers on the same machine, and @var{screen} is 691terminal) from other servers on the same machine, and @var{screen} is
731a rarely-used field that allows an X server to control multiple 692a field that allows an X server to control multiple terminal screens.
732terminal screens. The period and the @var{screen} field are optional. 693The period and the @var{screen} field are optional. If included,
733If included, @var{screen} is usually zero. 694@var{screen} is usually zero.
734 695
735 For example, if your host is named @samp{glasperle} and your server is 696 For example, if your host is named @samp{glasperle} and your server is
736the first (or perhaps the only) server listed in the configuration, your 697the first (or perhaps the only) server listed in the configuration, your
@@ -744,9 +705,9 @@ by changing the @env{DISPLAY} variable, or with the option @samp{-d
744emacs --display=glasperle:0 & 705emacs --display=glasperle:0 &
745@end smallexample 706@end smallexample
746 707
747 You can inhibit the direct use of the window system and GUI with the 708 You can inhibit the use of the X window system with the @samp{-nw}
748@samp{-nw} option. It tells Emacs to display using ordinary @acronym{ASCII} on 709option. Then Emacs uses its controlling text terminal for display.
749its controlling terminal. This is also an initial option. 710@xref{Initial Options}.
750 711
751 Sometimes, security arrangements prevent a program on a remote system 712 Sometimes, security arrangements prevent a program on a remote system
752from displaying on your local system. In this case, trying to run Emacs 713from displaying on your local system. In this case, trying to run Emacs
@@ -778,17 +739,17 @@ font:
778Use @var{font} as the default font. 739Use @var{font} as the default font.
779@end table 740@end table
780 741
781When passing a font specification to Emacs on the command line, you 742When passing a font name to Emacs on the command line, you may need to
782may need to ``quote'' it, by enclosing it in quotation marks, if it 743``quote'' it, by enclosing it in quotation marks, if it contains
783contains characters that the shell treats specially (e.g.@: spaces). 744characters that the shell treats specially (e.g.@: spaces). For
784For example: 745example:
785 746
786@smallexample 747@smallexample
787emacs -fn "DejaVu Sans Mono-12" 748emacs -fn "DejaVu Sans Mono-12"
788@end smallexample 749@end smallexample
789 750
790@xref{Fonts}, for other ways to specify the default font and font name 751@xref{Fonts}, for details about font names and other ways to specify
791formats. 752the default font.
792 753
793@node Colors X 754@node Colors X
794@appendixsec Window Color Options 755@appendixsec Window Color Options
@@ -819,7 +780,8 @@ Specify the background color, overriding the color specified by the
819@itemx --border-color=@var{color} 780@itemx --border-color=@var{color}
820@opindex --border-color 781@opindex --border-color
821@cindex border color, command-line argument 782@cindex border color, command-line argument
822Specify the color of the border of the X window. 783Specify the color of the border of the X window. This has no effect
784if Emacs is compiled with GTK+ support.
823@item -cr @var{color} 785@item -cr @var{color}
824@opindex -cr 786@opindex -cr
825@itemx --cursor-color=@var{color} 787@itemx --cursor-color=@var{color}
@@ -844,11 +806,10 @@ Reverse video---swap the foreground and background colors.
844@opindex --color 806@opindex --color
845@cindex standard colors on a character terminal 807@cindex standard colors on a character terminal
846@cindex override character terminal color support 808@cindex override character terminal color support
847For a character terminal only, specify the mode of color support. 809Set the @dfn{color support mode} when Emacs is run on a text terminal.
848This option is intended for overriding the number of supported colors 810This option overrides the number of supported colors that the
849that the character terminal advertises in its @code{termcap} or 811character terminal advertises in its @code{termcap} or @code{terminfo}
850@code{terminfo} database. The parameter @var{mode} can be one of the 812database. The parameter @var{mode} can be one of the following:
851following:
852@table @samp 813@table @samp
853@item never 814@item never
854@itemx no 815@itemx no
@@ -1090,7 +1051,7 @@ Start Emacs in an iconified (``minimized'') state.
1090@itemx --no-bitmap-icon 1051@itemx --no-bitmap-icon
1091@opindex --no-bitmap-icon 1052@opindex --no-bitmap-icon
1092@cindex Emacs icon, a gnu 1053@cindex Emacs icon, a gnu
1093Do not display the Emacs icon. 1054Disable the use of the Emacs icon.
1094@end table 1055@end table
1095 1056
1096 Most window managers allow you to ``iconify'' (or ``minimize'') an 1057 Most window managers allow you to ``iconify'' (or ``minimize'') an
@@ -1102,10 +1063,11 @@ The text frame doesn't appear until you deiconify (or ``un-minimize'')
1102it. 1063it.
1103 1064
1104 By default, Emacs uses an icon containing the Emacs logo. On 1065 By default, Emacs uses an icon containing the Emacs logo. On
1105desktop environments such as Gnome, this icon is also displayed on the 1066desktop environments such as Gnome, this icon is also displayed in
1106``taskbar''. The @samp{-nbi} or @samp{--no-bitmap-icon} option tells 1067other contexts, e.g.@: when switching into an Emacs frame. The
1107Emacs to let the window manager choose what sort of icon to 1068@samp{-nbi} or @samp{--no-bitmap-icon} option tells Emacs to let the
1108use---usually just a small rectangle containing the frame's title. 1069window manager choose what sort of icon to use---usually just a small
1070rectangle containing the frame's title.
1109 1071
1110@node Misc X 1072@node Misc X
1111@appendixsec Other Display Options 1073@appendixsec Other Display Options
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index e7d58c32290..67feb791fe1 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -489,10 +489,20 @@ support a limited range of colors.
489changes for future Emacs sessions. @xref{Face Customization}. A face 489changes for future Emacs sessions. @xref{Face Customization}. A face
490does not have to specify every single attribute; often it inherits 490does not have to specify every single attribute; often it inherits
491most attributes from another face. Any ultimately unspecified 491most attributes from another face. Any ultimately unspecified
492attribute is taken from a face named @code{default}, whose attributes 492attribute is taken from the face named @code{default}.
493are all specified. The @code{default} face is the default for 493
494displaying text, and its background color is also used as the frame's 494 The @code{default} face is the default for displaying text, and all
495background color. 495of its attributes are specified. Its background color is also used as
496the frame's background color.
497
498@cindex cursor face
499 Another special face is the @code{cursor} face. On graphical
500displays, the background color of this face is used to draw the text
501cursor. None of the other attributes of this face have any effect;
502the foreground color for text under the cursor is taken from the
503background color of the underlying text. On text terminals, the
504appearance of the text cursor is determined by the terminal, not by
505the @code{cursor} face.
496 506
497 You can also use X resources to specify attributes of any particular 507 You can also use X resources to specify attributes of any particular
498face. @xref{Resources}. 508face. @xref{Resources}.
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index b8722e9f850..1f7fecb8b6a 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -210,7 +210,7 @@ Appendices
210* GNU Free Documentation License:: The license for this documentation. 210* GNU Free Documentation License:: The license for this documentation.
211* Emacs Invocation:: Hairy startup options. 211* Emacs Invocation:: Hairy startup options.
212* X Resources:: X resources for customizing Emacs. 212* X Resources:: X resources for customizing Emacs.
213* Antinews:: Information about Emacs version 22. 213* Antinews:: Information about Emacs version 23.
214* Mac OS / GNUstep:: Using Emacs under Mac OS and GNUstep. 214* Mac OS / GNUstep:: Using Emacs under Mac OS and GNUstep.
215* Microsoft Windows:: Using Emacs on Microsoft Windows and MS-DOS. 215* Microsoft Windows:: Using Emacs on Microsoft Windows and MS-DOS.
216* Manifesto:: What's GNU? Gnu's Not Unix! 216* Manifesto:: What's GNU? Gnu's Not Unix!
@@ -1104,7 +1104,6 @@ Command Line Arguments for Emacs Invocation
1104 and call functions. 1104 and call functions.
1105* Initial Options:: Arguments that take effect while starting Emacs. 1105* Initial Options:: Arguments that take effect while starting Emacs.
1106* Command Example:: Examples of using command line arguments. 1106* Command Example:: Examples of using command line arguments.
1107* Resume Arguments:: Specifying arguments when you resume a running Emacs.
1108* Environment:: Environment variables that Emacs uses. 1107* Environment:: Environment variables that Emacs uses.
1109* Display X:: Changing the default display and using remote login. 1108* Display X:: Changing the default display and using remote login.
1110* Font X:: Choosing a font for text, under X. 1109* Font X:: Choosing a font for text, under X.
@@ -1125,15 +1124,15 @@ X Options and Resources
1125 1124
1126* Resources:: Using X resources with Emacs (in general). 1125* Resources:: Using X resources with Emacs (in general).
1127* Table of Resources:: Table of specific X resources that affect Emacs. 1126* Table of Resources:: Table of specific X resources that affect Emacs.
1128* Face Resources:: X resources for customizing faces.
1129* Lucid Resources:: X resources for Lucid menus. 1127* Lucid Resources:: X resources for Lucid menus.
1130* LessTif Resources:: X resources for LessTif and Motif menus. 1128* LessTif Resources:: X resources for LessTif and Motif menus.
1131* GTK resources:: Resources for GTK widgets. 1129* GTK resources:: Resources for GTK widgets.
1132 1130
1133GTK resources 1131GTK resources
1134 1132
1135* GTK widget names:: How widgets in GTK are named in general. 1133* GTK Resource Basics:: Basic usage of GTK+ resources.
1136* GTK Names in Emacs:: GTK widget names in Emacs. 1134* GTK Widget Names:: How GTK+ widgets are named.
1135* GTK Names in Emacs:: GTK+ widgets used by Emacs.
1137* GTK styles:: What can be customized in a GTK widget. 1136* GTK styles:: What can be customized in a GTK widget.
1138 1137
1139Emacs and Mac OS / GNUstep 1138Emacs and Mac OS / GNUstep
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index a522e055d2b..77211a3d9ac 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -1871,10 +1871,9 @@ Add each file name in @var{directory} and all of its nested
1871subdirectories to the file name cache, using @command{locate} to find 1871subdirectories to the file name cache, using @command{locate} to find
1872them all. 1872them all.
1873@item M-x file-cache-add-directory-list @key{RET} @var{variable} @key{RET} 1873@item M-x file-cache-add-directory-list @key{RET} @var{variable} @key{RET}
1874Add each file name in each directory listed in @var{variable} 1874Add each file name in each directory listed in @var{variable} to the
1875to the file name cache. @var{variable} should be a Lisp variable 1875file name cache. @var{variable} should be a Lisp variable whose value
1876such as @code{load-path} or @code{exec-path}, whose value is a list 1876is a list of directory names, like @code{load-path}.
1877of directory names.
1878@item M-x file-cache-clear-cache @key{RET} 1877@item M-x file-cache-clear-cache @key{RET}
1879Clear the cache; that is, remove all file names from it. 1878Clear the cache; that is, remove all file names from it.
1880@end table 1879@end table
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 69e141efb0f..93dd5e3b8ce 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -465,6 +465,15 @@ then give commands interactively. Full terminal emulation is
465available. 465available.
466@end table 466@end table
467 467
468@vindex exec-path
469 Whenever you specify a relative file name for an executable program
470(either in the @var{cmd} argument to one of the above commands, or in
471other contexts), Emacs searches for the program in the directories
472specified by the variable @code{exec-path}. The value of this
473variable must be a list of directory names; the default value is
474initialized from the environment variable @env{PATH} when Emacs is
475started (@pxref{General Variables}).
476
468 @kbd{M-x eshell} invokes a shell implemented entirely in Emacs. It 477 @kbd{M-x eshell} invokes a shell implemented entirely in Emacs. It
469is documented in its own manual. 478is documented in its own manual.
470@ifnottex 479@ifnottex
@@ -551,11 +560,8 @@ to @command{gpg}. This will output the list of keys to the
551 The above commands use the shell specified by the variable 560 The above commands use the shell specified by the variable
552@code{shell-file-name}. Its default value is determined by the 561@code{shell-file-name}. Its default value is determined by the
553@env{SHELL} environment variable when Emacs is started. If the file 562@env{SHELL} environment variable when Emacs is started. If the file
554name is relative, Emacs searches the directories in the list 563name is relative, Emacs searches the directories listed in
555@code{exec-path}; this list is initialized based on the environment 564@code{exec-path} (@pxref{Shell}).
556variable @env{PATH} when Emacs is started. Your init file can
557override either or both of these default initializations (@pxref{Init
558File}).
559 565
560 To specify a coding system for @kbd{M-!} or @kbd{M-|}, use the command 566 To specify a coding system for @kbd{M-!} or @kbd{M-|}, use the command
561@kbd{C-x @key{RET} c} immediately beforehand. @xref{Communication Coding}. 567@kbd{C-x @key{RET} c} immediately beforehand. @xref{Communication Coding}.
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index 9713b825ee8..be1c1f68c66 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -1428,8 +1428,8 @@ This is equivalent to specifying the @samp{file} protocol:
1428@code{movemail} to use. If that is a string, it specifies the 1428@code{movemail} to use. If that is a string, it specifies the
1429absolute file name of the @code{movemail} executable. If it is 1429absolute file name of the @code{movemail} executable. If it is
1430@code{nil}, Rmail searches for @code{movemail} in the directories 1430@code{nil}, Rmail searches for @code{movemail} in the directories
1431listed in @code{rmail-movemail-search-path} and @code{exec-path}, then 1431listed in @code{rmail-movemail-search-path}, then in @code{exec-path}
1432in @code{exec-directory}. 1432(@pxref{Shell}), then in @code{exec-directory}.
1433 1433
1434@node Remote Mailboxes 1434@node Remote Mailboxes
1435@section Retrieving Mail from Remote Mailboxes 1435@section Retrieving Mail from Remote Mailboxes
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi
index 7a4e4798061..66281d6dbbb 100644
--- a/doc/emacs/xresources.texi
+++ b/doc/emacs/xresources.texi
@@ -6,31 +6,26 @@
6@appendix X Options and Resources 6@appendix X Options and Resources
7 7
8 You can customize some X-related aspects of Emacs behavior using X 8 You can customize some X-related aspects of Emacs behavior using X
9resources, as is usual for programs that use X. On MS-Windows, you 9resources, as is usual for programs that use X.
10can customize some of the same aspects using the system registry. 10
11@xref{MS-Windows Registry}. 11 When Emacs is compiled with GTK+ support, the appearance of various
12 12graphical widgets, such as the menu-bar, scroll-bar, and dialog boxes,
13 When Emacs is built using an ``X toolkit'', such as Lucid or 13is determined by
14LessTif, you need to use X resources to customize the appearance of
15the widgets, including the menu-bar, scroll-bar, and dialog boxes.
16This is because the libraries that implement these don't provide for
17customization through Emacs. GTK+ widgets use a separate system of
18@ifnottex 14@ifnottex
19``GTK resources'', which we will also describe. 15``GTK resources'', which we will also describe.
20@end ifnottex 16@end ifnottex
21@iftex 17@iftex
22``GTK resources.'' In this chapter we describe the most commonly used 18``GTK resources''.
23resource specifications. For full documentation, see the online
24manual.
25
26@c Add xref for LessTif/Motif menu resources.
27@end iftex 19@end iftex
20When Emacs is built without GTK+ support, the appearance of these
21widgets is determined by additional X resources.
28 22
23 On MS-Windows, you can customize some of the same aspects using the
24system registry (@pxref{MS-Windows Registry}).
29 25
30@menu 26@menu
31* Resources:: Using X resources with Emacs (in general). 27* Resources:: Using X resources with Emacs (in general).
32* Table of Resources:: Table of specific X resources that affect Emacs. 28* Table of Resources:: Table of specific X resources that affect Emacs.
33* Face Resources:: X resources for customizing faces.
34* Lucid Resources:: X resources for Lucid menus. 29* Lucid Resources:: X resources for Lucid menus.
35* LessTif Resources:: X resources for LessTif and Motif menus. 30* LessTif Resources:: X resources for LessTif and Motif menus.
36* GTK resources:: Resources for GTK widgets. 31* GTK resources:: Resources for GTK widgets.
@@ -63,60 +58,41 @@ settings in the Display Control Panel. You can also set resources
63using the @samp{-xrm} command line option, as explained below.) 58using the @samp{-xrm} command line option, as explained below.)
64 59
65 Each line in the X resource file specifies a value for one option or 60 Each line in the X resource file specifies a value for one option or
66for a collection of related options. Each resource specification 61for a collection of related options. The order in which the lines
62appear in the file does not matter. Each resource specification
67consists of a @dfn{program name} and a @dfn{resource name}. Case 63consists of a @dfn{program name} and a @dfn{resource name}. Case
68distinctions are significant in each of these names. Here is an 64distinctions are significant in each of these names. Here is an
69example: 65example:
70 66
71@example 67@example
72emacs.borderWidth: 2 68emacs.cursorColor: dark green
73@end example 69@end example
74 70
75@ifnottex
76 The program name is the name of the executable file to which the 71 The program name is the name of the executable file to which the
77resource applies. For Emacs, this is normally @samp{emacs}. To 72resource applies. For Emacs, this is normally @samp{emacs}. To
78specify a definition that applies to all instances of Emacs, 73specify a definition that applies to all instances of Emacs,
79regardless of the name of the Emacs executable, use @samp{Emacs}. 74regardless of the name of the Emacs executable, use @samp{Emacs}.
80 75
81 The resource name is the name of a program setting. For instance, 76 The resource name is the name of a program setting. For instance,
82Emacs recognizes a @samp{borderWidth} resource that controls the width 77Emacs recognizes a @samp{cursorColor} resource that controls the color
83of the external border for graphical frames. 78of the text cursor.
84 79
85 Resources are grouped into named classes. For instance, the 80 Resources are grouped into named classes. For instance, the
86@samp{BorderWidth} class contains both the @samp{borderWidth} resource 81@samp{Foreground} class contains the @samp{cursorColor},
87(which we just described), as well as the @samp{internalBorder} 82@samp{foreground} and @samp{pointerColor} resources (@pxref{Table of
88resource, which controls the width of the internal border for 83Resources}). Instead of using a resource name, you can use a class
89graphical frames. Instead of using a resource name, you can use a 84name to specify the default value for all resources in that class,
90class name to specify the same value for all resources in that class. 85like this:
91Here's an example:
92
93@example
94emacs.BorderWidth: 2
95@end example
96
97 If you specify a value for a class, it becomes the default for all
98resources in that class. You can specify values for individual
99resources as well; these override the class value, for those
100particular resources. The following example specifies 2 as the
101default width for all borders, but overrides this value with 4 for the
102external border:
103 86
104@example 87@example
105emacs.BorderWidth: 2 88emacs.Foreground: dark green
106emacs.borderWidth: 4
107@end example 89@end example
108@end ifnottex
109
110 The order in which the lines appear in the file does not matter.
111One way to experiment with the effect of different resource settings
112is to use the @code{editres} program. See the @code{editres} man page
113for more details.
114 90
115 Emacs does not process X resources at all if you set the variable 91 Emacs does not process X resources at all if you set the variable
116@code{inhibit-x-resources} to a non-@code{nil} value, or if you 92@code{inhibit-x-resources} to a non-@code{nil} value. If you invoke
117specify the @samp{-Q} (or @samp{--quick}) command-line argument 93Emacs with the @samp{-Q} (or @samp{--quick}) command-line option,
118(@pxref{Initial Options}). (The @samp{-Q} argument automatically sets 94@code{inhibit-x-resources} is automatically set to @code{t}
119@code{inhibit-x-resources} to @code{t}.) 95(@pxref{Initial Options}).
120 96
121@ifnottex 97@ifnottex
122 In addition, you can use the following command-line options to 98 In addition, you can use the following command-line options to
@@ -162,98 +138,93 @@ other resource specifications.
162@node Table of Resources 138@node Table of Resources
163@appendixsec Table of X Resources for Emacs 139@appendixsec Table of X Resources for Emacs
164 140
165 This table lists the resource names that designate options for 141 This table lists the X resource names that Emacs recognizes,
166Emacs, not counting those for the appearance of the menu bar, each 142excluding those that control the appearance of graphical widgets like
167with the class that it belongs to: 143the menu bar:
168 144
169@table @asis 145@table @asis
170@item @code{background} (class @code{Background}) 146@item @code{background} (class @code{Background})
171Background color name. 147Background color (@pxref{Colors}).
172 148
173@item @code{bitmapIcon} (class @code{BitmapIcon}) 149@item @code{bitmapIcon} (class @code{BitmapIcon})
174Tell the window manager to display the Emacs icon if @samp{on}; don't 150Tell the window manager to display the Emacs icon if @samp{on}; don't
175do so if @samp{off}. (The icon is usually shown in the ``taskbar'' on 151do so if @samp{off}. @xref{Icons X}, for a description of the icon.
176a graphical desktop.)
177 152
153@ifnottex
178@item @code{borderColor} (class @code{BorderColor}) 154@item @code{borderColor} (class @code{BorderColor})
179Color name for the external border. 155Color of the frame's external border. This has no effect if Emacs is
156compiled with GTK+ support.
180 157
181@ifnottex
182@item @code{borderWidth} (class @code{BorderWidth}) 158@item @code{borderWidth} (class @code{BorderWidth})
183Width in pixels of the external border. 159Width of the frame's external border, in pixels. This has no effect
160if Emacs is compiled with GTK+ support.
184@end ifnottex 161@end ifnottex
185 162
186@item @code{cursorColor} (class @code{Foreground}) 163@item @code{cursorColor} (class @code{Foreground})
187Color name for text cursor (point). 164Text cursor color. If this resource is specified when Emacs starts
165up, Emacs sets its value as the background color of the @code{cursor}
166face (@pxref{Faces}).
188 167
189@ifnottex
190@item @code{cursorBlink} (class @code{CursorBlink}) 168@item @code{cursorBlink} (class @code{CursorBlink})
191Specifies whether to make the cursor blink. The default is @samp{on}. Use 169If the value of this resource is @samp{off} or @samp{false} or
192@samp{off} or @samp{false} to turn cursor blinking off. 170@samp{0} at startup, Emacs disables Blink Cursor mode (@pxref{Cursor
193@end ifnottex 171Display}).
194 172
195@item @code{font} (class @code{Font}) 173@item @code{font} (class @code{Font})
196Font name for the @code{default} font. @xref{Fonts}. You can also 174Font name for the @code{default} face (@pxref{Fonts}). You can also
197specify a fontset name (@pxref{Fontsets}). 175specify a fontset name (@pxref{Fontsets}).
198 176
199@item @code{fontBackend} (class @code{FontBackend}) 177@item @code{fontBackend} (class @code{FontBackend})
200The backend(s) to use for drawing fonts; if multiple backends are 178Comma-delimited list of backend(s) to use for drawing fonts, in order
201specified, they must be comma-delimited and given in order of 179of precedence. For instance, the value @samp{x,xft} tells Emacs to
202precedence. On X, for instance, the value @samp{x,xft} tells Emacs to
203draw fonts using the X core font driver, falling back on the Xft font 180draw fonts using the X core font driver, falling back on the Xft font
204driver if that fails. Normally, you can leave this resource unset, in 181driver if that fails. Normally, you should leave this resource unset,
205which case Emacs tries using all font backends available on your 182in which case Emacs tries using all available font backends.
206graphical device.
207 183
208@item @code{foreground} (class @code{Foreground}) 184@item @code{foreground} (class @code{Foreground})
209Color name for text. 185Default foreground color for text.
210 186
211@item @code{geometry} (class @code{Geometry}) 187@item @code{geometry} (class @code{Geometry})
212Window size and position. Be careful not to specify this resource as 188Window size and position. The value should be a size and position
213@samp{emacs*geometry}, because that may affect individual menus as well 189specification, of the same form as in the @samp{-g} or
214as the Emacs frame itself. 190@samp{--geometry} command-line option (@pxref{Window Size X}).
215 191
216If this resource specifies a position, that position applies only to the 192The size applies to all frames in the Emacs session, but the position
217initial Emacs frame (or, in the case of a resource for a specific frame 193applies only to the initial Emacs frame (or, in the case of a resource
218name, only that frame). However, the size, if specified here, applies to 194for a specific frame name, only that frame).
219all frames. 195
196
197Be careful not to specify this resource as @samp{emacs*geometry}, as
198that may affect individual menus as well as the main Emacs frame.
220 199
221@ifnottex
222@item @code{fullscreen} (class @code{Fullscreen}) 200@item @code{fullscreen} (class @code{Fullscreen})
223The desired fullscreen size. The value can be one of @code{fullboth}, 201The desired fullscreen size. The value can be one of @code{fullboth},
224@code{maximized}, @code{fullwidth} or @code{fullheight}, which correspond to 202@code{maximized}, @code{fullwidth} or @code{fullheight}, which
225the command-line options @samp{-fs}, @samp{-mm}, @samp{-fw}, and @samp{-fh} 203correspond to the command-line options @samp{-fs}, @samp{-mm},
226(@pxref{Window Size X}). 204@samp{-fw}, and @samp{-fh} (@pxref{Window Size X}). Note that this
227 205applies to the initial frame only.
228Note that this applies to the initial frame only.
229@end ifnottex
230 206
207@ifnottex
231@item @code{iconName} (class @code{Title}) 208@item @code{iconName} (class @code{Title})
232Name to display in the icon. 209Name to display in the icon.
233 210
234@item @code{internalBorder} (class @code{BorderWidth}) 211@item @code{internalBorder} (class @code{BorderWidth})
235Width in pixels of the internal border. 212Width of the internal frame border, in pixels.
213@end ifnottex
236 214
237@item @code{lineSpacing} (class @code{LineSpacing}) 215@item @code{lineSpacing} (class @code{LineSpacing})
238@cindex line spacing 216@cindex line spacing
239@cindex leading 217Additional space between lines, in pixels.
240Additional space (@dfn{leading}) between lines, in pixels.
241 218
242@item @code{menuBar} (class @code{MenuBar}) 219@item @code{menuBar} (class @code{MenuBar})
243@cindex menu bar 220@cindex menu bar
244Give frames menu bars if @samp{on}; don't have menu bars if @samp{off}. 221If the value of this resource is @samp{off} or @samp{false} or
245@ifnottex 222@samp{0}, Emacs disables Menu Bar mode at startup (@pxref{Menu Bars}).
246@xref{Lucid Resources}, and @ref{LessTif Resources},
247@end ifnottex
248@iftex
249@xref{Lucid Resources},
250@end iftex
251for how to control the appearance of the menu bar if you have one.
252 223
253@ifnottex 224@ifnottex
254@item @code{minibuffer} (class @code{Minibuffer}) 225@item @code{minibuffer} (class @code{Minibuffer})
255If @samp{none}, don't make a minibuffer in this frame. 226If @samp{none}, Emacs will not make a minibuffer in this frame; it
256It will use a separate minibuffer frame instead. 227will use a separate minibuffer frame instead.
257 228
258@item @code{paneFont} (class @code{Font}) 229@item @code{paneFont} (class @code{Font})
259@cindex font for menus 230@cindex font for menus
@@ -261,7 +232,9 @@ Font name for menu pane titles, in non-toolkit versions of Emacs.
261@end ifnottex 232@end ifnottex
262 233
263@item @code{pointerColor} (class @code{Foreground}) 234@item @code{pointerColor} (class @code{Foreground})
264Color of the mouse cursor. 235Color of the mouse cursor. This has no effect in many graphical
236desktop environments, as they do not let Emacs change the mouse cursor
237this way.
265 238
266@ifnottex 239@ifnottex
267@item @code{privateColormap} (class @code{PrivateColormap}) 240@item @code{privateColormap} (class @code{PrivateColormap})
@@ -271,7 +244,6 @@ visual'' of class PseudoColor and Emacs is using it.
271@item @code{reverseVideo} (class @code{ReverseVideo}) 244@item @code{reverseVideo} (class @code{ReverseVideo})
272Switch foreground and background default colors if @samp{on}, use colors as 245Switch foreground and background default colors if @samp{on}, use colors as
273specified if @samp{off}. 246specified if @samp{off}.
274@end ifnottex
275 247
276@item @code{screenGamma} (class @code{ScreenGamma}) 248@item @code{screenGamma} (class @code{ScreenGamma})
277@cindex gamma correction 249@cindex gamma correction
@@ -281,7 +253,9 @@ Gamma correction for colors, equivalent to the frame parameter
281@item @code{scrollBarWidth} (class @code{ScrollBarWidth}) 253@item @code{scrollBarWidth} (class @code{ScrollBarWidth})
282@cindex scrollbar width 254@cindex scrollbar width
283The scroll bar width in pixels, equivalent to the frame parameter 255The scroll bar width in pixels, equivalent to the frame parameter
284@code{scroll-bar-width}. 256@code{scroll-bar-width}. Do not set this resource if Emacs is
257compiled with GTK+ support.
258@end ifnottex
285 259
286@ifnottex 260@ifnottex
287@item @code{selectionFont} (class @code{SelectionFont}) 261@item @code{selectionFont} (class @code{SelectionFont})
@@ -306,24 +280,16 @@ Name to display in the title bar of the initial Emacs frame.
306 280
307@item @code{toolBar} (class @code{ToolBar}) 281@item @code{toolBar} (class @code{ToolBar})
308@cindex tool bar 282@cindex tool bar
309Number of lines to reserve for the tool bar. A zero value suppresses 283If the value of this resource is @samp{off} or @samp{false} or
310the tool bar. For the Emacs tool bar (i.e.@: not Gtk+), if the value 284@samp{0}, Emacs disables Tool Bar mode at startup (@pxref{Tool Bars}).
311is non-zero and @code{auto-resize-tool-bars} is non-@code{nil}, the
312tool bar's size will be changed automatically so that all tool bar
313items are visible. If the value of @code{auto-resize-tool-bars} is
314@code{grow-only}, the tool bar expands automatically, but does not
315contract automatically. To contract the tool bar, you must redraw the
316frame by entering @kbd{C-l}. For the Gtk+ tool bar, any non-zero
317value means on and @code{auto-resize-tool-bars} has no effect.
318 285
319@item @code{useXIM} (class @code{UseXIM}) 286@item @code{useXIM} (class @code{UseXIM})
320@cindex XIM 287@cindex XIM
321@cindex X input methods 288@cindex X input methods
322@cindex input methods, X 289@cindex input methods, X
323Turn off use of X input methods (XIM) if @samp{false} or @samp{off}. 290Disable use of X input methods (XIM) if @samp{false} or @samp{off}.
324This is only relevant if your Emacs is actually built with XIM 291This is only relevant if your Emacs is built with XIM support. It
325support. It is potentially useful to turn off XIM for efficiency, 292might be useful to turn off XIM on slow X client/server links.
326especially slow X client/server links.
327 293
328@item @code{verticalScrollBars} (class @code{ScrollBars}) 294@item @code{verticalScrollBars} (class @code{ScrollBars})
329Give frames scroll bars if @samp{on}; don't have scroll bars if 295Give frames scroll bars if @samp{on}; don't have scroll bars if
@@ -331,143 +297,51 @@ Give frames scroll bars if @samp{on}; don't have scroll bars if
331 297
332@ifnottex 298@ifnottex
333@item @code{visualClass} (class @code{VisualClass}) 299@item @code{visualClass} (class @code{VisualClass})
334Specify the ``visual'' that X should use. This tells X how to handle 300The @dfn{visual class} for X color display. If specified, the value
335colors. 301should start with one of @samp{TrueColor}, @samp{PseudoColor},
336 302@samp{DirectColor}, @samp{StaticColor}, @samp{GrayScale}, and
337The value should start with one of @samp{TrueColor}, 303@samp{StaticGray}, followed by @samp{-@var{depth}}, where @var{depth}
338@samp{PseudoColor}, @samp{DirectColor}, @samp{StaticColor}, 304is the number of color planes.
339@samp{GrayScale}, and @samp{StaticGray}, followed by
340@samp{-@var{depth}}, where @var{depth} is the number of color planes.
341Most terminals only allow a few ``visuals,'' and the @samp{dpyinfo}
342program outputs information saying which ones.
343@end ifnottex 305@end ifnottex
344@end table 306@end table
345 307
346@node Face Resources 308 You can also use X resources to customize individual Emacs faces
347@appendixsec X Resources for Faces 309(@pxref{Faces}). For example, setting the resource
348 310@samp{@var{face}.attributeForeground} is equivalent to customizing the
349 You can use resources to customize the appearance of particular 311@samp{foreground} attribute of the face @var{face}. However, we
350faces (@pxref{Faces}): 312recommend customizing faces from within Emacs, instead of using X
351 313resources. @xref{Face Customization}.
352@table @code
353@item @var{face}.attributeForeground
354Foreground color for face @var{face}.
355@item @var{face}.attributeBackground
356Background color for face @var{face}.
357@item @var{face}.attributeUnderline
358Underline flag for face @var{face}. Use @samp{on} or @samp{true} for
359yes.
360@item @var{face}.attributeStrikeThrough
361@itemx @var{face}.attributeOverline
362@itemx @var{face}.attributeBox
363@itemx @var{face}.attributeInverse
364Likewise, for other boolean font attributes.
365@item @var{face}.attributeStipple
366The name of a pixmap data file to use for the stipple pattern, or
367@code{false} to not use stipple for the face @var{face}.
368@item @var{face}.attributeBackgroundPixmap
369The background pixmap for the face @var{face}. Should be a name of a
370pixmap file or @code{false}.
371@item @var{face}.attributeFont
372Font name (full XFD name or valid X abbreviation) for face @var{face}.
373Instead of this, you can specify the font through separate attributes.
374@end table
375
376 Instead of using @code{attributeFont} to specify a font name, you can
377select a font through these separate attributes:
378
379@table @code
380@item @var{face}.attributeFamily
381Font family for face @var{face}.
382@item @var{face}.attributeHeight
383Height of the font to use for face @var{face}: either an integer
384specifying the height in units of 1/10@dmn{pt}, or a floating point
385number that specifies a scale factor to scale the underlying face's
386default font, or a function to be called with the default height which
387will return a new height.
388@item @var{face}.attributeWidth
389@itemx @var{face}.attributeWeight
390@itemx @var{face}.attributeSlant
391Each of these resources corresponds to a like-named font attribute,
392and you write the resource value the same as the symbol you would use
393for the font attribute value.
394@item @var{face}.attributeBold
395Bold flag for face @var{face}---instead of @code{attributeWeight}. Use @samp{on} or @samp{true} for
396yes.
397@item @var{face}.attributeItalic
398Italic flag for face @var{face}---instead of @code{attributeSlant}.
399@end table
400 314
315@ifnottex
401@node Lucid Resources 316@node Lucid Resources
402@appendixsec Lucid Menu And Dialog X Resources 317@appendixsec Lucid Menu And Dialog X Resources
403@cindex Menu X Resources (Lucid widgets) 318@cindex Menu X Resources (Lucid widgets)
404@cindex Dialog X Resources (Lucid widgets) 319@cindex Dialog X Resources (Lucid widgets)
405@cindex Lucid Widget X Resources 320@cindex Lucid Widget X Resources
406 321
407@ifnottex 322 If Emacs is compiled with the X toolkit support using Lucid widgets,
408 If the Emacs installed at your site was built to use the X toolkit 323you can use X resources to customize the appearance of the menu bar,
409with the Lucid menu widgets, then the menu bar is a separate widget and 324pop-up menus, and dialog boxes. The resources for the menu bar fall
410has its own resources. The resource names contain @samp{pane.menubar} 325in the @samp{pane.menubar} class (following, as always, either the
411(following, as always, the name of the Emacs invocation, or @samp{Emacs}, 326name of the Emacs executable or @samp{Emacs} for all Emacs
412which stands for all Emacs invocations). Specify them like this: 327invocations). The resources for the pop-up menu are in the
413 328@samp{menu*} class. The resources for dialog boxes are in the
414@example 329@samp{dialog*} class.
415Emacs.pane.menubar.@var{resource}: @var{value}
416@end example
417
418@noindent
419For example, to specify the font @samp{Courier-12} for the menu-bar items,
420write this:
421@end ifnottex
422@iftex
423 If the Emacs installed at your site was built to use the X toolkit
424with the Lucid menu widgets, then the menu bar is a separate widget
425and has its own resources. The resource specifications start with
426@samp{Emacs.pane.menubar}---for instance, to specify the font
427@samp{Courier-12} for the menu-bar items, write this:
428@end iftex
429 330
430@example 331 For example, to display menu bar entries with the @samp{Courier-12}
431Emacs.pane.menubar.font: Courier-12 332font (@pxref{Fonts}), write this:
432@end example
433
434@noindent
435To specify a font, use fontconfig font names as values to the @code{font}
436resource, or old style names:
437 333
438@example 334@example
439Emacs.pane.menubar.font: lucidasanstypewriter-10 335Emacs.pane.menubar.font: Courier-12
440@end example 336@end example
441 337
442@noindent 338@noindent
443Emacs first tries to open the font as an old style font, and if that fails 339Lucid widgets can display multilingual text in your locale. To enable
444as an fontconfig font. In rare cases, Emacs might do the wrong thing. 340this, specify a @code{fontSet} resource instead of a @code{font}
445 341resource. @xref{Fontsets}. If both @code{font} and @code{fontSet}
446@noindent 342resources are specified, the @code{fontSet} resource is used.
447The Lucid menus can display multilingual text in your locale with old style
448fonts. For more information about fontsets see the man page for
449@code{XCreateFontSet}. To enable multilingual menu text you specify a
450@code{fontSet} resource instead of the font resource. If both
451@code{font} and @code{fontSet} resources are specified, the
452@code{fontSet} resource is used.
453 343
454@noindent 344Here is a list of resources for menu bars, pop-up menus, and dialogs:
455Resources for @emph{non-menubar} toolkit pop-up menus have
456@samp{menu*} instead of @samp{pane.menubar}. For example, to specify
457the font @samp{8x16} for the pop-up menu items, write this:
458
459@example
460Emacs.menu*.font: 8x16
461@end example
462
463@noindent
464For dialog boxes, use @samp{dialog*}:
465
466@example
467Emacs.dialog*.font: Sans-12
468@end example
469
470 Here is a list of the specific resources for menu bars and pop-up menus:
471 345
472@table @code 346@table @code
473@item font 347@item font
@@ -475,11 +349,11 @@ Font for menu item text.
475@item fontSet 349@item fontSet
476Fontset for menu item text. 350Fontset for menu item text.
477@item foreground 351@item foreground
478Color of the foreground. 352Foreground color.
479@item background 353@item background
480Color of the background. 354Background color.
481@item buttonForeground 355@item buttonForeground
482In the menu bar, the color of the foreground for a selected item. 356Foreground color for a selected item.
483@ifnottex 357@ifnottex
484@item horizontalSpacing 358@item horizontalSpacing
485Horizontal spacing in pixels between items. Default is 3. 359Horizontal spacing in pixels between items. Default is 3.
@@ -489,59 +363,51 @@ Vertical spacing in pixels between items. Default is 2.
489Horizontal spacing between the arrow (which indicates a submenu) and 363Horizontal spacing between the arrow (which indicates a submenu) and
490the associated text. Default is 10. 364the associated text. Default is 10.
491@item shadowThickness 365@item shadowThickness
492Thickness of shadow line around the widget. Default is 1. 366Thickness of shadow lines for 3D buttons, arrows, and other graphical
493 367elements. Default is 1.
494Also determines the thickness of shadow lines around other objects,
495for instance 3D buttons and arrows. If you have the impression that
496the arrows in the menus do not stand out clearly enough or that the
497difference between ``in'' and ``out'' buttons is difficult to see, set
498this to 2. If you have no problems with visibility, the default
499probably looks better. The background color may also have some effect
500on the contrast.
501@end ifnottex 368@end ifnottex
502@item margin 369@item margin
503The margin of the menu bar, in characters. Default is 1. 370Margin of the menu bar, in characters. Default is 1.
504@end table 371@end table
505 372
506@ifnottex
507@node LessTif Resources 373@node LessTif Resources
508@appendixsec LessTif Menu X Resources 374@appendixsec LessTif Menu X Resources
509@cindex Menu X Resources (LessTif widgets) 375@cindex Menu X Resources (LessTif widgets)
510@cindex LessTif Widget X Resources 376@cindex LessTif Widget X Resources
511 377
512 If the Emacs installed at your site was built to use the X toolkit 378 If Emacs is compiled with the X toolkit support using LessTif or
513with the LessTif or Motif widgets, then the menu bar, the dialog 379Motif widgets, you can use X resources to customize the appearance of
514boxes, the pop-up menus, and the file-selection box are separate 380the menu bar, pop-up menus, and dialog boxes. However, the resources
515widgets and have their own resources. 381are organized differently from Lucid widgets.
516 382
517 The resource names for the menu bar contain @samp{pane.menubar} 383 The resource names for the menu bar are in the @samp{pane.menubar}
518(following, as always, the name of the Emacs invocation, or 384class, and they must be specified in this form:
519@samp{Emacs}, which stands for all Emacs invocations). Specify them
520like this:
521 385
522@smallexample 386@smallexample
523Emacs.pane.menubar.@var{subwidget}.@var{resource}: @var{value} 387Emacs.pane.menubar.@var{subwidget}.@var{resource}: @var{value}
524@end smallexample 388@end smallexample
525 389
526 Each individual string in the menu bar is a subwidget; the subwidget's 390@noindent
527name is the same as the menu item string. For example, the word 391For pop-up menus, the resources are in the @samp{menu*} class, instead
528@samp{File} in the menu bar is part of a subwidget named 392of @samp{pane.menubar}. For dialog boxes, they are in @samp{dialog}.
529@samp{emacs.pane.menubar.File}. Most likely, you want to specify the 393In each case, each individual menu string is a subwidget; the
530same resources for the whole menu bar. To do this, use @samp{*} instead 394subwidget's name is the same as the menu item string. For example,
531of a specific subwidget name. For example, to specify the font 395the @samp{File} menu in the menu bar is a subwidget named
532@samp{8x16} for the menu-bar items, write this: 396@samp{emacs.pane.menubar.File}.
397
398 Typically, you want to specify the same resources for the whole menu
399bar. To do this, use @samp{*} instead of a specific subwidget name.
400For example, to specify the font @samp{8x16} for all menu bar items,
401including submenus, write this:
533 402
534@smallexample 403@smallexample
535Emacs.pane.menubar.*.fontList: 8x16 404Emacs.pane.menubar.*.fontList: 8x16
536@end smallexample 405@end smallexample
537 406
538@noindent 407 Each item in a submenu also has its own name for X resources; for
539This also specifies the resource value for submenus. 408example, the @samp{File} submenu has an item named @samp{Save (current
540 409buffer)}. A resource specification for a submenu item looks like
541 Each item in a submenu in the menu bar also has its own name for X 410this:
542resources; for example, the @samp{File} submenu has an item named
543@samp{Save (current buffer)}. A resource specification for a submenu
544item looks like this:
545 411
546@smallexample 412@smallexample
547Emacs.pane.menubar.popup_*.@var{menu}.@var{item}.@var{resource}: @var{value} 413Emacs.pane.menubar.popup_*.@var{menu}.@var{item}.@var{resource}: @var{value}
@@ -574,46 +440,23 @@ Emacs.pane.menubar.popup_*.popup_*.Spell Checking.Complete Word: @var{value}
574@noindent 440@noindent
575(This should be one long line.) 441(This should be one long line.)
576 442
577 It's impossible to specify a resource for all the menu-bar items 443 If you want the submenu items to look different from the menu bar
578without also specifying it for the submenus as well. So if you want the 444itself, you must first specify the resource for all of them, then
579submenu items to look different from the menu bar itself, you must ask 445override the value for submenus alone. Here is an example:
580for that in two steps. First, specify the resource for all of them;
581then, override the value for submenus alone. Here is an example:
582 446
583@smallexample 447@smallexample
584Emacs.pane.menubar.*.fontList: 8x16 448Emacs.pane.menubar.*.fontList: 8x16
585Emacs.pane.menubar.popup_*.fontList: 8x16 449Emacs.pane.menubar.popup_*.fontList: 8x16
586@end smallexample 450@end smallexample
587 451
588@noindent 452 To specify resources for the LessTif file-selection box, use
589For LessTif pop-up menus, use @samp{menu*} instead of
590@samp{pane.menubar}. For example, to specify the font @samp{8x16} for
591the pop-up menu items, write this:
592
593@smallexample
594Emacs.menu*.fontList: 8x16
595@end smallexample
596
597@noindent
598For LessTif dialog boxes, use @samp{dialog} instead of @samp{menu}:
599
600@example
601Emacs.dialog*.fontList: 8x16
602Emacs.dialog*.foreground: hotpink
603@end example
604
605To specify resources for the LessTif file-selection box, use
606@samp{fsb*}, like this: 453@samp{fsb*}, like this:
607 454
608@example 455@example
609Emacs.fsb*.fontList: 8x16 456Emacs.fsb*.fontList: 8x16
610@end example 457@end example
611 458
612@iftex 459 Here is a list of resources for LessTif menu bars and pop-up menus:
613@medbreak
614@end iftex
615 Here is a list of the specific resources for LessTif menu bars and
616pop-up menus:
617 460
618@table @code 461@table @code
619@item armColor 462@item armColor
@@ -638,128 +481,92 @@ The color for the border shadow, on the top and the left.
638@end table 481@end table
639@end ifnottex 482@end ifnottex
640 483
641
642@node GTK resources 484@node GTK resources
643@appendixsec GTK resources 485@appendixsec GTK resources
644@iftex 486@cindex GTK+ resources
645 The most common way to customize the GTK widgets Emacs uses (menus, 487@cindex resource files for GTK
646dialogs tool bars and scroll bars) is by choosing an appropriate 488@cindex @file{~/.gtkrc-2.0} file
647theme, for example with the GNOME theme selector. 489@cindex @file{~/.emacs.d/gtkrc} file
648
649You can also do Emacs specific customization by inserting GTK style
650directives in the file @file{~/.emacs.d/gtkrc}, but only if you have a
651Gtk+ version earlier than 3 (i.e.@: 2). Some GTK themes ignore
652customizations in @file{~/.emacs.d/gtkrc} so not everything works with
653all themes. To customize Emacs font, background, faces, etc., use the
654normal X resources (@pxref{Resources}). We will present some examples
655of customizations here, but for a more detailed description, see the
656online manual
657
658 The first example is just one line. It changes the font on all GTK widgets
659to courier with size 12:
660
661@smallexample
662gtk-font-name = "courier 12"
663@end smallexample
664
665 The thing to note is that the font name is not an X font name, but a
666Pango font name. A Pango font name is basically of the format "family
667style size", where the style is optional as in the case above. A name
668with a style could be for example:
669 490
670@smallexample 491 If Emacs is compiled with GTK+ toolkit support, the simplest way to
671gtk-font-name = "helvetica bold 10" 492customize its GTK+ widgets (e.g.@: menus, dialogs, tool bars and
672@end smallexample 493scroll bars) is to choose an appropriate GTK+ theme, for example with
494the GNOME theme selector.
495
496 In GTK+ version 2, you can also use @dfn{GTK+ resources} to
497customize the appearance of GTK+ widgets used by Emacs. These
498resources are specified in either the file @file{~/.emacs.d/gtkrc}
499(for Emacs-specific GTK+ resources), or @file{~/.gtkrc-2.0} (for
500general GTK+ resources). We recommend using @file{~/.emacs.d/gtkrc},
501since GTK+ seems to ignore @file{~/.gtkrc-2.0} when running GConf with
502GNOME. Note, however, that some GTK themes may override
503customizations in @file{~/.emacs.d/gtkrc}; there is nothing we can do
504about this. GTK+ resources do not affect aspects of Emacs unrelated
505to GTK+ widgets, such as fonts and colors in the main Emacs window;
506those are governed by normal X resources (@pxref{Resources}).
507
508 The following sections describe how to customize GTK+ resources for
509Emacs. For details about GTK+ resources, see the GTK+ API document at
510@uref{http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html}.
673 511
674 To customize widgets you first define a style and then apply the style to 512 In GTK+ version 3, GTK+ resources have been replaced by a completely
675the widgets. Here is an example that sets the font for menus, but not 513different system. The appearance of GTK+ widgets is now determined by
676for other widgets: 514CSS-like style files: @file{gtk-3.0/gtk.css} in the GTK+ installation
515directory, and @file{~/.themes/@var{theme}/gtk-3.0/gtk.css} for local
516style settings (where @var{theme} is the name of the current GTK+
517theme). Therefore, the description of GTK+ resources in this section
518does not apply to GTK+ 3. For details about the GTK+ 3 styling
519system, see
520@uref{http://developer.gnome.org/gtk3/3.0/GtkCssProvider.html}.
677 521
678@smallexample 522@menu
679# @r{Define the style @samp{menufont}.} 523* GTK Resource Basics:: Basic usage of GTK+ resources.
680style "menufont" 524* GTK Widget Names:: How GTK+ widgets are named.
681@{ 525* GTK Names in Emacs:: GTK widgets used by Emacs.
682 font_name = "helvetica bold 14" # This is a Pango font name 526* GTK styles:: What can be customized in a GTK widget.
683@} 527@end menu
684 528
685# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{menufont}.} 529@node GTK Resource Basics
686widget "*emacs-menuitem*" style "menufont" 530@appendixsubsec GTK Resource Basics
687@end smallexample
688 531
689The widget name in this example contains wildcards, so the style will be 532 In a GTK+ 2 resource file (usually @file{~/.emacs.d/gtkrc}), the
690applied to all widgets that match "*emacs-menuitem*". The widgets are 533simplest kinds of resource settings simply assign a value to a
691named by the way they are contained, from the outer widget to the inner widget. 534variable. For example, putting the following line in the resource
692So to apply the style "my_style" (not shown) with the full, absolute name, for 535file changes the font on all GTK+ widgets to @samp{courier-12}:
693the menubar and the scroll bar in Emacs we use:
694 536
695@smallexample 537@smallexample
696widget "Emacs.pane.menubar" style "my_style" 538gtk-font-name = "courier 12"
697widget "Emacs.pane.emacs.verticalScrollBar" style "my_style"
698@end smallexample 539@end smallexample
699 540
700But to avoid having to type it all, wildcards are often used. @samp{*} 541@noindent
701matches zero or more characters and @samp{?} matches one character. So "*" 542Note that in this case the font name must be supplied as a GTK font
702matches all widgets. 543pattern (also called a @dfn{Pango font name}), not as a
544Fontconfig-style font name or XLFD. @xref{Fonts}.
703 545
704 Each widget has a class (for example GtkMenuItem) and a name (emacs-menuitem). 546 To customize widgets you first define a @dfn{style}, and then apply
705You can assign styles by name or by class. In this example we have used the 547the style to the widgets. Here is an example that sets the font for
706class: 548menus (@samp{#} characters indicate comments):
707 549
708@smallexample 550@smallexample
709style "menufont" 551# @r{Define the style @samp{my_style}.}
552style "my_style"
710@{ 553@{
711 font_name = "helvetica bold 14" 554 font_name = "helvetica bold 14"
712@} 555@}
713 556
714widget_class "*GtkMenuBar" style "menufont" 557# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{my_style}.}
558widget "*emacs-menuitem*" style "my_style"
715@end smallexample 559@end smallexample
716 560
717@noindent 561@noindent
718The names and classes for the GTK widgets Emacs uses are: 562The widget name in this example contains wildcards, so the style is
719 563applied to all widgets matching @samp{*emacs-menuitem*}. The widgets
720@multitable {@code{verticalScrollbar plus}} {@code{GtkFileSelection} and some} 564are named by the way they are contained, from the outer widget to the
721@item @code{emacs-filedialog} 565inner widget. Here is another example that applies @samp{my_style}
722@tab @code{GtkFileSelection} 566specifically to the Emacs menu bar:
723@item @code{emacs-dialog}
724@tab @code{GtkDialog}
725@item @code{Emacs}
726@tab @code{GtkWindow}
727@item @code{pane}
728@tab @code{GtkVHbox}
729@item @code{emacs}
730@tab @code{GtkFixed}
731@item @code{verticalScrollBar}
732@tab @code{GtkVScrollbar}
733@item @code{emacs-toolbar}
734@tab @code{GtkToolbar}
735@item @code{menubar}
736@tab @code{GtkMenuBar}
737@item @code{emacs-menuitem}
738@tab anything in menus
739@end multitable
740
741 GTK absolute names are quite strange when it comes to menus
742and dialogs. The names do not start with @samp{Emacs}, as they are
743free-standing windows and not contained (in the GTK sense) by the
744Emacs GtkWindow. To customize the dialogs and menus, use wildcards like this:
745
746@smallexample
747widget "*emacs-dialog*" style "my_dialog_style"
748widget "*emacs-filedialog* style "my_file_style"
749widget "*emacs-menuitem* style "my_menu_style"
750@end smallexample
751
752 If you specify a customization in @file{~/.emacs.d/gtkrc}, then it
753automatically applies only to Emacs, since other programs don't read
754that file. For example, the drop down menu in the file dialog can not
755be customized by any absolute widget name, only by an absolute class
756name. This is because the widgets in the drop down menu do not
757have names and the menu is not contained in the Emacs GtkWindow. To
758have all menus in Emacs look the same, use this in
759@file{~/.emacs.d/gtkrc}:
760 567
761@smallexample 568@smallexample
762widget_class "*Menu*" style "my_menu_style" 569widget "Emacs.pane.menubar.*" style "my_style"
763@end smallexample 570@end smallexample
764 571
765 Here is a more elaborate example, showing how to change the parts of 572 Here is a more elaborate example, showing how to change the parts of
@@ -768,97 +575,24 @@ the scroll bar:
768@smallexample 575@smallexample
769style "scroll" 576style "scroll"
770@{ 577@{
771 fg[NORMAL] = "red"@ @ @ @ @ # @r{The arrow color.} 578 fg[NORMAL] = "red"@ @ @ @ @ # @r{Arrow color.}
772 bg[NORMAL] = "yellow"@ @ # @r{The thumb and background around the arrow.} 579 bg[NORMAL] = "yellow"@ @ # @r{Thumb and background around arrow.}
773 bg[ACTIVE] = "blue"@ @ @ @ # @r{The trough color.} 580 bg[ACTIVE] = "blue"@ @ @ @ # @r{Trough color.}
774 bg[PRELIGHT] = "white"@ # @r{The thumb color when the mouse is over it.} 581 bg[PRELIGHT] = "white"@ # @r{Thumb color when the mouse is over it.}
775@} 582@}
776 583
777widget "*verticalScrollBar*" style "scroll" 584widget "*verticalScrollBar*" style "scroll"
778@end smallexample 585@end smallexample
779@end iftex
780
781@ifnottex
782@cindex GTK resources and customization
783@cindex resource files for GTK
784@cindex @file{~/.gtkrc-2.0} file
785@cindex @file{~/.emacs.d/gtkrc} file
786
787 If Emacs was built to use the GTK widget set, then the menu bar, tool bar,
788scroll bar and the dialogs are customized with the standard GTK
789customization file, @file{~/.gtkrc-2.0}, or with the Emacs specific
790file @file{~/.emacs.d/gtkrc}. We recommend that you use
791@file{~/.emacs.d/gtkrc} for customizations, since @file{~/.gtkrc-2.0}
792seems to be ignored when running GConf with GNOME. These files apply
793only to GTK widget features. To customize Emacs font, background,
794faces, etc., use the normal X resources (@pxref{Resources}).
795
796 Some GTK themes override these mechanisms, which means that using
797these mechanisms will not work to customize them.
798
799 In these files you first define a style and say what it means; then
800you specify to apply the style to various widget types (@pxref{GTK
801widget names}). Here is an example of how to change the font for
802Emacs menus:
803
804@smallexample
805# @r{Define the style @samp{menufont}.}
806style "menufont"
807@{
808 font_name = "helvetica bold 14" # This is a Pango font name
809@}
810
811# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{menufont}.}
812widget "*emacs-menuitem*" style "menufont"
813@end smallexample
814
815 Here is a more elaborate example, showing how to change the parts of
816the scroll bar:
817
818@smallexample
819style "scroll"
820@{
821 fg[NORMAL] = "red"@ @ @ @ @ # @r{The arrow color.}
822 bg[NORMAL] = "yellow"@ @ # @r{The thumb and background around the arrow.}
823 bg[ACTIVE] = "blue"@ @ @ @ # @r{The trough color.}
824 bg[PRELIGHT] = "white"@ # @r{The thumb color when the mouse is over it.}
825@}
826 586
827widget "*verticalScrollBar*" style "scroll" 587@node GTK Widget Names
828@end smallexample
829
830 There are also parameters that affect GTK as a whole. For example,
831the property @code{gtk-font-name} sets the default font for GTK. You
832must use Pango font names (@pxref{GTK styles}). A GTK resources file
833that just sets a default font looks like this:
834
835@smallexample
836gtk-font-name = "courier 12"
837@end smallexample
838
839 The GTK resources file is fully described in the GTK API document.
840This can be found in
841@file{@var{prefix}/share/gtk-doc/html/gtk/gtk-resource-files.html},
842where @file{prefix} is the directory in which the GTK libraries were
843installed (usually @file{/usr} or @file{/usr/local}). You can also
844find the document online, at
845@uref{http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html}.
846
847@menu
848* GTK widget names:: How widgets in GTK are named in general.
849* GTK Names in Emacs:: GTK widget names in Emacs.
850* GTK styles:: What can be customized in a GTK widget.
851@end menu
852
853@node GTK widget names
854@appendixsubsec GTK widget names 588@appendixsubsec GTK widget names
855@cindex GTK widget names 589@cindex GTK widget names
856 590
857 A GTK widget is specified by its @dfn{widget class} and 591 A GTK+ widget is specified by a @dfn{widget name} and a @dfn{widget
858@dfn{widget name}. The widget class is the type of the widget: for 592class}. The widget name refers to a specific widget
859example, @code{GtkMenuBar}. The widget name is the name given to a 593(e.g.@: @samp{emacs-menuitem}), while the widget class refers to a
860specific widget. A widget always has a class, but need not have a 594collection of similar widgets (e.g.@: @samp{GtkMenuItem}). A widget
861name. 595always has a class, but need not have a name.
862 596
863 @dfn{Absolute names} are sequences of widget names or widget 597 @dfn{Absolute names} are sequences of widget names or widget
864classes, corresponding to hierarchies of widgets embedded within 598classes, corresponding to hierarchies of widgets embedded within
@@ -868,55 +602,31 @@ a @code{GtkMenuBar} called @code{menubar}, the absolute class name
868of the menu-bar widget is @code{GtkWindow.GtkVBox.GtkMenuBar}, and 602of the menu-bar widget is @code{GtkWindow.GtkVBox.GtkMenuBar}, and
869its absolute widget name is @code{top.box.menubar}. 603its absolute widget name is @code{top.box.menubar}.
870 604
871 When assigning a style to a widget, you can use the absolute class 605 GTK+ resource files can contain two types of commands for specifying
872name or the absolute widget name. 606widget appearances:
873
874 There are two commands to specify changes for widgets:
875 607
876@table @asis 608@table @code
877@item @code{widget_class} 609@item widget
878specifies a style for widgets based on the absolute class name. 610specifies a style for widgets based on the class name, or just the
611class.
879 612
880@item @code{widget} 613@item widget_class
881specifies a style for widgets based on the absolute class name, 614specifies a style for widgets based on the class name.
882or just the class.
883@end table 615@end table
884 616
885@noindent 617@noindent
886You must specify the class and the style in double-quotes, and put 618See the previous subsection for examples of using the @code{widget}
887these commands at the top level in the GTK customization file, like 619command; the @code{widget_class} command is used similarly. Note that
888this: 620the widget name/class and the style must be enclosed in double-quotes,
621and these commands must be at the top level in the GTK+ resource file.
889 622
890@smallexample 623 As previously noted, you may specify a widget name or class with
891style "menufont" 624shell wildcard syntax: @samp{*} matches zero or more characters and
892@{ 625@samp{?} matches one character. This example assigns a style to all
893 font_name = "helvetica bold 14" 626widgets:
894@}
895
896widget "top.box.menubar" style "menufont"
897widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "menufont"
898@end smallexample
899
900 Matching of absolute names uses shell wildcard syntax: @samp{*}
901matches zero or more characters and @samp{?} matches one character.
902This example assigns @code{base_style} to all widgets:
903 627
904@smallexample 628@smallexample
905widget "*" style "base_style" 629widget "*" style "my_style"
906@end smallexample
907
908 Given the absolute class name @code{GtkWindow.GtkVBox.GtkMenuBar}
909and the corresponding absolute widget name @code{top.box.menubar}, all
910these examples specify @code{my_style} for the menu bar:
911
912@smallexample
913widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "my_style"
914widget_class "GtkWindow.*.GtkMenuBar" style "my_style"
915widget_class "*GtkMenuBar" style "my_style"
916widget "top.box.menubar" style "my_style"
917widget "*box*menubar" style "my_style"
918widget "*menubar" style "my_style"
919widget "*menu*" style "my_style"
920@end smallexample 630@end smallexample
921 631
922@node GTK Names in Emacs 632@node GTK Names in Emacs
@@ -924,68 +634,52 @@ widget "*menu*" style "my_style"
924@cindex GTK widget names 634@cindex GTK widget names
925@cindex GTK widget classes 635@cindex GTK widget classes
926 636
927 In Emacs, the top level widget for a frame is a @code{GtkWindow} 637 The GTK+ widgets used by an Emacs frame are listed below:
928that contains a @code{GtkVBox}. The @code{GtkVBox} contains the
929@code{GtkMenuBar} and a @code{GtkFixed} widget. The vertical scroll
930bars, @code{GtkVScrollbar}, are contained in the @code{GtkFixed}
931widget. The text you write in Emacs is drawn in the @code{GtkFixed}
932widget.
933 638
934 Dialogs in Emacs are @code{GtkDialog} widgets. The file dialog is a 639@table @asis
935@code{GtkFileSelection} widget. 640@item @code{Emacs} (class @code{GtkWindow})
641@table @asis
642@item @code{pane} (class @code{GtkVBox})
643@table @asis
644@item @code{menubar} (class @code{GtkMenuBar})
645@table @asis
646@item [menu item widgets]
647@end table
648@item [unnamed widget] (class @code{GtkHandleBox})
649@table @asis
650@item @code{emacs-toolbar} (class @code{GtkToolbar})
651@table @asis
652@item [tool bar item widgets]
653@end table
654@end table
655@item @code{emacs} (class @code{GtkFixed})
656@table @asis
657@item @code{verticalScrollBar} (class @code{GtkVScrollbar})
658@end table
659@end table
660@end table
661@end table
936 662
937@noindent 663@noindent
938To set a style for the menu bar using the absolute class name, use: 664The contents of Emacs windows are drawn in the @code{emacs} widget.
665Note that even if there are multiple Emacs windows, each scroll bar
666widget is named @code{verticalScrollBar}.
939 667
940@smallexample 668 For example, here are two different ways to set the menu bar style:
941widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "my_style"
942@end smallexample
943
944@noindent
945For the scroll bar, the absolute class name is:
946 669
947@smallexample 670@smallexample
948widget_class 671widget "Emacs.pane.menubar.*" style "my_style"
949 "GtkWindow.GtkVBox.GtkFixed.GtkVScrollbar" 672widget_class "GtkWindow.GtkVBox.GtkMenuBar.*" style "my_style"
950 style "my_style"
951@end smallexample 673@end smallexample
952 674
953@noindent 675 For GTK+ dialogs, Emacs uses a widget named @code{emacs-dialog}, of
954The names for the emacs widgets, and their classes, are: 676class @code{GtkDialog}. For file selection, Emacs uses a widget named
955 677@code{emacs-filedialog}, of class @code{GtkFileSelection}.
956@multitable {@code{verticalScrollbar plus}} {@code{GtkFileSelection} and some}
957@item @code{emacs-filedialog}
958@tab @code{GtkFileSelection}
959@item @code{emacs-dialog}
960@tab @code{GtkDialog}
961@item @code{Emacs}
962@tab @code{GtkWindow}
963@item @code{pane}
964@tab @code{GtkVHbox}
965@item @code{emacs}
966@tab @code{GtkFixed}
967@item @code{verticalScrollBar}
968@tab @code{GtkVScrollbar}
969@item @code{emacs-toolbar}
970@tab @code{GtkToolbar}
971@item @code{menubar}
972@tab @code{GtkMenuBar}
973@item @code{emacs-menuitem}
974@tab anything in menus
975@end multitable
976
977@noindent
978Thus, for Emacs you can write the two examples above as:
979
980@smallexample
981widget "Emacs.pane.menubar" style "my_style"
982widget "Emacs.pane.emacs.verticalScrollBar" style "my_style"
983@end smallexample
984 678
985 GTK absolute names are quite strange when it comes to menus 679 Because the widgets for pop-up menus and dialogs are free-standing
986and dialogs. The names do not start with @samp{Emacs}, as they are 680windows and not ``contained'' in the @code{Emacs} widget, their GTK+
987free-standing windows and not contained (in the GTK sense) by the 681absolute names do not start with @samp{Emacs}. To customize these
988Emacs GtkWindow. To customize the dialogs and menus, use wildcards like this: 682widgets, use wildcards like this:
989 683
990@smallexample 684@smallexample
991widget "*emacs-dialog*" style "my_dialog_style" 685widget "*emacs-dialog*" style "my_dialog_style"
@@ -993,14 +687,7 @@ widget "*emacs-filedialog* style "my_file_style"
993widget "*emacs-menuitem* style "my_menu_style" 687widget "*emacs-menuitem* style "my_menu_style"
994@end smallexample 688@end smallexample
995 689
996 If you specify a customization in @file{~/.emacs.d/gtkrc}, then it 690 If you want to apply a style to all menus in Emacs, use this:
997automatically applies only to Emacs, since other programs don't read
998that file. For example, the drop down menu in the file dialog can not
999be customized by any absolute widget name, only by an absolute class
1000name. This is because the widgets in the drop down menu do not
1001have names and the menu is not contained in the Emacs GtkWindow. To
1002have all menus in Emacs look the same, use this in
1003@file{~/.emacs.d/gtkrc}:
1004 691
1005@smallexample 692@smallexample
1006widget_class "*Menu*" style "my_menu_style" 693widget_class "*Menu*" style "my_menu_style"
@@ -1010,15 +697,7 @@ widget_class "*Menu*" style "my_menu_style"
1010@appendixsubsec GTK styles 697@appendixsubsec GTK styles
1011@cindex GTK styles 698@cindex GTK styles
1012 699
1013 In a GTK style you specify the appearance widgets shall have. You 700 Here is an example of two GTK+ style declarations:
1014can specify foreground and background color, background pixmap and
1015font. The edit widget (where you edit the text) in Emacs is a GTK
1016widget, but trying to specify a style for the edit widget will have no
1017effect. This is so that Emacs compiled for GTK is compatible with
1018Emacs compiled for other X toolkits. The settings for foreground,
1019background and font for the edit widget is taken from the X resources;
1020@pxref{Resources}. Here is an example of two style declarations,
1021@samp{default} and @samp{ruler}:
1022 701
1023@smallexample 702@smallexample
1024pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" 703pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps"
@@ -1128,9 +807,8 @@ text fields in the file dialog.
1128 807
1129@item font_name = "@var{font}" 808@item font_name = "@var{font}"
1130This specifies the font for text in the widget. @var{font} is a 809This specifies the font for text in the widget. @var{font} is a
1131Pango font name, for example @samp{Sans Italic 10}, @samp{Helvetica 810GTK-style (or Pango) font name, like @samp{Sans Italic 10}.
1132Bold 12}, @samp{Courier 14}, @samp{Times 18}. See below for exact 811@xref{Fonts}. The names are case insensitive.
1133syntax. The names are case insensitive.
1134@end table 812@end table
1135 813
1136 There are three ways to specify a color: a color name, an RGB 814 There are three ways to specify a color: a color name, an RGB
@@ -1138,60 +816,6 @@ triplet, or a GTK-style RGB triplet. @xref{Colors}, for a description
1138of color names and RGB triplets. Color names should be enclosed with 816of color names and RGB triplets. Color names should be enclosed with
1139double quotes, e.g.@: @samp{"red"}. RGB triplets should be written 817double quotes, e.g.@: @samp{"red"}. RGB triplets should be written
1140without double quotes, e.g.@: @samp{#ff0000}. GTK-style RGB triplets 818without double quotes, e.g.@: @samp{#ff0000}. GTK-style RGB triplets
1141have the form 819have the form @w{@code{@{ @var{r}, @var{g}, @var{b} @}}}, where
1142 820@var{r}, @var{g} and @var{b} are either integers in the range 0-65535
1143@smallexample 821or floats in the range 0.0-1.0.
1144@code{@{ @var{r}, @var{g}, @var{b} @}}
1145@end smallexample
1146
1147@noindent
1148where @var{r}, @var{g} and @var{b} are either integers in the range
11490-65535 or floats in the range 0.0-1.0.
1150
1151 Pango font names have the form ``@var{family-list} @var{style-options}
1152@var{size}.''
1153@cindex Pango font name
1154@noindent
1155@var{family-list} is a comma separated list of font families optionally
1156terminated by a comma. This way you can specify several families and the
1157first one found will be used. @var{family} corresponds to the second part in
1158an X font name, for example in
1159
1160@smallexample
1161-adobe-times-medium-r-normal--12-120-75-75-p-64-iso10646-1
1162@end smallexample
1163
1164@noindent
1165the family name is @samp{times}.
1166
1167@noindent
1168@var{style-options} is a whitespace separated list of words where each word
1169is a style, variant, weight, or stretch. The default value for all of
1170these is @code{normal}.
1171
1172@noindent
1173A `style' corresponds to the fourth part of an X font name. In X font
1174names it is the character @samp{r}, @samp{i} or @samp{o}; in Pango
1175font names the corresponding values are @code{normal}, @code{italic},
1176or @code{oblique}.
1177
1178@noindent
1179A `variant' is either @code{normal} or @code{small-caps}.
1180Small caps is a font with the lower case characters replaced by
1181smaller variants of the capital characters.
1182
1183@noindent
1184Weight describes the ``boldness'' of a font. It corresponds to the third
1185part of an X font name. It is one of @code{ultra-light}, @code{light},
1186@code{normal}, @code{bold}, @code{ultra-bold}, or @code{heavy}.
1187
1188@noindent
1189Stretch gives the width of the font relative to other designs within a
1190family. It corresponds to the fifth part of an X font name. It is one of
1191@code{ultra-condensed}, @code{extra-condensed}, @code{condensed},
1192@code{semi-condensed}, @code{normal}, @code{semi-expanded},
1193@code{expanded}, @code{extra-expanded}, or @code{ultra-expanded}.
1194
1195@noindent
1196@var{size} is a decimal number that describes the font size in points.
1197@end ifnottex
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 15257c9fe52..b4e22c506a3 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,8 @@
12012-01-14 Eli Zaretskii <eliz@gnu.org>
2
3 * tutorials/TUTORIAL.he: Update to follow changes to TUTORIAL in
4 2012-01-10T08:27:22Z!cyd@gnu.org.
5
12012-01-10 Chong Yidong <cyd@gnu.org> 62012-01-10 Chong Yidong <cyd@gnu.org>
2 7
3 * tutorials/TUTORIAL: Don't give instructions for old-style X 8 * tutorials/TUTORIAL: Don't give instructions for old-style X
diff --git a/etc/tutorials/TUTORIAL b/etc/tutorials/TUTORIAL
index c41b5d1127e..12b22f83245 100644
--- a/etc/tutorials/TUTORIAL
+++ b/etc/tutorials/TUTORIAL
@@ -296,7 +296,7 @@ like A, 7, *, etc., are inserted as you type them. To insert a
296Newline character, type <Return> (this is the key on the keyboard 296Newline character, type <Return> (this is the key on the keyboard
297which is sometimes labeled "Enter"). 297which is sometimes labeled "Enter").
298 298
299To delete <DEL> the character immediately before the current cursor 299To delete the character immediately before the current cursor
300position, type <DEL>. This is the key on the keyboard usually labeled 300position, type <DEL>. This is the key on the keyboard usually labeled
301"Backspace"--the same one you normally use, outside Emacs, to delete 301"Backspace"--the same one you normally use, outside Emacs, to delete
302the last character typed. 302the last character typed.
@@ -839,8 +839,8 @@ go to the next occurrence of 'cursor' just type C-s again. If no such
839occurrence exists, Emacs beeps and tells you the search is currently 839occurrence exists, Emacs beeps and tells you the search is currently
840"failing". C-g would also terminate the search. 840"failing". C-g would also terminate the search.
841 841
842If you are in the middle of an incremental search and type <DEL>, this 842If you are in the middle of an incremental search and type <DEL>, the
843the search "retreats" to an earlier location. If you type <DEL> just 843search "retreats" to an earlier location. If you type <DEL> just
844after you had typed C-s to advance to the next occurrence of a search 844after you had typed C-s to advance to the next occurrence of a search
845string, the <DEL> moves the cursor back to an earlier occurrence. If 845string, the <DEL> moves the cursor back to an earlier occurrence. If
846there are no earlier occurrences, the <DEL> erases the last character 846there are no earlier occurrences, the <DEL> erases the last character
diff --git a/etc/tutorials/TUTORIAL.he b/etc/tutorials/TUTORIAL.he
index 98690501f5f..cb82f87f765 100644
--- a/etc/tutorials/TUTORIAL.he
+++ b/etc/tutorials/TUTORIAL.he
@@ -198,19 +198,9 @@ argument) ×ž×©×•× ×ž×§×™×©×™× ×ותו לפני הפקודה ×ליה ×”×•× ×
198כתוצ××”, התצוגה היתה צריכה לזוז ב־8 שורות. ×× ×‘×¨×¦×•× ×›× ×œ×’×œ×•×œ בחזרה, 198כתוצ××”, התצוגה היתה צריכה לזוז ב־8 שורות. ×× ×‘×¨×¦×•× ×›× ×œ×’×œ×•×œ בחזרה,
199×פשר להשיג ×–×ת ×¢"×™ מתן ×רגומנט ל־M-v. 199×פשר להשיג ×–×ת ×¢"×™ מתן ×רגומנט ל־M-v.
200 200
201×× ×”×¤×¢×œ×ª× ×ת Emacs על־גבי מער×ת ×ל×× ×ית כגון X ×ו MS-Windows, ××ª× 201×× ×”×¤×¢×œ×ª× ×ת Emacs על־גבי תצ××× ×רפית כגון X ×ו MS-Windows, ×ת×
202×¦×¨×™×›×™× ×œ×¨×ות פס צר וגבוה, ששמו פס גלילה (scroll bar) בצידו של החלון 202×¦×¨×™×›×™× ×œ×¨×ות פס צר וגבוה, ששמו פס גלילה (scroll bar) בצידו של החלון
203של Emacs. (שימו לב שבשני צידי החלון ×§×™×™×ž×™× ×¤×¡×™× × ×•×¡×¤×™×. ×לה נקר××™× 203של Emacs. ניתן לגלול ×ת הטקסט ×¢"×™ הקלקת עכבר בתוך פס הגלילה.
204"השוליי×" -- "fringes" -- ×•×ž×©×ž×©×™× ×œ×”×¦×’×ª סימני המשך שורה וסימוני×
205×חרי×. פס הגלילה, לעומת×, מופיע רק בצד ×חד ×•×”×•× ×”×›×™ קרוב לקצה החלון
206בצד ההו×.)
207
208>> נסו עתה להקליק בכפתור ×”×מצעי של העכבר בחלק העליון של ×”×זור המודגש
209 של פס הגלילה. פעולה זו ×מורה לגלול ×ת הטקסט בשיעור שתלוי ×‘×ž×§×•× ×‘×•
210 הקלקת×.
211
212>> נסו לגרור ×ת העכבר מעלה ומטה, תוך כדי לחיצה על הכפתור ×”×מצעי.
213 כתוצ××”, Emacs יגלול ×ת הטקסט מעלה ומטה בהת×× ×œ×ª× ×•×¢×ª העכבר.
214 204
215×× ×”×¢×›×‘×¨ ×©×œ×›× ×ž×¦×•×™×“ בגלגל, תוכלו להשתמש ×’× ×‘×• לגלילת הטקסט. 205×× ×”×¢×›×‘×¨ ×©×œ×›× ×ž×¦×•×™×“ בגלגל, תוכלו להשתמש ×’× ×‘×• לגלילת הטקסט.
216 206
@@ -255,9 +245,9 @@ argument) ×ž×©×•× ×ž×§×™×©×™× ×ותו לפני הפקודה ×ליה ×”×•× ×
255מבטלת ×ת ש×ר החלונות. 245מבטלת ×ת ש×ר החלונות.
256 246
257>> הניעו ×ת הסמן לתוך שורה זו והקישו C-u 0 C-l. 247>> הניעו ×ת הסמן לתוך שורה זו והקישו C-u 0 C-l.
258>> עתה הקישו CONTROL-h k CONTROL-f. 248>> עתה הקישו C-h k C-f.
259 שימו לב כיצד החלון הנוכחי ×ž×¦×˜×ž×¦× ×•×ž×•×¤×™×¢ חלון חדש שבו מוצג 249 שימו לב כיצד החלון הנוכחי ×ž×¦×˜×ž×¦× ×•×ž×•×¤×™×¢ חלון חדש שבו מוצג
260 התיעוד של הפקודה CONTROL-f. 250 התיעוד של הפקודה C-f.
261 251
262>> הקישו C-x 1 ושימו לב שהחלון ×¢× ×”×”×¡×‘×¨ על C-f נעל×. 252>> הקישו C-x 1 ושימו לב שהחלון ×¢× ×”×”×¡×‘×¨ על C-f נעל×.
263 253
@@ -271,40 +261,37 @@ argument) ×ž×©×•× ×ž×§×™×©×™× ×ותו לפני הפקודה ×ליה ×”×•× ×
271-------------- 261--------------
272 262
273×× ×‘×¨×¦×•× ×›× ×œ×”×›× ×™×¡ טקסט, פשוט הקישו על ×”×ž×§×©×™× ×”×ž×ª×ימי×. ×ª×•×™× ×¨×’×™×œ×™×, 263×× ×‘×¨×¦×•× ×›× ×œ×”×›× ×™×¡ טקסט, פשוט הקישו על ×”×ž×§×©×™× ×”×ž×ª×ימי×. ×ª×•×™× ×¨×’×™×œ×™×,
274כגון A, ×, 7, * וכד' מתפרש×× ×¢"×™ Emacs ×טקסט ×מי×מת××•×¡×¤×™× ×œ×˜×§×¡×˜ 264כגון A, ×, 7, * וכד' מ××מת××ספ×× ×œ×˜×§×¡×˜ ××§×™××. ×קישו <Return> (מקש
275××§××™×. ××§×שו <Return> (מקש ××רת ×רר) כדי להכניס ×ת תו השורה החדשה 265××רת ×רר ×©×œ×¢×ª×™× × ××× ×œ×§×¨×•× ×œ×• "Enter") כדי להכניס ×ת תו השורה החדשה
276(Newline). 266(Newline).
277 267
278למחיקת התו ×”×חרון ×©×”×§×©×ª× ×”×§×™×©×• <DelBack>. המקש ש×נו קור××™× ×œ×• <DelBack> 268למחיקת התו ×”×חרון ×©×”×§×©×ª× ×”×§×™×©×• <DEL>. בדרך כלל זהו מקש שמסומן
279יכול ×œ×”×ª×§×¨× ×‘×©×ž×•×ª ×©×•× ×™× -- "Delete", "DEL" ×ו "Backspace". בדרך כלל 269ב־"Backspace", ×•×”×•× ×ž×©×ž×© ××ª×›× ×œ×ž×—×™×§×ª התו ×חרון ×’× ×‘×ª×•×›× ×™×•×ª ×חרות, ל×
280זהו מקש גדול ובולט ×©× ×ž×¦× ×œ× ×”×¨×—×§ ממקש <Return>, ×•×”×•× ×ž×©×ž×© ××ª×›× ×œ×ž×—×™×§×ª 270רק ב־Emacs.
281התו ×חרון ×’× ×‘×ª×•×›× ×™×•×ª ×חרות, ×œ× ×¨×§ ב־Emacs.
282
283×× ×§×™×™× ×‘×ž×§×œ×“×ª ×©×œ×›× ×ž×§×© גדול שעליו ×¨×©×•× <Backspace>, ××– זהון המקש ×שר
284ישמש ×›Ö¾<DelBack>. ×’× ×× ×™×”×™×” מקש ×חר המסומן ב־"Delete" ×‘×ž×§×•× ×חרת ×–×”
285×ינו ×”Ö¾<DelBack> שלכ×.
286 271
287ב×ופן כללי יותר, <DelBack> מוחק ×ת התו ×©×§×•×“× ×œ×ž×™×§×•× ×”×¡×ž×Ÿ. 272יתכן שבמקלדת ×©×œ×›× ×§×™×™× ×ž×§×© שעליו ×¨×©×•× <Delete>, ×ך ×–×” ×ינו המקש ש×נו
273קור××™× ×œ×• <DEL>.
288 274
289>> הקישו עתה מספר תוי×, ו×חר־כך מחקו ××•×ª× ×¢"×™ הקשות ×חדות 275>> הקישו עתה מספר תוי×, ו×חר־כך מחקו ××•×ª× ×¢"×™ הקשות ×חדות
290 על <DelBack>. ×ל תחששו לשנות ×ת הקובץ ×”×–×” -- העותק המקורי 276 על <DEL>. ×ל תחששו לשנות ×ת הקובץ ×”×–×” -- העותק המקורי
291 של השיעור ייש×ר ×œ×œ× ×©×™× ×•×™. ××ª× ×¢×•×‘×“×™× ×¢×œ העותק ×”×ישי שלכ×. 277 של השיעור ייש×ר ×œ×œ× ×©×™× ×•×™. ××ª× ×¢×•×‘×“×™× ×¢×œ העותק ×”×ישי שלכ×.
292 278
293×›×שר שורה של טקסט נעשית ×רוכה משורה ×חת של תצוגה, חלק מהטקסט ממשיך 279×›×שר שורה של טקסט נעשית ×רוכה משורה ×חת של תצוגה, חלק מהטקסט ממשיך
294בשורת תצוגה נוספת, ×”×™× "שורת ההמשך". תו לוכסן ("/") בסוף השורה (×ו 280בשורת תצוגה נוספת, ×”×™× "שורת ההמשך". על תצוגה גרפית יופיע ×—×¥ עקלקל קטן
295×—×¥ עקלקל קטן ב×זור ×”×©×•×œ×™×™× -- "fringe") מסמל שלשורה יש שורת המשך. 281ב×זור ×”×©×•×œ×™×™× -- "fringe" שמסמל ×›×™ לשורה יש שורת המשך, ו×ילו על תצוגה
282טקסטו×לית יופיע תו לוכסן ("/") ל×ותה תכלית בסוף השורה.
296 283
297>> הקישו טקסט עד שתגיעו לקצה השורה, ו××– תמשיכו להקיש עוד טקסט. 284>> הקישו טקסט עד שתגיעו לקצה השורה, ו××– תמשיכו להקיש עוד טקסט.
298 כתוצ××”, תר×ו שמופיעה שורת המשך. 285 כתוצ××”, תר×ו שמופיעה שורת המשך.
299 286
300>> עתה הקישו <DelBack> על־מנת למחוק טקסט עד שהשורה תיעשה קצרה מספיק 287>> עתה הקישו <DEL> על־מנת למחוק טקסט עד שהשורה תיעשה קצרה מספיק
301 ותת××™× ×œ×©×•×¨×” בודדת על־גבי התצוגה. שורת ההמשך תיעל×. 288 ותת××™× ×œ×©×•×¨×” בודדת על־גבי התצוגה. שורת ההמשך תיעל×.
302 289
303ניתן למחוק ×ת תו ×”Ö¾Newline כמו כל תו ×חר. מחיקת ×”Ö¾Newline בין שתי 290ניתן למחוק ×ת תו ×”Ö¾Newline כמו כל תו ×חר. מחיקת ×”Ö¾Newline בין שתי
304שורות תמזג ×ת השורות לשורה ×חת. ×× ×”×©×•×¨×” המשולבת תהיה ×רוכה מרוחב 291שורות תמזג ×ת השורות לשורה ×חת. ×× ×”×©×•×¨×” המשולבת תהיה ×רוכה מרוחב
305התצוגה, ×”×™× ×ª×•×¦×’ ×¢× ×©×•×¨×ª המשך. 292התצוגה, ×”×™× ×ª×•×¦×’ ×¢× ×©×•×¨×ª המשך.
306 293
307>> הניעו ×ת הסמן לתחילת השורה והקישו <DelBack>. כתוצ××”, השורה תתמזג 294>> הניעו ×ת הסמן לתחילת השורה והקישו <DEL>. כתוצ××”, השורה תתמזג
308 ×× ×§×•×“×ž×ª×”. 295 ×× ×§×•×“×ž×ª×”.
309 296
310>> עתה הקישו <Return> כדי להחזיר ×ת ×”Ö¾Newline שמחקת×. 297>> עתה הקישו <Return> כדי להחזיר ×ת ×”Ö¾Newline שמחקת×.
@@ -317,24 +304,24 @@ argument) ×ž×©×•× ×ž×§×™×©×™× ×ותו לפני הפקודה ×ליה ×”×•× ×
317ובכן, ×œ×ž×“×ª× ×ת ×”×ופן הבסיסי ביותר להדפיס משהו ב־Emacs ולתקן שגי×ות. 304ובכן, ×œ×ž×“×ª× ×ת ×”×ופן הבסיסי ביותר להדפיס משהו ב־Emacs ולתקן שגי×ות.
318×פשר למחוק ×’× ×ž×œ×™× ×•××£ שורות שלמות. להלן ×¡×™×›×•× ×¤×§×•×“×•×ª המחיקה: 305×פשר למחוק ×’× ×ž×œ×™× ×•××£ שורות שלמות. להלן ×¡×™×›×•× ×¤×§×•×“×•×ª המחיקה:
319 306
320 â€<Delback> מחק תו שלפני הסמן 307 â€<DEL> מחק תו שלפני הסמן
321 â€C-d מחק תו מתחת ×ו ×חרי הסמן 308 â€C-d מחק תו מתחת ×ו ×חרי הסמן
322 309
323 â€â€ªM-<Delback>‬ גזור מילה שלפני הסמן 310 â€â€ªM-<DEL>‬ גזור מילה שלפני הסמן
324 â€M-d גזור מילה ש×חרי הסמן 311 â€M-d גזור מילה ש×חרי הסמן
325 312
326 â€C-k גזור טקסט מהסמן ועד סוף השורה 313 â€C-k גזור טקסט מהסמן ועד סוף השורה
327 â€M-k גזור טקסט עד סוף המשפט הנוכחי. 314 â€M-k גזור טקסט עד סוף המשפט הנוכחי.
328 315
329שימו לב שהיחס בין <Delback> ו־C-d לעומת M-<Delback>‎ ו־M-d ×ž×ž×©×™×›×™× ×ת 316שימו לב שהיחס בין <DEL> ו־C-d לעומת M-<DEL>‎ ו־M-d ×ž×ž×©×™×›×™× ×ת ההקבלה
330ההקבלה שבין C-f ו־M-f (××ž× × <Delback> ×יננו תו בקרה, ×‘×•× × ×–× ×™×— ×ת 317שבין C-f ו־M-f (××ž× × <DEL> ×יננו תו בקרה, ×בל ×‘×•× × ×–× ×™×— ×ת הנקודה הזו
331הנקודה הזו לעת־עתה). C-k ו־M-k ×“×•×ž×™× ×œÖ¾C-e ו־M-e, ×× × ×§×‘×™×œ שורות 318לעת־עתה). C-k ו־M-k ×“×•×ž×™× ×œÖ¾C-e ו־M-e, ×× × ×§×‘×™×œ שורות למשפטי×.
332למשפטי×.
333 319
334בנוסף, קיימת שיטה ×חידה שמ×פשרת לגזור קטע כלשהו של טקסט. ×œ×©× ×›×š, תגיעו 320בנוסף, קיימת שיטה ×חידה שמ×פשרת לגזור קטע כלשהו של טקסט. ×œ×©× ×›×š, תגיעו
335לקצה ×”×חד של חלק הטקסט והקישו C-@‎ ×ו C-<SPC>‎ (×חד מבין שני ×לו). 321לקצה ×”×חד של חלק הטקסט והקישו C-<SPC>‎. (<SPC> ×”×•× ×ž×§×© הרווח.) עתה
336(<SPC> ×”×•× ×ž×§×© הרווח.) עתה הניעו ×ת הסמן לקצה השני של חלק הטקסט והקישו 322הניעו ×ת הסמן לקצה השני של חלק הטקסט ×שר ×‘×¨×¦×•× ×›× ×œ×’×–×•×¨. תוך כדי תנועת
337C-w. כתוצ××”, כל הטקסט בין שני המקומות הללו ייגזר. 323הסמן Emacs צובע ×ת הטקסט בין הסמן לבין ×”×ž×§×•× ×‘×• ×”×§×©×ª× C-<SPC>‎. לבסוף,
324הקישו C-w. כתוצ××”, כל הטקסט בין שני המקומות הללו ייגזר.
338 325
339>> הניעו ×ת הסמן ×ל ×”×ות ב בתחילת הפיסקה הקודמת. 326>> הניעו ×ת הסמן ×ל ×”×ות ב בתחילת הפיסקה הקודמת.
340>> הקישו C-<SPC>‎. â€Emacs צריך להציג הודעה ×”×ומרת "Mark set" בתחתית 327>> הקישו C-<SPC>‎. â€Emacs צריך להציג הודעה ×”×ומרת "Mark set" בתחתית
@@ -348,7 +335,7 @@ C-w. כתוצ××”, כל הטקסט בין שני המקומות הללו ×™×™×’×
348הטקסט הגזור × ×§×¨× "הדבקה" ("yanking"). ב×ופן כללי, פקודות ×שר עלולות 335הטקסט הגזור × ×§×¨× "הדבקה" ("yanking"). ב×ופן כללי, פקודות ×שר עלולות
349×œ×”×¢×œ×™× ×›×ž×•×™×•×ª גדולות של טקסט תמיד גוזרות ×ת הטקסט (כך שניתן ×™×”×™×” בקלות 336×œ×”×¢×œ×™× ×›×ž×•×™×•×ª גדולות של טקסט תמיד גוזרות ×ת הטקסט (כך שניתן ×™×”×™×” בקלות
350לשחזרו) בעוד הפקודות שמורידות תו בודד ×ו שורות ריקות ותוי רווח -- 337לשחזרו) בעוד הפקודות שמורידות תו בודד ×ו שורות ריקות ותוי רווח --
351מוחקות (כך ×©×œ× × ×™×ª×Ÿ להדביק ×ת הטקסט שנמחק). כך, <Delback> ו־C-d ×ž×•×—×§×™× 338מוחקות (כך ×©×œ× × ×™×ª×Ÿ להדביק ×ת הטקסט שנמחק). כך, <DEL> ו־C-d מוחקי×
352×›×שר ×ž×¤×¢×™×œ×™× ××•×ª× ×œ×œ× ×רגומנט, ×בל ×’×•×–×¨×™× ×›×שר ×ž×¤×¢×™×œ×™× ××•×ª× ×¢× ×רגומנט. 339×›×שר ×ž×¤×¢×™×œ×™× ××•×ª× ×œ×œ× ×רגומנט, ×בל ×’×•×–×¨×™× ×›×שר ×ž×¤×¢×™×œ×™× ××•×ª× ×¢× ×רגומנט.
353 340
354>> הניעו ×ת הסמן לתחילת שורה ש××™× ×” ריקה. ×חר־כך הקישו C-k כדי לגזור 341>> הניעו ×ת הסמן לתחילת שורה ש××™× ×” ריקה. ×חר־כך הקישו C-k כדי לגזור
@@ -406,23 +393,22 @@ C-w. כתוצ××”, כל הטקסט בין שני המקומות הללו ×™×™×’×
406-------------- 393--------------
407 394
408×× ×©×™× ×™×ª× ×ת הטקסט ו××– ×”×—×œ×˜×ª× ×©×”×©×™× ×•×™ ×”×™×” טעות, תוכלו לבטל ×ת השינוי 395×× ×©×™× ×™×ª× ×ת הטקסט ו××– ×”×—×œ×˜×ª× ×©×”×©×™× ×•×™ ×”×™×” טעות, תוכלו לבטל ×ת השינוי
409בעזרת פקודת הביטול, C-x u. 396בעזרת פקודת הביטול, ‪C-/‬.
410 397
411בדרך כלל, C-x u מבטל ×ת ×”×©×™× ×•×™×™× ×©×‘×•×¦×¢×• ×¢"×™ פקודה ×חת. הפעלה חוזרת של 398בדרך כלל,‪C-/‬ מבטל ×ת ×”×©×™× ×•×™×™× ×©×‘×•×¦×¢×• ×¢"×™ פקודה ×חת. הפעלה חוזרת של
412C-x u ברצף מבטלת ×©×™× ×•×™×™× ×©×œ פקודות קודמות, ×חת ×חרי השניה. 399‪C-/‬ ברצף מבטלת ×©×™× ×•×™×™× ×©×œ פקודות קודמות, ×חת ×חרי השניה.
413 400
414שני יוצ××™× ×ž×”×›×œ×œ ×”×–×”: פקודות ש×ינן משנות טקסט (למשל פקודות הנעת הסמן 401שני יוצ××™× ×ž×”×›×œ×œ ×”×–×”: פקודות ש×ינן משנות טקסט (למשל פקודות הנעת הסמן
415ופקודות גלילה) ×ינן נספרות ×•×ª×•×™× ×©×ž×›× ×™×¡×™× ×ת ×¢×¦×ž× ×ž×§×•×‘×¦×™× ×‘×§×‘×•×¦×•×ª של 402ופקודות גלילה) ×ינן נספרות ×•×ª×•×™× ×©×ž×›× ×™×¡×™× ×ת ×¢×¦×ž× ×ž×§×•×‘×¦×™× ×‘×§×‘×•×¦×•×ª של
416עד 20, כדי להקטין ×ת מספר ×”×¤×¢×ž×™× ×©×™×© להקיש C-x u כדי לבטל הכנסת טקסט. 403עד 20, כדי להקטין ×ת מספר ×”×¤×¢×ž×™× ×©×™×© להקיש ‪C-/‬ כדי לבטל הכנסת טקסט.
417 404
418>> גזרו שורה זו ×¢× C-k, ×חר־כך הקישו C-x u ×•×”×™× ×ª×•×¤×™×¢ שוב. 405>> גזרו שורה זו ×¢× C-k, ×חר־כך הקישו ‪C-/‬ ×•×”×™× ×ª×•×¤×™×¢ שוב.
419 406
420â€C-_‎ ×”×™× ×” דרך חלופית להפעיל ×ת פקודת הביטול. ×”×™× ×¤×•×¢×œ×ª בדיוק כמו C-x u, 407â€C-_‎ ×”×™× ×” דרך חלופית להפעיל ×ת פקודת הביטול. ×”×™× ×¤×•×¢×œ×ª בדיוק כמו ‪C-/‬.
421×בל קלה יותר להקשה מספר ×¤×¢×ž×™× ×‘×–×• ×חר זו. החסרון של C-_‎ ×”×•× ×©×‘×›×ž×” 408במקלדות ×חדות הקשה על ‪C-/‬ שולחת ל־Emacs ×ת התו C-_‎. חלופה נוספת ×”×™×
422מקלדות ×œ× ×‘×¨×•×¨ מ×ליו כיצד להקיש ×–×ת. זו הסיבה לקיומו של C-x u. במקלדות 409C-x u, ××Ö¾×›×™ ×”×™× ×¤×—×•×ª נוחה להקשה מספר ×¤×¢×ž×™× ×‘×–×• ×חר זו.
423×חדות ניתן להקיש C-_‎ ×¢"×™ החזקת CONTROL והקשת לוכסן /.
424 410
425×רגומנט נומרי ל־C-_‎ ×ו ל־C-x u משמש כמספר החזרות על הפקודה. 411×רגומנט נומרי ל־‪C-/‬ ×ו ל־C-_‎ ×ו ל־C-x u משמש כמספר החזרות על הפקודה.
426 412
427ניתן לבטל מחיקה של טקסט בדיוק כמו שניתן לבטל גזירה. ×”×”×‘×“×œ×™× ×‘×™×Ÿ מחיקה 413ניתן לבטל מחיקה של טקסט בדיוק כמו שניתן לבטל גזירה. ×”×”×‘×“×œ×™× ×‘×™×Ÿ מחיקה
428וגזירה ×ž×©×¤×™×¢×™× ×¢×œ ×™×›×•×œ×ª×›× ×œ×”×“×‘×™×§ ×ת הטקסט הגזור ×¢× C-y; ×”× ××™× × ×—×©×•×‘×™× 414וגזירה ×ž×©×¤×™×¢×™× ×¢×œ ×™×›×•×œ×ª×›× ×œ×”×“×‘×™×§ ×ת הטקסט הגזור ×¢× C-y; ×”× ××™× × ×—×©×•×‘×™×
@@ -442,15 +428,15 @@ C-x u ברצף מבטלת ×©×™× ×•×™×™× ×©×œ פקודות קודמות, ×חת
442×©×œ× ×‘×ž×¢×¨×›×ª ×©×œ× ×›×¨×¦×•× ×›×. ×פילו ×× ××ª× ×©×•×ž×¨×™× ×ת הקובץ, Emacs מש×יר ×ת 428×©×œ× ×‘×ž×¢×¨×›×ª ×©×œ× ×›×¨×¦×•× ×›×. ×פילו ×× ××ª× ×©×•×ž×¨×™× ×ת הקובץ, Emacs מש×יר ×ת
443התוכן המקורי ×‘×©× ×©×•× ×” למקרה שמ×וחר יותר תחליטו ×©×”×©×™× ×•×™×™× × ×¢×©×• בטעות. 429התוכן המקורי ×‘×©× ×©×•× ×” למקרה שמ×וחר יותר תחליטו ×©×”×©×™× ×•×™×™× × ×¢×©×• בטעות.
444 430
445×× ×ª×‘×™×˜×• בחלק התחתון של התצוגה, תר×ו ×©× ×©×•×¨×” בולטת שמתחילה ×מסתי×מת 431×× ×ª×‘×™×˜×• בחלק התחתון של התצוגה, תר×ו ×©× ×©×•×¨×” בולטת שמתחילה ××ž×§×¤×™× ×ליד
446×‘×ž×§×¤×™× ×•×œ×™×“ הקצה השמ×לי שלה כתוב "TUTORIAL.he". חלק ×–×” של התצוגה בדרך 432הקצה השמ×לי שלה כתוב "TUTORIAL.he". חלק ×–×” של התצוגה בדרך כלל מציג ×ת
447כלל מציג ×ת ×©× ×”×§×•×‘×¥ ×ותו ××ª× ×¤×•×§×“×™×. כרגע ××ª× ×¤×•×§×“×™× ×§×•×‘×¥ ×‘×©× 433×©× ×”×§×•×‘×¥ ×ותו ××ª× ×¤×•×§×“×™×. כרגע ××ª× ×¤×•×§×“×™× ×§×•×‘×¥ ×‘×©× "TUTORIAL.he" שהו×
448"TUTORIAL.he" ×©×”×•× ×¢×•×ª×§ הטיוטה ×”×ישי ×©×œ×›× ×©×œ שיעור השימוש ב־Emacs. 434עותק הטיוטה ×”×ישי ×©×œ×›× ×©×œ שיעור השימוש ב־Emacs. פתיחת קובץ כלשהו
449פתיחת קו××¥ כלשהו ב־Emacs תציג ×ת שמו של הקובץ ×‘×ž×§×•× ×–×”. 435ב־Emacs תציג ×ת שמו של הקובץ ×‘×ž×§×•× ×–×”.
450 436
451היבט ×חד מיוחד של פתיחת קובץ ×”×•× ×©×™×© לציין ×ת ×©× ×”×§×•×‘×¥ ×שר ×‘×¨×¦×•× ×›× 437היבט ×חד מיוחד של פתיחת קובץ ×”×•× ×©×™×© לציין ×ת ×©× ×”×§×•×‘×¥ ×שר ברצונכ×
452לפתוח. ×נו ××•×ž×¨×™× ×©×”×¤×§×•×“×” "קור×ת ×רגומנט מהמסוף" (במקרה ×–×” ×”×רגומנט 438לפתוח. ×נו ××•×ž×¨×™× ×©×”×¤×§×•×“×” "קור×ת ×רגומנט" (במקרה ×–×” ×”×רגומנט ×”×•× ×©×
453×”×•× ×©× ×”×§×•×‘×¥). ×חרי שתקישו ×ת הפקודה 439הקובץ). ×חרי שתקישו ×ת הפקודה
454 440
455 â€C-x C-f פתח קובץ 441 â€C-x C-f פתח קובץ
456 442
@@ -465,12 +451,11 @@ C-x u ברצף מבטלת ×©×™× ×•×™×™× ×©×œ פקודות קודמות, ×חת
465>> הקישו C-x C-f ו×חר־כך הקישו C-g. ×–×” מבטל ×ת המיני־חוצץ ×•×’× ×ž×‘×˜×œ 451>> הקישו C-x C-f ו×חר־כך הקישו C-g. ×–×” מבטל ×ת המיני־חוצץ ×•×’× ×ž×‘×˜×œ
466 ×ת הפקודה C-x C-f שהשתמשה במיני־חוצץ. התוצ××” ×”×™× ×©××£ קובץ ×œ× × ×¤×ª×—. 452 ×ת הפקודה C-x C-f שהשתמשה במיני־חוצץ. התוצ××” ×”×™× ×©××£ קובץ ×œ× × ×¤×ª×—.
467 453
468×ž×©×¡×™×™×ž×ª× ×œ×”×§×™×© ×ת ×©× ×”×§×•×‘×¥, הקישו <Return> ×œ×¡×™×™× ×ת הקלט. ×ו־××– תיגש 454×ž×©×¡×™×™×ž×ª× ×œ×”×§×™×© ×ת ×©× ×”×§×•×‘×¥, הקישו <Return> ×œ×¡×™×™× ×ת הקלט. ×ו־××–
469C-x C-f לעבודה ×•×ª×ž×¦× ×•×ª×¤×ª×— ×ת הקובץ שבחרת×. המיני־חוצץ × ×¢×œ× ×›×שר 455המיני־חוצץ × ×¢×œ× ×•×”×¤×§×•×“×” C-x C-f תיגש לעבודה ×•×ª×ž×¦× ×•×ª×¤×ª×— ×ת הקובץ
470פקודת ×”Ö¾C-x C-f ×ª×¡×™×™× ×ת עבודתה. 456שבחרת×. ×›×שר פקודת ×”Ö¾C-x C-f ×ª×¡×™×™× ×ת עבודתה, תוכן הקובץ יופיע על־גבי
471 457התצוגה ותוכלו לבצע בו שינויי×. כשתחליטו לשמור ×ת השינויי×, הקישו ×ת
472זמן קצר ×חר־כך תוכן הקובץ יופיע על־גבי התצוגה ותוכלו לבצע בו שינויי×. 458הפקודה הב××”:
473כשתחליטו לשמור ×ת השינויי×, הקישו ×ת הפקודה הב××”:
474 459
475 â€C-x C-s שמור ×ת הקובץ 460 â€C-x C-s שמור ×ת הקובץ
476 461
@@ -482,8 +467,9 @@ C-x C-f לעבודה ×•×ª×ž×¦× ×•×ª×¤×ª×— ×ת הקובץ שבחרת×. המי×
482לשמור ×œ×¢×ª×™× ×ž×–×•×ž× ×•×ª על־מנת להימנע מל×בד יותר מדי מהעבודה ×©×œ×›× ×× ×”×ž×—×©×‘ 467לשמור ×œ×¢×ª×™× ×ž×–×•×ž× ×•×ª על־מנת להימנע מל×בד יותר מדי מהעבודה ×©×œ×›× ×× ×”×ž×—×©×‘
483ייפול (ר××” להלן פיסקה על שמירה ×וטומטית). 468ייפול (ר××” להלן פיסקה על שמירה ×וטומטית).
484 469
485>> הקישו C-x C-s כדי לשמור ×ת העותק ×©×œ×›× ×©×œ השיעור. 470>> הקישו C-x C-s TUTORIAL.he ותסיימו בהקשת <Return>. כתוצ××”, שיעור ×–×”
486 כתוצ××”, תופיע ההודעה "Wrote ... TUTORIAL.he" בתחתית התצוגה. 471 יישמר בקובץ ×‘×©× TUTORIAL.he ובתחתית התצוגה תופיע ההודעה
472 "Wrote ...TUTORIAL.he".
487 473
488ניתן לפתוח קובץ ×§×™×™× ×¢×œÖ¾×ž× ×ª לצפות בו ×ו לערוך ×ותו. ניתן ×’× ×œ×¤×ª×•×— קובץ 474ניתן לפתוח קובץ ×§×™×™× ×¢×œÖ¾×ž× ×ª לצפות בו ×ו לערוך ×ותו. ניתן ×’× ×œ×¤×ª×•×— קובץ
489ש×ינו ×§×™×™×. זו הדרך ליצור ×§×‘×¦×™× ×—×“×©×™× ×‘×¢×–×¨×ª Emacs: פתחו ×ת הקובץ 475ש×ינו ×§×™×™×. זו הדרך ליצור ×§×‘×¦×™× ×—×“×©×™× ×‘×¢×–×¨×ª Emacs: פתחו ×ת הקובץ
@@ -498,10 +484,6 @@ Emacs ייצור ×ת הקובץ ×¢× ×”×˜×§×¡×˜ שהקשת×. מ×ותו רגע
498×× ×ª×¤×ª×—×• קובץ נוסף ×¢× C-x C-f, הקובץ הר×שון עדיין נש×ר פתוח ב־Emacs. 484×× ×ª×¤×ª×—×• קובץ נוסף ×¢× C-x C-f, הקובץ הר×שון עדיין נש×ר פתוח ב־Emacs.
499תוכלו לחזור ×ליו ×¢"×™ C-x C-f. כך תוכלו לפתוח מספר רב של קבצי×. 485תוכלו לחזור ×ליו ×¢"×™ C-x C-f. כך תוכלו לפתוח מספר רב של קבצי×.
500 486
501>> ניצור עתה קובץ ×‘×©× "foo" ×¢"×™ הקשת C-x C-f foo <Return>‎.
502 ×חר־כך הכניסו קצת טקסט, ערכו ×ותו ולבסוף שמרו בקובץ "foo"
503 ע"י C-x C-s. עתה חזרו לשיעור בעזרת C-x C-f TUTORIAL.he <Return>‎.
504
505â€Emacs מחזיק כל קובץ בתוך יישות ×‘×©× "חוצץ" ("buffer"). פתיחת קובץ יוצרת 487â€Emacs מחזיק כל קובץ בתוך יישות ×‘×©× "חוצץ" ("buffer"). פתיחת קובץ יוצרת
506חוצץ חדש בתוך Emacs. כדי לר×ות ×ת רשימת ×”×—×•×¦×¦×™× ×”×§×™×™×ž×™× ×‘×ª×•×š Emacs, 488חוצץ חדש בתוך Emacs. כדי לר×ות ×ת רשימת ×”×—×•×¦×¦×™× ×”×§×™×™×ž×™× ×‘×ª×•×š Emacs,
507הקישו 489הקישו
@@ -522,17 +504,19 @@ Emacs ייצור ×ת הקובץ ×¢× ×”×˜×§×¡×˜ שהקשת×. מ×ותו רגע
522×¢"×™ C-x C-f שיפקוד ×ת הקובץ בשנית. ×בל קיימת דרך פשוטה יותר: שימוש 504×¢"×™ C-x C-f שיפקוד ×ת הקובץ בשנית. ×בל קיימת דרך פשוטה יותר: שימוש
523בפקודה C-x b. פקודה זו תחייב ××•×ª×›× ×œ×”×§×™×© ×ת ×©× ×”×—×•×¦×¥. 505בפקודה C-x b. פקודה זו תחייב ××•×ª×›× ×œ×”×§×™×© ×ת ×©× ×”×—×•×¦×¥.
524 506
525>> הקישו C-x b foo <Return>‎ כדי לחזור לחוצץ "foo" ×שר מחזיק טקסט של 507>> ניצור עתה קובץ ×‘×©× "foo" ×¢"×™ הקשת C-x C-f foo <Return>‎.
526 הקובץ "foo". ×חר־כך הקישו C-x b TUTORIAL.he <Return>‎ כדי לשוב 508 עתה חזרו לשיעור ×–×” בעזרת C-x b TUTORIAL.he <Return>‎.
527 לשיעור זה.
528 509
529ברוב ×”×ž×§×¨×™× ×©× ×”×—×•×¦×¥ ×–×”×” ×œ×©× ×”×§×•×‘×¥ (×œ×œ× ×©× ×”×ª×™×§×™×” שלו). ×בל ×ין ×–×” 510ברוב ×”×ž×§×¨×™× ×©× ×”×—×•×¦×¥ ×–×”×” ×œ×©× ×”×§×•×‘×¥ (×œ×œ× ×©× ×”×ª×™×§×™×” שלו). ×בל ×ין ×–×”
530תמיד כך. רשימת ×”×—×•×¦×¦×™× ×©× ×•×¦×¨×ª ×¢"×™ C-x C-b תמיד תציג ×ת שמות ×ל החוצצ×× 511תמיד כך. רשימת ×”×—×•×¦×¦×™× ×©× ×•×¦×¨×ª ×¢"×™ C-x C-b תציג ×ן ×ת ×©× ×”×—×•×¦×¥ ×הן ×ת
531×”×§×™×™×ž×™× ×‘Ö¾Emacs. 512×©× ×”×§×•×‘×¥ עבור כל ×”×—×•×¦×¦×™× ×”×§×™×™×ž×™× ×‘Ö¾Emacs.
532 513
533כל טקסט שמוצג בחלון של Emacs הינו תמיד חלק של חוצץ כלשהו. ×§×™×™×ž×™× 514כל טקסט שמוצג בחלון של Emacs הינו תמיד חלק של חוצץ כלשהו. קיימי×
534×—×•×¦×¦×™× ×©××™× × ×§×©×•×¨×™× ×œ×©×•× ×§×•×‘×¥. לדוגמ×, החוצץ ×‘×©× "*Buffer List*" ×ינו 515×—×•×¦×¦×™× ×©××™× × ×§×©×•×¨×™× ×œ×©×•× ×§×•×‘×¥. לדוגמ×, החוצץ ×‘×©× "*Buffer List*"
535מציג ×©×•× ×§×•×‘×¥. זהו חוצץ המחזיק ×ת רשימת ×”×—×•×¦×¦×™× ×©× ×•×¦×¨ ×¢"×™ C-x C-b. 516המחזיק ×ת רשימת ×”×—×•×¦×¦×™× ×©× ×•×¦×¨×” ×¢"×™ C-x C-b ×ינו מציג ×©×•× ×§×•×‘×¥. ×’×
517לחוצץ הנוכחי ששמו TUTORIAL.he ×œ× ×”×™×” קובץ עד ×©×”×§×©×ª× ×¢×œ C-x C-s כדי
518לשמור ×ותו בקובץ.
519
536חוצץ ×‘×©× "*Messages*" ××£ ×”×•× ×ינו קשור ×œ×©×•× ×§×•×‘×¥; ×”×•× ×ž×—×–×™×§ ×ת ההודעות 520חוצץ ×‘×©× "*Messages*" ××£ ×”×•× ×ינו קשור ×œ×©×•× ×§×•×‘×¥; ×”×•× ×ž×—×–×™×§ ×ת ההודעות
537שהופיעו בשורה התחתונה במהלך ×¢×‘×•×“×ª×›× ×‘×ª×•×š Emacs. 521שהופיעו בשורה התחתונה במהלך ×¢×‘×•×“×ª×›× ×‘×ª×•×š Emacs.
538 522
@@ -573,11 +557,11 @@ C-x C-s. לכן קיימת פקודה
573מ־Emacs -- â€C-x C-c. (כש××ª× ×ž×¤×¢×™×œ×™× C-x C-c, ×ל תד×גו ×œ×©×™× ×•×™×™× ×©×˜×¨× 557מ־Emacs -- â€C-x C-c. (כש××ª× ×ž×¤×¢×™×œ×™× C-x C-c, ×ל תד×גו ×œ×©×™× ×•×™×™× ×©×˜×¨×
574נשמרו; C-x C-c מציע לשמור כל קובץ ×©×©×™× ×™×ª× ×œ×¤× ×™ ×©×”×•× ×ž×¡×™×™× ×ת Emacs.) 558נשמרו; C-x C-c מציע לשמור כל קובץ ×©×©×™× ×™×ª× ×œ×¤× ×™ ×©×”×•× ×ž×¡×™×™× ×ת Emacs.)
575 559
576×× ××ª× ×ž×©×ª×ž×©×™× ×‘×¦×’ גרפי ×שר תומך ×מספר תו×ניות ×מק××ל, ××™× ×›× ××§××§×× 560×× ××ª× ×ž×©×ª×ž×©×™× ×‘×¦×’ גרפי, ××× ×× ××§×•×§×™× ×œ×¤×§××× ×ž×™×חדת כדי לע××ר מ־Emacs
577לפקו××מי××—×ת ××× ×œ×¢×ור מ־Emacs לת××× ×ת ××רת. ×פשר לעשות ××ת ××¢×רת 561לתו×נית ×חרת. ×פשר לעשות ××ת ××¢×רת ××¢×בר ×× ×¤×§×דות של מנהל ××ל×נות.
578××¢×›×ר ×× ×¤×§×××ת של מנ×ל ××לונ×ת. ×ול×, ××שר ××ª× ×ž×©×ª×ž×©×× ×‘×ª×¦××’×” 562××ל×, ×›×שר ××ª× ×ž×©×ª×ž×©×™× ×תצ××× ×˜×§×¡×˜×•×לית שמסוגלת ל×צ×× ×¨×§ ת××× ×ת ××ת
579טקסטו×לית שמס××לת להצ××’ רק תוכנית ×חת ××־זמנית, תצטרכ×"ל×שע×ת" 563×ו־×מנית, תצטר×× "להשעות" ("suspend") ×ת Emacs על־מנת לע×ור לת××נית
580("suspend") ×ת Emacs על־מנת לעבור לתוכנית ×חרת. 564×חרת.
581 565
582הפקודה C-z יוצ×ת מ־Emacs *ב×ופן זמני* -- כך שתוכלו לשוב ×ליו מ×וחר 566הפקודה C-z יוצ×ת מ־Emacs *ב×ופן זמני* -- כך שתוכלו לשוב ×ליו מ×וחר
583יותר ולהמשיך מ×ותה נקודה. ×›×שר Emacs רץ על תצוגת טקסט, C-z "משעה" ×ת 567יותר ולהמשיך מ×ותה נקודה. ×›×שר Emacs רץ על תצוגת טקסט, C-z "משעה" ×ת
@@ -587,8 +571,7 @@ Emacs: ×”×•× ×ž×—×–×™×¨ ××ª×›× ×œ×©×•×¨×ª הפקודות הבסיסית של
587 571
588הרגע הנכון להשתמש ב־C-x C-c ×”×•× ×›×שר ××ª× ×¢×•×ž×“×™× ×œ×”×ª× ×ª×§ (log out). 572הרגע הנכון להשתמש ב־C-x C-c ×”×•× ×›×שר ××ª× ×¢×•×ž×“×™× ×œ×”×ª× ×ª×§ (log out).
589כמו־כן, תצטרכו להשתמש בו כדי לצ×ת מ־Emacs שהופעל ×¢"×™ תוכניות ×חרות 573כמו־כן, תצטרכו להשתמש בו כדי לצ×ת מ־Emacs שהופעל ×¢"×™ תוכניות ×חרות
590כגון קרי×ת דו×ר ×לקטרוני -- תוכניות ×לו ×œ× ×ª×ž×™×“ יודעות להסתדר ×¢× 574כגון קרי×ת דו×ר ×לקטרוני.
591השעיית Emacs.
592 575
593קיימות פקודות C-x רבות מ×ד. להלן רשימת ×לו שכבר למדת×: 576קיימות פקודות C-x רבות מ×ד. להלן רשימת ×לו שכבר למדת×:
594 577
@@ -607,7 +590,7 @@ replace-string (החלף מחרוזת) ×שר מחליפה מחרוזת ×חת ×
607×חרי שתקישו M-x, â€Emacs מציג M-x בתחתית התצוגה ומחכה שתקישו ×ת ×©× 590×חרי שתקישו M-x, â€Emacs מציג M-x בתחתית התצוגה ומחכה שתקישו ×ת ש×
608הפקודה, במקרה זה "replace-string". מספיק שתקישו "repl s<TAB>‎" ו־Emacs 591הפקודה, במקרה זה "replace-string". מספיק שתקישו "repl s<TAB>‎" ו־Emacs
609×™×©×œ×™× ×ת ×”×©× ×”×ž×œ×. (<TAB> ×”×•× ×ž×§×© Tab, בדרך כלל תמצ×ו ×ותו מעל מקש 592×™×©×œ×™× ×ת ×”×©× ×”×ž×œ×. (<TAB> ×”×•× ×ž×§×© Tab, בדרך כלל תמצ×ו ×ותו מעל מקש
610×”Ö¾CapsLock ×ו Shift, ליד הקצה השמ×לי של המקלדת.) סיימו ×ת ×©× ×”×¤×§×•×“×” 593×”Ö¾CapsLock ×ו Shift, ליד הקצה השמ×לי של המקלדת.) סיימו ×ת ×זנת הפקודה
611ע"י הקשת <Return>. 594ע"י הקשת <Return>.
612 595
613הפקודה להחלפת מחרוזת זקוקה לשני ××¨×’×•×ž× ×˜×™× -- המחרוזת שתוחלף וזו שתחליף 596הפקודה להחלפת מחרוזת זקוקה לשני ××¨×’×•×ž× ×˜×™× -- המחרוזת שתוחלף וזו שתחליף
@@ -651,15 +634,15 @@ replace-string (החלף מחרוזת) ×שר מחליפה מחרוזת ×חת ×
651השורה שמעל ×זור תצוגת הד נקר×ת "שורת הסטטוס" (mode line). שורה זו 634השורה שמעל ×זור תצוגת הד נקר×ת "שורת הסטטוס" (mode line). שורה זו
652מציגה משהו כמו: 635מציגה משהו כמו:
653 636
654 -U:**- TUTORIAL.he 63% L651 (Fundamental)----------------------- 637 U:**- TUTORIAL.he 63% L651 (Fundamental)
655 638
656שורה זו מציגה מידע חשוב לגבי מצבו של Emacs ולגבי הטקסט ×©× ×ž×¦× ×‘×¢×¨×™×›×”. 639שורה זו מציגה מידע חשוב לגבי מצבו של Emacs ולגבי הטקסט ×©× ×ž×¦× ×‘×¢×¨×™×›×”.
657 640
658××ª× ×›×‘×¨ ×™×•×“×¢×™× ×ž×”×™ משמעותו של ×©× ×”×§×•×‘×¥ -- זהו הקובץ שפתחת×. NN%‎ מציין 641××ª× ×›×‘×¨ ×™×•×“×¢×™× ×ž×”×™ משמעותו של ×©× ×”×§×•×‘×¥ -- זהו הקובץ שפתחת×. NN%‎ מציין
659×ת ×ž×™×§×•×ž×›× ×”× ×•×›×—×™ בתוך הטקסט, ל×מור ×›×™ NN ××—×•×–×™× ×ž×”×˜×§×¡×˜ ×§×•×“×ž×™× ×œ×˜×§×¡×˜ 642×ת ×ž×™×§×•×ž×›× ×”× ×•×›×—×™ בתוך הטקסט, ל×מור ×›×™ NN ××—×•×–×™× ×ž×ª×›×•×œ×ª ×”××צץ קודמי×
660המוצג כרגע בחלון. ×× ×”×ž×•×¦×’ בחלון כולל ×ת תחילת הטקסט, תר×ו ×©× "Top" 643לטקסט המוצג כרגע בחלון. ×× ×”×ž×•×¦×’ בחלון כולל ×ת תחילת הטקסט, תר×ו ש×
661×‘×ž×§×•× "0% ". ×× ×”×ž×•×¦×’ בחלון כולל ×ת סוף הטקסט, תר×ו ×©× "Bot" â€(bottom). 644"Top" ×‘×ž×§×•× "0% ". ×× ×”×ž×•×¦×’ בחלון כולל ×ת סוף הטקסט, תר×ו ×©× "Bot"
662×× ×”×˜×§×¡×˜ כל־כך קצר שכולו מוצג בחלון, שורת הסטטוס תציג "All". 645â€(bottom). ×× ×”×˜×§×¡×˜ כל־כך קצר שכולו מוצג בחלון, שורת הסטטוס תציג "All".
663 646
664×”×ות L והמספר ש×חריה ×ž×¦×™×™× ×™× ×ת ×”×ž×™×§×•× ×”× ×•×›×—×™ בדרך ×חרת: ×”× ×ž×¨××™× ×ת 647×”×ות L והמספר ש×חריה ×ž×¦×™×™× ×™× ×ת ×”×ž×™×§×•× ×”× ×•×›×—×™ בדרך ×חרת: ×”× ×ž×¨××™× ×ת
665מספר השורה שבה × ×ž×¦× ×”×¡×ž×Ÿ. 648מספר השורה שבה × ×ž×¦× ×”×¡×ž×Ÿ.
@@ -698,7 +681,7 @@ replace-string (החלף מחרוזת) ×שר מחליפה מחרוזת ×חת ×
698 681
699לצפיה בתיעוד של ×”×ופן הר×שי הנוכחי יש להקיש C-h m. 682לצפיה בתיעוד של ×”×ופן הר×שי הנוכחי יש להקיש C-h m.
700 683
701>> השתמשו ב־C-u C-v ×¤×¢× ×חת ×ו יותר כדי ×œ×”×‘×™× ×©×•×¨×” זו לר×שית התצוגה. 684>> ×”×§×שו C-l C-l כדי ×œ×”×‘×™× ×©×•×¨×” זו לר×שית התצוגה.
702>> עתה הקישו C-h m כדי לר×ות במה Text mode שונה מה־Fundamental mode. 685>> עתה הקישו C-h m כדי לר×ות במה Text mode שונה מה־Fundamental mode.
703>> לבסוף, הקישו C-x 1 כדי לסלק ×ת התיעוד מהתצוגה. 686>> לבסוף, הקישו C-x 1 כדי לסלק ×ת התיעוד מהתצוגה.
704 687
@@ -740,9 +723,9 @@ Auto Fill mode. ×›×שר ×ופן ×–×” מופעל, Emacs ×וטומטית פות
740* חיפוש 723* חיפוש
741------- 724-------
742 725
743â€Emacs יכול לחפש מחרוזות (רצף של ×ª×•×•×™× ×ו מילי×) קדימה ×ו ×חורה בתוך 726â€Emacs יכול לחפש מחרוזות (רצף של תווי×) קדימה ×ו ×חורה בתוך הטקסט.
744הטקסט. חיפוש של מחרוזת ×”×•× ×¡×•×’ של פקודה להנעת הסמן: ×”×•× ×ž×ž×§× ×ת הסמן 727חיפוש של מחרוזת ×”×•× ×¡×•×’ של פקודה להנעת הסמן: ×”×•× ×ž×ž×§× ×ת הסמן היכן
745היכן שנמצ××” המחרוזת הב××”. 728שנמצ××” המחרוזת הב××”.
746 729
747החיפוש של Emacs הינו "מצטבר" ("incremental"). פירוש הדבר ×”×•× ×©×”×—×™×¤×•×© 730החיפוש של Emacs הינו "מצטבר" ("incremental"). פירוש הדבר ×”×•× ×©×”×—×™×¤×•×©
748מתבצע במקביל ×œ×”×§×©×ª×›× ×ת המחרוזת ×ותה ×‘×¨×¦×•× ×›× ×œ×ž×¦×•×. 731מתבצע במקביל ×œ×”×§×©×ª×›× ×ת המחרוזת ×ותה ×‘×¨×¦×•× ×›× ×œ×ž×¦×•×.
@@ -759,7 +742,7 @@ Auto Fill mode. ×›×שר ×ופן ×–×” מופעל, Emacs ×וטומטית פות
759 "סמן", ×¢× ×”×¤×¡×§×” ×חרי כל ×ות, ושימו לב להתנהגות הסמן. 742 "סמן", ×¢× ×”×¤×¡×§×” ×חרי כל ×ות, ושימו לב להתנהגות הסמן.
760 ×–×” עתה מצ××ª× ×ת המילה "סמן" ×¤×¢× ×חת. 743 ×–×” עתה מצ××ª× ×ת המילה "סמן" ×¤×¢× ×חת.
761>> הקישו C-s שוב, כדי ×œ×ž×¦×•× ×ת "סמן" במקומות × ×•×¡×¤×™× ×‘×˜×§×¡×˜. 744>> הקישו C-s שוב, כדי ×œ×ž×¦×•× ×ת "סמן" במקומות × ×•×¡×¤×™× ×‘×˜×§×¡×˜.
762>> הקישו <Delback> שלוש ×¤×¢×ž×™× ×•×©×™×ž×• לב לתנועת הסמן בכל הקשה. 745>> הקישו <DEL> שלוש ×¤×¢×ž×™× ×•×©×™×ž×• לב לתנועת הסמן בכל הקשה.
763>> הקישו <Return> ×œ×¡×™×•× ×”×—×™×¤×•×©. 746>> הקישו <Return> ×œ×¡×™×•× ×”×—×™×¤×•×©.
764 747
765×”×× ×©×ž×ª× ×œ×‘ למה שקרה? במהלך "חיפוש מצטבר" Emacs מנסה ×œ×ž×¦×•× ×ת ×”×ž×§×•× 748×”×× ×©×ž×ª× ×œ×‘ למה שקרה? במהלך "חיפוש מצטבר" Emacs מנסה ×œ×ž×¦×•× ×ת המקו×
@@ -768,16 +751,13 @@ Auto Fill mode. ×›×שר ×ופן ×–×” מופעל, Emacs ×וטומטית פות
768ומודיע שהחיפוש נכנס למצב של "כשלון" ("failing"). הקשה על C-g ×’× ×”×™× 751ומודיע שהחיפוש נכנס למצב של "כשלון" ("failing"). הקשה על C-g ×’× ×”×™×
769מסיימת ×ת החיפוש. 752מסיימת ×ת החיפוש.
770 753
771(הערה: במערכות ×חדות הקשה על C-s מקפיעה ×ת תצוגת המסך, כך ×©×œ× ×ª×¨×ו 754×× ×‘×ž×”×œ×š החיפוש תקישו על <DEL>, החיפוש "נסוג" למצב קוד×. ×× ×”×§×©×ª×
772יותר ×©×•× ×¤×œ×˜ של Emacs. משמעות הדבר שתכונת מערכת ההפעלה ששמה "flow 755<DEL> מיד ×חרי C-s, הקשת <DEL> מחזירה ×ת הסמן ×œ×ž×§×•× ×”×§×•×“× ×‘×• נמצ××”
773control" מופעלת ×¢"×™ C-s ו××™× ×” מעבירה ×ת C-s ל־Emacs. לביטול הקפ×ת 756המחרוזת. ×× ×ין מקומות ×§×•×“×ž×™× ×‘×”× ×ž×•×¤×™×¢×” המחרוזת, הקשת <DEL> מוחקת ×ת
774התצוגה במערכות ×לו יש להקיש C-q.) 757התו ×”×חרון של המחרוזת המבוקשת. למשל, × × ×™×— ×©×”×§×©×ª× "ס" על־מנת ×œ×ž×¦×•× ×ת
775 758×”×ž×§×•× ×”×‘× ×‘×• מופיעה ×”×ות "ס". ×× ×¢×›×©×™×• תקישו "מ", הסמן יזוז ×œ×ž×§×•× ×‘×•
776×× ×‘×ž×”×œ×š החיפוש תקישו על <Delback>, תר×ו שהתו ×”×חרון של המחרוזת 759× ×ž×¦× "סמ". עתה הקישו <DEL>. ×”Ö¾"מ" נמחק מהמחרוזת והסמן חוזר ×œ×ž×§×•× ×‘×•
777המבוקשת נמחק והחיפוש חוזר ×œ×ž×§×•× ×”×§×•×“× ×‘×• נמצ××” המחרוזת ×œ×œ× ×”×ª×• ×”×חרון. 760×”×•× ×ž×¦× ×ת "ס" לר×שונה.
778למשל, × × ×™×— ×©×”×§×©×ª× "ס" על־מנת ×œ×ž×¦×•× ×ת ×”×ž×§×•× ×”×‘× ×‘×• מופיעה ×”×ות "ס". ××
779עכשיו תקישו "מ", הסמן יזוז ×œ×ž×§×•× ×‘×• × ×ž×¦× "סמ". עתה הקישו <Delback>.
780×”Ö¾"מ" נמחק מהמחרוזת והסמן חוזר ×œ×ž×§×•× ×‘×• ×”×•× ×ž×¦× ×ת "ס" לר×שונה.
781 761
782×× ×‘×ž×”×œ×š החיפוש תפעילו פקודה כלשהי ×¢"×™ הקשה על מקש תוך לחיצה על 762×× ×‘×ž×”×œ×š החיפוש תפעילו פקודה כלשהי ×¢"×™ הקשה על מקש תוך לחיצה על
783CONTROL ×ו META, החיפוש יסתיי×. (כמה ×ª×•×•×™× ×™×•×¦××™× ×ž×›×œ×œ ×–×” -- ×לו ×ª×•×•×™× 763CONTROL ×ו META, החיפוש יסתיי×. (כמה ×ª×•×•×™× ×™×•×¦××™× ×ž×›×œ×œ ×–×” -- ×לו תווי×
@@ -796,10 +776,10 @@ CONTROL ×ו META, החיפוש יסתיי×. (כמה ×ª×•×•×™× ×™×•×¦××™× ×ž
796שתוכניות ×חרות מכנות "חלון". תבניות מתו×רות בפסקה הב××”. תוכלו ×œ×ž×¦×•× ×ת 776שתוכניות ×חרות מכנות "חלון". תבניות מתו×רות בפסקה הב××”. תוכלו ×œ×ž×¦×•× ×ת
797רשימת ×”×ž×•× ×—×™× ×©×œ Emacs בפרק "Glossary" של מדריך משתמש.) 777רשימת ×”×ž×•× ×—×™× ×©×œ Emacs בפרק "Glossary" של מדריך משתמש.)
798 778
799>> הבי×ו סמן לשורה זו והקישו C-u 0 C-l â€(CONTROL-L ×•×œ× CONTROL-1). 779>> הבי×ו סמן לשורה זו והקישו C-l C-l â€(CONTROL-L ×•×œ× CONTROL-1).
800 780
801>> עתה הקישו C-x 2 וכתוצ××” מכך החלון יתחלק לשניי×. כל ×חד משני החלונות 781>> עתה הקישו C-x 2 וכתוצ××” מכך החלון יתחלק לשניי×. כל ×חד משני החלונות
802 מציג ×ת השיעור ×”×–×”. הסמן נש×ר בחלון העליוןץ 782 מציג ×ת השיעור ×”×–×”. הסמן נש×ר בחלון העליון.
803 783
804>> הקישו C-M-v כדי לגלול ×ת החלון התחתון. 784>> הקישו C-M-v כדי לגלול ×ת החלון התחתון.
805 (×× ×‘×ž×§×œ×“×ª ×©×œ×›× ×ין מקש META ×מיתי, הקישו ‎<ESC> C-v כתחליף.) 785 (×× ×‘×ž×§×œ×“×ª ×©×œ×›× ×ין מקש META ×מיתי, הקישו ‎<ESC> C-v כתחליף.)
@@ -812,19 +792,19 @@ CONTROL ×ו META, החיפוש יסתיי×. (כמה ×ª×•×•×™× ×™×•×¦××™× ×ž
812>> הקישו C-x o שוב לחזור לחלון העליון. 792>> הקישו C-x o שוב לחזור לחלון העליון.
813 הסמן בחלון העליון ייש×ר ×‘×ž×§×•× ×‘×• ×”×•× ×”×™×” לפני־כן. 793 הסמן בחלון העליון ייש×ר ×‘×ž×§×•× ×‘×• ×”×•× ×”×™×” לפני־כן.
814 794
815תוכלו להמשיך להשתמש ב־C-x o כדי לדלג בין שני החלונות. לכל חלון מ××§×•× 795תוכלו להמשיך להשתמש ב־C-x o כדי לדלג בין החלונות. "×חלון ×× ×חר", ×ותו
816סמן משל×, ××ל רק ×ל×ן ××× ×ž×¦×× ×ת הסמן ב×ל ר××¢. ×ל פק×××ת ××¢×¨×™×›× 796×לון ×ו ×× ×›× ×¢×ר××× ×˜×§×¡×˜, מ×××”×” ×¢"× ×¡×ž×Ÿ ב×לט שמ××××××מן ש××™× ×›×
817×ר×יל×ת פועל×ת על החלון ש×× ×ž×צ××סמן. ×× ××§×ר××™× ×œ×ל×ן ×× "×חל×ן 797מקלי×××. ל×ל החלונות ×××—×¨×™× ×ž××§×× ×¡×ž×Ÿ משל××; ×× ××¤×¢×œ×ª× ×ת Emacs על צ×
818הנבחר". 798גרפי, ×ž×™×§×•× ×”×¡×ž×Ÿ בחלונות ×”××—×¨×™× ×ž×•×¦×’ כתיבה ריקה ש××™× ×” מהבהבת.
819 799
820הפקודה C-M-v נוחה מ×ד ×›×שר ×”×™× ×›× ×¢×•×¨×›×™× ×˜×§×¡×˜ בחלון ×חד ×•×ž×©×ª×ž×©×™× ×‘×—×œ×•×Ÿ 800הפקודה C-M-v נוחה מ×ד ×›×שר ×”×™× ×›× ×¢×•×¨×›×™× ×˜×§×¡×˜ בחלון ×חד ×•×ž×©×ª×ž×©×™× ×‘×—×œ×•×Ÿ
821×חר לייחוס. תוכלו בכל עת לשמור על הסמן ב×ל×ן בו ××ª× ×¢×ר××× ×˜×§×¡×˜ 801×חר לייחוס. תוכלו ל×תק×× ×חלון ×”×©× × ×‘×¢×רת C-M-v מ×לי לע××××ת ××לון
822×•×œ×”×ª×§×“× ×‘×—×œ×•×Ÿ השני בעזרת C-M-v. 802הנב×ר.
823 803
824â€C-M-v ×”×™× ×“×•×’×ž× ×חת של פקודת CONTROL-META. ×× ×‘×ž×§×œ×“×ª ×©×œ×›× ×§×™×™× ×ž×§×© 804â€C-M-v ×”×™× ×“×•×’×ž× ×חת של פקודת CONTROL-META. ×× ×‘×ž×§×œ×“×ª ×©×œ×›× ×§×™×™× ×ž×§×©
825META ×מיתי, תוכלו להקיש ×ת הפקודה ×¢"×™ לחיצה והחזקה של מקשי CONTROL 805META (×ו Alt) ×מיתי, תוכלו להקיש ×ת הפקודה ×¢"×™ לחיצה והחזקה של מקשי
826ו־META ×’× ×™×—×“ ו××– להקיש v. הסדר שבו תלחצו על CONTROL ו־META ×ינו משנה 806CONTROL ו־META ×’× ×™×—×“ ו××– להקיש v. הסדר שבו תלחצו על CONTROL ו־META
827×›×™ שני ×”×ž×§×©×™× ×”×œ×œ×• ×¤×•×¢×œ×™× ×¢"×™ שינוי התו המוקש יחד ×ית×. 807×ינו משנה ×›×™ שני ×”×ž×§×©×™× ×”×œ×œ×• ×¤×•×¢×œ×™× ×¢"×™ שינוי התו המוקש יחד ×ית×.
828 808
829×× ×ין במקלדת מקש META ×מיתי ו××ª× ×ž×©×ª×ž×©×™× ×‘Ö¾<ESC> כתחליף, הסדר כן 809×× ×ין במקלדת מקש META ×מיתי ו××ª× ×ž×©×ª×ž×©×™× ×‘Ö¾<ESC> כתחליף, הסדר כן
830משנה: ×—×™×™×‘×™× ×œ×”×§×™×© <ESC> ורק ל×חר מכן CONTROL-v, וז×ת ×ž×©×•× 810משנה: ×—×™×™×‘×™× ×œ×”×§×™×© <ESC> ורק ל×חר מכן CONTROL-v, וז×ת משו×
@@ -853,9 +833,10 @@ META ×מיתי, תוכלו להקיש ×ת הפקודה ×¢"×™ לחיצה והח
853* תבניות מרובות 833* תבניות מרובות
854--------------- 834---------------
855 835
856â€Emacs מסוגל לפתוח מספר "תבניות" ("frames") בתנ××™ ש××™× ×›× ×ž×©×ª×ž×©×™× ×‘×¦×’ 836â€Emacs מסוגל לפתוח מספר "תבניות" ("frames"). תבנית כוללת קבוצת חלונות,
857שמסוגל להציג רק טקסט. תבנית כוללת קבוצת חלונות, תפריט, פסי גלילה, ×זור 837תפריט, פסי גלילה, ×זור תצוגת הד וכו'. על צג גרפי מה ש×נו קור××™×
858תצוגת הד וכו'. (תוכניות ×חרות נוהגות ×œ×§×¨×•× ×œ×–×” "חלון".) 838"תבנית" × ×§×¨× ×‘×“×¨×šÖ¾×›×œ×œ "חלון". ניתן להציג תבניות ×חדות על ×ותו צג גרפי
839בו־זמנית על צג טקסטו×לי ×פשר להציג רק תבנית ×חת בכל עת.
859 840
860>> הקישו M-x make-frame <Return>‎. 841>> הקישו M-x make-frame <Return>‎.
861 כתוצ××”, תבנית חדשה תופיע על המסך. 842 כתוצ××”, תבנית חדשה תופיע על המסך.
@@ -866,10 +847,10 @@ META ×מיתי, תוכלו להקיש ×ת הפקודה ×¢"×™ לחיצה והח
866>> הקישו M-x delete-frame <Return>‎. 847>> הקישו M-x delete-frame <Return>‎.
867 התבנית שבה ×”×§×©×ª× ×ת הפקודה תיסגר ×•×ª×™×¢×œ× ×ž×”×ž×¡×š. 848 התבנית שבה ×”×§×©×ª× ×ת הפקודה תיסגר ×•×ª×™×¢×œ× ×ž×”×ž×¡×š.
868 849
869כמו־כן, ניתן לסגור תבנית בדרך הרגילה הנתמכת ×¢"×™ מנ×ל ×”×ל×× ×ת של המערכת 850כמו־כן, ניתן לסגור תבנית בדרך הרגילה הנתמכת ×¢"×™ ×תצ××’× ××רפ×ת של
870×©×œ×›× (בדרך־כלל, ×¢"×™ הקלקה על הכפתור המסומן ב־"X" בפינה עליונה של 851המערכת ×©×œ×›× (בדרך־כלל, ×¢"×™ הקלקה על הכפתור המסומן ב־"X" בפינה עליונה
871התבנית.) ×©×•× ×ž×™×“×¢ ×ינו הולך לעיבוד ×›×שר ×¡×•×’×¨×™× ×ª×‘× ×™×ª (×ו חלון). המידע 852של התבנית.) ×©×•× ×ž×™×“×¢ ×ינו הולך לעיבוד ×›×שר ×¡×•×’×¨×™× ×ª×‘× ×™×ª (×ו חלון).
872×”×–×” פשוט יורד מהתצוגה, ×בל ניתן ל×חזרו מ×וחר יותר. 853המידע ×”×–×” פשוט יורד מהתצוגה, ×בל ניתן ל×חזרו מ×וחר יותר.
873 854
874 855
875* רמות עריכה רקורסיביות 856* רמות עריכה רקורסיביות
@@ -983,7 +964,7 @@ find-file.
983ושמות קבצי×. תכונת ההשלמה מתו×רת במלו××” במדריך למשתמש Emacs בצומת 964ושמות קבצי×. תכונת ההשלמה מתו×רת במלו××” במדריך למשתמש Emacs בצומת
984(node) ×‘×©× "Completion". 965(node) ×‘×©× "Completion".
985 966
986â€Dired מ×פשר להציג רשימת ×§×‘×¦×™× ×‘×ª×™×§×™×” (וכ×פציה ×’× ×‘×ª×ª-תיקיות שלה), לנוע 967â€Dired מ×פשר להציג רשימת ×§×‘×¦×™× ×‘×ª×™×§×™×” (וכ×פציה ×’× ×‘×ª×ªÖ¾×ª×™×§×™×•×ª שלה), לנוע
987בתוך הרשימה הזו, לפתוח קבצי×, לשנות ×ת שמותיה×, למחוק ××•×ª× ×•×œ×‘×¦×¢ ×¢×œ×™×”× 968בתוך הרשימה הזו, לפתוח קבצי×, לשנות ×ת שמותיה×, למחוק ××•×ª× ×•×œ×‘×¦×¢ עליה×
988עוד פעולות רבות. Dired מתו×ר במלו×ו במדריך למשתמש בצומת ×‘×©× "Dired". 969עוד פעולות רבות. Dired מתו×ר במלו×ו במדריך למשתמש בצומת ×‘×©× "Dired".
989 970
diff --git a/etc/tutorials/TUTORIAL.translators b/etc/tutorials/TUTORIAL.translators
index a69d23c471d..64780687bb1 100644
--- a/etc/tutorials/TUTORIAL.translators
+++ b/etc/tutorials/TUTORIAL.translators
@@ -12,8 +12,7 @@ Maintainer: Sun Yijiang <sunyijiang@gmail.com>
12* TUTORIAL.cs: 12* TUTORIAL.cs:
13Author: Milan Zamazal <pdm@zamazal.org> 13Author: Milan Zamazal <pdm@zamazal.org>
14 Pavel Janík <Pavel@Janik.cz> 14 Pavel Janík <Pavel@Janik.cz>
15Maintainer: Milan Zamazal <pdm@zamazal.org> 15Maintainer: Maintainer needed.
16 Pavel Janík <Pavel@Janik.cz>
17 16
18* TUTORIAL.de: 17* TUTORIAL.de:
19Author: Werner Lemberg <wl@gnu.org> 18Author: Werner Lemberg <wl@gnu.org>
@@ -73,7 +72,7 @@ Maintainer: Alex Ott <ottalex@narod.ru>
73* TUTORIAL.sk: 72* TUTORIAL.sk:
74Author: Miroslav Vaško <vasko@debian.cz> 73Author: Miroslav Vaško <vasko@debian.cz>
75 Pavel Janík <Pavel@Janik.cz> 74 Pavel Janík <Pavel@Janik.cz>
76Maintainer: Pavel Janík <Pavel@Janik.cz> 75Maintainer: Maintainer needed.
77 76
78* TUTORIAL.sl: 77* TUTORIAL.sl:
79Author: Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si> 78Author: Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index be7c45339fa..e40d43ee8b9 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,32 @@
12012-01-15 Michael Albinus <michael.albinus@gmx.de>
2
3 * net/tramp-sh.el (tramp-remote-path): Set tramp-autoload cookie.
4
52012-01-14 Eli Zaretskii <eliz@gnu.org>
6
7 * info.el (Info-toc-build): If the Info file has no "Up" pointer,
8 don't pass the (nil) value of `upnode' to string-match.
9
102012-01-14 Chong Yidong <cyd@gnu.org>
11
12 * startup.el (command-line): Fix X resource class for cursorColor.
13 Fix values recognized by the cursorBlink resource.
14
152012-01-14 Paul Eggert <eggert@cs.ucla.edu>
16
17 * epg.el (epg--make-temp-file): Avoid permission race condition
18 when running on old Emacs versions (bug#10403).
19
202012-01-14 Glenn Morris <rgm@gnu.org>
21
22 * dired.el (dired-get-filename): Fix 'verbatim case of previous change.
23
12012-01-13 Glenn Morris <rgm@gnu.org> 242012-01-13 Glenn Morris <rgm@gnu.org>
2 25
26 * dired.el (dired-switches-escape-p): New function.
27 (dired-insert-directory): Use dired-switches-escape-p.
28 (dired-get-filename): Undo "\ " quoting if needed. (Bug#10469)
29
3 * find-dired.el (find-ls-option): Doc fix. (Bug#10262) 30 * find-dired.el (find-ls-option): Doc fix. (Bug#10262)
4 31
52012-01-12 Glenn Morris <rgm@gnu.org> 322012-01-12 Glenn Morris <rgm@gnu.org>
diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog
index 7d6f9f570ec..f9a546ec894 100644
--- a/lisp/cedet/ChangeLog
+++ b/lisp/cedet/ChangeLog
@@ -1,3 +1,20 @@
12012-01-09 Eric Ludlam <zappo@gnu.org>
2
3 * ede.el (ede-project-directories): New option.
4 (ede-directory-safe-p): Check it.
5 (ede-initialize-state-current-buffer, ede, ede-new)
6 (ede-check-project-directory, ede-rescan-toplevel)
7 (ede-load-project-file, ede-parent-project, ede-current-project):
8 (ede-target-parent): Avoid loading in a project unless it is safe,
9 since it may involve malicious code. This security flaw was
10 pointed out by Hiroshi Oota.
11
12 * ede/auto.el (ede-project-autoload): Add safe-p slot.
13 (ede-project-class-files): Projects using Project.ede are unsafe.
14 (ede-auto-load-project): New method.
15
16 * ede/simple.el (ede-project-class-files): Mark as unsafe.
17
12011-12-19 Sam Steingold <sds@gnu.org> 182011-12-19 Sam Steingold <sds@gnu.org>
2 19
3 * semantic/edit.el (semantic-edits-incremental-parser): Add the 20 * semantic/edit.el (semantic-edits-incremental-parser): Add the
diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el
index 5f336df5514..cc8b6f53242 100644
--- a/lisp/cedet/ede.el
+++ b/lisp/cedet/ede.el
@@ -94,6 +94,42 @@ target willing to take the file. 'never means never perform the check."
94 :group 'ede 94 :group 'ede
95 :type 'sexp) ; make this be a list of options some day 95 :type 'sexp) ; make this be a list of options some day
96 96
97(defcustom ede-project-directories nil
98 "Directories in which EDE may search for project files.
99If the value is t, EDE may search in any directory.
100
101If the value is a function, EDE calls that function with one
102argument, the directory name; the function should return t iff
103EDE should look for project files in the directory.
104
105Otherwise, the value should be a list of fully-expanded directory
106names. EDE searches for project files only in those directories.
107If you invoke the commands \\[ede] or \\[ede-new] on a directory
108that is not listed, Emacs will offer to add it to the list.
109
110Any other value disables searching for EDE project files."
111 :group 'ede
112 :type '(choice (const :tag "Any directory" t)
113 (repeat :tag "List of directories"
114 (directory))
115 (function :tag "Predicate"))
116 :version "23.4"
117 :risky t)
118
119(defun ede-directory-safe-p (dir)
120 "Return non-nil if DIR is a safe directory to load projects from.
121Projects that do not load a project definition as Emacs Lisp code
122are safe, and can be loaded automatically. Other project types,
123such as those created with Project.ede files, are safe only if
124specified by `ede-project-directories'."
125 (setq dir (directory-file-name (expand-file-name dir)))
126 ;; Load only if allowed by `ede-project-directories'.
127 (or (eq ede-project-directories t)
128 (and (functionp ede-project-directories)
129 (funcall ede-project-directories dir))
130 (and (listp ede-project-directories)
131 (member dir ede-project-directories))))
132
97 133
98;;; Management variables 134;;; Management variables
99 135
@@ -420,24 +456,42 @@ provided `global-ede-mode' is enabled."
420Sets buffer local variables for EDE." 456Sets buffer local variables for EDE."
421 (let* ((ROOT nil) 457 (let* ((ROOT nil)
422 (proj (ede-directory-get-open-project default-directory 458 (proj (ede-directory-get-open-project default-directory
423 'ROOT))) 459 'ROOT))
460 (projauto nil))
461
424 (when (or proj ROOT 462 (when (or proj ROOT
425 (ede-directory-project-p default-directory t)) 463 ;; If there is no open project, look up the project
464 ;; autoloader to see if we should initialize.
465 (setq projauto (ede-directory-project-p default-directory t)))
466
467 (when (and (not proj) projauto)
468
469 ;; No project was loaded, but we have a project description
470 ;; object. This means that we can check if it is a safe
471 ;; project to load before requesting it to be loaded.
426 472
427 (when (not proj) 473 (when (or (oref projauto safe-p)
428 ;; @todo - this could be wasteful. 474 ;; The project style is not safe, so check if it is
429 (setq proj (ede-load-project-file default-directory 'ROOT))) 475 ;; in `ede-project-directories'.
476 (let ((top (ede-toplevel-project default-directory)))
477 (ede-directory-safe-p top)))
430 478
431 (setq ede-object (ede-buffer-object (current-buffer) 479 ;; The project is safe, so load it in.
480 (setq proj (ede-load-project-file default-directory 'ROOT))))
481
482 ;; Only initialize EDE state in this buffer if we found a project.
483 (when proj
484
485 (setq ede-object (ede-buffer-object (current-buffer)
432 'ede-object-project)) 486 'ede-object-project))
433 487
434 (setq ede-object-root-project 488 (setq ede-object-root-project
435 (or ROOT (ede-project-root ede-object-project))) 489 (or ROOT (ede-project-root ede-object-project)))
436 490
437 (if (and (not ede-object) ede-object-project) 491 (if (and (not ede-object) ede-object-project)
438 (ede-auto-add-to-target)) 492 (ede-auto-add-to-target))
439 493
440 (ede-apply-target-options)))) 494 (ede-apply-target-options)))))
441 495
442(defun ede-reset-all-buffers (onoff) 496(defun ede-reset-all-buffers (onoff)
443 "Reset all the buffers due to change in EDE. 497 "Reset all the buffers due to change in EDE.
@@ -557,13 +611,73 @@ of objects with the `ede-want-file-p' method."
557 611
558;;; Interactive method invocations 612;;; Interactive method invocations
559;; 613;;
560(defun ede (file) 614(defun ede (dir)
561 "Start up EDE on something. 615 "Start up EDE for directory DIR.
562Argument FILE is the file or directory to load a project from." 616If DIR has an existing project file, load it.
563 (interactive "fProject File: ") 617Otherwise, create a new project for DIR."
564 (if (not (file-exists-p file)) 618 (interactive
565 (ede-new file) 619 ;; When choosing a directory to turn on, and we see some directory here,
566 (ede-load-project-file (file-name-directory file)))) 620 ;; provide that as the default.
621 (let* ((top (ede-toplevel-project default-directory))
622 (promptdflt (or top default-directory)))
623 (list (read-directory-name "Project directory: "
624 promptdflt promptdflt t))))
625 (unless (file-directory-p dir)
626 (error "%s is not a directory" dir))
627 (when (ede-directory-get-open-project dir)
628 (error "%s already has an open project associated with it" dir))
629
630 ;; Check if the directory has been added to the list of safe
631 ;; directories. It can also add the directory to the safe list if
632 ;; the user chooses.
633 (if (ede-check-project-directory dir)
634 (progn
635 ;; If there is a project in DIR, load it, otherwise do
636 ;; nothing.
637 (ede-load-project-file dir)
638
639 ;; Check if we loaded anything on the previous line.
640 (if (ede-current-project dir)
641
642 ;; We successfully opened an existing project. Some open
643 ;; buffers may also be referring to this project.
644 ;; Resetting all the buffers will get them to also point
645 ;; at this new open project.
646 (ede-reset-all-buffers 1)
647
648 ;; ELSE
649 ;; There was no project, so switch to `ede-new' which is how
650 ;; a user can select a new kind of project to create.
651 (let ((default-directory (expand-file-name dir)))
652 (call-interactively 'ede-new))))
653
654 ;; If the proposed directory isn't safe, then say so.
655 (error "%s is not an allowed project directory in `ede-project-directories'"
656 dir)))
657
658(defun ede-check-project-directory (dir)
659 "Check if DIR should be in `ede-project-directories'.
660If it is not, try asking the user if it should be added; if so,
661add it and save `ede-project-directories' via Customize.
662Return nil iff DIR should not be in `ede-project-directories'."
663 (setq dir (directory-file-name (expand-file-name dir))) ; strip trailing /
664 (or (eq ede-project-directories t)
665 (and (functionp ede-project-directories)
666 (funcall ede-project-directories dir))
667 ;; If `ede-project-directories' is a list, maybe add it.
668 (when (listp ede-project-directories)
669 (or (member dir ede-project-directories)
670 (when (y-or-n-p (format "`%s' is not listed in `ede-project-directories'.
671Add it to the list of allowed project directories? "
672 dir))
673 (push dir ede-project-directories)
674 ;; If possible, save `ede-project-directories'.
675 (if (or custom-file user-init-file)
676 (let ((coding-system-for-read nil))
677 (customize-save-variable
678 'ede-project-directories
679 ede-project-directories)))
680 t)))))
567 681
568(defun ede-new (type &optional name) 682(defun ede-new (type &optional name)
569 "Create a new project starting from project type TYPE. 683 "Create a new project starting from project type TYPE.
@@ -598,6 +712,11 @@ Optional argument NAME is the name to give this project."
598 (error "Cannot create project in non-existent directory %s" default-directory)) 712 (error "Cannot create project in non-existent directory %s" default-directory))
599 (when (not (file-writable-p default-directory)) 713 (when (not (file-writable-p default-directory))
600 (error "No write permissions for %s" default-directory)) 714 (error "No write permissions for %s" default-directory))
715 (unless (ede-check-project-directory default-directory)
716 (error "%s is not an allowed project directory in `ede-project-directories'"
717 default-directory))
718 ;; Make sure the project directory is loadable in the future.
719 (ede-check-project-directory default-directory)
601 ;; Create the project 720 ;; Create the project
602 (let* ((obj (object-assoc type 'name ede-project-class-files)) 721 (let* ((obj (object-assoc type 'name ede-project-class-files))
603 (nobj (let ((f (oref obj file)) 722 (nobj (let ((f (oref obj file))
@@ -631,6 +750,10 @@ Optional argument NAME is the name to give this project."
631 (ede-add-subproject pp nobj) 750 (ede-add-subproject pp nobj)
632 (ede-commit-project pp))) 751 (ede-commit-project pp)))
633 (ede-commit-project nobj)) 752 (ede-commit-project nobj))
753 ;; Once the project is created, load it again. This used to happen
754 ;; lazily, but with project loading occurring less often and with
755 ;; security in mind, this is now the safe time to reload.
756 (ede-load-project-file default-directory)
634 ;; Have the menu appear 757 ;; Have the menu appear
635 (setq ede-minor-mode t) 758 (setq ede-minor-mode t)
636 ;; Allert the user 759 ;; Allert the user
@@ -653,11 +776,16 @@ ARGS are additional arguments to pass to method SYM."
653(defun ede-rescan-toplevel () 776(defun ede-rescan-toplevel ()
654 "Rescan all project files." 777 "Rescan all project files."
655 (interactive) 778 (interactive)
656 (let ((toppath (ede-toplevel-project default-directory)) 779 (if (not (ede-directory-get-open-project default-directory))
657 (ede-deep-rescan t)) 780 ;; This directory isn't open. Can't rescan.
658 (project-rescan (ede-load-project-file toppath)) 781 (error "Attempt to rescan a project that isn't open")
659 (ede-reset-all-buffers 1) 782
660 )) 783 ;; Continue
784 (let ((toppath (ede-toplevel-project default-directory))
785 (ede-deep-rescan t))
786
787 (project-rescan (ede-load-project-file toppath))
788 (ede-reset-all-buffers 1))))
661 789
662(defun ede-new-target (&rest args) 790(defun ede-new-target (&rest args)
663 "Create a new target specific to this type of project file. 791 "Create a new target specific to this type of project file.
@@ -893,7 +1021,7 @@ Optional ROOTRETURN will return the root project for DIR."
893 ;; Do the load 1021 ;; Do the load
894 ;;(message "EDE LOAD : %S" file) 1022 ;;(message "EDE LOAD : %S" file)
895 (let* ((file dir) 1023 (let* ((file dir)
896 (path (expand-file-name (file-name-directory file))) 1024 (path (file-name-as-directory (expand-file-name dir)))
897 (pfc (ede-directory-project-p path)) 1025 (pfc (ede-directory-project-p path))
898 (toppath nil) 1026 (toppath nil)
899 (o nil)) 1027 (o nil))
@@ -922,13 +1050,11 @@ Optional ROOTRETURN will return the root project for DIR."
922 ;; See if it's been loaded before 1050 ;; See if it's been loaded before
923 (setq o (object-assoc (ede-dir-to-projectfile pfc toppath) 'file 1051 (setq o (object-assoc (ede-dir-to-projectfile pfc toppath) 'file
924 ede-projects)) 1052 ede-projects))
925 (if (not o) 1053
926 ;; If not, get it now. 1054 ;; If not open yet, load it.
927 (let ((ede-constructing pfc)) 1055 (unless o
928 (setq o (funcall (oref pfc load-type) toppath)) 1056 (let ((ede-constructing pfc))
929 (when (not o) 1057 (setq o (ede-auto-load-project pfc toppath))))
930 (error "Project type error: :load-type failed to create a project"))
931 (ede-add-project-to-global-list o)))
932 1058
933 ;; Return the found root project. 1059 ;; Return the found root project.
934 (when rootreturn (set rootreturn o)) 1060 (when rootreturn (set rootreturn o))
@@ -982,13 +1108,7 @@ Optional argument OBJ is an object to find the parent of."
982 (and root 1108 (and root
983 (ede-find-subproject-for-directory root updir)) 1109 (ede-find-subproject-for-directory root updir))
984 ;; Try the all structure based search. 1110 ;; Try the all structure based search.
985 (ede-directory-get-open-project updir) 1111 (ede-directory-get-open-project updir))))))))
986 ;; Load up the project file as a last resort.
987 ;; Last resort since it uses file-truename, and other
988 ;; slow features.
989 (and (ede-directory-project-p updir)
990 (ede-load-project-file
991 (file-name-as-directory updir))))))))))
992 1112
993(defun ede-current-project (&optional dir) 1113(defun ede-current-project (&optional dir)
994 "Return the current project file. 1114 "Return the current project file.
@@ -1002,11 +1122,7 @@ If optional DIR is provided, get the project for DIR instead."
1002 ;; No current project. 1122 ;; No current project.
1003 (when (not ans) 1123 (when (not ans)
1004 (let* ((ldir (or dir default-directory))) 1124 (let* ((ldir (or dir default-directory)))
1005 (setq ans (ede-directory-get-open-project ldir)) 1125 (setq ans (ede-directory-get-open-project ldir))))
1006 (or ans
1007 ;; No open project, if this dir pass project-p, then load.
1008 (when (ede-directory-project-p ldir)
1009 (setq ans (ede-load-project-file ldir))))))
1010 ;; Return what we found. 1126 ;; Return what we found.
1011 ans)) 1127 ans))
1012 1128
@@ -1061,12 +1177,13 @@ If TARGET belongs to a subproject, return that project file."
1061 "Return the project which is the parent of TARGET. 1177 "Return the project which is the parent of TARGET.
1062It is recommended you track the project a different way as this function 1178It is recommended you track the project a different way as this function
1063could become slow in time." 1179could become slow in time."
1064 ;; @todo - use ede-object-project as a starting point. 1180 (or ede-object-project
1065 (let ((ans nil) (projs ede-projects)) 1181 ;; If not cached, derive it from the current directory of the target.
1066 (while (and (not ans) projs) 1182 (let ((ans nil) (projs ede-projects))
1067 (setq ans (ede-target-in-project-p (car projs) target) 1183 (while (and (not ans) projs)
1068 projs (cdr projs))) 1184 (setq ans (ede-target-in-project-p (car projs) target)
1069 ans)) 1185 projs (cdr projs)))
1186 ans)))
1070 1187
1071(defmethod ede-find-target ((proj ede-project) buffer) 1188(defmethod ede-find-target ((proj ede-project) buffer)
1072 "Fetch the target in PROJ belonging to BUFFER or nil." 1189 "Fetch the target in PROJ belonging to BUFFER or nil."
diff --git a/lisp/cedet/ede/auto.el b/lisp/cedet/ede/auto.el
index 7ff291d3675..b458cc246f0 100644
--- a/lisp/cedet/ede/auto.el
+++ b/lisp/cedet/ede/auto.el
@@ -58,6 +58,13 @@ associated with a single object class, based on the initializers used.")
58 :initform t 58 :initform t
59 :documentation 59 :documentation
60 "Non-nil if this is an option when a user creates a project.") 60 "Non-nil if this is an option when a user creates a project.")
61 (safe-p :initarg :safe-p
62 :initform t
63 :documentation
64 "Non-nil if the project load files are \"safe\".
65An unsafe project is one that loads project variables via Emacs
66Lisp code. A safe project is one that loads project variables by
67scanning files without loading Lisp code from them.")
61 ) 68 )
62 "Class representing minimal knowledge set to run preliminary EDE functions. 69 "Class representing minimal knowledge set to run preliminary EDE functions.
63When more advanced functionality is needed from a project type, that projects 70When more advanced functionality is needed from a project type, that projects
@@ -69,13 +76,15 @@ type is required and the load function used.")
69 :name "Make" :file 'ede/proj 76 :name "Make" :file 'ede/proj
70 :proj-file "Project.ede" 77 :proj-file "Project.ede"
71 :load-type 'ede-proj-load 78 :load-type 'ede-proj-load
72 :class-sym 'ede-proj-project) 79 :class-sym 'ede-proj-project
80 :safe-p nil)
73 (ede-project-autoload "edeproject-automake" 81 (ede-project-autoload "edeproject-automake"
74 :name "Automake" :file 'ede/proj 82 :name "Automake" :file 'ede/proj
75 :proj-file "Project.ede" 83 :proj-file "Project.ede"
76 :initializers '(:makefile-type Makefile.am) 84 :initializers '(:makefile-type Makefile.am)
77 :load-type 'ede-proj-load 85 :load-type 'ede-proj-load
78 :class-sym 'ede-proj-project) 86 :class-sym 'ede-proj-project
87 :safe-p nil)
79 (ede-project-autoload "automake" 88 (ede-project-autoload "automake"
80 :name "automake" :file 'ede/project-am 89 :name "automake" :file 'ede/project-am
81 :proj-file "Makefile.am" 90 :proj-file "Makefile.am"
@@ -84,6 +93,8 @@ type is required and the load function used.")
84 :new-p nil)) 93 :new-p nil))
85 "List of vectors defining how to determine what type of projects exist.") 94 "List of vectors defining how to determine what type of projects exist.")
86 95
96(put 'ede-project-class-files 'risky-local-variable t)
97
87;;; EDE project-autoload methods 98;;; EDE project-autoload methods
88;; 99;;
89(defmethod ede-project-root ((this ede-project-autoload)) 100(defmethod ede-project-root ((this ede-project-autoload))
@@ -122,6 +133,19 @@ Return nil if the project file does not exist."
122 (when (and f (file-exists-p f)) 133 (when (and f (file-exists-p f))
123 f))) 134 f)))
124 135
136(defmethod ede-auto-load-project ((this ede-project-autoload) dir)
137 "Load in the project associated with THIS project autoload description.
138THIS project description should be valid for DIR, where the project will
139be loaded."
140 ;; Last line of defense: don't load unsafe projects.
141 (when (not (or (oref this :safe-p)
142 (ede-directory-safe-p dir)))
143 (error "Attempt to load an unsafe project (bug elsewhere in EDE)"))
144 ;; Things are good - so load the project.
145 (let ((o (funcall (oref this load-type) dir)))
146 (when (not o)
147 (error "Project type error: :load-type failed to create a project"))
148 (ede-add-project-to-global-list o)))
125 149
126(provide 'ede/auto) 150(provide 'ede/auto)
127 151
diff --git a/lisp/cedet/ede/simple.el b/lisp/cedet/ede/simple.el
index 028c126e9e4..5cfa750c63f 100644
--- a/lisp/cedet/ede/simple.el
+++ b/lisp/cedet/ede/simple.el
@@ -50,7 +50,8 @@
50 :name "Simple" :file 'ede/simple 50 :name "Simple" :file 'ede/simple
51 :proj-file 'ede-simple-projectfile-for-dir 51 :proj-file 'ede-simple-projectfile-for-dir
52 :load-type 'ede-simple-load 52 :load-type 'ede-simple-load
53 :class-sym 'ede-simple-project) 53 :class-sym 'ede-simple-project
54 :safe-p nil)
54 t) 55 t)
55 56
56(defcustom ede-simple-save-directory "~/.ede" 57(defcustom ede-simple-save-directory "~/.ede"
diff --git a/lisp/dired.el b/lisp/dired.el
index 6f2ddbbc73d..f1a778ad05a 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1111,6 +1111,11 @@ BEG..END is the line where the file info is located."
1111 1111
1112(defvar ls-lisp-use-insert-directory-program) 1112(defvar ls-lisp-use-insert-directory-program)
1113 1113
1114(defun dired-switches-escape-p (switches)
1115 "Return non-nil if the string SWITCHES contains -b or --escape."
1116 ;; Do not match things like "--block-size" that happen to contain "b".
1117 (string-match "\\(\\`\\| \\)-[[:alnum:]]*b\\|--escape\\>" switches))
1118
1114(defun dired-insert-directory (dir switches &optional file-list wildcard hdr) 1119(defun dired-insert-directory (dir switches &optional file-list wildcard hdr)
1115 "Insert a directory listing of DIR, Dired style. 1120 "Insert a directory listing of DIR, Dired style.
1116Use SWITCHES to make the listings. 1121Use SWITCHES to make the listings.
@@ -1152,7 +1157,7 @@ see `dired-use-ls-dired' for more details.")
1152 (dired-align-file beg (point)))) 1157 (dired-align-file beg (point))))
1153 (insert-directory dir switches wildcard (not wildcard))) 1158 (insert-directory dir switches wildcard (not wildcard)))
1154 ;; Quote certain characters, unless ls quoted them for us. 1159 ;; Quote certain characters, unless ls quoted them for us.
1155 (if (not (string-match "b" dired-actual-switches)) 1160 (if (not (dired-switches-escape-p dired-actual-switches))
1156 (save-excursion 1161 (save-excursion
1157 (setq end (point-marker)) 1162 (setq end (point-marker))
1158 (goto-char opoint) 1163 (goto-char opoint)
@@ -2099,7 +2104,18 @@ Otherwise, an error occurs in these cases."
2099 ;; with quotation marks in their names. 2104 ;; with quotation marks in their names.
2100 (while (string-match "\\(?:[^\\]\\|\\`\\)\\(\"\\)" file) 2105 (while (string-match "\\(?:[^\\]\\|\\`\\)\\(\"\\)" file)
2101 (setq file (replace-match "\\\"" nil t file 1))) 2106 (setq file (replace-match "\\\"" nil t file 1)))
2102 2107 ;; Unescape any spaces escaped by ls -b (bug#10469).
2108 ;; Other -b quotes, eg \t, \n, work transparently.
2109 (if (dired-switches-escape-p dired-actual-switches)
2110 (let ((start 0)
2111 (rep "")
2112 (shift -1))
2113 (if (eq localp 'verbatim)
2114 (setq rep "\\\\"
2115 shift +1))
2116 (while (string-match "\\(\\\\\\) " file start)
2117 (setq file (replace-match rep nil t file 1)
2118 start (+ shift (match-end 0))))))
2103 (when (eq system-type 'windows-nt) 2119 (when (eq system-type 'windows-nt)
2104 (save-match-data 2120 (save-match-data
2105 (let ((start 0)) 2121 (let ((start 0))
@@ -2107,6 +2123,7 @@ Otherwise, an error occurs in these cases."
2107 (aset file (match-beginning 0) ?/) 2123 (aset file (match-beginning 0) ?/)
2108 (setq start (match-end 0)))))) 2124 (setq start (match-end 0))))))
2109 2125
2126 ;; Hence we don't need to worry about converting `\\' back to `\'.
2110 (setq file (read (concat "\"" file "\""))) 2127 (setq file (read (concat "\"" file "\"")))
2111 ;; The above `read' will return a unibyte string if FILE 2128 ;; The above `read' will return a unibyte string if FILE
2112 ;; contains eight-bit-control/graphic characters. 2129 ;; contains eight-bit-control/graphic characters.
diff --git a/lisp/epg.el b/lisp/epg.el
index 3505e183c1f..6529afb2d3c 100644
--- a/lisp/epg.el
+++ b/lisp/epg.el
@@ -1951,7 +1951,8 @@ The returned file name (created by appending some random characters at the end
1951of PREFIX, and expanding against `temporary-file-directory' if necessary), 1951of PREFIX, and expanding against `temporary-file-directory' if necessary),
1952is guaranteed to point to a newly created empty file. 1952is guaranteed to point to a newly created empty file.
1953You can then use `write-region' to write new data into the file." 1953You can then use `write-region' to write new data into the file."
1954 (let (tempdir tempfile) 1954 (let ((orig-modes (default-file-modes))
1955 tempdir tempfile)
1955 (setq prefix (expand-file-name prefix 1956 (setq prefix (expand-file-name prefix
1956 (if (featurep 'xemacs) 1957 (if (featurep 'xemacs)
1957 (temp-directory) 1958 (temp-directory)
@@ -1959,6 +1960,7 @@ You can then use `write-region' to write new data into the file."
1959 (unwind-protect 1960 (unwind-protect
1960 (let (file) 1961 (let (file)
1961 ;; First, create a temporary directory. 1962 ;; First, create a temporary directory.
1963 (set-default-file-modes #o700)
1962 (while (condition-case () 1964 (while (condition-case ()
1963 (progn 1965 (progn
1964 (setq tempdir (make-temp-name 1966 (setq tempdir (make-temp-name
@@ -1969,14 +1971,12 @@ You can then use `write-region' to write new data into the file."
1969 (make-directory tempdir)) 1971 (make-directory tempdir))
1970 ;; let's try again. 1972 ;; let's try again.
1971 (file-already-exists t))) 1973 (file-already-exists t)))
1972 (set-file-modes tempdir 448)
1973 ;; Second, create a temporary file in the tempdir. 1974 ;; Second, create a temporary file in the tempdir.
1974 ;; There *is* a race condition between `make-temp-name' 1975 ;; There *is* a race condition between `make-temp-name'
1975 ;; and `write-region', but we don't care it since we are 1976 ;; and `write-region', but we don't care it since we are
1976 ;; in a private directory now. 1977 ;; in a private directory now.
1977 (setq tempfile (make-temp-name (concat tempdir "/EMU"))) 1978 (setq tempfile (make-temp-name (concat tempdir "/EMU")))
1978 (write-region "" nil tempfile nil 'silent) 1979 (write-region "" nil tempfile nil 'silent)
1979 (set-file-modes tempfile 384)
1980 ;; Finally, make a hard-link from the tempfile. 1980 ;; Finally, make a hard-link from the tempfile.
1981 (while (condition-case () 1981 (while (condition-case ()
1982 (progn 1982 (progn
@@ -1986,6 +1986,7 @@ You can then use `write-region' to write new data into the file."
1986 ;; let's try again. 1986 ;; let's try again.
1987 (file-already-exists t))) 1987 (file-already-exists t)))
1988 file) 1988 file)
1989 (set-default-file-modes orig-modes)
1989 ;; Cleanup the tempfile. 1990 ;; Cleanup the tempfile.
1990 (and tempfile 1991 (and tempfile
1991 (file-exists-p tempfile) 1992 (file-exists-p tempfile)
diff --git a/lisp/info.el b/lisp/info.el
index 94d29518995..a8cb141114c 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -2251,7 +2251,7 @@ Table of contents is created from the tree structure of menus."
2251 (match-string-no-properties 1))) 2251 (match-string-no-properties 1)))
2252 (section "Top") 2252 (section "Top")
2253 menu-items) 2253 menu-items)
2254 (when (string-match "(" upnode) (setq upnode nil)) 2254 (when (and upnode (string-match "(" upnode)) (setq upnode nil))
2255 (when (and (not (Info-index-node nodename file)) 2255 (when (and (not (Info-index-node nodename file))
2256 (re-search-forward "^\\* Menu:" bound t)) 2256 (re-search-forward "^\\* Menu:" bound t))
2257 (forward-line 1) 2257 (forward-line 1)
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 02f933be367..2478253841f 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -512,6 +512,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
512;; GNU/Linux (Debian, Suse): /bin:/usr/bin 512;; GNU/Linux (Debian, Suse): /bin:/usr/bin
513;; FreeBSD: /usr/bin:/bin:/usr/sbin:/sbin: - beware trailing ":"! 513;; FreeBSD: /usr/bin:/bin:/usr/sbin:/sbin: - beware trailing ":"!
514;; IRIX64: /usr/bin 514;; IRIX64: /usr/bin
515;;;###tramp-autoload
515(defcustom tramp-remote-path 516(defcustom tramp-remote-path
516 '(tramp-default-remote-path "/bin" "/usr/bin" "/usr/sbin" "/usr/local/bin" 517 '(tramp-default-remote-path "/bin" "/usr/bin" "/usr/sbin" "/usr/local/bin"
517 "/local/bin" "/local/freeware/bin" "/local/gnu/bin" 518 "/local/bin" "/local/freeware/bin" "/local/gnu/bin"
diff --git a/lisp/startup.el b/lisp/startup.el
index 1cbf2f74c14..41056f3907e 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -910,7 +910,7 @@ opening the first frame (e.g. open a connection to an X server).")
910 (setq no-blinking-cursor t))) 910 (setq no-blinking-cursor t)))
911 ;; If the cursorColor X resource exists, alter the `cursor' face 911 ;; If the cursorColor X resource exists, alter the `cursor' face
912 ;; spec, but mark it as changed outside of Customize. 912 ;; spec, but mark it as changed outside of Customize.
913 (let ((color (x-get-resource "cursorColor" "CursorColor"))) 913 (let ((color (x-get-resource "cursorColor" "Foreground")))
914 (when color 914 (when color
915 (put 'cursor 'theme-face 915 (put 'cursor 'theme-face
916 `((changed ((t :background ,color))))) 916 `((changed ((t :background ,color)))))
@@ -929,7 +929,7 @@ opening the first frame (e.g. open a connection to an X server).")
929 emacs-basic-display 929 emacs-basic-display
930 (and (memq window-system '(x w32 ns)) 930 (and (memq window-system '(x w32 ns))
931 (not (member (x-get-resource "cursorBlink" "CursorBlink") 931 (not (member (x-get-resource "cursorBlink" "CursorBlink")
932 '("off" "false"))))) 932 '("no" "off" "false" "0")))))
933 (setq no-blinking-cursor t)) 933 (setq no-blinking-cursor t))
934 934
935 ;; Re-evaluate predefined variables whose initial value depends on 935 ;; Re-evaluate predefined variables whose initial value depends on
diff --git a/msdos/ChangeLog b/msdos/ChangeLog
index 482934f2029..060970151ef 100644
--- a/msdos/ChangeLog
+++ b/msdos/ChangeLog
@@ -1,3 +1,8 @@
12012-01-14 Eli Zaretskii <eliz@gnu.org>
2
3 * sed4.inp (PATH_DUMPLOADSEARCH): Edit to "../lisp", for when the
4 default in src/epaths.in will change, maybe.
5
12011-10-31 Eli Zaretskii <eliz@gnu.org> 62011-10-31 Eli Zaretskii <eliz@gnu.org>
2 7
3 * sed3v2.inp (insrcdir): Comment out definition. 8 * sed3v2.inp (insrcdir): Comment out definition.
diff --git a/msdos/sed4.inp b/msdos/sed4.inp
index efbed4d3f1d..73d025463d8 100644
--- a/msdos/sed4.inp
+++ b/msdos/sed4.inp
@@ -16,6 +16,7 @@
16# 16#
17# ---------------------------------------------------------------------- 17# ----------------------------------------------------------------------
18/^#define *PATH_LOADSEARCH/s/".*"/rootrelativepath ("lisp")/ 18/^#define *PATH_LOADSEARCH/s/".*"/rootrelativepath ("lisp")/
19/^#define *PATH_DUMPLOADSEARCH/s/".*"/"..\/lisp"/
19/^#define *PATH_DATA/s/".*"/rootrelativepath ("etc")/ 20/^#define *PATH_DATA/s/".*"/rootrelativepath ("etc")/
20/^#define *PATH_DOC/s/".*"/rootrelativepath ("etc")/ 21/^#define *PATH_DOC/s/".*"/rootrelativepath ("etc")/
21/^#define *PATH_INFO/s/".*"/rootrelativepath ("info")/ 22/^#define *PATH_INFO/s/".*"/rootrelativepath ("info")/
diff --git a/src/ChangeLog b/src/ChangeLog
index 28910c5a556..eb03ef1357f 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12012-01-14 Eli Zaretskii <eliz@gnu.org>
2
3 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
4 thrashing the stack of the thread. (Bug#9087)
5
12012-01-12 Paul Eggert <eggert@cs.ucla.edu> 62012-01-12 Paul Eggert <eggert@cs.ucla.edu>
2 7
3 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses. 8 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
diff --git a/src/w32fns.c b/src/w32fns.c
index 1fcf29fbcfd..510d1e94f16 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -2479,6 +2479,10 @@ signal_user_input (void)
2479 if (!NILP (Vthrow_on_input)) 2479 if (!NILP (Vthrow_on_input))
2480 { 2480 {
2481 Vquit_flag = Vthrow_on_input; 2481 Vquit_flag = Vthrow_on_input;
2482 /* Doing a QUIT from this thread is a bad idea, since this
2483 unwinds the stack of the Lisp thread, and the Windows runtime
2484 rightfully barfs. Disabled. */
2485#if 0
2482 /* If we're inside a function that wants immediate quits, 2486 /* If we're inside a function that wants immediate quits,
2483 do it now. */ 2487 do it now. */
2484 if (immediate_quit && NILP (Vinhibit_quit)) 2488 if (immediate_quit && NILP (Vinhibit_quit))
@@ -2486,6 +2490,7 @@ signal_user_input (void)
2486 immediate_quit = 0; 2490 immediate_quit = 0;
2487 QUIT; 2491 QUIT;
2488 } 2492 }
2493#endif
2489 } 2494 }
2490} 2495}
2491 2496