1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Merge from emacs--devo--0

Patches applied:

 * emacs--devo--0  (patch 902-908)

   - Update from CVS
   - Merge from emacs--rel--22

 * emacs--rel--22  (patch 131-137)

   - Update from CVS
   - Merge from gnus--rel--5.10

 * gnus--rel--5.10  (patch 261-262)

   - Update from CVS

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-278
This commit is contained in:
Miles Bader 2007-10-27 09:12:07 +00:00
commit 18cd1f1a08
195 changed files with 6541 additions and 3863 deletions

View file

@ -1,3 +1,7 @@
2007-10-23 Glenn Morris <rgm@gnu.org>
* MAINTAINERS: Move to admin/.
2007-10-17 Chong Yidong <cyd@stupidchicken.com>
* configure.in (HAVE_RES_INIT): Define if res_init() exists.
@ -92,7 +96,7 @@
* README.multi-tty: Move to admin/notes/multi-tty, with some edits.
2007-08-29 Karoly Lorentey <karoly@lorentey.hu>
2007-08-29 K,Aa(Broly L$,1 q(Brentey <karoly@lorentey.hu>
* README.multi-tty: New file.
@ -163,8 +167,8 @@
2007-06-11 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* configure.in: Change wording about yes/gtk and lucid/athena being
synonyms.
* configure.in: Change wording about yes/gtk and lucid/athena
being synonyms.
2007-06-08 Glenn Morris <rgm@gnu.org>
@ -228,8 +232,7 @@
2007-04-19 Glenn Morris <rgm@gnu.org>
* configure.in: Signal error if Xaw libs are missing in a Lucid
build.
* configure.in: Signal error if Xaw libs are missing in a Lucid build.
2007-04-18 Glenn Morris <rgm@gnu.org>
@ -1976,8 +1979,7 @@
2000-10-01 Andreas Schwab <schwab@suse.de>
* Makefile.in (install-arch-indep): Update list of installed info
files.
* Makefile.in (install-arch-indep): Update list of installed info files.
2000-09-30 Gerd Moellmann <gerd@gnu.org>
@ -2512,7 +2514,7 @@
1999-02-26 Richard Stallman <rms@gnu.org>
* configure.in: Use epaths.h and epaths-force instead of paths....
* configure.in: Use epaths.h and epaths-force instead of paths...
* Makefile.in (epaths-force): Renamed from paths-force;
operate on epaths.in and produce epaths.h.
@ -2663,8 +2665,7 @@
1998-04-16 Eli Zaretskii <eliz@delysid.gnu.org>
* config.bat: Make sure the environment is large enough to support
all the "set foo=bar" commands. Update pointers to DJGPP FTP
sites.
all the "set foo=bar" commands. Update pointers to DJGPP FTP sites.
1998-04-10 Karl Heuer <kwzh@gnu.org>
@ -2689,8 +2690,7 @@
1998-03-23 Kenichi Handa <handa@etl.go.jp>
* Makefile.in (top_distclean): Check the existence of `lock'
subdir.
* Makefile.in (top_distclean): Check the existence of `lock' subdir.
1998-03-22 Richard Stallman <rms@gnu.org>
@ -2866,7 +2866,7 @@
1997-08-22 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
* configure.in (HAVE_MOTIF_2_1): Test for Motif 2.1,
* configure.in (HAVE_MOTIF_2_1): Test for Motif 2.1.
1997-08-22 Jonathan I. Kamens <jik@kamens.brookline.ma.us>

View file

@ -1,3 +1,7 @@
2007-10-23 Glenn Morris <rgm@gnu.org>
* MAINTAINERS: Move here from ../.
2007-10-17 Juanma Barranquero <lekktu@gmail.com>
* make-emacs: Doc fix.

View file

@ -1,3 +1,21 @@
2007-10-25 Glenn Morris <rgm@gnu.org>
* fortran-xtra.texi (Fortran): F90 mode handles F2003.
2007-10-24 Richard Stallman <rms@gnu.org>
* misc.texi (Interactive Shell): Cleanup last change.
2007-10-22 Juri Linkov <juri@jurta.org>
* mini.texi (Minibuffer History): Add text about a list of minibuffer
default values.
2007-10-20 Eric S. Raymond <esr@snark.thyrsus.com>
* files.texi: Disambiguate two slightly different uses of the term
'filesets'.
2007-10-18 Martin Rudalics <rudalics@gmx.at>
* trouble.texi (Quitting): Fix typo.

View file

@ -1347,7 +1347,7 @@ distributed work. It differs in many ways from old well-known
systems, such as CVS and RCS. It supports different transports for
interoperating between users, offline operations, and it has good
branching and merging features. It also supports atomic commits of
fileset changes, and keeps a history of file renaming and moving. VC
filesets, and keeps a history of file renaming and moving. VC
does not support all operations provided by GNU Arch, so you must
sometimes invoke it from the command line, or use a specialized
module.
@ -1355,7 +1355,7 @@ module.
@cindex git
git is a version-control system invented by Linus Torvalds to
support Linux kernel development. Like GNU Arch, it supports atomic
commits of fileset changes, and keeps a history of file renaming and
commits of filesets, and keeps a history of file renaming and
moving. One significant feature of git is that it largely abolishes
the notion of a single centralized repository; instead, each working
copy of a git project is its own repository and coordination is done
@ -1638,6 +1638,11 @@ marked files, but did not pass them to the version-control backends as
a group. Now it does, which enables VC to drive changeset-based
version-control systems.
Emacs uses the concept of named filesets elsewhere
(@pxref{Filesets}) to allow you to view and visit files in functional
groups. Unlike those, VC filesets are not named and don't persist
across sessions.
@node Doing The Right Thing
@subsubsection Performing the next operation in the development cycle
@ -3061,6 +3066,11 @@ files in a fileset, and @kbd{M-x filesets-close} to close them. Use
a fileset. These commands are also available from the @samp{Filesets}
menu, where each existing fileset is represented by a submenu.
Emacs uses the concept of a fileset elsewhere @pxref{Version
Control} to describe sets of files to be treated as a group for
purposes of version-control operations. Those filesets are
unnamed and do not persist across Emacs essions.
@ignore
arch-tag: 768d32cb-e15a-4cc1-b7bf-62c00ee12250
@end ignore

View file

@ -32,8 +32,8 @@ command runs the hook @code{fortran-mode-hook}.
@findex f90-mode
@findex fortran-mode
Fortran mode is meant for editing Fortran77 ``fixed format'' (and also
``tab format'') source code. For editing the modern Fortran90 or
Fortran95 ``free format'' source code, use F90 mode (@code{f90-mode}).
``tab format'') source code. For editing the modern Fortran90/95/2003
``free format'' source code, use F90 mode (@code{f90-mode}).
Emacs normally uses Fortran mode for files with extension @samp{.f},
@samp{.F} or @samp{.for}, and F90 mode for the extension @samp{.f90} and
@samp{.f95}. GNU Fortran supports both kinds of format.

View file

@ -462,10 +462,10 @@ contents of the minibuffer. To use it again unchanged, just type
not change the history element that you ``moved'' to, but your new
argument does go at the end of the history list in its own right.
For many minibuffer arguments there is a ``default'' value. You can
insert the default value into the minibuffer as text by using
@kbd{M-n}. You can think of this as moving ``into the future'' in the
history.
For many minibuffer arguments there is a ``default'' value, or
a list of default values. You can insert the default value into the
minibuffer as text by using @kbd{M-n} one or more times. You can
think of this as moving ``into the future'' in the history.
@findex previous-matching-history-element
@findex next-matching-history-element

View file

@ -488,8 +488,8 @@ also change the coding system for a running subshell by typing
Coding}.
@cindex @env{INSIDE_EMACS} environment variable
Emacs sets the environment variable @env{INSIDE_EMACS} (to a
comma-separated list including the Emacs version) in the subshell.
Emacs sets the environment variable @env{INSIDE_EMACS} in the
subshell to a comma-separated list including the Emacs version.
Programs can check this variable to determine whether they are running
inside an Emacs subshell.

View file

@ -1,3 +1,36 @@
2007-10-26 Richard Stallman <rms@gnu.org>
* objects.texi (Equality Predicates): Null strings are uniquified.
* minibuf.texi: Minor clarifications in previous change.
2007-10-25 Glenn Morris <rgm@gnu.org>
* customize.texi (Variable Definitions): Add :risky and :safe keywords.
2007-10-24 Richard Stallman <rms@gnu.org>
* elisp.texi (Top): Delete Frame-Local Variables from subnode menu.
* variables.texi (Frame-Local Variables): Node deleted.
(Variables): Delete Frame-Local Variables from menu.
(Local Variables, Buffer-Local Variables, Intro to Buffer-Local)
(Default Value): Don't mention frame-local vars.
* os.texi (Idle Timers): current-idle-time returns nil if not idle.
* loading.texi (Unloading): Document FEATURE-unload-function
instead of FEATURE-unload-hook.
* frames.texi (Multiple Displays): Don't mention frame-local vars.
2007-10-22 Juri Linkov <juri@jurta.org>
* minibuf.texi (Text from Minibuffer, Minibuffer Completion)
(High-Level Completion): Document a list of default value strings
in the DEFAULT argument, for which minibuffer functions return the
first element.
2007-10-17 Juri Linkov <juri@jurta.org>
* text.texi (Filling): Update arguments of fill-paragraph.

View file

@ -393,6 +393,14 @@ value and then reevaluates the defcustom. By that time, the necessary
variables and functions will be defined, so there will not be an error.
@end table
@item :risky @var{value}
@kindex risky@r{, @code{defcustom} keyword}
Set this variable's @code{risky-local-variable} property to @var{value}.
@item :safe @var{function}
@kindex safe@r{, @code{defcustom} keyword}
Set this variable's @code{safe-local-variable} property to @var{function}.
@item :set-after @var{variables}
@kindex set-after@r{, @code{defcustom} keyword}
When setting variables according to saved customizations, make sure to

View file

@ -421,7 +421,6 @@ Variables
* Setting Variables:: Storing new values in variables.
* Variable Scoping:: How Lisp chooses among local and global values.
* Buffer-Local Variables:: Variable values in effect only in one buffer.
* Frame-Local Variables:: Variable values in effect only in one frame.
* Future Local Variables:: New kinds of local values we might add some day.
* File Local Variables:: Handling local variable lists in files.
* Variable Aliases:: Variables that are aliases for other variables.

View file

@ -141,7 +141,7 @@ is the one for the terminal that the currently selected frame belongs
to. These variables include @code{default-minibuffer-frame},
@code{defining-kbd-macro}, @code{last-kbd-macro}, and
@code{system-key-alist}. They are always terminal-local, and can never
be buffer-local (@pxref{Buffer-Local Variables}) or frame-local.
be buffer-local (@pxref{Buffer-Local Variables}).
A single X server can handle more than one screen. A display name
@samp{@var{host}:@var{server}.@var{screen}} has three parts; the last

View file

@ -1326,6 +1326,9 @@ See @ref{Autoload}.
@item call-interactively
See @ref{Interactive Call}.
@item called-interactively-p
See @ref{Distinguish Interactive}.
@item commandp
See @ref{Interactive Call}.
@ -1351,7 +1354,7 @@ See @ref{Function Indirection}.
See @ref{Using Interactive}.
@item interactive-p
See @ref{Interactive Call}.
See @ref{Distinguish Interactive}.
@item mapatoms
See @ref{Creating Symbols}.

View file

@ -862,24 +862,27 @@ library with @code{defun}, @code{defalias}, @code{defsubst},
It then restores any autoloads formerly associated with those symbols.
(Loading saves these in the @code{autoload} property of the symbol.)
@vindex unload-feature-special-hooks
Before restoring the previous definitions, @code{unload-feature} runs
@code{remove-hook} to remove functions in the library from certain
hooks. These hooks include variables whose names end in @samp{hook}
or @samp{-hooks}, plus those listed in
@code{unload-feature-special-hooks}. This is to prevent Emacs from
ceasing to function because important hooks refer to functions that
are no longer defined.
@code{unload-feature-special-hooks}, as well as
@code{auto-mode-alist}. This is to prevent Emacs from ceasing to
function because important hooks refer to functions that are no longer
defined.
@vindex @var{feature}-unload-hook
Standard unloading activities also undoes ELP profiling of functions
in that library, unprovides any features provided by the library, and
cancels timers held in variables defined by the library.
@vindex @var{feature}-unload-function
If these measures are not sufficient to prevent malfunction, a library
can define an explicit unload hook. If @code{@var{feature}-unload-hook}
is defined, it is run as a normal hook before restoring the previous
definitions, @emph{instead of} the usual hook-removing actions. The
unload hook ought to undo all the global state changes made by the
library that might cease to work once the library is unloaded.
@code{unload-feature} can cause problems with libraries that fail to do
this, so it should be used with caution.
can define an explicit unloader named @code{@var{feature}-unload-function}.
If that symbol is defined as a function, @code{unload-feature} calls
it with no arguments before doing anything else. It can do whatever
is appropriate to unload the library. If it returns @code{nil},
@code{unload-feature} proceeds to take the normal unload actions.
Otherwise it considers the job to be done.
Ordinarily, @code{unload-feature} refuses to unload a library on which
other loaded libraries depend. (A library @var{a} depends on library

View file

@ -128,18 +128,19 @@ However, if @var{read} is non-@code{nil}, @code{read-from-minibuffer}
reads the text and returns the resulting Lisp object, unevaluated.
(@xref{Input Functions}, for information about reading.)
The argument @var{default} specifies a default value to make available
through the history commands. It should be a string, or @code{nil}.
If non-@code{nil}, the user can access it using
@code{next-history-element}, usually bound in the minibuffer to
@kbd{M-n}. If @var{read} is non-@code{nil}, then @var{default} is
also used as the input to @code{read}, if the user enters empty input.
(If @var{read} is non-@code{nil} and @var{default} is @code{nil}, empty
The argument @var{default} specifies default values to make available
through the history commands. It should be a string, a list of
strings, or @code{nil}. The string or strings become the minibuffer's
``future history,'' available to the user with @kbd{M-n}.
If @var{read} is non-@code{nil}, then @var{default} is also used as
the input to @code{read}, if the user enters empty input. (If
@var{read} is non-@code{nil} and @var{default} is @code{nil}, empty
input results in an @code{end-of-file} error.) However, in the usual
case (where @var{read} is @code{nil}), @code{read-from-minibuffer}
ignores @var{default} when the user enters empty input and returns an
empty string, @code{""}. In this respect, it is different from all
the other minibuffer input functions in this chapter.
empty string, @code{""}. In this respect, it differs from all the
other minibuffer input functions in this chapter.
If @var{keymap} is non-@code{nil}, that keymap is the local keymap to
use in the minibuffer. If @var{keymap} is omitted or @code{nil}, the
@ -176,10 +177,14 @@ The keymap used is @code{minibuffer-local-map}.
The optional argument @var{default} is used as in
@code{read-from-minibuffer}, except that, if non-@code{nil}, it also
specifies a default value to return if the user enters null input. As
in @code{read-from-minibuffer} it should be a string, or @code{nil},
which is equivalent to an empty string.
in @code{read-from-minibuffer} it should be a string, a list of
strings, or @code{nil} which is equivalent to an empty string. When
@var{default} is a string, that string is the default value. When it
is a list of strings, the first string is the default value. (All
these strings are available to the user in the ``future minibuffer
history.'')
This function is a simplified interface to the
This function works by calling the
@code{read-from-minibuffer} function:
@smallexample
@ -190,7 +195,7 @@ This function is a simplified interface to the
(read-from-minibuffer @var{prompt} @var{initial} nil nil
@var{history} @var{default} @var{inherit})))
(if (and (equal value "") @var{default})
@var{default}
(if (consp @var{default}) (car @var{default}) @var{default})
value))
@end group
@end smallexample
@ -839,10 +844,11 @@ an element of @var{collection}. If @var{require-match} is neither
input already in the buffer matches an element of @var{collection}.
However, empty input is always permitted, regardless of the value of
@var{require-match}; in that case, @code{completing-read} returns
@var{default}, or @code{""}, if @var{default} is @code{nil}. The
value of @var{default} (if non-@code{nil}) is also available to the
user through the history commands.
@var{require-match}; in that case, @code{completing-read} returns the
first element of @var{default}, if it is a list; @code{""}, if
@var{default} is @code{nil}; or @var{default}. The string or strins
in @var{default} aer also available to the user through the history
commands.
The function @code{completing-read} uses
@code{minibuffer-local-completion-map} as the keymap if
@ -1073,8 +1079,10 @@ specification. @xref{Defining Commands}.
This function reads the name of a buffer and returns it as a string.
The argument @var{default} is the default name to use, the value to
return if the user exits with an empty minibuffer. If non-@code{nil},
it should be a string or a buffer. It is mentioned in the prompt, but
is not inserted in the minibuffer as initial input.
it should be a string, a list of strings, or a buffer. If it is
a list, the default value is the first element of this list. It is
mentioned in the prompt, but is not inserted in the minibuffer as
initial input.
The argument @var{prompt} should be a string ending with a colon and a
space. If @var{default} is non-@code{nil}, the function inserts it in
@ -1130,11 +1138,12 @@ which @code{commandp} returns @code{t}, and a command name is a symbol
for which @code{commandp} returns @code{t}. @xref{Interactive Call}.
The argument @var{default} specifies what to return if the user enters
null input. It can be a symbol or a string; if it is a string,
@code{read-command} interns it before returning it. If @var{default} is
@code{nil}, that means no default has been specified; then if the user
enters null input, the return value is @code{(intern "")}, that is, a
symbol whose name is an empty string.
null input. It can be a symbol, a string or a list of strings. If it
is a string, @code{read-command} interns it before returning it.
If it is a list, @code{read-command} returns the first element of this list.
If @var{default} is @code{nil}, that means no default has been
specified; then if the user enters null input, the return value is
@code{(intern "")}, that is, a symbol whose name is an empty string.
@example
(read-command "Command name? ")
@ -1176,11 +1185,13 @@ complete in the set of extant Lisp symbols, and it uses the
This function reads the name of a user variable and returns it as a
symbol.
The argument @var{default} specifies what to return if the user enters
null input. It can be a symbol or a string; if it is a string,
@code{read-variable} interns it before returning it. If @var{default}
is @code{nil}, that means no default has been specified; then if the
user enters null input, the return value is @code{(intern "")}.
The argument @var{default} specifies the default value to return if
the user enters null input. It can be a symbol, a string, or a list
of strings. If it is a string, @code{read-variable} interns it to
make the default value; If it is a list, @code{read-variable} interns
the first element. If @var{default} is @code{nil}, that means no
default has been specified; then if the user enters null input, the
return value is @code{(intern "")}.
@example
@group

View file

@ -1871,7 +1871,7 @@ This function returns a symbol naming the primitive type of
@cindex equality
Here we describe two functions that test for equality between any two
objects. Other functions test equality between objects of specific
objects. Other functions test equality of contents between objects of specific
types, e.g., strings. For these predicates, see the appropriate chapter
describing the data type.
@ -1904,6 +1904,13 @@ by the same change in the contents of the other.
@result{} nil
@end group
@group
(eq "" "")
@result{} t
;; @r{This exception occurs because Emacs Lisp}
;; @r{makes just one multibyte empty string, to save space.}
@end group
@group
(eq '(1 (2 (3))) '(1 (2 (3))))
@result{} nil

View file

@ -1561,10 +1561,10 @@ set up to repeat will subsequently run another time, one by one.
@c Emacs 19 feature
@defun current-idle-time
This function returns the length of time Emacs has been idle, as a
list of three integers: @code{(@var{high} @var{low} @var{microsec})}.
The integers @var{high} and @var{low} combine to give the number of
seconds of idleness, which is
If Emacs is idle, this function returns the length of time Emacs has
been idle, as a list of three integers: @code{(@var{high} @var{low}
@var{microsec})}. The integers @var{high} and @var{low} combine to
give the number of seconds of idleness, which is
@ifnottex
@var{high} * 2**16 + @var{low}.
@end ifnottex
@ -1576,6 +1576,9 @@ The third element, @var{microsec}, gives the microseconds since the
start of the current second (or 0 for systems that return time with
the resolution of only one second).
When Emacs is not idle, @code{current-idle-time} returns @code{nil}.
This is a convenient way to test whether Emacs is idle.
The main use of this function is when an idle timer function wants to
``take a break'' for a while. It can set up another idle timer to
call the same function again, after a few seconds more idleness.

View file

@ -39,7 +39,6 @@ variable.
* Setting Variables:: Storing new values in variables.
* Variable Scoping:: How Lisp chooses among local and global values.
* Buffer-Local Variables:: Variable values in effect only in one buffer.
* Frame-Local Variables:: Variable values in effect only in one frame.
* Future Local Variables:: New kinds of local values we might add some day.
* File Local Variables:: Handling local variable lists in files.
* Variable Aliases:: Variables that are aliases for other variables.
@ -255,11 +254,10 @@ Macro calls (@pxref{Macros}).
@end itemize
Variables can also have buffer-local bindings (@pxref{Buffer-Local
Variables}) and frame-local bindings (@pxref{Frame-Local Variables}); a
few variables have terminal-local bindings (@pxref{Multiple Displays}).
These kinds of bindings work somewhat like ordinary local bindings, but
they are localized depending on ``where'' you are in Emacs, rather than
localized in time.
Variables}); a few variables have terminal-local bindings
(@pxref{Multiple Displays}). These kinds of bindings work somewhat
like ordinary local bindings, but they are localized depending on
``where'' you are in Emacs, rather than localized in time.
@defvar max-specpdl-size
@anchor{Definition of max-specpdl-size}
@ -1085,16 +1083,12 @@ use short names like @code{x}.
@cindex buffer-local variables
Global and local variable bindings are found in most programming
languages in one form or another. Emacs, however, also supports additional,
unusual kinds of variable binding: @dfn{buffer-local} bindings, which
apply only in one buffer, and @dfn{frame-local} bindings, which apply only in
one frame. Having different values for a variable in different buffers
and/or frames is an important customization method.
This section describes buffer-local bindings; for frame-local
bindings, see the following section, @ref{Frame-Local Variables}. (A few
variables have bindings that are local to each terminal; see
@ref{Multiple Displays}.)
languages in one form or another. Emacs, however, also supports
additional, unusual kinds of variable binding, such as
@dfn{buffer-local} bindings, which apply only in one buffer. Having
different values for a variable in different buffers is an important
customization method. (A few variables have bindings that are local
to each terminal; see @ref{Multiple Displays}.)
@menu
* Intro to Buffer-Local:: Introduction and concepts.
@ -1121,8 +1115,7 @@ this is the global binding.
other buffers. The default binding is shared by all the buffers that
don't have their own bindings for the variable. (This includes all
newly-created buffers.) If you set the variable in a buffer that does
not have a buffer-local binding for it, this sets the default binding
(assuming there are no frame-local bindings to complicate the matter),
not have a buffer-local binding for it, this sets the default binding,
so the new value is visible in all the buffers that see the default
binding.
@ -1153,11 +1146,11 @@ the default binding untouched. This means that the default value cannot
be changed with @code{setq} in any buffer; the only way to change it is
with @code{setq-default}.
@strong{Warning:} When a variable has buffer-local or frame-local
@strong{Warning:} When a variable has buffer-local
bindings in one or more buffers, @code{let} rebinds the binding that's
currently in effect. For instance, if the current buffer has a
buffer-local value, @code{let} temporarily rebinds that. If no
buffer-local or frame-local bindings are in effect, @code{let} rebinds
buffer-local bindings are in effect, @code{let} rebinds
the default value. If inside the @code{let} you then change to a
different current buffer in which a different binding is in effect,
you won't see the @code{let} binding any more. And if you exit the
@ -1421,7 +1414,7 @@ this variable.
@c Emacs 19 feature
The special forms @code{defvar} and @code{defconst} also set the
default value (if they set the variable at all), rather than any
buffer-local or frame-local value.
buffer-local value.
@defun default-value symbol
This function returns @var{symbol}'s default value. This is the value
@ -1520,112 +1513,6 @@ an ordinary evaluated argument.
@end example
@end defun
@node Frame-Local Variables
@section Frame-Local Variables
@cindex frame-local variables
Just as variables can have buffer-local bindings, they can also have
frame-local bindings. These bindings belong to one frame, and are in
effect when that frame is selected. Frame-local bindings are actually
frame parameters: you create a frame-local binding in a specific frame
by calling @code{modify-frame-parameters} and specifying the variable
name as the parameter name.
To enable frame-local bindings for a certain variable, call the function
@code{make-variable-frame-local}.
@deffn Command make-variable-frame-local variable
Enable the use of frame-local bindings for @var{variable}. This does
not in itself create any frame-local bindings for the variable; however,
if some frame already has a value for @var{variable} as a frame
parameter, that value automatically becomes a frame-local binding.
If @var{variable} does not have a default value, then calling this
command will give it a default value of @code{nil}. If @var{variable}
already has a default value, that value remains unchanged.
If the variable is terminal-local, this function signals an error,
because such variables cannot have frame-local bindings as well.
@xref{Multiple Displays}. A few variables that are implemented
specially in Emacs can be buffer-local, but can never be frame-local.
This command returns @var{variable}.
@end deffn
Buffer-local bindings take precedence over frame-local bindings. Thus,
consider a variable @code{foo}: if the current buffer has a buffer-local
binding for @code{foo}, that binding is active; otherwise, if the
selected frame has a frame-local binding for @code{foo}, that binding is
active; otherwise, the default binding of @code{foo} is active.
Here is an example. First we prepare a few bindings for @code{foo}:
@example
(setq f1 (selected-frame))
(make-variable-frame-local 'foo)
;; @r{Make a buffer-local binding for @code{foo} in @samp{b1}.}
(set-buffer (get-buffer-create "b1"))
(make-local-variable 'foo)
(setq foo '(b 1))
;; @r{Make a frame-local binding for @code{foo} in a new frame.}
;; @r{Store that frame in @code{f2}.}
(setq f2 (make-frame))
(modify-frame-parameters f2 '((foo . (f 2))))
@end example
Now we examine @code{foo} in various contexts. Whenever the
buffer @samp{b1} is current, its buffer-local binding is in effect,
regardless of the selected frame:
@example
(select-frame f1)
(set-buffer (get-buffer-create "b1"))
foo
@result{} (b 1)
(select-frame f2)
(set-buffer (get-buffer-create "b1"))
foo
@result{} (b 1)
@end example
@noindent
Otherwise, the frame gets a chance to provide the binding; when frame
@code{f2} is selected, its frame-local binding is in effect:
@example
(select-frame f2)
(set-buffer (get-buffer "*scratch*"))
foo
@result{} (f 2)
@end example
@noindent
When neither the current buffer nor the selected frame provides
a binding, the default binding is used:
@example
(select-frame f1)
(set-buffer (get-buffer "*scratch*"))
foo
@result{} nil
@end example
@noindent
When the active binding of a variable is a frame-local binding, setting
the variable changes that binding. You can observe the result with
@code{frame-parameters}:
@example
(select-frame f2)
(set-buffer (get-buffer "*scratch*"))
(setq foo 'nobody)
(assq 'foo (frame-parameters f2))
@result{} (foo . nobody)
@end example
@node Future Local Variables
@section Possible Future Local Variables

View file

@ -1,10 +1,46 @@
2007-10-25 Jonathan Yavner <jyavner@member.fsf.org>
* ses.texi (The Basics): Mention how to create a new spreadsheet.
Mention the new three-letter column identifiers.
(More on cell printing): Calculate-cell and truncate-cell are now `c'
and `t' rather than `C-c C-c' and `C-c C-t'. Mention the stupid error
message when using `c' on an empty default with default printer.
(Buffer-local variables in spreadsheets): `symbolic-formulas' was
renamed to `ses--symbolic-formulas' some time ago.
2007-10-25 Jay Belanger <jay.p.belanger@gmail.com>
* calc.texi (Default Simplifications, Making Selections)
(Customizing Calc): Clarify associativity of multiplication.
2007-10-23 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi (Traces and Profiles): Simplify loop over
`trace-function-background'.
2007-10-22 Juri Linkov <juri@jurta.org>
* dired-x.texi (Shell Command Guessing): Default values are now
available by typing M-n instead of M-p.
2007-10-21 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi (Cleanup remote connections): New section.
(Password caching): Remove `tramp-clear-passwd'.
It's not a command anymore.
(Bug Reports): Add `tramp-bug' to function index.
(Function Index, Variable Index): New nodes.
(Remote shell setup): Describe `tramp-password-prompt-regexp'.
* trampver.texi: Update release number.
2007-10-20 Jay Belanger <jay.p.belanger@gmail.com>
* calc.texi (History and Acknowledgements): Turn comment
about integer size into past tense.
(Time Zones): Remove pointer to Calc author's address.
(Trigonometric and Hyperbolic Functions): Mention cotangent
and hyperbolic cotangent.
and hyperbolic cotangent. Fix typo.
2007-10-10 Michael Albinus <michael.albinus@gmx.de>
@ -56,13 +92,12 @@
2007-09-08 Michael Olson <mwolson@gnu.org>
* erc.texi (Copying): New section included from gpl.texi. This matches
the look of the upstream ERC manual.
* erc.texi (Copying): New section included from gpl.texi.
This matches the look of the upstream ERC manual.
2007-09-07 Jay Belanger <jay.p.belanger@gmail.com>
* calc.texi (History and Acknowledgements): Adjust the
"thanks".
* calc.texi (History and Acknowledgements): Adjust the "thanks".
(Random Numbers): Clarify the distribution of `random'.
2007-09-06 Glenn Morris <rgm@gnu.org>
@ -98,7 +133,7 @@
2007-08-30 Carsten Dominik <dominik@science.uva.nl>
* org.texi: Version 5.07
* org.texi: Version 5.07.
2007-08-24 IRIE Tetsuya <irie@t.email.ne.jp> (tiny change)

View file

@ -18324,7 +18324,7 @@ The remaining trigonometric functions, @code{calc-sec} [@code{sec}],
available. With the Hyperbolic flag, these compute their hyperbolic
counterparts, which are also available separately as @code{calc-sech}
[@code{sech}], @code{calc-csch} [@code{csch}] and @code{calc-coth}
[@code{coth}]. (These commmands do not accept the Inverse flag.)
[@code{coth}]. (These commands do not accept the Inverse flag.)
@node Advanced Math Functions, Branch Cuts, Trigonometric and Hyperbolic Functions, Scientific Functions
@section Advanced Mathematical Functions
@ -21357,16 +21357,17 @@ entire four-term sum.
@pindex calc-break-selections
The @kbd{j b} (@code{calc-break-selections}) command controls a mode
in which the ``deep structure'' of these associative formulas shows
through. Calc actually stores the above formulas as @samp{((a + b) - c) + d}
and @samp{x * (y * z)}. (Note that for certain obscure reasons, Calc
treats multiplication as right-associative.) Once you have enabled
@kbd{j b} mode, selecting with the cursor on the @samp{-} sign would
only select the @samp{a + b - c} portion, which makes sense when the
deep structure of the sum is considered. There is no way to select
the @samp{b - c + d} portion; although this might initially look
like just as legitimate a sub-formula as @samp{a + b - c}, the deep
structure shows that it isn't. The @kbd{d U} command can be used
to view the deep structure of any formula (@pxref{Normal Language Modes}).
through. Calc actually stores the above formulas as
@samp{((a + b) - c) + d} and @samp{x * (y * z)}. (Note that for certain
obscure reasons, by default Calc treats multiplication as
right-associative.) Once you have enabled @kbd{j b} mode, selecting
with the cursor on the @samp{-} sign would only select the @samp{a + b -
c} portion, which makes sense when the deep structure of the sum is
considered. There is no way to select the @samp{b - c + d} portion;
although this might initially look like just as legitimate a sub-formula
as @samp{a + b - c}, the deep structure shows that it isn't. The @kbd{d
U} command can be used to view the deep structure of any formula
(@pxref{Normal Language Modes}).
When @kbd{j b} mode has not been enabled, the deep structure is
generally hidden by the selection commands---what you see is what
@ -22158,13 +22159,13 @@ Arithmetic operators like @kbd{+} and @kbd{*} always take two
arguments in Calc's internal form. Sums and products of three or
more terms are arranged by the associative law of algebra into
a left-associative form for sums, @expr{((a + b) + c) + d}, and
a right-associative form for products, @expr{a * (b * (c * d))}.
Formulas like @expr{(a + b) + (c + d)} are rearranged to
left-associative form, though this rarely matters since Calc's
algebra commands are designed to hide the inner structure of
sums and products as much as possible. Sums and products in
their proper associative form will be written without parentheses
in the examples below.
(by default) a right-associative form for products,
@expr{a * (b * (c * d))}. Formulas like @expr{(a + b) + (c + d)} are
rearranged to left-associative form, though this rarely matters since
Calc's algebra commands are designed to hide the inner structure of sums
and products as much as possible. Sums and products in their proper
associative form will be written without parentheses in the examples
below.
Sums and products are @emph{not} rearranged according to the
commutative law (@expr{a + b} to @expr{b + a}) except in a few
@ -34868,12 +34869,14 @@ and @code{calc-embedded-open-close-plain-alist}.
@defvar calc-multiplication-has-precedence
The variable @code{calc-multiplication-has-precedence} determines
whether multiplication has precedence over division in algebraic formulas
in normal language modes. If @code{calc-multiplication-has-precedence}
is non-@code{nil}, then multiplication has precedence, and so for
example @samp{a/b*c} will be interpreted as @samp{a/(b*c)}. If
@code{calc-multiplication-has-precedence} is @code{nil}, then
multiplication has the same precedence as division, and so for example
whether multiplication has precedence over division in algebraic
formulas in normal language modes. If
@code{calc-multiplication-has-precedence} is non-@code{nil}, then
multiplication has precedence (and, for certain obscure reasons, is
right associative), and so for example @samp{a/b*c} will be interpreted
as @samp{a/(b*c)}. If @code{calc-multiplication-has-precedence} is
@code{nil}, then multiplication has the same precedence as division
(and, like division, is left associative), and so for example
@samp{a/b*c} will be interpreted as @samp{(a/b)*c}. The default value
of @code{calc-multiplication-has-precedence} is @code{t}.
@end defvar

View file

@ -656,11 +656,11 @@ on a file named @file{foo.tar} and you press @kbd{!}, Dired will guess
you want to @samp{tar xvf} it and suggest that as the default shell
command.
The default is mentioned in brackets and you can type @kbd{M-p} to get
The default is mentioned in brackets and you can type @kbd{M-n} to get
the default into the minibuffer and then edit it, e.g., to change
@samp{tar xvf} to @samp{tar tvf}. If there are several commands for a given
file, e.g., @samp{xtex} and @samp{dvips} for a @file{.dvi} file, you can type
@kbd{M-p} several times to see each of the matching commands.
@kbd{M-n} several times to see each of the matching commands.
Dired only tries to guess a command for a single file, never for a list
of marked files.

View file

@ -115,10 +115,14 @@ To report bugs, send email to @email{jyavner@@member.fsf.org}.
@findex set-mark-command
@findex keyboard-quit
To create a new spreadsheet, visit a nonexistent file whose name ends
with ".ses". For example, @kbd{C-x C-f test.ses RET}.
A @dfn{cell identifier} is a symbol with a column letter and a row
number. Cell B7 is the 2nd column of the 7th row. For very wide
spreadsheets, there are two column letters: cell AB7 is the 28th
column of the 7th row.
column of the 7th row. Super wide spreadsheets get AAA1, etc.
@table @kbd
@item j
@ -658,21 +662,26 @@ SES could get confused by printer results that contain newlines or
tabs, so these are replaced with question marks.
@table @kbd
@item C-c C-t
@item t
Confine a cell to its own column (@code{ses-truncate-cell}). This
allows you to move point to a rightward cell that would otherwise be
covered by a spill-over. If you don't change the rightward cell, the
confined cell will spill over again the next time it is reprinted.
@item C-c C-c
When applied to a single cell, this command displays in the echo area any
formula error or printer error that occurred during
recalculation/reprinting (@code{ses-recalculate-cell}).
@item c
When applied to a single cell, this command displays in the echo area
any formula error or printer error that occurred during
recalculation/reprinting (@code{ses-recalculate-cell}). You can use
this to undo the effect of @kbd{t}.
@end table
When a printer function signals an error, the default printer
When a printer function signals an error, the fallback printer
@samp{"%s"} is substituted. This is useful when your column printer
is numeric-only and you use a string as a cell value.
is numeric-only and you use a string as a cell value. Note that the
standard default printer is ``%.7g'' which is numeric-only, so cells
that are empty of contain strings will use the fallback printer.
@kbd{c} on such cells will display ``Format specifier doesn't match
argument type''.
@node Import and export, Virus protection, More on cell printing, Advanced Features
@ -871,12 +880,12 @@ You can add additional local variables to the list at the bottom of
the data area, such as hidden constants you want to refer to in your
formulas.
You can override the variable @code{symbolic-formulas} to be a list of
You can override the variable @code{ses--symbolic-formulas} to be a list of
symbols (as parenthesized strings) to show as completions for the '
command. This initial completions list is used instead of the actual
set of symbols-as-formulas in the spreadsheet.
For examples of these, see file @file{etc/ses-example.ses}.
For an example of this, see file @file{etc/ses-example.ses}.
If (for some reason) you want your formulas or printers to save data
into variables, you must declare these variables as buffer-locals in

View file

@ -164,6 +164,8 @@ For the end user:
* Usage:: An overview of the operation of @value{tramp}.
* Bug Reports:: Reporting Bugs and Problems.
* Frequently Asked Questions:: Questions and answers from the mailing list.
* Function Index:: @value{tramp} functions.
* Variable Index:: User options and variables.
* Concept Index:: An item for each concept.
For the developer:
@ -214,6 +216,7 @@ Using @value{tramp}
* Alternative Syntax:: URL-like filename syntax.
* Filename completion:: Filename completion.
* Remote processes:: Integration with other @value{emacsname} packages.
* Cleanup remote connections:: Cleanup remote connections.
The inner workings of remote version control
@ -1548,12 +1551,6 @@ variable @code{password-cache-expiry}. The value is the number of
seconds how long passwords are cached. Setting it to @code{nil}
disables the expiration.
@findex tramp-clear-passwd
A password is removed from the cache if a connection isn't established
successfully. You can remove a password from the cache also by
executing @kbd{M-x tramp-clear-passwd} in a buffer containing a
related remote file or directory.
@vindex password-cache
If you don't like this feature for security reasons, password caching
can be disabled totally by customizing the variable
@ -1654,7 +1651,6 @@ you must exit @value{emacsname}, remove your persistency file
@node Remote shell setup
@comment node-name, next, previous, up
@section Remote shell setup hints
@cindex remote shell setup
@cindex @file{.profile} file
@ -1719,6 +1715,39 @@ different user. The default value of
@code{shell-prompt-pattern}, which is reported to work well in many
circumstances.
@item @var{tramp-password-prompt-regexp}
@vindex tramp-password-prompt-regexp
@vindex tramp-wrong-passwd-regexp
During login, @value{tramp} might be forced to enter a password or a
passphrase. The difference between both is that a password is
requested from the shell on the remote host, while a passphrase is
needed for accessing local authentication information, like your ssh
key.
@var{tramp-password-prompt-regexp} handles the detection of such
requests for English environments. When you use another localization
of your (local or remote) host, you might need to adapt this. Example:
@lisp
(setq
tramp-password-prompt-regexp
(concat
"^.*"
(regexp-opt
'("passphrase" "Passphrase"
;; English
"password" "Password"
;; Deutsch
"passwort" "Passwort"
;; Fran@,{c}ais
"mot de passe" "Mot de passe") t)
".*:? *"))
@end lisp
In parallel, it might also be necessary to adapt
@var{tramp-wrong-passwd-regexp}.
@item @command{tset} and other questions
@cindex Unix command tset
@cindex tset Unix command
@ -2030,6 +2059,7 @@ minute you have already forgotten that you hit that key!
* Alternative Syntax:: URL-like filename syntax.
* Filename completion:: Filename completion.
* Remote processes:: Integration with other @value{emacsname} packages.
* Cleanup remote connections:: Cleanup remote connections.
@end menu
@ -2356,6 +2386,35 @@ means file names as arguments must be given as ordinary relative or
absolute file names, without any remote specification.
@node Cleanup remote connections
@section Cleanup remote connections.
@cindex cleanup
Sometimes it is useful to cleanup remote connections. The following
commands support this.
@deffn Command tramp-cleanup-connection vec
This command flushes all connection related objects. @option{vec} is
the internal representation of a remote connection. Called
interactively, the command offers all active remote connections in the
minibuffer as remote file name prefix like @file{@trampfn{method,
user, host, }}. The cleanup includes password cache (@pxref{Password
caching}), file cache, connection cache (@pxref{Connection caching}),
connection buffers.
@end deffn
@deffn Command tramp-cleanup-all-connections
This command flushes objects for all active remote connections. The
same objects are removed as in @code{tramp-cleanup-connection}.
@end deffn
@deffn Command tramp-cleanup-all-buffers
Like in @code{tramp-cleanup-all-connections}, all remote connections
are cleaned up. Additionally all buffers, which are related to a
remote connection, are killed.
@end deffn
@node Bug Reports
@chapter Reporting Bugs and Problems
@cindex bug reports
@ -2379,6 +2438,7 @@ Subscribing to the list is performed via
@uref{http://lists.gnu.org/mailman/listinfo/tramp-devel/,
the @value{tramp} Mail Subscription Page}.
@findex tramp-bug
To report a bug in @value{tramp}, you should execute @kbd{M-x
tramp-bug}. This will automatically generate a buffer with the details
of your system and @value{tramp} version.
@ -3228,9 +3288,8 @@ function call traces. Such traces are enabled by the following code:
@lisp
(require 'tramp)
(require 'trace)
(mapcar 'trace-function-background
(mapcar 'intern
(all-completions "tramp-" obarray 'functionp)))
(dolist (elt (all-completions "tramp-" obarray 'functionp))
(trace-function-background (intern elt)))
(untrace-function 'tramp-read-passwd)
(untrace-function 'tramp-gw-basic-authentication)
@end lisp
@ -3304,10 +3363,18 @@ for @value{emacsothername}.
@appendix GNU Free Documentation License
@include doclicense.texi
@node Function Index
@unnumbered Function Index
@printindex fn
@node Variable Index
@unnumbered Variable Index
@printindex vr
@node Concept Index
@comment node-name, next, previous, up
@unnumbered Concept Index
@printindex cp
@contents
@c End of tramp.texi - the TRAMP User Manual
@bye

View file

@ -4,7 +4,7 @@
@c In the Tramp CVS, the version number is auto-frobbed from
@c configure.ac, so you should edit that file and run
@c "autoconf && ./configure" to change the version number.
@set trampver 2.1.11
@set trampver 2.1.12-pre
@c Other flags from configuration
@set instprefix /usr/local

View file

@ -1,3 +1,12 @@
2007-10-25 Jonathan Yavner <jyavner@member.fsf.org>
* ses-example.ses: Get rid of silly life-universe-everything local
variable. `symbolic-formulas' is now `ses--symbolic-formulas'.
2007-10-24 Juanma Barranquero <lekktu@gmail.com>
* NEWS: Mention desktop locking.
2007-10-10 Eric S. Raymond <esr@snark.thyrsus.com>
* NEWS: Explain the VC fileset changes a bit better.

View file

@ -166,6 +166,18 @@ its usage.
* Changes in Specialized Modes and Packages in Emacs 23.1
** isearch can now search through multiple ChangeLog files.
When running isearch in a ChangeLog file, if the search fails,
then another C-s tries searching the previous ChangeLog,
if there is one (e.g. go from ChangeLog to ChangeLog.12).
This is enabled if isearch-buffers-multi is non-nil.
+++
** In Dired-x, all command guesses for ! are now added to the default
list accessible by M-n instead of pushing all guesses temporarily into
the history list.
** smerge-refine highlights word-level details of changes in conflict.
It's used automatically as you move through conflicts, see smerge-auto-refine.
@ -179,13 +191,17 @@ It's used automatically as you move through hunks, see diff-auto-refine.
** compilation-auto-jump-to-first-error tells `compile' to jump to
the first error encountered during compilations.
** In the `copyright' package, you can specify your copyright holders's names.
** In the `copyright' package, you can specify your copyright holders' names.
Only copyright lines with holders matching copyright-names-regexp will be
considered for update.
** eldoc highlights the function argument under point
with the face `eldoc-highlight-function-argument'.
+++
** defcustom accepts new keyword arguments, `:safe' and `:risky', which
set a variable's `safe-local-variable' and `risky-local-variable' property.
** VC
*** Clicking on the VC mode-line entry now pops the VC menu.
@ -211,7 +227,7 @@ tex-suscript-height-minimum.
`string', disabled by default.
*** New variable `bibtex-cite-matcher-alist' contains rules to
identify cited keys in BibTeX entries, used by `bibtex-find-crossref.
identify cited keys in BibTeX entries, used by `bibtex-find-crossref'.
*** Command `bibtex-url' now allows multiple URLs per entry.
@ -251,6 +267,9 @@ that either version can be used as inferior Python by python.el.
*** The variable `fortran-line-length' can change the fixed-form line-length.
+++
*** (The increasingly misnamed) F90 mode supports Fortran 2003 syntax.
** Miscellaneous
*** comint-mode uses `start-file-process' now (see Lisp Changes).
@ -282,8 +301,19 @@ supported on other platforms, but not on Windows due to using the winsock
* Lisp Changes in Emacs 23.1
+++
** A list of default values can be specified for the DEFAULT argument of
functions `read-from-minibuffer', `read-string', `read-command',
`read-variable', `read-buffer', `completing-read'. Elements of this list
are available for inserting into the minibuffer by typing `M-n'.
For empty input these functions return the first element of this list.
** `custom-note-var-changed' tells Custom to treat the change in a certain
variable as having been made within Custom.
** `frame-inherited-parameters' lets new frames inherit parameters from
the selected frame.
** New keymap `input-decode-map' overrides like key-translation-map, but
applies before function-key-map. Also it is terminal-local contrary to
key-translation-map. Terminal-specific key-sequences are generally added to
@ -376,11 +406,11 @@ with a given image specification.
Use this instead of "~/.emacs.d".
+++
** The new function `start-file-process is similar to `start-process',
** The new function `start-file-process' is similar to `start-process',
but obeys file handlers. The file handler is chosen based on
`default-directory'. The functions `start-file-process-shell-command'
and `process-file-shell-command' are also new; they call internally
`start-file-process and `process-file', respectively.
`start-file-process' and `process-file', respectively.
+++
** `file-remote-p' has new optional parameters IDENTIFICATION and CONNECTED.
@ -398,6 +428,12 @@ forms to subroutines.
* New Packages for Lisp Programming in Emacs 23.1
** The package isearch-multi.el has been added. It implements a new mode
`isearch-buffers-minor-mode' that allows isearch to search through
multiple buffers. In this mode a new variable
`isearch-buffers-next-buffer-function' defines the function to call
to get the next buffer to search in the series of multiple buffers.
** The new package avl-tree.el deals with the AVL tree data structure.

View file

@ -59,7 +59,7 @@ Windows XP introduced themed scrollbars, but applications have to take
special steps to use them. Emacs now has the appropriate resources linked
in to make it use the scrollbars from the system theme.
** focus-follows-mouse defaults to nil on MS Windows
** focus-follows-mouse defaults to nil on MS Windows.
Previously this variable was incorrectly documented as having no effect
on MS Windows, and the default was inappropriate for the majority of
Windows installations. Users of software which modifies the behaviour of
@ -70,6 +70,13 @@ this variable.
was needed. In text command mode, if you have problems before execution has
started, use M-x gud-gdb.
** desktop.el now detects conflicting uses of the desktop file.
When loading the desktop, desktop.el can now detect that the file is already
in use. The default behavior is to ask the user what to do, but you can
customize it with the new option `desktop-load-locked-desktop'. When saving,
desktop.el warns about attempts to overwrite a desktop file if it determines
that the desktop being saved is not an update of the one on disk.
* New Modes and Packages in Emacs 22.2
** bibtex-style-mode helps you write BibTeX's *.bst files.
@ -97,9 +104,8 @@ This can be used to add menu entries for backend specific functions.
* Lisp Changes in Emacs 22.2.
** The command `repeat' no longer attempts to repeat a command bound
to an input event.
** Frame-local variables are deprecated and are slated for removal.
Use frame parameters instead.
** The function invisible-p returns non-nil if the character
after a specified position is invisible.

View file

@ -2204,12 +2204,9 @@ month names with consistent widths for some locales on some versions
of Windows. This is caused by a deficiency in the underlying system
library function.
The functions set-time-zone-rule, and display-time-world (which uses it)
do not work on Windows. Fixing this is difficult, since Windows uses
localtime for the system clock, and any attempt to change the timezone
would have to be accompanied by a clock change for the results to remain
consistent. The way in which these functions are used is not intended to
cause such system-wide disruption.
The function set-time-zone-rule gives incorrect results for many
non-US timezones. This is due to over-simplistic handling of
daylight savings switchovers by the Windows libraries.
Files larger than 4GB cause overflow in the size (represented as a
32-bit integer) reported by `file-attributes'. This affects Dired as

View file

@ -329,9 +329,6 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
Check the assignments file for other packages which might go in and
have been missed.
** Install ruby-mode (needs assignment)?
http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00051.html
** Make keymaps a first-class Lisp object (this means a rewrite of
keymap.c). What should it do apart from being opaque ?
multiple inheritance ? faster where-is ? no more fix_submap_inheritance ?
@ -554,13 +551,6 @@ but which can also be used as a modifier).
the window associated with that modeline.
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg02416.html
** When running isearch in a ChangeLog file, if the search fails,
then after another C-s try searching the previous ChangeLog, if
there is one. (e.g. go from ChangeLog to ChangeLog.12).
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg02237.html
Juri Linkov has a patch for this:
http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00265.html
* Internal changes
** Cleanup all the GC_ mark bit stuff -- there is no longer any distinction

View file

@ -119,7 +119,7 @@ Sales summary - Acme fundraising
(ses-cell A16 990904 990904 nil nil)
(ses-cell B16 Eastern-area (quote Eastern-area) nil (D7 C7 D6 C6 D5 C5))
(ses-cell C16 21 (/ life-universe-everything 2) nil (D7 C7 D6 C6 D5 C5))
(ses-cell C16 21 (/ 42 2) nil (D7 C7 D6 C6 D5 C5))
(ses-cell D16 nil nil nil nil)
(ses-cell E16 nil nil nil nil)
@ -202,8 +202,7 @@ Sales summary - Acme fundraising
;;; Local Variables:
;;; mode: ses
;;; life-universe-everything: 42
;;; symbolic-formulas: (("Eastern area") ("West-district") ("North&South") ("Other"))
;;; ses--symbolic-formulas: (("Eastern area") ("West-district") ("North&South") ("Other"))
;;; End:
;;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007

View file

@ -1,3 +1,12 @@
2007-10-20 Edward O'Connor <hober0@gmail.com> (tiny change)
* quail/latin-ltx.el ("\\qed"): Add this rule.
2007-10-24 Juanma Barranquero <lekktu@gmail.com>
* quail/indian.el (quail-indian-update-preceding-char):
Don't mark the variable as frame-local; it wasn't used as such.
2007-07-25 Glenn Morris <rgm@gnu.org>
* Relicense all FSF files to GPLv3 or later.
@ -15,7 +24,7 @@
2007-01-30 Kenichi Handa <handa@m17n.org>
* CXTERM-DIC/CCDOSPY.tit, CXTERM-DIC/PY-b5.tit, CXTERM-DIC/SW.tit,
CXTERM-DIC/TONEPY.tit: Add copyright and license notices.
* CXTERM-DIC/TONEPY.tit: Add copyright and license notices.
* MISC-DIC/pinyin.map, MISC-DIC/ziranma.cin: Add copyright and
license notices.
@ -27,8 +36,8 @@
* CXTERM-DIC/README: New file.
* CXTERM-DIC/4Corner.tit, CXTERM-DIC/CCDOSPY.tit,
CXTERM-DIC/PY-b5.tit, CXTERM-DIC/QJ-b5.tit, CXTERM-DIC/QJ.tit,
CXTERM-DIC/SW.tit, CXTERM-DIC/TONEPY.tit: Updated from
* CXTERM-DIC/PY-b5.tit, CXTERM-DIC/QJ-b5.tit, CXTERM-DIC/QJ.tit,
* CXTERM-DIC/SW.tit, CXTERM-DIC/TONEPY.tit: Updated from
X11R6/contrib/programs/cxterm.
* ja-dic/ja-dic.el: Regenerated.

View file

@ -786,6 +786,7 @@ system, including many technical ones. Examples:
("\\prod" ?∏)
("\\propto" ?∝)
("\\psi" )
("\\qed" ?∎)
("\\quad" ?)
("\\rangle" ?〉)
("\\rbrace" ?})

View file

@ -1,3 +1,18 @@
2007-10-26 Juanma Barranquero <lekktu@gmail.com>
* emacsclient.c: Add a wrapper for getenv so it also checks the
registry on Windows. Suggestion and algorithm by Eli Zaretskii.
Code partially based on w32_get_resource and init_environment (w32.c).
(egetenv): New wrapper for getenv.
(get_current_dir_name, decode_options, get_server_config)
(set_local_socket, set_socket, main): Use egetenv, not getenv.
(w32_get_resource, w32_getenv) [WINDOWSNT]: New functions.
2007-10-25 Jason Rumney <jasonr@gnu.org>
* emacsclient.c (sock_err_message): New function.
(set_tcp_socket): Use it.
2007-10-09 Juanma Barranquero <lekktu@gmail.com>
* emacsclient.c (print_help_and_exit): Fix space to improve
@ -60,7 +75,7 @@
option.
(main) [NO_SOCKETS_IN_FILE_SYSTEM]: Don't call init_signals.
2007-08-29 Karoly Lorentey <lorentey@elte.hu>
2007-08-29 K,Aa(Broly L$,1 q(Brentey <lorentey@elte.hu>
* emacsclient.c (signal.h): New include.
(sys/stat.h, errno.h): Always include, even on WINDOWSNT.

View file

@ -86,6 +86,13 @@ Boston, MA 02110-1301, USA. */
char *getenv (), *getwd ();
char *(getcwd) ();
#ifdef WINDOWSNT
char *w32_getenv ();
#define egetenv(VAR) w32_getenv(VAR)
#else
#define egetenv(VAR) getenv(VAR)
#endif
#ifndef VERSION
#define VERSION "unspecified"
#endif
@ -231,7 +238,7 @@ get_current_dir_name ()
/* If PWD is accurate, use it instead of calling getwd. PWD is
sometimes a nicer name, and using it may avoid a fatal error if a
parent directory is searchable but not readable. */
if ((pwd = getenv ("PWD")) != 0
if ((pwd = egetenv ("PWD")) != 0
&& (IS_DIRECTORY_SEP (*pwd) || (*pwd && IS_DEVICE_SEP (pwd[1])))
&& stat (pwd, &pwdstat) == 0
&& stat (".", &dotstat) == 0
@ -294,6 +301,92 @@ get_current_dir_name ()
/* Message functions. */
#ifdef WINDOWSNT
#define REG_ROOT "SOFTWARE\\GNU\\Emacs"
/* Retrieve an environment variable from the Emacs subkeys of the registry.
Return NULL if the variable was not found, or it was empty.
This code is based on w32_get_resource (w32.c). */
char *
w32_get_resource (predefined, key, type)
HKEY predefined;
char *key;
LPDWORD type;
{
HKEY hrootkey = NULL;
char *result = NULL;
DWORD cbData;
if (RegOpenKeyEx (predefined, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS)
{
if (RegQueryValueEx (hrootkey, key, NULL, NULL, NULL, &cbData) == ERROR_SUCCESS)
{
result = (char *) xmalloc (cbData);
if ((RegQueryValueEx (hrootkey, key, NULL, type, result, &cbData) != ERROR_SUCCESS) ||
(*result == 0))
{
free (result);
result = NULL;
}
}
RegCloseKey (hrootkey);
}
return result;
}
/*
getenv wrapper for Windows
This is needed to duplicate Emacs's behavior, which is to look for enviroment
variables in the registry if they don't appear in the environment.
*/
char *
w32_getenv (envvar)
char *envvar;
{
char *value;
DWORD dwType;
if (value = getenv (envvar))
/* Found in the environment. */
return value;
if (! (value = w32_get_resource (HKEY_CURRENT_USER, envvar, &dwType)) &&
! (value = w32_get_resource (HKEY_LOCAL_MACHINE, envvar, &dwType)))
/* Not found in the registry. */
return NULL;
if (dwType == REG_SZ)
/* Registry; no need to expand. */
return value;
if (dwType == REG_EXPAND_SZ)
{
DWORD size;
if (size = ExpandEnvironmentStrings (value, NULL, 0))
{
char *buffer = (char *) xmalloc (size);
if (ExpandEnvironmentStrings (value, buffer, size))
{
/* Found and expanded. */
free (value);
return buffer;
}
/* Error expanding. */
free (buffer);
}
}
/* Not the right type, or not correctly expanded. */
free (value);
return NULL;
}
int
w32_window_app ()
{
@ -383,8 +476,8 @@ decode_options (argc, argv)
int argc;
char **argv;
{
alternate_editor = getenv ("ALTERNATE_EDITOR");
display = getenv ("DISPLAY");
alternate_editor = egetenv ("ALTERNATE_EDITOR");
display = egetenv ("DISPLAY");
if (display && strlen (display) == 0)
display = NULL;
@ -573,6 +666,29 @@ int sblen = 0; /* Fill pointer for the send buffer. */
/* Socket used to communicate with the Emacs server process. */
HSOCKET emacs_socket = 0;
/* On Windows, the socket library was historically separate from the standard
C library, so errors are handled differently. */
void
sock_err_message (function_name)
char *function_name;
{
#ifdef WINDOWSNT
char* msg = NULL;
FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM
| FORMAT_MESSAGE_ALLOCATE_BUFFER
| FORMAT_MESSAGE_ARGUMENT_ARRAY,
NULL, WSAGetLastError (), 0, (LPTSTR)&msg, 0, NULL);
message (TRUE, "%s: %s: %s\n", progname, function_name, msg);
LocalFree (msg);
#else
message (TRUE, "%s: %s: %s\n", progname, function_name, strerror (errno));
#endif
}
/* Let's send the data to Emacs when either
- the data ends in "\n", or
- the buffer is full (but this shouldn't happen)
@ -793,7 +909,7 @@ get_server_config (server, authentication)
config = fopen (server_file, "rb");
else
{
char *home = getenv ("HOME");
char *home = egetenv ("HOME");
if (home)
{
@ -802,7 +918,7 @@ get_server_config (server, authentication)
config = fopen (path, "rb");
}
#ifdef WINDOWSNT
if (!config && (home = getenv ("APPDATA")))
if (!config && (home = egetenv ("APPDATA")))
{
char *path = alloca (32 + strlen (home) + strlen (server_file));
sprintf (path, "%s/.emacs.d/server/%s", home, server_file);
@ -864,7 +980,7 @@ set_tcp_socket ()
*/
if ((s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
{
message (TRUE, "%s: socket: %s\n", progname, strerror (errno));
sock_err_message ("socket");
return INVALID_SOCKET;
}
@ -873,7 +989,7 @@ set_tcp_socket ()
*/
if (connect (s, (struct sockaddr *) &server, sizeof server) < 0)
{
message (TRUE, "%s: connect: %s\n", progname, strerror (errno));
sock_err_message ("connect");
return INVALID_SOCKET;
}
@ -1066,10 +1182,10 @@ set_local_socket ()
associated with the name. This is reminiscent of the logic
that init_editfns uses to set the global Vuser_full_name. */
char *user_name = (char *) getenv ("LOGNAME");
char *user_name = (char *) egetenv ("LOGNAME");
if (!user_name)
user_name = (char *) getenv ("USER");
user_name = (char *) egetenv ("USER");
if (user_name)
{
@ -1158,7 +1274,7 @@ set_socket ()
/* Explicit --server-file arg or EMACS_SERVER_FILE variable. */
if (!server_file)
server_file = getenv ("EMACS_SERVER_FILE");
server_file = egetenv ("EMACS_SERVER_FILE");
if (server_file)
{
@ -1331,7 +1447,7 @@ main (argc, argv)
if (tty)
{
char *type = getenv ("TERM");
char *type = egetenv ("TERM");
char *tty_name = NULL;
#ifndef WINDOWSNT
tty_name = ttyname (fileno (stdin));

View file

@ -17,6 +17,720 @@
(pr-txt-printer-menu-modified, pr-ps-utility-menu-modified)
(pr-even-or-odd-alist): Vars definition moved.
2007-10-26 Dan Nicolaescu <dann@ics.uci.edu>
* emulation/pc-select.el (next-line-mark, next-line-nomark)
(previous-line-mark, previous-line-nomark): Wrap with-no-warnings
around uses of previous-line and next-line.
* diff.el (diff-old-file, diff-new-file, diff-extra-args): New
defvars.
* textmodes/css-mode.el (comment-continue):
* net/browse-url.el (url-handler-regexp):
* progmodes/idlw-help.el (idlwave-system-routines): Pacify
byte-compiler.
* textmodes/fill.el (fill-nobreak-p): Replace obsolete alias
line-move-invisible-p it's former definition:
invisible-p. line-move-invisible-p was removed on 2007-08-29.
2007-10-26 Juanma Barranquero <lekktu@gmail.com>
* files.el (kill-emacs-query-functions): Doc fix;
`save-buffers-kill-emacs' is no longer bound to a key.
2007-10-26 Richard Stallman <rms@gnu.org>
* isearch-multi.el (isearch-buffers-multi): New option.
(isearch-buffers-search-fun): Test it.
* progmodes/ps-mode.el (ps-mode-map): Delete C-c v binding.
Put ps-run-clear on C-c C-l.
* newcomment.el (comment-styles): New style indent-or-triple.
(comment-style): Make that the default.
(comment-add defvar): Doc fix.
(comment-add): Delete arg EXTRA.
(comment-region-default): Open code call to comment-add.
Handle indent-or-triple style which uses `multi-char' for INDENT.
2007-10-26 Juanma Barranquero <lekktu@gmail.com>
* eshell/em-unix.el (nil-blank-string): Doc fix.
2007-10-26 John Wiegley <johnw@newartisans.com>
* eshell/em-unix.el (eshell/diff): Before calling the `diff'
function, ensure that the third argument is turned into a nil if
the string is otherwise completely empty (either no characters, or
all tabs/spaces). This fixes a bug from a user who found himself
unable to customize `diff-switches' and still use Eshell's diff
command.
2007-10-26 Glenn Morris <rgm@gnu.org>
* emacs-lisp/bytecomp.el (byte-compile-warnings): Autoload the
safe-local-variable property.
2007-10-26 Gwern Branwen <gwern0@gmail.com> (tiny change)
* net/browse-url.el (browse-url-browser-function): Delete grail.
(browse-url-grail): Function and variable deleted.
(browse-url-browser-function): Delete IXI Mosaic.
(browse-url-default-browser): Don't try IXI Mosaic.
(browse-url-iximosaic): Function deleted.
(browse-url-browser-function): Delete MMM.
(browse-url-default-browser): Don't try MMM.
(browse-url-mmm): Function deleted.
2007-10-26 Drew Adams <drew.adams@oracle.com>
* custom.el (custom-note-var-changed): New function.
2007-10-25 Dan Nicolaescu <dann@ics.uci.edu>
* emulation/edt-mapper.el (edt-emacs-variant): Replace the only
use with the definition. Remove.
* add-log.el (change-log-start-entry-re): New defconst.
(change-log-sortable-date-at): Use it.
(change-log-beginning-of-defun, change-log-end-of-defun):
New functions.
(change-log-mode): Use them for beginning-of-defun-function and
end-of-defun-function.
2007-10-25 Jonathan Yavner <jyavner@member.fsf.org>
* ses.el: Make `ses--symbolic-formulas' a safe local variable.
(ses-mode-print-map): Add `c' and `t' (suggested by Gareth Rees).
(ses-recalculate-cell): Deal with point being just beyond end of
data area (why does this happen?)
(ses-set-curcell): Ditto.
(ses-column-letter): Handle columns beyond 702. Code written by
Gareth Rees.
2007-10-25 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el (org-agenda-get-restriction-and-command):
Use `mapc' instead of `mapcar'.
(org-agenda-list): Numeric prefix argument can specify the number
of days.
(remember-register, remember-buffer): Prevent byte compiler from
complaining.
(org-todo): Save and restore match data.
(org-no-warnings): New macro.
(org-columns-eval): Use `org-no-warnings'.
2007-10-25 Chris Moore <christopher.ian.moore@gmail.com>
* comint.el (comint-password-prompt-regexp):
Handle `[sudo] password'-style prompt.
2007-10-25 Glenn Morris <rgm@gnu.org>
* custom.el (custom-declare-variable): Add :risky and :safe keywords.
(defcustom): Doc fix.
* progmodes/f90.el (f90-keywords-re, f90-keywords-level-3-re):
Add `non_intrinsic'.
(f90-constants-re): Add ieee modules.
(f90-typedef-matcher, f90-typedec-matcher)
(f90-imenu-type-matcher): New functions.
(f90-font-lock-keywords-1): Give module procedures function-name face.
Use `f90-typedef-matcher' for derived types. Fix `abstract interface'.
Add `use, intrinsic'.
(f90-font-lock-keywords-2): Use `f90-typedec-matcher' for derived types.
Move start of `enum' blocks to separate entry.
(f90-start-block-re): Fix `type', `abstract interface'.
(f90-imenu-generic-expression): Use `f90-imenu-type-matcher' for
derived types.
(f90-mode-abbrev-table): Add `abstract interface', `asynchronous',
`elemental', change `enumerator'.
(f90-no-block-limit): Fix `abstract interface'.
* progmodes/f90.el (f90-indented-comment-re)
(f90-directive-comment-re, f90-break-delimiters):
* progmodes/fortran.el (fortran-comment-line-start-skip)
(fortran-directive-re):
* textmodes/conf-mode.el (conf-space-keywords): Mark these regexps
as safe if they are strings.
2007-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
* startup.el (window-system): Remove. Don't make it frame-local.
2007-10-24 Richard Stallman <rms@gnu.org>
* savehist.el (savehist-save): Omit unreadable elements.
* loadhist.el (unload-function-defs-list): Renamed from
unload-function-features-list.
(unload-feature-special-hooks, unload-feature): Doc fixes.
* indent.el (indent-to-left-margin): If point's in the indentation,
move to the end of the indentation.
* cus-edit.el (customize-changed-options): Make arg optional.
2007-10-24 Juanma Barranquero <lekktu@gmail.com>
* bs.el (bs-select, bs-select-other-window): Fix typos in docstrings.
2007-10-24 Dan Nicolaescu <dann@ics.uci.edu>
* textmodes/org-publish.el (org-publish-attachment): Re-install
accidentally deleted change.
2007-10-24 Stefan Monnier <monnier@iro.umontreal.ca>
* term/iris-ansi.el (iris-function-map): Move init into declaration.
2007-10-24 Juanma Barranquero <lekktu@gmail.com>
* buff-menu.el (Buffer-menu-sort-column): Doc fix.
(Buffer-menu-mode-map): Initialize in the declaration.
(Buffer-menu-mode): Define with `define-derived-mode'.
2007-10-24 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el (org-version): Change to 5.13e.
(org-agenda-file-regexp): Fix typo in docstring.
(org-add-planning-info): Fix bug in parenthesis settings.
(org-scan-tags): Catch the case of indirect buffers with no filename.
(org-fast-tag-selection, org-export-as-ascii, org-export-as-html):
Re-install switch to mapc, had been removed by accident.
(org-columns-map): New binding `C-c C-o'.
(org-columns-menu): Change menu text and added new entry.
(org-columns-eval): Document the use of `next-line'.
(org-columns-open-link): New function.
(org-columns-follow-link): Remove function.
(org-open-link-from-string): New function.
(org-read-date-get-relative): Fix typo in docstring.
(org-read-date-get-relative): Leading +/- is not optional.
(org-agenda-get-restriction-and-command): Always resize window on
first loop cycle.
(org-agenda-open-link): Make sure the link abbreviations are
present in the agenda buffer.
(org-agenda-copy-local-variable): New function.
2007-10-24 Stefan Monnier <monnier@iro.umontreal.ca>
* vc.el (vc-update-changelog-rcs2log): Remove incorrect `backend' arg.
2007-10-24 Stefan Monnier <monnier@iro.umontreal.ca>
* simple.el (reindent-then-newline-and-indent): Use a `move after
insert' kind of marker in the save-excursion.
2007-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
* textmodes/css-mode.el: Require CL.
(comment-continue): Declare.
* subr.el (make-variable-frame-localizable): Remove.
(make-variable-frame-local): Mark obsolete.
2007-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
* textmodes/tex-mode.el (tex-uptodate-p): Don't signal an error if one
of the subdirs is unreadable.
2007-10-23 Michael Albinus <michael.albinus@gmx.de>
* net/tramp.el (tramp-set-file-uid-gid): Protect `call-process'
when we are local.
2007-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/python.el (python-current-defun): Remove left-over
assignment to `start'.
2007-10-23 Juanma Barranquero <lekktu@gmail.com>
* ibuf-ext.el (ibuffer-auto-update-changed): Use `dolist' rather
than `mapcar'; return value is not used.
2007-10-23 Dan Nicolaescu <dann@ics.uci.edu>
* progmodes/gud.el (gdb-source-window, gud-tooltip-mode)
(hl-line-mode, hl-line-sticky-flag): Pacify byte compiler.
2007-10-23 Juanma Barranquero <lekktu@gmail.com>
* ibuf-ext.el (ibuffer-switch-to-saved-filters)
(ibuffer-switch-to-saved-filter-groups): Doc fixes.
2007-10-23 Dan Nicolaescu <dann@ics.uci.edu>
* term/xterm.el (terminal-init-xterm): Experiment with a longer timeout.
2007-10-23 Katsumi Yamaoka <yamaoka@jpl.org>
* emacs-lisp/advice.el (ad-make-advised-docstring):
Add ad-advice-info text property to doc string.
2007-10-23 Glenn Morris <rgm@gnu.org>
* progmodes/f90.el (f90-do-indent, f90-if-indent)
(f90-type-indent, f90-program-indent, f90-associate-indent)
(f90-continuation-indent, f90-comment-region)
(f90-beginning-ampersand, f90-smart-end)
(f90-break-before-delimiters, f90-auto-keyword-case)
(f90-leave-line-no, f90-mode-hook):
Give an appropriate safe-local-variable property.
* progmodes/fortran.el (fortran-tab-mode-default)
(fortran-tab-mode-string, fortran-do-indent, fortran-if-indent)
(fortran-structure-indent, fortran-continuation-indent)
(fortran-comment-indent, fortran-comment-line-extra-indent)
(fortran-comment-line-start)
(fortran-minimum-statement-indent-fixed)
(fortran-minimum-statement-indent-tab)
(fortran-comment-indent-char, fortran-line-number-indent)
(fortran-check-all-num-for-matching-do)
(fortran-blink-matching-if, fortran-continuation-string)
(fortran-comment-region, fortran-electric-line-number)
(fortran-column-ruler-fixed, fortran-column-ruler-tab)
(fortran-analyze-depth, fortran-break-before-delimiters):
Give an appropriate safe-local-variable property.
2007-10-23 Dan Nicolaescu <dann@ics.uci.edu>
* printing.el: Move variable definitions before use.
(pr-menu-char-width, pr-menu-char-height): Pacify byte compiler.
2007-10-22 Stefan Monnier <monnier@iro.umontreal.ca>
* emulation/tpu-edt.el (tpu-edt-old-global-values): New var.
(tpu-edt-off): Use it.
(tpu-edt-on): Set it. Make sure the tpu-global-map is not already on
the global-map before adding it to global-map.
* menu-bar.el (global-buffers-menu-map): New var.
(global-map, menu-bar-update-buffers): Use it.
* msb.el (msb-menu-bar-update-buffers): Use it.
(msb-sort-by-directory, msb--choose-menu, msb--mode-menu-cond)
(msb--most-recently-used-menu, msb--create-buffer-menu-2):
Use with-current-buffer.
2007-10-22 Juri Linkov <juri@jurta.org>
* isearch-multi.el: New file.
* isearch.el (isearch-search-string): After finding the next
occurrence switch to buffer isearch-buffers-current-buffer when
isearch-buffers-next-buffer-function is non-nil and
isearch-buffers-current-buffer is live.
* add-log.el (change-log-mode): Make and set buffer-local variable
isearch-buffers-next-buffer-function to change-log-next-buffer.
Call isearch-buffers-minor-mode.
(change-log-next-buffer): New function.
2007-10-22 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el (org-read-date-get-relative): New function.
(org-agenda-file-regexp): New variable.
(org-agenda-files): Allow directories in the variable.
(org-agenda-get-restriction-and-command): New function.
(org-agenda): Use `org-agenda-get-restriction-and-command'.
(org-todo-blocker-hook, org-todo-trigger-hook): New hooks.
(org-entry-is-todo-p, org-entry-is-done-p, org-get-todo-state):
New functions.
(org-entry-add-to-multivalued-property)
(org-entry-remove-from-multivalued-property)
(org-entry-member-in-multivalued-property): New functions.
(org-remember-apply-template): Catch C-g and make sure window
configuration is restored.
(org-agenda-open-link): Make it work with several links in the line.
(org-drawers, org-set-regexps-and-options)
(org-get-current-options): Add support for a DRAWERS in-buffer option.
(org-agenda-window-frame-fractions): New option.
(org-fit-agenda-window): Use `org-agenda-window-frame-fractions'.
(org-columns-cleanup-item, org-find-entry-with-id)
(org-insert-columns-dblock, org-listtable-to-string)
(org-dblock-write:columnview, org-columns-capture-view)
(org-edit-headline): New functions.
(org-agenda-to-appt): Require calendar.
(org-entry-get-with-inheritance): Widen for search.
(org-columns-display-here): Don't mark buffer as modified when
adding space characters to accomodate column overlays.
(org-export-as-html): Better formatting of tags in the toc.
(org-columns-display-here): Make the ITEM column as compact as possible.
(org-remember-templates): Customization interface improved.
(org-export-with-property-drawer): Variable removed.
(org-export-with-drawers): New option.
(org-complex-heading-regexp): New variable.
(org-sort-entries): Rewrite using `sort-subr'.
(org-set-property): More appropriate completion during interactive use.
(org-sort-entries): Allow sorting by property.
(org-additional-option-like-keywords): Add more values.
(org-sort-entries-or-items): Rename from `org-sort-entries'.
2007-10-22 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el (org-get-date-from-calendar): New function.
(org-at-timestamp-p, org-timestamp-change)
(org-remember-templates): First element of each entry is now a
name for the template.
(org-store-log-note): Check for `org-note-abort'.
(org-kill-note-or-show-branches): New command.
(org-fontify-priorities): New option.
(org-fontify-priorities): New function.
(org-cut-subtree, org-copy-subtree): New argument N to
act on N sequential subtrees.
(org-paste-subtree): Fix the level at which a tree is pasted.
(org-fit-agenda-window): Limitations on window size removed.
(org-agenda-find-same-or-today-or-agenda): Rename from
`org-agenda-find-today-or-agenda'.
(org-scheduled-past-days): New option.
(org-agenda-scheduled-leaders)
(org-agenda-deadline-leaders): New options.
(org-agenda-get-deadlines): Use `org-agenda-deadline-leaders'.
(org-agenda-get-scheduled): Use `org-agenda-scheduled-leaders'.
(org-export-with-tags, org-export-plist-vars)
(org-infile-export-plist): New "tags" option.
(org-use-property-inheritance): New option.
(org-cached-entry-get): Use `org-use-property-inheritance'.
(org-remember-apply-template): Fix typo.
2007-10-22 Michael Albinus <michael.albinus@gmx.de>
* net/tramp.el (tramp-find-shell)
(tramp-open-connection-setup-interactive-shell): Improve sending
initial commands.
(tramp-action-terminal): Send debug message.
(tramp-wait-for-shell-prompt, tramp-send-command-internal): Remove.
(tramp-barf-if-no-shell-prompt): Insert code of
`tramp-wait-for-shell-prompt'.
2007-10-22 Stefan Monnier <monnier@iro.umontreal.ca>
* term/AT386.el (terminal-init-AT386): Use input-decode-map.
* term/vt200.el (terminal-init-vt200):
* term/vt201.el (terminal-init-vt201):
* term/vt220.el (terminal-init-vt220):
* term/vt240.el (terminal-init-vt240):
* term/vt300.el (terminal-init-vt300):
* term/vt320.el (terminal-init-vt320):
* term/vt400.el (terminal-init-vt400):
* term/vt420.el (terminal-init-vt420): Use input-decode-map.
* term/wyse50.el (wyse50-terminal-map): New var.
(terminal-init-wyse50): Use it and input-decode-map.
(enable-arrow-keys): Emasculate.
* term/tvi970.el (tvi970-terminal-map): New var.
(terminal-init-tvi970): Use it and input-decode-map.
(tvi970-keypad-numeric): Remove.
(tvi970-set-keypad-mode): Use a terminal-parameter rather than var.
* term/sun.el (sun-raw-prefix): Fill as part of declaration.
(terminal-init-sun): Use it and input-decode-map.
* term/news.el (terminal-init-news):
* term/lk201.el (terminal-init-lk201):
* term/iris-ansi.el (terminal-init-iris-ansi): Use input-decode-map.
2007-10-22 Sean O'Rourke <sorourke@cs.ucsd.edu>
* complete.el (PC-expand-many-files): Remove.
(PC-do-completion): Call file-expand-wildcards instead of
PC-expand-many-files.
* net/tramp.el (tramp-handle-expand-many-files): Remove.
(PC-expand-many-files): Remove advice.
2007-10-22 Glenn Morris <rgm@gnu.org>
* progmodes/f90.el: Remove leading "*" from defcustom doc-strings.
Add some support for Fortran 2003 syntax:
(f90-type-indent): Now also applies to `enum'.
(f90-associate-indent): New user option.
(f90-keywords-re, f90-keywords-level-3-re, f90-procedures-re):
Add some F2003 keywords.
(f90-constants-re): New constant.
(f90-font-lock-keywords-1): Add `associate' blocks, and `abstract
Interface'.
(f90-font-lock-keywords-2): Add `enumerator', `generic', `procedure',
`class'. Arguments for `type'/`class' may have spaces. Add a new
element for functions with specified types. Add `end enum' and
`select type'. Add `implicit enumerator' and `procedure'.
Add `class default' and `type is', `class is'. Fix `go to' regexp.
(f90-font-lock-keywords-3): Add `asynchronous' attribute.
(f90-font-lock-keywords-4): Add `f90-constants-re'.
(f90-blocks-re): Add `enum' and `associate'.
(f90-else-like-re): Add `class is', `type is', and `class default'.
(f90-end-type-re): Add `enum'.
(f90-end-associate-re, f90-typeis-re): New constants.
(f90-end-block-re): Add `enum' and `associate'. Change from
optional whitespace to end-of-word, to avoid `enumerator'.
(f90-start-block-re): Add `select type', `abstract interface', and
`enum'. Avoid `type is', and `type (sometype)'.
(f90-mode-abbrev-table): Add `enumerator', `protected', and `volatile'.
(f90-mode): Doc fix.
(f90-looking-at-select-case): Doc fix. Add `select type'.
(f90-looking-at-associate): New function.
(f90-looking-at-type-like): Avoid `type is' and `type (sometype)'.
Add `enum' and `abstract interface'.
(f90-no-block-limit): Add `select type' and `abstract interface'.
(f90-get-correct-indent, f90-calculate-indent)
(f90-end-of-block, f90-beginning-of-block, f90-next-block)
(f90-indent-region, f90-match-end): Handle `associate' blocks.
2007-10-22 Martin Rudalics <rudalics@gmx.at>
* progmodes/fortran.el (fortran-mode-map, fortran-window-create):
Use window-full-width-p.
2007-10-22 Dan Nicolaescu <dann@ics.uci.edu>
* mail/vms-pmail.el (insert-signature): Don't use end-of-buffer.
* tooltip.el: Use featurep 'xemacs.
* printing.el: Move variable definitions before use, no code change.
2007-10-22 Juri Linkov <juri@jurta.org>
* simple.el (goto-history-element): Allow minibuffer-default to be
a list of default values accessible by typing M-n in the minibuffer.
* dired-x.el (dired-guess-shell-command): Put all guesses to the
minibuffer default value list instead of pushing them temporarily
to the history list.
2007-10-21 Dan Nicolaescu <dann@ics.uci.edu>
* hexl.el (hexl-menu): New major mode menu.
2007-10-21 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/byte-opt.el (byte-optimize-featurep): Fix paren typo.
2007-10-21 Dan Nicolaescu <dann@ics.uci.edu>
* w32-fns.el (w32-quote-process-args):
* dos-w32.el (print-region-function, lpr-headers-switches)
(ps-print-region-function): Pacify byte-compiler.
* emulation/edt-mapper.el (function-key-map):
(edt-map-key): Make it a function instead of using fset.
Inline edt-gnu-map-key and edt-lucid-map-key. Use featurep 'xemacs.
(edt-gnu-map-key, edt-lucid-map-key): Remove.
(edt-x-emacs-p): Remove.
(edt-emacs-variant, edt-window-system, edt-xserver):
Use featurep 'xemacs.
* net/eudc.el: Use (featurep 'xemacs) instead of the string test.
Replace eudc-xemacs-p with its definition.
(eudc-xemacs-p, eudc-emacs-p, eudc-xemacs-mule-p)
(eudc-emacs-mule-p): Remove.
(eudc-install-menu, eudc-mode): Replace eudc-emacs-p and
eudc-xemacs-p with feature tests.
* net/eudc-bob.el (eudc-bob-generic-menu, eudc-bob-mail-keymap)
(eudc-bob-url-keymap, eudc-bob-sound-keymap)
(eudc-bob-generic-keymap, eudc-bob-popup-menu)
(eudc-bob-toggle-inline-display):
* net/eudc-hotlist.el (eudc-hotlist-emacs-menu):
Replace eudc-emacs-p and eudc-xemacs-p with feature tests.
* net/eudcb-ph.el (eudc-ph-open-session):
Replace eudc-xemacs-mule-p with its former definition.
* progmodes/octave-mod.el (octave-xemacs-p): Remove.
(octave-abbrev-start): Replace octave-xemacs-p with (featurep 'xemacs).
* progmodes/vera-mode.el (vera-xemacs): Remove.
(vera-mode-syntax-table): Replace vera-xemacs with (featurep 'xemacs).
* progmodes/vhdl-mode.el (vhdl-xemacs): Remove.
(vhdl-doc-mode, vhdl-doc-variable, vhdl-compile-init)
(vhdl-speedbar-initialize, vhdl-ps-print-init)
(vhdl-forward-comment, vhdl-mode-map-init, vhdl-show-messages)
(vhdl-emacs-22, vhdl-emacs-21): Replace vhdl-xemacs
with (featurep 'xemacs).
* progmodes/antlr-mode.el (cond-emacs-xemacs-macfn, defunx)
(save-buffer-state-x):
* obsolete/fast-lock.el (fast-lock-verbose):
* emulation/viper-init.el (viper-xemacs-p)
(viper-cond-compile-for-xemacs-or-emacs):
* emacs-lisp/checkdoc.el (checkdoc-minor-mode-map):
* ps-print.el (case-fold-search):
* ediff-hook.el (ediff-cond-compile-for-xemacs-or-emacs):
* calculator.el (calculator-help): Use featurep 'xemacs.
* progmodes/prolog.el: Undo previous change.
(comint-prompt-regexp, comint-process-echoes): Pacify byte-compiler.
* progmodes/dcl-mode.el:
* play/yow.el:
* calendar/todo-mode.el:
* calendar/cal-hebrew.el:
* vc-hg.el: Undo previous change.
* vms-patch.el: Likewise.
(print-region-function): Pacify byte-compiler.
2007-10-21 Michael Albinus <michael.albinus@gmx.de>
* files.el (backup-buffer-copy): Call `copy-file' with non-nil
preserve-uid-gid.
* net/ange-ftp.el (ange-ftp-copy-file): Add PRESERVE-UID-GID for
compatibility. It is not used, though.
* net/tramp.el (top): Put load of all tramp-* files into a dolist.
Require tramp-cmds.el.
(tramp-make-tramp-temp-file): We can get rid of DONT-CREATE.
(tramp-handle-file-name-all-completions): Expand DIRECTORY.
(tramp-do-copy-or-rename-file-directly): Make more rigid checks.
(tramp-do-copy-or-rename-file-out-of-band)
(tramp-maybe-open-connection): Use `make-temp-name'. This is
possible, because we don't need to create the temporary file, but
we need a prefix for ssh, which has its own temporary file handling.
(tramp-handle-delete-directory): Add "-f" to rmdir.
(tramp-handle-dired-recursive-delete-directory): Call "rm -rf".
(tramp-handle-insert-file-contents): Don't raise a tramp-error but
a signal, in order to give the callee a chance to suppress.
(tramp-handle-write-region): Set owner also in case of short
track. Don't use compatibility calls for `write-region' anymore.
(tramp-clear-passwd): Add parameter VEC. Adapt all callees.
(tramp-append-tramp-buffers): Apply `tramp-list-tramp-buffers'.
* net/tramp-cmds.el: New file.
* net/tramp-gw.el (tramp-gw-basic-authentication): Apply VEC to
`tramp-clear-passwd'.
* net/trampver.el: Update release number.
2007-10-21 Dan Nicolaescu <dann@ics.uci.edu>
* progmodes/gud.el (gud-target-name): Move definition before use.
* progmodes/dcl-mode.el: Require imenu at compile time.
* progmodes/cc-engine.el (c-maybe-stale-found-type):
Pacify byte-compiler.
* obsolete/fast-lock.el: Use featurep test instead of string-match.
* eshell/esh-mode.el (eshell-handle-ansi-color):
Require ansi-color at compile time too.
* eshell/em-unix.el (eshell/info): Require info at compile time too.
* w32-fns.el: Require w32-vars.
* diff-mode.el (diff-refine-hunk): Require smerge-mode at compile
time too.
2007-10-21 Stefan Monnier <monnier@iro.umontreal.ca>
* double.el ([ignore]): Use `ignore'.
(double-setup): Inline into double-mode.
(double-mode): Use define-minor-mode.
2007-10-21 Dan Nicolaescu <dann@ics.uci.edu>
* textmodes/reftex.el: Move require easymenu before first use.
(reftex-info): Require info at compile too.
* textmodes/org-publish.el (org-publish-org-to-html)
(org-publish-org-to): Require org at compile time too.
(org-publish-attachment): Require at compile time too.
* term/tty-colors.el (w32-tty-standard-colors):
Pacify byte-compiler.
* term/pc-win.el (frame-creation-function-alist): Add to this
instead of setting frame-creation-function.
* play/blackbox.el (bb-up, bb-down): Use forward-line.
* net/rcirc.el (rcirc-markup-text-functions): Move definition earlier.
* calendar/todo-mode.el: Require calendar at compile time.
* calendar/cal-hebrew.el: Require holidays at compile time.
* w32-vars.el: Provide w32-vars.
* term/w32-win.el: Require w32-vars.
(w32-color-map): Pacify byte-compiler.
* loadup.el: Load w32-vars before term/w32-win.
2007-10-20 Juri Linkov <juri@jurta.org>
* textmodes/fill.el (fill-paragraph): When the region is active,
don't try other `or' branches regardless of the value returned by
fill-region; just return t.
2007-10-20 Eric S. Raymond <esr@snark.thyrsus.com>
* vc.el (vc-do-command): Condition out a misleading message when
running asynchronously.
(vc-deduce-fileset): New argument enables using an unregistered
visited file as a singleton fileset if nothing else is available.
(vc-next-action): Restore file-registering behavior.
2007-10-20 Jay Belanger <jay.p.belanger@gmail.com>
* calc/README: Add recent news.
2007-10-20 Dan Nicolaescu <dann@ics.uci.edu>
* term/x-win.el (x-gtk-stock-map, icon-map-list)
(x-gtk-map-stock): Delete duplicated definitions from merge.
* progmodes/compile.el (compilation-skip-to-next-location)
(compilation-skip-threshold, compilation-skip-visited):
Move definitions earlier.
* play/decipher.el (decipher-keypress):
* play/zone.el (zone-fall-through-ws):
* play/landmark.el (lm-move-down, lm-move-up):
* play/handwrite.el (handwrite):
* mail/mspools.el (mspools-visit-spool):
* wdired.el (wdired-next-line, wdired-previous-line):
* tar-mode.el (tar-subfile-save-buffer):
* scroll-lock.el (scroll-lock-next-line)
(scroll-lock-previous-line):
* image-dired.el (image-dired-next-line)
(image-dired-previous-line):
* ediff-help.el (ediff-help-message-line-length):
Use forward-line.
* smerge-mode.el (smerge-auto-refine):
* diff-mode.el (diff-auto-refine): Add :group.
* play/yow.el: Require doctor at compile time.
* vmsproc.el: Provide vmsproc.
(command-send-input): Use forward-line.
* vms-patch.el: Require ps-print and vmsproc at compile time.
* vc-mtn.el (log-view-message-re, log-view-file-re)
(log-view-font-lock-keywords): Pacify byte-compiler.
* vc-hg.el: Require log-view at compile time.
2007-10-20 Eric S. Raymond <esr@snark.thyrsus.com>
* log-view.el (log-view-diff): Adapt log-view-diff for new VC API.
2007-10-20 Glenn Morris <rgm@gnu.org>
* progmodes/f90.el (f90-font-lock-keywords-2)
(f90-looking-at-type-like): Fix regexp typos.
2007-10-19 Juanma Barranquero <lekktu@gmail.com>
* bs.el (bs--track-window-changes): Don't refresh the whole list.
@ -417,7 +1131,6 @@
* emacs-lisp/advice.el (documentation): Advice deleted.
Doc for advised functions is now handled at C level.
This is now handled at C level.
(ad-stop-advice, ad-start-advice): Don't enable or disable
advice for `documentation'.
(ad-advised-definition-docstring-regexp): Var deleted.
@ -533,15 +1246,13 @@
* net/eudc-hotlist.el (eudc-edit-hotlist):
* net/eudc.el (eudc-display-records)
(eudc-filter-duplicate-attributes)
(eudc-distribute-field-on-records, eudc-query-form)
(eudc-process-form):
(eudc-distribute-field-on-records, eudc-query-form, eudc-process-form):
* net/eudcb-bbdb.el (eudc-bbdb-filter-non-matching-record)
(eudc-bbdb-query-internal):
* net/eudcb-ldap.el (eudc-ldap-simple-query-internal):
* net/socks.el (socks-build-auth-list):
* progmodes/cc-cmds.el (top level):
* progmodes/cc-styles.el (c-make-styles-buffer-local)
(c-set-style):
* progmodes/cc-styles.el (c-make-styles-buffer-local, c-set-style):
* progmodes/cperl-mode.el (top level, cperl-imenu-addback)
(cperl-write-tags, cperl-tags-treeify):
* progmodes/ebnf-yac.el (ebnf-yac-token-table):
@ -630,8 +1341,8 @@
* vc.el (vc-diff):
(vc-diff-internal): Merge a patch by Juanma Barranquero. Also,
emporarily disable the check for his edge case of
vc-diff (stopping it from grinding when callerd from $HOME), as
temporarily disable the check for his edge case of
vc-diff (stopping it from grinding when called from $HOME), as
it's calling some brittle code in vc-hooks.el.
(with-vc-properties): Fix evaluation time of a macro argument.
* ediff-vers.el (ediff-vc-internal):
@ -643,12 +1354,10 @@
* follow.el (follow-stop-intercept-process-output):
Use `follow-call-process-filter' rather than `process-filter'.
Simplify.
* vc.el (vc0iff): Prevent errors in an edge case.
2007-10-11 Eric S. Raymond <esr@snark.thyrsus.com>
* vc.el: Address an edge case in vc-diff pointed out by
Juanma Barranquero. This is an experimental fix and may change.
* vc-hooks.el (vc-registered): Robustify this function a bit
against filenames with no directory component.
@ -668,15 +1377,14 @@
2007-10-10 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-additional-option-like-keywords): New constant.
* textmodes/org.el (org-additional-option-like-keywords): New constant.
(org-complete): Use `org-additional-option-like-keywords'.
(org-parse-local-options): New function.
2007-10-10 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-in-clocktable-p): New function.
(org-clock-report): Only update the table at point, or insert a
new one.
* textmodes/org.el (org-in-clocktable-p): New function.
(org-clock-report): Only update the table at point, or insert a new one.
(org-clock-goto): New function.
(org-open-file): Use `start-process-shell-command' instead of
`shell-command' with an ampersand.
@ -717,11 +1425,9 @@
(org-remember-apply-template): Respect the dynamically scoped
selection character.
* org.texi (Appointment reminders): New section.
2007-10-10 Bastien Guerry <Bastien.Guerry@ens.fr>
* org-export-latex.el (org-export-latex-protect-string):
* textmodes/org-export-latex.el (org-export-latex-protect-string):
Renaming of `org-latex-protect'.
(org-export-latex-emphasis-alist): By default, don't protect
any emphasis formatter from further conversion.
@ -1486,7 +2192,8 @@
2007-09-26 Bastien Guerry <bzg@altern.org>
* org-export-latex.el (org-export-latex-tables-verbatim): New function.
* textmodes/org-export-latex.el (org-export-latex-tables-verbatim):
New function.
(org-export-latex-remove-from-headlines): Name changed because of typo.
(org-export-latex-quotation-marks-convention): Option removed.
(org-export-latex-make-preamble): Handle the DATE option.
@ -1497,7 +2204,7 @@
2007-09-26 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-kill-is-subtree-p): Use `org-outline-regexp'.
* textmodes/org.el (org-kill-is-subtree-p): Use `org-outline-regexp'.
(org-outline-regexp): New constant.
(org-remember-handler): Throw error when the target file is not in
org-mode.
@ -1848,8 +2555,8 @@
Handle escaped parens.
(latex-forward-sexp): Doc fix.
* eshell/esh-mode.el (eshell-output-filter-functions): Add
eshell-postoutput-scroll-to-bottom.
* eshell/esh-mode.el (eshell-output-filter-functions):
Add eshell-postoutput-scroll-to-bottom.
* loadup.el: Remove termdev.
@ -2068,7 +2775,7 @@
2007-09-16 Drew Adams <drew.adams@oracle.com>
* cus-edit (custom-face-edit-activate): Doc fix.
* cus-edit.el (custom-face-edit-activate): Doc fix.
2007-09-16 Glenn Morris <rgm@gnu.org>
@ -2820,7 +3527,7 @@
* env.el (getenv): Pass frame to getenv-internal.
2007-08-29 Karoly Lorentey <lorentey@elte.hu>
2007-08-29 K,Aa(Broly L$,1 q(Brentey <lorentey@elte.hu>
* version.el (emacs-version): Show if multi-tty is present.
@ -2832,7 +3539,7 @@
* cus-start.el: Remove bogus window-system reference from GTK test.
* ebrowse.el (ebrowse-electric-list-mode-map)
* progmodes/ebrowse.el (ebrowse-electric-list-mode-map)
(ebrowse-electric-position-mode-map):
* ebuff-menu.el (electric-buffer-menu-mode-map):
* echistory.el (electric-history-map): Bind C-z to `suspend-frame',
@ -3619,14 +4326,14 @@
2007-08-19 Michael Kifer <kifer@cs.stonybrook.edu>
* viper.el (viper-remove-hooks): Remove some additional viper hooks
when the user calls viper-go-away.
* emulation/viper.el (viper-remove-hooks): Remove some additional
viper hooks when the user calls viper-go-away.
(viper-go-away): Restore the default of default-major-mode.
Save the value of default-major-mode before vaperization.
* viper-cmd.el: Replace error "" with "Viper bell".
* emulation/viper-cmd.el: Replace error "" with "Viper bell".
* viper-ex.el: Replace error "" with "Viper bell".
* emulation/viper-ex.el: Replace error "" with "Viper bell".
* ediff-util.el (ediff-make-temp-file): Use the coding system of the
buffer for which file is created.
@ -3722,7 +4429,7 @@
2007-08-17 Bob Rogers <rogers-emacs@rgrjr.dyndns.org> (tiny change)
* progmode/cperl-mode.el (cperl-look-at-leading-count)
* progmodes/cperl-mode.el (cperl-look-at-leading-count)
(cperl-find-pods-heres): Fix an error when typing expressions like
`s{a}{b}'.
@ -5926,8 +6633,8 @@
(org-column-menu): New menu.
(org-new-column-overlay, org-overlay-columns)
(org-overlay-columns-title, org-remove-column-overlays)
(org-column-show-value, org-column-quit, org-column-edit): New
functions.
(org-column-show-value, org-column-quit, org-column-edit):
New functions.
(org-columns, org-agenda-columns): New commands.
(org-get-columns-autowidth-alist): New functions.
(org-properties): New customize group.
@ -6311,7 +7018,7 @@
2007-06-21 Stefan Monnier <monnier@iro.umontreal.ca>
* vera-mode.el (vera-mode): Fix `commend-end-skip' setting.
* progmodes/vera-mode.el (vera-mode): Fix `commend-end-skip' setting.
(vera-font-lock-match-item): Fix doc string.
(vera-in-comment-p): Remove unused function.
(vera-skip-forward-literal, vera-skip-backward-literal): Improve code,
@ -6403,7 +7110,7 @@
(vc-bzr-dir-state): Replace its use with vc-bzr-command.
(vc-bzr-buffer-nonblank-p): New function.
(vc-bzr-state-words): New const.
(vc-bzr-state): Look for `bzr status` keywords in output.
(vc-bzr-state): Look for `bzr status' keywords in output.
Display everything else as a warning message to the user.
Fix status report with bzr >= 0.15.
@ -6540,8 +7247,9 @@
2007-06-14 Michael Kifer <kifer@cs.stonybrook.edu>
* viper.el (viper-describe-key-ad, viper-describe-key-briefly-ad):
Different advices for Emacs and XEmacs. Compile them conditionally.
* emulation/viper.el (viper-describe-key-ad)
(viper-describe-key-briefly-ad): Different advices for Emacs and XEmacs.
Compile them conditionally.
(viper-version): Belated version change.
2007-06-14 Juanma Barranquero <lekktu@gmail.com>
@ -6556,7 +7264,7 @@
2007-06-13 Ryan Yeske <rcyeske@gmail.com>
* rcirc.el (rcirc-format-response-string): Use rcirc-nick-syntax
* net/rcirc.el (rcirc-format-response-string): Use rcirc-nick-syntax
around bright and dim regexps. Make sure bright and dim matches
use word anchors. Send text through rcirc-markup functions.
(rcirc-url-regexp): Add single quote character.
@ -6631,7 +7339,7 @@
* progmodes/sh-script.el: Remove unneeded * from docstrings.
Use [:alpha:] and [:alnum:] where applicable.
(sh-quoted-subshell): Rewrite to correctly
handle nested mixes of `...` and $(...).
handle nested mixes of `...' and $(...).
(sh-apply-quoted-subshell): Remove.
(sh-font-lock-syntactic-keywords): Adjust call to sh-quoted-subshell.
@ -6894,15 +7602,14 @@
2007-06-06 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el
(org-export-region-as-html, org-replace-region-by-html)
(org-number-to-letters, org-table-fedit-finish)
(org-normalize-color, org-table-fedit-ref-right)
(org-date-to-gregorian, org-table-fedit-move)
(org-table-convert-refs-to-rc, org-calendar-holiday)
(org-table-fedit-toggle-ref-type, org-write-agenda)
(org-colgroup-info-to-vline-list, org-agenda-todo-previousset)
(org-defkey, org-encode-for-stdout)
* textmodes/org.el (org-export-region-as-html)
(org-replace-region-by-html, org-number-to-letters)
(org-table-fedit-finish, org-normalize-color)
(org-table-fedit-ref-right, org-date-to-gregorian)
(org-table-fedit-move, org-table-convert-refs-to-rc)
(org-calendar-holiday, org-table-fedit-toggle-ref-type)
(org-write-agenda, org-colgroup-info-to-vline-list)
(org-agenda-todo-previousset, org-defkey, org-encode-for-stdout)
(org-indent-line-function, org-export-as-html-to-buffer)
(org-store-agenda-views, org-update-mode-line)
(org-find-if, org-delete-all)

View file

@ -669,7 +669,7 @@
2007-03-31 Markus Triska <markus.triska@gmx.at>
* flymake.el (flymake-err-line-patterns): Doc fix.
* progmodes/flymake.el (flymake-err-line-patterns): Doc fix.
2007-03-30 Reiner Steib <Reiner.Steib@gmx.de>
@ -2005,7 +2005,7 @@
2007-02-07 Vinicius Jose Latorre <viniciusjl@ig.com.br>
* ps-print.ps: The ps-print commands without face printing should not
* ps-print.el: The ps-print commands without face printing should not
print background color. Reported by Leo <sdl.web@gmail.com>.
(ps-print-version): New version 6.7.3.
(ps-begin-job): New arg. Fix ps-default-background and
@ -2109,7 +2109,7 @@
2007-02-02 Ulf Jasper <ulf.jasper@web.de>
* newsticker.el (newsticker-version): Changed to "1.10".
* net/newsticker.el (newsticker-version): Changed to "1.10".
(newsticker--set-customvar): Doc string.
(newsticker-new-item-face): Doc string.
(newsticker-mode): Initialize `invisibility-spec' with t.
@ -2423,7 +2423,8 @@
2007-01-23 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-keym.el (viper-insert-basic-map): Delete binding for S-TAB.
* emulation/viper-keym.el (viper-insert-basic-map):
Delete binding for S-TAB.
* ediff-util.el (ediff-clone-buffer-for-region-comparison): Change text
of message. Activate mark.
@ -2536,7 +2537,7 @@
2007-01-20 Alin C. Soare <alinsoar@voila.fr> (tiny change)
* lisp/emacs-lisp/lisp-mode.el (last-sexp-toggle-display):
* emacs-lisp/lisp-mode.el (last-sexp-toggle-display):
Fixed cursor position when toggle abbreviated display.
2007-01-20 Nick Roberts <nickrob@snap.net.nz>
@ -2783,7 +2784,7 @@
2007-01-03 Alan Mackenzie <acm@muc.de>
* progmode/cc-cmds.el (c-mask-paragraph): Fix yesterday's buggy patch.
* progmodes/cc-cmds.el (c-mask-paragraph): Fix yesterday's buggy patch.
2007-01-03 Chris Moore <christopher.ian.moore@gmail.com>
@ -3126,8 +3127,8 @@
* ediff-diff.el (ediff-diff-options): Clarify docstring.
(ediff-setup-diff-regions): Disallow -u in ediff-diff-options.
* viper-cmd.el (viper-post-command-sentinel): Protect against errors
in hooks.
* emulation/viper-cmd.el (viper-post-command-sentinel):
Protect against errors in hooks.
(viper-add-newline-at-eob-if-necessary): Add newline only if we
actually modify buffer; ignore errors if occur.
@ -4941,8 +4942,8 @@
* help-fns.el (help-with-tutorial): Move to tutorial.el.
* tutorial.el: New file.
(help-with-tutorial): Move here from help-fns.el. Added help for
rebound keys. Fixed resume of tutorial.
(help-with-tutorial): Move here from help-fns.el. Add help for
rebound keys. Fix resume of tutorial.
(tutorial--describe-nonstandard-key, tutorial--sort-keys)
(tutorial--find-changed-keys, tutorial--display-changes)
(tutorial--saved-dir, tutorial--saved-file)
@ -5029,9 +5030,9 @@
2006-10-23 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-cmd.el (viper-prefix-arg-com): Define gg as G0.
* emulation/viper-cmd.el (viper-prefix-arg-com): Define gg as G0.
* viper-ex.el (ex-read): Quote file argument.
* emulation/viper-ex.el (ex-read): Quote file argument.
* ediff-diff.el (ediff-same-file-contents): Expand file names.
@ -5880,7 +5881,7 @@
2006-09-26 Vinicius Jose Latorre <viniciusjl@ig.com.br>
* progmode/ebnf2ps.el: Doc fix. Implement arrow spacing and scaling.
* progmodes/ebnf2ps.el: Doc fix. Implement arrow spacing and scaling.
(ebnf-version): New version 4.3.
(ebnf-arrow-extra-width, ebnf-arrow-scale): New options.
(ebnf-prologue): Adjust PostScript programming.
@ -6100,11 +6101,11 @@
2006-09-18 Michael Kifer <kifer@cs.stonybrook.edu>
* viper.el: Bump up version/date of update to reflect the substantial
changes done in August 2006.
* emulation/viper.el: Bump up version/date of update to reflect the
substantial changes done in August 2006.
* viper-cmd (viper-next-line-at-bol): Make sure button-at, push-button
are defined.
* emulation/viper-cmd (viper-next-line-at-bol): Make sure button-at,
push-button are defined.
* ediff-util.el (ediff-add-to-history): New function.
@ -6822,7 +6823,7 @@
2006-09-02 Ryan Yeske <rcyeske@gmail.com>
* rcirc.el (rcirc-keywords): New variable.
* net/rcirc.el (rcirc-keywords): New variable.
(rcirc-bright-nicks, rcirc-dim-nicks): New variables.
(rcirc-bright-nick-regexp, rcirc-dim-nick-regexp): Remove
variables.
@ -6893,8 +6894,8 @@
2006-08-30 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-cmd.el (viper-special-read-and-insert-char): Convert events to
chars if XEmacs.
* emulation/viper-cmd.el (viper-special-read-and-insert-char):
Convert events to chars if XEmacs.
(viper-after-change-undo-hook): Check if undo-in-progress is bound.
2006-08-30 Stefan Monnier <monnier@iro.umontreal.ca>
@ -7011,25 +7012,26 @@
2006-08-25 Michael Kifer <kifer@cs.stonybrook.edu>
* viper.el (viper-set-hooks): Use frame bindings for
* emulation/viper.el (viper-set-hooks): Use frame bindings for
viper-vi-state-cursor-color.
(viper-non-hook-settings): Don't set default
mode-line-buffer-identification.
* viper-util.el (viper-set-cursor-color-according-to-state): New fun.
* emulation/viper-util.el (viper-set-cursor-color-according-to-state):
New fun.
(viper-set-cursor-color-according-to-state)
(viper-get-saved-cursor-color-in-replace-mode)
(viper-get-saved-cursor-color-in-insert-mode): Make conditional on
viper-emacs-state-cursor-color.
* viper-cmd.el (viper-envelop-ESC-key): Bug fix.
* emulation/viper-cmd.el (viper-envelop-ESC-key): Bug fix.
(viper-undo): Use point if undo-beg-posn is nil.
(viper-insert-state-post-command-sentinel, viper-change-state-to-emacs)
(viper-after-change-undo-hook): Don't use
viper-emacs-state-cursor-color by default.
(viper-undo): More sensible positioning after undo.
* viper-ex.el (ex-splice-args-in-1-letr-cmd): Get rid of caddr.
* emulation/viper-ex.el (ex-splice-args-in-1-letr-cmd): Get rid of caddr.
(viper-emacs-state-cursor-color): Default to nil, since this feature
doesn't work well yet.
@ -7844,9 +7846,9 @@
2006-07-20 Jay Belanger <belanger@truman.edu>
* calc.el (calc-previous-alg-entry): Remove variable.
* calc/calc.el (calc-previous-alg-entry): Remove variable.
* calc-aent.el (calc-alg-entry-history, calc-quick-calc-history):
* calc/calc-aent.el (calc-alg-entry-history, calc-quick-calc-history):
New variables.
(calc-alg-entry): Use `calc-alg-entry-history'.
(calc-do-quick-calc): Use `calc-quick-calc-history'.
@ -7859,17 +7861,17 @@
Change keybinding for `calcAlg-plus-minus', add keybindings for
`previous-history-element' and `next-history-element'.
* calc-rewr.el (calc-match): Remove reference to
* calc/calc-rewr.el (calc-match): Remove reference to
`calc-previous-alg-entry'.
* calc-sel.el (calc-selection-history): New variable.
* calc/calc-sel.el (calc-selection-history): New variable.
(calc-enter-selection, calc-sel-mult-both-sides)
(calc-sel-add-both-sides): Use `calc-selection-history'.
* calc-map.el (calc-get-operator-history): New variable.
* calc/calc-map.el (calc-get-operator-history): New variable.
(calc-get-operator): Use `calc-get-operator-history'.
* calcalg3.el (calc-curve-fit-history): New variable.
* calc/calcalg3.el (calc-curve-fit-history): New variable.
(calc-curve-fit): Use `calc-curve-fit-history'.
2006-07-20 Kenichi Handa <handa@m17n.org>
@ -8643,7 +8645,7 @@
2006-06-18 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-cmd.el (viper-special-read-and-insert-char):
* emulation/viper-cmd.el (viper-special-read-and-insert-char):
Use read-key-sequence.
(viper-after-change-undo-hook): Misc enhancements.
(viper-after-change-undo-hook): New hook.
@ -8652,9 +8654,10 @@
(viper-next-line-at-bol): If point is on a widget or a button, simulate
clicking on that widget/button.
* viper.el (viper-mode): Allow a separate cursor color in Emacs state.
* emulation/viper.el (viper-mode): Allow a separate cursor color
in Emacs state.
* ediff-diff (ediff-test-patch-utility): Catch errors.
* ediff-diff.el (ediff-test-patch-utility): Catch errors.
(ediff-actual-diff-options, ediff-actual-diff3-options): New variables.
(ediff-set-actual-diff-options): New function.
(ediff-reset-diff-options, ediff-toggle-ignore-case):
@ -10378,7 +10381,7 @@
2006-04-27 Jay Belanger <belanger@truman.edu>
* calc-embed.el (calc-embedded-make-info): Use `math-read-expr' to
* calc/calc-embed.el (calc-embedded-make-info): Use `math-read-expr' to
read expression when `math-read-big-expr' doesn't work.
2006-04-27 Reiner Steib <Reiner.Steib@gmx.de>
@ -11004,7 +11007,7 @@
2006-04-08 Ryan Yeske <rcyeske@gmail.com>
* rcirc.el (rcirc-default-server): Rename from rcirc-server.
* net/rcirc.el (rcirc-default-server): Rename from rcirc-server.
(rcirc-default-port): Rename from rcirc-port.
(rcirc-default-nick): Rename from rcirc-nick.
(rcirc-default-user-name): Rename from rcirc-user-name.
@ -11829,8 +11832,8 @@
2006-03-11 David Ponce <david@dponce.com>
* ispell.el (ispell-find-aspell-dictionaries): Add aliases before
merging elements from the standard ispell-dictionary-alist.
* textmodes/ispell.el (ispell-find-aspell-dictionaries): Add aliases
before merging elements from the standard ispell-dictionary-alist.
(ispell-aspell-add-aliases): Add aliases to the passed dictionary
alist, and return the new alist.
@ -12266,7 +12269,7 @@
(c-after-change): Protect the match data with save-match-data.
It was getting corrupted by c-after-change-check-<>-operators.
* cc-defs.el: [Supersedes patch V1.38]:
* progmodes/cc-defs.el: [Supersedes patch V1.38]:
(top level): Check for a buggy font-lock-compile-keywords ONLY in
XEmacs. GNU Emacs 22 now has a check which would throw an error here.
@ -12541,19 +12544,20 @@
2006-02-19 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-cmd.el (viper-insert-state-post-command-sentinel)
* emulation/viper-cmd.el (viper-insert-state-post-command-sentinel)
(viper-change-state-to-vi, viper-change-state-to-emacs):
Make aware of cursor coloring in the Emacs state.
(viper-special-read-and-insert-char): Use read-char-exclusive.
(viper-minibuffer-trim-tail): Workaround for fields in minibuffer.
* viper-init.el (viper-emacs-state-cursor-color): New variable.
* emulation/viper-init.el (viper-emacs-state-cursor-color):
New variable.
* viper-util.el (viper-save-cursor-color)
* emulation/viper-util.el (viper-save-cursor-color)
(viper-get-saved-cursor-color-in-replace-mode)
(viper-get-saved-cursor-color-in-insert-mode)
(viper-restore-cursor-color): Make aware of the cursor color in Emacs
state.
(viper-restore-cursor-color): Make aware of the cursor color
in Emacs state.
(viper-get-saved-cursor-color-in-emacs-mode): New function.
* ediff-diff.el (ediff-ignore-case, ediff-ignore-case-option)
@ -15599,7 +15603,7 @@
2005-12-10 John W. Eaton <jwe@octave.org>
* emacs/octave-mod.el (octave-electric-space): Don't indent
* progmodes/octave-mod.el (octave-electric-space): Don't indent
comments or strings if octave-auto-indent is nil.
2005-12-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
@ -15749,7 +15753,7 @@
* progmodes/cc-fix.el: Add definitions of the macros push and pop
(for GNU Emacs 20.4).
* progmodes/cc-defs.el:
* progmodes/cc-defs.el
(i): Load cc-fix.elc for `push' and `pop' (for GNU Emacs 20.4).
* progmodes/cc-cmds.el (c-show-syntactic-information): Change the
@ -17594,13 +17598,13 @@
2005-11-25 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-keym.el (viper-ESC-key): Use different values in terminal and
window modes.
* emulation/viper-keym.el (viper-ESC-key): Use different values
in terminal and window modes.
* viper.el (viper-emacs-state-mode-list): Delete mail-mode, add
jde-javadoc-checker-report-mode.
* emulation/viper.el (viper-emacs-state-mode-list): Delete mail-mode,
add jde-javadoc-checker-report-mode.
* ediff-wind (ediff-make-wide-display): Slight simplification.
* ediff-wind.el (ediff-make-wide-display): Slight simplification.
* ediff.el (ediff-date): Change the date of last update.
@ -18110,10 +18114,10 @@
2005-11-15 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-utils.el (viper-non-word-characters-reformed-vi):
* emulation/viper-utils.el (viper-non-word-characters-reformed-vi):
Quote `-' in string.
* viper.el (viper-emacs-state-mode-list): Ensure that
* emulation/viper.el (viper-emacs-state-mode-list): Ensure that
rcirc-mode buffers come up in Emacs state.
* ediff-util.el (ediff-make-temp-file): Use proper file-name-handler
@ -18183,20 +18187,20 @@
2005-11-14 Jay Belanger <belanger@truman.edu>
* calc-alg.el (calcFunc-write-out-power): Rename it to
* calc/calc-alg.el (calcFunc-write-out-power): Rename it to
calcFunc-powerexpand.
(math-write-out-power): Rename it to math-powerexpand; have it
handle negative exponents.
(calc-writeoutpower): Rename it to calc-powerexpand.
* calc-ext.el: Change calcFunc-writeoutpower and
* calc/calc-ext.el: Change calcFunc-writeoutpower and
calc-writeoutpower to calcFunc-powerexpand and calc-powerexpand in
autoloads.
Add calcFunc-ldiv to autoloads.
* calc-arith.el (calcFunc-ldiv): New function.
* calc/calc-arith.el (calcFunc-ldiv): New function.
* calc.el (calc-left-divide): New function.
* calc/calc.el (calc-left-divide): New function.
2005-11-14 Juri Linkov <juri@jurta.org>
@ -18565,7 +18569,7 @@
2005-11-04 Ulf Jasper <ulf.jasper@web.de>
* newsticker.el: Commentary updated. Code formatting changed.
* net/newsticker.el: Commentary updated. Code formatting changed.
(newsticker-version): Change to "1.9".
(newsticker, newsticker-feed): Doc fix.
(newsticker-url-list): Doc fix. Add option "Weekly".
@ -18778,8 +18782,8 @@
2005-11-04 Michael Kifer <kifer@cs.stonybrook.edu>
* ediff-merge.el (ediff-merge-region-is-non-clash): Return t, if not
merging.
* ediff-merg.el (ediff-merge-region-is-non-clash):
Return t, if not merging.
* ediff-util.el (ediff-previous-difference): Don't skip regions that
have merge clashes.
@ -20785,17 +20789,19 @@
* ediff-wind.el (ediff-setup-control-frame)
(ediff-destroy-control-frame): Check the menubar feature.
* viper-cmd.el (viper-normalize-minor-mode-map-alist)
* emulation/viper-cmd.el (viper-normalize-minor-mode-map-alist)
(viper-refresh-mode-line): Use make-local-variable to localize
some vars instead of make-variable-buffer-local. Suggested by
Stefan Monnier.
* viper-init.el (viper-make-variable-buffer-local): Delete alias.
* emulation/viper-init.el (viper-make-variable-buffer-local):
Delete alias.
(viper-restore-cursor-type, viper-set-insert-cursor-type):
Use make-local-variable instead of make-variable-buffer-local.
Suggested by Stefan Monnier.
* viper.el (viper-mode): Don't use viper-make-variable-buffer-local.
* emulation/viper.el (viper-mode): Don't use
viper-make-variable-buffer-local.
(viper-comint-mode-hook): Use make-local-variable on
require-final-newline.
(viper-non-hook-settings): Don't use make-variable-buffer-local.
@ -21798,8 +21804,8 @@
2005-09-10 Alan Mackenzie <acm@muc.de>
* page.el (narrow-to-page): Exclude _entire_ multi-line delimiter
from the region narrowed to.
* textmodes/page.el (narrow-to-page): Exclude _entire_ multi-line
delimiter from the region narrowed to.
2005-09-10 Magnus Henoch <mange@freemail.hu>
@ -23232,23 +23238,23 @@
2005-08-06 Michael Kifer <kifer@cs.stonybrook.edu>
* viper.el (viper-emacs-state-mode-list): Add recentf-dialog-mode.
Change the date of last update.
* emulation/viper.el (viper-emacs-state-mode-list):
Add recentf-dialog-mode. Change the date of last update.
2005-08-06 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-cmd.el (viper-harness-minor-mode, viper-exec-delete)
* emulation/viper-cmd.el (viper-harness-minor-mode, viper-exec-delete)
(viper-exec-yank, viper-put-back): Don't display modification msg
if in the minibuffer.
* viper-init.el (viper-replace-overlay-cursor-color)
* emulation/viper-init.el (viper-replace-overlay-cursor-color)
(viper-insert-state-cursor-color, viper-vi-state-cursor-color):
Make variables frame local.
* viper-util.el (viper-append-filter-alist): Use append instead of
nconc.
* emulation/viper-util.el (viper-append-filter-alist):
Use append instead of nconc.
* viper.el (viper-vi-state-mode-list)
* emulation/viper.el (viper-vi-state-mode-list)
(viper-emacs-state-mode-list): Move help-mode and
completion-list-mode from the first list to the second.
(viper-mode): Docstring.
@ -23912,7 +23918,7 @@
2005-07-19 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-cmd.el (viper-escape-to-state): Bug fix.
* emulation/viper-cmd.el (viper-escape-to-state): Bug fix.
(viper-envelop-ESC-key): Change the definition of fast
keysequence so it'll work with keyboard macros.
@ -23993,8 +23999,7 @@
2005-07-16 Jose E. Marchesi <jemarch@gnu.org>
* lisp/mail/smtpmail.el (smtpmail-auth-supported):
Add plain auth method.
* mail/smtpmail.el (smtpmail-auth-supported): Add plain auth method.
(smtpmail-try-auth-methods): Add AUTH PLAIN dialog.
2005-07-17 Kim F. Storm <storm@cua.dk>
@ -24357,26 +24362,26 @@
2005-07-10 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-cmd.el (viper--key-maps): New variable.
* emulation/viper-cmd.el (viper--key-maps): New variable.
(viper-normalize-minor-mode-map-alist): Use viper--key-maps and
emulation-mode-map-alists.
(viper-envelop-ESC-key): Use viper-subseq.
(viper-search-forward/backward/next): Disable debug-on-error.
* viper-keym.el (viper-toggle-key, viper-quoted-insert-key)
* emulation/viper-keym.el (viper-toggle-key, viper-quoted-insert-key)
(viper-ESC-key): New defcustoms.
* viper-macs.el (ex-map-read-args): Use viper-subseq.
* emulation/viper-macs.el (ex-map-read-args): Use viper-subseq.
* viper-util.el (viper-key-to-emacs-key): Use viper-subseq.
* emulation/viper-util.el (viper-key-to-emacs-key): Use viper-subseq.
(viper-subseq): Copy of subseq from cl.el.
* viper.el (viper-go-away, viper-set-hooks): Use
* emulation/viper.el (viper-go-away, viper-set-hooks): Use
emulation-mode-map-alists, advise self-insert-command, add-minor-mode.
* viper-mous.el (viper-current-frame-saved): Use defvar.
* emulation/viper-mous.el (viper-current-frame-saved): Use defvar.
* viper-init.el: Get rid of -face in face names.
* emulation/viper-init.el: Get rid of -face in face names.
* ediff-diff.el (ediff-extract-diffs, ediff-extract-diffs3):
Make it work with longlines mode.
@ -26090,7 +26095,7 @@
2005-06-11 Alan Mackenzie <acm@muc.de>
* fill.el (fill-context-prefix): Try `adaptive-fill-function'
* textmodes/fill.el (fill-context-prefix): Try `adaptive-fill-function'
BEFORE `adaptive-fill-regexp' when determining a fill prefix.
(adaptive-file-function): Minor amendment to doc-string.
@ -26775,13 +26780,13 @@
2005-06-04 David Reitter <david.reitter@gmail.com> (tiny change)
* url-http.el (url-http-chunked-encoding-after-change-function):
* url/url-http.el (url-http-chunked-encoding-after-change-function):
Use `url-http-debug' instead of `message'.
2005-06-04 Thierry Emery <thierry.emery@free.fr> (tiny change)
* url-http.el (url-http-parse-headers): Pass redirected URL as a
callback argument.
* url/url-http.el (url-http-parse-headers): Pass redirected URL
as a callback argument.
2005-06-04 Kim F. Storm <storm@cua.dk>
@ -26835,10 +26840,11 @@
* ediff-mult.el (ediff-intersect-directories): Make sure that ".." and
"." files are deleted from all file lists before comparison.
* viper-keym.el (viper-toggle-key, viper-quoted-insert-key)
* emulation/viper-keym.el (viper-toggle-key, viper-quoted-insert-key)
(viper-ESC-key): Made them customizable.
* viper.el (viper-non-hook-settings): Fix the names of defadvices.
* emulation/viper.el (viper-non-hook-settings):
Fix the names of defadvices.
2005-06-01 Luc Teirlinck <teirllm@auburn.edu>
@ -26993,7 +26999,7 @@
2005-05-29 Richard M. Stallman <rms@gnu.org>
* flyspell.el (flyspell-version): Function deleted.
* textmoddes/flyspell.el (flyspell-version): Function deleted.
(flyspell-auto-correct-previous-hook): Doc fix.
* jit-lock.el (jit-lock-function, jit-lock-after-change):
@ -27015,13 +27021,14 @@
2005-05-29 Peter Heslin <p.j.heslin@durham.ac.uk> (tiny change)
* flyspell.el (flyspell-auto-correct-previous-word):
* textmodes/flyspell.el (flyspell-auto-correct-previous-word):
Narrow down to what's on the screen, and recenter overlays
at the end of the next word.
2005-05-29 Manuel Serrano <Manuel.Serrano@sophia.inria.fr>
* flyspell.el (flyspell-emacs, flyspell-use-local-map): Vars moved up.
* textmodes/flyspell.el (flyspell-emacs, flyspell-use-local-map):
8Vars moved up.
(flyspell-default-delayed-commands): Add backward-delete-char-untabify.
(flyspell-abbrev-p): Default to nil.
(flyspell-use-global-abbrev-table-p): Doc fix.
@ -27394,51 +27401,52 @@
CC Mode update to 5.30.10:
* cc-fonts.el (c-font-lock-declarators): Fix bug where the point
could go past the limit in decoration level 2, thereby causing
errors during interactive fontification.
* progmodes/cc-fonts.el (c-font-lock-declarators): Fix bug where
the point could go past the limit in decoration level 2, thereby
causing errors during interactive fontification.
* cc-mode.el (c-make-inherited-keymap): Fix cc-bytecomp bug when
the file is evaluated interactively.
* progmodes/cc-mode.el (c-make-inherited-keymap): Fix cc-bytecomp
bug when the file is evaluated interactively.
* cc-engine.el (c-guess-basic-syntax): Handle operator
* progmodes/cc-engine.el (c-guess-basic-syntax): Handle operator
declarations somewhat better in C++.
* cc-styles.el, cc-mode.el (c-run-mode-hooks): New helper macro to
make use of `run-mode-hooks' which has been added in Emacs 21.1.
* progmodes/cc-styles.el, cc-mode.el (c-run-mode-hooks):
New helper macro to make use of `run-mode-hooks'
which has been added in Emacs 21.1.
(c-mode, c++-mode, objc-mode, java-mode, idl-mode, pike-mode)
(awk-mode): Use it.
(make-local-hook): Suppress warning about obsoleteness.
* cc-engine.el, cc-align.el, cc-cmds.el
* progmodes/cc-engine.el, cc-align.el, cc-cmds.el
(c-append-backslashes-forward, c-delete-backslashes-forward)
(c-find-decl-spots, c-semi&comma-no-newlines-before-nonblanks):
Compensate for return value from `forward-line' when it has moved
but not to a different line due to eob.
* cc-engine.el (c-guess-basic-syntax): Fix anchoring in
* progmodes/cc-engine.el (c-guess-basic-syntax): Fix anchoring in
`objc-method-intro' and `objc-method-args-cont'.
2005-05-23 Alan Mackenzie <bug-cc-mode@gnu.org>
CC Mode update to 5.30.10:
* cc-mode.el, cc-engine.el, cc-align.el: Change the FSF's address
in the copyright statement. Incidentally, change "along with GNU
Emacs" to "along with this program" where it occurs.
* progmodes/cc-mode.el, cc-engine.el, cc-align.el: Change the FSF's
address in the copyright statement. Incidentally, change "along with
GNU Emacs" to "along with this program" where it occurs.
* cc-mode.el: Add a fourth parameter `t' to the awk-mode autoload,
so that it is interactive, hence can be found by M-x awk-mode
* progmodes/cc-mode.el: Add a fourth parameter `t' to the awk-mode
autoload, so that it is interactive, hence can be found by M-x awk-mode
whilst cc-mode is yet to be loaded. Reported by Glenn Morris
<gmorris+emacs@ast.cam.ac.uk>.
* cc-awk.el: Add character classes (e.g. "[:alpha:]") into AWK
* progmodes/cc-awk.el: Add character classes (e.g. "[:alpha:]") into AWK
Mode's regexps.
2005-05-23 Kevin Ryde <user42@zip.com.au>
* cc-align.el (c-lineup-argcont): Ignore conses for {} pairs from
c-parse-state, to avoid a lisp error (on bad code).
* progmodes/cc-align.el (c-lineup-argcont): Ignore conses for {} pairs
from c-parse-state, to avoid a lisp error (on bad code).
2005-05-23 Lute Kamstra <lute@gnu.org>
@ -28778,7 +28786,7 @@
* simple.el (next-error-overlay-arrow-position): Turn off, for ttys.
* loadup.el: load jka-comp-hook.
* loadup.el: Load jka-comp-hook.
* jka-compr.el: Many functions and vars moved to jka-comp-hook.el.
(jka-compr-handler): Add autoload. `put' calls moved
@ -30246,8 +30254,9 @@
2005-03-30 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
(org-agenda-convert-date, org-agenda-goto-calendar): New commands.
* textmodes/org.el (org-agenda-phases-of-moon)
(org-agenda-sunrise-sunset, org-agenda-convert-date)
(org-agenda-goto-calendar): New commands.
(org-diary-default-entry): New function.
(org-get-entries-from-diary): Better parsing of diary entries.
(org-agenda-check-no-diary): New function.
@ -31845,7 +31854,7 @@
2005-02-19 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-cmd.el (viper-prefix-commands): Make into a defconst.
* emulation/viper-cmd.el (viper-prefix-commands): Make into a defconst.
(viper-exec-buffer-search): Use regexp-quote to quote buffer string.
(viper-minibuffer-setup-sentinel): Make some variables buffer-local.
(viper-skip-separators): Bug fix.
@ -31854,17 +31863,18 @@
(viper-del-backward-char-in-replace): Don't put deleted char on the
kill ring.
* viper-ex.el (viper-color-display-p): New function.
* emulation/viper-ex.el (viper-color-display-p): New function.
(viper-has-face-support-p): Use viper-color-display-p.
* viper-keym.el (viper-gnus-modifier-map): New keymap.
* emulation/viper-keym.el (viper-gnus-modifier-map): New keymap.
* viper-macs.el (viper-unrecord-kbd-macro): Bug fix.
* emulation/viper-macs.el (viper-unrecord-kbd-macro): Bug fix.
* viper-util.el (viper-glob-unix-files): Fix shell status check.
* emulation/viper-util.el (viper-glob-unix-files):
Fix shell status check.
(viper-file-remote-p): Make equivalent to file-remote-p.
* viper.el (viper-major-mode-modifier-list):
* emulation/viper.el (viper-major-mode-modifier-list):
Use viper-gnus-modifier-map.
2005-02-19 David Kastrup <dak@gnu.org>
@ -32498,7 +32508,8 @@
(bibtex-parse-field-name): Fix typos in docstrings.
(bibtex-field-list, bibtex-find-crossref): Fix typos in error messages.
2005-01-24 Carsten Dominik <dominik@science.uva.nl>
2005-01-24 Dan Nicolaescu <dann@ics.uci.edu>
Juri Linkov <juri@jurta.org>
* textmodes/reftex-global.el (reftex-isearch-push-state-function)
(reftex-isearch-pop-state-function, reftex-isearch-isearch-search)
@ -32817,8 +32828,9 @@
2005-01-15 Alan Mackenzie <acm@muc.de>
* ebrowse.el (ebrowse-class-in-tree): Return the tail of the tree
rather than the element found, thus enabling the tree to be setcar'd.
* progmodes/ebrowse.el (ebrowse-class-in-tree):
Return the tail of the tree rather than the element found,
thus enabling the tree to be setcar'd.
2005-01-14 Carsten Dominik <dominik@science.uva.nl>
@ -32826,7 +32838,7 @@
(org-show-hierarchy-above): Use `org-show-following-heading'.
(org-cycle): Documentation fix.
* textmodes/org.el (orgtbl-optimized): New option
* textmodes/org.el (orgtbl-optimized): New option.
(orgtbl-mode): New command, a minor mode.
(orgtbl-mode-map): New variable.
(turn-on-orgtbl, orgtbl-mode, orgtbl-make-binding)

View file

@ -760,7 +760,33 @@ Runs `change-log-mode-hook'.
'change-log-resolve-conflict)
(set (make-local-variable 'adaptive-fill-regexp) "\\s *")
(set (make-local-variable 'font-lock-defaults)
'(change-log-font-lock-keywords t nil nil backward-paragraph)))
'(change-log-font-lock-keywords t nil nil backward-paragraph))
(set (make-local-variable 'isearch-buffers-next-buffer-function)
'change-log-next-buffer)
(set (make-local-variable 'beginning-of-defun-function)
'change-log-beginning-of-defun)
(set (make-local-variable 'end-of-defun-function)
'change-log-end-of-defun)
(isearch-buffers-minor-mode))
(defun change-log-next-buffer (&optional buffer wrap)
"Return the next buffer in the series of ChangeLog file buffers.
This function is used for multiple buffers isearch.
A sequence of buffers is formed by ChangeLog files with decreasing
numeric file name suffixes in the directory of the initial ChangeLog
file were isearch was started."
(let* ((name (change-log-name))
(files (cons name (sort (file-expand-wildcards
(concat name "[-.][0-9]*"))
(lambda (a b)
(version< (substring b (length name))
(substring a (length name)))))))
(files (if isearch-forward files (reverse files))))
(find-file-noselect
(if wrap
(car files)
(cadr (member (file-name-nondirectory (buffer-file-name buffer))
files))))))
;; It might be nice to have a general feature to replace this. The idea I
;; have is a variable giving a regexp matching text which should not be
@ -1073,11 +1099,13 @@ Has a preference of looking backwards."
(change-log-get-method-definition-1 ""))
(concat change-log-get-method-definition-md "]"))))))
(defconst change-log-start-entry-re "^\\sw.........[0-9:+ ]*")
(defun change-log-sortable-date-at ()
"Return date of log entry in a consistent form for sorting.
Point is assumed to be at the start of the entry."
(require 'timezone)
(if (looking-at "^\\sw.........[0-9:+ ]*")
(if (looking-at change-log-start-entry-re)
(let ((date (match-string-no-properties 0)))
(if date
(if (string-match "\\(....\\)-\\(..\\)-\\(..\\)\\s-+" date)
@ -1164,6 +1192,32 @@ old-style time formats for entries are supported."
(goto-char (point-max)))
(insert-buffer-substring other-buf start)))))))
(defun change-log-beginning-of-defun ()
(re-search-backward change-log-start-entry-re nil 'move))
(defun change-log-end-of-defun ()
;; Look back and if there is no entry there it means we are before
;; the first ChangeLog entry, so go forward until finding one.
(unless (save-excursion (re-search-backward change-log-start-entry-re nil t))
(re-search-forward change-log-start-entry-re nil t))
;; In case we are at the end of log entry going forward a line will
;; make us find the next entry when searching. If we are inside of
;; an entry going forward a line will still keep the point inside
;; the same entry.
(forward-line 1)
;; In case we are at the beginning of an entry, move past it.
(when (looking-at change-log-start-entry-re)
(goto-char (match-end 0))
(forward-line 1))
;; Search for the start of the next log entry. Go to the end of the
;; buffer if we could not find a next entry.
(when (re-search-forward change-log-start-entry-re nil 'move)
(goto-char (match-beginning 0))
(forward-line -1)))
(provide 'add-log)
;; arch-tag: 81eee6fc-088f-4372-a37f-80ad9620e762

View file

@ -736,7 +736,7 @@ Leave Buffer Selection Menu."
(defun bs-select ()
"Select current line's buffer and other marked buffers.
If there are no marked buffers the window configuration before starting
Buffer Selectin Menu will be restored.
Buffer Selection Menu will be restored.
If there are marked buffers each marked buffer and the current line's buffer
will be selected in a window.
Leave Buffer Selection Menu."
@ -760,7 +760,7 @@ Leave Buffer Selection Menu."
(defun bs-select-other-window ()
"Select current line's buffer by `switch-to-buffer-other-window'.
The window configuration before starting Buffer Selectin Menu will be restored
The window configuration before starting Buffer Selection Menu will be restored
unless there is no other window. In this case a new window will be created.
Leave Buffer Selection Menu."
(interactive)

View file

@ -104,65 +104,62 @@ as it is by default."
(defvar Buffer-menu-sort-column nil
"Which column to sort the menu on.
Use 2 to sort by buffer names, or 5 to sort by file names.
nil means sort by visited order (the default).")
A nil value means sort by visited order (the default).")
(defconst Buffer-menu-buffer-column 4)
(defvar Buffer-menu-mode-map nil
"Local keymap for `Buffer-menu-mode' buffers.")
(defvar Buffer-menu-files-only nil
"Non-nil if the current buffer-menu lists only file buffers.
This variable determines whether reverting the buffer lists only
file buffers. It affects both manual reverting and reverting by
Auto Revert Mode.")
(make-variable-buffer-local 'Buffer-menu-files-only)
(defvar Info-current-file) ;; from info.el
(defvar Info-current-node) ;; from info.el
(make-variable-buffer-local 'Buffer-menu-files-only)
(if Buffer-menu-mode-map
()
(setq Buffer-menu-mode-map (make-keymap))
(suppress-keymap Buffer-menu-mode-map t)
(define-key Buffer-menu-mode-map "q" 'quit-window)
(define-key Buffer-menu-mode-map "v" 'Buffer-menu-select)
(define-key Buffer-menu-mode-map "2" 'Buffer-menu-2-window)
(define-key Buffer-menu-mode-map "1" 'Buffer-menu-1-window)
(define-key Buffer-menu-mode-map "f" 'Buffer-menu-this-window)
(define-key Buffer-menu-mode-map "e" 'Buffer-menu-this-window)
(define-key Buffer-menu-mode-map "\C-m" 'Buffer-menu-this-window)
(define-key Buffer-menu-mode-map "o" 'Buffer-menu-other-window)
(define-key Buffer-menu-mode-map "\C-o" 'Buffer-menu-switch-other-window)
(define-key Buffer-menu-mode-map "s" 'Buffer-menu-save)
(define-key Buffer-menu-mode-map "d" 'Buffer-menu-delete)
(define-key Buffer-menu-mode-map "k" 'Buffer-menu-delete)
(define-key Buffer-menu-mode-map "\C-d" 'Buffer-menu-delete-backwards)
(define-key Buffer-menu-mode-map "\C-k" 'Buffer-menu-delete)
(define-key Buffer-menu-mode-map "x" 'Buffer-menu-execute)
(define-key Buffer-menu-mode-map " " 'next-line)
(define-key Buffer-menu-mode-map "n" 'next-line)
(define-key Buffer-menu-mode-map "p" 'previous-line)
(define-key Buffer-menu-mode-map "\177" 'Buffer-menu-backup-unmark)
(define-key Buffer-menu-mode-map "~" 'Buffer-menu-not-modified)
(define-key Buffer-menu-mode-map "?" 'describe-mode)
(define-key Buffer-menu-mode-map "u" 'Buffer-menu-unmark)
(define-key Buffer-menu-mode-map "m" 'Buffer-menu-mark)
(define-key Buffer-menu-mode-map "t" 'Buffer-menu-visit-tags-table)
(define-key Buffer-menu-mode-map "%" 'Buffer-menu-toggle-read-only)
(define-key Buffer-menu-mode-map "b" 'Buffer-menu-bury)
(define-key Buffer-menu-mode-map "g" 'Buffer-menu-revert)
(define-key Buffer-menu-mode-map "V" 'Buffer-menu-view)
(define-key Buffer-menu-mode-map "T" 'Buffer-menu-toggle-files-only)
(define-key Buffer-menu-mode-map [mouse-2] 'Buffer-menu-mouse-select)
(define-key Buffer-menu-mode-map [follow-link] 'mouse-face)
)
(defvar Buffer-menu-mode-map
(let ((map (make-keymap)))
(suppress-keymap map t)
(define-key map "q" 'quit-window)
(define-key map "v" 'Buffer-menu-select)
(define-key map "2" 'Buffer-menu-2-window)
(define-key map "1" 'Buffer-menu-1-window)
(define-key map "f" 'Buffer-menu-this-window)
(define-key map "e" 'Buffer-menu-this-window)
(define-key map "\C-m" 'Buffer-menu-this-window)
(define-key map "o" 'Buffer-menu-other-window)
(define-key map "\C-o" 'Buffer-menu-switch-other-window)
(define-key map "s" 'Buffer-menu-save)
(define-key map "d" 'Buffer-menu-delete)
(define-key map "k" 'Buffer-menu-delete)
(define-key map "\C-d" 'Buffer-menu-delete-backwards)
(define-key map "\C-k" 'Buffer-menu-delete)
(define-key map "x" 'Buffer-menu-execute)
(define-key map " " 'next-line)
(define-key map "n" 'next-line)
(define-key map "p" 'previous-line)
(define-key map "\177" 'Buffer-menu-backup-unmark)
(define-key map "~" 'Buffer-menu-not-modified)
(define-key map "?" 'describe-mode)
(define-key map "u" 'Buffer-menu-unmark)
(define-key map "m" 'Buffer-menu-mark)
(define-key map "t" 'Buffer-menu-visit-tags-table)
(define-key map "%" 'Buffer-menu-toggle-read-only)
(define-key map "b" 'Buffer-menu-bury)
(define-key map "g" 'Buffer-menu-revert)
(define-key map "V" 'Buffer-menu-view)
(define-key map "T" 'Buffer-menu-toggle-files-only)
(define-key map [mouse-2] 'Buffer-menu-mouse-select)
(define-key map [follow-link] 'mouse-face)
map)
"Local keymap for `Buffer-menu-mode' buffers.")
;; Buffer Menu mode is suitable only for specially formatted data.
(put 'Buffer-menu-mode 'mode-class 'special)
(defun Buffer-menu-mode ()
(define-derived-mode Buffer-menu-mode nil "Buffer Menu"
"Major mode for editing a list of buffers.
Each line describes one of the buffers in Emacs.
Letters do not insert themselves; instead, they are commands.
@ -194,17 +191,12 @@ Letters do not insert themselves; instead, they are commands.
\\[Buffer-menu-revert] -- update the list of buffers.
\\[Buffer-menu-toggle-files-only] -- toggle whether the menu displays only file buffers.
\\[Buffer-menu-bury] -- bury the buffer listed on this line."
(kill-all-local-variables)
(use-local-map Buffer-menu-mode-map)
(setq major-mode 'Buffer-menu-mode)
(setq mode-name "Buffer Menu")
(set (make-local-variable 'revert-buffer-function)
'Buffer-menu-revert-function)
(set (make-local-variable 'buffer-stale-function)
#'(lambda (&optional noconfirm) 'fast))
(setq truncate-lines t)
(setq buffer-read-only t)
(run-mode-hooks 'buffer-menu-mode-hook))
(setq buffer-read-only t))
;; This function exists so we can make the doc string of Buffer-menu-mode
;; look nice.

View file

@ -72,6 +72,11 @@ opinions.
Summary of changes to "Calc"
------- -- ------- -- ----
* Added logistic non-linear curves to curve-fitting.
* Added option of plotting data points and curve when curve-fitting.
* Made unit conversions exact when possible.
Version 2.1:

View file

@ -1222,7 +1222,9 @@ If EXPR is nil, return nil."
(and un ud
(if (and (equal (nth 4 un) (nth 4 ud))
(eq pow1 pow2))
(if (eq pow1 1)
(math-to-standard-units (list '/ n d) nil)
(list '^ (math-to-standard-units (list '/ n d) nil) pow1))
(let (ud1)
(setq un (nth 4 un)
ud (nth 4 ud))

View file

@ -1715,7 +1715,7 @@ Used by `calculator-paste' and `get-register'."
(use-global-map calculator-saved-global-map))
(if (or (not calculator-electric-mode)
;; XEmacs has a problem with electric-describe-mode
(string-match "XEmacs" (emacs-version)))
(featurep 'xemacs))
(describe-mode)
(electric-describe-mode))
(if calculator-electric-mode

View file

@ -334,10 +334,11 @@ This variable is buffer-local."
;; ksu prints a prompt like `Kerberos password for devnull/root@GNU.ORG: '.
;; ssh-add prints a prompt like `Enter passphrase: '.
;; plink prints a prompt like `Passphrase for key "root@GNU.ORG": '.
;; Ubuntu's sudo prompts like `[sudo] password for user:'
;; Some implementations of passwd use "Password (again)" as the 2nd prompt.
(defcustom comint-password-prompt-regexp
"\\(\\([Oo]ld \\|[Nn]ew \\|'s \\|login \\|\
Kerberos \\|CVS \\|UNIX \\| SMB \\|LDAP \\|^\\)\
Kerberos \\|CVS \\|UNIX \\| SMB \\|LDAP \\|\\[sudo] \\|^\\)\
\[Pp]assword\\( (again)\\)?\\|\
pass phrase\\|\\(Enter \\|Repeat \\|Bad \\)?[Pp]assphrase\\)\
\\(?:, try again\\)?\\(?: for [^:]+\\)?:\\s *\\'"

View file

@ -515,7 +515,7 @@ GOTO-END is non-nil, however, it instead replaces up to END."
"*"
(substring pat p))
p (+ p 2)))
(setq files (PC-expand-many-files (concat pat "*")))
(setq files (file-expand-wildcards (concat pat "*")))
(if files
(let ((dir (file-name-directory (car files)))
(p files))
@ -609,7 +609,7 @@ GOTO-END is non-nil, however, it instead replaces up to END."
(setq
basestr ""
p nil
poss (PC-expand-many-files
poss (file-expand-wildcards
(concat "/"
(mapconcat #'list (match-string 1 str) "*/")
"*"))
@ -969,61 +969,6 @@ or properties are considered."
(goto-char end)
(PC-do-completion nil beg end)))
;; Use the shell to do globbing.
;; This could now use file-expand-wildcards instead.
(defun PC-expand-many-files (name)
(with-current-buffer (generate-new-buffer " *Glob Output*")
(erase-buffer)
(when (and (file-name-absolute-p name)
(not (file-directory-p default-directory)))
;; If the current working directory doesn't exist `shell-command'
;; signals an error. So if the file names we're looking for don't
;; depend on the working directory, switch to a valid directory first.
(setq default-directory "/"))
(shell-command (concat "echo " name) t)
(goto-char (point-min))
;; CSH-style shells were known to output "No match", whereas
;; SH-style shells tend to simply output `name' when no match is found.
(if (looking-at (concat ".*No match\\|\\(^\\| \\)\\("
(regexp-quote name)
"\\|"
(regexp-quote (expand-file-name name))
"\\)\\( \\|$\\)"))
nil
(insert "(\"")
(while (search-forward " " nil t)
(delete-backward-char 1)
(insert "\" \""))
(goto-char (point-max))
(delete-backward-char 1)
(insert "\")")
(goto-char (point-min))
(let ((files (read (current-buffer))) (p nil))
(kill-buffer (current-buffer))
(or (equal completion-ignored-extensions PC-ignored-extensions)
(setq PC-ignored-regexp
(concat "\\("
(mapconcat
'regexp-quote
(setq PC-ignored-extensions
completion-ignored-extensions)
"\\|")
"\\)\\'")))
(setq p nil)
(while files
;; This whole process of going through to shell, to echo, and
;; finally parsing the output is a hack. It breaks as soon as
;; there are spaces in the file names or when the no-match
;; message changes. To make up for it, we check that what we read
;; indeed exists, so we may miss some files, but we at least won't
;; list non-existent ones.
(or (not (file-exists-p (car files)))
(string-match PC-ignored-regexp (car files))
(setq p (cons (car files) p)))
(setq files (cdr files)))
p))))
;; Facilities for loading C header files. This is independent from the
;; main completion code. See also the variable `PC-include-file-path'
;; at top of this file.

View file

@ -1142,7 +1142,7 @@ the official name of the package, such as MH-E or Gnus.")
(defalias 'customize-changed 'customize-changed-options)
;;;###autoload
(defun customize-changed-options (since-version)
(defun customize-changed-options (&optional since-version)
"Customize all settings whose meanings have changed in Emacs itself.
This includes new user option variables and faces, and new
customization groups, as well as older options and faces whose meanings

View file

@ -168,6 +168,10 @@ set to nil, as the value is no longer rogue."
(put symbol 'custom-get value))
((eq keyword :require)
(push value requests))
((eq keyword :risky)
(put symbol 'risky-local-variable value))
((eq keyword :safe)
(put symbol 'safe-local-variable value))
((eq keyword :type)
(put symbol 'custom-type (purecopy value)))
((eq keyword :options)
@ -219,6 +223,8 @@ The following keywords are meaningful:
VALUE should be a feature symbol. If you save a value
for this option, then when your `.emacs' file loads the value,
it does (require VALUE) first.
:risky Set SYMBOL's `risky-local-variable' property to VALUE.
:safe Set SYMBOL's `safe-local-variable' property to VALUE.
The following common keywords are also meaningful.
@ -573,6 +579,15 @@ This recursively follows aliases."
(or (get variable 'standard-value)
(get variable 'custom-autoload)))
(defun custom-note-var-changed (variable)
"Inform Custom that VARIABLE has been set (changed).
VARIABLE is a symbol that names a user option.
The result is that the change is treated as having been made through Custom."
(interactive "vVariable: ")
(put variable 'customized-value (list (custom-quote (eval variable)))))
;;; Custom Themes
;;; Loading files needed to customize a symbol.
;;; This is in custom.el because menu-bar.el needs it for toggle cmds.

View file

@ -92,7 +92,8 @@ when editing big diffs)."
(defcustom diff-auto-refine t
"Automatically highlight changes in detail as the user visits hunks."
:type 'boolean)
:type 'boolean
:group 'diff-mode)
(defcustom diff-mode-hook nil
"Run after setting up the `diff-mode' major mode."
@ -1685,7 +1686,7 @@ For use in `add-log-current-defun-function'."
(defun diff-refine-hunk ()
"Highlight changes of hunk at point at a finer granularity."
(interactive)
(require 'smerge-mode)
(eval-and-compile (require 'smerge-mode))
(save-excursion
(diff-beginning-of-hunk 'try-harder)
(let* ((style (diff-hunk-style)) ;Skips the hunk header as well.

View file

@ -73,6 +73,10 @@ were found."
(if (equal 0 code) " (no differences)" "")
(current-time-string))))))
(defvar diff-old-file nil)
(defvar diff-new-file nil)
(defvar diff-extra-args nil)
;;;###autoload
(defun diff (old new &optional switches no-async)
"Find and display the differences between OLD and NEW files.

View file

@ -1172,56 +1172,28 @@ See `dired-guess-shell-alist-user'."
(defun dired-guess-shell-command (prompt files)
"Ask user with PROMPT for a shell command, guessing a default from FILES."
(let ((default (dired-guess-default files))
default-list old-history val (failed t))
default-list val)
(if (null default)
;; Nothing to guess
(read-from-minibuffer prompt nil nil nil 'dired-shell-command-history)
;; Save current history list
(setq old-history dired-shell-command-history)
(if (listp default)
;; More than one guess
(setq default-list default
default (car default)
prompt (concat
prompt
(format "{%d guesses} " (length default-list))))
;; Just one guess
(setq default-list (list default)))
;; Push all guesses onto history so that they can be retrieved with M-p
;; and put the first guess in the prompt but not in the initial value.
(setq dired-shell-command-history
(append default-list dired-shell-command-history)
prompt (concat prompt (format "[%s] " default)))
;; The unwind-protect returns VAL, and we too.
(unwind-protect
;; BODYFORM
(progn
;; Put the first guess in the prompt but not in the initial value.
(setq prompt (concat prompt (format "[%s] " default)))
;; All guesses can be retrieved with M-n
(setq val (read-from-minibuffer prompt nil nil nil
'dired-shell-command-history)
failed nil)
;; If we got a return, then use default.
(if (equal val "")
(setq val default))
val)
;; UNWINDFORMS
;; Undo pushing onto the history list so that an aborted
;; command doesn't get the default in the next command.
(setq dired-shell-command-history old-history)
(if (not failed)
(or (equal val (car-safe dired-shell-command-history))
(setq dired-shell-command-history
(cons val dired-shell-command-history))))))))
'dired-shell-command-history
default-list))
;; If we got a return, then return default.
(if (equal val "") default val))))
;;; REDEFINE.
;;; Redefine dired-aux.el's version:

View file

@ -404,6 +404,8 @@ indicates a specific program should be invoked."
(direct-print-region-helper printer start end lpr-prog
delete-text buf display rest)))
(defvar print-region-function)
(defvar lpr-headers-switches)
(setq print-region-function 'direct-print-region-function)
;; Set this to nil if you have a port of the `pr' program
@ -435,6 +437,7 @@ indicates a specific program should be invoked."
(direct-print-region-helper printer start end lpr-prog
delete-text buf display rest)))
(defvar ps-print-region-function)
(setq ps-print-region-function 'direct-ps-print-region-function)
;(setq ps-lpr-command "gs")

View file

@ -75,7 +75,7 @@ Each entry is a list with three elements:
(string :tag "Twice"))))
(defcustom double-prefix-only t
"*Non-nil means that Double mode mapping only works for prefix keys.
"Non-nil means that Double mode mapping only works for prefix keys.
That is, for any key `X' in `double-map', `X' alone will be mapped
but not `C-u X' or `ESC X' since the X is not the prefix key."
:group 'double
@ -95,7 +95,7 @@ but not `C-u X' or `ESC X' since the X is not the prefix key."
(message ""))
(read-event)))
(global-set-key [ignore] '(lambda () (interactive)))
(global-set-key [ignore] 'ignore)
(or (boundp 'isearch-mode-map)
(load-library "isearch"))
@ -139,77 +139,37 @@ but not `C-u X' or `ESC X' since the X is not the prefix key."
(append (substring exp 1) '(magic-start)))
(vector (aref exp 0)))))))
;;; Key Translation Map
(defun double-setup (enable-flag)
(if enable-flag
(progn
;; Set up key-translation-map as indicated by `double-map'.
;; XXX I don't think key-translation-map should be made local here. -- Lorentey
(kill-local-variable 'key-translation-map)
(make-local-variable 'key-translation-map)
(setq key-translation-map (if (keymapp key-translation-map)
(copy-keymap key-translation-map)
(make-sparse-keymap)))
(mapcar (function (lambda (entry)
(define-key key-translation-map
(vector (nth 0 entry))
'double-translate-key)))
(append double-map '((magic-start) (magic-end)))))
(kill-local-variable 'key-translation-map)))
;;; Mode
;;;###autoload
(defcustom double-mode nil
"Toggle Double mode.
Setting this variable directly does not take effect;
use either \\[customize] or the function `double-mode'."
:set (lambda (symbol value)
(double-mode (if value 1 0)))
:initialize 'custom-initialize-default
:link '(emacs-commentary-link "double")
:type 'boolean
:require 'double
:group 'double)
(make-variable-buffer-local 'double-mode)
(or (assq 'double-mode minor-mode-alist)
(setq minor-mode-alist
(cons '(double-mode " Double") minor-mode-alist)))
;; This feature seemed useless and it confused describe-mode,
;; so I deleted it.
;;;(defvar double-mode-name "Double")
;;;;; Name of current double mode.
;;; (make-variable-buffer-local 'double-mode-name)
;; (defvar double-mode-name "Double")
;; ;; Name of current double mode.
;; (make-variable-buffer-local 'double-mode-name)
;;;###autoload
(defun double-mode (arg)
(define-minor-mode double-mode
"Toggle Double mode.
With prefix argument ARG, turn Double mode on if ARG is positive, otherwise
turn it off.
When Double mode is on, some keys will insert different strings
when pressed twice. See variable `double-map' for details."
(interactive "P")
(if (or (and (null arg) double-mode)
(<= (prefix-numeric-value arg) 0))
;; Turn it off
(if double-mode
(progn
(let ((double-map))
(double-setup nil))
(setq double-mode nil)
(force-mode-line-update)))
;;Turn it on
(if double-mode
()
(double-setup t)
(setq double-mode t)
(force-mode-line-update))))
:lighter " Double"
:link '(emacs-commentary-link "double")
(kill-local-variable 'key-translation-map)
(when double-mode
;; Set up key-translation-map as indicated by `double-map'.
;; XXX I don't think key-translation-map should be made local here. -- Lorentey
(make-local-variable 'key-translation-map)
(let ((map (make-sparse-keymap)))
(set-keymap-parent map key-translation-map)
(setq key-translation-map map)
(dolist (entry (append double-map '((magic-start) (magic-end))))
(define-key map
(vector (nth 0 entry)) 'double-translate-key)))))
(provide 'double)
;;; arch-tag: 2e170036-44cb-4493-bc32-ada0a4395221
;; arch-tag: 2e170036-44cb-4493-bc32-ada0a4395221
;;; double.el ends here

View file

@ -258,7 +258,7 @@ the value of this variable and the variables `ediff-help-message-*' in
(save-excursion
(goto-char (point-min))
(if ediff-use-long-help-message
(next-line 1))
(forward-line 1))
(end-of-line)
(current-column)))

View file

@ -53,10 +53,10 @@
;; compiler at hand (emacs or xemacs).
;; The autoload, below, is useless in Emacs because ediff-hook.el
;; is dumped with emacs, but it is needed in XEmacs
;;;###autoload (defmacro ediff-cond-compile-for-xemacs-or-emacs (xemacs-form emacs-form) (if (string-match "XEmacs" emacs-version) xemacs-form emacs-form))
;;;###autoload (defmacro ediff-cond-compile-for-xemacs-or-emacs (xemacs-form emacs-form) (if (featurep 'xemacs) xemacs-form emacs-form))
(defmacro ediff-cond-compile-for-xemacs-or-emacs (xemacs-form emacs-form)
(if (string-match "XEmacs" emacs-version)
(if (featurep 'xemacs)
xemacs-form emacs-form))
;; This autoload is useless in Emacs because ediff-hook.el is dumped with

View file

@ -3004,8 +3004,10 @@ in any of these classes."
(if advice-docstring
(push advice-docstring paragraphs))))
(setq origdoc (if paragraphs
(propertize
;; separate paragraphs with blank lines:
(mapconcat 'identity (nreverse paragraphs) "\n\n")))
(mapconcat 'identity (nreverse paragraphs) "\n\n")
'ad-advice-info function)))
(help-add-fundoc-usage origdoc usage)))
(defun ad-make-plain-docstring (function)

View file

@ -1148,7 +1148,7 @@
(defun byte-optimize-featurep (form)
;; Emacs-21's byte-code doesn't run under XEmacs or SXEmacs anyway, so we
;; can safely optimize away this test.
(if (member (cdr-safe form) '((quote xemacs) (quote sxemacs)))
(if (member (cdr-safe form) '(((quote xemacs)) ((quote sxemacs))))
nil
form))

View file

@ -371,7 +371,8 @@ Elements of the list may be:
(const obsolete) (const noruntime)
(const cl-functions) (const interactive-only)
(const make-local) (const mapcar))))
(put 'byte-compile-warnings 'safe-local-variable 'byte-compile-warnings-safe-p)
;;;###autoload(put 'byte-compile-warnings 'safe-local-variable 'byte-compile-warnings-safe-p)
;;;###autoload
(defun byte-compile-warnings-safe-p (x)
(or (booleanp x)

View file

@ -1182,7 +1182,7 @@ generating a buffered list of errors."
;; Override some bindings
(define-key map "\C-\M-x" 'checkdoc-eval-defun)
(define-key map "\C-x`" 'checkdoc-continue)
(if (not (string-match "XEmacs" emacs-version))
(if (not (featurep 'xemacs))
(define-key map [menu-bar emacs-lisp eval-buffer]
'checkdoc-eval-current-buffer))
;; Add some new bindings under C-c ?

View file

@ -118,17 +118,11 @@
;;; Decide Emacs Variant, GNU Emacs or XEmacs (aka Lucid Emacs).
;;; Determine Window System, and X Server Vendor (if appropriate).
;;;
(defconst edt-x-emacs-p (string-match "XEmacs" emacs-version)
"Non-nil if we are running XEmacs version 19, or higher.")
(defconst edt-emacs-variant (if edt-x-emacs-p "xemacs" "gnu")
"Indicates Emacs variant: GNU Emacs or XEmacs \(aka Lucid Emacs\).")
(defconst edt-window-system (if edt-x-emacs-p (console-type) window-system)
(defconst edt-window-system (if (featurep 'xemacs) (console-type) window-system)
"Indicates window system \(in GNU Emacs\) or console type \(in XEmacs\).")
(defconst edt-xserver (if (eq edt-window-system 'x)
(if edt-x-emacs-p
(if (featurep 'xemacs)
;; The Cygwin window manager has a `/' in its
;; name, which breaks the generated file name of
;; the custom key map file. Replace `/' with a
@ -245,7 +239,7 @@
;;; function-key-map.
;;;
(cond
(edt-x-emacs-p
((featurep 'xemacs)
(setq edt-return-seq (read-key-sequence "Hit carriage-return <CR> to continue "))
(setq edt-return (concat "[" (format "%s" (event-key (aref edt-return-seq 0))) "]")))
(t
@ -327,8 +321,10 @@
;;;
;;; Key mapping functions
;;;
(defun edt-lucid-map-key (ident descrip)
(defun edt-map-key (ident descrip)
(interactive)
(if (featurep 'xemacs)
(progn
(setq edt-key-seq (read-key-sequence (format "Press %s%s: " ident descrip)))
(setq edt-key (concat "[" (format "%s" (event-key (aref edt-key-seq 0))) "]"))
(cond ((not (equal edt-key edt-return))
@ -340,11 +336,7 @@
(t
(set-buffer "Keys")
(insert (format " (\"%s\" . \"\" )\n" ident))
(set-buffer "Directions")))
edt-key)
(defun edt-gnu-map-key (ident descrip)
(interactive)
(set-buffer "Directions"))))
(setq edt-key (read-key-sequence (format "Press %s%s: " ident descrip)))
(cond ((not (equal edt-key edt-return))
(set-buffer "Keys")
@ -357,10 +349,9 @@
(t
(set-buffer "Keys")
(insert (format " (\"%s\" . \"\" )\n" ident))
(set-buffer "Directions")))
(set-buffer "Directions"))))
edt-key)
(fset 'edt-map-key (if edt-x-emacs-p 'edt-lucid-map-key 'edt-gnu-map-key))
(set-buffer "Keys")
(insert "
;;
@ -494,7 +485,7 @@
;;;
;;; Restore function-key-map.
;;;
(if (and edt-window-system (not edt-x-emacs-p))
(if (and edt-window-system (not (featurep 'xemacs)))
(setq function-key-map edt-save-function-key-map))
(setq EDT-key-name "")
(while (not
@ -517,7 +508,7 @@
;;; Save the key mapping file
;;;
(let ((file (concat
"~/.edt-" edt-emacs-variant
"~/.edt-" (if (featurep 'xemacs) "xemacs" "gnu")
(if edt-term (concat "-" edt-term))
(if edt-xserver (concat "-" edt-xserver))
(if edt-window-system (concat "-" (upcase (symbol-name edt-window-system))))

View file

@ -351,7 +351,7 @@ Then it does not try to move vertically. This goal column is stored
in `goal-column', which is nil when there is none."
(interactive "p")
(ensure-mark)
(next-line arg)
(with-no-warnings (next-line arg))
(setq this-command 'next-line))
(defun end-of-line-mark (&optional arg)
@ -484,7 +484,7 @@ Then it does not try to move vertically. This goal column is stored
in `goal-column', which is nil when there is none."
(interactive "p")
(setq mark-active nil)
(next-line arg)
(with-no-warnings (next-line arg))
(setq this-command 'next-line))
(defun end-of-line-nomark (&optional arg)
@ -609,7 +609,7 @@ If you are thinking of using this in a Lisp program, consider using
to use and more reliable (no dependence on goal column, etc.)."
(interactive "p")
(ensure-mark)
(previous-line arg)
(with-no-warnings (previous-line arg))
(setq this-command 'previous-line))
(defun beginning-of-line-mark (&optional arg)
@ -707,7 +707,7 @@ a semipermanent goal column to which this command always moves.
Then it does not try to move vertically."
(interactive "p")
(setq mark-active nil)
(previous-line arg)
(with-no-warnings (previous-line arg))
(setq this-command 'previous-line))
(defun beginning-of-line-nomark (&optional arg)

View file

@ -273,6 +273,7 @@
;;; Code:
(eval-when-compile (require 'cl))
;; we use picture-mode functions
(require 'picture)
@ -2378,6 +2379,7 @@ If FILE is nil, try to load a default file. The default file names are
(tpu-error (message "Sorry, couldn't copy - %s." (cdr conditions)))))
(kill-buffer "*TPU-Notice*")))
(defvar tpu-edt-old-global-values nil)
;;;
;;; Start and Stop TPU-edt
@ -2386,6 +2388,8 @@ If FILE is nil, try to load a default file. The default file names are
(defun tpu-edt-on ()
"Turn on TPU/edt emulation."
(interactive)
;; To clean things up (and avoid cycles in the global map).
(tpu-edt-off)
;; First, activate tpu-global-map, while protecting the original keymap.
(set-keymap-parent tpu-global-map global-map)
(setq global-map tpu-global-map)
@ -2396,9 +2400,12 @@ If FILE is nil, try to load a default file. The default file names are
(tpu-set-mode-line t)
(tpu-advance-direction)
;; set page delimiter, display line truncation, and scrolling like TPU
(setq-default page-delimiter "\f")
(setq-default truncate-lines t)
(setq scroll-step 1)
(dolist (varval '((page-delimiter . "\f")
(truncate-lines . t)
(scroll-step . 1)))
(push (cons (car varval) (default-value (car varval)))
tpu-edt-old-global-values)
(set-default (car varval) (cdr varval)))
(tpu-set-control-keys)
(and window-system (tpu-load-xkeys nil))
(tpu-arrow-history)
@ -2415,9 +2422,9 @@ If FILE is nil, try to load a default file. The default file names are
(tpu-reset-control-keys nil)
(remove-hook 'post-command-hook 'tpu-search-highlight)
(tpu-set-mode-line nil)
(setq-default page-delimiter "^\f")
(setq-default truncate-lines nil)
(setq scroll-step 0)
(while tpu-edt-old-global-values
(let ((varval (pop tpu-edt-old-global-values)))
(set-default (car varval) (cdr varval))))
;; Remove tpu-global-map from the global map.
(let ((map global-map))
(while map
@ -2425,7 +2432,7 @@ If FILE is nil, try to load a default file. The default file names are
(if (eq tpu-global-map parent)
(set-keymap-parent map (keymap-parent parent))
(setq map parent)))))
(ad-disable-regexp "\\`tpu-")
(ignore-errors (ad-disable-regexp "\\`tpu-"))
(setq tpu-edt-mode nil))

View file

@ -50,7 +50,7 @@
(message "Viper version is %s" viper-version))
;; Is it XEmacs?
(defconst viper-xemacs-p (string-match "XEmacs" emacs-version))
(defconst viper-xemacs-p (featurep 'xemacs))
;; Is it Emacs?
(defconst viper-emacs-p (not viper-xemacs-p))
;; Tell whether we are running as a window application or on a TTY
@ -61,7 +61,7 @@
;; compiler at hand.
;; Suggested by rms.
(defmacro viper-cond-compile-for-xemacs-or-emacs (xemacs-form emacs-form)
(if (string-match "XEmacs" emacs-version)
(if (featurep 'xemacs)
xemacs-form emacs-form))

View file

@ -1,3 +1,8 @@
2007-10-25 Dan Nicolaescu <dann@ics.uci.edu>
* erc-ibuffer.el (erc-modified-channels-alist): Pacify
byte-compiler.
2007-10-13 Glenn Morris <rgm@gnu.org>
* erc-track.el (erc-modified-channels-update): Use mapc rather

View file

@ -71,6 +71,8 @@
(string-match qualifier (or erc-server-announced-name
erc-session-server)))))
(defvar erc-modified-channels-alist)
(define-ibuffer-column erc-modified (:name "M")
(if (and (boundp 'erc-track-mode)
erc-track-mode)

View file

@ -175,7 +175,7 @@ Otherwise, Emacs will attempt to use rsh to invoke du on the remote machine."
'info arg1' => OTHERWISE goes to top info window and then menu item arg1
'info arg1 arg2' => does action for arg1 (either visit-file or menu-item) and then menu item arg2
etc."
(require 'info)
(eval-and-compile (require 'info))
(let ((file (cond
((not (stringp (car args)))
nil)
@ -974,6 +974,12 @@ Show wall-clock time elapsed during execution of COMMAND.")
(if eshell-diff-window-config
(set-window-configuration eshell-diff-window-config)))
(defun nil-blank-string (string)
"Return STRING, or nil if STRING contains only non-blank characters."
(cond
((string-match "[^[:blank:]]" string) string)
(nil)))
(defun eshell/diff (&rest args)
"Alias \"diff\" to call Emacs `diff' function."
(let ((orig-args (eshell-stringify-list (eshell-flatten-list args))))
@ -995,7 +1001,8 @@ Show wall-clock time elapsed during execution of COMMAND.")
(setcdr (last args 3) nil))
(with-current-buffer
(condition-case err
(diff old new (eshell-flatten-and-stringify args))
(diff old new
(nil-blank-string (eshell-flatten-and-stringify args)))
(error
(throw 'eshell-replace-command
(eshell-parse-command "*diff" orig-args))))

View file

@ -1081,7 +1081,7 @@ This function could be in the list `eshell-output-filter-functions'."
(defun eshell-handle-ansi-color ()
"Handle ANSI color codes."
(require 'ansi-color)
(eval-and-compile (require 'ansi-color))
(ansi-color-apply-on-region eshell-last-output-start
eshell-last-output-end))

View file

@ -3204,13 +3204,13 @@ BACKUPNAME is the backup file name, which is the old file renamed."
(set-default-file-modes ?\700)
(when (condition-case nil
;; Try to overwrite old backup first.
(copy-file from-name to-name t t)
(copy-file from-name to-name t t t)
(error t))
(while (condition-case nil
(progn
(when (file-exists-p to-name)
(delete-file to-name))
(copy-file from-name to-name nil t)
(copy-file from-name to-name nil t t)
nil)
(file-already-exists t))
;; The file was somehow created by someone else between
@ -5286,9 +5286,8 @@ message to that effect instead of signaling an error."
(defvar kill-emacs-query-functions nil
"Functions to call with no arguments to query about killing Emacs.
If any of these functions returns nil, killing Emacs is cancelled.
`save-buffers-kill-emacs' (\\[save-buffers-kill-emacs]) calls these functions,
but `kill-emacs', the low level primitive, does not.
See also `kill-emacs-hook'.")
`save-buffers-kill-emacs' calls these functions, but `kill-emacs',
the low level primitive, does not. See also `kill-emacs-hook'.")
(defcustom confirm-kill-emacs nil
"How to ask for confirmation when leaving Emacs.

View file

@ -1,3 +1,17 @@
2007-10-23 Richard Stallman <rms@gnu.org>
* gnus-group.el (gnus-group-highlight): Mark as risky.
2007-10-23 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus.el (gnus-server-to-method): Return method found first in
gnus-newsrc-alist.
2007-10-20 Reiner Steib <Reiner.Steib@gmx.de>
* html2text.el (html2text-fix-paragraph): Use `forward-line' instead of
`next-line'.
2007-10-18 Katsumi Yamaoka <yamaoka@jpl.org>
* nnmail.el (nnmail-fancy-expiry-target): Use rmail-dont-reply-to to

View file

@ -378,6 +378,7 @@ score: The score of the group.
ticked: The number of ticked articles."
:group 'gnus-group-visual
:type '(repeat (cons (sexp :tag "Form") face)))
(put 'gnus-group-highlight 'risky-local-variable t)
(defcustom gnus-new-mail-mark ?%
"Mark used for groups with new mail."

View file

@ -3518,15 +3518,14 @@ that that variable is buffer-local to the summary buffers."
;; of every method. As a side-effect, loads the
;; gnus-server-method-cache so this only happens once,
;; if at all.
(let (match)
(mapcar
(lambda (info)
(let ((info-method (gnus-info-method info)))
(unless (stringp info-method)
(let ((info-server (gnus-method-to-server info-method)))
(when (equal server info-server)
(setq match info-method))))))
(cdr gnus-newsrc-alist))
(let ((alist (cdr gnus-newsrc-alist))
method match)
(while alist
(setq method (gnus-info-method (pop alist)))
(when (and (not (stringp method))
(equal server (gnus-method-to-server method)))
(setq match method
alist nil)))
match))))
(when result
(push (cons server result) gnus-server-method-cache))

View file

@ -352,7 +352,7 @@ formatting, and then moved afterward.")
(setq refill-start (point))
(goto-char p2)
(re-search-backward ".+[^<][^b][^r][^>]$" refill-start t)
(next-line 1)
(forward-line 1)
(end-of-line)
;; refill-stop should ideally be adjusted to
;; accomodate the "<br>" strings which are removed

View file

@ -1104,6 +1104,43 @@ This function is assumed to be used as callback function for `hl-line-mode'."
(define-key hexl-mode-map "\C-x\C-s" 'hexl-save-buffer)
(define-key hexl-mode-map "\C-x\C-t" 'undefined))
(easy-menu-define hexl-menu hexl-mode-map "Hexl Mode menu"
`("Hexl"
:help "Hexl-specific Features"
["Backward short" hexl-backward-short
:help "Move to left a short"]
["Forward short" hexl-forward-short
:help "Move to right a short"]
["Backward word" hexl-backward-short
:help "Move to left a word"]
["Forward word" hexl-forward-short
:help "Move to right a word"]
"-"
["Beginning of 512b page" hexl-beginning-of-512b-page
:help "Go to beginning of 512 byte boundary"]
["End of 512b page" hexl-end-of-512b-page
:help "Go to end of 512 byte boundary"]
["Beginning of 1K page" hexl-beginning-of-1k-page
:help "Go to beginning of 1KB boundary"]
["End of 1K page" hexl-end-of-1k-page
:help "Go to end of 1KB boundary"]
"-"
["Go to address" hexl-goto-address
:help "Go to hexl-mode (decimal) address"]
["Go to address" hexl-goto-hex-address
:help "Go to hexl-mode (hex string) address"]
"-"
["Insert decimal char" hexl-insert-decimal-char
:help "Insert a character given by its decimal code"]
["Insert hex char" hexl-insert-hex-char
:help "Insert a character given by its hexadecimal code"]
["Insert octal char" hexl-insert-octal-char
:help "Insert a character given by its octal code"]
"-"
["Exit hexl mode" hexl-mode-exit
:help "Exit hexl mode returning to previous mode"]))
(provide 'hexl)
;; arch-tag: d5a7aa8a-9bce-480b-bcff-6c4c7ca5ea4a

View file

@ -224,13 +224,12 @@ Currently, this only applies to `ibuffer-saved-filters' and
(defun ibuffer-auto-update-changed ()
(when (frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed)
(mapcar #'(lambda (buf)
(dolist (buf (buffer-list))
(ignore-errors
(with-current-buffer buf
(when (and ibuffer-auto-mode
(eq major-mode 'ibuffer-mode))
(ibuffer-update nil t)))))
(buffer-list))))
(ibuffer-update nil t)))))))
;;;###autoload
(defun ibuffer-auto-mode (&optional arg)
@ -243,7 +242,7 @@ With numeric ARG, enable auto-update if and only if ARG is positive."
(if arg
(plusp arg)
(not ibuffer-auto-mode)))
(frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed)
(frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed) ; Initialize state vector
(add-hook 'post-command-hook 'ibuffer-auto-update-changed)
(ibuffer-update-mode-name))
@ -753,9 +752,7 @@ They are removed from `ibuffer-saved-filter-groups'."
;;;###autoload
(defun ibuffer-switch-to-saved-filter-groups (name)
"Set this buffer's filter groups to saved version with NAME.
The value from `ibuffer-saved-filters' is used.
If prefix argument ADD is non-nil, then add the saved filters instead
of replacing the current filters."
The value from `ibuffer-saved-filter-groups' is used."
(interactive
(list
(if (null ibuffer-saved-filter-groups)
@ -931,9 +928,7 @@ Interactively, prompt for NAME, and use the current filters."
;;;###autoload
(defun ibuffer-switch-to-saved-filters (name)
"Set this buffer's filters to filters with NAME from `ibuffer-saved-filters'.
If prefix argument ADD is non-nil, then add the saved filters instead
of replacing the current filters."
"Set this buffer's filters to filters with NAME from `ibuffer-saved-filters'."
(interactive
(list
(if (null ibuffer-saved-filters)

View file

@ -1137,7 +1137,7 @@ image."
(defun image-dired-next-line ()
"Move to next line and display properties."
(interactive)
(next-line 1)
(forward-line 1)
;; If we end up in an empty spot, back up to the next thumbnail.
(if (not (image-dired-image-at-point-p))
(image-dired-backward-image))
@ -1149,7 +1149,7 @@ image."
(defun image-dired-previous-line ()
"Move to previous line and display properties."
(interactive)
(previous-line 1)
(forward-line -1)
;; If we end up in an empty spot, back up to the next
;; thumbnail. This should only happen if the user deleted a
;; thumbnail and did not refresh, so it is not very common. But we

View file

@ -191,7 +191,12 @@ interactively or with optional argument FORCE, it will be fixed."
;; used in Fundamental Mode, Text Mode, etc.
(defun indent-to-left-margin ()
"Indent current line to the column given by `current-left-margin'."
(indent-line-to (current-left-margin)))
(save-excursion (indent-line-to (current-left-margin)))
;; If we are within the indentation, move past it.
(when (save-excursion
(skip-chars-backward " \t")
(bolp))
(skip-chars-forward " \t")))
(defun delete-to-left-margin (&optional from to)
"Remove left margin indentation from a region.

190
lisp/isearch-multi.el Normal file
View file

@ -0,0 +1,190 @@
;;; isearch-multi.el --- isearch extensions for multi-buffer search
;; Copyright (C) 2007 Free Software Foundation, Inc.
;; Author: Juri Linkov <juri@jurta.org>
;; Keywords: matching
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Commentary:
;; This file adds more dimensions to the search space. It implements
;; various features that extend isearch. One of them is an ability to
;; search through multiple buffers.
;;; Code:
;;; Search multiple buffers
(defgroup isearch-buffers nil
"Using isearch to search through multiple buffers."
:version "23.1"
:group 'isearch)
(defcustom isearch-buffers-multi t
"Non-nil enables searching multiple related buffers, in certain modes."
:type 'boolean
:version "23.1"
:group 'isearch-buffers)
(defcustom isearch-buffers-pause t
"A choice defining where to pause the search.
If the value is nil, don't pause before going to the next buffer.
If the value is `initial', pause only after a failing search in the
initial buffer.
If t, pause in all buffers that contain the search string."
:type '(choice
(const :tag "Don't pause" nil)
(const :tag "Only in initial buffer" initial)
(const :tag "All buffers" t))
:version "23.1"
:group 'isearch-buffers)
;;;###autoload
(defvar isearch-buffers-current-buffer nil
"The buffer where the search is currently searching.
The value is nil when the search still is in the initial buffer.")
;;;###autoload
(defvar isearch-buffers-next-buffer-function nil
"Function to call to get the next buffer to search.
When this variable is set to a function that returns a buffer, then
after typing another C-s or C-r at a failing search, the search goes
to the next buffer in the series and continues searching for the
next occurrence.
The first argument of this function is the current buffer where the
search is currently searching. It defines the base buffer relative to
which this function should find the next buffer. When the isearch
direction is backward (when isearch-forward is nil), this function
should return the previous buffer to search. If the second argument of
this function WRAP is non-nil, then it should return the first buffer
in the series; and for the backward search, it should return the last
buffer in the series.")
;;;###autoload
(define-minor-mode isearch-buffers-minor-mode
"Minor mode for using isearch to search through multiple buffers.
With arg, turn isearch-buffers minor mode on if arg is positive, off otherwise."
:group 'isearch-buffers ;; :lighter " X"
(if isearch-buffers-minor-mode
(progn
(add-hook 'isearch-mode-hook 'isearch-buffers-init nil t)
(set (make-local-variable 'isearch-search-fun-function)
'isearch-buffers-search-fun)
(set (make-local-variable 'isearch-wrap-function)
'isearch-buffers-wrap)
(set (make-local-variable 'isearch-push-state-function)
'isearch-buffers-push-state))
(remove-hook 'isearch-mode-hook 'isearch-buffers-init t)
(kill-local-variable 'isearch-search-fun-function)
(kill-local-variable 'isearch-wrap-function)
(kill-local-variable 'isearch-push-state-function)))
(defun isearch-buffers-init ()
"Set up isearch to search multiple buffers.
Intended to be added to `isearch-mode-hook'."
(setq isearch-buffers-current-buffer nil))
(defun isearch-buffers-search-fun ()
"Return the proper search function, for isearch in multiple buffers."
(lambda (string bound noerror)
(let ((search-fun
;; Use standard functions to search within one buffer
(cond
(isearch-word
(if isearch-forward 'word-search-forward 'word-search-backward))
(isearch-regexp
(if isearch-forward 're-search-forward 're-search-backward))
(t
(if isearch-forward 'search-forward 'search-backward))))
found buffer)
(or
;; 1. First try searching in the initial buffer
(let ((res (funcall search-fun string bound noerror)))
;; Reset wrapping for all-buffers pause after successful search
(if (and res (eq isearch-buffers-pause t))
(setq isearch-buffers-current-buffer nil))
res)
;; 2. If the above search fails, start visiting next/prev buffers
;; successively, and search the string in them. Do this only
;; when bound is nil (i.e. not while lazy-highlighting search
;; strings in the current buffer).
(when (and (not bound) isearch-buffers-multi)
;; If no-pause or there was one attempt to leave the current buffer
(if (or (null isearch-buffers-pause)
(and isearch-buffers-pause isearch-buffers-current-buffer))
(condition-case nil
(progn
(while (not found)
;; Find the next buffer to search
(setq buffer (funcall isearch-buffers-next-buffer-function
buffer))
(with-current-buffer buffer
(goto-char (if isearch-forward (point-min) (point-max)))
(setq isearch-barrier (point) isearch-opoint (point))
;; After visiting the next/prev buffer search the
;; string in it again, until the function in
;; isearch-buffers-next-buffer-function raises an error
;; at the beginning/end of the buffer sequence.
(setq found (funcall search-fun string bound noerror))))
;; Set buffer for isearch-search-string to switch
(if buffer (setq isearch-buffers-current-buffer buffer))
;; Return point of the new search result
found)
;; Return nil when isearch-buffers-next-buffer-function fails
(error nil))
(signal 'search-failed (list string "Repeat for next buffer"))))))))
(defun isearch-buffers-wrap ()
"Wrap the multiple buffers search when search is failed.
Switch buffer to the first buffer for a forward search,
or to the last buffer for a backward search.
Set `isearch-buffers-current-buffer' to the current buffer to display
the isearch suffix message [initial buffer] only when isearch leaves
the initial buffer."
(if (or (null isearch-buffers-pause)
(and isearch-buffers-pause isearch-buffers-current-buffer))
(progn
(switch-to-buffer
(setq isearch-buffers-current-buffer
(funcall isearch-buffers-next-buffer-function
(current-buffer) t)))
(goto-char (if isearch-forward (point-min) (point-max))))
(setq isearch-buffers-current-buffer (current-buffer))
(setq isearch-wrapped nil)))
(defun isearch-buffers-push-state ()
"Save a function restoring the state of multiple buffers search.
Save the current buffer to the additional state parameter in the
search status stack."
`(lambda (cmd)
(isearch-buffers-pop-state cmd ,(current-buffer))))
(defun isearch-buffers-pop-state (cmd buffer)
"Restore the multiple buffers search state.
Switch to the buffer restored from the search status stack."
(unless (equal buffer (current-buffer))
(switch-to-buffer (setq isearch-buffers-current-buffer buffer))))
(provide 'isearch-multi)
;; arch-tag: a6d38ffa-4d14-4e39-8ac6-46af9d6a6773
;;; isearch-multi.el ends here

View file

@ -2031,7 +2031,12 @@ Can be changed via `isearch-search-fun-function' for special needs."
(if isearch-forward (< pos2 pos1) (> pos2 pos1))))
(setq pos1 pos2)
(set-match-data match-data)))))
(if pos1
(when pos1
;; When using multiple buffers isearch, switch to the new buffer here,
;; because `save-excursion' above doesn't allow doing it inside funcall.
(if (and isearch-buffers-next-buffer-function
(buffer-live-p isearch-buffers-current-buffer))
(switch-to-buffer isearch-buffers-current-buffer))
(goto-char pos1))
pos1))

View file

@ -133,35 +133,42 @@ from a file."
write-region-annotate-functions)
"A list of special hooks from Info node `(elisp)Standard Hooks'.
These are symbols with hook-type values whose names don't end in
`-hook' or `-hooks', from which `unload-feature' tries to remove
These are symbols with hooklike values whose names don't end in
`-hook' or `-hooks', from which `unload-feature' should try to remove
pertinent symbols.")
(defvar unload-function-features-list nil
"List of features of the package being unloaded.
(defvar unload-function-defs-list nil
"List of defintions in the Lisp library being unloaded.
This is meant to be used by FEATURE-unload-function, see the
This is meant to be used by `FEATURE-unload-function'; see the
documentation of `unload-feature' for details.")
(define-obsolete-variable-alias 'unload-hook-features-list
'unload-function-features-list "22.2")
'unload-function-defs-list "22.2")
;;;###autoload
(defun unload-feature (feature &optional force)
"Unload the library that provided FEATURE, restoring all its autoloads.
"Unload the library that provided FEATURE.
If the feature is required by any other loaded code, and prefix arg FORCE
is nil, raise an error.
This function tries to undo any modifications that the package has
made to hook values in Emacs. Normally it does this using heuristics.
The packages may define a hook `FEATURE-unload-hook'; if that exists,
it is called instead of the normal heuristics.
Standard unloading activities include restoring old autoloads for
functions defined by the library, undoing any additions that the
library has made to hook variables or to `auto-mode-alist', undoing
ELP profiling of functions in that library, unproviding any features
provided by the library, and canceling timers held in variables
defined by the library.
Such a hook should undo all the relevant global state changes that may
have been made by loading the package or executing functions in it.
It has access to the package's feature list (before anything is unbound)
in the variable `unload-hook-features-list' and could remove features
from it in the event that the package has done something strange,
such as redefining an Emacs function."
If a function `FEATURE-unload-function' is defined, this function
calls it with no arguments, before doing anything else. That function
can do whatever is appropriate to undo the loading of the library. If
`FEATURE-unload-function' returns non-nil, that suppresses the
standard unloading of the library. Otherwise the standard unloading
proceeds.
`FEATURE-unload-function' has access to the package's list of
definitions in the variable `unload-function-defs-list' and could
remove symbols from it in the event that the package has done
something strange, such as redefining an Emacs function."
(interactive
(list
(read-feature "Unload feature: " t)
@ -174,8 +181,8 @@ such as redefining an Emacs function."
(when dependents
(error "Loaded libraries %s depend on %s"
(prin1-to-string dependents) file))))
(let* ((unload-function-features-list (feature-symbols feature))
(file (pop unload-function-features-list))
(let* ((unload-function-defs-list (feature-symbols feature))
(file (pop unload-function-defs-list))
;; If non-nil, this is a symbol for which we should
;; restore a previous autoload if possible.
restore-autoload
@ -207,22 +214,22 @@ such as redefining an Emacs function."
(or (and (consp (symbol-value x)) ; Random hooks.
(string-match "-hooks?\\'" (symbol-name x)))
(memq x unload-feature-special-hooks))) ; Known abnormal hooks etc.
(dolist (y unload-function-features-list)
(dolist (y unload-function-defs-list)
(when (and (eq (car-safe y) 'defun)
(not (get (cdr y) 'autoload)))
(remove-hook x (cdr y)))))))
;; Remove any feature-symbols from auto-mode-alist as well.
(dolist (y unload-function-features-list)
(dolist (y unload-function-defs-list)
(when (and (eq (car-safe y) 'defun)
(not (get (cdr y) 'autoload)))
(setq auto-mode-alist
(rassq-delete-all (cdr y) auto-mode-alist)))))
(when (fboundp 'elp-restore-function) ; remove ELP stuff first
(dolist (elt unload-function-features-list)
(dolist (elt unload-function-defs-list)
(when (symbolp elt)
(elp-restore-function elt))))
(dolist (x unload-function-features-list)
(dolist (x unload-function-defs-list)
(if (consp x)
(case (car x)
;; Remove any feature names that this file provided.

View file

@ -185,11 +185,11 @@
(load "vms-patch")))
(if (eq system-type 'windows-nt)
(progn
(load "w32-vars")
(load "term/w32-win")
(load "ls-lisp")
(load "disp-table") ; needed to setup ibm-pc char set, see internal.el
(load "dos-w32")
(load "w32-vars")
(load "w32-fns")))
(if (eq system-type 'ms-dos)
(progn

View file

@ -401,7 +401,7 @@ and ends."
(goto-char end)
(log-view-msg-next)
(setq to (log-view-current-tag))))
(vc-version-diff (log-view-current-file) to fr)))
(vc-version-diff (list (log-view-current-file)) to fr)))
(provide 'log-view)

View file

@ -272,9 +272,9 @@ Buffer is not displayed if SHOW is non-nil."
(end-of-line)
(point)))
mspools-files-len)
(next-line (- 1 mspools-files-len)) ;back to top of list
(forward-line (- 1 mspools-files-len)) ;back to top of list
;; else just on to next line
(next-line 1))
(forward-line 1))
;; Choose whether to use VM or RMAIL for reading folder.
(if mspools-using-vm

View file

@ -110,7 +110,7 @@ First try the file indicated by environment variable MAIL$TRAILER.
If that fails, try the file \"~/.signature\".
If neither file exists, fails quietly."
(interactive)
(end-of-buffer)
(goto-char (point-max))
(newline)
(if (vms-system-info "LOGICAL" "MAIL$TRAILER")
(if (file-attributes (vms-system-info "LOGICAL" "MAIL$TRAILER"))

View file

@ -56,9 +56,10 @@ A large number or nil slows down menu responsiveness."
(defvar menu-bar-tools-menu (make-sparse-keymap "Tools"))
(define-key global-map [menu-bar tools] (cons "Tools" menu-bar-tools-menu))
;; This definition is just to show what this looks like.
;; It gets overridden below when menu-bar-update-buffers is called.
;; It gets modified in place when menu-bar-update-buffers is called.
(defvar global-buffers-menu-map (make-sparse-keymap "Buffers"))
(define-key global-map [menu-bar buffer]
(cons "Buffers" (make-sparse-keymap "Buffers")))
(cons "Buffers" global-buffers-menu-map))
(defvar menu-bar-options-menu (make-sparse-keymap "Options"))
(define-key global-map [menu-bar options]
(cons "Options" menu-bar-options-menu))
@ -1576,7 +1577,7 @@ Buffers menu is regenerated."
(or force (frame-or-buffer-changed-p))
(let ((buffers (buffer-list))
(frames (frame-list))
buffers-menu frames-menu)
buffers-menu)
;; If requested, list only the N most recently selected buffers.
(if (and (integerp buffers-menu-max-size)
(> buffers-menu-max-size 1))
@ -1677,10 +1678,10 @@ Buffers menu is regenerated."
(setq buffers-menu
(nconc buffers-menu menu-bar-buffers-menu-command-entries))
(setq buffers-menu (cons 'keymap (cons "Select Buffer" buffers-menu)))
(define-key (current-global-map) [menu-bar buffer]
;; Call copy-sequence so the string is not pure.
(cons (copy-sequence "Buffers") buffers-menu)))))
;; We used to "(define-key (current-global-map) [menu-bar buffer]"
;; but that did not do the right thing when the [menu-bar buffer]
;; entry above had been moved (e.g. to a parent keymap).
(setcdr global-buffers-menu-map (cons "Select Buffer" buffers-menu)))))
(add-hook 'menu-bar-update-hook 'menu-bar-update-buffers)
@ -1789,5 +1790,5 @@ If FRAME is nil or not given, use the selected frame."
(provide 'menu-bar)
;;; arch-tag: 6e6a3c22-4ec4-4d3d-8190-583f8ef94ced
;; arch-tag: 6e6a3c22-4ec4-4d3d-8190-583f8ef94ced
;;; menu-bar.el ends here

View file

@ -454,9 +454,9 @@ An item looks like (NAME . BUFFER)."
(defun msb-sort-by-directory (item1 item2)
"Sort the items ITEM1 and ITEM2 by directory name. Made for dired.
An item look like (NAME . BUFFER)."
(string-lessp (save-excursion (set-buffer (cdr item1))
(string-lessp (with-current-buffer (cdr item1)
(msb--dired-directory))
(save-excursion (set-buffer (cdr item2))
(with-current-buffer (cdr item2)
(msb--dired-directory))))
;;;
@ -581,8 +581,7 @@ If the argument is left out or nil, then the current buffer is considered."
(while rest
(let ((found-p nil)
(tmp-rest rest)
result
new-dir item)
item)
(setq item (car tmp-rest))
;; Clump together the "rest"-buffers that have a dir that is
;; a subdir of the current one.
@ -745,8 +744,7 @@ to the buffer-list variable in function-info."
(unless (and (not msb-display-invisible-buffers-p)
(msb-invisible-buffer-p buffer))
(condition-case nil
(save-excursion
(set-buffer buffer)
(with-current-buffer buffer
;; Menu found. Add to this menu
(dolist (info (msb--collect function-info-vector))
(msb--add-to-menu buffer info max-buffer-name-length)))
@ -791,8 +789,7 @@ Example:
results in
\((a a1 a2 a4 a3) (b b1 b3 b2) (c c3))"
(when (not (null alist))
(let (result
same
(let (same
tmp-old-car
tmp-same
(first-time-p t)
@ -817,7 +814,8 @@ results in
old-car (car item))
(list (cons tmp-old-car (nreverse tmp-same))))))
(sort alist (lambda (item1 item2)
(funcall sort-predicate (car item1) (car item2))))))
(funcall sort-predicate
(car item1) (car item2))))))
(list (cons old-car (nreverse same)))))))
@ -831,8 +829,7 @@ results in
(sort
(let ((mode-list nil))
(dolist (buffer (cdr (buffer-list)))
(save-excursion
(set-buffer buffer)
(with-current-buffer buffer
(when (and (not (msb-invisible-buffer-p))
(not (assq major-mode mode-list)))
(push (cons major-mode mode-name)
@ -850,12 +847,10 @@ It takes the form ((TITLE . BUFFER-LIST)...)."
(most-recently-used
(loop with n = 0
for buffer in buffers
if (save-excursion
(set-buffer buffer)
if (with-current-buffer buffer
(and (not (msb-invisible-buffer-p))
(not (eq major-mode 'dired-mode))))
collect (save-excursion
(set-buffer buffer)
collect (with-current-buffer buffer
(cons (funcall msb-item-handling-function
buffer
max-buffer-name-length)
@ -908,21 +903,19 @@ It takes the form ((TITLE . BUFFER-LIST)...)."
(when file-buffers
(setq file-buffers
(mapcar (lambda (buffer-list)
(cons msb-files-by-directory-sort-key
(cons (car buffer-list)
(list* msb-files-by-directory-sort-key
(car buffer-list)
(sort
(mapcar (function
(lambda (buffer)
(cons (save-excursion
(set-buffer buffer)
(funcall msb-item-handling-function
(mapcar (lambda (buffer)
(cons (with-current-buffer buffer
(funcall
msb-item-handling-function
buffer
max-buffer-name-length))
buffer)))
buffer))
(cdr buffer-list))
(function
(lambda (item1 item2)
(string< (car item1) (car item2))))))))
(string< (car item1) (car item2))))))
(msb--choose-file-menu file-buffers))))
;; Now make the menu - a list of (TITLE . BUFFER-LIST)
(let* (menu
@ -1103,7 +1096,8 @@ variable `msb-menu-cond'."
buffers-menu frames-menu)
;; Make the menu of buffers proper.
(setq msb--last-buffer-menu (msb--create-buffer-menu))
(setq buffers-menu msb--last-buffer-menu)
;; Skip the `keymap' symbol.
(setq buffers-menu (cdr msb--last-buffer-menu))
;; Make a Frames menu if we have more than one frame.
(when (cdr frames)
(let* ((frame-length (length frames))
@ -1124,14 +1118,13 @@ variable `msb-menu-cond'."
(cons nil nil))
'menu-bar-select-frame))
frames)))))
(define-key (current-global-map) [menu-bar buffer]
(cons "Buffers"
(setcdr global-buffers-menu-map
(if (and buffers-menu frames-menu)
;; Combine Frame and Buffers menus with separator between
(nconc (list 'keymap "Buffers and Frames" frames-menu
(nconc (list "Buffers and Frames" frames-menu
(and msb-separator-diff '(separator "--")))
(cddr buffers-menu))
(or buffers-menu 'undefined)))))))
(cdr buffers-menu))
buffers-menu)))))
;; Snarf current bindings of `mouse-buffer-menu' (normally
;; C-down-mouse-1).
@ -1163,5 +1156,5 @@ different buffer menu using the function `msb'."
(provide 'msb)
(eval-after-load "msb" '(run-hooks 'msb-after-load-hook 'msb-after-load-hooks))
;;; arch-tag: 403f9e82-b92e-4e7a-a797-5d6d9b76da36
;; arch-tag: 403f9e82-b92e-4e7a-a797-5d6d9b76da36
;;; msb.el ends here

View file

@ -3813,7 +3813,7 @@ Value is (0 0) if the modification time cannot be determined."
(ange-ftp-call-cont cont result line)))
(defun ange-ftp-copy-file (filename newname &optional ok-if-already-exists
keep-date)
keep-date preserve-uid-gid)
(interactive "fCopy file: \nFCopy %s to file: \np")
(ange-ftp-copy-file-internal filename
newname

View file

@ -46,10 +46,7 @@
;; browse-url-cci XMosaic 2.5
;; browse-url-w3 w3 0
;; browse-url-w3-gnudoit w3 remotely
;; browse-url-iximosaic IXI Mosaic ?
;; browse-url-lynx-* Lynx 0
;; browse-url-grail Grail 0.3b1
;; browse-url-mmm MMM ?
;; browse-url-generic arbitrary
;; browse-url-default-windows-browser MS-Windows browser
;; browse-url-default-macosx-browser Mac OS X browser
@ -80,14 +77,6 @@
;; Emacs process is available from
;; <URL:ftp://ftp.splode.com/pub/users/friedman/packages/>.
;; Grail is the freely available WWW browser implemented in Python, a
;; cool object-oriented freely available interpreted language. Grail
;; 0.3b1 was the first version to have remote control as distributed.
;; For more information on Grail see
;; <URL:http://grail.cnri.reston.va.us/> and for more information on
;; Python see <url:http://www.python.org/>. Grail support in
;; browse-url.el written by Barry Warsaw <bwarsaw@python.org>.
;; Lynx is now distributed by the FSF. See also
;; <URL:http://lynx.browser.org/>.
@ -257,13 +246,10 @@ regexp should probably be \".\" to specify a default browser."
(function-item :tag "Netscape" :value browse-url-netscape)
(function-item :tag "Mosaic" :value browse-url-mosaic)
(function-item :tag "Mosaic using CCI" :value browse-url-cci)
(function-item :tag "IXI Mosaic" :value browse-url-iximosaic)
(function-item :tag "Lynx in an xterm window"
:value browse-url-lynx-xterm)
(function-item :tag "Lynx in an Emacs window"
:value browse-url-lynx-emacs)
(function-item :tag "Grail" :value browse-url-grail)
(function-item :tag "MMM" :value browse-url-mmm)
(function-item :tag "KDE" :value browse-url-kde)
(function-item :tag "Elinks" :value browse-url-elinks)
(function-item :tag "Specified by `Browse Url Generic Program'"
@ -880,8 +866,7 @@ When called non-interactively, optional second argument NEW-WINDOW is
used instead of `browse-url-new-window-flag'.
The order attempted is gnome-moz-remote, Mozilla, Firefox,
Galeon, Konqueror, Netscape, Mosaic, IXI Mosaic, Lynx in an
xterm, MMM, and then W3."
Galeon, Konqueror, Netscape, Mosaic, Lynx in an xterm, and then W3."
(apply
(cond
((executable-find browse-url-gnome-moz-program) 'browse-url-gnome-moz)
@ -891,9 +876,7 @@ xterm, MMM, and then W3."
((executable-find browse-url-kde-program) 'browse-url-kde)
((executable-find browse-url-netscape-program) 'browse-url-netscape)
((executable-find browse-url-mosaic-program) 'browse-url-mosaic)
((executable-find "tellw3b") 'browse-url-iximosaic)
((executable-find browse-url-xterm-program) 'browse-url-lynx-xterm)
((executable-find "mmm") 'browse-url-mmm)
((locate-library "w3") 'browse-url-w3)
(t
(lambda (&ignore args) (error "No usable browser found"))))
@ -1170,6 +1153,8 @@ used instead of `browse-url-new-window-flag'."
browse-url-epiphany-program
(append browse-url-epiphany-startup-arguments (list url))))))
(defvar url-handler-regexp)
;;;###autoload
(defun browse-url-emacs (url &optional new-window)
"Ask Emacs to load URL into a buffer and show it in another window."
@ -1257,28 +1242,6 @@ used instead of `browse-url-new-window-flag'."
(append browse-url-mosaic-arguments (list url)))
(message "Starting %s...done" browse-url-mosaic-program))))
;; --- Grail ---
(defvar browse-url-grail
(concat (or (getenv "GRAILDIR") "~/.grail") "/user/rcgrail.py")
"Location of Grail remote control client script `rcgrail.py'.
Typically found in $GRAILDIR/rcgrail.py, or ~/.grail/user/rcgrail.py.")
;;;###autoload
(defun browse-url-grail (url &optional new-window)
"Ask the Grail WWW browser to load URL.
Default to the URL around or before point. Runs the program in the
variable `browse-url-grail'."
(interactive (browse-url-interactive-arg "Grail URL: "))
(message "Sending URL to Grail...")
(with-current-buffer (get-buffer-create " *Shell Command Output*")
(erase-buffer)
;; don't worry about this failing.
(if (browse-url-maybe-new-window new-window)
(call-process browse-url-grail nil 0 nil "-b" url)
(call-process browse-url-grail nil 0 nil url))
(message "Sending URL to Grail... done")))
;; --- Mosaic using CCI ---
;;;###autoload
@ -1310,17 +1273,6 @@ used instead of `browse-url-new-window-flag'."
(process-send-string "browse-url" "disconnect\r\n")
(delete-process "browse-url"))
;; --- IXI Mosaic ---
;;;###autoload
(defun browse-url-iximosaic (url &optional new-window)
;; new-window ignored
"Ask the IXIMosaic WWW browser to load URL.
Default to the URL around or before point."
(interactive (browse-url-interactive-arg "IXI Mosaic URL: "))
(start-process "tellw3b" nil "tellw3b"
"-service WWW_BROWSER ixi_showurl " url))
;; --- W3 ---
;;;###autoload
@ -1433,24 +1385,6 @@ used instead of `browse-url-new-window-flag'."
url
"\r")))))
;; --- MMM ---
;;;###autoload
(defun browse-url-mmm (url &optional new-window)
"Ask the MMM WWW browser to load URL.
Default to the URL around or before point."
(interactive (browse-url-interactive-arg "MMM URL: "))
(message "Sending URL to MMM...")
(with-current-buffer (get-buffer-create " *Shell Command Output*")
(erase-buffer)
;; mmm_remote just SEGVs if the file isn't there...
(if (or (file-exists-p (expand-file-name "~/.mmm_remote"))
;; location in v 0.4:
(file-exists-p (expand-file-name "~/.mmm/remote")))
(call-process "mmm_remote" nil 0 nil url)
(call-process "mmm" nil 0 nil "-external" url))
(message "Sending URL to MMM... done")))
;; --- mailto ---
(autoload 'rfc2368-parse-mailto-url "rfc2368")

View file

@ -149,7 +149,7 @@ display a button."
"Toggle inline display of an image."
(interactive)
(when (eudc-bob-can-display-inline-images)
(cond (eudc-xemacs-p
(cond ((featurep 'xemacs)
(let ((overlays (append (overlays-at (1- (point)))
(overlays-at (point))))
overlay glyph)
@ -266,7 +266,7 @@ display a button."
(interactive "@e")
(run-hooks 'activate-menubar-hook)
(eudc-jump-to-event event)
(if eudc-xemacs-p
(if (featurep 'xemacs)
(progn
(run-hooks 'activate-popup-menu-hook)
(popup-menu (eudc-bob-menu)))
@ -282,7 +282,7 @@ display a button."
(let ((map (make-sparse-keymap)))
(define-key map "s" 'eudc-bob-save-object)
(define-key map "!" 'eudc-bob-pipe-object-to-external-program)
(define-key map (if eudc-xemacs-p
(define-key map (if (featurep 'xemacs)
[button3]
[down-mouse-3]) 'eudc-bob-popup-menu)
map))
@ -295,7 +295,7 @@ display a button."
(setq eudc-bob-sound-keymap
(let ((map (make-sparse-keymap)))
(define-key map [return] 'eudc-bob-play-sound-at-point)
(define-key map (if eudc-xemacs-p
(define-key map (if (featurep 'xemacs)
[button2]
[down-mouse-2]) 'eudc-bob-play-sound-at-mouse)
map))
@ -303,7 +303,7 @@ display a button."
(setq eudc-bob-url-keymap
(let ((map (make-sparse-keymap)))
(define-key map [return] 'browse-url-at-point)
(define-key map (if eudc-xemacs-p
(define-key map (if (featurep 'xemacs)
[button2]
[down-mouse-2]) 'browse-url-at-mouse)
map))
@ -311,7 +311,7 @@ display a button."
(setq eudc-bob-mail-keymap
(let ((map (make-sparse-keymap)))
(define-key map [return] 'goto-address-at-point)
(define-key map (if eudc-xemacs-p
(define-key map (if (featurep 'xemacs)
[button2]
[down-mouse-2]) 'goto-address-at-mouse)
map))
@ -319,8 +319,7 @@ display a button."
(set-keymap-parent eudc-bob-image-keymap eudc-bob-generic-keymap)
(set-keymap-parent eudc-bob-sound-keymap eudc-bob-generic-keymap)
(if eudc-emacs-p
(progn
(when (not (featurep 'xemacs))
(easy-menu-define eudc-bob-generic-menu
eudc-bob-generic-keymap
""
@ -332,7 +331,7 @@ display a button."
(easy-menu-define eudc-bob-sound-menu
eudc-bob-sound-keymap
""
eudc-bob-sound-menu)))
eudc-bob-sound-menu))
;;;###autoload
(defun eudc-display-generic-binary (data)

View file

@ -190,7 +190,7 @@ These are the special commands of this mode:
["Save and Quit" eudc-hotlist-quit-edit t]
["Exit without Saving" kill-this-buffer t]))
(if eudc-emacs-p
(when (not (featurep 'xemacs))
(easy-menu-define eudc-hotlist-emacs-menu
eudc-hotlist-mode-map
""

View file

@ -66,13 +66,6 @@
;;{{{ Internal variables and compatibility tricks
(defconst eudc-xemacs-p (string-match "XEmacs" emacs-version))
(defconst eudc-emacs-p (not eudc-xemacs-p))
(defconst eudc-xemacs-mule-p (and eudc-xemacs-p
(featurep 'mule)))
(defconst eudc-emacs-mule-p (and eudc-emacs-p
(featurep 'mule)))
(defvar eudc-form-widget-list nil)
(defvar eudc-mode-map nil)
@ -670,7 +663,7 @@ These are the special commands of EUDC mode:
(setq major-mode 'eudc-mode)
(setq mode-name "EUDC")
(use-local-map eudc-mode-map)
(if eudc-emacs-p
(if (not (featurep 'xemacs))
(easy-menu-define eudc-emacs-menu eudc-mode-map "" (eudc-menu))
(setq mode-popup-menu (eudc-menu)))
(run-mode-hooks 'eudc-mode-hook))
@ -1186,9 +1179,9 @@ queries the server for the existing fields and displays a corresponding form."
(defun eudc-install-menu ()
(cond
((and eudc-xemacs-p (featurep 'menubar))
((and (featurep 'xemacs) (featurep 'menubar))
(add-submenu '("Tools") (eudc-menu)))
(eudc-emacs-p
((not (featurep 'xemacs))
(cond
((fboundp 'easy-menu-create-menu)
(define-key
@ -1236,7 +1229,7 @@ This does nothing except loading eudc by autoload side-effect."
nil)
;;;###autoload
(cond ((not (string-match "XEmacs" emacs-version))
(cond ((not (featurep 'xemacs))
(defvar eudc-tools-menu (make-sparse-keymap "Directory Search"))
(fset 'eudc-tools-menu (symbol-value 'eudc-tools-menu))
(define-key eudc-tools-menu [phone]
@ -1267,7 +1260,7 @@ This does nothing except loading eudc by autoload side-effect."
["Get Email" eudc-get-email t]
["Get Phone" eudc-get-phone t])))
(if (not (featurep 'eudc-autoloads))
(if eudc-xemacs-p
(if (featurep 'xemacs)
(if (and (featurep 'menubar)
(not (featurep 'infodock)))
(add-submenu '("Tools") menu))

View file

@ -179,7 +179,7 @@ SERVER is either a string naming the server or a list (NAME PORT)."
(set-buffer eudc-ph-process-buffer)
(erase-buffer)
(setq eudc-ph-read-point (point))
(and eudc-xemacs-mule-p
(and (featurep 'xemacs) (featurep 'mule)
(set-buffer-file-coding-system 'binary t)))
(setq process (open-network-stream "ph" eudc-ph-process-buffer host port))
(if (null process)

View file

@ -1281,6 +1281,20 @@ Logfiles are kept in `rcirc-log-directory'."
:type 'boolean
:group 'rcirc)
(defvar rcirc-markup-text-functions
'(rcirc-markup-attributes
rcirc-markup-my-nick
rcirc-markup-urls
rcirc-markup-keywords
rcirc-markup-bright-nicks
rcirc-markup-fill)
"List of functions used to manipulate text before it is printed.
Each function takes two arguments, SENDER, RESPONSE. The buffer
is narrowed with the text to be printed and the point is at the
beginning of the `rcirc-text' propertized text.")
(defun rcirc-print (process sender response target text &optional activity)
"Print TEXT in the buffer associated with TARGET.
Format based on SENDER and RESPONSE. If ACTIVITY is non-nil,
@ -2083,20 +2097,6 @@ keywords when no KEYWORD is given."
(rcirc-browse-url-at-point (posn-point position)))))
(defvar rcirc-markup-text-functions
'(rcirc-markup-attributes
rcirc-markup-my-nick
rcirc-markup-urls
rcirc-markup-keywords
rcirc-markup-bright-nicks
rcirc-markup-fill)
"List of functions used to manipulate text before it is printed.
Each function takes two arguments, SENDER, RESPONSE. The buffer
is narrowed with the text to be printed and the point is at the
beginning of the `rcirc-text' propertized text.")
(defun rcirc-markup-timestamp (sender response)
(goto-char (point-min))
(insert (rcirc-facify (format-time-string rcirc-time-format)

148
lisp/net/tramp-cmds.el Normal file
View file

@ -0,0 +1,148 @@
;;; tramp-cmds.el --- Interactive commands for Tramp
;; Copyright (C) 2007 Free Software Foundation, Inc.
;; Author: Michael Albinus <michael.albinus@gmx.de>
;; Keywords: comm, processes
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, see
;; <http://www.gnu.org/licenses/>.
;;; Commentary:
;; This package provides all interactive commands which are releated
;; to Tramp.
;;; Code:
(require 'tramp)
(defun tramp-list-tramp-buffers ()
"Return a list of all Tramp connection buffers."
(append
(all-completions
"*tramp" (mapcar 'list (mapcar 'buffer-name (buffer-list))))
(all-completions
"*debug tramp" (mapcar 'list (mapcar 'buffer-name (buffer-list))))))
(defun tramp-list-remote-buffers ()
"Return a list of all buffers with remote default-directory."
(delq
nil
(mapcar
(lambda (x)
(with-current-buffer x
(when (and (stringp default-directory)
(file-remote-p default-directory))
x)))
(buffer-list))))
(defun tramp-cleanup-connection (vec)
"Flush all connection related objects.
This includes password cache, file cache, connection cache, buffers.
When called interactively, a Tramp connection has to be selected."
(interactive
;; When interactive, select the Tramp remote identification.
;; Return nil when there is no Tramp connection.
(list
(let ((connections
(mapcar
(lambda (x)
(with-current-buffer x (list (file-remote-p default-directory))))
;; We shall not count debug buffers, because their
;; default-directory is random. It could be even a remote
;; one from another connection.
(all-completions
"*tramp" (mapcar 'list (tramp-list-tramp-buffers)))))
name)
(when connections
(setq name
(completing-read
"Enter Tramp connection: " connections nil t
(try-completion "" connections)))
(when (and name (file-remote-p name))
(with-parsed-tramp-file-name name nil v))))))
(if (not vec)
;; Nothing to do.
(message "No Tramp connection found.")
;; Flush password cache.
(tramp-clear-passwd vec)
;; Flush file cache.
(tramp-flush-directory-property vec "/")
;; Flush connection cache.
(tramp-flush-connection-property (tramp-get-connection-process vec) nil)
(tramp-flush-connection-property vec nil)
;; Remove buffers.
(dolist
(buf (list (get-buffer (tramp-buffer-name vec))
(get-buffer (tramp-debug-buffer-name vec))
(tramp-get-connection-property vec "process-buffer" nil)))
(when (bufferp buf) (kill-buffer buf)))))
(defun tramp-cleanup-all-connections ()
"Flush all Tramp internal objects.
This includes password cache, file cache, connection cache, buffers."
(interactive)
;; Flush password cache.
(when (functionp 'password-reset)
(funcall (symbol-function 'password-reset)))
;; Flush file and connection cache.
(clrhash tramp-cache-data)
;; Remove buffers.
(dolist (name (tramp-list-tramp-buffers))
(when (bufferp (get-buffer name)) (kill-buffer name))))
(defun tramp-cleanup-all-buffers ()
"Kill all remote buffers."
(interactive)
;; Remove all Tramp related buffers.
(tramp-cleanup-all-connections)
;; Remove all buffers with a remote default-directory.
(dolist (name (tramp-list-remote-buffers))
(when (bufferp (get-buffer name)) (kill-buffer name))))
(provide 'tramp-cmds)
;;; TODO:
;; * Clean up unused *tramp/foo* buffers after a while. (Pete Forman)
;; * WIBNI there was an interactive command prompting for tramp
;; method, hostname, username and filename and translates the user
;; input into the correct filename syntax (depending on the Emacs
;; flavor) (Reiner Steib)
;; * Let the user edit the connection properties interactively.
;; Something like `gnus-server-edit-server' in Gnus' *Server* buffer.
;; * It's just that when I come to Customize `tramp-default-user-alist'
;; I'm presented with a mismatch and raw lisp for a value. It is my
;; understanding that a variable declared with defcustom is a User
;; Option and should not be modified by the code. add-to-list is
;; called in several places. One way to handle that is to have a new
;; ordinary variable that gets its initial value from
;; tramp-default-user-alist and then is added to. (Pete Forman)
;; arch-tag: 190d4c33-76bb-4e99-8b6f-71741f23d98c
;;; tramp-cmds.el ends here

View file

@ -284,12 +284,11 @@ PROXY is an indication whether we need a Proxy-Authorization header
or an Authorization header. If PW-CACHE is non-nil, check for
password in password cache. This is done for the first try only."
;; `tramp-current-*' must be set for `tramp-read-passwd' and
;; `tramp-clear-passwd'.
;; `tramp-current-*' must be set for `tramp-read-passwd'.
(let ((tramp-current-method (tramp-file-name-method tramp-gw-gw-vector))
(tramp-current-user (tramp-file-name-user tramp-gw-gw-vector))
(tramp-current-host (tramp-file-name-host tramp-gw-gw-vector)))
(unless pw-cache (tramp-clear-passwd))
(unless pw-cache (tramp-clear-passwd tramp-gw-gw-vector))
;; We are already in the right buffer.
(tramp-message
tramp-gw-vector 5 "%s required"

View file

@ -115,41 +115,34 @@
;; The following Tramp packages must be loaded after Tramp, because
;; they require Tramp as well.
(eval-after-load "tramp"
'(progn
'(dolist
(feature
(list
;; Tramp commands.
'tramp-cmds
;; Load foreign FTP method.
(let ((feature (if (featurep 'xemacs) 'tramp-efs 'tramp-ftp)))
(if (featurep 'xemacs) 'tramp-efs 'tramp-ftp)
;; tramp-smb uses "smbclient" from Samba. Not available
;; under Cygwin and Windows, because they don't offer
;; "smbclient". And even not necessary there, because Emacs
;; supports UNC file names like "//host/share/localname".
(unless (memq system-type '(cygwin windows-nt)) 'tramp-smb)
;; Load foreign FISH method.
'tramp-fish
;; Load gateways. It needs `make-network-process' from Emacs 22.
(when (functionp 'make-network-process) 'tramp-gw)))
(when feature
(require feature)
(add-hook 'tramp-unload-hook
`(lambda ()
(when (featurep ,feature)
(unload-feature ,feature 'force)))))
;; tramp-smb uses "smbclient" from Samba. Not available under
;; Cygwin and Windows, because they don't offer "smbclient". And
;; even not necessary there, because Emacs supports UNC file names
;; like "//host/share/localname".
(unless (memq system-type '(cygwin windows-nt))
(require 'tramp-smb)
(add-hook 'tramp-unload-hook
'(lambda ()
(when (featurep 'tramp-smb)
(unload-feature 'tramp-smb 'force)))))
;; Load foreign FISH method.
(require 'tramp-fish)
(add-hook 'tramp-unload-hook
'(lambda ()
(when (featurep 'tramp-fish)
(unload-feature 'tramp-fish 'force))))
;; Load gateways. It needs `make-network-process' from Emacs 22.
(when (functionp 'make-network-process)
(require 'tramp-gw)
(add-hook 'tramp-unload-hook
'(lambda ()
(when (featurep 'tramp-gw)
(unload-feature 'tramp-gw 'force)))))))
(unload-feature ,feature 'force)))))))
;;; User Customizable Internal Variables:
@ -1965,21 +1958,9 @@ The intent is to protect against `obsolete variable' warnings."
(put 'tramp-let-maybe 'lisp-indent-function 2)
(put 'tramp-let-maybe 'edebug-form-spec t)
(defsubst tramp-make-tramp-temp-file (vec &optional dont-create)
(defsubst tramp-make-tramp-temp-file (vec)
"Create a temporary file on the remote host identified by VEC.
Return the local name of the temporary file.
If DONT-CREATE is non-nil, just the file name is returned without
creation of the temporary file. This is not the preferred way to run,
but it is necessary during connection setup, because we cannot create
a remote file at this time. This parameter shall NOT be set to
non-nil else."
(if dont-create
;; It sounds a little bit stupid to create a LOCAL file name.
;; But we intend to use the remote directory "/tmp", and we have
;; no chance to check whether a temporary file exists already
;; remotely, because we have no working connection yet.
(make-temp-name (expand-file-name tramp-temp-name-prefix "/tmp"))
Return the local name of the temporary file."
(let ((prefix
(tramp-make-tramp-file-name
(tramp-file-name-method vec)
@ -1988,7 +1969,7 @@ non-nil else."
(expand-file-name tramp-temp-name-prefix "/tmp")))
result)
(while (not result)
;; `make-temp-file' would be the first choice for
;; `make-temp-file' would be the natural choice for
;; implementation. But it calls `write-region' internally,
;; which also needs a temporary file - we would end in an
;; infinite loop.
@ -2000,7 +1981,7 @@ non-nil else."
(set-file-modes result (tramp-octal-to-decimal "0700"))))
;; Return the local part.
(with-parsed-tramp-file-name result nil localname))))
(with-parsed-tramp-file-name result nil localname)))
;;; Config Manipulation Functions:
@ -2594,11 +2575,14 @@ and gid of the corresponding user is taken. Both parameters must be integers."
;; We handle also the local part, because there doesn't exist
;; `set-file-uid-gid'.
(let ((uid (or (and (integerp uid) uid) (tramp-get-local-uid 'integer)))
(gid (or (and (integerp gid) gid) (tramp-get-local-uid 'integer)))
(gid (or (and (integerp gid) gid) (tramp-get-local-gid 'integer)))
(default-directory (tramp-compat-temporary-file-directory)))
;; "chown" might not exist, for example on Win32.
(condition-case nil
(call-process
"chown" nil nil nil
(format "%d:%d" uid gid) (tramp-shell-quote-argument filename)))))
(format "%d:%d" uid gid) (tramp-shell-quote-argument filename))
(error nil)))))
;; Simple functions using the `test' command.
@ -2824,7 +2808,7 @@ and gid of the corresponding user is taken. Both parameters must be integers."
(defun tramp-handle-file-name-all-completions (filename directory)
"Like `file-name-all-completions' for Tramp files."
(unless (save-match-data (string-match "/" filename))
(with-parsed-tramp-file-name directory nil
(with-parsed-tramp-file-name (expand-file-name directory) nil
(all-completions
filename
(mapcar
@ -3114,7 +3098,9 @@ the uid and gid from FILENAME."
(cond
;; We can do it directly.
((and (file-readable-p localname1)
(file-writable-p (file-name-directory localname2)))
(file-writable-p (file-name-directory localname2))
(or (file-directory-p localname2)
(file-writable-p localname2)))
(if (eq op 'copy)
(tramp-compat-copy-file
localname1 localname2 ok-if-already-exists
@ -3209,7 +3195,8 @@ be a local filename. The method used must be an out-of-band method."
;; Compose copy command.
(setq spec `((?h . ,host) (?u . ,user) (?p . ,port)
(?t . ,(tramp-make-tramp-temp-file v 'dont-create))
(?t . ,(tramp-get-connection-property
(tramp-get-connection-process v) "temp-file" ""))
(?k . ,(if keep-date " " "")))
copy-program (tramp-get-method-parameter
method 'tramp-copy-program)
@ -3224,8 +3211,7 @@ be a local filename. The method used must be an out-of-band method."
;; " " is indication for keep-date argument.
x (delete " " (mapcar '(lambda (y) (format-spec y spec)) x)))
(unless (member "" x) (mapconcat 'identity x " ")))
(tramp-get-method-parameter
method 'tramp-copy-args))))
(tramp-get-method-parameter method 'tramp-copy-args))))
;; Check for program.
(when (and (fboundp 'executable-find)
@ -3305,7 +3291,7 @@ be a local filename. The method used must be an out-of-band method."
(tramp-flush-directory-property v localname)
(unless (zerop (tramp-send-command-and-check
v
(format "rmdir %s"
(format "rmdir -f %s"
(tramp-shell-quote-argument localname))))
(tramp-error v 'file-error "Couldn't delete %s" directory))))
@ -3336,7 +3322,7 @@ This is like `dired-recursive-delete-directory' for Tramp files."
;; Which is better, -r or -R? (-r works for me <daniel@danann.net>)
(tramp-send-command
v
(format "rm -r %s" (tramp-shell-quote-argument localname))
(format "rm -rf %s" (tramp-shell-quote-argument localname))
;; Don't read the output, do it explicitely.
nil t)
;; Wait for the remote system to return to us...
@ -3896,8 +3882,9 @@ beginning of local filename are not substituted."
(setq buffer-file-name filename)
(set-visited-file-modtime)
(set-buffer-modified-p nil))
(tramp-error
v 'file-error "File %s not found on remote host" filename)
;; We don't raise a Tramp error, because it might be
;; suppressed, like in `find-file-noselect-1'.
(signal 'file-error (list "File not found on remote host" filename))
(list (expand-file-name filename) 0))
(if (and (tramp-local-host-p v)
@ -4065,52 +4052,59 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
(unless (y-or-n-p (format "File %s exists; overwrite anyway? " filename))
(tramp-error v 'file-error "File not overwritten")))
(let ((uid (or (nth 2 (file-attributes filename 'integer))
(tramp-get-remote-uid v 'integer)))
(gid (or (nth 3 (file-attributes filename 'integer))
(tramp-get-remote-gid v 'integer))))
(if (and (tramp-local-host-p v)
(file-writable-p (file-name-directory localname)))
(file-writable-p (file-name-directory localname))
(or (file-directory-p localname)
(file-writable-p localname)))
;; Short track: if we are on the local host, we can run directly.
(if confirm
(write-region
start end localname append 'no-message lockname confirm)
(write-region start end localname append 'no-message lockname))
(write-region start end localname append 'no-message lockname confirm)
(let ((rem-dec (tramp-get-remote-coding v "remote-decoding"))
(loc-enc (tramp-get-local-coding v "local-encoding"))
(modes (save-excursion (file-modes filename)))
;; We use this to save the value of `last-coding-system-used'
;; after writing the tmp file. At the end of the function,
;; we set `last-coding-system-used' to this saved value.
;; This way, any intermediary coding systems used while
;; talking to the remote shell or suchlike won't hose this
;; variable. This approach was snarfed from ange-ftp.el.
;; We use this to save the value of
;; `last-coding-system-used' after writing the tmp file.
;; At the end of the function, we set
;; `last-coding-system-used' to this saved value. This
;; way, any intermediary coding systems used while
;; talking to the remote shell or suchlike won't hose
;; this variable. This approach was snarfed from
;; ange-ftp.el.
coding-system-used
;; Write region into a tmp file. This isn't really needed if we
;; use an encoding function, but currently we use it always
;; because this makes the logic simpler.
;; Write region into a tmp file. This isn't really
;; needed if we use an encoding function, but currently
;; we use it always because this makes the logic
;; simpler.
(tmpfile (tramp-compat-make-temp-file filename)))
;; We say `no-message' here because we don't want the visited file
;; modtime data to be clobbered from the temp file. We call
;; `set-visited-file-modtime' ourselves later on.
;; We say `no-message' here because we don't want the
;; visited file modtime data to be clobbered from the temp
;; file. We call `set-visited-file-modtime' ourselves later
;; on.
(tramp-run-real-handler
'write-region
(if confirm ; don't pass this arg unless defined for backward compat.
(list start end tmpfile append 'no-message lockname confirm)
(list start end tmpfile append 'no-message lockname)))
(list start end tmpfile append 'no-message lockname confirm))
;; Now, `last-coding-system-used' has the right value. Remember it.
(when (boundp 'last-coding-system-used)
(setq coding-system-used (symbol-value 'last-coding-system-used)))
;; The permissions of the temporary file should be set. If
;; filename does not exist (eq modes nil) it has been renamed to
;; the backup file. This case `save-buffer' handles
;; permissions.
;; filename does not exist (eq modes nil) it has been
;; renamed to the backup file. This case `save-buffer'
;; handles permissions.
(when modes (set-file-modes tmpfile modes))
;; This is a bit lengthy due to the different methods possible for
;; file transfer. First, we check whether the method uses an rcp
;; program. If so, we call it. Otherwise, both encoding and
;; decoding command must be specified. However, if the method
;; _also_ specifies an encoding function, then that is used for
;; encoding the contents of the tmp file.
;; This is a bit lengthy due to the different methods
;; possible for file transfer. First, we check whether the
;; method uses an rcp program. If so, we call it.
;; Otherwise, both encoding and decoding command must be
;; specified. However, if the method _also_ specifies an
;; encoding function, then that is used for encoding the
;; contents of the tmp file.
(cond
;; `rename-file' handles direct copy and out-of-band methods.
((or (tramp-local-host-p v)
@ -4133,15 +4127,15 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
(symbol-name loc-enc))
(let ((coding-system-for-read 'binary))
(insert-file-contents-literally tmpfile))
;; CCC. The following `let' is a workaround for
;; the base64.el that comes with pgnus-0.84. If
;; both of the following conditions are
;; satisfied, it tries to write to a local file
;; in default-directory, but at this point,
;; default-directory is remote.
;; CCC. The following `let' is a workaround
;; for the base64.el that comes with
;; pgnus-0.84. If both of the following
;; conditions are satisfied, it tries to write
;; to a local file in default-directory, but
;; at this point, default-directory is remote.
;; (CALL-PROCESS-REGION can't write to remote
;; files, it seems.) The file in question is a
;; tmp file anyway.
;; files, it seems.) The file in question is
;; a tmp file anyway.
(let ((default-directory
(tramp-compat-temporary-file-directory)))
(funcall loc-enc (point-min) (point-max))))
@ -4156,8 +4150,8 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
filename loc-enc)))
;; Send buffer into remote decoding command which
;; writes to remote file. Because this happens on the
;; remote host, we cannot use the function.
;; writes to remote file. Because this happens on
;; the remote host, we cannot use the function.
(goto-char (point-max))
(unless (bolp) (newline))
(tramp-message
@ -4187,12 +4181,14 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
(zerop
(tramp-send-command-and-check
v
(format "cksum <%s" (tramp-shell-quote-argument localname))))
(format
"cksum <%s" (tramp-shell-quote-argument localname))))
;; ... they are different
(not
(string-equal
(buffer-string)
(with-current-buffer (tramp-get-buffer v) (buffer-string))))
(with-current-buffer (tramp-get-buffer v)
(buffer-string))))
(tramp-error
v 'file-error
(concat "Couldn't write region to `%s',"
@ -4215,16 +4211,18 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
;; Make `last-coding-system-used' have the right value.
(when coding-system-used
(set 'last-coding-system-used coding-system-used)))
(set 'last-coding-system-used coding-system-used))))
;; Set file modification time.
(when (or (eq visit t) (stringp visit))
(set-visited-file-modtime
;; We must pass modtime explicitely, because filename can be different
;; from (buffer-file-name), f.e. if `file-precious-flag' is set.
;; We must pass modtime explicitely, because filename can
;; be different from (buffer-file-name), f.e. if
;; `file-precious-flag' is set.
(nth 5 (file-attributes filename))))
;; Set the ownership.
(tramp-set-file-uid-gid filename)
(tramp-set-file-uid-gid filename uid gid)
(when (or (eq visit t) (null visit) (stringp visit))
(tramp-message v 0 "Wrote %s" filename))
(run-hooks 'tramp-handle-write-region-hook))))
@ -4519,62 +4517,6 @@ Falls back to normal file name handler if no tramp file name handler exists."
(add-hook 'tramp-unload-hook 'tramp-unload-file-name-handlers)
;;; Interactions with other packages:
;; -- complete.el --
;; This function contributed by Ed Sabol
(defun tramp-handle-expand-many-files (name)
"Like `PC-expand-many-files' for Tramp files."
(with-parsed-tramp-file-name name nil
(save-match-data
(if (or (string-match "\\*" name)
(string-match "\\?" name)
(string-match "\\[.*\\]" name))
(progn
(let (bufstr)
;; CCC: To do it right, we should quote certain characters
;; in the file name, but since the echo command is going to
;; break anyway when there are spaces in the file names, we
;; don't bother.
;;-(let ((comint-file-name-quote-list
;;- (set-difference tramp-file-name-quote-list
;;- '(?\* ?\? ?[ ?]))))
;;- (tramp-send-command
;;- method user host
;;- (format "echo %s" (comint-quote-filename localname))))
(tramp-send-command v (format "echo %s" localname))
(setq bufstr (buffer-substring
(point-min) (tramp-compat-line-end-position)))
(with-current-buffer (tramp-get-buffer v)
(goto-char (point-min))
(if (string-equal localname bufstr)
nil
(insert "(\"")
(while (search-forward " " nil t)
(delete-backward-char 1)
(insert "\" \""))
(goto-char (point-max))
(delete-backward-char 1)
(insert "\")")
(goto-char (point-min))
(mapcar
(function (lambda (x)
(tramp-make-tramp-file-name method user host x)))
(read (current-buffer)))))))
(list (expand-file-name name))))))
(eval-after-load "complete"
'(progn
(defadvice PC-expand-many-files
(around tramp-advice-PC-expand-many-files (name) activate)
"Invoke `tramp-handle-expand-many-files' for Tramp files."
(if (tramp-tramp-file-p name)
(setq ad-return-value (tramp-handle-expand-many-files name))
ad-do-it))
(add-hook 'tramp-unload-hook
'(lambda () (ad-unadvise 'PC-expand-many-files)))))
;;; File name handler functions for completion mode.
(defvar tramp-completion-mode nil
@ -5367,7 +5309,7 @@ file exists and nonzero exit status otherwise."
(unless (tramp-get-connection-property vec "remote-shell" nil)
(let (shell)
(with-current-buffer (tramp-get-buffer vec)
(tramp-send-command vec "echo ~root")
(tramp-send-command vec "echo ~root" t)
(cond
((string-match "^~root$" (buffer-string))
(setq shell
@ -5389,8 +5331,11 @@ file exists and nonzero exit status otherwise."
(when extra-args (setq shell (concat shell " " extra-args))))
(tramp-message
vec 5 "Starting remote shell `%s' for tilde expansion..." shell)
(tramp-send-command-internal
vec (concat "PROMPT_COMMAND='' PS1='$ ' exec " shell))
(tramp-message
vec 6 (format "PROMPT_COMMAND='' PS1='$ ' exec %s" shell))
;; We just send a string only without checking resulting prompt.
(tramp-send-string
vec (format "PROMPT_COMMAND='' PS1='$ ' exec %s" shell))
(tramp-message vec 5 "Setting remote shell prompt...")
;; Douglas Gray Stephens <DGrayStephens@slb.com> says that we
;; must use "\n" here, not tramp-rsh-end-of-line. Kai left the
@ -5401,7 +5346,8 @@ file exists and nonzero exit status otherwise."
(format "PROMPT_COMMAND=''; PS1='%s%s%s'; PS2=''; PS3=''"
tramp-rsh-end-of-line
tramp-end-of-output
tramp-rsh-end-of-line))
tramp-rsh-end-of-line)
t)
(tramp-message vec 5 "Setting remote shell prompt...done"))
(t (tramp-message
vec 5 "Remote `%s' groks tilde expansion, good"
@ -5478,6 +5424,8 @@ See also `tramp-action-yesno'."
"Tell the remote host which terminal type to use.
The terminal type can be configured with `tramp-terminal-type'."
(tramp-message vec 5 "Setting `%s' as terminal type." tramp-terminal-type)
(with-current-buffer (tramp-get-connection-buffer vec)
(tramp-message vec 6 "\n%s" (buffer-string)))
(tramp-send-string vec tramp-terminal-type))
(defun tramp-action-process-alive (proc vec)
@ -5542,7 +5490,7 @@ The terminal type can be configured with `tramp-terminal-type'."
(with-current-buffer (tramp-get-connection-buffer vec)
(tramp-message vec 6 "\n%s" (buffer-string)))
(unless (eq exit 'ok)
(tramp-clear-passwd)
(tramp-clear-passwd vec)
(tramp-error-with-buffer
nil vec 'file-error
(cond
@ -5623,29 +5571,24 @@ nil."
(tramp-error proc 'file-error "[[Regexp `%s' not found]]" regexp)))
found)))
(defun tramp-wait-for-shell-prompt (proc timeout)
"Wait for the shell prompt to appear from process PROC within TIMEOUT seconds.
See `tramp-wait-for-regexp' for more details.
Shell prompt pattern is determined by variables `shell-prompt-pattern'
and `tramp-shell-prompt-pattern'."
(tramp-wait-for-regexp
proc timeout
(format "\\(%s\\|%s\\)\\'"
shell-prompt-pattern tramp-shell-prompt-pattern)))
(defun tramp-barf-if-no-shell-prompt (proc timeout &rest error-args)
"Wait for shell prompt and barf if none appears.
Looks at process PROC to see if a shell prompt appears in TIMEOUT
seconds. If not, it produces an error message with the given ERROR-ARGS."
(unless (tramp-wait-for-shell-prompt proc timeout)
(unless
(tramp-wait-for-regexp
proc timeout
(format
"\\(%s\\|%s\\)\\'" shell-prompt-pattern tramp-shell-prompt-pattern))
(apply 'tramp-error-with-buffer nil proc 'file-error error-args)))
;; We don't call `tramp-send-string' in order to hide the password from the
;; debug buffer, and because end-of-line handling of the string.
(defun tramp-enter-password (p)
;; We don't call `tramp-send-string' in order to hide the password
;; from the debug buffer, and because end-of-line handling of the
;; string.
(defun tramp-enter-password (proc)
"Prompt for a password and send it to the remote end."
(process-send-string
p (concat (tramp-read-passwd p)
proc (concat (tramp-read-passwd proc)
(or (tramp-get-method-parameter
tramp-current-method
'tramp-password-end-of-line)
@ -5668,17 +5611,32 @@ process to set up. VEC specifies the connection."
;; called as sh) on startup; this way, we avoid the startup file
;; clobbering $PS1. $PROMP_COMMAND is another way to set the prompt
;; in /bin/bash, it must be discarded as well.
(tramp-send-command-internal
(tramp-message
vec 6 (format "exec env 'ENV=' 'PROMPT_COMMAND=' 'PS1=$ ' %s"
(tramp-get-method-parameter
(tramp-file-name-method vec) 'tramp-remote-sh)))
;; We just send a string only without checking resulting prompt.
(tramp-send-string
vec
(format "exec env 'ENV=' 'PROMPT_COMMAND=' 'PS1=$ ' %s"
(tramp-get-method-parameter
(tramp-file-name-method vec) 'tramp-remote-sh)))
(tramp-message vec 5 "Setting shell prompt")
;; Douglas Gray Stephens <DGrayStephens@slb.com> says that we must
;; use "\n" here, not tramp-rsh-end-of-line.
(tramp-send-command
vec
(format "PROMPT_COMMAND=''; PS1='%s%s%s'; PS2=''; PS3=''"
tramp-rsh-end-of-line
tramp-end-of-output
tramp-rsh-end-of-line)
t)
(tramp-message vec 5 "Setting up remote shell environment")
(tramp-send-command-internal vec "stty -inlcr -echo kill '^U' erase '^H'")
(tramp-send-command vec "stty -inlcr -echo kill '^U' erase '^H'" t)
;; Check whether the echo has really been disabled. Some
;; implementations, like busybox of embedded GNU/Linux, don't
;; support disabling.
(tramp-send-command-internal vec "echo foo")
(tramp-send-command vec "echo foo" t)
(with-current-buffer (process-buffer proc)
(goto-char (point-min))
(when (looking-at "echo foo")
@ -5686,11 +5644,11 @@ process to set up. VEC specifies the connection."
(tramp-message vec 5 "Remote echo still on. Ok.")
;; Make sure backspaces and their echo are enabled and no line
;; width magic interferes with them.
(tramp-send-command-internal vec "stty icanon erase ^H cols 32767")))
(tramp-send-command vec "stty icanon erase ^H cols 32767" t)))
;; Try to set up the coding system correctly.
;; CCC this can't be the right way to do it. Hm.
(tramp-message vec 5 "Determining coding system")
(tramp-send-command-internal vec "echo foo ; echo bar")
(tramp-send-command vec "echo foo ; echo bar" t)
(with-current-buffer (process-buffer proc)
(goto-char (point-min))
(if (featurep 'mule)
@ -5716,17 +5674,8 @@ process to set up. VEC specifies the connection."
;; We have found a ^M but cannot frob the process coding system
;; because we're running on a non-MULE Emacs. Let's try
;; stty, instead.
(tramp-send-command-internal vec "stty -onlcr"))))
(tramp-send-command-internal vec "set +o vi +o emacs")
(tramp-message vec 5 "Setting shell prompt")
;; Douglas Gray Stephens <DGrayStephens@slb.com> says that we must
;; use "\n" here, not tramp-rsh-end-of-line.
(tramp-send-command
vec
(format "PROMPT_COMMAND=''; PS1='%s%s%s'; PS2=''; PS3=''"
tramp-rsh-end-of-line
tramp-end-of-output
tramp-rsh-end-of-line))
(tramp-send-command vec "stty -onlcr" t))))
(tramp-send-command vec "set +o vi +o emacs" t)
;; Check whether the remote host suffers from buggy `send-process-string'.
;; This is known for FreeBSD (see comment in `send_process', file process.c).
;; I've tested sending 624 bytes successfully, sending 625 bytes failed.
@ -5756,7 +5705,7 @@ process to set up. VEC specifies the connection."
;; ksh. Whee...
(tramp-find-shell vec)
;; Disable unexpected output.
(tramp-send-command vec "mesg n; biff n")
(tramp-send-command vec "mesg n; biff n" t)
;; Set the environment.
(tramp-message vec 5 "Setting default environment")
(let ((env (copy-sequence tramp-remote-process-environment))
@ -5765,12 +5714,12 @@ process to set up. VEC specifies the connection."
(setq item (split-string (car env) "="))
(if (and (stringp (cadr item)) (not (string-equal (cadr item) "")))
(tramp-send-command
vec (format "%s=%s; export %s" (car item) (cadr item) (car item)))
vec (format "%s=%s; export %s" (car item) (cadr item) (car item)) t)
(push (car item) unset))
(setq env (cdr env)))
(when unset
(tramp-send-command
vec (format "unset %s" (mapconcat 'identity unset " "))))))
vec (format "unset %s" (mapconcat 'identity unset " "))))) t)
;; CCC: We should either implement a Perl version of base64 encoding
;; and decoding. Then we just use that in the last item. The other
@ -6158,6 +6107,18 @@ connection if a previous connection has died for some reason."
(g-user (and gw (tramp-file-name-user gw)))
(g-host (and gw (tramp-file-name-host gw)))
(command login-program)
;; We don't create the temporary file. In fact, it
;; is just a prefix for the ControlPath option of
;; ssh; the real temporary file has another name, and
;; it is created and protected by ssh. It is also
;; removed by ssh, when the connection is closed.
(tmpfile
(tramp-set-connection-property
p "temp-file"
(make-temp-name
(expand-file-name
tramp-temp-name-prefix
(tramp-compat-temporary-file-directory)))))
spec)
;; Add gateway arguments if necessary.
@ -6182,7 +6143,7 @@ connection if a previous connection has died for some reason."
l-user (or l-user "")
l-port (or l-port "")
spec `((?h . ,l-host) (?u . ,l-user) (?p . ,l-port)
(?t . ,(tramp-make-tramp-temp-file vec 'dont-create)))
(?t . ,tmpfile))
command
(concat
command " "
@ -6230,19 +6191,6 @@ function waits for output unless NOOUTPUT is set."
(tramp-send-string vec command)
(unless nooutput (tramp-wait-for-output p))))
(defun tramp-send-command-internal (vec command)
"Send command to remote host and wait for success.
Sends COMMAND, then waits 30 seconds for shell prompt."
(let ((p (tramp-get-connection-process vec)))
(when (tramp-get-connection-property vec "remote-echo" nil)
;; We mark the command string that it can be erased in the output buffer.
(tramp-set-connection-property p "check-remote-echo" t)
(setq command (format "%s%s%s" tramp-echo-mark command tramp-echo-mark)))
(tramp-message vec 6 "%s" command)
(tramp-send-string vec command)
(tramp-barf-if-no-shell-prompt
p 30 "Couldn't `%s', see buffer `%s'" command (buffer-name))))
(defun tramp-wait-for-output (proc &optional timeout)
"Wait for output from remote rsh command."
(with-current-buffer (process-buffer proc)
@ -7043,16 +6991,15 @@ Invokes `password-read' if available, `read-passwd' else."
password)
(read-passwd pw-prompt))))
(defun tramp-clear-passwd ()
"Clear password cache for connection related to current-buffer.
If METHOD, USER or HOST is given, take then for computing the key."
(interactive)
(defun tramp-clear-passwd (vec)
"Clear password cache for connection related to VEC."
(when (functionp 'password-cache-remove)
(funcall (symbol-function 'password-cache-remove)
(funcall
(symbol-function 'password-cache-remove)
(tramp-make-tramp-file-name
tramp-current-method
tramp-current-user
tramp-current-host
(tramp-file-name-method vec)
(tramp-file-name-user vec)
(tramp-file-name-host vec)
""))))
;; Snarfed code from time-date.el and parse-time.el
@ -7410,12 +7357,8 @@ Used for non-7bit chars in strings."
(boundp 'mml-mode)
(symbol-value 'mml-mode))
(let* ((tramp-buf-regexp "\\*\\(debug \\)?tramp/")
(buffer-list
(delq nil
(mapcar '(lambda (b)
(when (string-match tramp-buf-regexp (buffer-name b)) b))
(buffer-list))))
(let ((tramp-buf-regexp "\\*\\(debug \\)?tramp/")
(buffer-list (funcall (symbol-function 'tramp-list-tramp-buffers)))
(curbuf (current-buffer)))
;; There is at least one Tramp buffer.
@ -7465,8 +7408,8 @@ please ensure that the buffers are attached to your email.\n\n")
(dolist (buffer buffer-list)
(funcall (symbol-function 'mml-insert-empty-tag)
'part 'type "text/plain" 'encoding "base64"
'disposition "attachment" 'buffer (buffer-name buffer)
'description (buffer-name buffer)))
'disposition "attachment" 'buffer buffer
'description buffer))
(set-buffer-modified-p nil))
;; Don't send. Delete the message buffer.
@ -7516,20 +7459,6 @@ please ensure that the buffers are attached to your email.\n\n")
;; around one of the loops that calls accept-process-output)
;; (Stefan Monnier).
;; * Autodetect if remote `ls' groks the "--dired" switch.
;; * Add fallback for inline encodings. This should be used
;; if the remote end doesn't support mimencode or a similar program.
;; For reading files from the remote host, we can just parse the output
;; of `od -b'. For writing files to the remote host, we construct
;; a shell program which contains only "safe" ascii characters
;; and which writes the right bytes to the file. We can use printf(1)
;; or "echo -e" or the printf function in awk and use octal escapes
;; for the "dangerous" characters. The null byte might be a problem.
;; On some systems, the octal escape doesn't work. So we try the following
;; two commands to write a null byte:
;; dd if=/dev/zero bs=1 count=1
;; echo | tr '\n' '\000'
;; * Cooperate with PCL-CVS. It uses start-process, which doesn't
;; work for remote files.
;; * Rewrite `tramp-shell-quote-argument' to abstain from using
;; `shell-quote-argument'.
;; * Completion gets confused when you leave out the method name.
@ -7565,7 +7494,6 @@ please ensure that the buffers are attached to your email.\n\n")
;; (Francesco Potortì)
;; * Make it work for different encodings, and for different file name
;; encodings, too. (Daniel Pittman)
;; * Clean up unused *tramp/foo* buffers after a while. (Pete Forman)
;; * Progress reports while copying files. (Michael Kifer)
;; * Don't search for perl5 and perl. Instead, only search for perl and
;; then look if it's the right version (with `perl -v').
@ -7600,21 +7528,8 @@ please ensure that the buffers are attached to your email.\n\n")
;; something. (David Kastrup)
;; * Could Tramp reasonably look for a prompt after ^M rather than
;; only after ^J ? (Stefan Monnier)
;; * WIBNI there was an interactive command prompting for tramp
;; method, hostname, username and filename and translates the user
;; input into the correct filename syntax (depending on the Emacs
;; flavor) (Reiner Steib)
;; * Let the user edit the connection properties interactively.
;; Something like `gnus-server-edit-server' in Gnus' *Server* buffer.
;; * Reconnect directly to a compliant shell without first going
;; through the user's default shell. (Pete Forman)
;; * It's just that when I come to Customize `tramp-default-user-alist'
;; I'm presented with a mismatch and raw lisp for a value. It is my
;; understanding that a variable declared with defcustom is a User
;; Option and should not be modified by the code. add-to-list is
;; called in several places. One way to handle that is to have a new
;; ordinary variable that gets its initial value from
;; tramp-default-user-alist and then is added to. (Pete Forman)
;; * Make `tramp-default-user' obsolete.
;; Functions for file-name-handler-alist:

View file

@ -30,14 +30,14 @@
;; "autoconf && ./configure" to change them. (X)Emacs version check is defined
;; in macro AC_EMACS_INFO of aclocal.m4; should be changed only there.
(defconst tramp-version "2.1.11"
(defconst tramp-version "2.1.12-pre"
"This version of Tramp.")
(defconst tramp-bug-report-address "tramp-devel@gnu.org"
"Email address to send bug reports to.")
;; Check for (X)Emacs version.
(let ((x (if (or (< emacs-major-version 21) (and (featurep 'xemacs) (< emacs-minor-version 4))) (format "Tramp 2.1.11 is not fit for %s" (when (string-match "^.*$" (emacs-version)) (match-string 0 (emacs-version)))) "ok")))
(let ((x (if (or (< emacs-major-version 21) (and (featurep 'xemacs) (< emacs-minor-version 4))) (format "Tramp 2.1.12-pre is not fit for %s" (when (string-match "^.*$" (emacs-version)) (match-string 0 (emacs-version)))) "ok")))
(unless (string-match "\\`ok\\'" x) (error x)))
(provide 'trampver)

View file

@ -182,13 +182,16 @@ by replacing its first character with a space.")
(defvar comment-add 0
"How many more comment chars should be inserted by `comment-region'.
This determines the default value of the numeric argument of `comment-region'.
The `plain' comment style doubles this value.
This should generally stay 0, except for a few modes like Lisp where
it can be convenient to set it to 1 so that regions are commented with
two semi-colons.")
it is 1 so that regions are commented with two or three semi-colons.")
(defconst comment-styles
'((plain . (nil nil nil nil))
(indent . (nil nil nil t))
(indent-or-triple
. (nil nil nil multi-char))
(aligned . (nil t nil t))
(multi-line . (t nil nil t))
(extra-line . (t nil t t))
@ -201,10 +204,12 @@ ALIGN specifies that the `comment-end' markers should be aligned.
EXTRA specifies that an extra line should be used before and after the
region to comment (to put the `comment-end' and `comment-start').
INDENT specifies that the `comment-start' markers should not be put at the
left margin but at the current indentation of the region to comment.")
left margin but at the current indentation of the region to comment.
If INDENT is `multi-char', that means indent multi-character
comment starters, but not one-character comment starters.")
;;;###autoload
(defcustom comment-style 'plain
(defcustom comment-style 'indent-or-triple
"Style to be used for `comment-region'.
See `comment-styles' for a list of available styles."
:type (if (boundp 'comment-styles)
@ -939,14 +944,14 @@ indentation to be kept as it was before narrowing."
(delete-char n)
(setq ,bindent (- ,bindent n)))))))))))
;; Compute the number of extra semicolons to add to the comment starter
;; in Lisp mode, extra stars in C mode, etc.
;; Compute the number of extra comment starter characters
;; (extra semicolons in Lisp mode, extra stars in C mode, etc.)
;; If ARG is non-nil, just follow ARG.
;; If the comment-starter is multi-char, just follow ARG.
;; Otherwise obey comment-add, and double it if EXTRA is non-nil.
(defun comment-add (arg &optional extra)
(defun comment-add (arg)
(if (and (null arg) (= (string-match "[ \t]*\\'" comment-start) 1))
(* comment-add (if extra 2 1))
(* comment-add 1)
(1- (prefix-numeric-value arg))))
(defun comment-region-internal (beg end cs ce
@ -1086,10 +1091,19 @@ The strings used as comment starts are built from
((consp arg) (uncomment-region beg end))
((< numarg 0) (uncomment-region beg end (- numarg)))
(t
;; Add an extra semicolon in Lisp and similar modes.
;; If STYLE doesn't specify indenting the comments,
;; then double the value of `comment-add'.
(setq numarg (comment-add arg (null (nth 3 style))))
(let ((multi-char (/= (string-match "[ \t]*\\'" comment-start) 1))
indent)
(if (eq (nth 3 style) 'multi-char)
(setq indent multi-char)
(setq indent (nth 3 style)))
;; In Lisp and similar modes with one-character comment starters,
;; double it by default if `comment-add' says so.
;; If it isn't indented, triple it.
(if (and (null arg) (not multi-char))
(setq numarg (* comment-add (if indent 1 2)))
(setq numarg (1- (prefix-numeric-value arg))))
(comment-region-internal
beg end
(let ((s (comment-padright comment-start numarg)))
@ -1103,7 +1117,7 @@ The strings used as comment starts are built from
(comment-padleft (comment-string-reverse comment-continue) numarg))
block
lines
(nth 3 style))))))
indent))))))
;;;###autoload
(defun comment-box (beg end &optional arg)

View file

@ -337,7 +337,7 @@ If a number, only buffers greater than this size have processing messages."
:group 'fast-lock)
(defvar fast-lock-save-faces
(when (save-match-data (string-match "XEmacs" (emacs-version)))
(when (featurep 'xemacs)
;; XEmacs uses extents for everything, so we have to pick the right ones.
font-lock-face-list)
"Faces that will be saved in a Font Lock cache file.
@ -768,7 +768,7 @@ See `fast-lock-get-face-properties'."
;; Functions for XEmacs:
(when (save-match-data (string-match "XEmacs" (emacs-version)))
(when (featurep 'xemacs)
;;
;; It would be better to use XEmacs' `map-extents' over extents with a
;; `font-lock' property, but `face' properties are on different extents.

View file

@ -296,14 +296,14 @@ a reflection."
(defun bb-up (count)
(interactive "p")
(while (and (> count 0) (> bb-y -1))
(previous-line 1)
(forward-line -1)
(setq bb-y (1- bb-y))
(setq count (1- count))))
(defun bb-down (count)
(interactive "p")
(while (and (> count 0) (< bb-y 8))
(next-line 1)
(forward-line 1)
(setq bb-y (1+ bb-y))
(setq count (1- count))))

View file

@ -352,7 +352,7 @@ The most useful commands are:
(t
(error "Bad location")))))
(let (goal-column)
(previous-line 1)))
(forward-line -1)))
(let ((char-a (following-char))
(char-b (decipher-last-command-char)))
(or (and (not (= ?w (char-syntax char-a)))

View file

@ -226,7 +226,7 @@ Variables: handwrite-linespace (default 12)
(forward-line 1)
))
(switch-to-buffer ps-buf-name)
(next-line 1)
(forward-line 1)
(insert "showpage exec Hwsave restore\n\n")
(insert "%%Pages " (number-to-string ipage) " 0\n")
(insert "%%EOF\n")

View file

@ -1052,13 +1052,13 @@ mouse-1: get robot moving, mouse-2: play on this square")))
"Move point down one row on the Lm board."
(interactive)
(if (< (lm-point-y) lm-board-height)
(next-line 1)));;; lm-square-height)))
(forward-line 1)));;; lm-square-height)))
(defun lm-move-up ()
"Move point up one row on the Lm board."
(interactive)
(if (> (lm-point-y) 1)
(previous-line lm-square-height)))
(forward-line (- lm-square-height))))
(defun lm-move-ne ()
"Move point North East on the Lm board."

Some files were not shown because too many files have changed in this diff Show more