Merge from mainline.
This commit is contained in:
commit
ba46f4d85a
106 changed files with 1489 additions and 813 deletions
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,10 @@
|
|||
2011-02-26 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* .bzrignore: Ignore new lib/*.in-h files.
|
||||
|
||||
* config.bat: Rename stdint.in.h and sys_stat.in.h. Call
|
||||
depfiles.bat even if lib/deps already exist.
|
||||
|
||||
2011-02-25 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Simplify symlink portability workaround.
|
||||
|
@ -7,7 +14,8 @@
|
|||
* lib/dosname.h: New file, regenerated from gnulib.
|
||||
|
||||
* configure, lib/Makefile.in, lib/getopt_int.h, lib/gnulib.mk:
|
||||
* lib/stdlib.in.h, m4/stdlib_h.m4: Regenerate.
|
||||
* lib/stdlib.in.h, m4/stdlib_h.m4: Regenerate to incorporate
|
||||
recent changes to configure.in and to gnulib.
|
||||
|
||||
2011-02-24 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
|
@ -7643,7 +7651,7 @@
|
|||
|
||||
* Makefile.in (lib-src/Makefile, src/Makefile, oldXMenu/Makefile):
|
||||
Depend on vpath.sed.
|
||||
Replace sed comand for VPATH with @vpath_sed@.
|
||||
Replace sed command for VPATH with @vpath_sed@.
|
||||
|
||||
* configure.in: Substitute variable `vpath_sed'.
|
||||
If not in $srcdir and $srcdir is configured,
|
||||
|
@ -8984,7 +8992,7 @@
|
|||
there, and then copy it in, to make sure we get a real file.
|
||||
|
||||
* make-dist: Don't try to distribute *.defns files any more. The
|
||||
only such file was for simula.el, which has been superceded by a
|
||||
only such file was for simula.el, which has been superseded by a
|
||||
version which doesn't have a separate .defns file.
|
||||
|
||||
1992-05-28 Ken Raeburn (Raeburn@Cygnus.COM)
|
||||
|
|
|
@ -9,6 +9,10 @@ before bootstrapping:
|
|||
|
||||
$ ./configure
|
||||
|
||||
(Normally there is no need to run `autoconf' etc. If you do need it,
|
||||
the relevant command is `autoreconf -I m4'. Be aware that this will
|
||||
likely lead to conflicts next time you update from Bazaar.)
|
||||
|
||||
Some of the files that are included in the Emacs tarball, such as
|
||||
byte-compiled Lisp files, are not stored in Bazaar. Therefore, to
|
||||
build from Bazaar you must run "make bootstrap" instead of just "make":
|
||||
|
|
|
@ -81,6 +81,8 @@ this in the same commit as making new entries. Using this plugin
|
|||
will merge ALL changed entries (including older ones) to the top of
|
||||
the destination file.
|
||||
|
||||
Maybe the default Emacs behavior without this plugin is better, I dunno.
|
||||
|
||||
1) Get clean, up-to-date copies of the emacs-23 and trunk branches.
|
||||
Check for any uncommitted changes with bzr status.
|
||||
|
||||
|
|
|
@ -280,17 +280,20 @@ cd lib
|
|||
Rem Rename files like djtar on plain DOS filesystem would.
|
||||
If Exist c++defs.h update c++defs.h cxxdefs.h
|
||||
If Exist getopt.in.h update getopt.in.h getopt.in-h
|
||||
If Exist stddef.in.h update stddef.in.h stddef.in-h
|
||||
If Exist stdbool.in.h update stdbool.in.h stdbool.in-h
|
||||
If Exist stddef.in.h update stddef.in.h stddef.in-h
|
||||
If Exist stdint.in.h update stdint.in.h stdint.in-h
|
||||
If Exist stdlib.in.h update stdlib.in.h stdlib.in-h
|
||||
If Exist sys_stat.in.h update sys_stat.in.h sys_stat.in-h
|
||||
If Exist time.in.h update time.in.h time.in-h
|
||||
If Exist unistd.in.h update unistd.in.h unistd.in-h
|
||||
sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp
|
||||
sed -f ../msdos/sedlibmk.inp < makefile.tmp > Makefile
|
||||
rm -f makefile.tmp
|
||||
Rem Create .Po files for new files in lib/
|
||||
If Not Exist deps\stamp mkdir deps
|
||||
If Not Exist deps\stamp for %%f in (*.c) do @call ..\msdos\depfiles.bat %%f
|
||||
If Not Exist deps\stamp echo deps-stamp > deps\stamp
|
||||
for %%f in (*.c) do @call ..\msdos\depfiles.bat %%f
|
||||
echo deps-stamp > deps\stamp
|
||||
cd ..
|
||||
rem ----------------------------------------------------------------------
|
||||
Echo Configuring the lisp directory...
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
2011-03-01 Christoph Scholtes <cschol2112@googlemail.com>
|
||||
|
||||
* maintaining.texi (Format of ChangeLog): Add reference to
|
||||
add-log-full-name.
|
||||
(Change Log Commands): Add documentation for combining multiple
|
||||
symbols in one change.
|
||||
|
||||
2011-03-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* custom.texi (Directory Variables):
|
||||
Give an example of excluding subdirectories.
|
||||
|
||||
2011-02-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* search.texi (Regexp Search): Move index entries about regexps to the
|
||||
"Regexps" node. Add index entries for regexp search. (Bug#8096)
|
||||
|
||||
2011-02-19 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* dired.texi (Dired): Dired-X version number was dropped.
|
||||
|
|
|
@ -1331,7 +1331,8 @@ corresponding alist applies to all the files in that subdirectory.
|
|||
(tab-width . 4)
|
||||
(fill-column . 80)))
|
||||
(c-mode . ((c-file-style . "BSD")))
|
||||
(java-mode . ((c-file-style . "BSD")))
|
||||
(java-mode . ((c-file-style . "BSD")
|
||||
(subdirs . nil)))
|
||||
("src/imported"
|
||||
. ((nil . ((change-log-default-name . "ChangeLog.local"))))))
|
||||
@end example
|
||||
|
@ -1340,8 +1341,10 @@ corresponding alist applies to all the files in that subdirectory.
|
|||
This example shows some settings for a hypothetical project. It sets
|
||||
@samp{indent-tabs-mode}, @code{tab-width}, and @code{fill-column} for
|
||||
any file in the project's directory tree, and it sets the indentation
|
||||
style for any C or Java source file. Finally, it specifies a different
|
||||
@file{ChangeLog} file name for any file in the @file{src/imported}
|
||||
style for any C or Java source file. The special @code{subdirs} element
|
||||
indicates that the Java mode settings are only to be applied in the
|
||||
current directory, not in any subdirectories. Finally, it specifies a
|
||||
different @file{ChangeLog} file name for any file in the @file{src/imported}
|
||||
subdirectory of the directory where you put the @file{.dir-locals.el}
|
||||
file.
|
||||
|
||||
|
|
|
@ -1486,6 +1486,10 @@ changed.
|
|||
non-@code{nil}, @kbd{C-x 4 a} adds to any existing item for the file
|
||||
rather than starting a new item.
|
||||
|
||||
You can combine multiple changes of the same nature. If you don't
|
||||
enter any text after the initial @kbd{C-x 4 a}, any subsequent
|
||||
@kbd{C-x 4 a} adds another symbol to the change.
|
||||
|
||||
@vindex add-log-always-start-new-record
|
||||
If @code{add-log-always-start-new-record} is non-@code{nil},
|
||||
@kbd{C-x 4 a} always makes a new entry, even if the last entry
|
||||
|
@ -1535,13 +1539,14 @@ insert a VC log entry into a Change Log buffer by typing @kbd{C-x v a}
|
|||
@node Format of ChangeLog
|
||||
@subsection Format of ChangeLog
|
||||
|
||||
A change log entry starts with a header line that contains the current
|
||||
date, your name, and your email address (taken from the variable
|
||||
@code{add-log-mailing-address}). Aside from these header lines, every
|
||||
line in the change log starts with a space or a tab. The bulk of the
|
||||
entry consists of @dfn{items}, each of which starts with a line starting
|
||||
with whitespace and a star. Here are two entries, both dated in May
|
||||
1993, with two items and one item respectively.
|
||||
A change log entry starts with a header line that contains the
|
||||
current date, your name (taken from the variable
|
||||
@code{add-log-full-name}), and your email address (taken from the
|
||||
variable @code{add-log-mailing-address}). Aside from these header
|
||||
lines, every line in the change log starts with a space or a tab. The
|
||||
bulk of the entry consists of @dfn{items}, each of which starts with a
|
||||
line starting with whitespace and a star. Here are two entries, both
|
||||
dated in May 1993, with two items and one item respectively.
|
||||
|
||||
@iftex
|
||||
@medbreak
|
||||
|
|
|
@ -468,8 +468,8 @@ apply to the lazy highlight, which always matches whole words.
|
|||
|
||||
@node Regexp Search
|
||||
@section Regular Expression Search
|
||||
@cindex regular expression
|
||||
@cindex regexp
|
||||
@cindex regexp search
|
||||
@cindex search for a regular expression
|
||||
|
||||
A @dfn{regular expression} (or @dfn{regexp} for short) is a pattern
|
||||
that denotes a class of alternative strings to match. GNU Emacs
|
||||
|
@ -543,6 +543,8 @@ Search}.
|
|||
@node Regexps
|
||||
@section Syntax of Regular Expressions
|
||||
@cindex syntax of regexps
|
||||
@cindex regular expression
|
||||
@cindex regexp
|
||||
|
||||
This manual describes regular expression features that users
|
||||
typically use. @xref{Regular Expressions,,, elisp, The Emacs Lisp
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
2011-03-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* variables.texi (Directory Local Variables):
|
||||
Mention `(subdirs . nil)' alist element.
|
||||
|
||||
2011-02-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* variables.texi (Directory Local Variables): Mention the optional
|
||||
mtime argument of dir-locals-set-directory-class. (Bug#3577)
|
||||
|
||||
2011-02-27 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* minibuf.texi (Minibuffer History): Clarify discussion of
|
||||
minibuffer history lists (Bug#8085).
|
||||
|
||||
2011-02-19 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* elisp.texi: Sync @dircategory with ../../info/dir.
|
||||
|
|
|
@ -433,18 +433,17 @@ expression, thus moving point forward one word.
|
|||
@cindex minibuffer history
|
||||
@cindex history list
|
||||
|
||||
A @dfn{minibuffer history list} records previous minibuffer inputs so
|
||||
the user can reuse them conveniently. A history list is actually a
|
||||
symbol, not a list; it is a variable whose value is a list of strings
|
||||
(previous inputs), most recent first.
|
||||
A @dfn{minibuffer history list} records previous minibuffer inputs
|
||||
so the user can reuse them conveniently. It is a variable whose value
|
||||
is a list of strings (previous inputs), most recent first.
|
||||
|
||||
There are many separate history lists, used for different kinds of
|
||||
inputs. It's the Lisp programmer's job to specify the right history
|
||||
list for each use of the minibuffer.
|
||||
There are many separate minibuffer history lists, used for different
|
||||
kinds of inputs. It's the Lisp programmer's job to specify the right
|
||||
history list for each use of the minibuffer.
|
||||
|
||||
You specify the history list with the optional @var{hist} argument
|
||||
to either @code{read-from-minibuffer} or @code{completing-read}. Here
|
||||
are the possible values for it:
|
||||
You specify a minibuffer history list with the optional @var{hist}
|
||||
argument to @code{read-from-minibuffer} or @code{completing-read}.
|
||||
Here are the possible values for it:
|
||||
|
||||
@table @asis
|
||||
@item @var{variable}
|
||||
|
|
|
@ -1718,7 +1718,8 @@ directory-local variables. The name of the file is
|
|||
The MS-DOS version of Emacs uses @file{_dir-locals.el} instead, due to
|
||||
limitations of the DOS filesystems.
|
||||
}. A file by that name in a directory causes Emacs to apply its
|
||||
settings to any file in that directory or any of its subdirectories.
|
||||
settings to any file in that directory or any of its subdirectories
|
||||
(optionally, you can exclude subdirectories; see below).
|
||||
If some of the subdirectories have their own @file{.dir-locals.el}
|
||||
files, Emacs uses the settings from the deepest file it finds starting
|
||||
from the file's directory and moving up the directory tree. The file
|
||||
|
@ -1749,7 +1750,10 @@ file's buffer turns on a mode that is derived from @var{major-mode},
|
|||
then the all the variables in the associated @var{alist} are applied;
|
||||
@var{alist} should be of the form @code{(@var{name} . @var{value})}.
|
||||
A special value @code{nil} for @var{major-mode} means the settings are
|
||||
applicable to any mode.
|
||||
applicable to any mode. In @var{alist}, you can use a special
|
||||
@var{name}: @code{subdirs}. If the associated value is
|
||||
@code{nil}, the alist is only applied to files in the relevant
|
||||
directory, not to those in any subdirectories.
|
||||
|
||||
With the second form of @var{variables}, if @var{directory} is the
|
||||
initial substring of the file's directory, then @var{list} is applied
|
||||
|
@ -1757,12 +1761,19 @@ recursively by following the above rules; @var{list} should be of one
|
|||
of the two forms accepted by this function in @var{variables}.
|
||||
@end defun
|
||||
|
||||
@defun dir-locals-set-directory-class directory class
|
||||
@defun dir-locals-set-directory-class directory class &optional mtime
|
||||
This function assigns @var{class} to all the files in @code{directory}
|
||||
and its subdirectories. Thereafter, all the variable settings
|
||||
specified for @var{class} will be applied to any visited file in
|
||||
@var{directory} and its children. @var{class} must have been already
|
||||
defined by @code{dir-locals-set-class-variables}
|
||||
defined by @code{dir-locals-set-class-variables}.
|
||||
|
||||
Emacs uses this function internally when it loads directory variables
|
||||
from a @code{.dir-locals.el} file. In that case, the optional
|
||||
argument @var{mtime} holds the file modification time (as returned by
|
||||
@code{file-attributes}). Emacs uses this time to check stored
|
||||
local variables are still valid. If you are assigning a class
|
||||
directly, not via a file, this argument should be @code{nil}.
|
||||
@end defun
|
||||
|
||||
@defvar dir-locals-class-alist
|
||||
|
@ -1772,8 +1783,9 @@ settings. It is updated by @code{dir-locals-set-class-variables}.
|
|||
|
||||
@defvar dir-locals-directory-cache
|
||||
This alist holds directory names, their assigned class names, and
|
||||
modification times of the associated directory local variables file.
|
||||
It is updated by @code{dir-locals-set-directory-class}.
|
||||
modification times of the associated directory local variables file
|
||||
(if there is one). The function @code{dir-locals-set-directory-class}
|
||||
updates this list.
|
||||
@end defvar
|
||||
|
||||
@node Frame-Local Variables
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
2011-02-28 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* tramp.texi (Frequently Asked Questions): Add Emacs 24 to
|
||||
supported systems.
|
||||
|
||||
2011-02-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* dbus.texi (Type Conversion): Grammar fix.
|
||||
|
||||
2011-02-23 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* tramp.texi: Use consistently "Emacs" (instead of "GNU Emacs") and
|
||||
|
|
|
@ -893,10 +893,10 @@ applied, when the corresponding D-Bus message is created:
|
|||
@end example
|
||||
|
||||
Other Lisp objects, like symbols or hash tables, are not accepted as
|
||||
input parameter.
|
||||
input parameters.
|
||||
|
||||
If it is necessary to use another D-Bus type, a corresponding type
|
||||
symbol can be preceeded to the corresponding Lisp object. Basic D-Bus
|
||||
symbol can be prepended to the corresponding Lisp object. Basic D-Bus
|
||||
types are represented by the type symbols @code{:byte},
|
||||
@code{:boolean}, @code{:int16}, @code{:uint16}, @code{:int32},
|
||||
@code{:uint32}, @code{:int64}, @code{:uint64}, @code{:double},
|
||||
|
|
|
@ -64,7 +64,7 @@ developing GNU and promoting software freedom.''
|
|||
@macro obsolete{old,new}
|
||||
@sp 1
|
||||
@strong{Compatibility}:
|
||||
@code{\new\} introduced in @semantic{} version 2.0 supercedes
|
||||
@code{\new\} introduced in @semantic{} version 2.0 supersedes
|
||||
@code{\old\} which is now obsolete.
|
||||
@end macro
|
||||
|
||||
|
|
|
@ -2740,8 +2740,8 @@ There is also a Savannah project page.
|
|||
@item
|
||||
Which systems does it work on?
|
||||
|
||||
The package has been used successfully on Emacs 22, Emacs 23, XEmacs
|
||||
21 (starting with 21.4), and SXEmacs 22.
|
||||
The package has been used successfully on Emacs 22, Emacs 23, Emacs
|
||||
24, XEmacs 21 (starting with 21.4), and SXEmacs 22.
|
||||
|
||||
The package was intended to work on Unix, and it really expects a
|
||||
Unix-like system on the remote end (except the @option{smb} method),
|
||||
|
|
7
etc/NEWS
7
etc/NEWS
|
@ -353,6 +353,11 @@ Just set shell-dir-cookie-re to an appropriate regexp.
|
|||
will turn on `whitespace-mode' for *vc-diff* buffers. Modes should
|
||||
call `hack-dir-local-variables-non-file-buffer' to support this.
|
||||
|
||||
+++
|
||||
** You can prevent directory local variables from applying to subdirectories.
|
||||
Add an element (subdirs . nil) to the alist portion of any variables
|
||||
settings to indicate said section should not be applied to subdirectories.
|
||||
|
||||
** ERC changes
|
||||
|
||||
*** New vars `erc-autojoin-timing' and `erc-autojoin-delay'.
|
||||
|
@ -386,6 +391,8 @@ You can get a comparable behavior with:
|
|||
|
||||
** Calendar, Diary, and Appt
|
||||
|
||||
*** New function `diary-hebrew-birthday'.
|
||||
|
||||
---
|
||||
*** The obsolete (since Emacs 22.1) method of enabling the appt package
|
||||
by adding appt-make-list to diary-hook has been removed. Use appt-activate.
|
||||
|
|
|
@ -1746,7 +1746,7 @@ directories in which `ffap-rfc' will first search for RFCs.
|
|||
*** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them.
|
||||
See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'.
|
||||
|
||||
*** `icomplete-prospects-height' now supercedes `icomplete-prospects-length'.
|
||||
*** `icomplete-prospects-height' now supersedes `icomplete-prospects-length'.
|
||||
|
||||
*** Info displays breadcrumbs in the header of the page.
|
||||
See Info-breadcrumbs-depth to control it.
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2011-02-28 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* quail/ethiopic.el ("ethiopic"): Fix tpo in docstring.
|
||||
|
||||
2011-01-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Redo spelling of Makefile variables to conform to POSIX.
|
||||
|
@ -27,8 +31,8 @@
|
|||
|
||||
2010-08-28 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* quail/japanese.el (quail-japanese-update-translation): Fix
|
||||
handling of invalid key.
|
||||
* quail/japanese.el (quail-japanese-update-translation):
|
||||
Fix handling of invalid key.
|
||||
|
||||
2010-08-15 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
|
@ -46,8 +50,7 @@
|
|||
|
||||
2010-08-13 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* quail/greek.el ("greek-postfix"): Add rules for Greek style
|
||||
quotes.
|
||||
* quail/greek.el ("greek-postfix"): Add rules for Greek style quotes.
|
||||
|
||||
2010-08-09 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; ja-dic.el --- dictionary for Japanese input method -*-coding: euc-japan; byte-compile-disable-print-circle:t; -*-
|
||||
;;; ja-dic.el --- dictionary for Japanese input method -*-coding: euc-japan; -*-
|
||||
;; Generated by the command `skkdic-convert'
|
||||
;; Date: Tue Feb 16 15:59:19 2010
|
||||
;; Date: Sat Feb 26 10:26:11 2011
|
||||
;; Original SKK dictionary file: ../SKK-DIC/SKK-JISYO.L
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
@ -16984,7 +16984,6 @@
|
|||
|
||||
;; Setting okuri-nasi entries.
|
||||
(skkdic-set-okuri-nasi
|
||||
"をんな 女"
|
||||
"ー ~"
|
||||
"あ 嗚 明 安 襾 哇 娃 椏 亞 唖 痾 婀 阿 彼 吾 亜"
|
||||
"あーくとう アーク灯"
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
;; This was `cyrillic-jcuken'. Alexander Mikhailian
|
||||
;; <mikhailian@altern.org> says: "cyrillic-jcuken" is actually
|
||||
;; russian. It is ok but a bit outdated. This layout has been used
|
||||
;; in typewriters for ages but it has been superceeded on desktops by
|
||||
;; in typewriters for ages but it has been superseded on desktops by
|
||||
;; a variation of this layout, implemented in M$ Windows software.
|
||||
;; The Windows layout is greatly preferred because of the comma and
|
||||
;; period being placed more conviniently and, of course, because of
|
||||
|
|
|
@ -62,7 +62,7 @@ S-SPC or `M-x ethio-insert-ethio-space'
|
|||
|
||||
C-' or `M-x ethio-gemination'
|
||||
Compose the character before the point with the Ethiopic gemination mark.
|
||||
If the characater is already composed, decompose it and remove the
|
||||
If the character is already composed, decompose it and remove the
|
||||
gemination mark."
|
||||
|
||||
;; The following keys should work as defined in lisp/language/ethio-util,
|
||||
|
|
|
@ -1,3 +1,57 @@
|
|||
2011-02-26 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* Makefile.in (fakemail${EXEEXT}): Depend on lib/ignore-value.h.
|
||||
|
||||
* emacsclient.c (xstrdup) [WINDOWSNT]: Function added back.
|
||||
(w32_getenv): Use xstrdup to return all values in malloc'ed
|
||||
storage.
|
||||
|
||||
2011-02-26 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* ebrowse.c (parse_qualified_param_ident_or_type): Make it clear
|
||||
to reader (and to the compiler) that the loop always executes at
|
||||
least once. This prevents a warning with recent GCC.
|
||||
(BROWSE_STRUCT): Remove unused macro.
|
||||
|
||||
* fakemail.c: Include <ignore-value.h>.
|
||||
(put_line): Explicitly ignore fwrite return value, for benefit of
|
||||
recent glibc + gcc.
|
||||
(close_the_streams): Diagnose output errors instead of merely
|
||||
exiting with nonzero status.
|
||||
(my_fclose, main): Diagnose input errors, and exit with nonzero status.
|
||||
Formerly, input errors were silently ignored.
|
||||
|
||||
* ebrowse.c (putstr): Rename from PUTSTR and turn into a function.
|
||||
All callers changed. This is cleaner, and avoids GCC warnings about
|
||||
passing NULL to fputs.
|
||||
(insert_keyword): Rename parameter to avoid shadowing diagnostic.
|
||||
|
||||
2011-02-25 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* emacsclient.c (main): Avoid dangling 'if'.
|
||||
(xstrdup): Remove; no longer needed.
|
||||
(get_current_dir_name, w32_getenv, get_server_config, find_tty):
|
||||
(set_local_socket, main):
|
||||
Use const char *, not char *, for pointers that are not assigned
|
||||
through.
|
||||
(IF_LINT): New macro.
|
||||
(set_local_socket, main): Use it to suppress warnings with
|
||||
GCC -Wuninitialized.
|
||||
|
||||
* emacsclient.c: Redo local variables to avoid shadowing problems.
|
||||
(message, socket_status, start_daemon_and_retry_set_socket):
|
||||
Rename locals.
|
||||
(main): Move decl of "i".
|
||||
|
||||
* etags.c (ISUPPER): Move to inside the only #ifdef where it's used.
|
||||
This avoids an unused-macro warning with some GCC settings.
|
||||
|
||||
* make-docfile.c (write_globals): Change char * to char const *
|
||||
to avoid a GCC "assignment discards qualifiers" diagnostic
|
||||
in some configurations.
|
||||
(scan_c_file): Refactor local variable decls to make their scope
|
||||
more accurate and to avoid a GCC -Wuninitialized diagnostic.
|
||||
|
||||
2011-02-22 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* etags.c (canonicalize_filename, ISUPPER): Fix last change.
|
||||
|
|
|
@ -353,7 +353,7 @@ movemail.o: ${srcdir}/movemail.c ../src/config.h
|
|||
pop.o: ${srcdir}/pop.c ${srcdir}/../lib/min-max.h ../src/config.h
|
||||
$(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/pop.c
|
||||
|
||||
fakemail${EXEEXT}: ${srcdir}/fakemail.c ../src/config.h
|
||||
fakemail${EXEEXT}: ${srcdir}/fakemail.c ${srcdir}/../lib/ignore-value.h ../src/config.h
|
||||
$(CC) ${ALL_CFLAGS} ${srcdir}/fakemail.c $(LOADLIBES) -o fakemail
|
||||
|
||||
emacsclient${EXEEXT}: ${srcdir}/emacsclient.c ../src/config.h
|
||||
|
|
|
@ -77,7 +77,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
#define TREE_HEADER_STRUCT "[ebrowse-hs "
|
||||
#define TREE_STRUCT "[ebrowse-ts "
|
||||
#define MEMBER_STRUCT "[ebrowse-ms "
|
||||
#define BROWSE_STRUCT "[ebrowse-bs "
|
||||
#define CLASS_STRUCT "[ebrowse-cs "
|
||||
|
||||
/* The name of the symbol table entry for global functions, variables,
|
||||
|
@ -1108,22 +1107,23 @@ leave_namespace (void)
|
|||
/* Write string S to the output file FP in a Lisp-readable form.
|
||||
If S is null, write out `()'. */
|
||||
|
||||
#define PUTSTR(s, fp) \
|
||||
do { \
|
||||
if (!s) \
|
||||
{ \
|
||||
putc ('(', fp); \
|
||||
putc (')', fp); \
|
||||
putc (' ', fp); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
putc ('"', fp); \
|
||||
fputs (s, fp); \
|
||||
putc ('"', fp); \
|
||||
putc (' ', fp); \
|
||||
} \
|
||||
} while (0)
|
||||
static inline void
|
||||
putstr (const char *s, FILE *fp)
|
||||
{
|
||||
if (!s)
|
||||
{
|
||||
putc ('(', fp);
|
||||
putc (')', fp);
|
||||
putc (' ', fp);
|
||||
}
|
||||
else
|
||||
{
|
||||
putc ('"', fp);
|
||||
fputs (s, fp);
|
||||
putc ('"', fp);
|
||||
putc (' ', fp);
|
||||
}
|
||||
}
|
||||
|
||||
/* A dynamically allocated buffer for constructing a scope name. */
|
||||
|
||||
|
@ -1216,16 +1216,16 @@ dump_members (FILE *fp, struct member *m)
|
|||
for (n = 0; m; m = m->next, ++n)
|
||||
{
|
||||
fputs (MEMBER_STRUCT, fp);
|
||||
PUTSTR (m->name, fp);
|
||||
PUTSTR (NULL, fp); /* FIXME? scope for globals */
|
||||
putstr (m->name, fp);
|
||||
putstr (NULL, fp); /* FIXME? scope for globals */
|
||||
fprintf (fp, "%u ", (unsigned) m->flags);
|
||||
PUTSTR (m->filename, fp);
|
||||
PUTSTR (m->regexp, fp);
|
||||
putstr (m->filename, fp);
|
||||
putstr (m->regexp, fp);
|
||||
fprintf (fp, "%u ", (unsigned) m->pos);
|
||||
fprintf (fp, "%u ", (unsigned) m->vis);
|
||||
putc (' ', fp);
|
||||
PUTSTR (m->def_filename, fp);
|
||||
PUTSTR (m->def_regexp, fp);
|
||||
putstr (m->def_filename, fp);
|
||||
putstr (m->def_regexp, fp);
|
||||
fprintf (fp, "%u", (unsigned) m->def_pos);
|
||||
putc (']', fp);
|
||||
putc ('\n', fp);
|
||||
|
@ -1243,20 +1243,20 @@ static void
|
|||
dump_sym (FILE *fp, struct sym *root)
|
||||
{
|
||||
fputs (CLASS_STRUCT, fp);
|
||||
PUTSTR (root->name, fp);
|
||||
putstr (root->name, fp);
|
||||
|
||||
/* Print scope, if any. */
|
||||
if (root->namesp)
|
||||
PUTSTR (sym_scope (root), fp);
|
||||
putstr (sym_scope (root), fp);
|
||||
else
|
||||
PUTSTR (NULL, fp);
|
||||
putstr (NULL, fp);
|
||||
|
||||
/* Print flags. */
|
||||
fprintf (fp, "%u", root->flags);
|
||||
PUTSTR (root->filename, fp);
|
||||
PUTSTR (root->regexp, fp);
|
||||
putstr (root->filename, fp);
|
||||
putstr (root->regexp, fp);
|
||||
fprintf (fp, "%u", (unsigned) root->pos);
|
||||
PUTSTR (root->sfilename, fp);
|
||||
putstr (root->sfilename, fp);
|
||||
putc (']', fp);
|
||||
putc ('\n', fp);
|
||||
}
|
||||
|
@ -1323,7 +1323,7 @@ dump_roots (FILE *fp)
|
|||
if (!f_append)
|
||||
{
|
||||
fputs (TREE_HEADER_STRUCT, fp);
|
||||
PUTSTR (EBROWSE_FILE_VERSION, fp);
|
||||
putstr (EBROWSE_FILE_VERSION, fp);
|
||||
|
||||
putc ('\"', fp);
|
||||
if (!f_structs)
|
||||
|
@ -2062,11 +2062,11 @@ re_init_scanner (void)
|
|||
}
|
||||
|
||||
|
||||
/* Insert a keyword NAME with token value TK into the keyword hash
|
||||
/* Insert a keyword NAME with token value TKV into the keyword hash
|
||||
table. */
|
||||
|
||||
static void
|
||||
insert_keyword (const char *name, int tk)
|
||||
insert_keyword (const char *name, int tkv)
|
||||
{
|
||||
const char *s;
|
||||
unsigned h = 0;
|
||||
|
@ -2077,7 +2077,7 @@ insert_keyword (const char *name, int tk)
|
|||
|
||||
h %= KEYWORD_TABLE_SIZE;
|
||||
k->name = name;
|
||||
k->tk = tk;
|
||||
k->tk = tkv;
|
||||
k->next = keyword_table[h];
|
||||
keyword_table[h] = k;
|
||||
}
|
||||
|
@ -2951,7 +2951,9 @@ parse_qualified_param_ident_or_type (char **last_id)
|
|||
static char *id = NULL;
|
||||
static int id_size = 0;
|
||||
|
||||
while (LOOKING_AT (IDENT))
|
||||
assert (LOOKING_AT (IDENT));
|
||||
|
||||
do
|
||||
{
|
||||
int len = strlen (yytext) + 1;
|
||||
if (len > id_size)
|
||||
|
@ -2974,6 +2976,7 @@ parse_qualified_param_ident_or_type (char **last_id)
|
|||
else
|
||||
break;
|
||||
}
|
||||
while (LOOKING_AT (IDENT));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -112,6 +112,13 @@ char *(getcwd) (char *, size_t);
|
|||
/* Additional space when allocating buffers for filenames, etc. */
|
||||
#define EXTRA_SPACE 100
|
||||
|
||||
/* Use this to suppress gcc's `...may be used before initialized' warnings. */
|
||||
#ifdef lint
|
||||
# define IF_LINT(Code) Code
|
||||
#else
|
||||
# define IF_LINT(Code) /* empty */
|
||||
#endif
|
||||
|
||||
|
||||
/* Name used to invoke this program. */
|
||||
const char *progname;
|
||||
|
@ -190,20 +197,6 @@ xmalloc (unsigned int size)
|
|||
return result;
|
||||
}
|
||||
|
||||
/* Like strdup but get a fatal error if memory is exhausted. */
|
||||
|
||||
static char *
|
||||
xstrdup (const char *s)
|
||||
{
|
||||
char *result = strdup (s);
|
||||
if (result == NULL)
|
||||
{
|
||||
perror ("strdup");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/* From sysdep.c */
|
||||
#if !defined (HAVE_GET_CURRENT_DIR_NAME) || defined (BROKEN_GET_CURRENT_DIR_NAME)
|
||||
|
||||
|
@ -233,7 +226,7 @@ char*
|
|||
get_current_dir_name (void)
|
||||
{
|
||||
char *buf;
|
||||
char *pwd;
|
||||
const char *pwd;
|
||||
struct stat dotstat, pwdstat;
|
||||
/* 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
|
||||
|
@ -300,6 +293,20 @@ get_current_dir_name (void)
|
|||
|
||||
#ifdef WINDOWSNT
|
||||
|
||||
/* Like strdup but get a fatal error if memory is exhausted. */
|
||||
|
||||
char *
|
||||
xstrdup (const char *s)
|
||||
{
|
||||
char *result = strdup (s);
|
||||
if (result == NULL)
|
||||
{
|
||||
perror ("strdup");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
#define REG_ROOT "SOFTWARE\\GNU\\Emacs"
|
||||
|
||||
/* Retrieve an environment variable from the Emacs subkeys of the registry.
|
||||
|
@ -335,9 +342,11 @@ w32_get_resource (HKEY predefined, char *key, LPDWORD type)
|
|||
/*
|
||||
getenv wrapper for Windows
|
||||
|
||||
This is needed to duplicate Emacs's behavior, which is to look for environment
|
||||
variables in the registry if they don't appear in the environment.
|
||||
*/
|
||||
Value is allocated on the heap, and can be free'd.
|
||||
|
||||
This is needed to duplicate Emacs's behavior, which is to look for
|
||||
environment variables in the registry if they don't appear in the
|
||||
environment. */
|
||||
char *
|
||||
w32_getenv (char *envvar)
|
||||
{
|
||||
|
@ -345,8 +354,9 @@ w32_getenv (char *envvar)
|
|||
DWORD dwType;
|
||||
|
||||
if (value = getenv (envvar))
|
||||
/* Found in the environment. */
|
||||
return value;
|
||||
/* Found in the environment. strdup it, because values returned
|
||||
by getenv cannot be free'd. */
|
||||
return xstrdup (value);
|
||||
|
||||
if (! (value = w32_get_resource (HKEY_CURRENT_USER, envvar, &dwType)) &&
|
||||
! (value = w32_get_resource (HKEY_LOCAL_MACHINE, envvar, &dwType)))
|
||||
|
@ -474,13 +484,13 @@ ttyname (int fd)
|
|||
/* Display a normal or error message.
|
||||
On Windows, use a message box if compiled as a Windows app. */
|
||||
static void
|
||||
message (int is_error, const char *message, ...)
|
||||
message (int is_error, const char *format, ...)
|
||||
{
|
||||
char msg[2048];
|
||||
va_list args;
|
||||
|
||||
va_start (args, message);
|
||||
vsprintf (msg, message, args);
|
||||
va_start (args, format);
|
||||
vsprintf (msg, format, args);
|
||||
va_end (args);
|
||||
|
||||
#ifdef WINDOWSNT
|
||||
|
@ -918,7 +928,7 @@ get_server_config (struct sockaddr_in *server, char *authentication)
|
|||
config = fopen (server_file, "rb");
|
||||
else
|
||||
{
|
||||
char *home = egetenv ("HOME");
|
||||
const char *home = egetenv ("HOME");
|
||||
|
||||
if (home)
|
||||
{
|
||||
|
@ -1025,10 +1035,10 @@ strprefix (const char *prefix, const char *string)
|
|||
is zero, or return 0 if NOABORT is non-zero. */
|
||||
|
||||
static int
|
||||
find_tty (char **tty_type, char **tty_name, int noabort)
|
||||
find_tty (const char **tty_type, const char **tty_name, int noabort)
|
||||
{
|
||||
char *type = egetenv ("TERM");
|
||||
char *name = ttyname (fileno (stdout));
|
||||
const char *type = egetenv ("TERM");
|
||||
const char *name = ttyname (fileno (stdout));
|
||||
|
||||
if (!name)
|
||||
{
|
||||
|
@ -1080,11 +1090,11 @@ find_tty (char **tty_type, char **tty_name, int noabort)
|
|||
0 - success: none of the above */
|
||||
|
||||
static int
|
||||
socket_status (char *socket_name)
|
||||
socket_status (char *name)
|
||||
{
|
||||
struct stat statbfr;
|
||||
|
||||
if (stat (socket_name, &statbfr) == -1)
|
||||
if (stat (name, &statbfr) == -1)
|
||||
return 2;
|
||||
|
||||
if (statbfr.st_uid != geteuid ())
|
||||
|
@ -1205,7 +1215,7 @@ set_local_socket (void)
|
|||
int default_sock = !socket_name;
|
||||
int saved_errno = 0;
|
||||
const char *server_name = "server";
|
||||
const char *tmpdir;
|
||||
const char *tmpdir IF_LINT ( = NULL);
|
||||
|
||||
if (socket_name && !strchr (socket_name, '/')
|
||||
&& !strchr (socket_name, '\\'))
|
||||
|
@ -1260,10 +1270,10 @@ set_local_socket (void)
|
|||
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 *) egetenv ("LOGNAME");
|
||||
const char *user_name = egetenv ("LOGNAME");
|
||||
|
||||
if (!user_name)
|
||||
user_name = (char *) egetenv ("USER");
|
||||
user_name = egetenv ("USER");
|
||||
|
||||
if (user_name)
|
||||
{
|
||||
|
@ -1483,8 +1493,8 @@ start_daemon_and_retry_set_socket (void)
|
|||
else
|
||||
{
|
||||
char emacs[] = "emacs";
|
||||
char daemon[] = "--daemon";
|
||||
char *d_argv[] = {emacs, daemon, 0 };
|
||||
char daemon_option[] = "--daemon";
|
||||
char *d_argv[] = {emacs, daemon_option, 0 };
|
||||
if (socket_name != NULL)
|
||||
{
|
||||
/* Pass --daemon=socket_name as argument. */
|
||||
|
@ -1504,10 +1514,12 @@ start_daemon_and_retry_set_socket (void)
|
|||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
int i, rl, needlf = 0;
|
||||
int rl, needlf = 0;
|
||||
char *cwd, *str;
|
||||
char string[BUFSIZ+1];
|
||||
int null_socket_name, null_server_file, start_daemon_if_needed;
|
||||
int null_socket_name IF_LINT ( = 0);
|
||||
int null_server_file IF_LINT ( = 0);
|
||||
int start_daemon_if_needed;
|
||||
int exit_status = EXIT_SUCCESS;
|
||||
|
||||
main_argv = argv;
|
||||
|
@ -1543,21 +1555,21 @@ main (int argc, char **argv)
|
|||
null_server_file = (server_file == NULL);
|
||||
}
|
||||
|
||||
if ((emacs_socket = set_socket (alternate_editor
|
||||
|| start_daemon_if_needed)) == INVALID_SOCKET)
|
||||
if (start_daemon_if_needed)
|
||||
{
|
||||
/* Reset socket_name and server_file if they were NULL
|
||||
before the set_socket call. */
|
||||
if (null_socket_name)
|
||||
socket_name = NULL;
|
||||
if (null_server_file)
|
||||
server_file = NULL;
|
||||
emacs_socket = set_socket (alternate_editor || start_daemon_if_needed);
|
||||
if (emacs_socket == INVALID_SOCKET)
|
||||
{
|
||||
if (! start_daemon_if_needed)
|
||||
fail ();
|
||||
|
||||
start_daemon_and_retry_set_socket ();
|
||||
}
|
||||
else
|
||||
fail ();
|
||||
/* Reset socket_name and server_file if they were NULL
|
||||
before the set_socket call. */
|
||||
if (null_socket_name)
|
||||
socket_name = NULL;
|
||||
if (null_server_file)
|
||||
server_file = NULL;
|
||||
|
||||
start_daemon_and_retry_set_socket ();
|
||||
}
|
||||
|
||||
cwd = get_current_dir_name ();
|
||||
if (cwd == 0)
|
||||
|
@ -1615,7 +1627,7 @@ main (int argc, char **argv)
|
|||
frame is available. */
|
||||
if (tty || (current_frame && !eval))
|
||||
{
|
||||
char *tty_type, *tty_name;
|
||||
const char *tty_type, *tty_name;
|
||||
|
||||
if (find_tty (&tty_type, &tty_name, !tty))
|
||||
{
|
||||
|
@ -1635,6 +1647,7 @@ main (int argc, char **argv)
|
|||
|
||||
if ((argc - optind > 0))
|
||||
{
|
||||
int i;
|
||||
for (i = optind; i < argc; i++)
|
||||
{
|
||||
|
||||
|
|
|
@ -236,7 +236,6 @@ If you want regular expression support, you should delete this notice and
|
|||
#define ISALNUM(c) isalnum (CHAR(c))
|
||||
#define ISALPHA(c) isalpha (CHAR(c))
|
||||
#define ISDIGIT(c) isdigit (CHAR(c))
|
||||
#define ISUPPER(c) isupper (CHAR(c))
|
||||
#define ISLOWER(c) islower (CHAR(c))
|
||||
|
||||
#define lowcase(c) tolower (CHAR(c))
|
||||
|
@ -6648,6 +6647,7 @@ canonicalize_filename (register char *fn)
|
|||
|
||||
#ifdef DOS_NT
|
||||
/* Canonicalize drive letter case. */
|
||||
# define ISUPPER(c) isupper (CHAR(c))
|
||||
if (fn[0] != '\0' && fn[1] == ':' && ISUPPER (fn[0]))
|
||||
fn[0] = lowcase (fn[0]);
|
||||
|
||||
|
|
|
@ -62,6 +62,8 @@ main ()
|
|||
|
||||
/* This is to declare cuserid. */
|
||||
#include <unistd.h>
|
||||
|
||||
#include <ignore-value.h>
|
||||
|
||||
/* Type definitions */
|
||||
|
||||
|
@ -405,8 +407,8 @@ close_the_streams (void)
|
|||
for (rem = the_streams;
|
||||
rem != ((stream_list) NULL);
|
||||
rem = rem->rest_streams)
|
||||
no_problems = (no_problems &&
|
||||
((*rem->action) (rem->handle) == 0));
|
||||
if (no_problems && (*rem->action) (rem->handle) != 0)
|
||||
error ("output error", NULL);
|
||||
the_streams = ((stream_list) NULL);
|
||||
return (no_problems ? EXIT_SUCCESS : EXIT_FAILURE);
|
||||
}
|
||||
|
@ -427,6 +429,8 @@ my_fclose (FILE *the_file)
|
|||
{
|
||||
putc ('\n', the_file);
|
||||
fflush (the_file);
|
||||
if (ferror (the_file))
|
||||
return EOF;
|
||||
return fclose (the_file);
|
||||
}
|
||||
|
||||
|
@ -496,7 +500,7 @@ put_line (const char *string)
|
|||
}
|
||||
}
|
||||
/* Output that much, then break the line. */
|
||||
fwrite (s, 1, breakpos - s, rem->handle);
|
||||
ignore_value (fwrite (s, 1, breakpos - s, rem->handle));
|
||||
column = 8;
|
||||
|
||||
/* Skip whitespace and prepare to print more addresses. */
|
||||
|
@ -729,6 +733,9 @@ main (int argc, char **argv)
|
|||
put_string (buf);
|
||||
}
|
||||
|
||||
if (no_problems && (ferror (stdin) || fclose (stdin) != 0))
|
||||
error ("input error", NULL);
|
||||
|
||||
exit (close_the_streams ());
|
||||
}
|
||||
|
||||
|
|
|
@ -617,7 +617,7 @@ write_globals (void)
|
|||
qsort (globals, num_globals, sizeof (struct global), compare_globals);
|
||||
for (i = 0; i < num_globals; ++i)
|
||||
{
|
||||
char *type;
|
||||
char const *type;
|
||||
|
||||
switch (globals[i].type)
|
||||
{
|
||||
|
@ -658,12 +658,8 @@ scan_c_file (char *filename, const char *mode)
|
|||
FILE *infile;
|
||||
register int c;
|
||||
register int commas;
|
||||
register int defunflag;
|
||||
register int defvarperbufferflag;
|
||||
register int defvarflag;
|
||||
int minargs, maxargs;
|
||||
int extension = filename[strlen (filename) - 1];
|
||||
enum global_type type;
|
||||
|
||||
if (extension == 'o')
|
||||
filename[strlen (filename) - 1] = 'c';
|
||||
|
@ -693,6 +689,10 @@ scan_c_file (char *filename, const char *mode)
|
|||
while (!feof (infile))
|
||||
{
|
||||
int doc_keyword = 0;
|
||||
int defunflag = 0;
|
||||
int defvarperbufferflag = 0;
|
||||
int defvarflag = 0;
|
||||
enum global_type type = INVALID;
|
||||
|
||||
if (c != '\n' && c != '\r')
|
||||
{
|
||||
|
@ -726,7 +726,6 @@ scan_c_file (char *filename, const char *mode)
|
|||
continue;
|
||||
|
||||
defvarflag = 1;
|
||||
defunflag = 0;
|
||||
|
||||
c = getc (infile);
|
||||
defvarperbufferflag = (c == 'P');
|
||||
|
@ -738,8 +737,6 @@ scan_c_file (char *filename, const char *mode)
|
|||
type = LISP_OBJECT;
|
||||
else if (c == 'B')
|
||||
type = BOOLEAN;
|
||||
else
|
||||
type = INVALID;
|
||||
}
|
||||
|
||||
c = getc (infile);
|
||||
|
@ -758,8 +755,6 @@ scan_c_file (char *filename, const char *mode)
|
|||
continue;
|
||||
c = getc (infile);
|
||||
defunflag = c == 'U';
|
||||
defvarflag = 0;
|
||||
defvarperbufferflag = 0;
|
||||
}
|
||||
else continue;
|
||||
|
||||
|
|
385
lisp/ChangeLog
385
lisp/ChangeLog
|
@ -1,3 +1,117 @@
|
|||
2011-03-01 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* emacs-lisp/cl-macs.el (lexical-let*): Fix argument name in docstring.
|
||||
|
||||
2011-03-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* calendar/cal-hebrew.el (calendar-hebrew-birthday, diary-hebrew-date):
|
||||
Rename and rework functions added in previous change.
|
||||
|
||||
2011-03-01 Ed Reingold <reingold@emr.cs.iit.edu>
|
||||
|
||||
* calendar/cal-hebrew.el (hebrew-calendar-birthday)
|
||||
(diary-hebrew-birthday): New functions.
|
||||
|
||||
2011-03-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* dired.el (dired-safe-switches-p): Beef it up.
|
||||
(dired-actual-switches): Use it for the safe-local prop. (Bug#3230)
|
||||
|
||||
2011-03-01 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* dired.el (dired-safe-switches-p): New function.
|
||||
|
||||
2011-03-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* files.el (dir-locals-collect-variables):
|
||||
Add the ability to exclude subdirectories. (Bug#8100)
|
||||
|
||||
* dired-x.el (dired-omit-here-always): Add `(subdirs . nil)' to locals.
|
||||
|
||||
2011-02-28 Christoph Scholtes <cschol2112@googlemail.com>
|
||||
|
||||
* ido.el (ido-everywhere): Doc fix.
|
||||
(ido-mode): Doc fix.
|
||||
|
||||
2011-02-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* dired-x.el (dired-guess-shell-alist-default): Use \\', not $.
|
||||
|
||||
2011-02-28 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* net/tramp-cmds.el (tramp-append-tramp-buffers): Dump load-path
|
||||
shadows.
|
||||
|
||||
2011-02-28 Antoine Levitt <antoine.levitt@gmail.com> (tiny change)
|
||||
|
||||
* dired-x.el (dired-guess-shell-alist-default): Add rar and 7z.
|
||||
|
||||
2011-02-28 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* emacs-lisp/pcase.el (pcase, pcase--u1, pcase--q1):
|
||||
Fix typos in docstrings.
|
||||
|
||||
2011-02-28 Stephen Berman <stephen.berman@gmx.net>
|
||||
|
||||
* dired-aux.el (dired-update-file-line):
|
||||
Fix 2010-11-09 change. (Bug#8131)
|
||||
|
||||
2011-02-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* international/mule-cmds.el (set-default-coding-systems): Use the
|
||||
-unix variant of encoding in default-keyboard-coding-system.
|
||||
(Bug#8122)
|
||||
|
||||
2011-02-27 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* facemenu.el (list-colors-display): Use with-help-window (Bug#8048).
|
||||
|
||||
2011-02-27 Prestoo Ten <prestooten@gmail.com> (tiny change)
|
||||
|
||||
* term/screen.el: New file (Bug#2650).
|
||||
|
||||
2011-02-27 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/pcase.el (pcase--if): Try to invert test to reduce depth.
|
||||
(pcase-mutually-exclusive-predicates): New var.
|
||||
(pcase--split-consp, pcase--split-pred): Use it.
|
||||
(pcase--split-equal, pcase--split-member): When splitting against
|
||||
a pure predicate, run it to know the outcome.
|
||||
(pcase--u1): Mark vars that are actually used.
|
||||
(pcase--q1): Avoid introducing unused vars.
|
||||
|
||||
2011-02-27 Jay Belanger <jay.p.belanger@gmail.com>
|
||||
|
||||
* calc/calc-ext.el (calc-init-extensions):
|
||||
Autoload `calc-l-prefix-help' instead of `calc-ul-prefix-help'.
|
||||
|
||||
* calc/calc-math.el (calcFunc-log10): Don't signal an error in
|
||||
symbolic mode.
|
||||
|
||||
* calc/calc-vec.el (calcFunc-subscr): Return nil if the first
|
||||
argument is a variable.
|
||||
|
||||
2011-02-26 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/assoc.el: Remove misleading `sort' (bug#8126).
|
||||
(aput, adelete, amake): Replace `eval' -> `symbol-value'.
|
||||
Suggested by Michael Heerdegen <michael_heerdegen@web.de>.
|
||||
|
||||
2011-02-25 Teodor Zlatanov <tzz@lifelogs.com>
|
||||
|
||||
* password-cache.el (password-in-cache-p): Convenience function to
|
||||
check if a key is in the cache, even if the value is nil.
|
||||
|
||||
2011-02-25 Jambunathan K <kjambunathan@gmail.com>
|
||||
|
||||
* emacs-lisp/package-x.el (package--archive-contents-from-url)
|
||||
(package--archive-contents-from-file): New functions.
|
||||
(package-update-news-on-upload): New var.
|
||||
(package-upload-buffer-internal): Extract archive-contents from
|
||||
package-archive-upload-base if it is not found at archive-url.
|
||||
Obey package-update-news-on-upload.
|
||||
(package-upload-buffer, package-upload-file): Doc fix.
|
||||
|
||||
2011-02-24 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* files-x.el (modify-dir-local-variable): Handle dir-locals from
|
||||
|
@ -1461,8 +1575,7 @@
|
|||
(allout-command-prefix) (allout-prefixed-keybindings)
|
||||
(allout-unprefixed-keybindings):
|
||||
Use allout-compose-and-institute-keymap to process the bindings.
|
||||
(allout-unprefixed-keybindings): Remove extraneous '?' question
|
||||
marks.
|
||||
(allout-unprefixed-keybindings): Remove extraneous '?' question marks.
|
||||
(allout-prefixed-keybindings): Elide binding to (prefixed) \C-h -
|
||||
user can customize if they want to use that binding.
|
||||
Bind allout-copy-topic-as-kill to (prefixed) \M-k.
|
||||
|
@ -1471,14 +1584,12 @@
|
|||
(allout-hotspot-key-handler): Remove attempt to resolve the key
|
||||
through the literal key-string lookup on allout-keybindings-list.
|
||||
That probably hasn't worked for a Long Time, and removal of
|
||||
allout-keybindings-list further simplifies the keybindings
|
||||
situation.
|
||||
allout-keybindings-list further simplifies the keybindings situation.
|
||||
(allout-pre-command-business): Use allout-mode-map-value instead
|
||||
of allout-mode-map.
|
||||
(allout-preempt-trailing-ctrl-h): Remove. The user can customize
|
||||
the bindings if they want to use a keybinding having a trailing
|
||||
\C-h. No deprecation needed since this feature was never in a
|
||||
release.
|
||||
\C-h. No deprecation needed since this feature was never in a release.
|
||||
(allout-keybindings-list): Remove. It's not been useful for a
|
||||
while. (See allout-hotspot-key-handler changes, above.)
|
||||
(produce-allout-mode-map): Remove. Consolidate into
|
||||
|
@ -2660,7 +2771,7 @@
|
|||
this original name from `bookmark-name-from-record' reverting part
|
||||
of 2010-12-08T08:09:27Z!kfogel@red-bean.com / kfogel@red-bean.com-20101208080927-5j9jqnb2xvcw4ogm.
|
||||
As Drew Adams pointed out, there was no reason to cause churn for
|
||||
third-party callers.
|
||||
third-party callers. (Bug#7609)
|
||||
|
||||
2010-12-12 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
|
@ -3006,7 +3117,6 @@
|
|||
|
||||
* net/tramp-cmds.el: Remove solved todo item.
|
||||
|
||||
* net/tramp-efs.el:
|
||||
* net/tramp-ftp.el:
|
||||
* net/tramp-gvfs.el:
|
||||
* net/tramp-gw.el:
|
||||
|
@ -4620,7 +4730,7 @@
|
|||
|
||||
2010-10-24 Michael McNamara <mac@mail.brushroad.com>
|
||||
|
||||
* verilog-mode.el (verilog-directive-re): Make this variable
|
||||
* progmodes/verilog-mode.el (verilog-directive-re): Make this variable
|
||||
auto-built for efficiency of execution and updating.
|
||||
(verilog-extended-complete-re): Support 'pure' fucntion & task
|
||||
declarations (these have no bodies).
|
||||
|
@ -4654,7 +4764,7 @@
|
|||
|
||||
2010-10-24 Wilson Snyder <wsnyder@wsnyder.org>
|
||||
|
||||
* verilog-mode.el (verilog-auto-inst, verilog-gate-ios)
|
||||
* progmodes/verilog-mode.el (verilog-auto-inst, verilog-gate-ios)
|
||||
(verilog-gate-keywords, verilog-read-sub-decls)
|
||||
(verilog-read-sub-decls-gate, verilog-read-sub-decls-gate-ios)
|
||||
(verilog-read-sub-decls-line, verilog-read-sub-decls-sig): Support
|
||||
|
@ -6251,8 +6361,8 @@
|
|||
Use `tramp-compat-funcall'.
|
||||
|
||||
* net/tramp.el (tramp-process-actions):
|
||||
* net/tramp-gvfs.el (tramp-handle-vc-registered):
|
||||
* net/tramp-sh.el (tramp-gvfs-handler-askquestion)
|
||||
* net/tramp-gvfs.el (tramp-gvfs-handler-askquestion):
|
||||
* net/tramp-sh.el (tramp-handle-vc-registered)
|
||||
(tramp-get-remote-stat, tramp-get-remote-readlink):
|
||||
Use `tramp-compat-with-temp-message'.
|
||||
|
||||
|
@ -7299,48 +7409,6 @@
|
|||
|
||||
* whitespace.el (whitespace-style): Adjust type declaration.
|
||||
|
||||
2010-08-26 Magnus Henoch <magnus.henoch@gmail.com>
|
||||
|
||||
* net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Do not pass
|
||||
empty argument to gvfs-copy.
|
||||
|
||||
2010-08-26 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* net/tramp-compat.el (tramp-compat-delete-file): Rewrite to
|
||||
handle new TRASH arg of `delete-file'.
|
||||
|
||||
2010-08-26 Christian Lynbech <christian.lynbech@tieto.com> (tiny change)
|
||||
|
||||
* net/tramp.el (tramp-handle-insert-directory): Don't use
|
||||
`forward-word', its default syntax could be changed.
|
||||
|
||||
2010-08-26 Toru TSUNEYOSHI <t_tuneyosi@hotmail.com>
|
||||
Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
Implement compression for inline methods.
|
||||
|
||||
* net/tramp.el (tramp-inline-compress-start-size): New defcustom.
|
||||
(tramp-copy-size-limit): Allow also nil.
|
||||
(tramp-inline-compress-commands): New defconst.
|
||||
(tramp-find-inline-compress, tramp-get-inline-compress)
|
||||
(tramp-get-inline-coding): New defuns.
|
||||
(tramp-get-remote-coding, tramp-get-local-coding): Remove,
|
||||
replaced by `tramp-get-inline-coding'.
|
||||
(tramp-handle-file-local-copy, tramp-handle-write-region)
|
||||
(tramp-method-out-of-band-p): Use `tramp-get-inline-coding'.
|
||||
|
||||
2010-08-26 Noah Lavine <noah549@gmail.com> (tiny change)
|
||||
|
||||
Detect ssh 'ControlMaster' argument automatically in some cases.
|
||||
|
||||
* net/tramp.el (tramp-detect-ssh-controlmaster): New defun.
|
||||
(tramp-default-method): Use it.
|
||||
|
||||
2010-08-26 Karel Klíč <kklic@redhat.com>
|
||||
|
||||
* net/tramp.el (tramp-file-name-for-operation):
|
||||
Add file-selinux-context.
|
||||
|
||||
2010-08-26 Łukasz Stelmach <lukasz.stelmach@iem.pw.edu.pl> (tiny change)
|
||||
|
||||
* play/cookie1.el (read-cookie): Fix off-by-one error (bug#6921).
|
||||
|
@ -7372,210 +7440,14 @@
|
|||
|
||||
Sync with Tramp 2.1.19.
|
||||
|
||||
* net/tramp-cmds.el (tramp-cleanup-all-connections)
|
||||
(tramp-reporter-dump-variable, tramp-load-report-modules)
|
||||
(tramp-append-tramp-buffers): Use `tramp-compat-funcall'.
|
||||
(tramp-bug): Recommend setting of `tramp-verbose' to 9.
|
||||
* net/tramp-gvfs.el (tramp-gvfs-handle-write-region): Protect
|
||||
deleting tmpfile.
|
||||
(tramp-gvfs-maybe-open-connection): Use `tramp-compat-funcall'.
|
||||
|
||||
* net/tramp-compat.el (top): Do not autoload
|
||||
`tramp-handle-file-remote-p'. Load tramp-util.el and tramp-vc.el
|
||||
only when `start-file-process' is not bound.
|
||||
(byte-compile-not-obsolete-vars): Define if not bound.
|
||||
(tramp-compat-funcall): New defmacro.
|
||||
(tramp-compat-line-beginning-position)
|
||||
(tramp-compat-line-end-position)
|
||||
(tramp-compat-temporary-file-directory)
|
||||
(tramp-compat-make-temp-file, tramp-compat-file-attributes)
|
||||
(tramp-compat-copy-file, tramp-compat-copy-directory)
|
||||
(tramp-compat-delete-file, tramp-compat-delete-directory)
|
||||
(tramp-compat-number-sequence, tramp-compat-process-running-p):
|
||||
Use it.
|
||||
(tramp-advice-file-expand-wildcards): Do not use
|
||||
`tramp-handle-file-remote-p'.
|
||||
(tramp-compat-make-temp-file): Simplify fallback implementation.
|
||||
(tramp-compat-copy-file): Add PRESERVE-SELINUX-CONTEXT.
|
||||
(tramp-compat-copy-tree): Remove function.
|
||||
(tramp-compat-delete-file): New defun.
|
||||
(tramp-compat-delete-directory): Provide implementation for older
|
||||
Emacsen.
|
||||
(tramp-compat-file-attributes): Handle only
|
||||
`wrong-number-of-arguments' error.
|
||||
|
||||
* net/tramp-fish.el (tramp-fish-handle-copy-file):
|
||||
Add PRESERVE_SELINUX_CONTEXT.
|
||||
(tramp-fish-handle-delete-file): Add TRASH arg.
|
||||
(tramp-fish-handle-directory-files-and-attributes):
|
||||
Do not use `tramp-fish-handle-file-attributes.
|
||||
(tramp-fish-handle-file-local-copy)
|
||||
(tramp-fish-handle-insert-file-contents)
|
||||
(tramp-fish-maybe-open-connection): Use `with-progress-reporter'.
|
||||
|
||||
* net/tramp-gvfs.el (top): Require url-util.
|
||||
(tramp-gvfs-mount-point): Remove.
|
||||
(tramp-gvfs-file-name-handler-alist): Add `file-selinux-context'
|
||||
and `set-file-selinux-context'.
|
||||
(tramp-gvfs-stringify-dbus-message, tramp-gvfs-send-command)
|
||||
(tramp-gvfs-handle-file-selinux-context)
|
||||
(tramp-gvfs-handle-set-file-selinux-context): New defuns.
|
||||
(with-tramp-dbus-call-method): Format trace message.
|
||||
(tramp-gvfs-handle-copy-file): Handle PRESERVE-SELINUX-CONTEXT.
|
||||
(tramp-gvfs-handle-copy-file, tramp-gvfs-handle-rename-file):
|
||||
Implement backup call, when operation on local files fails.
|
||||
Use progress reporter. Flush properties of changed files.
|
||||
(tramp-gvfs-handle-delete-file): Add TRASH arg.
|
||||
Use `tramp-compat-delete-file'.
|
||||
(tramp-gvfs-handle-expand-file-name): Expand "~/".
|
||||
(tramp-gvfs-handle-make-directory): Make more traces.
|
||||
(tramp-gvfs-handle-write-region): Protect deleting tmpfile.
|
||||
(tramp-gvfs-url-file-name): Hexify file name in url.
|
||||
(tramp-gvfs-fuse-file-name): Take also prefix (like dav shares)
|
||||
into account for the resulting file name.
|
||||
(tramp-gvfs-handler-askquestion): Preserve current message, in
|
||||
order to let progress reporter continue afterwards. (Bug#6257)
|
||||
Return dummy mountpoint, when the answer is "no".
|
||||
See `tramp-gvfs-maybe-open-connection'.
|
||||
(tramp-gvfs-handler-mounted-unmounted)
|
||||
(tramp-gvfs-connection-mounted-p): Test also for new mountspec
|
||||
attribute "default_location". Set "prefix" property.
|
||||
Handle default-location.
|
||||
(tramp-gvfs-mount-spec): Return both prefix and mountspec.
|
||||
(tramp-gvfs-maybe-open-connection): Test, whether mountpoint
|
||||
exists. Raise an error, if not (due to a corresponding answer
|
||||
"no" in interactive questions, for example).
|
||||
Use `tramp-compat-funcall'.
|
||||
|
||||
* net/tramp-imap.el (top): Autoload `epg-make-context'.
|
||||
(tramp-imap-handle-copy-file): Add PRESERVE-SELINUX-CONTEXT.
|
||||
(tramp-imap-do-copy-or-rename-file)
|
||||
(tramp-imap-handle-insert-file-contents)
|
||||
(tramp-imap-handle-file-local-copy): Use `with-progress-reporter'.
|
||||
(tramp-imap-handle-delete-file): Add TRASH arg.
|
||||
|
||||
* net/tramp-smb.el (tramp-smb-handle-copy-file):
|
||||
Add PRESERVE-SELINUX-CONTEXT.
|
||||
(tramp-smb-handle-copy-file)
|
||||
(tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
|
||||
(tramp-smb-handle-write-region, tramp-smb-maybe-open-connection):
|
||||
Use `with-progress-reporter'.
|
||||
(tramp-smb-handle-delete-file): Add TRASH arg.
|
||||
|
||||
* net/tramp.el (tramp-methods): Move hostname to the end in all
|
||||
ssh `tramp-login-args'. Add `tramp-async-args' attribute where
|
||||
appropriate.
|
||||
(tramp-verbose): Describe verbose level 9.
|
||||
(tramp-completion-function-alist)
|
||||
(tramp-file-name-regexp, tramp-chunksize)
|
||||
(tramp-local-coding-commands, tramp-remote-coding-commands)
|
||||
(with-connection-property, tramp-completion-mode-p)
|
||||
(tramp-action-process-alive, tramp-action-out-of-band)
|
||||
(tramp-check-for-regexp, tramp-file-name-p, tramp-equal-remote)
|
||||
(tramp-exists-file-name-handler): Fix docstring.
|
||||
(tramp-remote-process-environment): Use `format' instead of
|
||||
`concat'. Protect version string by apostroph.
|
||||
(tramp-shell-prompt-pattern): Do not use a shy group in case of
|
||||
XEmacs.
|
||||
(tramp-file-name-regexp-unified)
|
||||
(tramp-completion-file-name-regexp-unified): On W32 systems, do
|
||||
not regard the volume letter as remote filename. (Bug#5447)
|
||||
(tramp-perl-file-attributes)
|
||||
(tramp-perl-directory-files-and-attributes): Don't pass "$3".
|
||||
(tramp-vc-registered-read-file-names): Read input as
|
||||
here-document, otherwise the command could exceed maximum length
|
||||
of command line.
|
||||
(tramp-file-name-handler-alist): Add `file-selinux-context' and
|
||||
`set-file-selinux-context'.
|
||||
(tramp-debug-message): Add `tramp-compat-funcall' to ignored
|
||||
backtrace functions.
|
||||
(tramp-error-with-buffer): Don't show the connection buffer when
|
||||
we are in completion mode.
|
||||
(tramp-progress-reporter-update, tramp-remote-selinux-p)
|
||||
(tramp-handle-file-selinux-context)
|
||||
(tramp-handle-set-file-selinux-context, tramp-process-sentinel)
|
||||
(tramp-connectable-p, tramp-open-shell, tramp-get-remote-trash):
|
||||
New defuns.
|
||||
(with-progress-reporter): New defmacro.
|
||||
(tramp-debug-outline-regexp): New defconst.
|
||||
(top, tramp-rfn-eshadow-setup-minibuffer)
|
||||
(tramp-rfn-eshadow-update-overlay, tramp-handle-set-file-times)
|
||||
(tramp-handle-dired-compress-file, tramp-handle-shell-command)
|
||||
(tramp-completion-mode-p, tramp-check-for-regexp)
|
||||
(tramp-open-connection-setup-interactive-shell)
|
||||
(tramp-compute-multi-hops, tramp-read-passwd, tramp-clear-passwd)
|
||||
(tramp-time-diff, tramp-coding-system-change-eol-conversion)
|
||||
(tramp-set-process-query-on-exit-flag, tramp-unload-tramp):
|
||||
Use `tramp-compat-funcall'.
|
||||
(tramp-handle-make-symbolic-link): Flush file properties.
|
||||
(tramp-handle-load, tramp-handle-file-local-copy)
|
||||
(tramp-handle-insert-file-contents, tramp-handle-write-region)
|
||||
(tramp-handle-vc-registered, tramp-maybe-send-script)
|
||||
(tramp-find-shell): Use `with-progress-reporter'.
|
||||
(tramp-do-file-attributes-with-stat): Add space in format string,
|
||||
in order to work around a bug in pdksh. Reported by Gilles Pion
|
||||
<gpion@lfdj.com>.
|
||||
(tramp-handle-verify-visited-file-modtime): Do not send a command
|
||||
when the connection is not established.
|
||||
(tramp-handle-set-file-times): Simplify the check for utc.
|
||||
(tramp-handle-directory-files-and-attributes)
|
||||
(tramp-get-remote-path): Use `copy-tree'.
|
||||
(tramp-completion-handle-file-name-all-completions): Ensure, that
|
||||
non remote files are still checked. Oops.
|
||||
(tramp-handle-copy-file, tramp-do-copy-or-rename-file):
|
||||
Handle PRESERVE-SELINUX-CONTEXT.
|
||||
(tramp-do-copy-or-rename-file): Add progress reporter.
|
||||
(tramp-do-copy-or-rename-file-directly): Do not use
|
||||
`tramp-handle-file-remote-p'.
|
||||
(tramp-do-copy-or-rename-file-out-of-band):
|
||||
Use `tramp-compat-delete-directory'.
|
||||
(tramp-do-copy-or-rename-file-out-of-band)
|
||||
(tramp-compute-multi-hops, tramp-maybe-open-connection):
|
||||
Use `format-spec-make'.
|
||||
(tramp-handle-delete-file): Add TRASH arg.
|
||||
(tramp-handle-dired-uncache): Flush directory cache, not only file
|
||||
cache.
|
||||
(tramp-handle-expand-file-name)
|
||||
* net/tramp.el (tramp-handle-expand-file-name)
|
||||
(tramp-completion-handle-file-name-all-completions)
|
||||
(tramp-completion-handle-file-name-completion):
|
||||
Use `tramp-connectable-p'.
|
||||
(tramp-handle-start-file-process): Set connection property "vec".
|
||||
Use it, in order to invalidate file caches. Check only for
|
||||
`remote-tty' process property.
|
||||
Implement tty setting. (Bug#4604, Bug#6360)
|
||||
(tramp-file-name-for-operation): Add `call-process-region' and
|
||||
`set-file-selinux-context'.
|
||||
(tramp-find-foreign-file-name-handler)
|
||||
(tramp-advice-make-auto-save-file-name)
|
||||
(tramp-set-auto-save-file-modes): Remove superfluous check for
|
||||
`stringp'. This is done inside `tramp-tramp-file-p'.
|
||||
(tramp-file-name-handler): Trace 'quit. Catch the error for some
|
||||
operations when we are in completion mode. This gives the user
|
||||
the chance to correct the file name in the minibuffer.
|
||||
(tramp-completion-mode-p): Use `non-essential'.
|
||||
(tramp-handle-file-name-all-completions): Backward/ XEmacs
|
||||
compatibility: Use `completion-ignore-case' if
|
||||
`read-file-name-completion-ignore-case' does not exist.
|
||||
(tramp-get-debug-buffer): Use `tramp-debug-outline-regexp'.
|
||||
(tramp-find-shell, tramp-open-connection-setup-interactive-shell):
|
||||
`tramp-open-shell'.
|
||||
(tramp-action-password): Hide password prompt before next run.
|
||||
(tramp-process-actions): Widen connection buffer for the trace.
|
||||
(tramp-open-connection-setup-interactive-shell): Set `remote-tty'
|
||||
process property. Trace stty settings if `tramp-verbose' >= 9.
|
||||
Apply workaround for IRIX64 bug. Move argument of last
|
||||
`tramp-send-command' where it belongs to.
|
||||
(tramp-maybe-open-connection): Use `async-args' and `gw-args' in
|
||||
front of `login-args'.
|
||||
(tramp-get-ls-command, tramp-get-ls-command-with-dired): Run tests
|
||||
on "/dev/null" instead of "/".
|
||||
(tramp-get-ls-command-with-dired): Make test for "--dired"
|
||||
stronger.
|
||||
(tramp-set-auto-save-file-modes): Adapt version check.
|
||||
(tramp-set-process-query-on-exit-flag): Fix wrong parentheses.
|
||||
(tramp-handle-process-file): Call the program in a subshell, in
|
||||
order to preserve working directory.
|
||||
(tramp-handle-shell-command): Don't use hard-wired "/bin/sh" but
|
||||
`tramp-remote-sh' from `tramp-methods'.
|
||||
(tramp-get-ls-command): Make test for "--color=never" stronger.
|
||||
(tramp-check-for-regexp): Use (forward-line 1).
|
||||
|
||||
* net/trampver.el: Update release number.
|
||||
|
||||
|
@ -9847,9 +9719,8 @@
|
|||
* net/tramp-ftp.el (tramp-ftp-file-name-handler):
|
||||
Use `delete-file' instead of `tramp-compat-delete-file'.
|
||||
|
||||
* net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Rename arg.
|
||||
(tramp-gvfs-handle-write-region): Use `delete-file' instead of
|
||||
`tramp-compat-delete-file'.
|
||||
* net/tramp-gvfs.el (tramp-gvfs-handle-write-region): Use
|
||||
`delete-file' instead of `tramp-compat-delete-file'.
|
||||
|
||||
* net/tramp-imap.el (tramp-imap-do-copy-or-rename-file):
|
||||
Use `delete-file' instead of `tramp-compat-delete-file'.
|
||||
|
|
|
@ -20591,7 +20591,7 @@
|
|||
|
||||
* viper-cmd.el (viper-change-state): Got rid of make-local-hook.
|
||||
(viper-special-read-and-insert-char): Make C-m work right in the r
|
||||
comand.
|
||||
command.
|
||||
(viper-buffer-search-enable): Fixed format string.
|
||||
|
||||
* viper-ex.el (ex-token-alist): Use ex-set-visited-file-name
|
||||
|
|
|
@ -10699,9 +10699,6 @@
|
|||
output of the next command. Reported by M Jared Finder
|
||||
<jared@hpalace.com>.
|
||||
|
||||
* net/tramp-vc.el (vc-user-login-name): Wrap defadvice with a test
|
||||
for `process-file', in order to let it work for older Emacsen too.
|
||||
|
||||
2006-04-17 Ralf Angeli <angeli@iwi.uni-sb.de>
|
||||
|
||||
* textmodes/tex-mode.el (tex-font-lock-match-suscript): New function.
|
||||
|
@ -11678,7 +11675,7 @@
|
|||
make underlining work for wide characters.
|
||||
(org-goto-map, org-agenda-mode-map, org-mode-map): Explicitly bind
|
||||
TAB to `org-cycle', to make sure that no binding in
|
||||
`outline-mode-map' can supercede it.
|
||||
`outline-mode-map' can supersede it.
|
||||
|
||||
2006-03-14 Ken Manheimer <ken.manheimer@gmail.com>
|
||||
|
||||
|
@ -19139,7 +19136,7 @@
|
|||
* pgg.el (pgg-decrypt): Passing along PASSPHRASE in call to
|
||||
pgg-decrypt-region.
|
||||
(pgg-pending-timers): A new hash for tracking the passphrase cache
|
||||
timers, so that new ones supercede old ones.
|
||||
timers, so that new ones supersede old ones.
|
||||
(pgg-add-passphrase-to-cache): Rename from
|
||||
`pgg-add-passphrase-cache' to reduce confusion (all callers
|
||||
changed). Modified to cancel old timers when new ones are added.
|
||||
|
@ -19225,7 +19222,7 @@
|
|||
* pgg.el (pgg-decrypt): Passing along PASSPHRASE in call to
|
||||
pgg-decrypt-region.
|
||||
(pgg-pending-timers): A new hash for tracking the passphrase cache
|
||||
timers, so that new ones supercede old ones.
|
||||
timers, so that new ones supersede old ones.
|
||||
(pgg-add-passphrase-to-cache): Rename from
|
||||
`pgg-add-passphrase-cache' to reduce confusion (all callers
|
||||
changed). Modified to cancel old timers when new ones are added.
|
||||
|
|
|
@ -4906,7 +4906,7 @@
|
|||
* two-column.el: Doc fixes.
|
||||
|
||||
* loaddefs.el (function-keymap): Definition deleted; this has been
|
||||
superceded by function-key-map.
|
||||
superseded by function-key-map.
|
||||
|
||||
* gomoku.el (gomoku-mode-map): Use function key symbols, instead
|
||||
of the keypad.el facilities.
|
||||
|
@ -6056,7 +6056,7 @@
|
|||
and `fill-column'. Code now actually sets `left-margin' and
|
||||
`fill-column', as advertised.
|
||||
* text-mode.el (change-log-mode): Function deleted, since it's
|
||||
been superceded by the one in add-log.el.
|
||||
been superseded by the one in add-log.el.
|
||||
|
||||
1992-06-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
|
||||
|
||||
|
@ -6070,7 +6070,7 @@
|
|||
|
||||
1992-06-12 Jim Blandy (jimb@pogo.cs.oberlin.edu)
|
||||
|
||||
* isearch-mode.el: New package, which will probably supercede
|
||||
* isearch-mode.el: New package, which will probably supersede
|
||||
isearch.el.
|
||||
(isearch-mode-map, isearch-mode-meta-map): When initializing
|
||||
these, remember that vectors are no longer keymaps.
|
||||
|
@ -10009,7 +10009,7 @@
|
|||
display-time-string.
|
||||
(rmail-pop-up): Default display-time-hook to automatically retrieve
|
||||
new mail if the variable rmail-pop-up is non-nil.
|
||||
(add-clock-handler): Removed; superceded by timer.el.
|
||||
(add-clock-handler): Removed; superseded by timer.el.
|
||||
|
||||
* loaddefs.el: Removed add-clock-handler.
|
||||
|
||||
|
@ -10032,7 +10032,7 @@
|
|||
|
||||
* loaddefs.el: Autoload for diff.
|
||||
|
||||
* files.el (diff): Superceded by diff.el.
|
||||
* files.el (diff): Superseded by diff.el.
|
||||
(diff-switches-function): Still needs to be merged into diff.el.
|
||||
|
||||
* diff.el: New file.
|
||||
|
|
|
@ -339,7 +339,7 @@ The types of elements in the layout specification are:
|
|||
-- positive numbers open to the relative depth indicated by the
|
||||
number, but do not force already opened subtopics to be closed.
|
||||
-- 0 means to close topic -- hide all subitems.
|
||||
: -- repeat spec -- apply the preceeding element to all siblings at
|
||||
: -- repeat spec -- apply the preceding element to all siblings at
|
||||
current level, *up to* those siblings that would be covered by specs
|
||||
following the `:' on the list. Ie, apply to all topics at level but
|
||||
trailing ones accounted for by trailing specs. (Only the first of
|
||||
|
@ -3125,7 +3125,7 @@ situation."
|
|||
nil)
|
||||
;; rationale: if any intervening items were at a lower depth, we
|
||||
;; would now be on the first offspring at the target depth -- ie,
|
||||
;; the preceeding item (per the search direction) must be at a
|
||||
;; the preceding item (per the search direction) must be at a
|
||||
;; lesser depth. that's all we need to check.
|
||||
(if backward (allout-next-heading) (allout-previous-heading))
|
||||
(if (< allout-recent-depth target-depth)
|
||||
|
@ -4246,7 +4246,7 @@ With a negative argument, the item is shifted out using
|
|||
|
||||
With an argument greater than one, shift-in the item but not its
|
||||
offspring, making the item into a sibling of its former children,
|
||||
and a child of sibling that formerly preceeded it.
|
||||
and a child of sibling that formerly preceded it.
|
||||
|
||||
You are not allowed to shift the first offspring of a topic
|
||||
inwards, because that would yield a \"containment
|
||||
|
@ -5364,7 +5364,7 @@ header and body. The elements of that list are:
|
|||
|
||||
(goto-char start)
|
||||
(beginning-of-line)
|
||||
;; Goto initial topic, and register preceeding stuff, if any:
|
||||
;; Goto initial topic, and register preceding stuff, if any:
|
||||
(if (> (allout-goto-prefix-doublechecked) start)
|
||||
;; First topic follows beginning point -- register preliminary stuff:
|
||||
(setq result
|
||||
|
|
|
@ -1061,7 +1061,7 @@ calc-full-help calc-g-prefix-help calc-help-prefix
|
|||
calc-hyperbolic-prefix-help calc-inv-hyp-prefix-help calc-option-prefix-help
|
||||
calc-inverse-prefix-help calc-j-prefix-help calc-k-prefix-help
|
||||
calc-m-prefix-help calc-r-prefix-help calc-s-prefix-help
|
||||
calc-t-prefix-help calc-u-prefix-help calc-ul-prefix-help
|
||||
calc-t-prefix-help calc-u-prefix-help calc-l-prefix-help
|
||||
calc-v-prefix-help)
|
||||
|
||||
("calc-incom" calc-begin-complex calc-begin-vector calc-comma
|
||||
|
|
|
@ -1574,7 +1574,7 @@ If this can't be done, return NIL."
|
|||
(if calc-infinite-mode
|
||||
'(neg (var inf var-inf))
|
||||
(math-reject-arg x "*Logarithm of zero")))
|
||||
(calc-symbolic-mode (signal 'inexact-result nil))
|
||||
;;(calc-symbolic-mode (signal 'inexact-result nil))
|
||||
((Math-numberp x)
|
||||
(math-with-extra-prec 2
|
||||
(let ((xf (math-float x)))
|
||||
|
|
|
@ -759,12 +759,13 @@
|
|||
(math-reject-arg n "*Index out of range")))))
|
||||
|
||||
(defun calcFunc-subscr (mat n &optional m)
|
||||
(setq mat (calcFunc-mrow mat n))
|
||||
(if m
|
||||
(if (math-num-integerp n)
|
||||
(calcFunc-mrow mat m)
|
||||
(calcFunc-mcol mat m))
|
||||
mat))
|
||||
(if (eq (car-safe mat) 'var) nil
|
||||
(setq mat (calcFunc-mrow mat n))
|
||||
(if m
|
||||
(if (math-num-integerp n)
|
||||
(calcFunc-mrow mat m)
|
||||
(calcFunc-mcol mat m))
|
||||
mat)))
|
||||
|
||||
;;; Get the Nth column of a matrix.
|
||||
(defun math-mat-col (mat n)
|
||||
|
|
|
@ -792,6 +792,20 @@ from the cursor position."
|
|||
(define-obsolete-function-alias 'list-yahrzeit-dates
|
||||
'calendar-hebrew-list-yahrzeits "23.1")
|
||||
|
||||
(defun calendar-hebrew-birthday (date year)
|
||||
"Absolute date of the anniversary of Hebrew birth DATE, in Hebrew YEAR."
|
||||
(let ((b-day (calendar-extract-day date))
|
||||
(b-month (calendar-extract-month date))
|
||||
(b-year (calendar-extract-year date)))
|
||||
;; If it's Adar in a normal Hebrew year or Adar II in a Hebrew leap year...
|
||||
(if (= b-month (calendar-hebrew-last-month-of-year b-year))
|
||||
;; ...then use the same day in last month of Hebrew year.
|
||||
(calendar-hebrew-to-absolute
|
||||
(list (calendar-hebrew-last-month-of-year year) b-day year))
|
||||
;; Else use the normal anniversary of the birth date,
|
||||
;; or the corresponding day in years without that date.
|
||||
(+ (calendar-hebrew-to-absolute (list b-month 1 year)) b-day -1))))
|
||||
|
||||
(defvar date)
|
||||
|
||||
;; To be called from diary-list-sexp-entries, where DATE is bound.
|
||||
|
@ -800,6 +814,37 @@ from the cursor position."
|
|||
"Hebrew calendar equivalent of date diary entry."
|
||||
(format "Hebrew date (until sunset): %s" (calendar-hebrew-date-string date)))
|
||||
|
||||
(defvar entry)
|
||||
(declare-function diary-ordinal-suffix "diary-lib" (n))
|
||||
|
||||
;;;###diary-autoload
|
||||
(defun diary-hebrew-birthday (month day year &optional after-sunset)
|
||||
"Hebrew birthday diary entry.
|
||||
Entry applies if date is birthdate (MONTH DAY YEAR), or the day before.
|
||||
The order of the input parameters changes according to
|
||||
`calendar-date-style' (e.g. to DAY MONTH YEAR in the European style).
|
||||
|
||||
Assumes the associated diary entry is the name of the person.
|
||||
|
||||
Although the date of birth is specified by the *civil* calendar,
|
||||
this function determines the proper Hebrew calendar birthday.
|
||||
If the optional argument AFTER-SUNSET is non-nil, this means the
|
||||
birth occurred after local sunset on the given civil date.
|
||||
In this case, the following civil date corresponds to the Hebrew birthday."
|
||||
(let* ((h-date (calendar-hebrew-from-absolute
|
||||
(+ (calendar-absolute-from-gregorian
|
||||
(diary-make-date month day year))
|
||||
(if after-sunset 1 0))))
|
||||
(h-year (calendar-extract-year h-date)) ; birth-day
|
||||
(d (calendar-absolute-from-gregorian date)) ; today
|
||||
(h-yr (calendar-extract-year (calendar-hebrew-from-absolute d)))
|
||||
(age (- h-yr h-year)) ; current H year - birth H-year
|
||||
(b-date (calendar-hebrew-birthday h-date h-yr)))
|
||||
(and (> age 0) (memq b-date (list d (1+ d)))
|
||||
(format "%s's %d%s Hebrew birthday%s" entry age
|
||||
(diary-ordinal-suffix age)
|
||||
(if (= b-date d) "" " (evening)")))))
|
||||
|
||||
;;;###diary-autoload
|
||||
(defun diary-hebrew-omer (&optional mark)
|
||||
"Omer count diary entry.
|
||||
|
@ -829,8 +874,6 @@ use when highlighting the day in the calendar."
|
|||
;;;###diary-autoload
|
||||
(define-obsolete-function-alias 'diary-omer 'diary-hebrew-omer "23.1")
|
||||
|
||||
(defvar entry)
|
||||
|
||||
(autoload 'diary-make-date "diary-lib")
|
||||
|
||||
(declare-function diary-ordinal-suffix "diary-lib" (n))
|
||||
|
|
|
@ -100,7 +100,7 @@ Usually bound to the dimension of a single symbol or command.")
|
|||
:type list
|
||||
:documentation "List of tags defining local text.
|
||||
This can be nil, or a list where the last element can be a string
|
||||
representing text that may be incomplete. Preceeding elements
|
||||
representing text that may be incomplete. Preceding elements
|
||||
must be semantic tags representing variables or functions
|
||||
called in a dereference sequence.")
|
||||
(prefixclass :initarg :prefixclass
|
||||
|
|
|
@ -1264,7 +1264,7 @@ inserted into the current context.")
|
|||
;; generated by a collector. This format is in semanticdb search
|
||||
;; form. This vaguely standard form is a bit challenging to navigate
|
||||
;; because the tags do not contain buffer info, but the file associated
|
||||
;; with the tags preceed the tag in the list.
|
||||
;; with the tags precedes the tag in the list.
|
||||
;;
|
||||
;; Basic displayors don't care, and can strip the results.
|
||||
;; Advanced highlighting displayors need to know when they need
|
||||
|
|
|
@ -426,7 +426,7 @@ See `semantic-edits-change-leaf-tag' for details on parents."
|
|||
;; confirmed as the lineage of `overlapped-tags'
|
||||
;; which must have a value by now.
|
||||
|
||||
;; Loop over the search list to find the preceeding CDR.
|
||||
;; Loop over the search list to find the preceding CDR.
|
||||
;; Fortunatly, (car overlapped-tags) happens to be
|
||||
;; the first tag positionally.
|
||||
(let ((tokstart (semantic-tag-start (car overlapped-tags))))
|
||||
|
@ -874,7 +874,7 @@ pre-positioned to a convenient location."
|
|||
))
|
||||
(message "To Remove Middle Tag: (%s)"
|
||||
(semantic-format-tag-name first)))
|
||||
;; Find in the cache the preceeding tag
|
||||
;; Find in the cache the preceding tag
|
||||
(while (and cachestart (not (eq first (car (cdr cachestart)))))
|
||||
(setq cachestart (cdr cachestart)))
|
||||
;; Find the last tag
|
||||
|
|
|
@ -296,7 +296,7 @@ local definitions."
|
|||
|
||||
(define-overloadable-function semantic-format-tag-canonical-name (tag &optional parent color)
|
||||
"Return a canonical name for TAG.
|
||||
A canonical name includes the names of any parents or namespaces preceeding
|
||||
A canonical name includes the names of any parents or namespaces preceding
|
||||
the tag.
|
||||
Optional argument PARENT is the parent type if TAG is a detail.
|
||||
Optional argument COLOR means highlight the prototype with font-lock colors.")
|
||||
|
|
|
@ -256,7 +256,7 @@ Optional argument COLOR indicates that color should be mixed in."
|
|||
(define-mode-local-override semantic-documentation-for-tag
|
||||
java-mode (&optional tag nosnarf)
|
||||
"Find documentation from TAG and return it as a clean string.
|
||||
Java have documentation set in a comment preceeding TAG's definition.
|
||||
Java has documentation set in a comment preceding TAG's definition.
|
||||
Attempt to strip out comment syntactic sugar, unless optional argument
|
||||
NOSNARF is non-nil.
|
||||
If NOSNARF is 'lex, then return the semantic lex token."
|
||||
|
|
|
@ -1025,9 +1025,9 @@ See Info node `(emacs)Subdir switches' for more details."
|
|||
;; Keeps any marks that may be present in column one (doing this
|
||||
;; here is faster than with dired-add-entry's optional arg).
|
||||
;; Does not update other dired buffers. Use dired-relist-entry for that.
|
||||
(let ((char (following-char))
|
||||
(opoint (line-beginning-position))
|
||||
(buffer-read-only))
|
||||
(let* ((opoint (line-beginning-position))
|
||||
(char (char-after opoint))
|
||||
(buffer-read-only))
|
||||
(delete-region opoint (progn (forward-line 1) (point)))
|
||||
(if file
|
||||
(progn
|
||||
|
|
113
lisp/dired-x.el
113
lisp/dired-x.el
|
@ -786,6 +786,7 @@ See also `dired-enable-local-variables'."
|
|||
'hack-dir-local-variables-non-file-buffer "24.1")
|
||||
|
||||
;; Not sure this is worth having a dedicated command for...
|
||||
;; See the more general features in files-x.el.
|
||||
(defun dired-omit-here-always ()
|
||||
"Create `dir-locals-file' setting `dired-omit-mode' to t in `dired-mode'.
|
||||
If in a Dired buffer, reverts it."
|
||||
|
@ -798,7 +799,9 @@ replace it with a dir-locals-file `./%s'"
|
|||
(if (file-exists-p dir-locals-file)
|
||||
(message "File `./%s' already exists." dir-locals-file)
|
||||
(with-temp-buffer
|
||||
(insert "((dired-mode . ((dired-omit-mode . t))))\n")
|
||||
(insert "\
|
||||
\((dired-mode . ((subdirs . nil)
|
||||
(dired-omit-mode . t))))\n")
|
||||
(write-file dir-locals-file))
|
||||
;; Run extra-hooks and revert directory.
|
||||
(when (derived-mode-p 'dired-mode)
|
||||
|
@ -845,7 +848,7 @@ replace it with a dir-locals-file `./%s'"
|
|||
|
||||
(defvar dired-guess-shell-alist-default
|
||||
(list
|
||||
(list "\\.tar$"
|
||||
(list "\\.tar\\'"
|
||||
'(if dired-guess-shell-gnutar
|
||||
(concat dired-guess-shell-gnutar " xvf")
|
||||
"tar xvf")
|
||||
|
@ -863,7 +866,7 @@ replace it with a dir-locals-file `./%s'"
|
|||
|
||||
;; REGEXPS for compressed archives must come before the .Z rule to
|
||||
;; be recognized:
|
||||
(list "\\.tar\\.Z$"
|
||||
(list "\\.tar\\.Z\\'"
|
||||
;; Untar it.
|
||||
'(if dired-guess-shell-gnutar
|
||||
(concat dired-guess-shell-gnutar " zxvf")
|
||||
|
@ -873,7 +876,7 @@ replace it with a dir-locals-file `./%s'"
|
|||
" " dired-guess-shell-znew-switches))
|
||||
|
||||
;; gzip'ed archives
|
||||
(list "\\.t\\(ar\\.\\)?gz$"
|
||||
(list "\\.t\\(ar\\.\\)?gz\\'"
|
||||
'(if dired-guess-shell-gnutar
|
||||
(concat dired-guess-shell-gnutar " zxvf")
|
||||
(concat "gunzip -qc * | tar xvf -"))
|
||||
|
@ -893,7 +896,7 @@ replace it with a dir-locals-file `./%s'"
|
|||
(concat "gunzip -qc * | tar tvf -")))
|
||||
|
||||
;; bzip2'ed archives
|
||||
(list "\\.t\\(ar\\.bz2\\|bz\\)$"
|
||||
(list "\\.t\\(ar\\.bz2\\|bz\\)\\'"
|
||||
"bunzip2 -c * | tar xvf -"
|
||||
;; Extract files into a separate subdirectory
|
||||
'(concat "mkdir " (file-name-sans-extension file)
|
||||
|
@ -903,7 +906,7 @@ replace it with a dir-locals-file `./%s'"
|
|||
"bunzip2")
|
||||
|
||||
;; xz'ed archives
|
||||
(list "\\.t\\(ar\\.\\)?xz$"
|
||||
(list "\\.t\\(ar\\.\\)?xz\\'"
|
||||
"unxz -c * | tar xvf -"
|
||||
;; Extract files into a separate subdirectory
|
||||
'(concat "mkdir " (file-name-sans-extension file)
|
||||
|
@ -912,94 +915,96 @@ replace it with a dir-locals-file `./%s'"
|
|||
;; Optional decompression.
|
||||
"unxz")
|
||||
|
||||
'("\\.shar\\.Z$" "zcat * | unshar")
|
||||
'("\\.shar\\.g?z$" "gunzip -qc * | unshar")
|
||||
'("\\.shar\\.Z\\'" "zcat * | unshar")
|
||||
'("\\.shar\\.g?z\\'" "gunzip -qc * | unshar")
|
||||
|
||||
'("\\.e?ps$" "ghostview" "xloadimage" "lpr")
|
||||
(list "\\.e?ps\\.g?z$" "gunzip -qc * | ghostview -"
|
||||
'("\\.e?ps\\'" "ghostview" "xloadimage" "lpr")
|
||||
(list "\\.e?ps\\.g?z\\'" "gunzip -qc * | ghostview -"
|
||||
;; Optional decompression.
|
||||
'(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
|
||||
(list "\\.e?ps\\.Z$" "zcat * | ghostview -"
|
||||
(list "\\.e?ps\\.Z\\'" "zcat * | ghostview -"
|
||||
;; Optional conversion to gzip format.
|
||||
'(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
|
||||
" " dired-guess-shell-znew-switches))
|
||||
|
||||
'("\\.patch$" "cat * | patch")
|
||||
(list "\\.patch\\.g?z$" "gunzip -qc * | patch"
|
||||
'("\\.patch\\'" "cat * | patch")
|
||||
(list "\\.patch\\.g?z\\'" "gunzip -qc * | patch"
|
||||
;; Optional decompression.
|
||||
'(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
|
||||
(list "\\.patch\\.Z$" "zcat * | patch"
|
||||
(list "\\.patch\\.Z\\'" "zcat * | patch"
|
||||
;; Optional conversion to gzip format.
|
||||
'(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
|
||||
" " dired-guess-shell-znew-switches))
|
||||
|
||||
;; The following four extensions are useful with dired-man ("N" key)
|
||||
(list "\\.\\(?:[0-9]\\|man\\)$" '(progn (require 'man)
|
||||
(list "\\.\\(?:[0-9]\\|man\\)\\'" '(progn (require 'man)
|
||||
(if (Man-support-local-filenames)
|
||||
"man -l"
|
||||
"cat * | tbl | nroff -man -h")))
|
||||
(list "\\.\\(?:[0-9]\\|man\\)\\.g?z$" '(progn (require 'man)
|
||||
(list "\\.\\(?:[0-9]\\|man\\)\\.g?z\\'" '(progn (require 'man)
|
||||
(if (Man-support-local-filenames)
|
||||
"man -l"
|
||||
"gunzip -qc * | tbl | nroff -man -h"))
|
||||
;; Optional decompression.
|
||||
'(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
|
||||
(list "\\.[0-9]\\.Z$" '(progn (require 'man)
|
||||
(list "\\.[0-9]\\.Z\\'" '(progn (require 'man)
|
||||
(if (Man-support-local-filenames)
|
||||
"man -l"
|
||||
"zcat * | tbl | nroff -man -h"))
|
||||
;; Optional conversion to gzip format.
|
||||
'(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
|
||||
" " dired-guess-shell-znew-switches))
|
||||
'("\\.pod$" "perldoc" "pod2man * | nroff -man")
|
||||
'("\\.pod\\'" "perldoc" "pod2man * | nroff -man")
|
||||
|
||||
'("\\.dvi$" "xdvi" "dvips") ; preview and printing
|
||||
'("\\.au$" "play") ; play Sun audiofiles
|
||||
'("\\.mpe?g$\\|\\.avi$" "xine -p")
|
||||
'("\\.ogg$" "ogg123")
|
||||
'("\\.mp3$" "mpg123")
|
||||
'("\\.wav$" "play")
|
||||
'("\\.uu$" "uudecode") ; for uudecoded files
|
||||
'("\\.hqx$" "mcvert")
|
||||
'("\\.sh$" "sh") ; execute shell scripts
|
||||
'("\\.xbm$" "bitmap") ; view X11 bitmaps
|
||||
'("\\.gp$" "gnuplot")
|
||||
'("\\.p[bgpn]m$" "xloadimage")
|
||||
'("\\.gif$" "xloadimage") ; view gif pictures
|
||||
'("\\.tif$" "xloadimage")
|
||||
'("\\.png$" "display") ; xloadimage 4.1 doesn't grok PNG
|
||||
'("\\.jpe?g$" "xloadimage")
|
||||
'("\\.fig$" "xfig") ; edit fig pictures
|
||||
'("\\.out$" "xgraph") ; for plotting purposes.
|
||||
'("\\.tex$" "latex" "tex")
|
||||
'("\\.texi\\(nfo\\)?$" "makeinfo" "texi2dvi")
|
||||
'("\\.pdf$" "xpdf")
|
||||
'("\\.doc$" "antiword" "strings")
|
||||
'("\\.rpm$" "rpm -qilp" "rpm -ivh")
|
||||
'("\\.dia$" "dia")
|
||||
'("\\.mgp$" "mgp")
|
||||
'("\\.dvi\\'" "xdvi" "dvips") ; preview and printing
|
||||
'("\\.au\\'" "play") ; play Sun audiofiles
|
||||
'("\\.mpe?g\\'\\|\\.avi\\'" "xine -p")
|
||||
'("\\.ogg\\'" "ogg123")
|
||||
'("\\.mp3\\'" "mpg123")
|
||||
'("\\.wav\\'" "play")
|
||||
'("\\.uu\\'" "uudecode") ; for uudecoded files
|
||||
'("\\.hqx\\'" "mcvert")
|
||||
'("\\.sh\\'" "sh") ; execute shell scripts
|
||||
'("\\.xbm\\'" "bitmap") ; view X11 bitmaps
|
||||
'("\\.gp\\'" "gnuplot")
|
||||
'("\\.p[bgpn]m\\'" "xloadimage")
|
||||
'("\\.gif\\'" "xloadimage") ; view gif pictures
|
||||
'("\\.tif\\'" "xloadimage")
|
||||
'("\\.png\\'" "display") ; xloadimage 4.1 doesn't grok PNG
|
||||
'("\\.jpe?g\\'" "xloadimage")
|
||||
'("\\.fig\\'" "xfig") ; edit fig pictures
|
||||
'("\\.out\\'" "xgraph") ; for plotting purposes.
|
||||
'("\\.tex\\'" "latex" "tex")
|
||||
'("\\.texi\\(nfo\\)?\\'" "makeinfo" "texi2dvi")
|
||||
'("\\.pdf\\'" "xpdf")
|
||||
'("\\.doc\\'" "antiword" "strings")
|
||||
'("\\.rpm\\'" "rpm -qilp" "rpm -ivh")
|
||||
'("\\.dia\\'" "dia")
|
||||
'("\\.mgp\\'" "mgp")
|
||||
|
||||
;; Some other popular archivers.
|
||||
(list "\\.zip$" "unzip" "unzip -l"
|
||||
(list "\\.zip\\'" "unzip" "unzip -l"
|
||||
;; Extract files into a separate subdirectory
|
||||
'(concat "unzip" (if dired-guess-shell-gzip-quiet " -q")
|
||||
" -d " (file-name-sans-extension file)))
|
||||
'("\\.zoo$" "zoo x//")
|
||||
'("\\.lzh$" "lharc x")
|
||||
'("\\.arc$" "arc x")
|
||||
'("\\.shar$" "unshar")
|
||||
'("\\.zoo\\'" "zoo x//")
|
||||
'("\\.lzh\\'" "lharc x")
|
||||
'("\\.arc\\'" "arc x")
|
||||
'("\\.shar\\'" "unshar")
|
||||
'("\\.rar\\'" "unrar x")
|
||||
'("\\.7z\\'" "7z x")
|
||||
|
||||
;; Compression.
|
||||
(list "\\.g?z$" '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
|
||||
(list "\\.dz$" "dictunzip")
|
||||
(list "\\.bz2$" "bunzip2")
|
||||
(list "\\.xz$" "unxz")
|
||||
(list "\\.Z$" "uncompress"
|
||||
(list "\\.g?z\\'" '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
|
||||
(list "\\.dz\\'" "dictunzip")
|
||||
(list "\\.bz2\\'" "bunzip2")
|
||||
(list "\\.xz\\'" "unxz")
|
||||
(list "\\.Z\\'" "uncompress"
|
||||
;; Optional conversion to gzip format.
|
||||
'(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
|
||||
" " dired-guess-shell-znew-switches))
|
||||
|
||||
'("\\.sign?$" "gpg --verify"))
|
||||
'("\\.sign?\\'" "gpg --verify"))
|
||||
|
||||
"Default alist used for shell command guessing.
|
||||
See `dired-guess-shell-alist-user'.")
|
||||
|
|
|
@ -249,9 +249,19 @@ Local to each dired buffer. May be a list, in which case the car is the
|
|||
directory name and the cdr is the list of files to mention.
|
||||
The directory name must be absolute, but need not be fully expanded.")
|
||||
|
||||
;; Beware of "-l;reboot" etc. See bug#3230.
|
||||
(defun dired-safe-switches-p (switches)
|
||||
"Return non-nil if string SWITCHES does not look risky for dired."
|
||||
(or (not switches)
|
||||
(and (stringp switches)
|
||||
(< (length switches) 100) ; arbitrary
|
||||
(string-match "\\` *-[- [:alnum:]]+\\'" switches))))
|
||||
|
||||
(defvar dired-actual-switches nil
|
||||
"The value of `dired-listing-switches' used to make this buffer's text.")
|
||||
|
||||
(put 'dired-actual-switches 'safe-local-variable 'dired-safe-switches-p)
|
||||
|
||||
(defvar dired-re-inode-size "[0-9 \t]*"
|
||||
"Regexp for optional initial inode and file size as made by `ls -i -s'.")
|
||||
|
||||
|
@ -3614,7 +3624,7 @@ Ask means pop up a menu for the user to select one of copy, move or link."
|
|||
;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command
|
||||
;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown
|
||||
;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff
|
||||
;;;;;; dired-diff) "dired-aux" "dired-aux.el" "9d6333fab9c0f1b49e0bf2a536b8f245")
|
||||
;;;;;; dired-diff) "dired-aux" "dired-aux.el" "154cdfbf451aedec60c5012b625ff329")
|
||||
;;; Generated autoloads from dired-aux.el
|
||||
|
||||
(autoload 'dired-diff "dired-aux" "\
|
||||
|
@ -4073,7 +4083,7 @@ true then the type of the file linked to by FILE is printed instead.
|
|||
;;;***
|
||||
|
||||
;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el"
|
||||
;;;;;; "515e1dbc42acebd9a0175c4209b6673c")
|
||||
;;;;;; "3b8851132739ab3f9054bf639873c53e")
|
||||
;;; Generated autoloads from dired-x.el
|
||||
|
||||
(autoload 'dired-jump "dired-x" "\
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; assoc.el --- insert/delete/sort functions on association lists
|
||||
;;; assoc.el --- insert/delete functions on association lists
|
||||
|
||||
;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc.
|
||||
|
||||
|
@ -35,7 +35,7 @@ head is one matching KEY. Returns the sorted list and doesn't affect
|
|||
the order of any other key-value pair. Side effect sets alist to new
|
||||
sorted list."
|
||||
(set alist-symbol
|
||||
(sort (copy-alist (eval alist-symbol))
|
||||
(sort (copy-alist (symbol-value alist-symbol))
|
||||
(function (lambda (a b) (equal (car a) key))))))
|
||||
|
||||
|
||||
|
@ -75,7 +75,7 @@ of the alist (with value nil if VALUE is nil or not supplied)."
|
|||
(lexical-let ((elem (aelement key value))
|
||||
alist)
|
||||
(asort alist-symbol key)
|
||||
(setq alist (eval alist-symbol))
|
||||
(setq alist (symbol-value alist-symbol))
|
||||
(cond ((null alist) (set alist-symbol elem))
|
||||
((anot-head-p alist key) (set alist-symbol (nconc elem alist)))
|
||||
(value (setcar alist (car elem)))
|
||||
|
@ -87,7 +87,7 @@ of the alist (with value nil if VALUE is nil or not supplied)."
|
|||
Alist is referenced by ALIST-SYMBOL and the key-value pair to remove
|
||||
is pair matching KEY. Returns the altered alist."
|
||||
(asort alist-symbol key)
|
||||
(lexical-let ((alist (eval alist-symbol)))
|
||||
(lexical-let ((alist (symbol-value alist-symbol)))
|
||||
(cond ((null alist) nil)
|
||||
((anot-head-p alist key) alist)
|
||||
(t (set alist-symbol (cdr alist))))))
|
||||
|
@ -133,7 +133,7 @@ extra values are ignored. Returns the created alist."
|
|||
(t
|
||||
(amake alist-symbol keycdr valcdr)
|
||||
(aput alist-symbol keycar valcar))))
|
||||
(eval alist-symbol))
|
||||
(symbol-value alist-symbol))
|
||||
|
||||
(provide 'assoc)
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ Not documented
|
|||
;;;;;; do-all-symbols do-symbols dotimes dolist do* do loop return-from
|
||||
;;;;;; return block etypecase typecase ecase case load-time-value
|
||||
;;;;;; eval-when destructuring-bind function* defmacro* defun* gentemp
|
||||
;;;;;; gensym) "cl-macs" "cl-macs.el" "0904b956872432ae7cc5fa9abcefce63")
|
||||
;;;;;; gensym) "cl-macs" "cl-macs.el" "b3031039e82679e5b013ce1cbf174ee8")
|
||||
;;; Generated autoloads from cl-macs.el
|
||||
|
||||
(autoload 'gensym "cl-macs" "\
|
||||
|
@ -505,7 +505,7 @@ lexical closures as in Common Lisp.
|
|||
(autoload 'lexical-let* "cl-macs" "\
|
||||
Like `let*', but lexically scoped.
|
||||
The main visible difference is that lambdas inside BODY, and in
|
||||
successive bindings within BINDINGS, will create lexical closures
|
||||
successive bindings within VARLIST, will create lexical closures
|
||||
as in Common Lisp. This is similar to the behavior of `let*' in
|
||||
Common Lisp.
|
||||
|
||||
|
|
|
@ -1470,7 +1470,7 @@ lexical closures as in Common Lisp.
|
|||
(defmacro lexical-let* (bindings &rest body)
|
||||
"Like `let*', but lexically scoped.
|
||||
The main visible difference is that lambdas inside BODY, and in
|
||||
successive bindings within BINDINGS, will create lexical closures
|
||||
successive bindings within VARLIST, will create lexical closures
|
||||
as in Common Lisp. This is similar to the behavior of `let*' in
|
||||
Common Lisp.
|
||||
\n(fn VARLIST BODY)"
|
||||
|
|
|
@ -40,6 +40,9 @@
|
|||
(defvar package-archive-upload-base nil
|
||||
"Base location for uploading to package archive.")
|
||||
|
||||
(defvar package-update-news-on-upload nil
|
||||
"Whether package upload should also update NEWS and RSS feeds.")
|
||||
|
||||
(defun package--encode (string)
|
||||
"Encode a string by replacing some characters with XML entities."
|
||||
;; We need a special case for translating "&" to "&".
|
||||
|
@ -86,6 +89,36 @@
|
|||
(unless old-buffer
|
||||
(kill-buffer (current-buffer)))))))
|
||||
|
||||
(defun package--archive-contents-from-url (archive-url)
|
||||
"Parse archive-contents file at ARCHIVE-URL.
|
||||
Return the file contents, as a string, or nil if unsuccessful."
|
||||
(ignore-errors
|
||||
(when archive-url
|
||||
(let* ((buffer (url-retrieve-synchronously
|
||||
(concat archive-url "archive-contents"))))
|
||||
(set-buffer buffer)
|
||||
(package-handle-response)
|
||||
(re-search-forward "^$" nil 'move)
|
||||
(forward-char)
|
||||
(delete-region (point-min) (point))
|
||||
(prog1 (package-read-from-string
|
||||
(buffer-substring-no-properties (point-min) (point-max)))
|
||||
(kill-buffer buffer))))))
|
||||
|
||||
(defun package--archive-contents-from-file (file)
|
||||
"Parse the given archive-contents file."
|
||||
(if (not (file-exists-p file))
|
||||
;; no existing archive-contents, possibly a new ELPA repo.
|
||||
(list package-archive-version)
|
||||
(let ((dont-kill (find-buffer-visiting file)))
|
||||
(with-current-buffer (let ((find-file-visit-truename t))
|
||||
(find-file-noselect file))
|
||||
(prog1
|
||||
(package-read-from-string
|
||||
(buffer-substring-no-properties (point-min) (point-max)))
|
||||
(unless dont-kill
|
||||
(kill-buffer (current-buffer))))))))
|
||||
|
||||
(defun package-maint-add-news-item (title description archive-url)
|
||||
"Add a news item to the ELPA web pages.
|
||||
TITLE is the title of the news item.
|
||||
|
@ -111,11 +144,20 @@ PKG-INFO is the package info, see `package-buffer-info'.
|
|||
EXTENSION is the file extension, a string. It can be either
|
||||
\"el\" or \"tar\".
|
||||
|
||||
The variable `package-archive-upload-base' specifies the upload
|
||||
destination. If this is nil, signal an error.
|
||||
|
||||
Optional arg ARCHIVE-URL is the URL of the destination archive.
|
||||
If nil, the \"gnu\" archive is used."
|
||||
(unless archive-url
|
||||
(or (setq archive-url (cdr (assoc "gnu" package-archives)))
|
||||
(error "No destination URL")))
|
||||
If it is non-nil, compute the new \"archive-contents\" file
|
||||
starting from the existing \"archive-contents\" at that URL. In
|
||||
addition, if `package-update-news-on-upload' is non-nil, call
|
||||
`package--update-news' to add a news item at that URL.
|
||||
|
||||
If ARCHIVE-URL is nil, compute the new \"archive-contents\" file
|
||||
from the \"archive-contents\" at `package-archive-upload-base',
|
||||
if it exists."
|
||||
(unless package-archive-upload-base
|
||||
(error "No destination specified in `package-archive-upload-base'"))
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(let* ((file-type (cond
|
||||
|
@ -131,21 +173,14 @@ If nil, the \"gnu\" archive is used."
|
|||
(pkg-version (aref pkg-info 3))
|
||||
(commentary (aref pkg-info 4))
|
||||
(split-version (version-to-list pkg-version))
|
||||
(pkg-buffer (current-buffer))
|
||||
(pkg-buffer (current-buffer)))
|
||||
|
||||
;; Download latest archive-contents.
|
||||
(buffer (url-retrieve-synchronously
|
||||
(concat archive-url "archive-contents"))))
|
||||
|
||||
;; Parse archive-contents.
|
||||
(set-buffer buffer)
|
||||
(package-handle-response)
|
||||
(re-search-forward "^$" nil 'move)
|
||||
(forward-char)
|
||||
(delete-region (point-min) (point))
|
||||
(let ((contents (package-read-from-string
|
||||
(buffer-substring-no-properties (point-min)
|
||||
(point-max))))
|
||||
;; Get archive-contents from ARCHIVE-URL if it's non-nil, or
|
||||
;; from `package-archive-upload-base' otherwise.
|
||||
(let ((contents (or (package--archive-contents-from-url archive-url)
|
||||
(package--archive-contents-from-file
|
||||
(concat package-archive-upload-base
|
||||
"archive-contents"))))
|
||||
(new-desc (vector split-version requires desc file-type)))
|
||||
(if (> (car contents) package-archive-version)
|
||||
(error "Unrecognized archive version %d" (car contents)))
|
||||
|
@ -176,7 +211,6 @@ If nil, the \"gnu\" archive is used."
|
|||
(symbol-name pkg-name) "-readme.txt")))
|
||||
|
||||
(set-buffer pkg-buffer)
|
||||
(kill-buffer buffer)
|
||||
(write-region (point-min) (point-max)
|
||||
(concat package-archive-upload-base
|
||||
file-name "-" pkg-version
|
||||
|
@ -184,8 +218,10 @@ If nil, the \"gnu\" archive is used."
|
|||
nil nil nil 'excl)
|
||||
|
||||
;; Write a news entry.
|
||||
(package--update-news (concat file-name "." extension)
|
||||
pkg-version desc archive-url)
|
||||
(and package-update-news-on-upload
|
||||
archive-url
|
||||
(package--update-news (concat file-name "." extension)
|
||||
pkg-version desc archive-url))
|
||||
|
||||
;; special-case "package": write a second copy so that the
|
||||
;; installer can easily find the latest version.
|
||||
|
@ -196,7 +232,9 @@ If nil, the \"gnu\" archive is used."
|
|||
nil nil nil 'ask)))))))
|
||||
|
||||
(defun package-upload-buffer ()
|
||||
"Upload a single .el file to ELPA from the current buffer."
|
||||
"Upload the current buffer as a single-file Emacs Lisp package.
|
||||
The variable `package-archive-upload-base' specifies the upload
|
||||
destination."
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
|
@ -205,6 +243,13 @@ If nil, the \"gnu\" archive is used."
|
|||
(package-upload-buffer-internal pkg-info "el")))))
|
||||
|
||||
(defun package-upload-file (file)
|
||||
"Upload the Emacs Lisp package FILE to the package archive.
|
||||
Interactively, prompt for FILE. The package is considered a
|
||||
single-file package if FILE ends in \".el\", and a multi-file
|
||||
package if FILE ends in \".tar\".
|
||||
|
||||
The variable `package-archive-upload-base' specifies the upload
|
||||
destination."
|
||||
(interactive "fPackage file name: ")
|
||||
(with-temp-buffer
|
||||
(insert-file-contents-literally file)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;; Copyright (C) 2010-2011 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
;; Keywords:
|
||||
;; Keywords:
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
@ -32,6 +32,14 @@
|
|||
;; could be defined this way, as a shorthand for (pred (lambda (_) BOOLEXP)).
|
||||
;; But better would be if we could define new ways to match by having the
|
||||
;; extension provide its own `pcase--split-<foo>' thingy.
|
||||
;; - provide something like (setq VAR) so a var can be set rather than
|
||||
;; let-bound.
|
||||
;; - provide a way to fallthrough to other cases.
|
||||
;; - try and be more clever to reduce the size of the decision tree, and
|
||||
;; to reduce the number of leafs that need to be turned into function:
|
||||
;; - first, do the tests shared by all remaining branches (it will have
|
||||
;; to be performed anyway, so better so it first so it's shared).
|
||||
;; - then choose the test that discriminates more (?).
|
||||
;; - ideally we'd want (pcase s ((re RE1) E1) ((re RE2) E2)) to be able to
|
||||
;; generate a lex-style DFA to decide whether to run E1 or E2.
|
||||
|
||||
|
@ -67,12 +75,12 @@ If a SYMBOL is used twice in the same pattern (i.e. the pattern is
|
|||
QPatterns can take the following forms:
|
||||
(QPAT1 . QPAT2) matches if QPAT1 matches the car and QPAT2 the cdr.
|
||||
,UPAT matches if the UPattern UPAT matches.
|
||||
STRING matches if the object is `equal' to STRING.
|
||||
STRING matches if the object is `equal' to STRING.
|
||||
ATOM matches if the object is `eq' to ATOM.
|
||||
QPatterns for vectors are not implemented yet.
|
||||
|
||||
PRED can take the form
|
||||
FUNCTION in which case it gets called with one argument.
|
||||
FUNCTION in which case it gets called with one argument.
|
||||
(FUN ARG1 .. ARGN) in which case it gets called with N+1 arguments.
|
||||
A PRED of the form FUNCTION is equivalent to one of the form (FUNCTION).
|
||||
PRED patterns can refer to variables bound earlier in the pattern.
|
||||
|
@ -209,6 +217,7 @@ of the form (UPAT EXP)."
|
|||
(defun pcase--if (test then else)
|
||||
(cond
|
||||
((eq else :pcase--dontcare) then)
|
||||
((eq then :pcase--dontcare) (debug) else) ;Can/should this ever happen?
|
||||
((eq (car-safe else) 'if)
|
||||
(if (equal test (nth 1 else))
|
||||
;; Doing a test a second time: get rid of the redundancy.
|
||||
|
@ -223,6 +232,8 @@ of the form (UPAT EXP)."
|
|||
`(cond (,test ,then)
|
||||
;; Doing a test a second time: get rid of the redundancy, as above.
|
||||
,@(remove (assoc test else) (cdr else))))
|
||||
;; Invert the test if that lets us reduce the depth of the tree.
|
||||
((memq (car-safe then) '(if cond)) (pcase--if `(not ,test) else then))
|
||||
(t `(if ,test ,then ,else))))
|
||||
|
||||
(defun pcase--upat (qpattern)
|
||||
|
@ -264,6 +275,22 @@ MATCH is the pattern that needs to be matched, of the form:
|
|||
(defun pcase--and (match matches)
|
||||
(if matches `(and ,match ,@matches) match))
|
||||
|
||||
(defconst pcase-mutually-exclusive-predicates
|
||||
'((symbolp . integerp)
|
||||
(symbolp . numberp)
|
||||
(symbolp . consp)
|
||||
(symbolp . arrayp)
|
||||
(symbolp . stringp)
|
||||
(integerp . consp)
|
||||
(integerp . arrayp)
|
||||
(integerp . stringp)
|
||||
(numberp . consp)
|
||||
(numberp . arrayp)
|
||||
(numberp . stringp)
|
||||
(consp . arrayp)
|
||||
(consp . stringp)
|
||||
(arrayp . stringp)))
|
||||
|
||||
(defun pcase--split-match (sym splitter match)
|
||||
(case (car match)
|
||||
((match)
|
||||
|
@ -324,8 +351,14 @@ MATCH is the pattern that needs to be matched, of the form:
|
|||
(cons `(and (match ,syma . ,(pcase--upat (car qpat)))
|
||||
(match ,symd . ,(pcase--upat (cdr qpat))))
|
||||
:pcase--fail)))
|
||||
;; A QPattern but not for a cons, can only go the `else' side.
|
||||
((eq (car-safe pat) '\`) (cons :pcase--fail nil))))
|
||||
;; A QPattern but not for a cons, can only go to the `else' side.
|
||||
((eq (car-safe pat) '\`) (cons :pcase--fail nil))
|
||||
((and (eq (car-safe pat) 'pred)
|
||||
(or (member (cons 'consp (cadr pat))
|
||||
pcase-mutually-exclusive-predicates)
|
||||
(member (cons (cadr pat) 'consp)
|
||||
pcase-mutually-exclusive-predicates)))
|
||||
(cons :pcase--fail nil))))
|
||||
|
||||
(defun pcase--split-equal (elem pat)
|
||||
(cond
|
||||
|
@ -337,7 +370,12 @@ MATCH is the pattern that needs to be matched, of the form:
|
|||
;; (or (integerp (cadr pat)) (symbolp (cadr pat))
|
||||
;; (consp (cadr pat)))
|
||||
)
|
||||
(cons :pcase--fail nil))))
|
||||
(cons :pcase--fail nil))
|
||||
((and (eq (car-safe pat) 'pred)
|
||||
(symbolp (cadr pat))
|
||||
(get (cadr pat) 'side-effect-free)
|
||||
(funcall (cadr pat) elem))
|
||||
(cons :pcase--succeed nil))))
|
||||
|
||||
(defun pcase--split-member (elems pat)
|
||||
;; Based on pcase--split-equal.
|
||||
|
@ -354,13 +392,39 @@ MATCH is the pattern that needs to be matched, of the form:
|
|||
;; (or (integerp (cadr pat)) (symbolp (cadr pat))
|
||||
;; (consp (cadr pat)))
|
||||
)
|
||||
(cons :pcase--fail nil))))
|
||||
(cons :pcase--fail nil))
|
||||
((and (eq (car-safe pat) 'pred)
|
||||
(symbolp (cadr pat))
|
||||
(get (cadr pat) 'side-effect-free)
|
||||
(let ((p (cadr pat)) (all t))
|
||||
(dolist (elem elems)
|
||||
(unless (funcall p elem) (setq all nil)))
|
||||
all))
|
||||
(cons :pcase--succeed nil))))
|
||||
|
||||
(defun pcase--split-pred (upat pat)
|
||||
;; FIXME: For predicates like (pred (> a)), two such predicates may
|
||||
;; actually refer to different variables `a'.
|
||||
(if (equal upat pat)
|
||||
(cons :pcase--succeed :pcase--fail)))
|
||||
(cond
|
||||
((equal upat pat) (cons :pcase--succeed :pcase--fail))
|
||||
((and (eq 'pred (car upat))
|
||||
(eq 'pred (car-safe pat))
|
||||
(or (member (cons (cadr upat) (cadr pat))
|
||||
pcase-mutually-exclusive-predicates)
|
||||
(member (cons (cadr pat) (cadr upat))
|
||||
pcase-mutually-exclusive-predicates)))
|
||||
(cons :pcase--fail nil))
|
||||
;; ((and (eq 'pred (car upat))
|
||||
;; (eq '\` (car-safe pat))
|
||||
;; (symbolp (cadr upat))
|
||||
;; (or (symbolp (cadr pat)) (stringp (cadr pat)) (numberp (cadr pat)))
|
||||
;; (get (cadr upat) 'side-effect-free)
|
||||
;; (progn (message "Trying predicate %S" (cadr upat))
|
||||
;; (ignore-errors
|
||||
;; (funcall (cadr upat) (cadr pat)))))
|
||||
;; (message "Simplify pred %S against %S" upat pat)
|
||||
;; (cons nil :pcase--fail))
|
||||
))
|
||||
|
||||
(defun pcase--fgrep (vars sexp)
|
||||
"Check which of the symbols VARS appear in SEXP."
|
||||
|
@ -375,7 +439,7 @@ MATCH is the pattern that needs to be matched, of the form:
|
|||
;; bootstrapping problems.
|
||||
(defun pcase--u1 (matches code vars rest)
|
||||
"Return code that runs CODE (with VARS) if MATCHES match.
|
||||
and otherwise defers to REST which is a list of branches of the form
|
||||
Otherwise, it defers to REST which is a list of branches of the form
|
||||
\(ELSE-MATCH ELSE-CODE . ELSE-VARS)."
|
||||
;; Depending on the order in which we choose to check each of the MATCHES,
|
||||
;; the resulting tree may be smaller or bigger. So in general, we'd want
|
||||
|
@ -433,6 +497,7 @@ and otherwise defers to REST which is a list of branches of the form
|
|||
((eq upat 'dontcare) :pcase--dontcare)
|
||||
((functionp upat) (error "Feature removed, use (pred %s)" upat))
|
||||
((memq (car-safe upat) '(guard pred))
|
||||
(if (eq (car upat) 'pred) (put sym 'pcase-used t))
|
||||
(destructuring-bind (then-rest &rest else-rest)
|
||||
(pcase--split-rest
|
||||
sym (apply-partially #'pcase--split-pred upat) rest)
|
||||
|
@ -459,6 +524,7 @@ and otherwise defers to REST which is a list of branches of the form
|
|||
(pcase--u1 matches code vars then-rest)
|
||||
(pcase--u else-rest))))
|
||||
((symbolp upat)
|
||||
(put sym 'pcase-used t)
|
||||
(if (not (assq upat vars))
|
||||
(pcase--u1 matches code (cons (cons upat sym) vars) rest)
|
||||
;; Non-linear pattern. Turn it into an `eq' test.
|
||||
|
@ -466,6 +532,7 @@ and otherwise defers to REST which is a list of branches of the form
|
|||
matches)
|
||||
code vars rest)))
|
||||
((eq (car-safe upat) '\`)
|
||||
(put sym 'pcase-used t)
|
||||
(pcase--q1 sym (cadr upat) matches code vars rest))
|
||||
((eq (car-safe upat) 'or)
|
||||
(let ((all (> (length (cdr upat)) 1))
|
||||
|
@ -524,7 +591,7 @@ and otherwise defers to REST which is a list of branches of the form
|
|||
|
||||
(defun pcase--q1 (sym qpat matches code vars rest)
|
||||
"Return code that runs CODE if SYM matches QPAT and if MATCHES match.
|
||||
and if not, defers to REST which is a list of branches of the form
|
||||
Otherwise, it defers to REST which is a list of branches of the form
|
||||
\(OTHER_MATCH OTHER-CODE . OTHER-VARS)."
|
||||
(cond
|
||||
((eq (car-safe qpat) '\,) (error "Can't use `,UPATTERN"))
|
||||
|
@ -539,14 +606,20 @@ and if not, defers to REST which is a list of branches of the form
|
|||
(pcase--split-rest sym
|
||||
(apply-partially #'pcase--split-consp syma symd)
|
||||
rest)
|
||||
(pcase--if `(consp ,sym)
|
||||
`(let ((,syma (car ,sym))
|
||||
(,symd (cdr ,sym)))
|
||||
,(pcase--u1 `((match ,syma . ,(pcase--upat (car qpat)))
|
||||
(match ,symd . ,(pcase--upat (cdr qpat)))
|
||||
,@matches)
|
||||
code vars then-rest))
|
||||
(pcase--u else-rest)))))
|
||||
(let ((then-body (pcase--u1 `((match ,syma . ,(pcase--upat (car qpat)))
|
||||
(match ,symd . ,(pcase--upat (cdr qpat)))
|
||||
,@matches)
|
||||
code vars then-rest)))
|
||||
(pcase--if
|
||||
`(consp ,sym)
|
||||
;; We want to be careful to only add bindings that are used.
|
||||
;; The byte-compiler could do that for us, but it would have to pay
|
||||
;; attention to the `consp' test in order to figure out that car/cdr
|
||||
;; can't signal errors and our byte-compiler is not that clever.
|
||||
`(let (,@(if (get syma 'pcase-used) `((,syma (car ,sym))))
|
||||
,@(if (get symd 'pcase-used) `((,symd (cdr ,sym)))))
|
||||
,then-body)
|
||||
(pcase--u else-rest))))))
|
||||
((or (integerp qpat) (symbolp qpat) (stringp qpat))
|
||||
(destructuring-bind (then-rest &rest else-rest)
|
||||
(pcase--split-rest sym (apply-partially 'pcase--split-equal qpat) rest)
|
||||
|
|
|
@ -2375,7 +2375,7 @@ problems."
|
|||
(if (eq viper-intermediate-command 'viper-repeat)
|
||||
(viper-change-subr (mark t) (point))
|
||||
(viper-change (mark t) (point)))
|
||||
;; com is set to ?r when we repeat this comand with dot
|
||||
;; com is set to ?r when we repeat this command with dot
|
||||
(viper-set-destructive-command (list 'viper-substitute val ?r nil nil nil))
|
||||
))
|
||||
|
||||
|
|
|
@ -584,9 +584,9 @@
|
|||
|
||||
* debian/maint/conffiles.in: new file
|
||||
|
||||
* debian/maint/conffiles: superceded by conffiles.in
|
||||
* debian/maint/conffiles: superseded by conffiles.in
|
||||
|
||||
* debian/scripts/startup: superceded by startup.erc
|
||||
* debian/scripts/startup: superseded by startup.erc
|
||||
|
||||
2001-10-25 Mario Lang <mlang@delysid.org>
|
||||
|
||||
|
@ -609,7 +609,7 @@
|
|||
|
||||
* debian/maint/postinst, debian/maint/prerm, debian/scripts/install,
|
||||
debian/scripts/remove:
|
||||
removed, superceded by it's .in counterpart
|
||||
removed, superseded by its .in counterpart
|
||||
|
||||
2001-10-25 Mario Lang <mlang@delysid.org>
|
||||
|
||||
|
|
|
@ -562,17 +562,23 @@ You can change the color sort order by customizing `list-colors-sort'."
|
|||
(let ((lc (nthcdr (1- (display-color-cells)) list)))
|
||||
(if lc
|
||||
(setcdr lc nil)))))
|
||||
(let ((buf (get-buffer-create "*Colors*")))
|
||||
(with-current-buffer buf
|
||||
(unless buffer-name
|
||||
(setq buffer-name "*Colors*"))
|
||||
(with-help-window buffer-name
|
||||
(with-current-buffer standard-output
|
||||
(erase-buffer)
|
||||
(setq truncate-lines t)
|
||||
;; Display buffer before generating content to allow
|
||||
;; `list-colors-print' to get the right window-width.
|
||||
(setq truncate-lines t)))
|
||||
(let ((buf (get-buffer buffer-name))
|
||||
(inhibit-read-only t))
|
||||
;; Display buffer before generating content, to allow
|
||||
;; `list-colors-print' to get the right window-width.
|
||||
(with-selected-window (or (get-buffer-window buf t) (selected-window))
|
||||
(with-current-buffer buf
|
||||
(list-colors-print list callback)
|
||||
(set-buffer-modified-p nil)))
|
||||
(when callback
|
||||
(pop-to-buffer buf)
|
||||
(list-colors-print list callback)
|
||||
(set-buffer-modified-p nil)))
|
||||
(if callback
|
||||
(message "Click on a color to select it.")))
|
||||
(message "Click on a color to select it."))))
|
||||
|
||||
(defun list-colors-print (list &optional callback)
|
||||
(let ((callback-fn
|
||||
|
|
|
@ -3394,8 +3394,19 @@ Return the new variables list."
|
|||
(cdr entry) root variables))))
|
||||
((or (not key)
|
||||
(derived-mode-p key))
|
||||
(setq variables (dir-locals-collect-mode-variables
|
||||
(cdr entry) variables))))))
|
||||
(let* ((alist (cdr entry))
|
||||
(subdirs (assq 'subdirs alist)))
|
||||
(if (or (not subdirs)
|
||||
(progn
|
||||
(setq alist (delq subdirs alist))
|
||||
(cdr-safe subdirs))
|
||||
;; TODO someone might want to extend this to allow
|
||||
;; integer values for subdir, where N means
|
||||
;; variables apply to this directory and N levels
|
||||
;; below it (0 == nil).
|
||||
(equal root default-directory))
|
||||
(setq variables (dir-locals-collect-mode-variables
|
||||
alist variables))))))))
|
||||
(error
|
||||
;; The file's content might be invalid (e.g. have a merge conflict), but
|
||||
;; that shouldn't prevent the user from opening the file.
|
||||
|
@ -5837,6 +5848,9 @@ normally equivalent short `-D' option is just passed on to
|
|||
(file-name-directory file)
|
||||
(file-name-directory (expand-file-name file))))
|
||||
(pattern (file-name-nondirectory file)))
|
||||
;; NB since switches is passed to the shell, be
|
||||
;; careful of malicious values, eg "-l;reboot".
|
||||
;; See eg dired-safe-switches-p.
|
||||
(call-process
|
||||
shell-file-name nil t nil
|
||||
"-c"
|
||||
|
|
|
@ -1,3 +1,71 @@
|
|||
2011-03-01 Julien Danjou <julien@danjou.info>
|
||||
|
||||
* gnus-art.el (list-identifier): Add list-identifier as a parameter
|
||||
group.
|
||||
(article-hide-list-identifiers): Use list-identifier group parameter.
|
||||
|
||||
2011-02-28 Julien Danjou <julien@danjou.info>
|
||||
|
||||
* sieve.el (sieve-buffer-script-name): New local variable to store
|
||||
sieve script name.
|
||||
(sieve-edit-script): Store sieve script name.
|
||||
(sieve-upload): Use sieve script name when uploading.
|
||||
(sieve-upload): Use substitute-command-keys.
|
||||
(sieve-edit-script): Use substitute-command-keys.
|
||||
(sieve-refresh-scriptlist): Use substitute-command-keys.
|
||||
(sieve-manage-mode-map): Define keymap properly.
|
||||
(sieve-manage-mode): Do not set mode name manually, change mode-name to
|
||||
(sieve-refresh-scriptlist): Use substitute-command-keys."Sieve-manage".
|
||||
Remove commented code about cvs.
|
||||
(sieve-manage-quit): New function.
|
||||
(sieve-manage-mode-map): Bind 'q' to sieve-manage-quit.
|
||||
|
||||
2011-02-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* gnus-group.el (gnus-import-other-newsrc-file): New function.
|
||||
|
||||
2011-02-25 Teodor Zlatanov <tzz@lifelogs.com>
|
||||
|
||||
* auth-source.el (auth-source-search): Cache empty result sets.
|
||||
|
||||
* auth-source.el (auth-source-save-behavior): New variable to replace
|
||||
`auth-source-never-create'.
|
||||
(auth-source-netrc-create): Use it.
|
||||
(auth-source-never-save): Remove.
|
||||
|
||||
2011-02-25 Lars Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* nnimap.el (nnimap-stream): Doc fix.
|
||||
(nnimap-open-connection-1): Reverse the order of the ports to that the
|
||||
prompted-for port is first.
|
||||
|
||||
* gnus-start.el (gnus-get-unread-articles): Don't clobber the async
|
||||
retrieval by the no-group selection.
|
||||
|
||||
* gnus-demon.el (gnus-demon-init): run-with-timer should be called with
|
||||
numerical parameters.
|
||||
|
||||
2011-02-25 Julien Danjou <julien@danjou.info>
|
||||
|
||||
* gnus-gravatar.el: Use gnus-with-article-buffer.
|
||||
|
||||
* gnus-art.el (gnus-with-article-buffer): Check that the
|
||||
gnus-article-buffer is alive.
|
||||
|
||||
2011-02-24 Teodor Zlatanov <tzz@lifelogs.com>
|
||||
|
||||
* auth-source.el (auth-source-creation-prompts): New variable to manage
|
||||
creation-time prompts.
|
||||
(auth-source-search): Document it.
|
||||
(auth-source-format-prompt): Add utility function.
|
||||
(auth-source-netrc-create): Don't default the user name to
|
||||
user-login-name. Use `auth-source-creation-prompts' and some default
|
||||
prompts for user, host, port, and password (the default generic prompt
|
||||
remains ugly).
|
||||
(auth-source-never-save): Add customizable option to never save info.
|
||||
(auth-source-netrc-create): Use it and improve save prompts. Fix help
|
||||
mode excursion.
|
||||
|
||||
2011-02-24 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* auth-source.el (auth-source-netrc-create): Use `read-char' with no
|
||||
|
|
|
@ -137,8 +137,21 @@ let-binding."
|
|||
(defvar auth-source-creation-defaults nil
|
||||
"Defaults for creating token values. Usually let-bound.")
|
||||
|
||||
(defvar auth-source-creation-prompts nil
|
||||
"Default prompts for token values. Usually let-bound.")
|
||||
|
||||
(make-obsolete 'auth-source-hide-passwords nil "Emacs 24.1")
|
||||
|
||||
(defcustom auth-source-save-behavior 'ask
|
||||
"If set, auth-source will respect it for save behavior."
|
||||
:group 'auth-source
|
||||
:version "23.2" ;; No Gnus
|
||||
:type `(choice
|
||||
:tag "auth-source new token save behavior"
|
||||
(const :tag "Always save" t)
|
||||
(const :tag "Never save" nil)
|
||||
(const :tag "Ask" ask)))
|
||||
|
||||
(defvar auth-source-magic "auth-source-magic ")
|
||||
|
||||
(defcustom auth-source-do-cache t
|
||||
|
@ -435,12 +448,18 @@ parameter, that parameter will be required in the resulting
|
|||
token. The value for that parameter will be obtained from the
|
||||
search parameters or from user input. If any queries are needed,
|
||||
the alist `auth-source-creation-defaults' will be checked for the
|
||||
default prompt.
|
||||
default value. If the user, host, or port are missing, the alist
|
||||
`auth-source-creation-prompts' will be used to look up the
|
||||
prompts IN THAT ORDER (so the 'user prompt will be queried first,
|
||||
then 'host, then 'port, and finally 'secret). Each prompt string
|
||||
can use %u, %h, and %p to show the user, host, and port.
|
||||
|
||||
Here's an example:
|
||||
|
||||
\(let ((auth-source-creation-defaults '((user . \"defaultUser\")
|
||||
(A . \"default A\"))))
|
||||
(A . \"default A\")))
|
||||
(auth-source-creation-prompts
|
||||
'((password . \"Enter IMAP password for %h:%p: \"))))
|
||||
(auth-source-search :host '(\"nonesuch\" \"twosuch\") :type 'netrc :max 1
|
||||
:P \"pppp\" :Q \"qqqq\"
|
||||
:create '(A B Q)))
|
||||
|
@ -452,12 +471,11 @@ which says:
|
|||
|
||||
Create a new entry if you found none. The netrc backend will
|
||||
automatically require host, user, and port. The host will be
|
||||
'nonesuch' and Q will be 'qqqq'. We prompt for A with default
|
||||
'default A', for B and port with default nil, and for the
|
||||
user with default 'defaultUser'. We will not prompt for Q. The
|
||||
resulting token will have keys user, host, port, A, B, and Q.
|
||||
It will not have P with any value, even though P is used in the
|
||||
search to find only entries that have P set to 'pppp'.\"
|
||||
'nonesuch' and Q will be 'qqqq'. We prompt for the password
|
||||
with the shown prompt. We will not prompt for Q. The resulting
|
||||
token will have keys user, host, port, A, B, and Q. It will not
|
||||
have P with any value, even though P is used in the search to
|
||||
find only entries that have P set to 'pppp'.\"
|
||||
|
||||
When multiple values are specified in the search parameter, the
|
||||
user is prompted for which one. So :host (X Y Z) would ask the
|
||||
|
@ -506,10 +524,13 @@ must call it to obtain the actual value."
|
|||
(keys (loop for i below (length spec) by 2
|
||||
unless (memq (nth i spec) ignored-keys)
|
||||
collect (nth i spec)))
|
||||
(cached (auth-source-remembered-p spec))
|
||||
;; note that we may have cached results but found is still nil
|
||||
;; (there were no results from the search)
|
||||
(found (auth-source-recall spec))
|
||||
filtered-backends accessor-key backend)
|
||||
|
||||
(if (and found auth-source-do-cache)
|
||||
(if (and cached auth-source-do-cache)
|
||||
(auth-source-do-debug
|
||||
"auth-source-search: found %d CACHED results matching %S"
|
||||
(length found) spec)
|
||||
|
@ -562,7 +583,8 @@ must call it to obtain the actual value."
|
|||
"auth-source-search: CREATED %d results (max %d) matching %S"
|
||||
(length found) max spec))
|
||||
|
||||
(when (and found auth-source-do-cache)
|
||||
;; note we remember the lack of result too, if it's applicable
|
||||
(when auth-source-do-cache
|
||||
(auth-source-remember spec found)))
|
||||
|
||||
found))
|
||||
|
@ -636,6 +658,11 @@ Returns the deleted entries."
|
|||
(password-read-from-cache
|
||||
(concat auth-source-magic (format "%S" spec))))
|
||||
|
||||
(defun auth-source-remembered-p (spec)
|
||||
"Check if SPEC is remembered."
|
||||
(password-in-cache-p
|
||||
(concat auth-source-magic (format "%S" spec))))
|
||||
|
||||
(defun auth-source-forget (spec)
|
||||
"Forget any cached data matching SPEC exactly.
|
||||
|
||||
|
@ -646,7 +673,10 @@ Returns t or nil for forgotten or not found."
|
|||
;;; (loop for sym being the symbols of password-data when (string-match (concat "^" auth-source-magic) (symbol-name sym)) collect (symbol-name sym))
|
||||
|
||||
;;; (auth-source-remember '(:host "wedd") '(4 5 6))
|
||||
;;; (auth-source-remembered-p '(:host "wedd"))
|
||||
;;; (auth-source-remember '(:host "xedd") '(1 2 3))
|
||||
;;; (auth-source-remembered-p '(:host "xedd"))
|
||||
;;; (auth-source-remembered-p '(:host "zedd"))
|
||||
;;; (auth-source-recall '(:host "xedd"))
|
||||
;;; (auth-source-recall '(:host t))
|
||||
;;; (auth-source-forget+ :host t)
|
||||
|
@ -903,6 +933,17 @@ See `auth-source-search' for details on SPEC."
|
|||
(nth 0 v)
|
||||
v))
|
||||
|
||||
;; (auth-source-format-prompt "test %u %h %p" '((?u "user") (?h "host")))
|
||||
|
||||
(defun auth-source-format-prompt (prompt alist)
|
||||
"Format PROMPT using %x (for any character x) specifiers in ALIST."
|
||||
(dolist (cell alist)
|
||||
(let ((c (nth 0 cell))
|
||||
(v (nth 1 cell)))
|
||||
(when (and c v)
|
||||
(setq prompt (replace-regexp-in-string (format "%%%c" c) v prompt)))))
|
||||
prompt)
|
||||
|
||||
;;; (auth-source-search :host "nonesuch" :type 'netrc :max 1 :create t)
|
||||
;;; (auth-source-search :host "nonesuch" :type 'netrc :max 1 :create t :create-extra-keys '((A "default A") (B)))
|
||||
|
||||
|
@ -954,31 +995,50 @@ See `auth-source-search' for details on SPEC."
|
|||
;; the default supplementals are simple: for the user,
|
||||
;; try (user-login-name), otherwise take given-default
|
||||
(default (cond
|
||||
((and (not given-default) (eq r 'user))
|
||||
(user-login-name))
|
||||
(t given-default))))
|
||||
;; don't default the user name
|
||||
;; ((and (not given-default) (eq r 'user))
|
||||
;; (user-login-name))
|
||||
(t given-default)))
|
||||
(printable-defaults (list
|
||||
(cons 'user
|
||||
(or
|
||||
(auth-source-netrc-element-or-first
|
||||
(aget valist 'user))
|
||||
(plist-get artificial :user)
|
||||
"[any user]"))
|
||||
(cons 'host
|
||||
(or
|
||||
(auth-source-netrc-element-or-first
|
||||
(aget valist 'host))
|
||||
(plist-get artificial :host)
|
||||
"[any host]"))
|
||||
(cons 'port
|
||||
(or
|
||||
(auth-source-netrc-element-or-first
|
||||
(aget valist 'port))
|
||||
(plist-get artificial :port)
|
||||
"[any port]"))))
|
||||
(prompt (or (aget auth-source-creation-prompts r)
|
||||
(case r
|
||||
('secret "%p password for user %u, host %h: ")
|
||||
('user "%p user name: ")
|
||||
('host "%p host name for user %u: ")
|
||||
('port "%p port for user %u and host %h: "))
|
||||
(format "Enter %s (%%u@%%h:%%p): " r)))
|
||||
(prompt (auth-source-format-prompt
|
||||
prompt
|
||||
`((?u ,(aget printable-defaults 'user))
|
||||
(?h ,(aget printable-defaults 'host))
|
||||
(?p ,(aget printable-defaults 'port))))))
|
||||
|
||||
;; store the data, prompting for the password if needed
|
||||
(setq data
|
||||
(cond
|
||||
((and (null data) (eq r 'secret))
|
||||
;; special case prompt for passwords
|
||||
(read-passwd (format "Password for %s@%s:%s: "
|
||||
(or
|
||||
(auth-source-netrc-element-or-first
|
||||
(aget valist 'user))
|
||||
(plist-get artificial :user)
|
||||
"[any user]")
|
||||
(or
|
||||
(auth-source-netrc-element-or-first
|
||||
(aget valist 'host))
|
||||
(plist-get artificial :host)
|
||||
"[any host]")
|
||||
(or
|
||||
(auth-source-netrc-element-or-first
|
||||
(aget valist 'port))
|
||||
(plist-get artificial :port)
|
||||
"[any port]"))))
|
||||
(read-passwd prompt))
|
||||
((null data)
|
||||
(read-string prompt default))
|
||||
(t (or data default))))
|
||||
|
||||
(when data
|
||||
|
@ -1026,22 +1086,42 @@ See `auth-source-search' for details on SPEC."
|
|||
(goto-char (point-max))
|
||||
|
||||
;; ask AFTER we've successfully opened the file
|
||||
(let ((prompt (format "Add to file %s? %s: "
|
||||
(let ((prompt (format "Save auth info to file %s? %s: "
|
||||
file
|
||||
"(y)es/(n)o but use it/(e)dit line/(s)kip file"))
|
||||
done k)
|
||||
"y/n/N/e/?"))
|
||||
(done (not (eq auth-source-save-behavior 'ask)))
|
||||
(bufname "*auth-source Help*")
|
||||
k)
|
||||
(while (not done)
|
||||
(message "%s" prompt)
|
||||
(message "%s" prompt)
|
||||
(setq k (read-char))
|
||||
(case k
|
||||
(?y (setq done t))
|
||||
(?? (save-excursion
|
||||
(with-output-to-temp-buffer bufname
|
||||
(princ
|
||||
(concat "(y)es, save\n"
|
||||
"(n)o but use the info\n"
|
||||
"(N)o and don't ask to save again\n"
|
||||
"(e)dit the line\n"
|
||||
"(?) for help as you can see.\n"))
|
||||
(set-buffer standard-output)
|
||||
(help-mode))))
|
||||
(?n (setq add ""
|
||||
done t))
|
||||
(?s (setq add ""
|
||||
done 'skip))
|
||||
(?N (setq add ""
|
||||
done t
|
||||
auth-source-save-behavior nil))
|
||||
(?e (setq add (read-string "Line to add: " add)))
|
||||
(t nil)))
|
||||
|
||||
(when (get-buffer-window bufname)
|
||||
(delete-window (get-buffer-window bufname)))
|
||||
|
||||
;; make sure the info is not saved
|
||||
(when (null auth-source-save-behavior)
|
||||
(setq add ""))
|
||||
|
||||
(when (< 0 (length add))
|
||||
(progn
|
||||
(unless (bolp)
|
||||
|
|
|
@ -441,7 +441,7 @@ manipulated as follows:
|
|||
(setf (gnus-agent-cat-groups old-category)
|
||||
(delete group (gnus-agent-cat-groups
|
||||
old-category))))))
|
||||
;; Purge cache as preceeding loop invalidated it.
|
||||
;; Purge cache as preceding loop invalidated it.
|
||||
(setq gnus-category-group-cache nil))
|
||||
|
||||
(setcdr (or (assq 'agent-groups category)
|
||||
|
@ -1195,7 +1195,7 @@ downloadable."
|
|||
(mapc #'gnus-summary-remove-process-mark
|
||||
(gnus-sorted-ndifference gnus-newsgroup-processable gnus-newsgroup-undownloaded))
|
||||
|
||||
;; The preceeding call to (gnus-agent-summary-fetch-group)
|
||||
;; The preceding call to (gnus-agent-summary-fetch-group)
|
||||
;; updated the temporary gnus-newsgroup-downloadable to
|
||||
;; remove each article successfully fetched. Now, I
|
||||
;; update the real gnus-newsgroup-downloadable to only
|
||||
|
@ -1520,14 +1520,14 @@ downloaded into the agent."
|
|||
header-number)
|
||||
;; Check each article
|
||||
(while (setq article (pop articles))
|
||||
;; Skip alist entries preceeding this article
|
||||
;; Skip alist entries preceding this article
|
||||
(while (> article (or (caar alist) (1+ article)))
|
||||
(setq alist (cdr alist)))
|
||||
|
||||
;; Prune off articles that we have already fetched.
|
||||
(unless (and (eq article (caar alist))
|
||||
(cdar alist))
|
||||
;; Skip headers preceeding this article
|
||||
;; Skip headers preceding this article
|
||||
(while (> article
|
||||
(setq header-number
|
||||
(let* ((header (car headers)))
|
||||
|
@ -3437,7 +3437,7 @@ missing NOV entry. Run gnus-agent-regenerate-group to restore it.")))
|
|||
|
||||
;; If considering all articles is set, I can only
|
||||
;; expire article IDs that are no longer in the
|
||||
;; active range (That is, articles that preceed the
|
||||
;; active range (That is, articles that precede the
|
||||
;; first article in the new alist).
|
||||
(if (and gnus-agent-consider-all-articles
|
||||
(>= article-number (car active)))
|
||||
|
@ -3715,7 +3715,7 @@ has been fetched."
|
|||
(gnus-agent-append-to-list tail-uncached v1))
|
||||
(setq arts (cdr arts))
|
||||
(setq ref (cdr ref)))
|
||||
(t ; reference article (v2) preceeds the list being filtered
|
||||
(t ; reference article (v2) precedes the list being filtered
|
||||
(setq ref (cdr ref))))))
|
||||
(while arts
|
||||
(gnus-agent-append-to-list tail-uncached (pop arts)))
|
||||
|
@ -4020,7 +4020,7 @@ If REREAD is not nil, downloaded articles are marked as unread."
|
|||
;; article (with the exception of the last ID in the list - it's
|
||||
;; special) that no longer appears in the overview. In this
|
||||
;; situtation, the last article ID in the list implies that it,
|
||||
;; and every article ID preceeding it, have been fetched from the
|
||||
;; and every article ID preceding it, have been fetched from the
|
||||
;; server.
|
||||
|
||||
(if gnus-agent-consider-all-articles
|
||||
|
|
|
@ -1253,6 +1253,24 @@ predicate. See Info node `(gnus)Customizing Articles'."
|
|||
:link '(custom-manual "(gnus)Customizing Articles")
|
||||
:type gnus-article-treat-custom)
|
||||
|
||||
(gnus-define-group-parameter
|
||||
list-identifier
|
||||
:variable-document
|
||||
"Alist of regexps and correspondent identifiers."
|
||||
:variable-group gnus-article-washing
|
||||
:parameter-type
|
||||
'(choice :tag "Identifier"
|
||||
:value nil
|
||||
(symbol :tag "Item in `gnus-list-identifiers'" none)
|
||||
regexp
|
||||
(const :tag "None" nil))
|
||||
:parameter-document
|
||||
"If non-nil, specify how to remove `identifiers' from articles' subject.
|
||||
|
||||
Any symbol is used to look up a regular expression to match the
|
||||
banner in `gnus-list-identifiers'. A string is used as a regular
|
||||
expression to match the identifier directly.")
|
||||
|
||||
(make-obsolete-variable 'gnus-treat-strip-pgp nil
|
||||
"Gnus 5.10 (Emacs 22.1)")
|
||||
|
||||
|
@ -1725,9 +1743,10 @@ Initialized from `text-mode-syntax-table.")
|
|||
(put 'gnus-with-article-headers 'edebug-form-spec '(body))
|
||||
|
||||
(defmacro gnus-with-article-buffer (&rest forms)
|
||||
`(with-current-buffer gnus-article-buffer
|
||||
(let ((inhibit-read-only t))
|
||||
,@forms)))
|
||||
`(when (buffer-live-p gnus-article-buffer)
|
||||
(with-current-buffer gnus-article-buffer
|
||||
(let ((inhibit-read-only t))
|
||||
,@forms))))
|
||||
|
||||
(put 'gnus-with-article-buffer 'lisp-indent-function 0)
|
||||
(put 'gnus-with-article-buffer 'edebug-form-spec '(body))
|
||||
|
@ -3055,10 +3074,11 @@ images if any to the browser, and deletes them when exiting the group
|
|||
The `gnus-list-identifiers' variable specifies what to do."
|
||||
(interactive)
|
||||
(let ((inhibit-point-motion-hooks t)
|
||||
(regexp (if (consp gnus-list-identifiers)
|
||||
(mapconcat 'identity gnus-list-identifiers " *\\|")
|
||||
gnus-list-identifiers))
|
||||
(inhibit-read-only t))
|
||||
(regexp (or (gnus-parameter-list-identifier gnus-newsgroup-name)
|
||||
(if (consp gnus-list-identifiers)
|
||||
(mapconcat 'identity gnus-list-identifiers " *\\|")
|
||||
gnus-list-identifiers)))
|
||||
(inhibit-read-only t))
|
||||
(when regexp
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
|
|
|
@ -140,7 +140,7 @@ Emacs has been idle for IDLE `gnus-demon-timestep's."
|
|||
;; (func number nil)
|
||||
;; Call every `time'
|
||||
((and (numberp time) (null idle))
|
||||
(run-with-timer t time 'gnus-demon-run-callback func)))))
|
||||
(run-with-timer time time 'gnus-demon-run-callback func)))))
|
||||
(when timer
|
||||
(add-to-list 'gnus-demon-timers timer)))))
|
||||
|
||||
|
|
|
@ -80,9 +80,8 @@ If nil, default to `gravatar-size'."
|
|||
"Insert GRAVATAR for ADDRESS in HEADER in current article buffer.
|
||||
Set image category to CATEGORY."
|
||||
(unless (eq gravatar 'error)
|
||||
(with-current-buffer gnus-article-buffer
|
||||
(gnus-with-article-buffer
|
||||
(let ((mark (point-marker))
|
||||
(inhibit-read-only t)
|
||||
(inhibit-point-motion-hooks t)
|
||||
(case-fold-search t))
|
||||
(save-restriction
|
||||
|
|
|
@ -4400,6 +4400,21 @@ and the second element is the address."
|
|||
(defun gnus-group-set-params-info (group params)
|
||||
(gnus-group-set-info params group 'params))
|
||||
|
||||
;; Ad-hoc function for inserting data from a different newsrc.eld
|
||||
;; file. Use with caution, if at all.
|
||||
(defun gnus-import-other-newsrc-file (file)
|
||||
(with-temp-buffer
|
||||
(insert-file file)
|
||||
(let (form)
|
||||
(while (ignore-errors
|
||||
(setq form (read (current-buffer))))
|
||||
(when (and (consp form)
|
||||
(eq (cadr form) 'gnus-newsrc-alist))
|
||||
(let ((infos (cadr (nth 2 form))))
|
||||
(dolist (info infos)
|
||||
(when (gnus-get-info (car info))
|
||||
(gnus-set-info (car info) info)))))))))
|
||||
|
||||
(defun gnus-add-marked-articles (group type articles &optional info force)
|
||||
;; Add ARTICLES of TYPE to the info of GROUP.
|
||||
;; If INFO is non-nil, use that info. If FORCE is non-nil, don't
|
||||
|
|
|
@ -116,10 +116,10 @@ Both ranges must be in ascending order."
|
|||
;; All done with range2
|
||||
(setq r nil))
|
||||
((< max1 min2)
|
||||
;; No overlap: range1 preceeds range2
|
||||
;; No overlap: range1 precedes range2
|
||||
(pop r))
|
||||
((< max2 min1)
|
||||
;; No overlap: range2 preceeds range1
|
||||
;; No overlap: range2 precedes range1
|
||||
(pop range2))
|
||||
((and (<= min2 min1) (<= max1 max2))
|
||||
;; Complete overlap: range1 removed
|
||||
|
@ -232,10 +232,10 @@ RANGE1 and RANGE2 have to be sorted over <."
|
|||
(setq range1 (cdr range1)
|
||||
range2 (cdr range2))
|
||||
(while (and min1 min2)
|
||||
(cond ((< max1 min2) ; range1 preceeds range2
|
||||
(cond ((< max1 min2) ; range1 precedes range2
|
||||
(setq range1 (cdr range1)
|
||||
min1 nil))
|
||||
((< max2 min1) ; range2 preceeds range1
|
||||
((< max2 min1) ; range2 precedes range1
|
||||
(setq range2 (cdr range2)
|
||||
min2 nil))
|
||||
(t ; some sort of overlap is occurring
|
||||
|
|
|
@ -1513,7 +1513,7 @@ If SCAN, request a scan of that group as well."
|
|||
(num 0))
|
||||
|
||||
;; These checks are present in gnus-activate-group but skipped
|
||||
;; due to setting dont-check in the preceeding call.
|
||||
;; due to setting dont-check in the preceding call.
|
||||
|
||||
;; If a cache is present, we may have to alter the active info.
|
||||
(when (and gnus-use-cache info)
|
||||
|
@ -1690,6 +1690,16 @@ If SCAN, request a scan of that group as well."
|
|||
method))
|
||||
(setcar elem method))
|
||||
(push (list method 'ok) methods)))))
|
||||
|
||||
;; If we have primary/secondary select methods, but no groups from
|
||||
;; them, we still want to issue a retrieval request from them.
|
||||
(dolist (method (cons gnus-select-method
|
||||
gnus-secondary-select-methods))
|
||||
(when (and (not (assoc method type-cache))
|
||||
(gnus-check-backend-function 'request-list (car method)))
|
||||
(with-current-buffer nntp-server-buffer
|
||||
(gnus-read-active-file-1 method nil))))
|
||||
|
||||
;; Start early async retrieval of data.
|
||||
(dolist (elem type-cache)
|
||||
(destructuring-bind (method method-type infos dummy) elem
|
||||
|
@ -1712,15 +1722,6 @@ If SCAN, request a scan of that group as well."
|
|||
(setcar (nthcdr 3 elem)
|
||||
(gnus-retrieve-group-data-early method infos)))))))
|
||||
|
||||
;; If we have primary/secondary select methods, but no groups from
|
||||
;; them, we still want to issue a retrieval request from them.
|
||||
(dolist (method (cons gnus-select-method
|
||||
gnus-secondary-select-methods))
|
||||
(when (and (not (assoc method type-cache))
|
||||
(gnus-check-backend-function 'request-list (car method)))
|
||||
(with-current-buffer nntp-server-buffer
|
||||
(gnus-read-active-file-1 method nil))))
|
||||
|
||||
;; Do the rest of the retrieval.
|
||||
(dolist (elem type-cache)
|
||||
(destructuring-bind (method method-type infos early-data) elem
|
||||
|
@ -1886,7 +1887,7 @@ If SCAN, request a scan of that group as well."
|
|||
;; OK - I'm done
|
||||
(setq articles nil))
|
||||
((< range article)
|
||||
;; this range preceeds the article. Leave the range unmodified.
|
||||
;; this range precedes the article. Leave the range unmodified.
|
||||
(pop ranges)
|
||||
ranges)
|
||||
((= range article)
|
||||
|
@ -1909,11 +1910,11 @@ If SCAN, request a scan of that group as well."
|
|||
(setcar ranges min)
|
||||
ranges)
|
||||
((< max article)
|
||||
;; this range preceeds the article. Leave the range unmodified.
|
||||
;; this range precedes the article. Leave the range unmodified.
|
||||
(pop ranges)
|
||||
ranges)
|
||||
((< article min)
|
||||
;; this article preceeds the range. Return null to move to the
|
||||
;; this article precedes the range. Return null to move to the
|
||||
;; next article
|
||||
nil)
|
||||
(t
|
||||
|
|
|
@ -3114,6 +3114,10 @@ Return nil if not defined."
|
|||
(defmacro gnus-get-info (group)
|
||||
`(nth 2 (gnus-gethash ,group gnus-newsrc-hashtb)))
|
||||
|
||||
(defun gnus-set-info (group info)
|
||||
(setcar (nthcdr 2 (gnus-gethash group gnus-newsrc-hashtb))
|
||||
info))
|
||||
|
||||
;;; Load the compatibility functions.
|
||||
|
||||
(require 'gnus-ems)
|
||||
|
|
|
@ -62,8 +62,9 @@ it will default to `imap'.")
|
|||
|
||||
(defvoo nnimap-stream 'undecided
|
||||
"How nnimap will talk to the IMAP server.
|
||||
Values are `ssl', `network', `starttls' or `shell'.
|
||||
The default is to try `ssl' first, and then `network'.")
|
||||
Values are `ssl', `network', `network-only, `starttls' or
|
||||
`shell'. The default is to try `ssl' first, and then
|
||||
`network'.")
|
||||
|
||||
(defvoo nnimap-shell-program (if (boundp 'imap-shell-program)
|
||||
(if (listp imap-shell-program)
|
||||
|
@ -337,7 +338,7 @@ textual parts.")
|
|||
(eq nnimap-stream 'starttls))
|
||||
(nnheader-message 7 "Opening connection to %s..."
|
||||
nnimap-address)
|
||||
'("143" "imap"))
|
||||
'("imap" "143"))
|
||||
((eq nnimap-stream 'shell)
|
||||
(nnheader-message 7 "Opening connection to %s via shell..."
|
||||
nnimap-address)
|
||||
|
@ -345,16 +346,16 @@ textual parts.")
|
|||
((memq nnimap-stream '(ssl tls))
|
||||
(nnheader-message 7 "Opening connection to %s via tls..."
|
||||
nnimap-address)
|
||||
'("143" "993" "imap" "imaps"))
|
||||
'("imaps" "imap" "993" "143"))
|
||||
(t
|
||||
(error "Unknown stream type: %s" nnimap-stream))))
|
||||
(proto-stream-always-use-starttls t)
|
||||
login-result credentials)
|
||||
(when nnimap-server-port
|
||||
(setq ports (append ports (list nnimap-server-port))))
|
||||
(push nnimap-server-port ports))
|
||||
(destructuring-bind (stream greeting capabilities stream-type)
|
||||
(open-protocol-stream
|
||||
"*nnimap*" (current-buffer) nnimap-address (car (last ports))
|
||||
"*nnimap*" (current-buffer) nnimap-address (car ports)
|
||||
:type nnimap-stream
|
||||
:shell-command nnimap-shell-program
|
||||
:capability-command "1 CAPABILITY\r\n"
|
||||
|
|
|
@ -1672,7 +1672,7 @@ password contained in '~/.nntp-authinfo'."
|
|||
|
||||
;; Some nntp servers seem to have an extension to the XOVER
|
||||
;; extension. On these servers, requesting an article range
|
||||
;; preceeding the active range does not return an error as
|
||||
;; preceding the active range does not return an error as
|
||||
;; specified in the RFC. What we instead get is the NOV entry
|
||||
;; for the first available article. Obviously, a client can
|
||||
;; use that entry to avoid making unnecessary requests. The
|
||||
|
|
|
@ -98,39 +98,40 @@ require \"fileinto\";
|
|||
|
||||
(defvar sieve-manage-buffer nil)
|
||||
(defvar sieve-buffer-header-end nil)
|
||||
(defvar sieve-buffer-script-name nil
|
||||
"The real script name of the buffer.")
|
||||
(make-local-variable 'sieve-buffer-script-name)
|
||||
|
||||
;; Sieve-manage mode:
|
||||
|
||||
(defvar sieve-manage-mode-map nil
|
||||
(defvar sieve-manage-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
;; various
|
||||
(define-key map "?" 'sieve-help)
|
||||
(define-key map "h" 'sieve-help)
|
||||
(define-key map "q" 'sieve-bury-buffer)
|
||||
;; activating
|
||||
(define-key map "m" 'sieve-activate)
|
||||
(define-key map "u" 'sieve-deactivate)
|
||||
(define-key map "\M-\C-?" 'sieve-deactivate-all)
|
||||
;; navigation keys
|
||||
(define-key map "\C-p" 'sieve-prev-line)
|
||||
(define-key map [up] 'sieve-prev-line)
|
||||
(define-key map "\C-n" 'sieve-next-line)
|
||||
(define-key map [down] 'sieve-next-line)
|
||||
(define-key map " " 'sieve-next-line)
|
||||
(define-key map "n" 'sieve-next-line)
|
||||
(define-key map "p" 'sieve-prev-line)
|
||||
(define-key map "\C-m" 'sieve-edit-script)
|
||||
(define-key map "f" 'sieve-edit-script)
|
||||
(define-key map "o" 'sieve-edit-script-other-window)
|
||||
(define-key map "r" 'sieve-remove)
|
||||
(define-key map "q" 'sieve-manage-quit)
|
||||
(define-key map [(down-mouse-2)] 'sieve-edit-script)
|
||||
(define-key map [(down-mouse-3)] 'sieve-manage-mode-menu)
|
||||
map)
|
||||
"Keymap for `sieve-manage-mode'.")
|
||||
|
||||
(if sieve-manage-mode-map
|
||||
()
|
||||
(setq sieve-manage-mode-map (make-sparse-keymap))
|
||||
(suppress-keymap sieve-manage-mode-map)
|
||||
;; various
|
||||
(define-key sieve-manage-mode-map "?" 'sieve-help)
|
||||
(define-key sieve-manage-mode-map "h" 'sieve-help)
|
||||
(define-key sieve-manage-mode-map "q" 'sieve-bury-buffer)
|
||||
;; activating
|
||||
(define-key sieve-manage-mode-map "m" 'sieve-activate)
|
||||
(define-key sieve-manage-mode-map "u" 'sieve-deactivate)
|
||||
(define-key sieve-manage-mode-map "\M-\C-?" 'sieve-deactivate-all)
|
||||
;; navigation keys
|
||||
(define-key sieve-manage-mode-map "\C-p" 'sieve-prev-line)
|
||||
(define-key sieve-manage-mode-map [up] 'sieve-prev-line)
|
||||
(define-key sieve-manage-mode-map "\C-n" 'sieve-next-line)
|
||||
(define-key sieve-manage-mode-map [down] 'sieve-next-line)
|
||||
(define-key sieve-manage-mode-map " " 'sieve-next-line)
|
||||
(define-key sieve-manage-mode-map "n" 'sieve-next-line)
|
||||
(define-key sieve-manage-mode-map "p" 'sieve-prev-line)
|
||||
(define-key sieve-manage-mode-map "\C-m" 'sieve-edit-script)
|
||||
(define-key sieve-manage-mode-map "f" 'sieve-edit-script)
|
||||
(define-key sieve-manage-mode-map "o" 'sieve-edit-script-other-window)
|
||||
(define-key sieve-manage-mode-map "r" 'sieve-remove)
|
||||
(define-key sieve-manage-mode-map [(down-mouse-2)] 'sieve-edit-script)
|
||||
(define-key sieve-manage-mode-map [(down-mouse-3)] 'sieve-manage-mode-menu))
|
||||
|
||||
(easy-menu-define sieve-manage-mode-menu sieve-manage-mode-map
|
||||
"Sieve Menu."
|
||||
'("Manage Sieve"
|
||||
|
@ -138,21 +139,21 @@ require \"fileinto\";
|
|||
["Activate script" sieve-activate t]
|
||||
["Deactivate script" sieve-deactivate t]))
|
||||
|
||||
(define-derived-mode sieve-manage-mode fundamental-mode "SIEVE"
|
||||
(define-derived-mode sieve-manage-mode fundamental-mode "Sieve-manage"
|
||||
"Mode used for sieve script management."
|
||||
(setq mode-name "SIEVE")
|
||||
(buffer-disable-undo (current-buffer))
|
||||
(setq truncate-lines t)
|
||||
(easy-menu-add sieve-manage-mode-menu sieve-manage-mode-map))
|
||||
|
||||
(put 'sieve-manage-mode 'mode-class 'special)
|
||||
|
||||
;; This is necessary to allow correct handling of \\[cvs-mode-diff-map]
|
||||
;; in substitute-command-keys.
|
||||
;(fset 'sieve-manage-mode-map sieve-manage-mode-map)
|
||||
|
||||
;; Commands used in sieve-manage mode:
|
||||
|
||||
(defun sieve-manage-quit ()
|
||||
"Quit."
|
||||
(interactive)
|
||||
(kill-buffer (current-buffer)))
|
||||
|
||||
(defun sieve-activate (&optional pos)
|
||||
(interactive "d")
|
||||
(let ((name (sieve-script-at-point)) err)
|
||||
|
@ -204,7 +205,10 @@ require \"fileinto\";
|
|||
(switch-to-buffer (get-buffer-create "template.siv"))
|
||||
(insert sieve-template))
|
||||
(sieve-mode)
|
||||
(message "Press C-c C-l to upload script to server.")))
|
||||
(setq sieve-buffer-script-name name)
|
||||
(message
|
||||
(substitute-command-keys
|
||||
"Press \\[sieve-upload] to upload script to server."))))
|
||||
|
||||
(defmacro sieve-change-region (&rest body)
|
||||
"Turns off sieve-region before executing BODY, then re-enables it after.
|
||||
|
@ -337,13 +341,18 @@ Server : " server ":" (or port "2000") "
|
|||
;; get list of script names and print them
|
||||
(let ((scripts (sieve-manage-listscripts sieve-manage-buffer)))
|
||||
(if (null scripts)
|
||||
(insert (format (concat "No scripts on server, press RET on %s to "
|
||||
"create a new script.\n") sieve-new-script))
|
||||
(insert (format (concat "%d script%s on server, press RET on a script "
|
||||
"name edits it, or\npress RET on %s to create "
|
||||
"a new script.\n") (length scripts)
|
||||
(if (eq (length scripts) 1) "" "s")
|
||||
sieve-new-script)))
|
||||
(insert
|
||||
(substitute-command-keys
|
||||
(format
|
||||
"No scripts on server, press \\[sieve-edit-script] on %s to create a new script.\n"
|
||||
sieve-new-script)))
|
||||
(insert
|
||||
(substitute-command-keys
|
||||
(format (concat "%d script%s on server, press \\[sieve-edit-script] on a script "
|
||||
"name edits it, or\npress \\[sieve-edit-script] on %s to create "
|
||||
"a new script.\n") (length scripts)
|
||||
(if (eq (length scripts) 1) "" "s")
|
||||
sieve-new-script))))
|
||||
(save-excursion
|
||||
(sieve-insert-scripts (list sieve-new-script))
|
||||
(sieve-insert-scripts scripts)))
|
||||
|
@ -363,15 +372,15 @@ Server : " server ":" (or port "2000") "
|
|||
;;;###autoload
|
||||
(defun sieve-upload (&optional name)
|
||||
(interactive)
|
||||
(unless name
|
||||
(setq name (buffer-name)))
|
||||
(when (or (get-buffer sieve-buffer) (call-interactively 'sieve-manage))
|
||||
(let ((script (buffer-string)) err)
|
||||
(with-current-buffer (get-buffer sieve-buffer)
|
||||
(setq err (sieve-manage-putscript name script sieve-manage-buffer))
|
||||
(setq err (sieve-manage-putscript
|
||||
(or name sieve-buffer-script-name (buffer-name))
|
||||
script sieve-manage-buffer))
|
||||
(if (sieve-manage-ok-p err)
|
||||
(message (concat
|
||||
"Sieve upload done. Use `C-c RET' to manage scripts."))
|
||||
(message (substitute-command-keys
|
||||
"Sieve upload done. Use \\[sieve-manage] to manage scripts."))
|
||||
(message "Sieve upload failed: %s" (nth 2 err)))))))
|
||||
|
||||
;;;###autoload
|
||||
|
|
|
@ -1472,8 +1472,8 @@ Removes badly formatted data and ignored directories."
|
|||
(add-hook 'choose-completion-string-functions 'ido-choose-completion-string))
|
||||
|
||||
(define-minor-mode ido-everywhere
|
||||
"Toggle using ido speed-ups everywhere file and directory names are read.
|
||||
With ARG, turn ido speed-up on if arg is positive, off otherwise."
|
||||
"Toggle using ido-mode everywhere file and directory names are read.
|
||||
With ARG, turn ido-mode on if arg is positive, off otherwise."
|
||||
:global t
|
||||
:group 'ido
|
||||
(when (get 'ido-everywhere 'file)
|
||||
|
@ -1494,8 +1494,8 @@ With ARG, turn ido speed-up on if arg is positive, off otherwise."
|
|||
|
||||
;;;###autoload
|
||||
(defun ido-mode (&optional arg)
|
||||
"Toggle ido speed-ups on or off.
|
||||
With ARG, turn ido speed-up on if arg is positive, off otherwise.
|
||||
"Toggle ido mode on or off.
|
||||
With ARG, turn ido-mode on if arg is positive, off otherwise.
|
||||
Turning on ido-mode will remap (via a minor-mode keymap) the default
|
||||
keybindings for the `find-file' and `switch-to-buffer' families of
|
||||
commands to the ido versions of these functions.
|
||||
|
|
|
@ -366,7 +366,9 @@ This also sets the following values:
|
|||
(coding-system-get coding-system 'ascii-compatible-p)))
|
||||
(setq default-file-name-coding-system coding-system)))
|
||||
(setq default-terminal-coding-system coding-system)
|
||||
(setq default-keyboard-coding-system coding-system)
|
||||
;; Prevent default-terminal-coding-system from converting ^M to ^J.
|
||||
(setq default-keyboard-coding-system
|
||||
(coding-system-change-eol-conversion coding-system 'unix))
|
||||
;; Preserve eol-type from existing default-process-coding-systems.
|
||||
;; On non-unix-like systems in particular, these may have been set
|
||||
;; carefully by the user, or by the startup code, to deal with the
|
||||
|
|
|
@ -503,7 +503,7 @@ FIELD is the plain text name of a field in the message, such as
|
|||
\"subject\" or \"from\". A FIELD of \"to\" will automatically include
|
||||
all text from the \"cc\" field as well.
|
||||
|
||||
REGEXP is an expression to match in the preceeding specified FIELD.
|
||||
REGEXP is an expression to match in the preceding specified FIELD.
|
||||
FIELD/REGEXP pairs continue in the list.
|
||||
|
||||
examples:
|
||||
|
@ -4316,7 +4316,7 @@ With prefix argument N moves forward N messages with these labels.
|
|||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "04902da045706fb7f2b0915529ed161b")
|
||||
;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "c530622b53038152ca84f2ec9313bd7a")
|
||||
;;; Generated autoloads from rmailmm.el
|
||||
|
||||
(autoload 'rmail-mime "rmailmm" "\
|
||||
|
|
|
@ -281,6 +281,12 @@ buffer in your bug report.
|
|||
(insert ")\n"))
|
||||
(insert-buffer-substring elbuf)))
|
||||
|
||||
;; Dump load-path shadows.
|
||||
(insert "\nload-path shadows:\n==================\n")
|
||||
(ignore-errors
|
||||
(mapc (lambda (x) (when (string-match "tramp" x) (insert x "\n")))
|
||||
(split-string (list-load-path-shadows t) "\n")))
|
||||
|
||||
;; Append buffers only when we are in message mode.
|
||||
(when (and
|
||||
(eq major-mode 'message-mode)
|
||||
|
|
|
@ -142,7 +142,7 @@
|
|||
(add-to-list 'tramp-methods (cons elt nil)))))
|
||||
|
||||
(defconst tramp-gvfs-path-tramp (concat dbus-path-emacs "/Tramp")
|
||||
"The preceeding object path for own objects.")
|
||||
"The preceding object path for own objects.")
|
||||
|
||||
(defconst tramp-gvfs-service-daemon "org.gtk.vfs.Daemon"
|
||||
"The well known name of the GVFS daemon.")
|
||||
|
|
|
@ -51,7 +51,7 @@ Uses `current-word' with the buffer narrowed to the part before
|
|||
point."
|
||||
(save-restriction
|
||||
;; Narrow in case point is in the middle of a symbol -- we want
|
||||
;; just the preceeding part.
|
||||
;; just the preceding part.
|
||||
(narrow-to-region (point-min) (point))
|
||||
(current-word)))
|
||||
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
2011-02-28 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* org.el (org-maybe-keyword-time-regexp):
|
||||
* org-icalendar.el (org-icalendar-store-UID):
|
||||
* org-agenda.el (org-agenda-scheduled-leaders)
|
||||
(org-agenda-deadline-leaders, org-agenda-filter-preset):
|
||||
* org-table.el (org-table-current-line-types)
|
||||
(org-table-current-begin-line, org-table-current-begin-pos):
|
||||
(org-table-current-field-formula):
|
||||
Fix typos in docstrings.
|
||||
|
||||
2011-02-10 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* org-remember.el (org-remember-mode-map):
|
||||
|
|
|
@ -76,6 +76,12 @@ regulate cache behavior."
|
|||
key
|
||||
(symbol-value (intern-soft key password-data))))
|
||||
|
||||
(defun password-in-cache-p (key)
|
||||
"Check if KEY is in the cache."
|
||||
(and password-cache
|
||||
key
|
||||
(intern-soft key password-data)))
|
||||
|
||||
(defun password-read (prompt &optional key)
|
||||
"Read password, for use with KEY, from user, or from cache if wanted.
|
||||
KEY indicate the purpose of the password, so the cache can
|
||||
|
|
|
@ -2769,7 +2769,7 @@ Will not look before LIM."
|
|||
(goto-char (cperl-beginning-of-property p look-prop))
|
||||
(beginning-of-line)
|
||||
(setq pre-indent-point (point)))))
|
||||
(goto-char pre-indent-point) ; Orig line skipping preceeding pod/etc
|
||||
(goto-char pre-indent-point) ; Orig line skipping preceding pod/etc
|
||||
(let* ((case-fold-search nil)
|
||||
(s-s (cperl-get-state (car parse-data) (nth 1 parse-data)))
|
||||
(start (or (nth 2 parse-data) ; last complete sexp terminated
|
||||
|
@ -2796,8 +2796,8 @@ Will not look before LIM."
|
|||
(cperl-1+ char-after-pos) 'indentable)
|
||||
p (1+ (cperl-beginning-of-property
|
||||
(point) 'indentable))
|
||||
is-block ; misused for: preceeding line in REx
|
||||
(save-excursion ; Find preceeding line
|
||||
is-block ; misused for: preceding line in REx
|
||||
(save-excursion ; Find preceding line
|
||||
(cperl-backward-to-noncomment p)
|
||||
(beginning-of-line)
|
||||
(if (<= (point) p)
|
||||
|
@ -2813,10 +2813,10 @@ Will not look before LIM."
|
|||
prop (parse-partial-sexp p char-after-pos))
|
||||
(cond ((not delim) ; End the REx, ignore is-block
|
||||
(vector 'indentable 'terminator p is-block))
|
||||
(is-block ; Indent w.r.t. preceeding line
|
||||
(is-block ; Indent w.r.t. preceding line
|
||||
(vector 'indentable 'cont-line char-after-pos
|
||||
is-block char-after p))
|
||||
(t ; No preceeding line...
|
||||
(t ; No preceding line...
|
||||
(vector 'indentable 'first-line p))))
|
||||
((get-text-property char-after-pos 'REx-part2)
|
||||
(vector 'REx-part2 (point)))
|
||||
|
@ -2897,7 +2897,7 @@ Will not look before LIM."
|
|||
(cperl-backward-to-start-of-continued-exp containing-sexp))
|
||||
(beginning-of-line)
|
||||
(cperl-backward-to-noncomment containing-sexp))
|
||||
;; Now we get non-label preceeding the indent point
|
||||
;; Now we get non-label preceding the indent point
|
||||
(if (not (or (eq (1- (point)) containing-sexp)
|
||||
(memq (preceding-char)
|
||||
(append (if is-block " ;{" " ,;{") '(nil)))
|
||||
|
@ -4835,7 +4835,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face',
|
|||
;;; Moreover, one takes positive approach (looks for else,grep etc)
|
||||
;;; another negative (looks for bless,tr etc)
|
||||
(defun cperl-after-block-p (lim &optional pre-block)
|
||||
"Return true if the preceeding } (if PRE-BLOCK, following {) delimits a block.
|
||||
"Return true if the preceding } (if PRE-BLOCK, following {) delimits a block.
|
||||
Would not look before LIM. Assumes that LIM is a good place to begin a
|
||||
statement. The kind of block we treat here is one after which a new
|
||||
statement would start; thus the block in ${func()} does not count."
|
||||
|
@ -4864,7 +4864,7 @@ statement would start; thus the block in ${func()} does not count."
|
|||
(progn
|
||||
(forward-sexp -1)
|
||||
(looking-at "sub[ \t\n\f#]"))))))
|
||||
;; What preceeds is not word... XXXX Last statement in sub???
|
||||
;; What precedes is not word... XXXX Last statement in sub???
|
||||
(cperl-after-expr-p lim))))
|
||||
(error nil))))
|
||||
|
||||
|
|
|
@ -428,7 +428,7 @@ path \(the value of !PATH). However, under Windows and MacOS
|
|||
variable can be set to specify the paths where IDLWAVE can find PRO
|
||||
files. The shell will only be asked for a list of paths when this
|
||||
variable is nil. The value is a list of directories. A directory
|
||||
preceeded by a `+' will be searched recursively. If you set this
|
||||
preceded by a `+' will be searched recursively. If you set this
|
||||
variable on a UNIX system, the shell will not be queried. See also
|
||||
`idlwave-system-directory'."
|
||||
:group 'idlwave-routine-info
|
||||
|
@ -1197,7 +1197,7 @@ As a user, you should not set this to t.")
|
|||
(2 font-lock-function-name-face)))
|
||||
|
||||
;; Keyword parameters, like /xlog or ,xrange=[]
|
||||
;; This is anchored to the comma preceeding the keyword.
|
||||
;; This is anchored to the comma preceding the keyword.
|
||||
;; Treats continuation lines, works only during whole buffer
|
||||
;; fontification. Slow, use it only in fancy fontification.
|
||||
(keyword-parameters
|
||||
|
|
|
@ -1775,7 +1775,7 @@ NOTE: Activate the new setting by restarting Emacs.
|
|||
|
||||
(defcustom vhdl-intelligent-tab t
|
||||
"*Non-nil means `TAB' does indentation, word completion and tab insertion.
|
||||
That is, if preceeding character is part of a word then complete word,
|
||||
That is, if preceding character is part of a word then complete word,
|
||||
else if not at beginning of line then insert tab,
|
||||
else if last command was a `TAB' or `RET' then dedent one step,
|
||||
else indent current line (i.e. `TAB' is bound to `vhdl-electric-tab').
|
||||
|
@ -6946,7 +6946,7 @@ only-lines."
|
|||
;; Indentation commands
|
||||
|
||||
(defun vhdl-electric-tab (&optional prefix-arg)
|
||||
"If preceeding character is part of a word or a paren then hippie-expand,
|
||||
"If preceding character is part of a word or a paren then hippie-expand,
|
||||
else if right of non whitespace on line then insert tab,
|
||||
else if last command was a tab or return then dedent one step or if a comment
|
||||
toggle between normal indent and inline comment indent,
|
||||
|
@ -10396,7 +10396,7 @@ with double-quotes is to be inserted. DEFAULT specifies a default string."
|
|||
(if vhdl-upper-case-keywords (upcase-word num) (downcase-word num)))
|
||||
|
||||
(defun vhdl-minibuffer-tab (&optional prefix-arg)
|
||||
"If preceeding character is part of a word or a paren then hippie-expand,
|
||||
"If preceding character is part of a word or a paren then hippie-expand,
|
||||
else insert tab (used for word completion in VHDL minibuffer)."
|
||||
(interactive "P")
|
||||
(cond
|
||||
|
@ -13056,7 +13056,7 @@ hierarchy otherwise.")
|
|||
;; Scan functions
|
||||
|
||||
(defun vhdl-scan-context-clause ()
|
||||
"Scan the context clause that preceeds a design unit."
|
||||
"Scan the context clause that precedes a design unit."
|
||||
(let (lib-alist)
|
||||
(save-excursion
|
||||
(when (re-search-backward "^[ \t]*\\(architecture\\|configuration\\|entity\\|package\\)\\>" nil t)
|
||||
|
|
|
@ -1531,7 +1531,7 @@ N (match-string N) (where N is a string of digits)
|
|||
#& (string-to-number (match-string 0))
|
||||
# replace-count
|
||||
|
||||
Note that these symbols must be preceeded by a backslash in order to
|
||||
Note that these symbols must be preceded by a backslash in order to
|
||||
type them using Lisp syntax."
|
||||
(while (consp n)
|
||||
(cond
|
||||
|
|
11
lisp/term/screen.el
Normal file
11
lisp/term/screen.el
Normal file
|
@ -0,0 +1,11 @@
|
|||
;; -*- no-byte-compile: t -*-
|
||||
;; Treat a screen terminal similar to an xterm.
|
||||
(load "term/xterm")
|
||||
|
||||
(defun terminal-init-screen ()
|
||||
"Terminal initialization function for screen."
|
||||
;; Use the xterm color initialization code.
|
||||
(xterm-register-default-colors)
|
||||
(tty-set-up-initial-frame-faces))
|
||||
|
||||
;; screen.el ends here
|
|
@ -43,7 +43,7 @@ only considered as a candidate to match `paragraph-start' or
|
|||
|
||||
Prefix argument says to turn mode on if positive, off if negative.
|
||||
When the mode is turned on, if there are newlines in the buffer but no hard
|
||||
newlines, ask the user whether to mark as hard any newlines preceeding a
|
||||
newlines, ask the user whether to mark as hard any newlines preceding a
|
||||
`paragraph-start' line. From a program, second arg INSERT specifies whether
|
||||
to do this; it can be `never' to change nothing, t or `always' to force
|
||||
marking, `guess' to try to do the right thing with no questions, nil
|
||||
|
|
|
@ -1,3 +1,36 @@
|
|||
2011-02-26 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* sedlibmk.inp (BITSIZEOF_PTRDIFF_T, BITSIZEOF_SIG_ATOMIC_T)
|
||||
(BITSIZEOF_SIZE_T, BITSIZEOF_WCHAR_T)
|
||||
(BITSIZEOF_WINT_TGNULIB_FCHMODAT, GNULIB_FSTATAT, GNULIB_FUTIMENS)
|
||||
(GNULIB_LCHMOD, GNULIB_LSTAT, GNULIB_MBTOWC, GNULIB_MKDIRAT)
|
||||
(GNULIB_MKFIFO, GNULIB_MKFIFOAT, GNULIB_MKNOD, GNULIB_MKNODAT)
|
||||
(GNULIB_STAT, GNULIB_UTIMENSAT, GNULIB_WCTOMB, HAVE_FCHMODAT)
|
||||
(HAVE_FSTATAT, HAVE_FUTIMENS, HAVE_INTTYPES_H, HAVE_LCHMOD)
|
||||
(HAVE_LONG_LONG_INT, HAVE_LSTAT, HAVE_MKDIRAT, HAVE_MKFIFO)
|
||||
(HAVE_MKFIFOAT, HAVE_MKNOD, HAVE_MKNODAT)
|
||||
(HAVE_SIGNED_SIG_ATOMIC_T, HAVE_SIGNED_WCHAR_T)
|
||||
(HAVE_SIGNED_WINT_T, HAVE_STDINT_H, HAVE_SYS_BITYPES_H)
|
||||
(HAVE_SYS_INTTYPES_H, HAVE_SYS_TYPES_H)
|
||||
(HAVE_UNSIGNED_LONG_LONG_INT, HAVE_UTIMENSAT, HAVE_WCHAR_H)
|
||||
(MKDIR_P, NEXT_AS_FIRST_DIRECTIVE_STDINT_H)
|
||||
(NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H, NEXT_STDINT_H)
|
||||
(NEXT_SYS_STAT_H, REPLACE_LSTAT, REPLACE_MBTOWC, REPLACE_MKDIR)
|
||||
(REPLACE_MKFIFO, REPLACE_MKNOD, REPLACE_STAT, REPLACE_UTIMENSAT)
|
||||
(REPLACE_WCTOMB, SIG_ATOMIC_T_SUFFIX, SIZE_T_SUFFIX, STDINT_H)
|
||||
(WCHAR_T_SUFFIX, WINT_T_SUFFIX, APPLE_UNIVERSAL_BUILD): New edits.
|
||||
($(MKDIR_P)): Replace with equivalent DOS command.
|
||||
(gl_LIBOBJS): Add md5.o and filemode.o.
|
||||
|
||||
* sed2v2.inp (BITSIZEOF_PTRDIFF_T, BITSIZEOF_SIG_ATOMIC_T)
|
||||
(BITSIZEOF_SIZE_T, BITSIZEOF_WCHAR_T, BITSIZEOF_WINT_T)
|
||||
(HAVE_LONG_LONG_INT, HAVE_SIGNED_SIG_ATOMIC_T, HAVE_SIGNED_WINT_T)
|
||||
(HAVE_UNSIGNED_LONG_LONG_INT, HAVE_WCHAR_H, HAVE_INTTYPES_H): New
|
||||
edits.
|
||||
|
||||
* depfiles.bat: Create a dummy .Po file only if a file by the same
|
||||
name does not already exist in the deps/ subdirectory.
|
||||
|
||||
2011-02-19 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* depfiles.bat: New file.
|
||||
|
|
|
@ -20,6 +20,6 @@ rem along with GNU Emacs. If not, see http://www.gnu.org/licenses/.
|
|||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
echo %1 | sed -e "s,^,@echo # dummy > deps\\," -e "s,\.c,.Po," > tdepfile.bat
|
||||
echo %1 | sed -e "s,\(.*\)\.c,@if not exist deps\\\1.Po echo # dummy > deps\\\1.Po," > tdepfile.bat
|
||||
call tdepfile
|
||||
del tdepfile.bat
|
||||
|
|
|
@ -62,7 +62,18 @@
|
|||
/^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/
|
||||
/^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/
|
||||
/^#undef HAVE_DIRENT_H/s/^.*$/#define HAVE_DIRENT_H 1/
|
||||
|
||||
/^#undef BITSIZEOF_PTRDIFF_T *$/s/^.*$/#define BITSIZEOF_PTRDIFF_T 32/
|
||||
/^#undef BITSIZEOF_SIG_ATOMIC_T *$/s/^.*$/#define BITSIZEOF_SIG_ATOMIC_T 32/
|
||||
/^#undef BITSIZEOF_SIZE_T *$/s/^.*$/#define BITSIZEOF_SIZE_T 32/
|
||||
/^#undef BITSIZEOF_WCHAR_T *$/s/^.*$/#define BITSIZEOF_WCHAR_T 16/
|
||||
/^#undef BITSIZEOF_WINT_T *$/s/^.*$/#define BITSIZEOF_WINT_T 32/
|
||||
/^#undef HAVE__BOOL/s/^.*$/#define HAVE__BOOL 1/
|
||||
/^#undef HAVE_LONG_LONG_INT *$/s/^.*$/#define HAVE_LONG_LONG_INT 1/
|
||||
/^#undef HAVE_SIGNED_SIG_ATOMIC_T *$/s/^.*$/#define HAVE_SIGNED_SIG_ATOMIC_T 1/
|
||||
/^#undef HAVE_SIGNED_WINT_T *$/s/^.*$/#define HAVE_SIGNED_WINT_T 1/
|
||||
/^#undef HAVE_UNSIGNED_LONG_LONG_INT *$/s/^.*$/#define HAVE_UNSIGNED_LONG_LONG_INT 1/
|
||||
/^#under HAVE_WCHAR_H *$/s/^.*$/#define HAVE_WCHAR_H 1/
|
||||
/^#undef inline/s/^.*$/#define inline __inline__/
|
||||
/^#undef my_strftime/s/^.*$/#define my_strftime nstrftime/
|
||||
/^#undef restrict/s/^.*$/#define restrict __restrict/
|
||||
|
@ -77,6 +88,12 @@ s!^#undef config_opsysfile *$!#define config_opsysfile "s/msdos.h"!
|
|||
s!^#undef config_machfile *$!#define config_machfile "m/intel386.h"!
|
||||
s/^#undef PROTOTYPES *$/#define PROTOTYPES 1/
|
||||
s/^#undef POINTER_TYPE *$/#define POINTER_TYPE void/
|
||||
/^#undef HAVE_INTTYPES_H/c\
|
||||
#if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3\
|
||||
#define HAVE_INTTYPES_H 1\
|
||||
#else\
|
||||
#undef HAVE_INTTYPES_H\
|
||||
#endif
|
||||
/^#undef HAVE_STDINT_H/c\
|
||||
#if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3\
|
||||
#define HAVE_STDINT_H 1\
|
||||
|
|
|
@ -47,6 +47,14 @@ am__cd = cd
|
|||
/^EXEEXT *=/s/@[^@\n]*@/.exe/
|
||||
/^GETOPT_H *=/s/@[^@\n]*@/getopt.h/
|
||||
#
|
||||
# Gnulib stuff
|
||||
/^BITSIZEOF_PTRDIFF_T *=/s/@BITSIZEOF_PTRDIFF_T@/32/
|
||||
/^BITSIZEOF_SIG_ATOMIC_T *=/s/@BITSIZEOF_SIG_ATOMIC_T@/32/
|
||||
/^BITSIZEOF_SIZE_T *=/s/@BITSIZEOF_SIZE_T@/32/
|
||||
/^BITSIZEOF_WCHAR_T *=/s/@BITSIZEOF_WCHAR_T@/16/
|
||||
/^BITSIZEOF_WINT_T *=/s/@BITSIZEOF_WINT_T@/32/
|
||||
/^APPLE_UNIVERSAL_BUILD *=/s/@APPLE_UNIVERSAL_BUILD@/0/
|
||||
#
|
||||
# Some GNULIB_* are replaced with zero even though DJGPP does not have
|
||||
# these features. That's because the gnulib replacements cannot
|
||||
# possibly work for DJGPP, so we prefer to fail the link than have a
|
||||
|
@ -63,8 +71,11 @@ am__cd = cd
|
|||
/^GNULIB_FACCESSAT *=/s/@GNULIB_FACCESSAT@/0/
|
||||
/^GNULIB_FCHDIR *=/s/@GNULIB_FCHDIR@/0/
|
||||
/^GNULIB_FCHOWNAT *=/s/@GNULIB_FCHOWNAT@/0/
|
||||
/^GNULIB_FCHMODAT *=/s/@GNULIB_FCHMODAT@/0/
|
||||
/^GNULIB_FSTATAT *=/s/@GNULIB_FSTATAT@/0/
|
||||
/^GNULIB_FSYNC *=/s/@GNULIB_FSYNC@/0/
|
||||
/^GNULIB_FTRUNCATE *=/s/@GNULIB_FTRUNCATE@/0/
|
||||
/^GNULIB_FUTIMENS *=/s/@GNULIB_FUTIMENS@/0/
|
||||
/^GNULIB_GETCWD *=/s/@GNULIB_GETCWD@/0/
|
||||
/^GNULIB_GETDOMAINNAME *=/s/@GNULIB_GETDOMAINNAME@/0/
|
||||
/^GNULIB_GETDTABLESIZE *=/s/@GNULIB_GETDTABLESIZE@/0/
|
||||
|
@ -77,12 +88,20 @@ am__cd = cd
|
|||
/^GNULIB_GETSUBOPT *=/s/@GNULIB_GETSUBOPT@/0/
|
||||
/^GNULIB_GETUSERSHELL *=/s/@GNULIB_GETUSERSHELL@/0/
|
||||
/^GNULIB_GRANTPT *=/s/@GNULIB_GRANTPT@/0/
|
||||
/^GNULIB_LCHMOD *=/s/@GNULIB_LCHMOD@/0/
|
||||
/^GNULIB_LCHOWN *=/s/@GNULIB_LCHOWN@/0/
|
||||
/^GNULIB_LINK *=/s/@GNULIB_LINK@/0/
|
||||
/^GNULIB_LINKAT *=/s/@GNULIB_LINKAT@/0/
|
||||
/^GNULIB_LSEEK *=/s/@GNULIB_LSEEK@/0/
|
||||
/^GNULIB_LSTAT *=/s/@GNULIB_LSTAT@/0/
|
||||
/^GNULIB_MALLOC_POSIX *=/s/@GNULIB_MALLOC_POSIX@/0/
|
||||
/^GNULIB_MBTOWC *=/s/@GNULIB_MBTOWC@/0/
|
||||
/^GNULIB_MKDIRAT *=/s/@GNULIB_MKDIRAT@/0/
|
||||
/^GNULIB_MKDTEMP *=/s/@GNULIB_MKDTEMP@/0/
|
||||
/^GNULIB_MKFIFO *=/s/@GNULIB_MKFIFO@/0/
|
||||
/^GNULIB_MKFIFOAT *=/s/@GNULIB_MKFIFOAT@/0/
|
||||
/^GNULIB_MKNOD *=/s/@GNULIB_MKNOD@/0/
|
||||
/^GNULIB_MKNODAT *=/s/@GNULIB_MKNODAT@/0/
|
||||
/^GNULIB_MKOSTEMP *=/s/@GNULIB_MKOSTEMP@/0/
|
||||
/^GNULIB_MKOSTEMPS *=/s/@GNULIB_MKOSTEMPS@/0/
|
||||
/^GNULIB_MKSTEMP *=/s/@GNULIB_MKSTEMP@/0/
|
||||
|
@ -104,6 +123,7 @@ am__cd = cd
|
|||
/^GNULIB_RPMATCH *=/s/@GNULIB_RPMATCH@/0/
|
||||
/^GNULIB_SETENV *=/s/@GNULIB_SETENV@/0/
|
||||
/^GNULIB_SLEEP *=/s/@GNULIB_SLEEP@/0/
|
||||
/^GNULIB_STAT *=/s/@GNULIB_STAT@/0/
|
||||
/^GNULIB_STRPTIME *=/s/@GNULIB_STRPTIME@/0/
|
||||
/^GNULIB_STRTOD *=/s/@GNULIB_STRTOD@/0/
|
||||
/^GNULIB_STRTOLL *=/s/@GNULIB_STRTOLL@/0/
|
||||
|
@ -121,6 +141,8 @@ am__cd = cd
|
|||
/^GNULIB_UNLOCKPT *=/s/@GNULIB_UNLOCKPT@/0/
|
||||
/^GNULIB_UNSETENV *=/s/@GNULIB_UNSETENV@/1/
|
||||
/^GNULIB_USLEEP *=/s/@GNULIB_USLEEP@/0/
|
||||
/^GNULIB_UTIMENSAT *=/s/@GNULIB_UTIMENSAT@/0/
|
||||
/^GNULIB_WCTOMB *=/s/@GNULIB_WCTOMB@/0/
|
||||
/^GNULIB_WRITE *=/s/@GNULIB_WRITE@/0/
|
||||
/^GNULIB__EXIT *=/s/@GNULIB__EXIT@/0/
|
||||
/^HAVE_ATOLL *=/s/@HAVE_ATOLL@/0/
|
||||
|
@ -142,9 +164,12 @@ am__cd = cd
|
|||
/^HAVE_EUIDACCESS *=/s/@HAVE_EUIDACCESS@/0/
|
||||
/^HAVE_FACCESSAT *=/s/@HAVE_FACCESSAT@/0/
|
||||
/^HAVE_FCHDIR *=/s/@HAVE_FCHDIR@/0/
|
||||
/^HAVE_FCHMODAT *=/s/@HAVE_FCHMODAT@/0/
|
||||
/^HAVE_FCHOWNAT *=/s/@HAVE_FCHOWNAT@/0/
|
||||
/^HAVE_FSTATAT *=/s/@HAVE_FSTATAT@/0/
|
||||
/^HAVE_FSYNC *=/s/@HAVE_FSYNC@/1/
|
||||
/^HAVE_FTRUNCATE *=/s/@HAVE_FTRUNCATE@/1/
|
||||
/^HAVE_FUTIMENS *=/s/@HAVE_FUTIMENS@/0/
|
||||
/^HAVE_GETDTABLESIZE *=/s/@HAVE_GETDTABLESIZE@/0/
|
||||
/^HAVE_GETGROUPS *=/s/@HAVE_GETGROUPS@/0/
|
||||
/^HAVE_GETHOSTNAME *=/s/@HAVE_GETHOSTNAME@/1/
|
||||
|
@ -154,10 +179,19 @@ am__cd = cd
|
|||
/^HAVE_GETSUBOPT *=/s/@HAVE_GETSUBOPT@/0/
|
||||
/^HAVE_GRANTPT *=/s/@HAVE_GRANTPT@/0/
|
||||
/^HAVE_LCHOWN *=/s/@HAVE_LCHOWN@/0/
|
||||
/^HAVE_INTTYPES_H *=/s/@HAVE_INTTYPES_H@/HAVE_INTTYPES_H/
|
||||
/^HAVE_LCHMOD *=/s/@HAVE_LCHMOD@/0/
|
||||
/^HAVE_LINK *=/s/@HAVE_LINK@/1/
|
||||
/^HAVE_LINKAT *=/s/@HAVE_LINKAT@/0/
|
||||
/^HAVE_LONG_LONG_INT *=/s/@HAVE_LONG_LONG_INT@/1/
|
||||
/^HAVE_LSTAT *=/s/@HAVE_LSTAT@/HAVE_LSTAT/
|
||||
/^HAVE_MAKEINFO *=/s/@HAVE_MAKEINFO@/yes/
|
||||
/^HAVE_MKDIRAT *=/s/@HAVE_MKDIRAT@/0/
|
||||
/^HAVE_MKDTEMP *=/s/@HAVE_MKDTEMP@/0/
|
||||
/^HAVE_MKFIFO *=/s/@HAVE_MKFIFO@/1/
|
||||
/^HAVE_MKFIFOAT *=/s/@HAVE_MKFIFOAT@/0/
|
||||
/^HAVE_MKNOD *=/s/@HAVE_MKNOD@/1/
|
||||
/^HAVE_MKNODAT *=/s/@HAVE_MKNODAT@/0/
|
||||
/^HAVE_MKOSTEMP *=/s/@HAVE_MKOSTEMP@/0/
|
||||
/^HAVE_MKOSTEMPS *=/s/@HAVE_MKOSTEMPS@/0/
|
||||
/^HAVE_MKSTEMP *=/s/@HAVE_MKSTEMP@/1/
|
||||
|
@ -176,7 +210,11 @@ am__cd = cd
|
|||
/^HAVE_REALPATH *=/s/@HAVE_REALPATH@/0/
|
||||
/^HAVE_RPMATCH *=/s/@HAVE_RPMATCH@/0/
|
||||
/^HAVE_SETENV *=/s/@HAVE_SETENV@/1/
|
||||
/^HAVE_SIGNED_SIG_ATOMIC_T *=/s/@HAVE_SIGNED_SIG_ATOMIC_T@/1/
|
||||
/^HAVE_SIGNED_WCHAR_T *=/s/@HAVE_SIGNED_WCHAR_T@/0/
|
||||
/^HAVE_SIGNED_WINT_T *=/s/@HAVE_SIGNED_WINT_T@/1/
|
||||
/^HAVE_SLEEP *=/s/@HAVE_SLEEP@/1/
|
||||
/^HAVE_STDINT_H *=/s/@HAVE_STDINT_H@/HAVE_STDINT_H/
|
||||
/^HAVE_STRPTIME *=/s/@HAVE_STRPTIME@/0/
|
||||
/^HAVE_STRTOD *=/s/@HAVE_STRTOD@/1/
|
||||
/^HAVE_STRTOLL *=/s/@HAVE_STRTOLL@/1/
|
||||
|
@ -184,13 +222,19 @@ am__cd = cd
|
|||
/^HAVE_STRUCT_RANDOM_DATA *=/s/@HAVE_STRUCT_RANDOM_DATA@/0/
|
||||
/^HAVE_SYMLINK *=/s/@HAVE_SYMLINK@/1/
|
||||
/^HAVE_SYMLINKAT *=/s/@HAVE_SYMLINKAT@/0/
|
||||
/^HAVE_SYS_BITYPES_H *=/s/@HAVE_SYS_BITYPES_H@/0/
|
||||
/^HAVE_SYS_INTTYPES_H *=/s/@HAVE_SYS_INTTYPES_H@/0/
|
||||
/^HAVE_SYS_LOADAVG_H *=/s/@HAVE_SYS_LOADAVG_H@/0/
|
||||
/^HAVE_SYS_PARAM_H *=/s/@HAVE_SYS_PARAM_H@/1/
|
||||
/^HAVE_SYS_TYPES_H *=/s/@HAVE_SYS_TYPES_H@/1/
|
||||
/^HAVE_TIMEGM *=/s/@HAVE_TIMEGM@/0/
|
||||
/^HAVE_UNISTD_H *=/s/@HAVE_UNISTD_H@/1/
|
||||
/^HAVE_UNLINKAT *=/s/@HAVE_UNLINKAT@/0/
|
||||
/^HAVE_UNLOCKPT *=/s/@HAVE_UNLOCKPT@/0/
|
||||
/^HAVE_UNSIGNED_LONG_LONG_INT *=/s/@HAVE_UNSIGNED_LONG_LONG_INT@/1/
|
||||
/^HAVE_USLEEP *=/s/@HAVE_USLEEP@/1/
|
||||
/^HAVE_UTIMENSAT *=/s/@HAVE_UTIMENSAT@/0/
|
||||
/^HAVE_WCHAR_H *=/s/@HAVE_WCHAR_H@/1/
|
||||
/^HAVE_WCHAR_T *=/s/@HAVE_WCHAR_T@/1/
|
||||
/^HAVE_XSERVER *=/s/@HAVE_XSERVER@/0/
|
||||
/^HAVE__BOOL *=/s/@HAVE__BOOL@/1/
|
||||
|
@ -201,14 +245,20 @@ am__cd = cd
|
|||
/^LD_FIRSTFLAG *=/s/@[^@\n]*@//
|
||||
/^LIBS *=/s/@[^@\n]*@//
|
||||
/^MAKEINFO *=/s/@MAKEINFO@/makeinfo/
|
||||
# MKDIR_P lines are edited further below
|
||||
/^MKDIR_P *=/s/@MKDIR_P@//
|
||||
/^NEXT_AS_FIRST_DIRECTIVE_GETOPT_H *=/s/@[^@\n]*@/<getopt.h>/
|
||||
/^NEXT_AS_FIRST_DIRECTIVE_STDDEF_H *=/s/@[^@\n]*@//
|
||||
/^NEXT_AS_FIRST_DIRECTIVE_STDINT_H *=/s/@[^@\n]*@/<stdint.h>/
|
||||
/^NEXT_AS_FIRST_DIRECTIVE_STDLIB_H *=/s/@[^@\n]*@/<stdlib.h>/
|
||||
/^NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H *=/s!@[^@\n]*@!<sys/stat.h>!
|
||||
/^NEXT_AS_FIRST_DIRECTIVE_TIME_H *=/s/@[^@\n]*@/<time.h>/
|
||||
/^NEXT_AS_FIRST_DIRECTIVE_UNISTD_H *=/s/@[^@\n]*@/<unistd.h>/
|
||||
/^NEXT_GETOPT_H *=/s/@[^@\n]*@/<getopt.h>/
|
||||
/^NEXT_STDDEF_H *=/s/@[^@\n]*@//
|
||||
/^NEXT_STDINT_H *=/s/@[^@\n]*@/<stdint.h>/
|
||||
/^NEXT_STDLIB_H *=/s/@[^@\n]*@/<stdlib.h>/
|
||||
/^NEXT_SYS_STAT_H *=/s!@[^@\n]*@!<sys/stat.h>!
|
||||
/^NEXT_TIME_H *=/s/@[^@\n]*@/<time.h>/
|
||||
/^NEXT_UNISTD_H *=/s/@[^@\n]*@/<unistd.h>/
|
||||
/^OBJEXT *=/s/@[^@\n]*@/o/
|
||||
|
@ -223,6 +273,7 @@ am__cd = cd
|
|||
/^REPLACE_DUP *=/s/@REPLACE_DUP@/0/
|
||||
/^REPLACE_DUP2 *=/s/@REPLACE_DUP2@/0/
|
||||
/^REPLACE_FCHOWNAT *=/s/@REPLACE_FCHOWNAT@/0/
|
||||
/^REPLACE_FSTAT *=/s/@REPLACE_FSTAT@/0/
|
||||
/^REPLACE_GETCWD *=/s/@REPLACE_GETCWD@/0/
|
||||
/^REPLACE_GETDOMAINNAME *=/s/@REPLACE_GETDOMAINNAME@/0/
|
||||
/^REPLACE_GETGROUPS *=/s/@REPLACE_GETGROUPS@/0/
|
||||
|
@ -233,7 +284,12 @@ am__cd = cd
|
|||
/^REPLACE_LINKAT *=/s/@REPLACE_LINKAT@/0/
|
||||
/^REPLACE_LOCALTIME_R *=/s/@REPLACE_LOCALTIME_R@/0/
|
||||
/^REPLACE_LSEEK *=/s/@REPLACE_LSEEK@/0/
|
||||
/^REPLACE_LSTAT *=/s/@REPLACE_LSTAT@/0/
|
||||
/^REPLACE_MALLOC *=/s/@REPLACE_MALLOC@/0/
|
||||
/^REPLACE_MBTOWC *=/s/@REPLACE_MBTOWC@/0/
|
||||
/^REPLACE_MKDIR *=/s/@REPLACE_MKDIR@/0/
|
||||
/^REPLACE_MKFIFO *=/s/@REPLACE_MKFIFO@/0/
|
||||
/^REPLACE_MKNOD *=/s/@REPLACE_MKNOD@/0/
|
||||
/^REPLACE_MKSTEMP *=/s/@REPLACE_MKSTEMP@/0/
|
||||
/^REPLACE_MKTIME *=/s/@REPLACE_MKTIME@/0/
|
||||
/^REPLACE_NANOSLEEP *=/s/@REPLACE_NANOSLEEP@/0/
|
||||
|
@ -247,6 +303,7 @@ am__cd = cd
|
|||
/^REPLACE_RMDIR *=/s/@REPLACE_RMDIR@/0/
|
||||
/^REPLACE_SETENV *=/s/@REPLACE_SETENV@/0/
|
||||
/^REPLACE_SLEEP *=/s/@REPLACE_SLEEP@/0/
|
||||
/^REPLACE_STAT *=/s/@REPLACE_STAT@/0/
|
||||
/^REPLACE_STRTOD *=/s/@REPLACE_STRTOD@/0/
|
||||
/^REPLACE_SYMLINK *=/s/@REPLACE_SYMLINK@/0/
|
||||
/^REPLACE_TIMEGM *=/s/@REPLACE_TIMEGM@/0/
|
||||
|
@ -255,14 +312,21 @@ am__cd = cd
|
|||
/^REPLACE_UNLINKAT *=/s/@REPLACE_UNLINKAT@/0/
|
||||
/^REPLACE_UNSETENV *=/s/@REPLACE_UNSETENV@/0/
|
||||
/^REPLACE_USLEEP *=/s/@REPLACE_USLEEP@/0/
|
||||
/^REPLACE_UTIMENSAT *=/s/@REPLACE_UTIMENSAT@/0/
|
||||
/^REPLACE_WCTOMB *=/s/@REPLACE_WCTOMB@/0/
|
||||
/^REPLACE_WRITE *=/s/@REPLACE_WRITE@/0/
|
||||
/^SIG_ATOMIC_T_SUFFIX *=/s/@SIG_ATOMIC_T_SUFFIX@//
|
||||
/^SIZE_T_SUFFIX *=/s/@SIZE_T_SUFFIX@/u/
|
||||
/^STDBOOL_H *=/s/@[^@\n]*@//
|
||||
/^STDDEF_H *=/s/@[^@\n]*@//
|
||||
/^STDINT_H *=/s/@[^@\n]*@/stdint.h/
|
||||
/^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/
|
||||
/^TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/
|
||||
/^UNISTD_H_HAVE_WINSOCK2_H *=/s/@[^@\n]*@/0/
|
||||
/^UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS *=/s/@[^@\n]*@/0/
|
||||
/^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o strftime.o time_r.o getloadavg.o/
|
||||
/^WCHAR_T_SUFFIX *=/s/@WCHAR_T_SUFFIX@/h/
|
||||
/^WINT_T_SUFFIX *=/s/@WINT_T_SUFFIX@//
|
||||
/^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o strftime.o time_r.o getloadavg.o md5.o filemode.o/
|
||||
/^srcdir *=/s/@[^@\n]*@/./
|
||||
/^top_srcdir *=/s/@[^@\n]*@/../
|
||||
/^top_builddir *=/s/@[^@\n]*@/../
|
||||
|
@ -310,3 +374,4 @@ s/\.in-h\; *\\$/.in-h >> $@-t/
|
|||
/^unistd\.h:/,/^ [ ]*mv /{
|
||||
s/'\; \\ *$/' >> $@-t/
|
||||
}
|
||||
s!\$(MKDIR_P)[ ][ ]*sys!command.com /c "if not exist sys\stat.h md sys"!
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
2011-02-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* inc/unistd.h (readlink, symlink): Declare prototypes.
|
||||
|
||||
2011-02-26 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* config.nt (nlink_t): Define.
|
||||
|
||||
2011-02-21 Christoph Scholtes <cschol2112@gmail.com>
|
||||
|
||||
* inc/stdint.h: New file, to support compilation with tool chains
|
||||
|
|
|
@ -411,6 +411,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
|
||||
#define my_strftime nstrftime /* for strftime.c */
|
||||
|
||||
/* Define to the type of st_nlink in struct stat, or a supertype. */
|
||||
#define nlink_t short
|
||||
|
||||
#ifndef WINDOWSNT
|
||||
/* Some of the files of Emacs which are intended for use with other
|
||||
programs assume that if you have a config.h file, you must declare
|
||||
|
|
|
@ -1,2 +1,10 @@
|
|||
/* Fake unistd.h: config.h already provides most of the relevant things. */
|
||||
|
||||
#ifndef _UNISTD_H
|
||||
#define _UNISTD_H
|
||||
|
||||
extern ssize_t readlink (const char *, char *, size_t);
|
||||
extern int symlink (char const *, char const *);
|
||||
|
||||
#endif /* _UNISTD_H */
|
||||
|
||||
|
|
|
@ -1,3 +1,55 @@
|
|||
2011-02-27 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* frame.c (store_frame_param): Don't store value directly in
|
||||
buffer_list and buried_buffer_list; copy the list and remove dead
|
||||
buffers (Bug#7898).
|
||||
|
||||
2011-02-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* msdos.c (readlink) [DJGPP < 2.04]: New stub function.
|
||||
|
||||
* msdos.h: (readlink) [DJGPP < 2.04]: Declare prototype.
|
||||
|
||||
* w32.c (symlink, readlink): New stub functions.
|
||||
|
||||
2011-02-27 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* scroll.c (CHECK_BOUNDS): #define only if GLYPH_DEBUG.
|
||||
This avoids a gcc warning in some configurations.
|
||||
|
||||
* frame.c (x_set_screen_gamma): Rename local to avoid shadowing.
|
||||
|
||||
* frame.h: Avoid gcc -Wmissing-prototypes diagnostics.
|
||||
(set_menu_bar_lines, x_get_resource_string): New decls.
|
||||
* msdos.c (set_menu_bar_lines): Omit decl.
|
||||
|
||||
* dispextern.h (struct glyph): Make u.img_id int, not unsigned.
|
||||
It's always given int values and used as an int. This suppresses
|
||||
a gcc "comparison of unsigned expression >= 0" warning in some
|
||||
configurations.
|
||||
|
||||
* dispnew.c: Rename locals to avoid shadowing.
|
||||
(update_text_area, scrolling_window, update_frame_1): Rename locals.
|
||||
|
||||
2011-02-26 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* dispnew.c: Fix problems uncovered by gcc -Wstrict-prototypes.
|
||||
(copy_glyph_row_contents): Remove; not used.
|
||||
(frame_row_to_window, check_current_matrix_flags):
|
||||
(window_change_signal): Now static, since they're not used elsewhere.
|
||||
(check_current_matrix_flags): Surround with "#if 0", since its
|
||||
only use is in a comment. Maybe both the comment and the "#if 0"
|
||||
stuff should be removed?
|
||||
|
||||
* dispnew.c: Fix problem uncovered by gcc -Wunused-variable.
|
||||
(adjust_frame_glyphs_for_window_redisplay): Make 'w' local to the
|
||||
contexts that actually need it.
|
||||
|
||||
2011-02-26 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* s/msdos.h (HAVE_LSTAT): Define for DJGPP >= 2.04.
|
||||
(lstat): Define for DJGPP < 2.04.
|
||||
|
||||
2011-02-25 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Simplify symlink portability workaround.
|
||||
|
|
|
@ -20002,7 +20002,7 @@
|
|||
|
||||
* w32reg.c (w32_get_rdb_resource): New function.
|
||||
(x_get_string_resource): Use it, so resources passed with -xrm
|
||||
supercede the ones in the registry.
|
||||
supersede the ones in the registry.
|
||||
|
||||
2003-03-04 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
|
@ -25474,7 +25474,7 @@
|
|||
recursive call unless that arg is non-nil.
|
||||
(where_is_internal): New argument no_remap. Callers changed.
|
||||
Call recursively to find original key bindings for a remapped
|
||||
comand unless that arg is non-nil.
|
||||
command unless that arg is non-nil.
|
||||
(Fwhere_is_internal): New optional argument NO-REMAP.
|
||||
Doc updated. Callers changed. Pass arg to where_is_internal.
|
||||
|
||||
|
|
|
@ -7023,7 +7023,7 @@
|
|||
* fileio.c: There are two versions of Fexpand_file_name defined
|
||||
here; the latter is inside a `#if 0' clause. Change its DEFUN to
|
||||
a DEAFUN, so that its docstring doesn't make it into the DOC file
|
||||
and supercede the real docstring.
|
||||
and supersede the real docstring.
|
||||
|
||||
* callint.c (Fcall_interactively): For the 'K' interactive spec,
|
||||
set varies[i] to -1, indicating that the mouse click should be
|
||||
|
@ -11142,7 +11142,7 @@
|
|||
wait_reading_process_input, instead of just the first two.
|
||||
|
||||
* process.c (wait_reading_process_input): Remove support for
|
||||
only waiting for mouse input, since that has been superceded.
|
||||
only waiting for mouse input, since that has been superseded.
|
||||
This removes X dependencies from process.c, and eliminates some
|
||||
references to code that should only exist when using X10.
|
||||
|
||||
|
@ -11450,7 +11450,7 @@
|
|||
|
||||
* minibuf.c (temp_echo_area_glyphs): Clear echo_area_glyphs and
|
||||
previous_echo_glyphs, so the message we're displaying will
|
||||
supercede any existing message.
|
||||
supersede any existing message.
|
||||
|
||||
* keyboard.c: Removed external declaration of echo_area_glyphs,
|
||||
since it's declared in window.h.
|
||||
|
|
|
@ -761,7 +761,7 @@ str_as_unibyte (unsigned char *str, EMACS_INT bytes)
|
|||
corresponding byte and store in DST. CHARS is the number of
|
||||
characters in SRC. The value is the number of bytes stored in DST.
|
||||
Usually, the value is the same as CHARS, but is less than it if SRC
|
||||
contains a non-ASCII, non-eight-bit characater. If ACCEPT_LATIN_1
|
||||
contains a non-ASCII, non-eight-bit character. If ACCEPT_LATIN_1
|
||||
is nonzero, a Latin-1 character is accepted and converted to a byte
|
||||
of that character code.
|
||||
Note: Currently the arg ACCEPT_LATIN_1 is not used. */
|
||||
|
|
|
@ -937,7 +937,11 @@ so last access time will always be midnight of that day. */)
|
|||
Lisp_Object dirname;
|
||||
struct stat sdir;
|
||||
#endif /* BSD4_2 */
|
||||
char modes[12];
|
||||
|
||||
/* An array to hold the mode string generated by filemodestring,
|
||||
including its terminating space and null byte. */
|
||||
char modes[sizeof "-rwxr-xr-x "];
|
||||
|
||||
Lisp_Object handler;
|
||||
struct gcpro gcpro1;
|
||||
char *uname = NULL, *gname = NULL;
|
||||
|
|
|
@ -431,7 +431,7 @@ struct glyph
|
|||
} cmp;
|
||||
|
||||
/* Image ID for image glyphs (type == IMAGE_GLYPH). */
|
||||
unsigned img_id;
|
||||
int img_id;
|
||||
|
||||
/* Sub-structure for type == STRETCH_GLYPH. */
|
||||
struct
|
||||
|
|
126
src/dispnew.c
126
src/dispnew.c
|
@ -1129,32 +1129,6 @@ copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from)
|
|||
}
|
||||
|
||||
|
||||
/* Copy contents of glyph row FROM to glyph row TO. Glyph pointers in
|
||||
TO and FROM are left unchanged. Glyph contents are copied from the
|
||||
glyph memory of FROM to the glyph memory of TO. Increment buffer
|
||||
positions in row TO by DELTA/ DELTA_BYTES. */
|
||||
|
||||
void
|
||||
copy_glyph_row_contents (struct glyph_row *to, struct glyph_row *from,
|
||||
EMACS_INT delta, EMACS_INT delta_bytes)
|
||||
{
|
||||
int area;
|
||||
|
||||
/* This is like a structure assignment TO = FROM, except that
|
||||
glyph pointers in the rows are left unchanged. */
|
||||
copy_row_except_pointers (to, from);
|
||||
|
||||
/* Copy glyphs from FROM to TO. */
|
||||
for (area = 0; area < LAST_AREA; ++area)
|
||||
if (from->used[area])
|
||||
memcpy (to->glyphs[area], from->glyphs[area],
|
||||
from->used[area] * sizeof (struct glyph));
|
||||
|
||||
/* Increment buffer positions in TO by DELTA. */
|
||||
increment_row_positions (to, delta, delta_bytes);
|
||||
}
|
||||
|
||||
|
||||
/* Assign glyph row FROM to glyph row TO. This works like a structure
|
||||
assignment TO = FROM, except that glyph pointers are not copied but
|
||||
exchanged between TO and FROM. Pointers must be exchanged to avoid
|
||||
|
@ -2223,8 +2197,6 @@ adjust_frame_glyphs_for_frame_redisplay (struct frame *f)
|
|||
static void
|
||||
adjust_frame_glyphs_for_window_redisplay (struct frame *f)
|
||||
{
|
||||
struct window *w;
|
||||
|
||||
xassert (FRAME_WINDOW_P (f) && FRAME_LIVE_P (f));
|
||||
|
||||
/* Allocate/reallocate window matrices. */
|
||||
|
@ -2236,6 +2208,7 @@ adjust_frame_glyphs_for_window_redisplay (struct frame *f)
|
|||
#if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
|
||||
{
|
||||
/* Allocate a dummy window if not already done. */
|
||||
struct window *w;
|
||||
if (NILP (f->menu_bar_window))
|
||||
{
|
||||
f->menu_bar_window = make_window ();
|
||||
|
@ -2258,23 +2231,26 @@ adjust_frame_glyphs_for_window_redisplay (struct frame *f)
|
|||
#endif /* HAVE_X_WINDOWS */
|
||||
|
||||
#ifndef USE_GTK
|
||||
/* Allocate/ reallocate matrices of the tool bar window. If we
|
||||
don't have a tool bar window yet, make one. */
|
||||
if (NILP (f->tool_bar_window))
|
||||
{
|
||||
f->tool_bar_window = make_window ();
|
||||
{
|
||||
/* Allocate/ reallocate matrices of the tool bar window. If we
|
||||
don't have a tool bar window yet, make one. */
|
||||
struct window *w;
|
||||
if (NILP (f->tool_bar_window))
|
||||
{
|
||||
f->tool_bar_window = make_window ();
|
||||
w = XWINDOW (f->tool_bar_window);
|
||||
XSETFRAME (w->frame, f);
|
||||
w->pseudo_window_p = 1;
|
||||
}
|
||||
else
|
||||
w = XWINDOW (f->tool_bar_window);
|
||||
XSETFRAME (w->frame, f);
|
||||
w->pseudo_window_p = 1;
|
||||
}
|
||||
else
|
||||
w = XWINDOW (f->tool_bar_window);
|
||||
|
||||
XSETFASTINT (w->top_line, FRAME_MENU_BAR_LINES (f));
|
||||
XSETFASTINT (w->left_col, 0);
|
||||
XSETFASTINT (w->total_lines, FRAME_TOOL_BAR_LINES (f));
|
||||
XSETFASTINT (w->total_cols, FRAME_TOTAL_COLS (f));
|
||||
allocate_matrices_for_window_redisplay (w);
|
||||
XSETFASTINT (w->top_line, FRAME_MENU_BAR_LINES (f));
|
||||
XSETFASTINT (w->left_col, 0);
|
||||
XSETFASTINT (w->total_lines, FRAME_TOOL_BAR_LINES (f));
|
||||
XSETFASTINT (w->total_cols, FRAME_TOTAL_COLS (f));
|
||||
allocate_matrices_for_window_redisplay (w);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -2924,7 +2900,7 @@ sync_window_with_frame_matrix_rows (struct window *w)
|
|||
/* Return the window in the window tree rooted in W containing frame
|
||||
row ROW. Value is null if none is found. */
|
||||
|
||||
struct window *
|
||||
static struct window *
|
||||
frame_row_to_window (struct window *w, int row)
|
||||
{
|
||||
struct window *found = NULL;
|
||||
|
@ -3562,12 +3538,12 @@ redraw_overlapping_rows (struct window *w, int yb)
|
|||
#endif /* HAVE_WINDOW_SYSTEM */
|
||||
|
||||
|
||||
#ifdef GLYPH_DEBUG
|
||||
#if defined GLYPH_DEBUG && 0
|
||||
|
||||
/* Check that no row in the current matrix of window W is enabled
|
||||
which is below what's displayed in the window. */
|
||||
|
||||
void
|
||||
static void
|
||||
check_current_matrix_flags (struct window *w)
|
||||
{
|
||||
int last_seen_p = 0;
|
||||
|
@ -4014,7 +3990,7 @@ update_text_area (struct window *w, int vpos)
|
|||
{
|
||||
/* Otherwise clear to the end of the old row. Everything
|
||||
after that position should be clear already. */
|
||||
int x;
|
||||
int xlim;
|
||||
|
||||
if (i >= desired_row->used[TEXT_AREA])
|
||||
rif->cursor_to (vpos, i, desired_row->y,
|
||||
|
@ -4031,11 +4007,11 @@ update_text_area (struct window *w, int vpos)
|
|||
: (w->phys_cursor.hpos >= desired_row->used[TEXT_AREA])))
|
||||
{
|
||||
w->phys_cursor_on_p = 0;
|
||||
x = -1;
|
||||
xlim = -1;
|
||||
}
|
||||
else
|
||||
x = current_row->pixel_width;
|
||||
rif->clear_end_of_line (x);
|
||||
xlim = current_row->pixel_width;
|
||||
rif->clear_end_of_line (xlim);
|
||||
changed_p = 1;
|
||||
}
|
||||
}
|
||||
|
@ -4491,7 +4467,7 @@ scrolling_window (struct window *w, int header_line_p)
|
|||
&& old_lines[i]->old_uses == 1
|
||||
&& old_lines[i]->new_uses == 1)
|
||||
{
|
||||
int j, k;
|
||||
int p, q;
|
||||
int new_line = old_lines[i]->new_line_number;
|
||||
struct run *run = run_pool + run_idx++;
|
||||
|
||||
|
@ -4504,33 +4480,33 @@ scrolling_window (struct window *w, int header_line_p)
|
|||
run->height = MATRIX_ROW (current_matrix, i)->height;
|
||||
|
||||
/* Extend backward. */
|
||||
j = i - 1;
|
||||
k = new_line - 1;
|
||||
while (j > first_old
|
||||
&& k > first_new
|
||||
&& old_lines[j] == new_lines[k])
|
||||
p = i - 1;
|
||||
q = new_line - 1;
|
||||
while (p > first_old
|
||||
&& q > first_new
|
||||
&& old_lines[p] == new_lines[q])
|
||||
{
|
||||
int h = MATRIX_ROW (current_matrix, j)->height;
|
||||
int h = MATRIX_ROW (current_matrix, p)->height;
|
||||
--run->current_vpos;
|
||||
--run->desired_vpos;
|
||||
++run->nrows;
|
||||
run->height += h;
|
||||
run->desired_y -= h;
|
||||
run->current_y -= h;
|
||||
--j, --k;
|
||||
--p, --q;
|
||||
}
|
||||
|
||||
/* Extend forward. */
|
||||
j = i + 1;
|
||||
k = new_line + 1;
|
||||
while (j < last_old
|
||||
&& k < last_new
|
||||
&& old_lines[j] == new_lines[k])
|
||||
p = i + 1;
|
||||
q = new_line + 1;
|
||||
while (p < last_old
|
||||
&& q < last_new
|
||||
&& old_lines[p] == new_lines[q])
|
||||
{
|
||||
int h = MATRIX_ROW (current_matrix, j)->height;
|
||||
int h = MATRIX_ROW (current_matrix, p)->height;
|
||||
++run->nrows;
|
||||
run->height += h;
|
||||
++j, ++k;
|
||||
++p, ++q;
|
||||
}
|
||||
|
||||
/* Insert run into list of all runs. Order runs by copied
|
||||
|
@ -4538,11 +4514,11 @@ scrolling_window (struct window *w, int header_line_p)
|
|||
be copied because they are already in place. This is done
|
||||
because we can avoid calling update_window_line in this
|
||||
case. */
|
||||
for (j = 0; j < nruns && runs[j]->height > run->height; ++j)
|
||||
for (p = 0; p < nruns && runs[p]->height > run->height; ++p)
|
||||
;
|
||||
for (k = nruns; k > j; --k)
|
||||
runs[k] = runs[k - 1];
|
||||
runs[j] = run;
|
||||
for (q = nruns; q > p; --q)
|
||||
runs[q] = runs[q - 1];
|
||||
runs[p] = run;
|
||||
++nruns;
|
||||
|
||||
i += run->nrows;
|
||||
|
@ -4639,7 +4615,7 @@ update_frame_1 (struct frame *f, int force_p, int inhibit_id_p)
|
|||
struct glyph_matrix *current_matrix = f->current_matrix;
|
||||
struct glyph_matrix *desired_matrix = f->desired_matrix;
|
||||
int i;
|
||||
int pause;
|
||||
int pause_p;
|
||||
int preempt_count = baud_rate / 2400 + 1;
|
||||
|
||||
xassert (current_matrix && desired_matrix);
|
||||
|
@ -4653,7 +4629,7 @@ update_frame_1 (struct frame *f, int force_p, int inhibit_id_p)
|
|||
#if !PERIODIC_PREEMPTION_CHECKING
|
||||
if (!force_p && detect_input_pending_ignore_squeezables ())
|
||||
{
|
||||
pause = 1;
|
||||
pause_p = 1;
|
||||
goto do_pause;
|
||||
}
|
||||
#endif
|
||||
|
@ -4733,10 +4709,10 @@ update_frame_1 (struct frame *f, int force_p, int inhibit_id_p)
|
|||
}
|
||||
}
|
||||
|
||||
pause = (i < FRAME_LINES (f) - 1) ? i : 0;
|
||||
pause_p = (i < FRAME_LINES (f) - 1) ? i : 0;
|
||||
|
||||
/* Now just clean up termcap drivers and set cursor, etc. */
|
||||
if (!pause)
|
||||
if (!pause_p)
|
||||
{
|
||||
if ((cursor_in_echo_area
|
||||
/* If we are showing a message instead of the mini-buffer,
|
||||
|
@ -4837,7 +4813,7 @@ update_frame_1 (struct frame *f, int force_p, int inhibit_id_p)
|
|||
#endif
|
||||
|
||||
clear_desired_matrices (f);
|
||||
return pause;
|
||||
return pause_p;
|
||||
}
|
||||
|
||||
|
||||
|
@ -5594,7 +5570,7 @@ marginal_area_string (struct window *w, enum window_part part,
|
|||
|
||||
#ifdef SIGWINCH
|
||||
|
||||
SIGTYPE
|
||||
static SIGTYPE
|
||||
window_change_signal (int signalnum) /* If we don't have an argument, */
|
||||
/* some compilers complain in signal calls. */
|
||||
{
|
||||
|
|
|
@ -3523,7 +3523,7 @@ usage: (format STRING &rest OBJECTS) */)
|
|||
int maybe_combine_byte;
|
||||
char *this_format;
|
||||
/* Precision for each spec, or -1, a flag value meaning no precision
|
||||
was given in that spec. Element 0, corresonding to the format
|
||||
was given in that spec. Element 0, corresponding to the format
|
||||
string itself, will not be used. Element NARGS, corresponding to
|
||||
no argument, *will* be assigned to in the case that a `%' and `.'
|
||||
occur after the final format specifier. */
|
||||
|
|
24
src/frame.c
24
src/frame.c
|
@ -2208,15 +2208,23 @@ store_frame_param (struct frame *f, Lisp_Object prop, Lisp_Object val)
|
|||
register Lisp_Object old_alist_elt;
|
||||
|
||||
/* The buffer-list parameters are stored in a special place and not
|
||||
in the alist. */
|
||||
in the alist. All buffers must be live. */
|
||||
if (EQ (prop, Qbuffer_list))
|
||||
{
|
||||
f->buffer_list = val;
|
||||
Lisp_Object list = Qnil;
|
||||
for (; CONSP (val); val = XCDR (val))
|
||||
if (!NILP (Fbuffer_live_p (XCAR (val))))
|
||||
list = Fcons (XCAR (val), list);
|
||||
f->buffer_list = Fnreverse (list);
|
||||
return;
|
||||
}
|
||||
if (EQ (prop, Qburied_buffer_list))
|
||||
{
|
||||
f->buried_buffer_list = val;
|
||||
Lisp_Object list = Qnil;
|
||||
for (; CONSP (val); val = XCDR (val))
|
||||
if (!NILP (Fbuffer_live_p (XCAR (val))))
|
||||
list = Fcons (XCAR (val), list);
|
||||
f->buried_buffer_list = Fnreverse (list);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -3275,12 +3283,12 @@ x_set_screen_gamma (struct frame *f, Lisp_Object new_value, Lisp_Object old_valu
|
|||
bgcolor = Fassq (Qbackground_color, f->param_alist);
|
||||
if (CONSP (bgcolor) && (bgcolor = XCDR (bgcolor), STRINGP (bgcolor)))
|
||||
{
|
||||
Lisp_Object index = Fget (Qbackground_color, Qx_frame_parameter);
|
||||
if (NATNUMP (index)
|
||||
&& (XFASTINT (index)
|
||||
Lisp_Object parm_index = Fget (Qbackground_color, Qx_frame_parameter);
|
||||
if (NATNUMP (parm_index)
|
||||
&& (XFASTINT (parm_index)
|
||||
< sizeof (frame_parms)/sizeof (frame_parms[0]))
|
||||
&& FRAME_RIF (f)->frame_parm_handlers[XFASTINT (index)])
|
||||
(*FRAME_RIF (f)->frame_parm_handlers[XFASTINT (index)])
|
||||
&& FRAME_RIF (f)->frame_parm_handlers[XFASTINT (parm_index)])
|
||||
(*FRAME_RIF (f)->frame_parm_handlers[XFASTINT (parm_index)])
|
||||
(f, bgcolor, Qnil);
|
||||
}
|
||||
|
||||
|
|
|
@ -841,6 +841,7 @@ extern Lisp_Object Qnoelisp;
|
|||
|
||||
extern struct frame *last_nonminibuf_frame;
|
||||
|
||||
extern void set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
|
||||
extern struct frame *make_initial_frame (void);
|
||||
extern struct frame *make_terminal_frame (struct terminal *);
|
||||
extern struct frame *make_frame (int);
|
||||
|
@ -1131,17 +1132,20 @@ extern int x_figure_window_size (struct frame *, Lisp_Object, int);
|
|||
extern void x_set_alpha (struct frame *, Lisp_Object, Lisp_Object);
|
||||
|
||||
extern void validate_x_resource_name (void);
|
||||
|
||||
|
||||
extern Lisp_Object display_x_get_resource (Display_Info *,
|
||||
Lisp_Object attribute,
|
||||
Lisp_Object class,
|
||||
Lisp_Object component,
|
||||
Lisp_Object subclass);
|
||||
|
||||
#if defined HAVE_X_WINDOWS && !defined USE_X_TOOLKIT
|
||||
extern char *x_get_resource_string (const char *, const char *);
|
||||
#endif
|
||||
|
||||
/* In xmenu.c */
|
||||
extern void set_frame_menubar (FRAME_PTR, int, int);
|
||||
|
||||
#endif /* HAVE_WINDOW_SYSTEM */
|
||||
|
||||
#endif /* not EMACS_FRAME_H */
|
||||
|
||||
|
|
|
@ -2756,7 +2756,7 @@ remapped command in the returned list. */)
|
|||
&& !NILP (firstonly)
|
||||
&& !NILP (tem = Fget (definition, QCadvertised_binding)))
|
||||
{
|
||||
/* We have a list of advertized bindings. */
|
||||
/* We have a list of advertised bindings. */
|
||||
while (CONSP (tem))
|
||||
if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil, 0), definition))
|
||||
return XCAR (tem);
|
||||
|
|
15
src/msdos.c
15
src/msdos.c
|
@ -1389,8 +1389,6 @@ IT_delete_glyphs (struct frame *f, int n)
|
|||
void
|
||||
x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
|
||||
{
|
||||
extern void set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
|
||||
|
||||
set_menu_bar_lines (f, value, oldval);
|
||||
}
|
||||
|
||||
|
@ -3922,6 +3920,18 @@ croak (char *badfunc)
|
|||
*/
|
||||
int setpgrp (void) {return 0; }
|
||||
int setpriority (int x, int y, int z) { return 0; }
|
||||
|
||||
#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4
|
||||
ssize_t
|
||||
readlink (const char *name, char *dummy1, size_t dummy2)
|
||||
{
|
||||
/* `access' is much faster than `stat' on MS-DOS. */
|
||||
if (access (name, F_OK) == 0)
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 2
|
||||
|
||||
|
@ -4236,4 +4246,3 @@ This variable is used only by MS-DOS terminals. */);
|
|||
}
|
||||
|
||||
#endif /* MSDOS */
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue