Merge from mainline.

This commit is contained in:
Paul Eggert 2011-03-01 17:52:03 -08:00
commit ba46f4d85a
106 changed files with 1489 additions and 813 deletions

View file

@ -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)

View file

@ -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":

View file

@ -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.

View file

@ -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...

View file

@ -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.

View file

@ -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.

View 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

View file

@ -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

View file

@ -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.

View file

@ -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}

View file

@ -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

View file

@ -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

View file

@ -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},

View file

@ -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

View file

@ -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),

View file

@ -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.

View file

@ -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.

View file

@ -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>

View file

@ -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
"をんな 女"
""
"あ 嗚 明 安 襾 哇 娃 椏 亞 唖 痾 婀 阿 彼 吾 亜"
"あーくとう アーク灯"

View file

@ -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

View file

@ -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,

View file

@ -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.

View file

@ -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

View file

@ -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));
}

View file

@ -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++)
{

View file

@ -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]);

View file

@ -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 ());
}

View file

@ -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;

View file

@ -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'.

View 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

View file

@ -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.

View file

@ -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.

View 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

View file

@ -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

View file

@ -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)))

View file

@ -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)

View file

@ -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))

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.")

View file

@ -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."

View file

@ -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

View file

@ -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'.")

View file

@ -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" "\

View file

@ -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)

View file

@ -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.

View file

@ -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)"

View file

@ -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 "&amp;".
@ -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)

View 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)

View file

@ -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))
))

View file

@ -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>

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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)))))

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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" "\

View file

@ -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)

View file

@ -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.")

View file

@ -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)))

View file

@ -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):

View file

@ -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

View file

@ -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))))

View file

@ -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

View file

@ -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)

View file

@ -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
View 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

View file

@ -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

View file

@ -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.

View 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

View file

@ -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\

View file

@ -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"!

View file

@ -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

View file

@ -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

View file

@ -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 */

View file

@ -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.

View file

@ -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.

View file

@ -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.

View file

@ -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. */

View file

@ -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;

View file

@ -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

View file

@ -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. */
{

View file

@ -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. */

View file

@ -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);
}

View file

@ -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 */

View file

@ -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);

View file

@ -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