diff options
| author | Paul Eggert | 2011-03-01 17:52:03 -0800 |
|---|---|---|
| committer | Paul Eggert | 2011-03-01 17:52:03 -0800 |
| commit | ba46f4d85a6938273f52a8cdf7e09d9afee61d7f (patch) | |
| tree | 606ec46b703532d463ccddf287f0053430eb1f4a | |
| parent | d9d0d182da35312ed0d7a9859b9c6a03994d86d8 (diff) | |
| parent | 0dc3e4109e0c41bbf5fdcae0ff1156162719693e (diff) | |
| download | emacs-ba46f4d85a6938273f52a8cdf7e09d9afee61d7f.tar.gz emacs-ba46f4d85a6938273f52a8cdf7e09d9afee61d7f.zip | |
Merge from mainline.
106 files changed, 1493 insertions, 817 deletions
| @@ -1,3 +1,10 @@ | |||
| 1 | 2011-02-26 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * .bzrignore: Ignore new lib/*.in-h files. | ||
| 4 | |||
| 5 | * config.bat: Rename stdint.in.h and sys_stat.in.h. Call | ||
| 6 | depfiles.bat even if lib/deps already exist. | ||
| 7 | |||
| 1 | 2011-02-25 Paul Eggert <eggert@cs.ucla.edu> | 8 | 2011-02-25 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 9 | ||
| 3 | Simplify symlink portability workaround. | 10 | Simplify symlink portability workaround. |
| @@ -7,7 +14,8 @@ | |||
| 7 | * lib/dosname.h: New file, regenerated from gnulib. | 14 | * lib/dosname.h: New file, regenerated from gnulib. |
| 8 | 15 | ||
| 9 | * configure, lib/Makefile.in, lib/getopt_int.h, lib/gnulib.mk: | 16 | * configure, lib/Makefile.in, lib/getopt_int.h, lib/gnulib.mk: |
| 10 | * lib/stdlib.in.h, m4/stdlib_h.m4: Regenerate. | 17 | * lib/stdlib.in.h, m4/stdlib_h.m4: Regenerate to incorporate |
| 18 | recent changes to configure.in and to gnulib. | ||
| 11 | 19 | ||
| 12 | 2011-02-24 Glenn Morris <rgm@gnu.org> | 20 | 2011-02-24 Glenn Morris <rgm@gnu.org> |
| 13 | 21 | ||
| @@ -7643,7 +7651,7 @@ | |||
| 7643 | 7651 | ||
| 7644 | * Makefile.in (lib-src/Makefile, src/Makefile, oldXMenu/Makefile): | 7652 | * Makefile.in (lib-src/Makefile, src/Makefile, oldXMenu/Makefile): |
| 7645 | Depend on vpath.sed. | 7653 | Depend on vpath.sed. |
| 7646 | Replace sed comand for VPATH with @vpath_sed@. | 7654 | Replace sed command for VPATH with @vpath_sed@. |
| 7647 | 7655 | ||
| 7648 | * configure.in: Substitute variable `vpath_sed'. | 7656 | * configure.in: Substitute variable `vpath_sed'. |
| 7649 | If not in $srcdir and $srcdir is configured, | 7657 | If not in $srcdir and $srcdir is configured, |
| @@ -8984,7 +8992,7 @@ | |||
| 8984 | there, and then copy it in, to make sure we get a real file. | 8992 | there, and then copy it in, to make sure we get a real file. |
| 8985 | 8993 | ||
| 8986 | * make-dist: Don't try to distribute *.defns files any more. The | 8994 | * make-dist: Don't try to distribute *.defns files any more. The |
| 8987 | only such file was for simula.el, which has been superceded by a | 8995 | only such file was for simula.el, which has been superseded by a |
| 8988 | version which doesn't have a separate .defns file. | 8996 | version which doesn't have a separate .defns file. |
| 8989 | 8997 | ||
| 8990 | 1992-05-28 Ken Raeburn (Raeburn@Cygnus.COM) | 8998 | 1992-05-28 Ken Raeburn (Raeburn@Cygnus.COM) |
diff --git a/INSTALL.BZR b/INSTALL.BZR index c5e1e62a32d..710a73c7048 100644 --- a/INSTALL.BZR +++ b/INSTALL.BZR | |||
| @@ -9,6 +9,10 @@ before bootstrapping: | |||
| 9 | 9 | ||
| 10 | $ ./configure | 10 | $ ./configure |
| 11 | 11 | ||
| 12 | (Normally there is no need to run `autoconf' etc. If you do need it, | ||
| 13 | the relevant command is `autoreconf -I m4'. Be aware that this will | ||
| 14 | likely lead to conflicts next time you update from Bazaar.) | ||
| 15 | |||
| 12 | Some of the files that are included in the Emacs tarball, such as | 16 | Some of the files that are included in the Emacs tarball, such as |
| 13 | byte-compiled Lisp files, are not stored in Bazaar. Therefore, to | 17 | byte-compiled Lisp files, are not stored in Bazaar. Therefore, to |
| 14 | build from Bazaar you must run "make bootstrap" instead of just "make": | 18 | build from Bazaar you must run "make bootstrap" instead of just "make": |
diff --git a/admin/notes/bzr b/admin/notes/bzr index 14a5c92a454..db9e6e0dcda 100644 --- a/admin/notes/bzr +++ b/admin/notes/bzr | |||
| @@ -81,6 +81,8 @@ this in the same commit as making new entries. Using this plugin | |||
| 81 | will merge ALL changed entries (including older ones) to the top of | 81 | will merge ALL changed entries (including older ones) to the top of |
| 82 | the destination file. | 82 | the destination file. |
| 83 | 83 | ||
| 84 | Maybe the default Emacs behavior without this plugin is better, I dunno. | ||
| 85 | |||
| 84 | 1) Get clean, up-to-date copies of the emacs-23 and trunk branches. | 86 | 1) Get clean, up-to-date copies of the emacs-23 and trunk branches. |
| 85 | Check for any uncommitted changes with bzr status. | 87 | Check for any uncommitted changes with bzr status. |
| 86 | 88 | ||
diff --git a/config.bat b/config.bat index 7ebfc74b801..4288f6537e6 100644 --- a/config.bat +++ b/config.bat | |||
| @@ -280,17 +280,20 @@ cd lib | |||
| 280 | Rem Rename files like djtar on plain DOS filesystem would. | 280 | Rem Rename files like djtar on plain DOS filesystem would. |
| 281 | If Exist c++defs.h update c++defs.h cxxdefs.h | 281 | If Exist c++defs.h update c++defs.h cxxdefs.h |
| 282 | If Exist getopt.in.h update getopt.in.h getopt.in-h | 282 | If Exist getopt.in.h update getopt.in.h getopt.in-h |
| 283 | If Exist stddef.in.h update stddef.in.h stddef.in-h | ||
| 284 | If Exist stdbool.in.h update stdbool.in.h stdbool.in-h | 283 | If Exist stdbool.in.h update stdbool.in.h stdbool.in-h |
| 284 | If Exist stddef.in.h update stddef.in.h stddef.in-h | ||
| 285 | If Exist stdint.in.h update stdint.in.h stdint.in-h | ||
| 285 | If Exist stdlib.in.h update stdlib.in.h stdlib.in-h | 286 | If Exist stdlib.in.h update stdlib.in.h stdlib.in-h |
| 287 | If Exist sys_stat.in.h update sys_stat.in.h sys_stat.in-h | ||
| 286 | If Exist time.in.h update time.in.h time.in-h | 288 | If Exist time.in.h update time.in.h time.in-h |
| 287 | If Exist unistd.in.h update unistd.in.h unistd.in-h | 289 | If Exist unistd.in.h update unistd.in.h unistd.in-h |
| 288 | sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp | 290 | sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp |
| 289 | sed -f ../msdos/sedlibmk.inp < makefile.tmp > Makefile | 291 | sed -f ../msdos/sedlibmk.inp < makefile.tmp > Makefile |
| 290 | rm -f makefile.tmp | 292 | rm -f makefile.tmp |
| 293 | Rem Create .Po files for new files in lib/ | ||
| 291 | If Not Exist deps\stamp mkdir deps | 294 | If Not Exist deps\stamp mkdir deps |
| 292 | If Not Exist deps\stamp for %%f in (*.c) do @call ..\msdos\depfiles.bat %%f | 295 | for %%f in (*.c) do @call ..\msdos\depfiles.bat %%f |
| 293 | If Not Exist deps\stamp echo deps-stamp > deps\stamp | 296 | echo deps-stamp > deps\stamp |
| 294 | cd .. | 297 | cd .. |
| 295 | rem ---------------------------------------------------------------------- | 298 | rem ---------------------------------------------------------------------- |
| 296 | Echo Configuring the lisp directory... | 299 | Echo Configuring the lisp directory... |
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index f113a7987c1..8438fa4952c 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,20 @@ | |||
| 1 | 2011-03-01 Christoph Scholtes <cschol2112@googlemail.com> | ||
| 2 | |||
| 3 | * maintaining.texi (Format of ChangeLog): Add reference to | ||
| 4 | add-log-full-name. | ||
| 5 | (Change Log Commands): Add documentation for combining multiple | ||
| 6 | symbols in one change. | ||
| 7 | |||
| 8 | 2011-03-01 Glenn Morris <rgm@gnu.org> | ||
| 9 | |||
| 10 | * custom.texi (Directory Variables): | ||
| 11 | Give an example of excluding subdirectories. | ||
| 12 | |||
| 13 | 2011-02-28 Eli Zaretskii <eliz@gnu.org> | ||
| 14 | |||
| 15 | * search.texi (Regexp Search): Move index entries about regexps to the | ||
| 16 | "Regexps" node. Add index entries for regexp search. (Bug#8096) | ||
| 17 | |||
| 1 | 2011-02-19 Glenn Morris <rgm@gnu.org> | 18 | 2011-02-19 Glenn Morris <rgm@gnu.org> |
| 2 | 19 | ||
| 3 | * dired.texi (Dired): Dired-X version number was dropped. | 20 | * dired.texi (Dired): Dired-X version number was dropped. |
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index dfd55b13f18..9304e8bef08 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi | |||
| @@ -1331,7 +1331,8 @@ corresponding alist applies to all the files in that subdirectory. | |||
| 1331 | (tab-width . 4) | 1331 | (tab-width . 4) |
| 1332 | (fill-column . 80))) | 1332 | (fill-column . 80))) |
| 1333 | (c-mode . ((c-file-style . "BSD"))) | 1333 | (c-mode . ((c-file-style . "BSD"))) |
| 1334 | (java-mode . ((c-file-style . "BSD"))) | 1334 | (java-mode . ((c-file-style . "BSD") |
| 1335 | (subdirs . nil))) | ||
| 1335 | ("src/imported" | 1336 | ("src/imported" |
| 1336 | . ((nil . ((change-log-default-name . "ChangeLog.local")))))) | 1337 | . ((nil . ((change-log-default-name . "ChangeLog.local")))))) |
| 1337 | @end example | 1338 | @end example |
| @@ -1340,8 +1341,10 @@ corresponding alist applies to all the files in that subdirectory. | |||
| 1340 | This example shows some settings for a hypothetical project. It sets | 1341 | This example shows some settings for a hypothetical project. It sets |
| 1341 | @samp{indent-tabs-mode}, @code{tab-width}, and @code{fill-column} for | 1342 | @samp{indent-tabs-mode}, @code{tab-width}, and @code{fill-column} for |
| 1342 | any file in the project's directory tree, and it sets the indentation | 1343 | any file in the project's directory tree, and it sets the indentation |
| 1343 | style for any C or Java source file. Finally, it specifies a different | 1344 | style for any C or Java source file. The special @code{subdirs} element |
| 1344 | @file{ChangeLog} file name for any file in the @file{src/imported} | 1345 | indicates that the Java mode settings are only to be applied in the |
| 1346 | current directory, not in any subdirectories. Finally, it specifies a | ||
| 1347 | different @file{ChangeLog} file name for any file in the @file{src/imported} | ||
| 1345 | subdirectory of the directory where you put the @file{.dir-locals.el} | 1348 | subdirectory of the directory where you put the @file{.dir-locals.el} |
| 1346 | file. | 1349 | file. |
| 1347 | 1350 | ||
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 60c569596ea..d311104ddd7 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi | |||
| @@ -1486,6 +1486,10 @@ changed. | |||
| 1486 | non-@code{nil}, @kbd{C-x 4 a} adds to any existing item for the file | 1486 | non-@code{nil}, @kbd{C-x 4 a} adds to any existing item for the file |
| 1487 | rather than starting a new item. | 1487 | rather than starting a new item. |
| 1488 | 1488 | ||
| 1489 | You can combine multiple changes of the same nature. If you don't | ||
| 1490 | enter any text after the initial @kbd{C-x 4 a}, any subsequent | ||
| 1491 | @kbd{C-x 4 a} adds another symbol to the change. | ||
| 1492 | |||
| 1489 | @vindex add-log-always-start-new-record | 1493 | @vindex add-log-always-start-new-record |
| 1490 | If @code{add-log-always-start-new-record} is non-@code{nil}, | 1494 | If @code{add-log-always-start-new-record} is non-@code{nil}, |
| 1491 | @kbd{C-x 4 a} always makes a new entry, even if the last entry | 1495 | @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} | |||
| 1535 | @node Format of ChangeLog | 1539 | @node Format of ChangeLog |
| 1536 | @subsection Format of ChangeLog | 1540 | @subsection Format of ChangeLog |
| 1537 | 1541 | ||
| 1538 | A change log entry starts with a header line that contains the current | 1542 | A change log entry starts with a header line that contains the |
| 1539 | date, your name, and your email address (taken from the variable | 1543 | current date, your name (taken from the variable |
| 1540 | @code{add-log-mailing-address}). Aside from these header lines, every | 1544 | @code{add-log-full-name}), and your email address (taken from the |
| 1541 | line in the change log starts with a space or a tab. The bulk of the | 1545 | variable @code{add-log-mailing-address}). Aside from these header |
| 1542 | entry consists of @dfn{items}, each of which starts with a line starting | 1546 | lines, every line in the change log starts with a space or a tab. The |
| 1543 | with whitespace and a star. Here are two entries, both dated in May | 1547 | bulk of the entry consists of @dfn{items}, each of which starts with a |
| 1544 | 1993, with two items and one item respectively. | 1548 | line starting with whitespace and a star. Here are two entries, both |
| 1549 | dated in May 1993, with two items and one item respectively. | ||
| 1545 | 1550 | ||
| 1546 | @iftex | 1551 | @iftex |
| 1547 | @medbreak | 1552 | @medbreak |
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi index df0579ab9ea..e3c0445e189 100644 --- a/doc/emacs/search.texi +++ b/doc/emacs/search.texi | |||
| @@ -468,8 +468,8 @@ apply to the lazy highlight, which always matches whole words. | |||
| 468 | 468 | ||
| 469 | @node Regexp Search | 469 | @node Regexp Search |
| 470 | @section Regular Expression Search | 470 | @section Regular Expression Search |
| 471 | @cindex regular expression | 471 | @cindex regexp search |
| 472 | @cindex regexp | 472 | @cindex search for a regular expression |
| 473 | 473 | ||
| 474 | A @dfn{regular expression} (or @dfn{regexp} for short) is a pattern | 474 | A @dfn{regular expression} (or @dfn{regexp} for short) is a pattern |
| 475 | that denotes a class of alternative strings to match. GNU Emacs | 475 | that denotes a class of alternative strings to match. GNU Emacs |
| @@ -543,6 +543,8 @@ Search}. | |||
| 543 | @node Regexps | 543 | @node Regexps |
| 544 | @section Syntax of Regular Expressions | 544 | @section Syntax of Regular Expressions |
| 545 | @cindex syntax of regexps | 545 | @cindex syntax of regexps |
| 546 | @cindex regular expression | ||
| 547 | @cindex regexp | ||
| 546 | 548 | ||
| 547 | This manual describes regular expression features that users | 549 | This manual describes regular expression features that users |
| 548 | typically use. @xref{Regular Expressions,,, elisp, The Emacs Lisp | 550 | typically use. @xref{Regular Expressions,,, elisp, The Emacs Lisp |
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 90eed004d39..1a980f14f3d 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,18 @@ | |||
| 1 | 2011-03-01 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * variables.texi (Directory Local Variables): | ||
| 4 | Mention `(subdirs . nil)' alist element. | ||
| 5 | |||
| 6 | 2011-02-28 Glenn Morris <rgm@gnu.org> | ||
| 7 | |||
| 8 | * variables.texi (Directory Local Variables): Mention the optional | ||
| 9 | mtime argument of dir-locals-set-directory-class. (Bug#3577) | ||
| 10 | |||
| 11 | 2011-02-27 Chong Yidong <cyd@stupidchicken.com> | ||
| 12 | |||
| 13 | * minibuf.texi (Minibuffer History): Clarify discussion of | ||
| 14 | minibuffer history lists (Bug#8085). | ||
| 15 | |||
| 1 | 2011-02-19 Eli Zaretskii <eliz@gnu.org> | 16 | 2011-02-19 Eli Zaretskii <eliz@gnu.org> |
| 2 | 17 | ||
| 3 | * elisp.texi: Sync @dircategory with ../../info/dir. | 18 | * elisp.texi: Sync @dircategory with ../../info/dir. |
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index 50324a91f5f..07975e64b35 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi | |||
| @@ -433,18 +433,17 @@ expression, thus moving point forward one word. | |||
| 433 | @cindex minibuffer history | 433 | @cindex minibuffer history |
| 434 | @cindex history list | 434 | @cindex history list |
| 435 | 435 | ||
| 436 | A @dfn{minibuffer history list} records previous minibuffer inputs so | 436 | A @dfn{minibuffer history list} records previous minibuffer inputs |
| 437 | the user can reuse them conveniently. A history list is actually a | 437 | so the user can reuse them conveniently. It is a variable whose value |
| 438 | symbol, not a list; it is a variable whose value is a list of strings | 438 | is a list of strings (previous inputs), most recent first. |
| 439 | (previous inputs), most recent first. | 439 | |
| 440 | 440 | There are many separate minibuffer history lists, used for different | |
| 441 | There are many separate history lists, used for different kinds of | 441 | kinds of inputs. It's the Lisp programmer's job to specify the right |
| 442 | inputs. It's the Lisp programmer's job to specify the right history | 442 | history list for each use of the minibuffer. |
| 443 | list for each use of the minibuffer. | 443 | |
| 444 | 444 | You specify a minibuffer history list with the optional @var{hist} | |
| 445 | You specify the history list with the optional @var{hist} argument | 445 | argument to @code{read-from-minibuffer} or @code{completing-read}. |
| 446 | to either @code{read-from-minibuffer} or @code{completing-read}. Here | 446 | Here are the possible values for it: |
| 447 | are the possible values for it: | ||
| 448 | 447 | ||
| 449 | @table @asis | 448 | @table @asis |
| 450 | @item @var{variable} | 449 | @item @var{variable} |
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index 0cdcaa84d58..a68b2b6dd4e 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi | |||
| @@ -1718,7 +1718,8 @@ directory-local variables. The name of the file is | |||
| 1718 | The MS-DOS version of Emacs uses @file{_dir-locals.el} instead, due to | 1718 | The MS-DOS version of Emacs uses @file{_dir-locals.el} instead, due to |
| 1719 | limitations of the DOS filesystems. | 1719 | limitations of the DOS filesystems. |
| 1720 | }. A file by that name in a directory causes Emacs to apply its | 1720 | }. A file by that name in a directory causes Emacs to apply its |
| 1721 | settings to any file in that directory or any of its subdirectories. | 1721 | settings to any file in that directory or any of its subdirectories |
| 1722 | (optionally, you can exclude subdirectories; see below). | ||
| 1722 | If some of the subdirectories have their own @file{.dir-locals.el} | 1723 | If some of the subdirectories have their own @file{.dir-locals.el} |
| 1723 | files, Emacs uses the settings from the deepest file it finds starting | 1724 | files, Emacs uses the settings from the deepest file it finds starting |
| 1724 | from the file's directory and moving up the directory tree. The file | 1725 | 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}, | |||
| 1749 | then the all the variables in the associated @var{alist} are applied; | 1750 | then the all the variables in the associated @var{alist} are applied; |
| 1750 | @var{alist} should be of the form @code{(@var{name} . @var{value})}. | 1751 | @var{alist} should be of the form @code{(@var{name} . @var{value})}. |
| 1751 | A special value @code{nil} for @var{major-mode} means the settings are | 1752 | A special value @code{nil} for @var{major-mode} means the settings are |
| 1752 | applicable to any mode. | 1753 | applicable to any mode. In @var{alist}, you can use a special |
| 1754 | @var{name}: @code{subdirs}. If the associated value is | ||
| 1755 | @code{nil}, the alist is only applied to files in the relevant | ||
| 1756 | directory, not to those in any subdirectories. | ||
| 1753 | 1757 | ||
| 1754 | With the second form of @var{variables}, if @var{directory} is the | 1758 | With the second form of @var{variables}, if @var{directory} is the |
| 1755 | initial substring of the file's directory, then @var{list} is applied | 1759 | 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 | |||
| 1757 | of the two forms accepted by this function in @var{variables}. | 1761 | of the two forms accepted by this function in @var{variables}. |
| 1758 | @end defun | 1762 | @end defun |
| 1759 | 1763 | ||
| 1760 | @defun dir-locals-set-directory-class directory class | 1764 | @defun dir-locals-set-directory-class directory class &optional mtime |
| 1761 | This function assigns @var{class} to all the files in @code{directory} | 1765 | This function assigns @var{class} to all the files in @code{directory} |
| 1762 | and its subdirectories. Thereafter, all the variable settings | 1766 | and its subdirectories. Thereafter, all the variable settings |
| 1763 | specified for @var{class} will be applied to any visited file in | 1767 | specified for @var{class} will be applied to any visited file in |
| 1764 | @var{directory} and its children. @var{class} must have been already | 1768 | @var{directory} and its children. @var{class} must have been already |
| 1765 | defined by @code{dir-locals-set-class-variables} | 1769 | defined by @code{dir-locals-set-class-variables}. |
| 1770 | |||
| 1771 | Emacs uses this function internally when it loads directory variables | ||
| 1772 | from a @code{.dir-locals.el} file. In that case, the optional | ||
| 1773 | argument @var{mtime} holds the file modification time (as returned by | ||
| 1774 | @code{file-attributes}). Emacs uses this time to check stored | ||
| 1775 | local variables are still valid. If you are assigning a class | ||
| 1776 | directly, not via a file, this argument should be @code{nil}. | ||
| 1766 | @end defun | 1777 | @end defun |
| 1767 | 1778 | ||
| 1768 | @defvar dir-locals-class-alist | 1779 | @defvar dir-locals-class-alist |
| @@ -1772,8 +1783,9 @@ settings. It is updated by @code{dir-locals-set-class-variables}. | |||
| 1772 | 1783 | ||
| 1773 | @defvar dir-locals-directory-cache | 1784 | @defvar dir-locals-directory-cache |
| 1774 | This alist holds directory names, their assigned class names, and | 1785 | This alist holds directory names, their assigned class names, and |
| 1775 | modification times of the associated directory local variables file. | 1786 | modification times of the associated directory local variables file |
| 1776 | It is updated by @code{dir-locals-set-directory-class}. | 1787 | (if there is one). The function @code{dir-locals-set-directory-class} |
| 1788 | updates this list. | ||
| 1777 | @end defvar | 1789 | @end defvar |
| 1778 | 1790 | ||
| 1779 | @node Frame-Local Variables | 1791 | @node Frame-Local Variables |
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 6f4f86978da..2ce67bad6cb 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2011-02-28 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | * tramp.texi (Frequently Asked Questions): Add Emacs 24 to | ||
| 4 | supported systems. | ||
| 5 | |||
| 6 | 2011-02-28 Glenn Morris <rgm@gnu.org> | ||
| 7 | |||
| 8 | * dbus.texi (Type Conversion): Grammar fix. | ||
| 9 | |||
| 1 | 2011-02-23 Michael Albinus <michael.albinus@gmx.de> | 10 | 2011-02-23 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 11 | ||
| 3 | * tramp.texi: Use consistently "Emacs" (instead of "GNU Emacs") and | 12 | * tramp.texi: Use consistently "Emacs" (instead of "GNU Emacs") and |
diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi index ad202f963aa..e6fb00d3482 100644 --- a/doc/misc/dbus.texi +++ b/doc/misc/dbus.texi | |||
| @@ -893,10 +893,10 @@ applied, when the corresponding D-Bus message is created: | |||
| 893 | @end example | 893 | @end example |
| 894 | 894 | ||
| 895 | Other Lisp objects, like symbols or hash tables, are not accepted as | 895 | Other Lisp objects, like symbols or hash tables, are not accepted as |
| 896 | input parameter. | 896 | input parameters. |
| 897 | 897 | ||
| 898 | If it is necessary to use another D-Bus type, a corresponding type | 898 | If it is necessary to use another D-Bus type, a corresponding type |
| 899 | symbol can be preceeded to the corresponding Lisp object. Basic D-Bus | 899 | symbol can be prepended to the corresponding Lisp object. Basic D-Bus |
| 900 | types are represented by the type symbols @code{:byte}, | 900 | types are represented by the type symbols @code{:byte}, |
| 901 | @code{:boolean}, @code{:int16}, @code{:uint16}, @code{:int32}, | 901 | @code{:boolean}, @code{:int16}, @code{:uint16}, @code{:int32}, |
| 902 | @code{:uint32}, @code{:int64}, @code{:uint64}, @code{:double}, | 902 | @code{:uint32}, @code{:int64}, @code{:uint64}, @code{:double}, |
diff --git a/doc/misc/semantic.texi b/doc/misc/semantic.texi index 52434f4a6e4..f3f11d29f17 100644 --- a/doc/misc/semantic.texi +++ b/doc/misc/semantic.texi | |||
| @@ -64,7 +64,7 @@ developing GNU and promoting software freedom.'' | |||
| 64 | @macro obsolete{old,new} | 64 | @macro obsolete{old,new} |
| 65 | @sp 1 | 65 | @sp 1 |
| 66 | @strong{Compatibility}: | 66 | @strong{Compatibility}: |
| 67 | @code{\new\} introduced in @semantic{} version 2.0 supercedes | 67 | @code{\new\} introduced in @semantic{} version 2.0 supersedes |
| 68 | @code{\old\} which is now obsolete. | 68 | @code{\old\} which is now obsolete. |
| 69 | @end macro | 69 | @end macro |
| 70 | 70 | ||
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 8bcce244f9d..bdbba437af7 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -2740,8 +2740,8 @@ There is also a Savannah project page. | |||
| 2740 | @item | 2740 | @item |
| 2741 | Which systems does it work on? | 2741 | Which systems does it work on? |
| 2742 | 2742 | ||
| 2743 | The package has been used successfully on Emacs 22, Emacs 23, XEmacs | 2743 | The package has been used successfully on Emacs 22, Emacs 23, Emacs |
| 2744 | 21 (starting with 21.4), and SXEmacs 22. | 2744 | 24, XEmacs 21 (starting with 21.4), and SXEmacs 22. |
| 2745 | 2745 | ||
| 2746 | The package was intended to work on Unix, and it really expects a | 2746 | The package was intended to work on Unix, and it really expects a |
| 2747 | Unix-like system on the remote end (except the @option{smb} method), | 2747 | Unix-like system on the remote end (except the @option{smb} method), |
| @@ -353,6 +353,11 @@ Just set shell-dir-cookie-re to an appropriate regexp. | |||
| 353 | will turn on `whitespace-mode' for *vc-diff* buffers. Modes should | 353 | will turn on `whitespace-mode' for *vc-diff* buffers. Modes should |
| 354 | call `hack-dir-local-variables-non-file-buffer' to support this. | 354 | call `hack-dir-local-variables-non-file-buffer' to support this. |
| 355 | 355 | ||
| 356 | +++ | ||
| 357 | ** You can prevent directory local variables from applying to subdirectories. | ||
| 358 | Add an element (subdirs . nil) to the alist portion of any variables | ||
| 359 | settings to indicate said section should not be applied to subdirectories. | ||
| 360 | |||
| 356 | ** ERC changes | 361 | ** ERC changes |
| 357 | 362 | ||
| 358 | *** New vars `erc-autojoin-timing' and `erc-autojoin-delay'. | 363 | *** New vars `erc-autojoin-timing' and `erc-autojoin-delay'. |
| @@ -386,6 +391,8 @@ You can get a comparable behavior with: | |||
| 386 | 391 | ||
| 387 | ** Calendar, Diary, and Appt | 392 | ** Calendar, Diary, and Appt |
| 388 | 393 | ||
| 394 | *** New function `diary-hebrew-birthday'. | ||
| 395 | |||
| 389 | --- | 396 | --- |
| 390 | *** The obsolete (since Emacs 22.1) method of enabling the appt package | 397 | *** The obsolete (since Emacs 22.1) method of enabling the appt package |
| 391 | by adding appt-make-list to diary-hook has been removed. Use appt-activate. | 398 | by adding appt-make-list to diary-hook has been removed. Use appt-activate. |
diff --git a/etc/NEWS.23 b/etc/NEWS.23 index 6b6cbe48328..181548e98d6 100644 --- a/etc/NEWS.23 +++ b/etc/NEWS.23 | |||
| @@ -1746,7 +1746,7 @@ directories in which `ffap-rfc' will first search for RFCs. | |||
| 1746 | *** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them. | 1746 | *** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them. |
| 1747 | See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'. | 1747 | See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'. |
| 1748 | 1748 | ||
| 1749 | *** `icomplete-prospects-height' now supercedes `icomplete-prospects-length'. | 1749 | *** `icomplete-prospects-height' now supersedes `icomplete-prospects-length'. |
| 1750 | 1750 | ||
| 1751 | *** Info displays breadcrumbs in the header of the page. | 1751 | *** Info displays breadcrumbs in the header of the page. |
| 1752 | See Info-breadcrumbs-depth to control it. | 1752 | See Info-breadcrumbs-depth to control it. |
diff --git a/leim/ChangeLog b/leim/ChangeLog index 6f55095aac7..7334fa991c9 100644 --- a/leim/ChangeLog +++ b/leim/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2011-02-28 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * quail/ethiopic.el ("ethiopic"): Fix tpo in docstring. | ||
| 4 | |||
| 1 | 2011-01-28 Paul Eggert <eggert@cs.ucla.edu> | 5 | 2011-01-28 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 6 | ||
| 3 | Redo spelling of Makefile variables to conform to POSIX. | 7 | Redo spelling of Makefile variables to conform to POSIX. |
| @@ -27,8 +31,8 @@ | |||
| 27 | 31 | ||
| 28 | 2010-08-28 Kenichi Handa <handa@m17n.org> | 32 | 2010-08-28 Kenichi Handa <handa@m17n.org> |
| 29 | 33 | ||
| 30 | * quail/japanese.el (quail-japanese-update-translation): Fix | 34 | * quail/japanese.el (quail-japanese-update-translation): |
| 31 | handling of invalid key. | 35 | Fix handling of invalid key. |
| 32 | 36 | ||
| 33 | 2010-08-15 Andreas Schwab <schwab@linux-m68k.org> | 37 | 2010-08-15 Andreas Schwab <schwab@linux-m68k.org> |
| 34 | 38 | ||
| @@ -46,8 +50,7 @@ | |||
| 46 | 50 | ||
| 47 | 2010-08-13 Kenichi Handa <handa@m17n.org> | 51 | 2010-08-13 Kenichi Handa <handa@m17n.org> |
| 48 | 52 | ||
| 49 | * quail/greek.el ("greek-postfix"): Add rules for Greek style | 53 | * quail/greek.el ("greek-postfix"): Add rules for Greek style quotes. |
| 50 | quotes. | ||
| 51 | 54 | ||
| 52 | 2010-08-09 Kenichi Handa <handa@m17n.org> | 55 | 2010-08-09 Kenichi Handa <handa@m17n.org> |
| 53 | 56 | ||
diff --git a/leim/ja-dic/ja-dic.el b/leim/ja-dic/ja-dic.el index b4aa921d56a..19caea49629 100644 --- a/leim/ja-dic/ja-dic.el +++ b/leim/ja-dic/ja-dic.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; ja-dic.el --- dictionary for Japanese input method -*-coding: euc-japan; byte-compile-disable-print-circle:t; -*- | 1 | ;;; ja-dic.el --- dictionary for Japanese input method -*-coding: euc-japan; -*- |
| 2 | ;; Generated by the command `skkdic-convert' | 2 | ;; Generated by the command `skkdic-convert' |
| 3 | ;; Date: Tue Feb 16 15:59:19 2010 | 3 | ;; Date: Sat Feb 26 10:26:11 2011 |
| 4 | ;; Original SKK dictionary file: ../SKK-DIC/SKK-JISYO.L | 4 | ;; Original SKK dictionary file: ../SKK-DIC/SKK-JISYO.L |
| 5 | 5 | ||
| 6 | ;; This file is part of GNU Emacs. | 6 | ;; This file is part of GNU Emacs. |
| @@ -16984,7 +16984,6 @@ | |||
| 16984 | 16984 | ||
| 16985 | ;; Setting okuri-nasi entries. | 16985 | ;; Setting okuri-nasi entries. |
| 16986 | (skkdic-set-okuri-nasi | 16986 | (skkdic-set-okuri-nasi |
| 16987 | "¤ò¤ó¤Ê ½÷" | ||
| 16988 | "¡¼ ¡Á" | 16987 | "¡¼ ¡Á" |
| 16989 | "¤¢ ÓË ÌÀ °Â ë¨ Ò÷ °£ Ûó г °¢ áÞ Õ´ °¤ Èà ¸ã °¡" | 16988 | "¤¢ ÓË ÌÀ °Â ë¨ Ò÷ °£ Ûó г °¢ áÞ Õ´ °¤ Èà ¸ã °¡" |
| 16990 | "¤¢¡¼¤¯¤È¤¦ ¥¢¡¼¥¯Åô" | 16989 | "¤¢¡¼¤¯¤È¤¦ ¥¢¡¼¥¯Åô" |
diff --git a/leim/quail/cyrillic.el b/leim/quail/cyrillic.el index 7eaaab4aebc..824048534e0 100644 --- a/leim/quail/cyrillic.el +++ b/leim/quail/cyrillic.el | |||
| @@ -39,7 +39,7 @@ | |||
| 39 | ;; This was `cyrillic-jcuken'. Alexander Mikhailian | 39 | ;; This was `cyrillic-jcuken'. Alexander Mikhailian |
| 40 | ;; <mikhailian@altern.org> says: "cyrillic-jcuken" is actually | 40 | ;; <mikhailian@altern.org> says: "cyrillic-jcuken" is actually |
| 41 | ;; russian. It is ok but a bit outdated. This layout has been used | 41 | ;; russian. It is ok but a bit outdated. This layout has been used |
| 42 | ;; in typewriters for ages but it has been superceeded on desktops by | 42 | ;; in typewriters for ages but it has been superseded on desktops by |
| 43 | ;; a variation of this layout, implemented in M$ Windows software. | 43 | ;; a variation of this layout, implemented in M$ Windows software. |
| 44 | ;; The Windows layout is greatly preferred because of the comma and | 44 | ;; The Windows layout is greatly preferred because of the comma and |
| 45 | ;; period being placed more conviniently and, of course, because of | 45 | ;; period being placed more conviniently and, of course, because of |
diff --git a/leim/quail/ethiopic.el b/leim/quail/ethiopic.el index bdbb214723e..210aeea7e62 100644 --- a/leim/quail/ethiopic.el +++ b/leim/quail/ethiopic.el | |||
| @@ -62,7 +62,7 @@ S-SPC or `M-x ethio-insert-ethio-space' | |||
| 62 | 62 | ||
| 63 | C-' or `M-x ethio-gemination' | 63 | C-' or `M-x ethio-gemination' |
| 64 | Compose the character before the point with the Ethiopic gemination mark. | 64 | Compose the character before the point with the Ethiopic gemination mark. |
| 65 | If the characater is already composed, decompose it and remove the | 65 | If the character is already composed, decompose it and remove the |
| 66 | gemination mark." | 66 | gemination mark." |
| 67 | 67 | ||
| 68 | ;; The following keys should work as defined in lisp/language/ethio-util, | 68 | ;; The following keys should work as defined in lisp/language/ethio-util, |
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 2c98cdf59a6..f54ad384b13 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog | |||
| @@ -1,3 +1,57 @@ | |||
| 1 | 2011-02-26 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * Makefile.in (fakemail${EXEEXT}): Depend on lib/ignore-value.h. | ||
| 4 | |||
| 5 | * emacsclient.c (xstrdup) [WINDOWSNT]: Function added back. | ||
| 6 | (w32_getenv): Use xstrdup to return all values in malloc'ed | ||
| 7 | storage. | ||
| 8 | |||
| 9 | 2011-02-26 Paul Eggert <eggert@cs.ucla.edu> | ||
| 10 | |||
| 11 | * ebrowse.c (parse_qualified_param_ident_or_type): Make it clear | ||
| 12 | to reader (and to the compiler) that the loop always executes at | ||
| 13 | least once. This prevents a warning with recent GCC. | ||
| 14 | (BROWSE_STRUCT): Remove unused macro. | ||
| 15 | |||
| 16 | * fakemail.c: Include <ignore-value.h>. | ||
| 17 | (put_line): Explicitly ignore fwrite return value, for benefit of | ||
| 18 | recent glibc + gcc. | ||
| 19 | (close_the_streams): Diagnose output errors instead of merely | ||
| 20 | exiting with nonzero status. | ||
| 21 | (my_fclose, main): Diagnose input errors, and exit with nonzero status. | ||
| 22 | Formerly, input errors were silently ignored. | ||
| 23 | |||
| 24 | * ebrowse.c (putstr): Rename from PUTSTR and turn into a function. | ||
| 25 | All callers changed. This is cleaner, and avoids GCC warnings about | ||
| 26 | passing NULL to fputs. | ||
| 27 | (insert_keyword): Rename parameter to avoid shadowing diagnostic. | ||
| 28 | |||
| 29 | 2011-02-25 Paul Eggert <eggert@cs.ucla.edu> | ||
| 30 | |||
| 31 | * emacsclient.c (main): Avoid dangling 'if'. | ||
| 32 | (xstrdup): Remove; no longer needed. | ||
| 33 | (get_current_dir_name, w32_getenv, get_server_config, find_tty): | ||
| 34 | (set_local_socket, main): | ||
| 35 | Use const char *, not char *, for pointers that are not assigned | ||
| 36 | through. | ||
| 37 | (IF_LINT): New macro. | ||
| 38 | (set_local_socket, main): Use it to suppress warnings with | ||
| 39 | GCC -Wuninitialized. | ||
| 40 | |||
| 41 | * emacsclient.c: Redo local variables to avoid shadowing problems. | ||
| 42 | (message, socket_status, start_daemon_and_retry_set_socket): | ||
| 43 | Rename locals. | ||
| 44 | (main): Move decl of "i". | ||
| 45 | |||
| 46 | * etags.c (ISUPPER): Move to inside the only #ifdef where it's used. | ||
| 47 | This avoids an unused-macro warning with some GCC settings. | ||
| 48 | |||
| 49 | * make-docfile.c (write_globals): Change char * to char const * | ||
| 50 | to avoid a GCC "assignment discards qualifiers" diagnostic | ||
| 51 | in some configurations. | ||
| 52 | (scan_c_file): Refactor local variable decls to make their scope | ||
| 53 | more accurate and to avoid a GCC -Wuninitialized diagnostic. | ||
| 54 | |||
| 1 | 2011-02-22 Eli Zaretskii <eliz@gnu.org> | 55 | 2011-02-22 Eli Zaretskii <eliz@gnu.org> |
| 2 | 56 | ||
| 3 | * etags.c (canonicalize_filename, ISUPPER): Fix last change. | 57 | * etags.c (canonicalize_filename, ISUPPER): Fix last change. |
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index f671b0844ce..d622233efb4 100644 --- a/lib-src/Makefile.in +++ b/lib-src/Makefile.in | |||
| @@ -353,7 +353,7 @@ movemail.o: ${srcdir}/movemail.c ../src/config.h | |||
| 353 | pop.o: ${srcdir}/pop.c ${srcdir}/../lib/min-max.h ../src/config.h | 353 | pop.o: ${srcdir}/pop.c ${srcdir}/../lib/min-max.h ../src/config.h |
| 354 | $(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/pop.c | 354 | $(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/pop.c |
| 355 | 355 | ||
| 356 | fakemail${EXEEXT}: ${srcdir}/fakemail.c ../src/config.h | 356 | fakemail${EXEEXT}: ${srcdir}/fakemail.c ${srcdir}/../lib/ignore-value.h ../src/config.h |
| 357 | $(CC) ${ALL_CFLAGS} ${srcdir}/fakemail.c $(LOADLIBES) -o fakemail | 357 | $(CC) ${ALL_CFLAGS} ${srcdir}/fakemail.c $(LOADLIBES) -o fakemail |
| 358 | 358 | ||
| 359 | emacsclient${EXEEXT}: ${srcdir}/emacsclient.c ../src/config.h | 359 | emacsclient${EXEEXT}: ${srcdir}/emacsclient.c ../src/config.h |
diff --git a/lib-src/ebrowse.c b/lib-src/ebrowse.c index f2894d5a0c2..113b6fdfe40 100644 --- a/lib-src/ebrowse.c +++ b/lib-src/ebrowse.c | |||
| @@ -77,7 +77,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 77 | #define TREE_HEADER_STRUCT "[ebrowse-hs " | 77 | #define TREE_HEADER_STRUCT "[ebrowse-hs " |
| 78 | #define TREE_STRUCT "[ebrowse-ts " | 78 | #define TREE_STRUCT "[ebrowse-ts " |
| 79 | #define MEMBER_STRUCT "[ebrowse-ms " | 79 | #define MEMBER_STRUCT "[ebrowse-ms " |
| 80 | #define BROWSE_STRUCT "[ebrowse-bs " | ||
| 81 | #define CLASS_STRUCT "[ebrowse-cs " | 80 | #define CLASS_STRUCT "[ebrowse-cs " |
| 82 | 81 | ||
| 83 | /* The name of the symbol table entry for global functions, variables, | 82 | /* The name of the symbol table entry for global functions, variables, |
| @@ -1108,22 +1107,23 @@ leave_namespace (void) | |||
| 1108 | /* Write string S to the output file FP in a Lisp-readable form. | 1107 | /* Write string S to the output file FP in a Lisp-readable form. |
| 1109 | If S is null, write out `()'. */ | 1108 | If S is null, write out `()'. */ |
| 1110 | 1109 | ||
| 1111 | #define PUTSTR(s, fp) \ | 1110 | static inline void |
| 1112 | do { \ | 1111 | putstr (const char *s, FILE *fp) |
| 1113 | if (!s) \ | 1112 | { |
| 1114 | { \ | 1113 | if (!s) |
| 1115 | putc ('(', fp); \ | 1114 | { |
| 1116 | putc (')', fp); \ | 1115 | putc ('(', fp); |
| 1117 | putc (' ', fp); \ | 1116 | putc (')', fp); |
| 1118 | } \ | 1117 | putc (' ', fp); |
| 1119 | else \ | 1118 | } |
| 1120 | { \ | 1119 | else |
| 1121 | putc ('"', fp); \ | 1120 | { |
| 1122 | fputs (s, fp); \ | 1121 | putc ('"', fp); |
| 1123 | putc ('"', fp); \ | 1122 | fputs (s, fp); |
| 1124 | putc (' ', fp); \ | 1123 | putc ('"', fp); |
| 1125 | } \ | 1124 | putc (' ', fp); |
| 1126 | } while (0) | 1125 | } |
| 1126 | } | ||
| 1127 | 1127 | ||
| 1128 | /* A dynamically allocated buffer for constructing a scope name. */ | 1128 | /* A dynamically allocated buffer for constructing a scope name. */ |
| 1129 | 1129 | ||
| @@ -1216,16 +1216,16 @@ dump_members (FILE *fp, struct member *m) | |||
| 1216 | for (n = 0; m; m = m->next, ++n) | 1216 | for (n = 0; m; m = m->next, ++n) |
| 1217 | { | 1217 | { |
| 1218 | fputs (MEMBER_STRUCT, fp); | 1218 | fputs (MEMBER_STRUCT, fp); |
| 1219 | PUTSTR (m->name, fp); | 1219 | putstr (m->name, fp); |
| 1220 | PUTSTR (NULL, fp); /* FIXME? scope for globals */ | 1220 | putstr (NULL, fp); /* FIXME? scope for globals */ |
| 1221 | fprintf (fp, "%u ", (unsigned) m->flags); | 1221 | fprintf (fp, "%u ", (unsigned) m->flags); |
| 1222 | PUTSTR (m->filename, fp); | 1222 | putstr (m->filename, fp); |
| 1223 | PUTSTR (m->regexp, fp); | 1223 | putstr (m->regexp, fp); |
| 1224 | fprintf (fp, "%u ", (unsigned) m->pos); | 1224 | fprintf (fp, "%u ", (unsigned) m->pos); |
| 1225 | fprintf (fp, "%u ", (unsigned) m->vis); | 1225 | fprintf (fp, "%u ", (unsigned) m->vis); |
| 1226 | putc (' ', fp); | 1226 | putc (' ', fp); |
| 1227 | PUTSTR (m->def_filename, fp); | 1227 | putstr (m->def_filename, fp); |
| 1228 | PUTSTR (m->def_regexp, fp); | 1228 | putstr (m->def_regexp, fp); |
| 1229 | fprintf (fp, "%u", (unsigned) m->def_pos); | 1229 | fprintf (fp, "%u", (unsigned) m->def_pos); |
| 1230 | putc (']', fp); | 1230 | putc (']', fp); |
| 1231 | putc ('\n', fp); | 1231 | putc ('\n', fp); |
| @@ -1243,20 +1243,20 @@ static void | |||
| 1243 | dump_sym (FILE *fp, struct sym *root) | 1243 | dump_sym (FILE *fp, struct sym *root) |
| 1244 | { | 1244 | { |
| 1245 | fputs (CLASS_STRUCT, fp); | 1245 | fputs (CLASS_STRUCT, fp); |
| 1246 | PUTSTR (root->name, fp); | 1246 | putstr (root->name, fp); |
| 1247 | 1247 | ||
| 1248 | /* Print scope, if any. */ | 1248 | /* Print scope, if any. */ |
| 1249 | if (root->namesp) | 1249 | if (root->namesp) |
| 1250 | PUTSTR (sym_scope (root), fp); | 1250 | putstr (sym_scope (root), fp); |
| 1251 | else | 1251 | else |
| 1252 | PUTSTR (NULL, fp); | 1252 | putstr (NULL, fp); |
| 1253 | 1253 | ||
| 1254 | /* Print flags. */ | 1254 | /* Print flags. */ |
| 1255 | fprintf (fp, "%u", root->flags); | 1255 | fprintf (fp, "%u", root->flags); |
| 1256 | PUTSTR (root->filename, fp); | 1256 | putstr (root->filename, fp); |
| 1257 | PUTSTR (root->regexp, fp); | 1257 | putstr (root->regexp, fp); |
| 1258 | fprintf (fp, "%u", (unsigned) root->pos); | 1258 | fprintf (fp, "%u", (unsigned) root->pos); |
| 1259 | PUTSTR (root->sfilename, fp); | 1259 | putstr (root->sfilename, fp); |
| 1260 | putc (']', fp); | 1260 | putc (']', fp); |
| 1261 | putc ('\n', fp); | 1261 | putc ('\n', fp); |
| 1262 | } | 1262 | } |
| @@ -1323,7 +1323,7 @@ dump_roots (FILE *fp) | |||
| 1323 | if (!f_append) | 1323 | if (!f_append) |
| 1324 | { | 1324 | { |
| 1325 | fputs (TREE_HEADER_STRUCT, fp); | 1325 | fputs (TREE_HEADER_STRUCT, fp); |
| 1326 | PUTSTR (EBROWSE_FILE_VERSION, fp); | 1326 | putstr (EBROWSE_FILE_VERSION, fp); |
| 1327 | 1327 | ||
| 1328 | putc ('\"', fp); | 1328 | putc ('\"', fp); |
| 1329 | if (!f_structs) | 1329 | if (!f_structs) |
| @@ -2062,11 +2062,11 @@ re_init_scanner (void) | |||
| 2062 | } | 2062 | } |
| 2063 | 2063 | ||
| 2064 | 2064 | ||
| 2065 | /* Insert a keyword NAME with token value TK into the keyword hash | 2065 | /* Insert a keyword NAME with token value TKV into the keyword hash |
| 2066 | table. */ | 2066 | table. */ |
| 2067 | 2067 | ||
| 2068 | static void | 2068 | static void |
| 2069 | insert_keyword (const char *name, int tk) | 2069 | insert_keyword (const char *name, int tkv) |
| 2070 | { | 2070 | { |
| 2071 | const char *s; | 2071 | const char *s; |
| 2072 | unsigned h = 0; | 2072 | unsigned h = 0; |
| @@ -2077,7 +2077,7 @@ insert_keyword (const char *name, int tk) | |||
| 2077 | 2077 | ||
| 2078 | h %= KEYWORD_TABLE_SIZE; | 2078 | h %= KEYWORD_TABLE_SIZE; |
| 2079 | k->name = name; | 2079 | k->name = name; |
| 2080 | k->tk = tk; | 2080 | k->tk = tkv; |
| 2081 | k->next = keyword_table[h]; | 2081 | k->next = keyword_table[h]; |
| 2082 | keyword_table[h] = k; | 2082 | keyword_table[h] = k; |
| 2083 | } | 2083 | } |
| @@ -2951,7 +2951,9 @@ parse_qualified_param_ident_or_type (char **last_id) | |||
| 2951 | static char *id = NULL; | 2951 | static char *id = NULL; |
| 2952 | static int id_size = 0; | 2952 | static int id_size = 0; |
| 2953 | 2953 | ||
| 2954 | while (LOOKING_AT (IDENT)) | 2954 | assert (LOOKING_AT (IDENT)); |
| 2955 | |||
| 2956 | do | ||
| 2955 | { | 2957 | { |
| 2956 | int len = strlen (yytext) + 1; | 2958 | int len = strlen (yytext) + 1; |
| 2957 | if (len > id_size) | 2959 | if (len > id_size) |
| @@ -2974,6 +2976,7 @@ parse_qualified_param_ident_or_type (char **last_id) | |||
| 2974 | else | 2976 | else |
| 2975 | break; | 2977 | break; |
| 2976 | } | 2978 | } |
| 2979 | while (LOOKING_AT (IDENT)); | ||
| 2977 | } | 2980 | } |
| 2978 | 2981 | ||
| 2979 | 2982 | ||
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 8d5f0482637..836891ae6aa 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c | |||
| @@ -112,6 +112,13 @@ char *(getcwd) (char *, size_t); | |||
| 112 | /* Additional space when allocating buffers for filenames, etc. */ | 112 | /* Additional space when allocating buffers for filenames, etc. */ |
| 113 | #define EXTRA_SPACE 100 | 113 | #define EXTRA_SPACE 100 |
| 114 | 114 | ||
| 115 | /* Use this to suppress gcc's `...may be used before initialized' warnings. */ | ||
| 116 | #ifdef lint | ||
| 117 | # define IF_LINT(Code) Code | ||
| 118 | #else | ||
| 119 | # define IF_LINT(Code) /* empty */ | ||
| 120 | #endif | ||
| 121 | |||
| 115 | 122 | ||
| 116 | /* Name used to invoke this program. */ | 123 | /* Name used to invoke this program. */ |
| 117 | const char *progname; | 124 | const char *progname; |
| @@ -190,20 +197,6 @@ xmalloc (unsigned int size) | |||
| 190 | return result; | 197 | return result; |
| 191 | } | 198 | } |
| 192 | 199 | ||
| 193 | /* Like strdup but get a fatal error if memory is exhausted. */ | ||
| 194 | |||
| 195 | static char * | ||
| 196 | xstrdup (const char *s) | ||
| 197 | { | ||
| 198 | char *result = strdup (s); | ||
| 199 | if (result == NULL) | ||
| 200 | { | ||
| 201 | perror ("strdup"); | ||
| 202 | exit (EXIT_FAILURE); | ||
| 203 | } | ||
| 204 | return result; | ||
| 205 | } | ||
| 206 | |||
| 207 | /* From sysdep.c */ | 200 | /* From sysdep.c */ |
| 208 | #if !defined (HAVE_GET_CURRENT_DIR_NAME) || defined (BROKEN_GET_CURRENT_DIR_NAME) | 201 | #if !defined (HAVE_GET_CURRENT_DIR_NAME) || defined (BROKEN_GET_CURRENT_DIR_NAME) |
| 209 | 202 | ||
| @@ -233,7 +226,7 @@ char* | |||
| 233 | get_current_dir_name (void) | 226 | get_current_dir_name (void) |
| 234 | { | 227 | { |
| 235 | char *buf; | 228 | char *buf; |
| 236 | char *pwd; | 229 | const char *pwd; |
| 237 | struct stat dotstat, pwdstat; | 230 | struct stat dotstat, pwdstat; |
| 238 | /* If PWD is accurate, use it instead of calling getwd. PWD is | 231 | /* If PWD is accurate, use it instead of calling getwd. PWD is |
| 239 | sometimes a nicer name, and using it may avoid a fatal error if a | 232 | sometimes a nicer name, and using it may avoid a fatal error if a |
| @@ -300,6 +293,20 @@ get_current_dir_name (void) | |||
| 300 | 293 | ||
| 301 | #ifdef WINDOWSNT | 294 | #ifdef WINDOWSNT |
| 302 | 295 | ||
| 296 | /* Like strdup but get a fatal error if memory is exhausted. */ | ||
| 297 | |||
| 298 | char * | ||
| 299 | xstrdup (const char *s) | ||
| 300 | { | ||
| 301 | char *result = strdup (s); | ||
| 302 | if (result == NULL) | ||
| 303 | { | ||
| 304 | perror ("strdup"); | ||
| 305 | exit (EXIT_FAILURE); | ||
| 306 | } | ||
| 307 | return result; | ||
| 308 | } | ||
| 309 | |||
| 303 | #define REG_ROOT "SOFTWARE\\GNU\\Emacs" | 310 | #define REG_ROOT "SOFTWARE\\GNU\\Emacs" |
| 304 | 311 | ||
| 305 | /* Retrieve an environment variable from the Emacs subkeys of the registry. | 312 | /* Retrieve an environment variable from the Emacs subkeys of the registry. |
| @@ -335,9 +342,11 @@ w32_get_resource (HKEY predefined, char *key, LPDWORD type) | |||
| 335 | /* | 342 | /* |
| 336 | getenv wrapper for Windows | 343 | getenv wrapper for Windows |
| 337 | 344 | ||
| 338 | This is needed to duplicate Emacs's behavior, which is to look for environment | 345 | Value is allocated on the heap, and can be free'd. |
| 339 | variables in the registry if they don't appear in the environment. | 346 | |
| 340 | */ | 347 | This is needed to duplicate Emacs's behavior, which is to look for |
| 348 | environment variables in the registry if they don't appear in the | ||
| 349 | environment. */ | ||
| 341 | char * | 350 | char * |
| 342 | w32_getenv (char *envvar) | 351 | w32_getenv (char *envvar) |
| 343 | { | 352 | { |
| @@ -345,8 +354,9 @@ w32_getenv (char *envvar) | |||
| 345 | DWORD dwType; | 354 | DWORD dwType; |
| 346 | 355 | ||
| 347 | if (value = getenv (envvar)) | 356 | if (value = getenv (envvar)) |
| 348 | /* Found in the environment. */ | 357 | /* Found in the environment. strdup it, because values returned |
| 349 | return value; | 358 | by getenv cannot be free'd. */ |
| 359 | return xstrdup (value); | ||
| 350 | 360 | ||
| 351 | if (! (value = w32_get_resource (HKEY_CURRENT_USER, envvar, &dwType)) && | 361 | if (! (value = w32_get_resource (HKEY_CURRENT_USER, envvar, &dwType)) && |
| 352 | ! (value = w32_get_resource (HKEY_LOCAL_MACHINE, envvar, &dwType))) | 362 | ! (value = w32_get_resource (HKEY_LOCAL_MACHINE, envvar, &dwType))) |
| @@ -474,13 +484,13 @@ ttyname (int fd) | |||
| 474 | /* Display a normal or error message. | 484 | /* Display a normal or error message. |
| 475 | On Windows, use a message box if compiled as a Windows app. */ | 485 | On Windows, use a message box if compiled as a Windows app. */ |
| 476 | static void | 486 | static void |
| 477 | message (int is_error, const char *message, ...) | 487 | message (int is_error, const char *format, ...) |
| 478 | { | 488 | { |
| 479 | char msg[2048]; | 489 | char msg[2048]; |
| 480 | va_list args; | 490 | va_list args; |
| 481 | 491 | ||
| 482 | va_start (args, message); | 492 | va_start (args, format); |
| 483 | vsprintf (msg, message, args); | 493 | vsprintf (msg, format, args); |
| 484 | va_end (args); | 494 | va_end (args); |
| 485 | 495 | ||
| 486 | #ifdef WINDOWSNT | 496 | #ifdef WINDOWSNT |
| @@ -918,7 +928,7 @@ get_server_config (struct sockaddr_in *server, char *authentication) | |||
| 918 | config = fopen (server_file, "rb"); | 928 | config = fopen (server_file, "rb"); |
| 919 | else | 929 | else |
| 920 | { | 930 | { |
| 921 | char *home = egetenv ("HOME"); | 931 | const char *home = egetenv ("HOME"); |
| 922 | 932 | ||
| 923 | if (home) | 933 | if (home) |
| 924 | { | 934 | { |
| @@ -1025,10 +1035,10 @@ strprefix (const char *prefix, const char *string) | |||
| 1025 | is zero, or return 0 if NOABORT is non-zero. */ | 1035 | is zero, or return 0 if NOABORT is non-zero. */ |
| 1026 | 1036 | ||
| 1027 | static int | 1037 | static int |
| 1028 | find_tty (char **tty_type, char **tty_name, int noabort) | 1038 | find_tty (const char **tty_type, const char **tty_name, int noabort) |
| 1029 | { | 1039 | { |
| 1030 | char *type = egetenv ("TERM"); | 1040 | const char *type = egetenv ("TERM"); |
| 1031 | char *name = ttyname (fileno (stdout)); | 1041 | const char *name = ttyname (fileno (stdout)); |
| 1032 | 1042 | ||
| 1033 | if (!name) | 1043 | if (!name) |
| 1034 | { | 1044 | { |
| @@ -1080,11 +1090,11 @@ find_tty (char **tty_type, char **tty_name, int noabort) | |||
| 1080 | 0 - success: none of the above */ | 1090 | 0 - success: none of the above */ |
| 1081 | 1091 | ||
| 1082 | static int | 1092 | static int |
| 1083 | socket_status (char *socket_name) | 1093 | socket_status (char *name) |
| 1084 | { | 1094 | { |
| 1085 | struct stat statbfr; | 1095 | struct stat statbfr; |
| 1086 | 1096 | ||
| 1087 | if (stat (socket_name, &statbfr) == -1) | 1097 | if (stat (name, &statbfr) == -1) |
| 1088 | return 2; | 1098 | return 2; |
| 1089 | 1099 | ||
| 1090 | if (statbfr.st_uid != geteuid ()) | 1100 | if (statbfr.st_uid != geteuid ()) |
| @@ -1205,7 +1215,7 @@ set_local_socket (void) | |||
| 1205 | int default_sock = !socket_name; | 1215 | int default_sock = !socket_name; |
| 1206 | int saved_errno = 0; | 1216 | int saved_errno = 0; |
| 1207 | const char *server_name = "server"; | 1217 | const char *server_name = "server"; |
| 1208 | const char *tmpdir; | 1218 | const char *tmpdir IF_LINT ( = NULL); |
| 1209 | 1219 | ||
| 1210 | if (socket_name && !strchr (socket_name, '/') | 1220 | if (socket_name && !strchr (socket_name, '/') |
| 1211 | && !strchr (socket_name, '\\')) | 1221 | && !strchr (socket_name, '\\')) |
| @@ -1260,10 +1270,10 @@ set_local_socket (void) | |||
| 1260 | associated with the name. This is reminiscent of the logic | 1270 | associated with the name. This is reminiscent of the logic |
| 1261 | that init_editfns uses to set the global Vuser_full_name. */ | 1271 | that init_editfns uses to set the global Vuser_full_name. */ |
| 1262 | 1272 | ||
| 1263 | char *user_name = (char *) egetenv ("LOGNAME"); | 1273 | const char *user_name = egetenv ("LOGNAME"); |
| 1264 | 1274 | ||
| 1265 | if (!user_name) | 1275 | if (!user_name) |
| 1266 | user_name = (char *) egetenv ("USER"); | 1276 | user_name = egetenv ("USER"); |
| 1267 | 1277 | ||
| 1268 | if (user_name) | 1278 | if (user_name) |
| 1269 | { | 1279 | { |
| @@ -1483,8 +1493,8 @@ start_daemon_and_retry_set_socket (void) | |||
| 1483 | else | 1493 | else |
| 1484 | { | 1494 | { |
| 1485 | char emacs[] = "emacs"; | 1495 | char emacs[] = "emacs"; |
| 1486 | char daemon[] = "--daemon"; | 1496 | char daemon_option[] = "--daemon"; |
| 1487 | char *d_argv[] = {emacs, daemon, 0 }; | 1497 | char *d_argv[] = {emacs, daemon_option, 0 }; |
| 1488 | if (socket_name != NULL) | 1498 | if (socket_name != NULL) |
| 1489 | { | 1499 | { |
| 1490 | /* Pass --daemon=socket_name as argument. */ | 1500 | /* Pass --daemon=socket_name as argument. */ |
| @@ -1504,10 +1514,12 @@ start_daemon_and_retry_set_socket (void) | |||
| 1504 | int | 1514 | int |
| 1505 | main (int argc, char **argv) | 1515 | main (int argc, char **argv) |
| 1506 | { | 1516 | { |
| 1507 | int i, rl, needlf = 0; | 1517 | int rl, needlf = 0; |
| 1508 | char *cwd, *str; | 1518 | char *cwd, *str; |
| 1509 | char string[BUFSIZ+1]; | 1519 | char string[BUFSIZ+1]; |
| 1510 | int null_socket_name, null_server_file, start_daemon_if_needed; | 1520 | int null_socket_name IF_LINT ( = 0); |
| 1521 | int null_server_file IF_LINT ( = 0); | ||
| 1522 | int start_daemon_if_needed; | ||
| 1511 | int exit_status = EXIT_SUCCESS; | 1523 | int exit_status = EXIT_SUCCESS; |
| 1512 | 1524 | ||
| 1513 | main_argv = argv; | 1525 | main_argv = argv; |
| @@ -1543,21 +1555,21 @@ main (int argc, char **argv) | |||
| 1543 | null_server_file = (server_file == NULL); | 1555 | null_server_file = (server_file == NULL); |
| 1544 | } | 1556 | } |
| 1545 | 1557 | ||
| 1546 | if ((emacs_socket = set_socket (alternate_editor | 1558 | emacs_socket = set_socket (alternate_editor || start_daemon_if_needed); |
| 1547 | || start_daemon_if_needed)) == INVALID_SOCKET) | 1559 | if (emacs_socket == INVALID_SOCKET) |
| 1548 | if (start_daemon_if_needed) | 1560 | { |
| 1549 | { | 1561 | if (! start_daemon_if_needed) |
| 1550 | /* Reset socket_name and server_file if they were NULL | 1562 | fail (); |
| 1551 | before the set_socket call. */ | 1563 | |
| 1552 | if (null_socket_name) | 1564 | /* Reset socket_name and server_file if they were NULL |
| 1553 | socket_name = NULL; | 1565 | before the set_socket call. */ |
| 1554 | if (null_server_file) | 1566 | if (null_socket_name) |
| 1555 | server_file = NULL; | 1567 | socket_name = NULL; |
| 1556 | 1568 | if (null_server_file) | |
| 1557 | start_daemon_and_retry_set_socket (); | 1569 | server_file = NULL; |
| 1558 | } | 1570 | |
| 1559 | else | 1571 | start_daemon_and_retry_set_socket (); |
| 1560 | fail (); | 1572 | } |
| 1561 | 1573 | ||
| 1562 | cwd = get_current_dir_name (); | 1574 | cwd = get_current_dir_name (); |
| 1563 | if (cwd == 0) | 1575 | if (cwd == 0) |
| @@ -1615,7 +1627,7 @@ main (int argc, char **argv) | |||
| 1615 | frame is available. */ | 1627 | frame is available. */ |
| 1616 | if (tty || (current_frame && !eval)) | 1628 | if (tty || (current_frame && !eval)) |
| 1617 | { | 1629 | { |
| 1618 | char *tty_type, *tty_name; | 1630 | const char *tty_type, *tty_name; |
| 1619 | 1631 | ||
| 1620 | if (find_tty (&tty_type, &tty_name, !tty)) | 1632 | if (find_tty (&tty_type, &tty_name, !tty)) |
| 1621 | { | 1633 | { |
| @@ -1635,6 +1647,7 @@ main (int argc, char **argv) | |||
| 1635 | 1647 | ||
| 1636 | if ((argc - optind > 0)) | 1648 | if ((argc - optind > 0)) |
| 1637 | { | 1649 | { |
| 1650 | int i; | ||
| 1638 | for (i = optind; i < argc; i++) | 1651 | for (i = optind; i < argc; i++) |
| 1639 | { | 1652 | { |
| 1640 | 1653 | ||
diff --git a/lib-src/etags.c b/lib-src/etags.c index b738f0f4564..385e4cc9721 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c | |||
| @@ -236,7 +236,6 @@ If you want regular expression support, you should delete this notice and | |||
| 236 | #define ISALNUM(c) isalnum (CHAR(c)) | 236 | #define ISALNUM(c) isalnum (CHAR(c)) |
| 237 | #define ISALPHA(c) isalpha (CHAR(c)) | 237 | #define ISALPHA(c) isalpha (CHAR(c)) |
| 238 | #define ISDIGIT(c) isdigit (CHAR(c)) | 238 | #define ISDIGIT(c) isdigit (CHAR(c)) |
| 239 | #define ISUPPER(c) isupper (CHAR(c)) | ||
| 240 | #define ISLOWER(c) islower (CHAR(c)) | 239 | #define ISLOWER(c) islower (CHAR(c)) |
| 241 | 240 | ||
| 242 | #define lowcase(c) tolower (CHAR(c)) | 241 | #define lowcase(c) tolower (CHAR(c)) |
| @@ -6648,6 +6647,7 @@ canonicalize_filename (register char *fn) | |||
| 6648 | 6647 | ||
| 6649 | #ifdef DOS_NT | 6648 | #ifdef DOS_NT |
| 6650 | /* Canonicalize drive letter case. */ | 6649 | /* Canonicalize drive letter case. */ |
| 6650 | # define ISUPPER(c) isupper (CHAR(c)) | ||
| 6651 | if (fn[0] != '\0' && fn[1] == ':' && ISUPPER (fn[0])) | 6651 | if (fn[0] != '\0' && fn[1] == ':' && ISUPPER (fn[0])) |
| 6652 | fn[0] = lowcase (fn[0]); | 6652 | fn[0] = lowcase (fn[0]); |
| 6653 | 6653 | ||
diff --git a/lib-src/fakemail.c b/lib-src/fakemail.c index 26375a61654..780a104b405 100644 --- a/lib-src/fakemail.c +++ b/lib-src/fakemail.c | |||
| @@ -62,6 +62,8 @@ main () | |||
| 62 | 62 | ||
| 63 | /* This is to declare cuserid. */ | 63 | /* This is to declare cuserid. */ |
| 64 | #include <unistd.h> | 64 | #include <unistd.h> |
| 65 | |||
| 66 | #include <ignore-value.h> | ||
| 65 | 67 | ||
| 66 | /* Type definitions */ | 68 | /* Type definitions */ |
| 67 | 69 | ||
| @@ -405,8 +407,8 @@ close_the_streams (void) | |||
| 405 | for (rem = the_streams; | 407 | for (rem = the_streams; |
| 406 | rem != ((stream_list) NULL); | 408 | rem != ((stream_list) NULL); |
| 407 | rem = rem->rest_streams) | 409 | rem = rem->rest_streams) |
| 408 | no_problems = (no_problems && | 410 | if (no_problems && (*rem->action) (rem->handle) != 0) |
| 409 | ((*rem->action) (rem->handle) == 0)); | 411 | error ("output error", NULL); |
| 410 | the_streams = ((stream_list) NULL); | 412 | the_streams = ((stream_list) NULL); |
| 411 | return (no_problems ? EXIT_SUCCESS : EXIT_FAILURE); | 413 | return (no_problems ? EXIT_SUCCESS : EXIT_FAILURE); |
| 412 | } | 414 | } |
| @@ -427,6 +429,8 @@ my_fclose (FILE *the_file) | |||
| 427 | { | 429 | { |
| 428 | putc ('\n', the_file); | 430 | putc ('\n', the_file); |
| 429 | fflush (the_file); | 431 | fflush (the_file); |
| 432 | if (ferror (the_file)) | ||
| 433 | return EOF; | ||
| 430 | return fclose (the_file); | 434 | return fclose (the_file); |
| 431 | } | 435 | } |
| 432 | 436 | ||
| @@ -496,7 +500,7 @@ put_line (const char *string) | |||
| 496 | } | 500 | } |
| 497 | } | 501 | } |
| 498 | /* Output that much, then break the line. */ | 502 | /* Output that much, then break the line. */ |
| 499 | fwrite (s, 1, breakpos - s, rem->handle); | 503 | ignore_value (fwrite (s, 1, breakpos - s, rem->handle)); |
| 500 | column = 8; | 504 | column = 8; |
| 501 | 505 | ||
| 502 | /* Skip whitespace and prepare to print more addresses. */ | 506 | /* Skip whitespace and prepare to print more addresses. */ |
| @@ -729,6 +733,9 @@ main (int argc, char **argv) | |||
| 729 | put_string (buf); | 733 | put_string (buf); |
| 730 | } | 734 | } |
| 731 | 735 | ||
| 736 | if (no_problems && (ferror (stdin) || fclose (stdin) != 0)) | ||
| 737 | error ("input error", NULL); | ||
| 738 | |||
| 732 | exit (close_the_streams ()); | 739 | exit (close_the_streams ()); |
| 733 | } | 740 | } |
| 734 | 741 | ||
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index f0aa222986a..f900ea42e91 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c | |||
| @@ -617,7 +617,7 @@ write_globals (void) | |||
| 617 | qsort (globals, num_globals, sizeof (struct global), compare_globals); | 617 | qsort (globals, num_globals, sizeof (struct global), compare_globals); |
| 618 | for (i = 0; i < num_globals; ++i) | 618 | for (i = 0; i < num_globals; ++i) |
| 619 | { | 619 | { |
| 620 | char *type; | 620 | char const *type; |
| 621 | 621 | ||
| 622 | switch (globals[i].type) | 622 | switch (globals[i].type) |
| 623 | { | 623 | { |
| @@ -658,12 +658,8 @@ scan_c_file (char *filename, const char *mode) | |||
| 658 | FILE *infile; | 658 | FILE *infile; |
| 659 | register int c; | 659 | register int c; |
| 660 | register int commas; | 660 | register int commas; |
| 661 | register int defunflag; | ||
| 662 | register int defvarperbufferflag; | ||
| 663 | register int defvarflag; | ||
| 664 | int minargs, maxargs; | 661 | int minargs, maxargs; |
| 665 | int extension = filename[strlen (filename) - 1]; | 662 | int extension = filename[strlen (filename) - 1]; |
| 666 | enum global_type type; | ||
| 667 | 663 | ||
| 668 | if (extension == 'o') | 664 | if (extension == 'o') |
| 669 | filename[strlen (filename) - 1] = 'c'; | 665 | filename[strlen (filename) - 1] = 'c'; |
| @@ -693,6 +689,10 @@ scan_c_file (char *filename, const char *mode) | |||
| 693 | while (!feof (infile)) | 689 | while (!feof (infile)) |
| 694 | { | 690 | { |
| 695 | int doc_keyword = 0; | 691 | int doc_keyword = 0; |
| 692 | int defunflag = 0; | ||
| 693 | int defvarperbufferflag = 0; | ||
| 694 | int defvarflag = 0; | ||
| 695 | enum global_type type = INVALID; | ||
| 696 | 696 | ||
| 697 | if (c != '\n' && c != '\r') | 697 | if (c != '\n' && c != '\r') |
| 698 | { | 698 | { |
| @@ -726,7 +726,6 @@ scan_c_file (char *filename, const char *mode) | |||
| 726 | continue; | 726 | continue; |
| 727 | 727 | ||
| 728 | defvarflag = 1; | 728 | defvarflag = 1; |
| 729 | defunflag = 0; | ||
| 730 | 729 | ||
| 731 | c = getc (infile); | 730 | c = getc (infile); |
| 732 | defvarperbufferflag = (c == 'P'); | 731 | defvarperbufferflag = (c == 'P'); |
| @@ -738,8 +737,6 @@ scan_c_file (char *filename, const char *mode) | |||
| 738 | type = LISP_OBJECT; | 737 | type = LISP_OBJECT; |
| 739 | else if (c == 'B') | 738 | else if (c == 'B') |
| 740 | type = BOOLEAN; | 739 | type = BOOLEAN; |
| 741 | else | ||
| 742 | type = INVALID; | ||
| 743 | } | 740 | } |
| 744 | 741 | ||
| 745 | c = getc (infile); | 742 | c = getc (infile); |
| @@ -758,8 +755,6 @@ scan_c_file (char *filename, const char *mode) | |||
| 758 | continue; | 755 | continue; |
| 759 | c = getc (infile); | 756 | c = getc (infile); |
| 760 | defunflag = c == 'U'; | 757 | defunflag = c == 'U'; |
| 761 | defvarflag = 0; | ||
| 762 | defvarperbufferflag = 0; | ||
| 763 | } | 758 | } |
| 764 | else continue; | 759 | else continue; |
| 765 | 760 | ||
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c44c491cad0..8d891b22fd0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,117 @@ | |||
| 1 | 2011-03-01 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * emacs-lisp/cl-macs.el (lexical-let*): Fix argument name in docstring. | ||
| 4 | |||
| 5 | 2011-03-01 Glenn Morris <rgm@gnu.org> | ||
| 6 | |||
| 7 | * calendar/cal-hebrew.el (calendar-hebrew-birthday, diary-hebrew-date): | ||
| 8 | Rename and rework functions added in previous change. | ||
| 9 | |||
| 10 | 2011-03-01 Ed Reingold <reingold@emr.cs.iit.edu> | ||
| 11 | |||
| 12 | * calendar/cal-hebrew.el (hebrew-calendar-birthday) | ||
| 13 | (diary-hebrew-birthday): New functions. | ||
| 14 | |||
| 15 | 2011-03-01 Glenn Morris <rgm@gnu.org> | ||
| 16 | |||
| 17 | * dired.el (dired-safe-switches-p): Beef it up. | ||
| 18 | (dired-actual-switches): Use it for the safe-local prop. (Bug#3230) | ||
| 19 | |||
| 20 | 2011-03-01 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 21 | |||
| 22 | * dired.el (dired-safe-switches-p): New function. | ||
| 23 | |||
| 24 | 2011-03-01 Glenn Morris <rgm@gnu.org> | ||
| 25 | |||
| 26 | * files.el (dir-locals-collect-variables): | ||
| 27 | Add the ability to exclude subdirectories. (Bug#8100) | ||
| 28 | |||
| 29 | * dired-x.el (dired-omit-here-always): Add `(subdirs . nil)' to locals. | ||
| 30 | |||
| 31 | 2011-02-28 Christoph Scholtes <cschol2112@googlemail.com> | ||
| 32 | |||
| 33 | * ido.el (ido-everywhere): Doc fix. | ||
| 34 | (ido-mode): Doc fix. | ||
| 35 | |||
| 36 | 2011-02-28 Glenn Morris <rgm@gnu.org> | ||
| 37 | |||
| 38 | * dired-x.el (dired-guess-shell-alist-default): Use \\', not $. | ||
| 39 | |||
| 40 | 2011-02-28 Michael Albinus <michael.albinus@gmx.de> | ||
| 41 | |||
| 42 | * net/tramp-cmds.el (tramp-append-tramp-buffers): Dump load-path | ||
| 43 | shadows. | ||
| 44 | |||
| 45 | 2011-02-28 Antoine Levitt <antoine.levitt@gmail.com> (tiny change) | ||
| 46 | |||
| 47 | * dired-x.el (dired-guess-shell-alist-default): Add rar and 7z. | ||
| 48 | |||
| 49 | 2011-02-28 Juanma Barranquero <lekktu@gmail.com> | ||
| 50 | |||
| 51 | * emacs-lisp/pcase.el (pcase, pcase--u1, pcase--q1): | ||
| 52 | Fix typos in docstrings. | ||
| 53 | |||
| 54 | 2011-02-28 Stephen Berman <stephen.berman@gmx.net> | ||
| 55 | |||
| 56 | * dired-aux.el (dired-update-file-line): | ||
| 57 | Fix 2010-11-09 change. (Bug#8131) | ||
| 58 | |||
| 59 | 2011-02-28 Eli Zaretskii <eliz@gnu.org> | ||
| 60 | |||
| 61 | * international/mule-cmds.el (set-default-coding-systems): Use the | ||
| 62 | -unix variant of encoding in default-keyboard-coding-system. | ||
| 63 | (Bug#8122) | ||
| 64 | |||
| 65 | 2011-02-27 Chong Yidong <cyd@stupidchicken.com> | ||
| 66 | |||
| 67 | * facemenu.el (list-colors-display): Use with-help-window (Bug#8048). | ||
| 68 | |||
| 69 | 2011-02-27 Prestoo Ten <prestooten@gmail.com> (tiny change) | ||
| 70 | |||
| 71 | * term/screen.el: New file (Bug#2650). | ||
| 72 | |||
| 73 | 2011-02-27 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 74 | |||
| 75 | * emacs-lisp/pcase.el (pcase--if): Try to invert test to reduce depth. | ||
| 76 | (pcase-mutually-exclusive-predicates): New var. | ||
| 77 | (pcase--split-consp, pcase--split-pred): Use it. | ||
| 78 | (pcase--split-equal, pcase--split-member): When splitting against | ||
| 79 | a pure predicate, run it to know the outcome. | ||
| 80 | (pcase--u1): Mark vars that are actually used. | ||
| 81 | (pcase--q1): Avoid introducing unused vars. | ||
| 82 | |||
| 83 | 2011-02-27 Jay Belanger <jay.p.belanger@gmail.com> | ||
| 84 | |||
| 85 | * calc/calc-ext.el (calc-init-extensions): | ||
| 86 | Autoload `calc-l-prefix-help' instead of `calc-ul-prefix-help'. | ||
| 87 | |||
| 88 | * calc/calc-math.el (calcFunc-log10): Don't signal an error in | ||
| 89 | symbolic mode. | ||
| 90 | |||
| 91 | * calc/calc-vec.el (calcFunc-subscr): Return nil if the first | ||
| 92 | argument is a variable. | ||
| 93 | |||
| 94 | 2011-02-26 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 95 | |||
| 96 | * emacs-lisp/assoc.el: Remove misleading `sort' (bug#8126). | ||
| 97 | (aput, adelete, amake): Replace `eval' -> `symbol-value'. | ||
| 98 | Suggested by Michael Heerdegen <michael_heerdegen@web.de>. | ||
| 99 | |||
| 100 | 2011-02-25 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 101 | |||
| 102 | * password-cache.el (password-in-cache-p): Convenience function to | ||
| 103 | check if a key is in the cache, even if the value is nil. | ||
| 104 | |||
| 105 | 2011-02-25 Jambunathan K <kjambunathan@gmail.com> | ||
| 106 | |||
| 107 | * emacs-lisp/package-x.el (package--archive-contents-from-url) | ||
| 108 | (package--archive-contents-from-file): New functions. | ||
| 109 | (package-update-news-on-upload): New var. | ||
| 110 | (package-upload-buffer-internal): Extract archive-contents from | ||
| 111 | package-archive-upload-base if it is not found at archive-url. | ||
| 112 | Obey package-update-news-on-upload. | ||
| 113 | (package-upload-buffer, package-upload-file): Doc fix. | ||
| 114 | |||
| 1 | 2011-02-24 Glenn Morris <rgm@gnu.org> | 115 | 2011-02-24 Glenn Morris <rgm@gnu.org> |
| 2 | 116 | ||
| 3 | * files-x.el (modify-dir-local-variable): Handle dir-locals from | 117 | * files-x.el (modify-dir-local-variable): Handle dir-locals from |
| @@ -1461,8 +1575,7 @@ | |||
| 1461 | (allout-command-prefix) (allout-prefixed-keybindings) | 1575 | (allout-command-prefix) (allout-prefixed-keybindings) |
| 1462 | (allout-unprefixed-keybindings): | 1576 | (allout-unprefixed-keybindings): |
| 1463 | Use allout-compose-and-institute-keymap to process the bindings. | 1577 | Use allout-compose-and-institute-keymap to process the bindings. |
| 1464 | (allout-unprefixed-keybindings): Remove extraneous '?' question | 1578 | (allout-unprefixed-keybindings): Remove extraneous '?' question marks. |
| 1465 | marks. | ||
| 1466 | (allout-prefixed-keybindings): Elide binding to (prefixed) \C-h - | 1579 | (allout-prefixed-keybindings): Elide binding to (prefixed) \C-h - |
| 1467 | user can customize if they want to use that binding. | 1580 | user can customize if they want to use that binding. |
| 1468 | Bind allout-copy-topic-as-kill to (prefixed) \M-k. | 1581 | Bind allout-copy-topic-as-kill to (prefixed) \M-k. |
| @@ -1471,14 +1584,12 @@ | |||
| 1471 | (allout-hotspot-key-handler): Remove attempt to resolve the key | 1584 | (allout-hotspot-key-handler): Remove attempt to resolve the key |
| 1472 | through the literal key-string lookup on allout-keybindings-list. | 1585 | through the literal key-string lookup on allout-keybindings-list. |
| 1473 | That probably hasn't worked for a Long Time, and removal of | 1586 | That probably hasn't worked for a Long Time, and removal of |
| 1474 | allout-keybindings-list further simplifies the keybindings | 1587 | allout-keybindings-list further simplifies the keybindings situation. |
| 1475 | situation. | ||
| 1476 | (allout-pre-command-business): Use allout-mode-map-value instead | 1588 | (allout-pre-command-business): Use allout-mode-map-value instead |
| 1477 | of allout-mode-map. | 1589 | of allout-mode-map. |
| 1478 | (allout-preempt-trailing-ctrl-h): Remove. The user can customize | 1590 | (allout-preempt-trailing-ctrl-h): Remove. The user can customize |
| 1479 | the bindings if they want to use a keybinding having a trailing | 1591 | the bindings if they want to use a keybinding having a trailing |
| 1480 | \C-h. No deprecation needed since this feature was never in a | 1592 | \C-h. No deprecation needed since this feature was never in a release. |
| 1481 | release. | ||
| 1482 | (allout-keybindings-list): Remove. It's not been useful for a | 1593 | (allout-keybindings-list): Remove. It's not been useful for a |
| 1483 | while. (See allout-hotspot-key-handler changes, above.) | 1594 | while. (See allout-hotspot-key-handler changes, above.) |
| 1484 | (produce-allout-mode-map): Remove. Consolidate into | 1595 | (produce-allout-mode-map): Remove. Consolidate into |
| @@ -2660,7 +2771,7 @@ | |||
| 2660 | this original name from `bookmark-name-from-record' reverting part | 2771 | this original name from `bookmark-name-from-record' reverting part |
| 2661 | of 2010-12-08T08:09:27Z!kfogel@red-bean.com / kfogel@red-bean.com-20101208080927-5j9jqnb2xvcw4ogm. | 2772 | of 2010-12-08T08:09:27Z!kfogel@red-bean.com / kfogel@red-bean.com-20101208080927-5j9jqnb2xvcw4ogm. |
| 2662 | As Drew Adams pointed out, there was no reason to cause churn for | 2773 | As Drew Adams pointed out, there was no reason to cause churn for |
| 2663 | third-party callers. | 2774 | third-party callers. (Bug#7609) |
| 2664 | 2775 | ||
| 2665 | 2010-12-12 Alan Mackenzie <acm@muc.de> | 2776 | 2010-12-12 Alan Mackenzie <acm@muc.de> |
| 2666 | 2777 | ||
| @@ -3006,7 +3117,6 @@ | |||
| 3006 | 3117 | ||
| 3007 | * net/tramp-cmds.el: Remove solved todo item. | 3118 | * net/tramp-cmds.el: Remove solved todo item. |
| 3008 | 3119 | ||
| 3009 | * net/tramp-efs.el: | ||
| 3010 | * net/tramp-ftp.el: | 3120 | * net/tramp-ftp.el: |
| 3011 | * net/tramp-gvfs.el: | 3121 | * net/tramp-gvfs.el: |
| 3012 | * net/tramp-gw.el: | 3122 | * net/tramp-gw.el: |
| @@ -4620,7 +4730,7 @@ | |||
| 4620 | 4730 | ||
| 4621 | 2010-10-24 Michael McNamara <mac@mail.brushroad.com> | 4731 | 2010-10-24 Michael McNamara <mac@mail.brushroad.com> |
| 4622 | 4732 | ||
| 4623 | * verilog-mode.el (verilog-directive-re): Make this variable | 4733 | * progmodes/verilog-mode.el (verilog-directive-re): Make this variable |
| 4624 | auto-built for efficiency of execution and updating. | 4734 | auto-built for efficiency of execution and updating. |
| 4625 | (verilog-extended-complete-re): Support 'pure' fucntion & task | 4735 | (verilog-extended-complete-re): Support 'pure' fucntion & task |
| 4626 | declarations (these have no bodies). | 4736 | declarations (these have no bodies). |
| @@ -4654,7 +4764,7 @@ | |||
| 4654 | 4764 | ||
| 4655 | 2010-10-24 Wilson Snyder <wsnyder@wsnyder.org> | 4765 | 2010-10-24 Wilson Snyder <wsnyder@wsnyder.org> |
| 4656 | 4766 | ||
| 4657 | * verilog-mode.el (verilog-auto-inst, verilog-gate-ios) | 4767 | * progmodes/verilog-mode.el (verilog-auto-inst, verilog-gate-ios) |
| 4658 | (verilog-gate-keywords, verilog-read-sub-decls) | 4768 | (verilog-gate-keywords, verilog-read-sub-decls) |
| 4659 | (verilog-read-sub-decls-gate, verilog-read-sub-decls-gate-ios) | 4769 | (verilog-read-sub-decls-gate, verilog-read-sub-decls-gate-ios) |
| 4660 | (verilog-read-sub-decls-line, verilog-read-sub-decls-sig): Support | 4770 | (verilog-read-sub-decls-line, verilog-read-sub-decls-sig): Support |
| @@ -6251,8 +6361,8 @@ | |||
| 6251 | Use `tramp-compat-funcall'. | 6361 | Use `tramp-compat-funcall'. |
| 6252 | 6362 | ||
| 6253 | * net/tramp.el (tramp-process-actions): | 6363 | * net/tramp.el (tramp-process-actions): |
| 6254 | * net/tramp-gvfs.el (tramp-handle-vc-registered): | 6364 | * net/tramp-gvfs.el (tramp-gvfs-handler-askquestion): |
| 6255 | * net/tramp-sh.el (tramp-gvfs-handler-askquestion) | 6365 | * net/tramp-sh.el (tramp-handle-vc-registered) |
| 6256 | (tramp-get-remote-stat, tramp-get-remote-readlink): | 6366 | (tramp-get-remote-stat, tramp-get-remote-readlink): |
| 6257 | Use `tramp-compat-with-temp-message'. | 6367 | Use `tramp-compat-with-temp-message'. |
| 6258 | 6368 | ||
| @@ -7299,48 +7409,6 @@ | |||
| 7299 | 7409 | ||
| 7300 | * whitespace.el (whitespace-style): Adjust type declaration. | 7410 | * whitespace.el (whitespace-style): Adjust type declaration. |
| 7301 | 7411 | ||
| 7302 | 2010-08-26 Magnus Henoch <magnus.henoch@gmail.com> | ||
| 7303 | |||
| 7304 | * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Do not pass | ||
| 7305 | empty argument to gvfs-copy. | ||
| 7306 | |||
| 7307 | 2010-08-26 Chong Yidong <cyd@stupidchicken.com> | ||
| 7308 | |||
| 7309 | * net/tramp-compat.el (tramp-compat-delete-file): Rewrite to | ||
| 7310 | handle new TRASH arg of `delete-file'. | ||
| 7311 | |||
| 7312 | 2010-08-26 Christian Lynbech <christian.lynbech@tieto.com> (tiny change) | ||
| 7313 | |||
| 7314 | * net/tramp.el (tramp-handle-insert-directory): Don't use | ||
| 7315 | `forward-word', its default syntax could be changed. | ||
| 7316 | |||
| 7317 | 2010-08-26 Toru TSUNEYOSHI <t_tuneyosi@hotmail.com> | ||
| 7318 | Michael Albinus <michael.albinus@gmx.de> | ||
| 7319 | |||
| 7320 | Implement compression for inline methods. | ||
| 7321 | |||
| 7322 | * net/tramp.el (tramp-inline-compress-start-size): New defcustom. | ||
| 7323 | (tramp-copy-size-limit): Allow also nil. | ||
| 7324 | (tramp-inline-compress-commands): New defconst. | ||
| 7325 | (tramp-find-inline-compress, tramp-get-inline-compress) | ||
| 7326 | (tramp-get-inline-coding): New defuns. | ||
| 7327 | (tramp-get-remote-coding, tramp-get-local-coding): Remove, | ||
| 7328 | replaced by `tramp-get-inline-coding'. | ||
| 7329 | (tramp-handle-file-local-copy, tramp-handle-write-region) | ||
| 7330 | (tramp-method-out-of-band-p): Use `tramp-get-inline-coding'. | ||
| 7331 | |||
| 7332 | 2010-08-26 Noah Lavine <noah549@gmail.com> (tiny change) | ||
| 7333 | |||
| 7334 | Detect ssh 'ControlMaster' argument automatically in some cases. | ||
| 7335 | |||
| 7336 | * net/tramp.el (tramp-detect-ssh-controlmaster): New defun. | ||
| 7337 | (tramp-default-method): Use it. | ||
| 7338 | |||
| 7339 | 2010-08-26 Karel KlÃÄ <kklic@redhat.com> | ||
| 7340 | |||
| 7341 | * net/tramp.el (tramp-file-name-for-operation): | ||
| 7342 | Add file-selinux-context. | ||
| 7343 | |||
| 7344 | 2010-08-26 Åukasz Stelmach <lukasz.stelmach@iem.pw.edu.pl> (tiny change) | 7412 | 2010-08-26 Åukasz Stelmach <lukasz.stelmach@iem.pw.edu.pl> (tiny change) |
| 7345 | 7413 | ||
| 7346 | * play/cookie1.el (read-cookie): Fix off-by-one error (bug#6921). | 7414 | * play/cookie1.el (read-cookie): Fix off-by-one error (bug#6921). |
| @@ -7372,210 +7440,14 @@ | |||
| 7372 | 7440 | ||
| 7373 | Sync with Tramp 2.1.19. | 7441 | Sync with Tramp 2.1.19. |
| 7374 | 7442 | ||
| 7375 | * net/tramp-cmds.el (tramp-cleanup-all-connections) | 7443 | * net/tramp-gvfs.el (tramp-gvfs-handle-write-region): Protect |
| 7376 | (tramp-reporter-dump-variable, tramp-load-report-modules) | 7444 | deleting tmpfile. |
| 7377 | (tramp-append-tramp-buffers): Use `tramp-compat-funcall'. | 7445 | (tramp-gvfs-maybe-open-connection): Use `tramp-compat-funcall'. |
| 7378 | (tramp-bug): Recommend setting of `tramp-verbose' to 9. | ||
| 7379 | |||
| 7380 | * net/tramp-compat.el (top): Do not autoload | ||
| 7381 | `tramp-handle-file-remote-p'. Load tramp-util.el and tramp-vc.el | ||
| 7382 | only when `start-file-process' is not bound. | ||
| 7383 | (byte-compile-not-obsolete-vars): Define if not bound. | ||
| 7384 | (tramp-compat-funcall): New defmacro. | ||
| 7385 | (tramp-compat-line-beginning-position) | ||
| 7386 | (tramp-compat-line-end-position) | ||
| 7387 | (tramp-compat-temporary-file-directory) | ||
| 7388 | (tramp-compat-make-temp-file, tramp-compat-file-attributes) | ||
| 7389 | (tramp-compat-copy-file, tramp-compat-copy-directory) | ||
| 7390 | (tramp-compat-delete-file, tramp-compat-delete-directory) | ||
| 7391 | (tramp-compat-number-sequence, tramp-compat-process-running-p): | ||
| 7392 | Use it. | ||
| 7393 | (tramp-advice-file-expand-wildcards): Do not use | ||
| 7394 | `tramp-handle-file-remote-p'. | ||
| 7395 | (tramp-compat-make-temp-file): Simplify fallback implementation. | ||
| 7396 | (tramp-compat-copy-file): Add PRESERVE-SELINUX-CONTEXT. | ||
| 7397 | (tramp-compat-copy-tree): Remove function. | ||
| 7398 | (tramp-compat-delete-file): New defun. | ||
| 7399 | (tramp-compat-delete-directory): Provide implementation for older | ||
| 7400 | Emacsen. | ||
| 7401 | (tramp-compat-file-attributes): Handle only | ||
| 7402 | `wrong-number-of-arguments' error. | ||
| 7403 | 7446 | ||
| 7404 | * net/tramp-fish.el (tramp-fish-handle-copy-file): | 7447 | * net/tramp.el (tramp-handle-expand-file-name) |
| 7405 | Add PRESERVE_SELINUX_CONTEXT. | ||
| 7406 | (tramp-fish-handle-delete-file): Add TRASH arg. | ||
| 7407 | (tramp-fish-handle-directory-files-and-attributes): | ||
| 7408 | Do not use `tramp-fish-handle-file-attributes. | ||
| 7409 | (tramp-fish-handle-file-local-copy) | ||
| 7410 | (tramp-fish-handle-insert-file-contents) | ||
| 7411 | (tramp-fish-maybe-open-connection): Use `with-progress-reporter'. | ||
| 7412 | |||
| 7413 | * net/tramp-gvfs.el (top): Require url-util. | ||
| 7414 | (tramp-gvfs-mount-point): Remove. | ||
| 7415 | (tramp-gvfs-file-name-handler-alist): Add `file-selinux-context' | ||
| 7416 | and `set-file-selinux-context'. | ||
| 7417 | (tramp-gvfs-stringify-dbus-message, tramp-gvfs-send-command) | ||
| 7418 | (tramp-gvfs-handle-file-selinux-context) | ||
| 7419 | (tramp-gvfs-handle-set-file-selinux-context): New defuns. | ||
| 7420 | (with-tramp-dbus-call-method): Format trace message. | ||
| 7421 | (tramp-gvfs-handle-copy-file): Handle PRESERVE-SELINUX-CONTEXT. | ||
| 7422 | (tramp-gvfs-handle-copy-file, tramp-gvfs-handle-rename-file): | ||
| 7423 | Implement backup call, when operation on local files fails. | ||
| 7424 | Use progress reporter. Flush properties of changed files. | ||
| 7425 | (tramp-gvfs-handle-delete-file): Add TRASH arg. | ||
| 7426 | Use `tramp-compat-delete-file'. | ||
| 7427 | (tramp-gvfs-handle-expand-file-name): Expand "~/". | ||
| 7428 | (tramp-gvfs-handle-make-directory): Make more traces. | ||
| 7429 | (tramp-gvfs-handle-write-region): Protect deleting tmpfile. | ||
| 7430 | (tramp-gvfs-url-file-name): Hexify file name in url. | ||
| 7431 | (tramp-gvfs-fuse-file-name): Take also prefix (like dav shares) | ||
| 7432 | into account for the resulting file name. | ||
| 7433 | (tramp-gvfs-handler-askquestion): Preserve current message, in | ||
| 7434 | order to let progress reporter continue afterwards. (Bug#6257) | ||
| 7435 | Return dummy mountpoint, when the answer is "no". | ||
| 7436 | See `tramp-gvfs-maybe-open-connection'. | ||
| 7437 | (tramp-gvfs-handler-mounted-unmounted) | ||
| 7438 | (tramp-gvfs-connection-mounted-p): Test also for new mountspec | ||
| 7439 | attribute "default_location". Set "prefix" property. | ||
| 7440 | Handle default-location. | ||
| 7441 | (tramp-gvfs-mount-spec): Return both prefix and mountspec. | ||
| 7442 | (tramp-gvfs-maybe-open-connection): Test, whether mountpoint | ||
| 7443 | exists. Raise an error, if not (due to a corresponding answer | ||
| 7444 | "no" in interactive questions, for example). | ||
| 7445 | Use `tramp-compat-funcall'. | ||
| 7446 | |||
| 7447 | * net/tramp-imap.el (top): Autoload `epg-make-context'. | ||
| 7448 | (tramp-imap-handle-copy-file): Add PRESERVE-SELINUX-CONTEXT. | ||
| 7449 | (tramp-imap-do-copy-or-rename-file) | ||
| 7450 | (tramp-imap-handle-insert-file-contents) | ||
| 7451 | (tramp-imap-handle-file-local-copy): Use `with-progress-reporter'. | ||
| 7452 | (tramp-imap-handle-delete-file): Add TRASH arg. | ||
| 7453 | |||
| 7454 | * net/tramp-smb.el (tramp-smb-handle-copy-file): | ||
| 7455 | Add PRESERVE-SELINUX-CONTEXT. | ||
| 7456 | (tramp-smb-handle-copy-file) | ||
| 7457 | (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file) | ||
| 7458 | (tramp-smb-handle-write-region, tramp-smb-maybe-open-connection): | ||
| 7459 | Use `with-progress-reporter'. | ||
| 7460 | (tramp-smb-handle-delete-file): Add TRASH arg. | ||
| 7461 | |||
| 7462 | * net/tramp.el (tramp-methods): Move hostname to the end in all | ||
| 7463 | ssh `tramp-login-args'. Add `tramp-async-args' attribute where | ||
| 7464 | appropriate. | ||
| 7465 | (tramp-verbose): Describe verbose level 9. | ||
| 7466 | (tramp-completion-function-alist) | ||
| 7467 | (tramp-file-name-regexp, tramp-chunksize) | ||
| 7468 | (tramp-local-coding-commands, tramp-remote-coding-commands) | ||
| 7469 | (with-connection-property, tramp-completion-mode-p) | ||
| 7470 | (tramp-action-process-alive, tramp-action-out-of-band) | ||
| 7471 | (tramp-check-for-regexp, tramp-file-name-p, tramp-equal-remote) | ||
| 7472 | (tramp-exists-file-name-handler): Fix docstring. | ||
| 7473 | (tramp-remote-process-environment): Use `format' instead of | ||
| 7474 | `concat'. Protect version string by apostroph. | ||
| 7475 | (tramp-shell-prompt-pattern): Do not use a shy group in case of | ||
| 7476 | XEmacs. | ||
| 7477 | (tramp-file-name-regexp-unified) | ||
| 7478 | (tramp-completion-file-name-regexp-unified): On W32 systems, do | ||
| 7479 | not regard the volume letter as remote filename. (Bug#5447) | ||
| 7480 | (tramp-perl-file-attributes) | ||
| 7481 | (tramp-perl-directory-files-and-attributes): Don't pass "$3". | ||
| 7482 | (tramp-vc-registered-read-file-names): Read input as | ||
| 7483 | here-document, otherwise the command could exceed maximum length | ||
| 7484 | of command line. | ||
| 7485 | (tramp-file-name-handler-alist): Add `file-selinux-context' and | ||
| 7486 | `set-file-selinux-context'. | ||
| 7487 | (tramp-debug-message): Add `tramp-compat-funcall' to ignored | ||
| 7488 | backtrace functions. | ||
| 7489 | (tramp-error-with-buffer): Don't show the connection buffer when | ||
| 7490 | we are in completion mode. | ||
| 7491 | (tramp-progress-reporter-update, tramp-remote-selinux-p) | ||
| 7492 | (tramp-handle-file-selinux-context) | ||
| 7493 | (tramp-handle-set-file-selinux-context, tramp-process-sentinel) | ||
| 7494 | (tramp-connectable-p, tramp-open-shell, tramp-get-remote-trash): | ||
| 7495 | New defuns. | ||
| 7496 | (with-progress-reporter): New defmacro. | ||
| 7497 | (tramp-debug-outline-regexp): New defconst. | ||
| 7498 | (top, tramp-rfn-eshadow-setup-minibuffer) | ||
| 7499 | (tramp-rfn-eshadow-update-overlay, tramp-handle-set-file-times) | ||
| 7500 | (tramp-handle-dired-compress-file, tramp-handle-shell-command) | ||
| 7501 | (tramp-completion-mode-p, tramp-check-for-regexp) | ||
| 7502 | (tramp-open-connection-setup-interactive-shell) | ||
| 7503 | (tramp-compute-multi-hops, tramp-read-passwd, tramp-clear-passwd) | ||
| 7504 | (tramp-time-diff, tramp-coding-system-change-eol-conversion) | ||
| 7505 | (tramp-set-process-query-on-exit-flag, tramp-unload-tramp): | ||
| 7506 | Use `tramp-compat-funcall'. | ||
| 7507 | (tramp-handle-make-symbolic-link): Flush file properties. | ||
| 7508 | (tramp-handle-load, tramp-handle-file-local-copy) | ||
| 7509 | (tramp-handle-insert-file-contents, tramp-handle-write-region) | ||
| 7510 | (tramp-handle-vc-registered, tramp-maybe-send-script) | ||
| 7511 | (tramp-find-shell): Use `with-progress-reporter'. | ||
| 7512 | (tramp-do-file-attributes-with-stat): Add space in format string, | ||
| 7513 | in order to work around a bug in pdksh. Reported by Gilles Pion | ||
| 7514 | <gpion@lfdj.com>. | ||
| 7515 | (tramp-handle-verify-visited-file-modtime): Do not send a command | ||
| 7516 | when the connection is not established. | ||
| 7517 | (tramp-handle-set-file-times): Simplify the check for utc. | ||
| 7518 | (tramp-handle-directory-files-and-attributes) | ||
| 7519 | (tramp-get-remote-path): Use `copy-tree'. | ||
| 7520 | (tramp-completion-handle-file-name-all-completions): Ensure, that | ||
| 7521 | non remote files are still checked. Oops. | ||
| 7522 | (tramp-handle-copy-file, tramp-do-copy-or-rename-file): | ||
| 7523 | Handle PRESERVE-SELINUX-CONTEXT. | ||
| 7524 | (tramp-do-copy-or-rename-file): Add progress reporter. | ||
| 7525 | (tramp-do-copy-or-rename-file-directly): Do not use | ||
| 7526 | `tramp-handle-file-remote-p'. | ||
| 7527 | (tramp-do-copy-or-rename-file-out-of-band): | ||
| 7528 | Use `tramp-compat-delete-directory'. | ||
| 7529 | (tramp-do-copy-or-rename-file-out-of-band) | ||
| 7530 | (tramp-compute-multi-hops, tramp-maybe-open-connection): | ||
| 7531 | Use `format-spec-make'. | ||
| 7532 | (tramp-handle-delete-file): Add TRASH arg. | ||
| 7533 | (tramp-handle-dired-uncache): Flush directory cache, not only file | ||
| 7534 | cache. | ||
| 7535 | (tramp-handle-expand-file-name) | ||
| 7536 | (tramp-completion-handle-file-name-all-completions) | 7448 | (tramp-completion-handle-file-name-all-completions) |
| 7537 | (tramp-completion-handle-file-name-completion): | 7449 | (tramp-completion-handle-file-name-completion): |
| 7538 | Use `tramp-connectable-p'. | 7450 | Use `tramp-connectable-p'. |
| 7539 | (tramp-handle-start-file-process): Set connection property "vec". | ||
| 7540 | Use it, in order to invalidate file caches. Check only for | ||
| 7541 | `remote-tty' process property. | ||
| 7542 | Implement tty setting. (Bug#4604, Bug#6360) | ||
| 7543 | (tramp-file-name-for-operation): Add `call-process-region' and | ||
| 7544 | `set-file-selinux-context'. | ||
| 7545 | (tramp-find-foreign-file-name-handler) | ||
| 7546 | (tramp-advice-make-auto-save-file-name) | ||
| 7547 | (tramp-set-auto-save-file-modes): Remove superfluous check for | ||
| 7548 | `stringp'. This is done inside `tramp-tramp-file-p'. | ||
| 7549 | (tramp-file-name-handler): Trace 'quit. Catch the error for some | ||
| 7550 | operations when we are in completion mode. This gives the user | ||
| 7551 | the chance to correct the file name in the minibuffer. | ||
| 7552 | (tramp-completion-mode-p): Use `non-essential'. | ||
| 7553 | (tramp-handle-file-name-all-completions): Backward/ XEmacs | ||
| 7554 | compatibility: Use `completion-ignore-case' if | ||
| 7555 | `read-file-name-completion-ignore-case' does not exist. | ||
| 7556 | (tramp-get-debug-buffer): Use `tramp-debug-outline-regexp'. | ||
| 7557 | (tramp-find-shell, tramp-open-connection-setup-interactive-shell): | ||
| 7558 | `tramp-open-shell'. | ||
| 7559 | (tramp-action-password): Hide password prompt before next run. | ||
| 7560 | (tramp-process-actions): Widen connection buffer for the trace. | ||
| 7561 | (tramp-open-connection-setup-interactive-shell): Set `remote-tty' | ||
| 7562 | process property. Trace stty settings if `tramp-verbose' >= 9. | ||
| 7563 | Apply workaround for IRIX64 bug. Move argument of last | ||
| 7564 | `tramp-send-command' where it belongs to. | ||
| 7565 | (tramp-maybe-open-connection): Use `async-args' and `gw-args' in | ||
| 7566 | front of `login-args'. | ||
| 7567 | (tramp-get-ls-command, tramp-get-ls-command-with-dired): Run tests | ||
| 7568 | on "/dev/null" instead of "/". | ||
| 7569 | (tramp-get-ls-command-with-dired): Make test for "--dired" | ||
| 7570 | stronger. | ||
| 7571 | (tramp-set-auto-save-file-modes): Adapt version check. | ||
| 7572 | (tramp-set-process-query-on-exit-flag): Fix wrong parentheses. | ||
| 7573 | (tramp-handle-process-file): Call the program in a subshell, in | ||
| 7574 | order to preserve working directory. | ||
| 7575 | (tramp-handle-shell-command): Don't use hard-wired "/bin/sh" but | ||
| 7576 | `tramp-remote-sh' from `tramp-methods'. | ||
| 7577 | (tramp-get-ls-command): Make test for "--color=never" stronger. | ||
| 7578 | (tramp-check-for-regexp): Use (forward-line 1). | ||
| 7579 | 7451 | ||
| 7580 | * net/trampver.el: Update release number. | 7452 | * net/trampver.el: Update release number. |
| 7581 | 7453 | ||
| @@ -9847,9 +9719,8 @@ | |||
| 9847 | * net/tramp-ftp.el (tramp-ftp-file-name-handler): | 9719 | * net/tramp-ftp.el (tramp-ftp-file-name-handler): |
| 9848 | Use `delete-file' instead of `tramp-compat-delete-file'. | 9720 | Use `delete-file' instead of `tramp-compat-delete-file'. |
| 9849 | 9721 | ||
| 9850 | * net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Rename arg. | 9722 | * net/tramp-gvfs.el (tramp-gvfs-handle-write-region): Use |
| 9851 | (tramp-gvfs-handle-write-region): Use `delete-file' instead of | 9723 | `delete-file' instead of `tramp-compat-delete-file'. |
| 9852 | `tramp-compat-delete-file'. | ||
| 9853 | 9724 | ||
| 9854 | * net/tramp-imap.el (tramp-imap-do-copy-or-rename-file): | 9725 | * net/tramp-imap.el (tramp-imap-do-copy-or-rename-file): |
| 9855 | Use `delete-file' instead of `tramp-compat-delete-file'. | 9726 | Use `delete-file' instead of `tramp-compat-delete-file'. |
diff --git a/lisp/ChangeLog.10 b/lisp/ChangeLog.10 index 83ee20fa497..1c2f2b5b015 100644 --- a/lisp/ChangeLog.10 +++ b/lisp/ChangeLog.10 | |||
| @@ -20591,7 +20591,7 @@ | |||
| 20591 | 20591 | ||
| 20592 | * viper-cmd.el (viper-change-state): Got rid of make-local-hook. | 20592 | * viper-cmd.el (viper-change-state): Got rid of make-local-hook. |
| 20593 | (viper-special-read-and-insert-char): Make C-m work right in the r | 20593 | (viper-special-read-and-insert-char): Make C-m work right in the r |
| 20594 | comand. | 20594 | command. |
| 20595 | (viper-buffer-search-enable): Fixed format string. | 20595 | (viper-buffer-search-enable): Fixed format string. |
| 20596 | 20596 | ||
| 20597 | * viper-ex.el (ex-token-alist): Use ex-set-visited-file-name | 20597 | * viper-ex.el (ex-token-alist): Use ex-set-visited-file-name |
diff --git a/lisp/ChangeLog.12 b/lisp/ChangeLog.12 index d2f7cab27f0..35572bd6105 100644 --- a/lisp/ChangeLog.12 +++ b/lisp/ChangeLog.12 | |||
| @@ -10699,9 +10699,6 @@ | |||
| 10699 | output of the next command. Reported by M Jared Finder | 10699 | output of the next command. Reported by M Jared Finder |
| 10700 | <jared@hpalace.com>. | 10700 | <jared@hpalace.com>. |
| 10701 | 10701 | ||
| 10702 | * net/tramp-vc.el (vc-user-login-name): Wrap defadvice with a test | ||
| 10703 | for `process-file', in order to let it work for older Emacsen too. | ||
| 10704 | |||
| 10705 | 2006-04-17 Ralf Angeli <angeli@iwi.uni-sb.de> | 10702 | 2006-04-17 Ralf Angeli <angeli@iwi.uni-sb.de> |
| 10706 | 10703 | ||
| 10707 | * textmodes/tex-mode.el (tex-font-lock-match-suscript): New function. | 10704 | * textmodes/tex-mode.el (tex-font-lock-match-suscript): New function. |
| @@ -11678,7 +11675,7 @@ | |||
| 11678 | make underlining work for wide characters. | 11675 | make underlining work for wide characters. |
| 11679 | (org-goto-map, org-agenda-mode-map, org-mode-map): Explicitly bind | 11676 | (org-goto-map, org-agenda-mode-map, org-mode-map): Explicitly bind |
| 11680 | TAB to `org-cycle', to make sure that no binding in | 11677 | TAB to `org-cycle', to make sure that no binding in |
| 11681 | `outline-mode-map' can supercede it. | 11678 | `outline-mode-map' can supersede it. |
| 11682 | 11679 | ||
| 11683 | 2006-03-14 Ken Manheimer <ken.manheimer@gmail.com> | 11680 | 2006-03-14 Ken Manheimer <ken.manheimer@gmail.com> |
| 11684 | 11681 | ||
| @@ -19139,7 +19136,7 @@ | |||
| 19139 | * pgg.el (pgg-decrypt): Passing along PASSPHRASE in call to | 19136 | * pgg.el (pgg-decrypt): Passing along PASSPHRASE in call to |
| 19140 | pgg-decrypt-region. | 19137 | pgg-decrypt-region. |
| 19141 | (pgg-pending-timers): A new hash for tracking the passphrase cache | 19138 | (pgg-pending-timers): A new hash for tracking the passphrase cache |
| 19142 | timers, so that new ones supercede old ones. | 19139 | timers, so that new ones supersede old ones. |
| 19143 | (pgg-add-passphrase-to-cache): Rename from | 19140 | (pgg-add-passphrase-to-cache): Rename from |
| 19144 | `pgg-add-passphrase-cache' to reduce confusion (all callers | 19141 | `pgg-add-passphrase-cache' to reduce confusion (all callers |
| 19145 | changed). Modified to cancel old timers when new ones are added. | 19142 | changed). Modified to cancel old timers when new ones are added. |
| @@ -19225,7 +19222,7 @@ | |||
| 19225 | * pgg.el (pgg-decrypt): Passing along PASSPHRASE in call to | 19222 | * pgg.el (pgg-decrypt): Passing along PASSPHRASE in call to |
| 19226 | pgg-decrypt-region. | 19223 | pgg-decrypt-region. |
| 19227 | (pgg-pending-timers): A new hash for tracking the passphrase cache | 19224 | (pgg-pending-timers): A new hash for tracking the passphrase cache |
| 19228 | timers, so that new ones supercede old ones. | 19225 | timers, so that new ones supersede old ones. |
| 19229 | (pgg-add-passphrase-to-cache): Rename from | 19226 | (pgg-add-passphrase-to-cache): Rename from |
| 19230 | `pgg-add-passphrase-cache' to reduce confusion (all callers | 19227 | `pgg-add-passphrase-cache' to reduce confusion (all callers |
| 19231 | changed). Modified to cancel old timers when new ones are added. | 19228 | changed). Modified to cancel old timers when new ones are added. |
diff --git a/lisp/ChangeLog.3 b/lisp/ChangeLog.3 index b54580ff0bc..8cafac2c0c4 100644 --- a/lisp/ChangeLog.3 +++ b/lisp/ChangeLog.3 | |||
| @@ -4906,7 +4906,7 @@ | |||
| 4906 | * two-column.el: Doc fixes. | 4906 | * two-column.el: Doc fixes. |
| 4907 | 4907 | ||
| 4908 | * loaddefs.el (function-keymap): Definition deleted; this has been | 4908 | * loaddefs.el (function-keymap): Definition deleted; this has been |
| 4909 | superceded by function-key-map. | 4909 | superseded by function-key-map. |
| 4910 | 4910 | ||
| 4911 | * gomoku.el (gomoku-mode-map): Use function key symbols, instead | 4911 | * gomoku.el (gomoku-mode-map): Use function key symbols, instead |
| 4912 | of the keypad.el facilities. | 4912 | of the keypad.el facilities. |
| @@ -6056,7 +6056,7 @@ | |||
| 6056 | and `fill-column'. Code now actually sets `left-margin' and | 6056 | and `fill-column'. Code now actually sets `left-margin' and |
| 6057 | `fill-column', as advertised. | 6057 | `fill-column', as advertised. |
| 6058 | * text-mode.el (change-log-mode): Function deleted, since it's | 6058 | * text-mode.el (change-log-mode): Function deleted, since it's |
| 6059 | been superceded by the one in add-log.el. | 6059 | been superseded by the one in add-log.el. |
| 6060 | 6060 | ||
| 6061 | 1992-06-14 Richard Stallman (rms@mole.gnu.ai.mit.edu) | 6061 | 1992-06-14 Richard Stallman (rms@mole.gnu.ai.mit.edu) |
| 6062 | 6062 | ||
| @@ -6070,7 +6070,7 @@ | |||
| 6070 | 6070 | ||
| 6071 | 1992-06-12 Jim Blandy (jimb@pogo.cs.oberlin.edu) | 6071 | 1992-06-12 Jim Blandy (jimb@pogo.cs.oberlin.edu) |
| 6072 | 6072 | ||
| 6073 | * isearch-mode.el: New package, which will probably supercede | 6073 | * isearch-mode.el: New package, which will probably supersede |
| 6074 | isearch.el. | 6074 | isearch.el. |
| 6075 | (isearch-mode-map, isearch-mode-meta-map): When initializing | 6075 | (isearch-mode-map, isearch-mode-meta-map): When initializing |
| 6076 | these, remember that vectors are no longer keymaps. | 6076 | these, remember that vectors are no longer keymaps. |
| @@ -10009,7 +10009,7 @@ | |||
| 10009 | display-time-string. | 10009 | display-time-string. |
| 10010 | (rmail-pop-up): Default display-time-hook to automatically retrieve | 10010 | (rmail-pop-up): Default display-time-hook to automatically retrieve |
| 10011 | new mail if the variable rmail-pop-up is non-nil. | 10011 | new mail if the variable rmail-pop-up is non-nil. |
| 10012 | (add-clock-handler): Removed; superceded by timer.el. | 10012 | (add-clock-handler): Removed; superseded by timer.el. |
| 10013 | 10013 | ||
| 10014 | * loaddefs.el: Removed add-clock-handler. | 10014 | * loaddefs.el: Removed add-clock-handler. |
| 10015 | 10015 | ||
| @@ -10032,7 +10032,7 @@ | |||
| 10032 | 10032 | ||
| 10033 | * loaddefs.el: Autoload for diff. | 10033 | * loaddefs.el: Autoload for diff. |
| 10034 | 10034 | ||
| 10035 | * files.el (diff): Superceded by diff.el. | 10035 | * files.el (diff): Superseded by diff.el. |
| 10036 | (diff-switches-function): Still needs to be merged into diff.el. | 10036 | (diff-switches-function): Still needs to be merged into diff.el. |
| 10037 | 10037 | ||
| 10038 | * diff.el: New file. | 10038 | * diff.el: New file. |
diff --git a/lisp/allout.el b/lisp/allout.el index d881e1177fa..ca72806b7d9 100644 --- a/lisp/allout.el +++ b/lisp/allout.el | |||
| @@ -339,7 +339,7 @@ The types of elements in the layout specification are: | |||
| 339 | -- positive numbers open to the relative depth indicated by the | 339 | -- positive numbers open to the relative depth indicated by the |
| 340 | number, but do not force already opened subtopics to be closed. | 340 | number, but do not force already opened subtopics to be closed. |
| 341 | -- 0 means to close topic -- hide all subitems. | 341 | -- 0 means to close topic -- hide all subitems. |
| 342 | : -- repeat spec -- apply the preceeding element to all siblings at | 342 | : -- repeat spec -- apply the preceding element to all siblings at |
| 343 | current level, *up to* those siblings that would be covered by specs | 343 | current level, *up to* those siblings that would be covered by specs |
| 344 | following the `:' on the list. Ie, apply to all topics at level but | 344 | following the `:' on the list. Ie, apply to all topics at level but |
| 345 | trailing ones accounted for by trailing specs. (Only the first of | 345 | trailing ones accounted for by trailing specs. (Only the first of |
| @@ -3125,7 +3125,7 @@ situation." | |||
| 3125 | nil) | 3125 | nil) |
| 3126 | ;; rationale: if any intervening items were at a lower depth, we | 3126 | ;; rationale: if any intervening items were at a lower depth, we |
| 3127 | ;; would now be on the first offspring at the target depth -- ie, | 3127 | ;; would now be on the first offspring at the target depth -- ie, |
| 3128 | ;; the preceeding item (per the search direction) must be at a | 3128 | ;; the preceding item (per the search direction) must be at a |
| 3129 | ;; lesser depth. that's all we need to check. | 3129 | ;; lesser depth. that's all we need to check. |
| 3130 | (if backward (allout-next-heading) (allout-previous-heading)) | 3130 | (if backward (allout-next-heading) (allout-previous-heading)) |
| 3131 | (if (< allout-recent-depth target-depth) | 3131 | (if (< allout-recent-depth target-depth) |
| @@ -4246,7 +4246,7 @@ With a negative argument, the item is shifted out using | |||
| 4246 | 4246 | ||
| 4247 | With an argument greater than one, shift-in the item but not its | 4247 | With an argument greater than one, shift-in the item but not its |
| 4248 | offspring, making the item into a sibling of its former children, | 4248 | offspring, making the item into a sibling of its former children, |
| 4249 | and a child of sibling that formerly preceeded it. | 4249 | and a child of sibling that formerly preceded it. |
| 4250 | 4250 | ||
| 4251 | You are not allowed to shift the first offspring of a topic | 4251 | You are not allowed to shift the first offspring of a topic |
| 4252 | inwards, because that would yield a \"containment | 4252 | inwards, because that would yield a \"containment |
| @@ -5364,7 +5364,7 @@ header and body. The elements of that list are: | |||
| 5364 | 5364 | ||
| 5365 | (goto-char start) | 5365 | (goto-char start) |
| 5366 | (beginning-of-line) | 5366 | (beginning-of-line) |
| 5367 | ;; Goto initial topic, and register preceeding stuff, if any: | 5367 | ;; Goto initial topic, and register preceding stuff, if any: |
| 5368 | (if (> (allout-goto-prefix-doublechecked) start) | 5368 | (if (> (allout-goto-prefix-doublechecked) start) |
| 5369 | ;; First topic follows beginning point -- register preliminary stuff: | 5369 | ;; First topic follows beginning point -- register preliminary stuff: |
| 5370 | (setq result | 5370 | (setq result |
diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el index fcc3ecc1ab1..ec4e902f33d 100644 --- a/lisp/calc/calc-ext.el +++ b/lisp/calc/calc-ext.el | |||
| @@ -1061,7 +1061,7 @@ calc-full-help calc-g-prefix-help calc-help-prefix | |||
| 1061 | calc-hyperbolic-prefix-help calc-inv-hyp-prefix-help calc-option-prefix-help | 1061 | calc-hyperbolic-prefix-help calc-inv-hyp-prefix-help calc-option-prefix-help |
| 1062 | calc-inverse-prefix-help calc-j-prefix-help calc-k-prefix-help | 1062 | calc-inverse-prefix-help calc-j-prefix-help calc-k-prefix-help |
| 1063 | calc-m-prefix-help calc-r-prefix-help calc-s-prefix-help | 1063 | calc-m-prefix-help calc-r-prefix-help calc-s-prefix-help |
| 1064 | calc-t-prefix-help calc-u-prefix-help calc-ul-prefix-help | 1064 | calc-t-prefix-help calc-u-prefix-help calc-l-prefix-help |
| 1065 | calc-v-prefix-help) | 1065 | calc-v-prefix-help) |
| 1066 | 1066 | ||
| 1067 | ("calc-incom" calc-begin-complex calc-begin-vector calc-comma | 1067 | ("calc-incom" calc-begin-complex calc-begin-vector calc-comma |
diff --git a/lisp/calc/calc-math.el b/lisp/calc/calc-math.el index 185ed18ed42..92af9263b28 100644 --- a/lisp/calc/calc-math.el +++ b/lisp/calc/calc-math.el | |||
| @@ -1574,7 +1574,7 @@ If this can't be done, return NIL." | |||
| 1574 | (if calc-infinite-mode | 1574 | (if calc-infinite-mode |
| 1575 | '(neg (var inf var-inf)) | 1575 | '(neg (var inf var-inf)) |
| 1576 | (math-reject-arg x "*Logarithm of zero"))) | 1576 | (math-reject-arg x "*Logarithm of zero"))) |
| 1577 | (calc-symbolic-mode (signal 'inexact-result nil)) | 1577 | ;;(calc-symbolic-mode (signal 'inexact-result nil)) |
| 1578 | ((Math-numberp x) | 1578 | ((Math-numberp x) |
| 1579 | (math-with-extra-prec 2 | 1579 | (math-with-extra-prec 2 |
| 1580 | (let ((xf (math-float x))) | 1580 | (let ((xf (math-float x))) |
diff --git a/lisp/calc/calc-vec.el b/lisp/calc/calc-vec.el index 5dfbc2d51f5..47ef3241b3e 100644 --- a/lisp/calc/calc-vec.el +++ b/lisp/calc/calc-vec.el | |||
| @@ -759,12 +759,13 @@ | |||
| 759 | (math-reject-arg n "*Index out of range"))))) | 759 | (math-reject-arg n "*Index out of range"))))) |
| 760 | 760 | ||
| 761 | (defun calcFunc-subscr (mat n &optional m) | 761 | (defun calcFunc-subscr (mat n &optional m) |
| 762 | (setq mat (calcFunc-mrow mat n)) | 762 | (if (eq (car-safe mat) 'var) nil |
| 763 | (if m | 763 | (setq mat (calcFunc-mrow mat n)) |
| 764 | (if (math-num-integerp n) | 764 | (if m |
| 765 | (calcFunc-mrow mat m) | 765 | (if (math-num-integerp n) |
| 766 | (calcFunc-mcol mat m)) | 766 | (calcFunc-mrow mat m) |
| 767 | mat)) | 767 | (calcFunc-mcol mat m)) |
| 768 | mat))) | ||
| 768 | 769 | ||
| 769 | ;;; Get the Nth column of a matrix. | 770 | ;;; Get the Nth column of a matrix. |
| 770 | (defun math-mat-col (mat n) | 771 | (defun math-mat-col (mat n) |
diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el index f2dfc3c51fe..63e7484e127 100644 --- a/lisp/calendar/cal-hebrew.el +++ b/lisp/calendar/cal-hebrew.el | |||
| @@ -792,6 +792,20 @@ from the cursor position." | |||
| 792 | (define-obsolete-function-alias 'list-yahrzeit-dates | 792 | (define-obsolete-function-alias 'list-yahrzeit-dates |
| 793 | 'calendar-hebrew-list-yahrzeits "23.1") | 793 | 'calendar-hebrew-list-yahrzeits "23.1") |
| 794 | 794 | ||
| 795 | (defun calendar-hebrew-birthday (date year) | ||
| 796 | "Absolute date of the anniversary of Hebrew birth DATE, in Hebrew YEAR." | ||
| 797 | (let ((b-day (calendar-extract-day date)) | ||
| 798 | (b-month (calendar-extract-month date)) | ||
| 799 | (b-year (calendar-extract-year date))) | ||
| 800 | ;; If it's Adar in a normal Hebrew year or Adar II in a Hebrew leap year... | ||
| 801 | (if (= b-month (calendar-hebrew-last-month-of-year b-year)) | ||
| 802 | ;; ...then use the same day in last month of Hebrew year. | ||
| 803 | (calendar-hebrew-to-absolute | ||
| 804 | (list (calendar-hebrew-last-month-of-year year) b-day year)) | ||
| 805 | ;; Else use the normal anniversary of the birth date, | ||
| 806 | ;; or the corresponding day in years without that date. | ||
| 807 | (+ (calendar-hebrew-to-absolute (list b-month 1 year)) b-day -1)))) | ||
| 808 | |||
| 795 | (defvar date) | 809 | (defvar date) |
| 796 | 810 | ||
| 797 | ;; To be called from diary-list-sexp-entries, where DATE is bound. | 811 | ;; To be called from diary-list-sexp-entries, where DATE is bound. |
| @@ -800,6 +814,37 @@ from the cursor position." | |||
| 800 | "Hebrew calendar equivalent of date diary entry." | 814 | "Hebrew calendar equivalent of date diary entry." |
| 801 | (format "Hebrew date (until sunset): %s" (calendar-hebrew-date-string date))) | 815 | (format "Hebrew date (until sunset): %s" (calendar-hebrew-date-string date))) |
| 802 | 816 | ||
| 817 | (defvar entry) | ||
| 818 | (declare-function diary-ordinal-suffix "diary-lib" (n)) | ||
| 819 | |||
| 820 | ;;;###diary-autoload | ||
| 821 | (defun diary-hebrew-birthday (month day year &optional after-sunset) | ||
| 822 | "Hebrew birthday diary entry. | ||
| 823 | Entry applies if date is birthdate (MONTH DAY YEAR), or the day before. | ||
| 824 | The order of the input parameters changes according to | ||
| 825 | `calendar-date-style' (e.g. to DAY MONTH YEAR in the European style). | ||
| 826 | |||
| 827 | Assumes the associated diary entry is the name of the person. | ||
| 828 | |||
| 829 | Although the date of birth is specified by the *civil* calendar, | ||
| 830 | this function determines the proper Hebrew calendar birthday. | ||
| 831 | If the optional argument AFTER-SUNSET is non-nil, this means the | ||
| 832 | birth occurred after local sunset on the given civil date. | ||
| 833 | In this case, the following civil date corresponds to the Hebrew birthday." | ||
| 834 | (let* ((h-date (calendar-hebrew-from-absolute | ||
| 835 | (+ (calendar-absolute-from-gregorian | ||
| 836 | (diary-make-date month day year)) | ||
| 837 | (if after-sunset 1 0)))) | ||
| 838 | (h-year (calendar-extract-year h-date)) ; birth-day | ||
| 839 | (d (calendar-absolute-from-gregorian date)) ; today | ||
| 840 | (h-yr (calendar-extract-year (calendar-hebrew-from-absolute d))) | ||
| 841 | (age (- h-yr h-year)) ; current H year - birth H-year | ||
| 842 | (b-date (calendar-hebrew-birthday h-date h-yr))) | ||
| 843 | (and (> age 0) (memq b-date (list d (1+ d))) | ||
| 844 | (format "%s's %d%s Hebrew birthday%s" entry age | ||
| 845 | (diary-ordinal-suffix age) | ||
| 846 | (if (= b-date d) "" " (evening)"))))) | ||
| 847 | |||
| 803 | ;;;###diary-autoload | 848 | ;;;###diary-autoload |
| 804 | (defun diary-hebrew-omer (&optional mark) | 849 | (defun diary-hebrew-omer (&optional mark) |
| 805 | "Omer count diary entry. | 850 | "Omer count diary entry. |
| @@ -829,8 +874,6 @@ use when highlighting the day in the calendar." | |||
| 829 | ;;;###diary-autoload | 874 | ;;;###diary-autoload |
| 830 | (define-obsolete-function-alias 'diary-omer 'diary-hebrew-omer "23.1") | 875 | (define-obsolete-function-alias 'diary-omer 'diary-hebrew-omer "23.1") |
| 831 | 876 | ||
| 832 | (defvar entry) | ||
| 833 | |||
| 834 | (autoload 'diary-make-date "diary-lib") | 877 | (autoload 'diary-make-date "diary-lib") |
| 835 | 878 | ||
| 836 | (declare-function diary-ordinal-suffix "diary-lib" (n)) | 879 | (declare-function diary-ordinal-suffix "diary-lib" (n)) |
diff --git a/lisp/cedet/semantic/analyze.el b/lisp/cedet/semantic/analyze.el index 8a0fbd5cc37..5cdd1577a6e 100644 --- a/lisp/cedet/semantic/analyze.el +++ b/lisp/cedet/semantic/analyze.el | |||
| @@ -100,7 +100,7 @@ Usually bound to the dimension of a single symbol or command.") | |||
| 100 | :type list | 100 | :type list |
| 101 | :documentation "List of tags defining local text. | 101 | :documentation "List of tags defining local text. |
| 102 | This can be nil, or a list where the last element can be a string | 102 | This can be nil, or a list where the last element can be a string |
| 103 | representing text that may be incomplete. Preceeding elements | 103 | representing text that may be incomplete. Preceding elements |
| 104 | must be semantic tags representing variables or functions | 104 | must be semantic tags representing variables or functions |
| 105 | called in a dereference sequence.") | 105 | called in a dereference sequence.") |
| 106 | (prefixclass :initarg :prefixclass | 106 | (prefixclass :initarg :prefixclass |
diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el index 31e92724a00..47cb722e005 100644 --- a/lisp/cedet/semantic/complete.el +++ b/lisp/cedet/semantic/complete.el | |||
| @@ -1264,7 +1264,7 @@ inserted into the current context.") | |||
| 1264 | ;; generated by a collector. This format is in semanticdb search | 1264 | ;; generated by a collector. This format is in semanticdb search |
| 1265 | ;; form. This vaguely standard form is a bit challenging to navigate | 1265 | ;; form. This vaguely standard form is a bit challenging to navigate |
| 1266 | ;; because the tags do not contain buffer info, but the file associated | 1266 | ;; because the tags do not contain buffer info, but the file associated |
| 1267 | ;; with the tags preceed the tag in the list. | 1267 | ;; with the tags precedes the tag in the list. |
| 1268 | ;; | 1268 | ;; |
| 1269 | ;; Basic displayors don't care, and can strip the results. | 1269 | ;; Basic displayors don't care, and can strip the results. |
| 1270 | ;; Advanced highlighting displayors need to know when they need | 1270 | ;; Advanced highlighting displayors need to know when they need |
diff --git a/lisp/cedet/semantic/edit.el b/lisp/cedet/semantic/edit.el index ef206fd3122..7f7e82a95c2 100644 --- a/lisp/cedet/semantic/edit.el +++ b/lisp/cedet/semantic/edit.el | |||
| @@ -426,7 +426,7 @@ See `semantic-edits-change-leaf-tag' for details on parents." | |||
| 426 | ;; confirmed as the lineage of `overlapped-tags' | 426 | ;; confirmed as the lineage of `overlapped-tags' |
| 427 | ;; which must have a value by now. | 427 | ;; which must have a value by now. |
| 428 | 428 | ||
| 429 | ;; Loop over the search list to find the preceeding CDR. | 429 | ;; Loop over the search list to find the preceding CDR. |
| 430 | ;; Fortunatly, (car overlapped-tags) happens to be | 430 | ;; Fortunatly, (car overlapped-tags) happens to be |
| 431 | ;; the first tag positionally. | 431 | ;; the first tag positionally. |
| 432 | (let ((tokstart (semantic-tag-start (car overlapped-tags)))) | 432 | (let ((tokstart (semantic-tag-start (car overlapped-tags)))) |
| @@ -874,7 +874,7 @@ pre-positioned to a convenient location." | |||
| 874 | )) | 874 | )) |
| 875 | (message "To Remove Middle Tag: (%s)" | 875 | (message "To Remove Middle Tag: (%s)" |
| 876 | (semantic-format-tag-name first))) | 876 | (semantic-format-tag-name first))) |
| 877 | ;; Find in the cache the preceeding tag | 877 | ;; Find in the cache the preceding tag |
| 878 | (while (and cachestart (not (eq first (car (cdr cachestart))))) | 878 | (while (and cachestart (not (eq first (car (cdr cachestart))))) |
| 879 | (setq cachestart (cdr cachestart))) | 879 | (setq cachestart (cdr cachestart))) |
| 880 | ;; Find the last tag | 880 | ;; Find the last tag |
diff --git a/lisp/cedet/semantic/format.el b/lisp/cedet/semantic/format.el index ecd03ccec73..fa6e7517624 100644 --- a/lisp/cedet/semantic/format.el +++ b/lisp/cedet/semantic/format.el | |||
| @@ -296,7 +296,7 @@ local definitions." | |||
| 296 | 296 | ||
| 297 | (define-overloadable-function semantic-format-tag-canonical-name (tag &optional parent color) | 297 | (define-overloadable-function semantic-format-tag-canonical-name (tag &optional parent color) |
| 298 | "Return a canonical name for TAG. | 298 | "Return a canonical name for TAG. |
| 299 | A canonical name includes the names of any parents or namespaces preceeding | 299 | A canonical name includes the names of any parents or namespaces preceding |
| 300 | the tag. | 300 | the tag. |
| 301 | Optional argument PARENT is the parent type if TAG is a detail. | 301 | Optional argument PARENT is the parent type if TAG is a detail. |
| 302 | Optional argument COLOR means highlight the prototype with font-lock colors.") | 302 | Optional argument COLOR means highlight the prototype with font-lock colors.") |
diff --git a/lisp/cedet/semantic/java.el b/lisp/cedet/semantic/java.el index 4489d0ffae5..71a205386db 100644 --- a/lisp/cedet/semantic/java.el +++ b/lisp/cedet/semantic/java.el | |||
| @@ -256,7 +256,7 @@ Optional argument COLOR indicates that color should be mixed in." | |||
| 256 | (define-mode-local-override semantic-documentation-for-tag | 256 | (define-mode-local-override semantic-documentation-for-tag |
| 257 | java-mode (&optional tag nosnarf) | 257 | java-mode (&optional tag nosnarf) |
| 258 | "Find documentation from TAG and return it as a clean string. | 258 | "Find documentation from TAG and return it as a clean string. |
| 259 | Java have documentation set in a comment preceeding TAG's definition. | 259 | Java has documentation set in a comment preceding TAG's definition. |
| 260 | Attempt to strip out comment syntactic sugar, unless optional argument | 260 | Attempt to strip out comment syntactic sugar, unless optional argument |
| 261 | NOSNARF is non-nil. | 261 | NOSNARF is non-nil. |
| 262 | If NOSNARF is 'lex, then return the semantic lex token." | 262 | If NOSNARF is 'lex, then return the semantic lex token." |
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index 986c9edfd2d..c533c81be0e 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el | |||
| @@ -1025,9 +1025,9 @@ See Info node `(emacs)Subdir switches' for more details." | |||
| 1025 | ;; Keeps any marks that may be present in column one (doing this | 1025 | ;; Keeps any marks that may be present in column one (doing this |
| 1026 | ;; here is faster than with dired-add-entry's optional arg). | 1026 | ;; here is faster than with dired-add-entry's optional arg). |
| 1027 | ;; Does not update other dired buffers. Use dired-relist-entry for that. | 1027 | ;; Does not update other dired buffers. Use dired-relist-entry for that. |
| 1028 | (let ((char (following-char)) | 1028 | (let* ((opoint (line-beginning-position)) |
| 1029 | (opoint (line-beginning-position)) | 1029 | (char (char-after opoint)) |
| 1030 | (buffer-read-only)) | 1030 | (buffer-read-only)) |
| 1031 | (delete-region opoint (progn (forward-line 1) (point))) | 1031 | (delete-region opoint (progn (forward-line 1) (point))) |
| 1032 | (if file | 1032 | (if file |
| 1033 | (progn | 1033 | (progn |
diff --git a/lisp/dired-x.el b/lisp/dired-x.el index ce07676fc99..9941c7a0db5 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el | |||
| @@ -786,6 +786,7 @@ See also `dired-enable-local-variables'." | |||
| 786 | 'hack-dir-local-variables-non-file-buffer "24.1") | 786 | 'hack-dir-local-variables-non-file-buffer "24.1") |
| 787 | 787 | ||
| 788 | ;; Not sure this is worth having a dedicated command for... | 788 | ;; Not sure this is worth having a dedicated command for... |
| 789 | ;; See the more general features in files-x.el. | ||
| 789 | (defun dired-omit-here-always () | 790 | (defun dired-omit-here-always () |
| 790 | "Create `dir-locals-file' setting `dired-omit-mode' to t in `dired-mode'. | 791 | "Create `dir-locals-file' setting `dired-omit-mode' to t in `dired-mode'. |
| 791 | If in a Dired buffer, reverts it." | 792 | If in a Dired buffer, reverts it." |
| @@ -798,7 +799,9 @@ replace it with a dir-locals-file `./%s'" | |||
| 798 | (if (file-exists-p dir-locals-file) | 799 | (if (file-exists-p dir-locals-file) |
| 799 | (message "File `./%s' already exists." dir-locals-file) | 800 | (message "File `./%s' already exists." dir-locals-file) |
| 800 | (with-temp-buffer | 801 | (with-temp-buffer |
| 801 | (insert "((dired-mode . ((dired-omit-mode . t))))\n") | 802 | (insert "\ |
| 803 | \((dired-mode . ((subdirs . nil) | ||
| 804 | (dired-omit-mode . t))))\n") | ||
| 802 | (write-file dir-locals-file)) | 805 | (write-file dir-locals-file)) |
| 803 | ;; Run extra-hooks and revert directory. | 806 | ;; Run extra-hooks and revert directory. |
| 804 | (when (derived-mode-p 'dired-mode) | 807 | (when (derived-mode-p 'dired-mode) |
| @@ -845,7 +848,7 @@ replace it with a dir-locals-file `./%s'" | |||
| 845 | 848 | ||
| 846 | (defvar dired-guess-shell-alist-default | 849 | (defvar dired-guess-shell-alist-default |
| 847 | (list | 850 | (list |
| 848 | (list "\\.tar$" | 851 | (list "\\.tar\\'" |
| 849 | '(if dired-guess-shell-gnutar | 852 | '(if dired-guess-shell-gnutar |
| 850 | (concat dired-guess-shell-gnutar " xvf") | 853 | (concat dired-guess-shell-gnutar " xvf") |
| 851 | "tar xvf") | 854 | "tar xvf") |
| @@ -863,7 +866,7 @@ replace it with a dir-locals-file `./%s'" | |||
| 863 | 866 | ||
| 864 | ;; REGEXPS for compressed archives must come before the .Z rule to | 867 | ;; REGEXPS for compressed archives must come before the .Z rule to |
| 865 | ;; be recognized: | 868 | ;; be recognized: |
| 866 | (list "\\.tar\\.Z$" | 869 | (list "\\.tar\\.Z\\'" |
| 867 | ;; Untar it. | 870 | ;; Untar it. |
| 868 | '(if dired-guess-shell-gnutar | 871 | '(if dired-guess-shell-gnutar |
| 869 | (concat dired-guess-shell-gnutar " zxvf") | 872 | (concat dired-guess-shell-gnutar " zxvf") |
| @@ -873,7 +876,7 @@ replace it with a dir-locals-file `./%s'" | |||
| 873 | " " dired-guess-shell-znew-switches)) | 876 | " " dired-guess-shell-znew-switches)) |
| 874 | 877 | ||
| 875 | ;; gzip'ed archives | 878 | ;; gzip'ed archives |
| 876 | (list "\\.t\\(ar\\.\\)?gz$" | 879 | (list "\\.t\\(ar\\.\\)?gz\\'" |
| 877 | '(if dired-guess-shell-gnutar | 880 | '(if dired-guess-shell-gnutar |
| 878 | (concat dired-guess-shell-gnutar " zxvf") | 881 | (concat dired-guess-shell-gnutar " zxvf") |
| 879 | (concat "gunzip -qc * | tar xvf -")) | 882 | (concat "gunzip -qc * | tar xvf -")) |
| @@ -893,7 +896,7 @@ replace it with a dir-locals-file `./%s'" | |||
| 893 | (concat "gunzip -qc * | tar tvf -"))) | 896 | (concat "gunzip -qc * | tar tvf -"))) |
| 894 | 897 | ||
| 895 | ;; bzip2'ed archives | 898 | ;; bzip2'ed archives |
| 896 | (list "\\.t\\(ar\\.bz2\\|bz\\)$" | 899 | (list "\\.t\\(ar\\.bz2\\|bz\\)\\'" |
| 897 | "bunzip2 -c * | tar xvf -" | 900 | "bunzip2 -c * | tar xvf -" |
| 898 | ;; Extract files into a separate subdirectory | 901 | ;; Extract files into a separate subdirectory |
| 899 | '(concat "mkdir " (file-name-sans-extension file) | 902 | '(concat "mkdir " (file-name-sans-extension file) |
| @@ -903,7 +906,7 @@ replace it with a dir-locals-file `./%s'" | |||
| 903 | "bunzip2") | 906 | "bunzip2") |
| 904 | 907 | ||
| 905 | ;; xz'ed archives | 908 | ;; xz'ed archives |
| 906 | (list "\\.t\\(ar\\.\\)?xz$" | 909 | (list "\\.t\\(ar\\.\\)?xz\\'" |
| 907 | "unxz -c * | tar xvf -" | 910 | "unxz -c * | tar xvf -" |
| 908 | ;; Extract files into a separate subdirectory | 911 | ;; Extract files into a separate subdirectory |
| 909 | '(concat "mkdir " (file-name-sans-extension file) | 912 | '(concat "mkdir " (file-name-sans-extension file) |
| @@ -912,94 +915,96 @@ replace it with a dir-locals-file `./%s'" | |||
| 912 | ;; Optional decompression. | 915 | ;; Optional decompression. |
| 913 | "unxz") | 916 | "unxz") |
| 914 | 917 | ||
| 915 | '("\\.shar\\.Z$" "zcat * | unshar") | 918 | '("\\.shar\\.Z\\'" "zcat * | unshar") |
| 916 | '("\\.shar\\.g?z$" "gunzip -qc * | unshar") | 919 | '("\\.shar\\.g?z\\'" "gunzip -qc * | unshar") |
| 917 | 920 | ||
| 918 | '("\\.e?ps$" "ghostview" "xloadimage" "lpr") | 921 | '("\\.e?ps\\'" "ghostview" "xloadimage" "lpr") |
| 919 | (list "\\.e?ps\\.g?z$" "gunzip -qc * | ghostview -" | 922 | (list "\\.e?ps\\.g?z\\'" "gunzip -qc * | ghostview -" |
| 920 | ;; Optional decompression. | 923 | ;; Optional decompression. |
| 921 | '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q"))) | 924 | '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q"))) |
| 922 | (list "\\.e?ps\\.Z$" "zcat * | ghostview -" | 925 | (list "\\.e?ps\\.Z\\'" "zcat * | ghostview -" |
| 923 | ;; Optional conversion to gzip format. | 926 | ;; Optional conversion to gzip format. |
| 924 | '(concat "znew" (if dired-guess-shell-gzip-quiet " -q") | 927 | '(concat "znew" (if dired-guess-shell-gzip-quiet " -q") |
| 925 | " " dired-guess-shell-znew-switches)) | 928 | " " dired-guess-shell-znew-switches)) |
| 926 | 929 | ||
| 927 | '("\\.patch$" "cat * | patch") | 930 | '("\\.patch\\'" "cat * | patch") |
| 928 | (list "\\.patch\\.g?z$" "gunzip -qc * | patch" | 931 | (list "\\.patch\\.g?z\\'" "gunzip -qc * | patch" |
| 929 | ;; Optional decompression. | 932 | ;; Optional decompression. |
| 930 | '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q"))) | 933 | '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q"))) |
| 931 | (list "\\.patch\\.Z$" "zcat * | patch" | 934 | (list "\\.patch\\.Z\\'" "zcat * | patch" |
| 932 | ;; Optional conversion to gzip format. | 935 | ;; Optional conversion to gzip format. |
| 933 | '(concat "znew" (if dired-guess-shell-gzip-quiet " -q") | 936 | '(concat "znew" (if dired-guess-shell-gzip-quiet " -q") |
| 934 | " " dired-guess-shell-znew-switches)) | 937 | " " dired-guess-shell-znew-switches)) |
| 935 | 938 | ||
| 936 | ;; The following four extensions are useful with dired-man ("N" key) | 939 | ;; The following four extensions are useful with dired-man ("N" key) |
| 937 | (list "\\.\\(?:[0-9]\\|man\\)$" '(progn (require 'man) | 940 | (list "\\.\\(?:[0-9]\\|man\\)\\'" '(progn (require 'man) |
| 938 | (if (Man-support-local-filenames) | 941 | (if (Man-support-local-filenames) |
| 939 | "man -l" | 942 | "man -l" |
| 940 | "cat * | tbl | nroff -man -h"))) | 943 | "cat * | tbl | nroff -man -h"))) |
| 941 | (list "\\.\\(?:[0-9]\\|man\\)\\.g?z$" '(progn (require 'man) | 944 | (list "\\.\\(?:[0-9]\\|man\\)\\.g?z\\'" '(progn (require 'man) |
| 942 | (if (Man-support-local-filenames) | 945 | (if (Man-support-local-filenames) |
| 943 | "man -l" | 946 | "man -l" |
| 944 | "gunzip -qc * | tbl | nroff -man -h")) | 947 | "gunzip -qc * | tbl | nroff -man -h")) |
| 945 | ;; Optional decompression. | 948 | ;; Optional decompression. |
| 946 | '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q"))) | 949 | '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q"))) |
| 947 | (list "\\.[0-9]\\.Z$" '(progn (require 'man) | 950 | (list "\\.[0-9]\\.Z\\'" '(progn (require 'man) |
| 948 | (if (Man-support-local-filenames) | 951 | (if (Man-support-local-filenames) |
| 949 | "man -l" | 952 | "man -l" |
| 950 | "zcat * | tbl | nroff -man -h")) | 953 | "zcat * | tbl | nroff -man -h")) |
| 951 | ;; Optional conversion to gzip format. | 954 | ;; Optional conversion to gzip format. |
| 952 | '(concat "znew" (if dired-guess-shell-gzip-quiet " -q") | 955 | '(concat "znew" (if dired-guess-shell-gzip-quiet " -q") |
| 953 | " " dired-guess-shell-znew-switches)) | 956 | " " dired-guess-shell-znew-switches)) |
| 954 | '("\\.pod$" "perldoc" "pod2man * | nroff -man") | 957 | '("\\.pod\\'" "perldoc" "pod2man * | nroff -man") |
| 955 | 958 | ||
| 956 | '("\\.dvi$" "xdvi" "dvips") ; preview and printing | 959 | '("\\.dvi\\'" "xdvi" "dvips") ; preview and printing |
| 957 | '("\\.au$" "play") ; play Sun audiofiles | 960 | '("\\.au\\'" "play") ; play Sun audiofiles |
| 958 | '("\\.mpe?g$\\|\\.avi$" "xine -p") | 961 | '("\\.mpe?g\\'\\|\\.avi\\'" "xine -p") |
| 959 | '("\\.ogg$" "ogg123") | 962 | '("\\.ogg\\'" "ogg123") |
| 960 | '("\\.mp3$" "mpg123") | 963 | '("\\.mp3\\'" "mpg123") |
| 961 | '("\\.wav$" "play") | 964 | '("\\.wav\\'" "play") |
| 962 | '("\\.uu$" "uudecode") ; for uudecoded files | 965 | '("\\.uu\\'" "uudecode") ; for uudecoded files |
| 963 | '("\\.hqx$" "mcvert") | 966 | '("\\.hqx\\'" "mcvert") |
| 964 | '("\\.sh$" "sh") ; execute shell scripts | 967 | '("\\.sh\\'" "sh") ; execute shell scripts |
| 965 | '("\\.xbm$" "bitmap") ; view X11 bitmaps | 968 | '("\\.xbm\\'" "bitmap") ; view X11 bitmaps |
| 966 | '("\\.gp$" "gnuplot") | 969 | '("\\.gp\\'" "gnuplot") |
| 967 | '("\\.p[bgpn]m$" "xloadimage") | 970 | '("\\.p[bgpn]m\\'" "xloadimage") |
| 968 | '("\\.gif$" "xloadimage") ; view gif pictures | 971 | '("\\.gif\\'" "xloadimage") ; view gif pictures |
| 969 | '("\\.tif$" "xloadimage") | 972 | '("\\.tif\\'" "xloadimage") |
| 970 | '("\\.png$" "display") ; xloadimage 4.1 doesn't grok PNG | 973 | '("\\.png\\'" "display") ; xloadimage 4.1 doesn't grok PNG |
| 971 | '("\\.jpe?g$" "xloadimage") | 974 | '("\\.jpe?g\\'" "xloadimage") |
| 972 | '("\\.fig$" "xfig") ; edit fig pictures | 975 | '("\\.fig\\'" "xfig") ; edit fig pictures |
| 973 | '("\\.out$" "xgraph") ; for plotting purposes. | 976 | '("\\.out\\'" "xgraph") ; for plotting purposes. |
| 974 | '("\\.tex$" "latex" "tex") | 977 | '("\\.tex\\'" "latex" "tex") |
| 975 | '("\\.texi\\(nfo\\)?$" "makeinfo" "texi2dvi") | 978 | '("\\.texi\\(nfo\\)?\\'" "makeinfo" "texi2dvi") |
| 976 | '("\\.pdf$" "xpdf") | 979 | '("\\.pdf\\'" "xpdf") |
| 977 | '("\\.doc$" "antiword" "strings") | 980 | '("\\.doc\\'" "antiword" "strings") |
| 978 | '("\\.rpm$" "rpm -qilp" "rpm -ivh") | 981 | '("\\.rpm\\'" "rpm -qilp" "rpm -ivh") |
| 979 | '("\\.dia$" "dia") | 982 | '("\\.dia\\'" "dia") |
| 980 | '("\\.mgp$" "mgp") | 983 | '("\\.mgp\\'" "mgp") |
| 981 | 984 | ||
| 982 | ;; Some other popular archivers. | 985 | ;; Some other popular archivers. |
| 983 | (list "\\.zip$" "unzip" "unzip -l" | 986 | (list "\\.zip\\'" "unzip" "unzip -l" |
| 984 | ;; Extract files into a separate subdirectory | 987 | ;; Extract files into a separate subdirectory |
| 985 | '(concat "unzip" (if dired-guess-shell-gzip-quiet " -q") | 988 | '(concat "unzip" (if dired-guess-shell-gzip-quiet " -q") |
| 986 | " -d " (file-name-sans-extension file))) | 989 | " -d " (file-name-sans-extension file))) |
| 987 | '("\\.zoo$" "zoo x//") | 990 | '("\\.zoo\\'" "zoo x//") |
| 988 | '("\\.lzh$" "lharc x") | 991 | '("\\.lzh\\'" "lharc x") |
| 989 | '("\\.arc$" "arc x") | 992 | '("\\.arc\\'" "arc x") |
| 990 | '("\\.shar$" "unshar") | 993 | '("\\.shar\\'" "unshar") |
| 994 | '("\\.rar\\'" "unrar x") | ||
| 995 | '("\\.7z\\'" "7z x") | ||
| 991 | 996 | ||
| 992 | ;; Compression. | 997 | ;; Compression. |
| 993 | (list "\\.g?z$" '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q"))) | 998 | (list "\\.g?z\\'" '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q"))) |
| 994 | (list "\\.dz$" "dictunzip") | 999 | (list "\\.dz\\'" "dictunzip") |
| 995 | (list "\\.bz2$" "bunzip2") | 1000 | (list "\\.bz2\\'" "bunzip2") |
| 996 | (list "\\.xz$" "unxz") | 1001 | (list "\\.xz\\'" "unxz") |
| 997 | (list "\\.Z$" "uncompress" | 1002 | (list "\\.Z\\'" "uncompress" |
| 998 | ;; Optional conversion to gzip format. | 1003 | ;; Optional conversion to gzip format. |
| 999 | '(concat "znew" (if dired-guess-shell-gzip-quiet " -q") | 1004 | '(concat "znew" (if dired-guess-shell-gzip-quiet " -q") |
| 1000 | " " dired-guess-shell-znew-switches)) | 1005 | " " dired-guess-shell-znew-switches)) |
| 1001 | 1006 | ||
| 1002 | '("\\.sign?$" "gpg --verify")) | 1007 | '("\\.sign?\\'" "gpg --verify")) |
| 1003 | 1008 | ||
| 1004 | "Default alist used for shell command guessing. | 1009 | "Default alist used for shell command guessing. |
| 1005 | See `dired-guess-shell-alist-user'.") | 1010 | See `dired-guess-shell-alist-user'.") |
diff --git a/lisp/dired.el b/lisp/dired.el index 3f31ba58139..c113f0cb2f4 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -249,9 +249,19 @@ Local to each dired buffer. May be a list, in which case the car is the | |||
| 249 | directory name and the cdr is the list of files to mention. | 249 | directory name and the cdr is the list of files to mention. |
| 250 | The directory name must be absolute, but need not be fully expanded.") | 250 | The directory name must be absolute, but need not be fully expanded.") |
| 251 | 251 | ||
| 252 | ;; Beware of "-l;reboot" etc. See bug#3230. | ||
| 253 | (defun dired-safe-switches-p (switches) | ||
| 254 | "Return non-nil if string SWITCHES does not look risky for dired." | ||
| 255 | (or (not switches) | ||
| 256 | (and (stringp switches) | ||
| 257 | (< (length switches) 100) ; arbitrary | ||
| 258 | (string-match "\\` *-[- [:alnum:]]+\\'" switches)))) | ||
| 259 | |||
| 252 | (defvar dired-actual-switches nil | 260 | (defvar dired-actual-switches nil |
| 253 | "The value of `dired-listing-switches' used to make this buffer's text.") | 261 | "The value of `dired-listing-switches' used to make this buffer's text.") |
| 254 | 262 | ||
| 263 | (put 'dired-actual-switches 'safe-local-variable 'dired-safe-switches-p) | ||
| 264 | |||
| 255 | (defvar dired-re-inode-size "[0-9 \t]*" | 265 | (defvar dired-re-inode-size "[0-9 \t]*" |
| 256 | "Regexp for optional initial inode and file size as made by `ls -i -s'.") | 266 | "Regexp for optional initial inode and file size as made by `ls -i -s'.") |
| 257 | 267 | ||
| @@ -3614,7 +3624,7 @@ Ask means pop up a menu for the user to select one of copy, move or link." | |||
| 3614 | ;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command | 3624 | ;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command |
| 3615 | ;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown | 3625 | ;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown |
| 3616 | ;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff | 3626 | ;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff |
| 3617 | ;;;;;; dired-diff) "dired-aux" "dired-aux.el" "9d6333fab9c0f1b49e0bf2a536b8f245") | 3627 | ;;;;;; dired-diff) "dired-aux" "dired-aux.el" "154cdfbf451aedec60c5012b625ff329") |
| 3618 | ;;; Generated autoloads from dired-aux.el | 3628 | ;;; Generated autoloads from dired-aux.el |
| 3619 | 3629 | ||
| 3620 | (autoload 'dired-diff "dired-aux" "\ | 3630 | (autoload 'dired-diff "dired-aux" "\ |
| @@ -4073,7 +4083,7 @@ true then the type of the file linked to by FILE is printed instead. | |||
| 4073 | ;;;*** | 4083 | ;;;*** |
| 4074 | 4084 | ||
| 4075 | ;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el" | 4085 | ;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el" |
| 4076 | ;;;;;; "515e1dbc42acebd9a0175c4209b6673c") | 4086 | ;;;;;; "3b8851132739ab3f9054bf639873c53e") |
| 4077 | ;;; Generated autoloads from dired-x.el | 4087 | ;;; Generated autoloads from dired-x.el |
| 4078 | 4088 | ||
| 4079 | (autoload 'dired-jump "dired-x" "\ | 4089 | (autoload 'dired-jump "dired-x" "\ |
diff --git a/lisp/emacs-lisp/assoc.el b/lisp/emacs-lisp/assoc.el index aa85916cc3f..31be851f2dd 100644 --- a/lisp/emacs-lisp/assoc.el +++ b/lisp/emacs-lisp/assoc.el | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ;;; assoc.el --- insert/delete/sort functions on association lists | 1 | ;;; assoc.el --- insert/delete functions on association lists |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. |
| 4 | 4 | ||
| @@ -35,7 +35,7 @@ head is one matching KEY. Returns the sorted list and doesn't affect | |||
| 35 | the order of any other key-value pair. Side effect sets alist to new | 35 | the order of any other key-value pair. Side effect sets alist to new |
| 36 | sorted list." | 36 | sorted list." |
| 37 | (set alist-symbol | 37 | (set alist-symbol |
| 38 | (sort (copy-alist (eval alist-symbol)) | 38 | (sort (copy-alist (symbol-value alist-symbol)) |
| 39 | (function (lambda (a b) (equal (car a) key)))))) | 39 | (function (lambda (a b) (equal (car a) key)))))) |
| 40 | 40 | ||
| 41 | 41 | ||
| @@ -75,7 +75,7 @@ of the alist (with value nil if VALUE is nil or not supplied)." | |||
| 75 | (lexical-let ((elem (aelement key value)) | 75 | (lexical-let ((elem (aelement key value)) |
| 76 | alist) | 76 | alist) |
| 77 | (asort alist-symbol key) | 77 | (asort alist-symbol key) |
| 78 | (setq alist (eval alist-symbol)) | 78 | (setq alist (symbol-value alist-symbol)) |
| 79 | (cond ((null alist) (set alist-symbol elem)) | 79 | (cond ((null alist) (set alist-symbol elem)) |
| 80 | ((anot-head-p alist key) (set alist-symbol (nconc elem alist))) | 80 | ((anot-head-p alist key) (set alist-symbol (nconc elem alist))) |
| 81 | (value (setcar alist (car elem))) | 81 | (value (setcar alist (car elem))) |
| @@ -87,7 +87,7 @@ of the alist (with value nil if VALUE is nil or not supplied)." | |||
| 87 | Alist is referenced by ALIST-SYMBOL and the key-value pair to remove | 87 | Alist is referenced by ALIST-SYMBOL and the key-value pair to remove |
| 88 | is pair matching KEY. Returns the altered alist." | 88 | is pair matching KEY. Returns the altered alist." |
| 89 | (asort alist-symbol key) | 89 | (asort alist-symbol key) |
| 90 | (lexical-let ((alist (eval alist-symbol))) | 90 | (lexical-let ((alist (symbol-value alist-symbol))) |
| 91 | (cond ((null alist) nil) | 91 | (cond ((null alist) nil) |
| 92 | ((anot-head-p alist key) alist) | 92 | ((anot-head-p alist key) alist) |
| 93 | (t (set alist-symbol (cdr alist)))))) | 93 | (t (set alist-symbol (cdr alist)))))) |
| @@ -133,7 +133,7 @@ extra values are ignored. Returns the created alist." | |||
| 133 | (t | 133 | (t |
| 134 | (amake alist-symbol keycdr valcdr) | 134 | (amake alist-symbol keycdr valcdr) |
| 135 | (aput alist-symbol keycar valcar)))) | 135 | (aput alist-symbol keycar valcar)))) |
| 136 | (eval alist-symbol)) | 136 | (symbol-value alist-symbol)) |
| 137 | 137 | ||
| 138 | (provide 'assoc) | 138 | (provide 'assoc) |
| 139 | 139 | ||
diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el index 8e192a18459..08001171ed1 100644 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el | |||
| @@ -282,7 +282,7 @@ Not documented | |||
| 282 | ;;;;;; do-all-symbols do-symbols dotimes dolist do* do loop return-from | 282 | ;;;;;; do-all-symbols do-symbols dotimes dolist do* do loop return-from |
| 283 | ;;;;;; return block etypecase typecase ecase case load-time-value | 283 | ;;;;;; return block etypecase typecase ecase case load-time-value |
| 284 | ;;;;;; eval-when destructuring-bind function* defmacro* defun* gentemp | 284 | ;;;;;; eval-when destructuring-bind function* defmacro* defun* gentemp |
| 285 | ;;;;;; gensym) "cl-macs" "cl-macs.el" "0904b956872432ae7cc5fa9abcefce63") | 285 | ;;;;;; gensym) "cl-macs" "cl-macs.el" "b3031039e82679e5b013ce1cbf174ee8") |
| 286 | ;;; Generated autoloads from cl-macs.el | 286 | ;;; Generated autoloads from cl-macs.el |
| 287 | 287 | ||
| 288 | (autoload 'gensym "cl-macs" "\ | 288 | (autoload 'gensym "cl-macs" "\ |
| @@ -505,7 +505,7 @@ lexical closures as in Common Lisp. | |||
| 505 | (autoload 'lexical-let* "cl-macs" "\ | 505 | (autoload 'lexical-let* "cl-macs" "\ |
| 506 | Like `let*', but lexically scoped. | 506 | Like `let*', but lexically scoped. |
| 507 | The main visible difference is that lambdas inside BODY, and in | 507 | The main visible difference is that lambdas inside BODY, and in |
| 508 | successive bindings within BINDINGS, will create lexical closures | 508 | successive bindings within VARLIST, will create lexical closures |
| 509 | as in Common Lisp. This is similar to the behavior of `let*' in | 509 | as in Common Lisp. This is similar to the behavior of `let*' in |
| 510 | Common Lisp. | 510 | Common Lisp. |
| 511 | 511 | ||
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 80e95724f1f..c57d37703b0 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el | |||
| @@ -1470,7 +1470,7 @@ lexical closures as in Common Lisp. | |||
| 1470 | (defmacro lexical-let* (bindings &rest body) | 1470 | (defmacro lexical-let* (bindings &rest body) |
| 1471 | "Like `let*', but lexically scoped. | 1471 | "Like `let*', but lexically scoped. |
| 1472 | The main visible difference is that lambdas inside BODY, and in | 1472 | The main visible difference is that lambdas inside BODY, and in |
| 1473 | successive bindings within BINDINGS, will create lexical closures | 1473 | successive bindings within VARLIST, will create lexical closures |
| 1474 | as in Common Lisp. This is similar to the behavior of `let*' in | 1474 | as in Common Lisp. This is similar to the behavior of `let*' in |
| 1475 | Common Lisp. | 1475 | Common Lisp. |
| 1476 | \n(fn VARLIST BODY)" | 1476 | \n(fn VARLIST BODY)" |
diff --git a/lisp/emacs-lisp/package-x.el b/lisp/emacs-lisp/package-x.el index b9994be3d39..61f23abf0a7 100644 --- a/lisp/emacs-lisp/package-x.el +++ b/lisp/emacs-lisp/package-x.el | |||
| @@ -40,6 +40,9 @@ | |||
| 40 | (defvar package-archive-upload-base nil | 40 | (defvar package-archive-upload-base nil |
| 41 | "Base location for uploading to package archive.") | 41 | "Base location for uploading to package archive.") |
| 42 | 42 | ||
| 43 | (defvar package-update-news-on-upload nil | ||
| 44 | "Whether package upload should also update NEWS and RSS feeds.") | ||
| 45 | |||
| 43 | (defun package--encode (string) | 46 | (defun package--encode (string) |
| 44 | "Encode a string by replacing some characters with XML entities." | 47 | "Encode a string by replacing some characters with XML entities." |
| 45 | ;; We need a special case for translating "&" to "&". | 48 | ;; We need a special case for translating "&" to "&". |
| @@ -86,6 +89,36 @@ | |||
| 86 | (unless old-buffer | 89 | (unless old-buffer |
| 87 | (kill-buffer (current-buffer))))))) | 90 | (kill-buffer (current-buffer))))))) |
| 88 | 91 | ||
| 92 | (defun package--archive-contents-from-url (archive-url) | ||
| 93 | "Parse archive-contents file at ARCHIVE-URL. | ||
| 94 | Return the file contents, as a string, or nil if unsuccessful." | ||
| 95 | (ignore-errors | ||
| 96 | (when archive-url | ||
| 97 | (let* ((buffer (url-retrieve-synchronously | ||
| 98 | (concat archive-url "archive-contents")))) | ||
| 99 | (set-buffer buffer) | ||
| 100 | (package-handle-response) | ||
| 101 | (re-search-forward "^$" nil 'move) | ||
| 102 | (forward-char) | ||
| 103 | (delete-region (point-min) (point)) | ||
| 104 | (prog1 (package-read-from-string | ||
| 105 | (buffer-substring-no-properties (point-min) (point-max))) | ||
| 106 | (kill-buffer buffer)))))) | ||
| 107 | |||
| 108 | (defun package--archive-contents-from-file (file) | ||
| 109 | "Parse the given archive-contents file." | ||
| 110 | (if (not (file-exists-p file)) | ||
| 111 | ;; no existing archive-contents, possibly a new ELPA repo. | ||
| 112 | (list package-archive-version) | ||
| 113 | (let ((dont-kill (find-buffer-visiting file))) | ||
| 114 | (with-current-buffer (let ((find-file-visit-truename t)) | ||
| 115 | (find-file-noselect file)) | ||
| 116 | (prog1 | ||
| 117 | (package-read-from-string | ||
| 118 | (buffer-substring-no-properties (point-min) (point-max))) | ||
| 119 | (unless dont-kill | ||
| 120 | (kill-buffer (current-buffer)))))))) | ||
| 121 | |||
| 89 | (defun package-maint-add-news-item (title description archive-url) | 122 | (defun package-maint-add-news-item (title description archive-url) |
| 90 | "Add a news item to the ELPA web pages. | 123 | "Add a news item to the ELPA web pages. |
| 91 | TITLE is the title of the news item. | 124 | TITLE is the title of the news item. |
| @@ -111,11 +144,20 @@ PKG-INFO is the package info, see `package-buffer-info'. | |||
| 111 | EXTENSION is the file extension, a string. It can be either | 144 | EXTENSION is the file extension, a string. It can be either |
| 112 | \"el\" or \"tar\". | 145 | \"el\" or \"tar\". |
| 113 | 146 | ||
| 147 | The variable `package-archive-upload-base' specifies the upload | ||
| 148 | destination. If this is nil, signal an error. | ||
| 149 | |||
| 114 | Optional arg ARCHIVE-URL is the URL of the destination archive. | 150 | Optional arg ARCHIVE-URL is the URL of the destination archive. |
| 115 | If nil, the \"gnu\" archive is used." | 151 | If it is non-nil, compute the new \"archive-contents\" file |
| 116 | (unless archive-url | 152 | starting from the existing \"archive-contents\" at that URL. In |
| 117 | (or (setq archive-url (cdr (assoc "gnu" package-archives))) | 153 | addition, if `package-update-news-on-upload' is non-nil, call |
| 118 | (error "No destination URL"))) | 154 | `package--update-news' to add a news item at that URL. |
| 155 | |||
| 156 | If ARCHIVE-URL is nil, compute the new \"archive-contents\" file | ||
| 157 | from the \"archive-contents\" at `package-archive-upload-base', | ||
| 158 | if it exists." | ||
| 159 | (unless package-archive-upload-base | ||
| 160 | (error "No destination specified in `package-archive-upload-base'")) | ||
| 119 | (save-excursion | 161 | (save-excursion |
| 120 | (save-restriction | 162 | (save-restriction |
| 121 | (let* ((file-type (cond | 163 | (let* ((file-type (cond |
| @@ -131,21 +173,14 @@ If nil, the \"gnu\" archive is used." | |||
| 131 | (pkg-version (aref pkg-info 3)) | 173 | (pkg-version (aref pkg-info 3)) |
| 132 | (commentary (aref pkg-info 4)) | 174 | (commentary (aref pkg-info 4)) |
| 133 | (split-version (version-to-list pkg-version)) | 175 | (split-version (version-to-list pkg-version)) |
| 134 | (pkg-buffer (current-buffer)) | 176 | (pkg-buffer (current-buffer))) |
| 135 | 177 | ||
| 136 | ;; Download latest archive-contents. | 178 | ;; Get archive-contents from ARCHIVE-URL if it's non-nil, or |
| 137 | (buffer (url-retrieve-synchronously | 179 | ;; from `package-archive-upload-base' otherwise. |
| 138 | (concat archive-url "archive-contents")))) | 180 | (let ((contents (or (package--archive-contents-from-url archive-url) |
| 139 | 181 | (package--archive-contents-from-file | |
| 140 | ;; Parse archive-contents. | 182 | (concat package-archive-upload-base |
| 141 | (set-buffer buffer) | 183 | "archive-contents")))) |
| 142 | (package-handle-response) | ||
| 143 | (re-search-forward "^$" nil 'move) | ||
| 144 | (forward-char) | ||
| 145 | (delete-region (point-min) (point)) | ||
| 146 | (let ((contents (package-read-from-string | ||
| 147 | (buffer-substring-no-properties (point-min) | ||
| 148 | (point-max)))) | ||
| 149 | (new-desc (vector split-version requires desc file-type))) | 184 | (new-desc (vector split-version requires desc file-type))) |
| 150 | (if (> (car contents) package-archive-version) | 185 | (if (> (car contents) package-archive-version) |
| 151 | (error "Unrecognized archive version %d" (car contents))) | 186 | (error "Unrecognized archive version %d" (car contents))) |
| @@ -176,7 +211,6 @@ If nil, the \"gnu\" archive is used." | |||
| 176 | (symbol-name pkg-name) "-readme.txt"))) | 211 | (symbol-name pkg-name) "-readme.txt"))) |
| 177 | 212 | ||
| 178 | (set-buffer pkg-buffer) | 213 | (set-buffer pkg-buffer) |
| 179 | (kill-buffer buffer) | ||
| 180 | (write-region (point-min) (point-max) | 214 | (write-region (point-min) (point-max) |
| 181 | (concat package-archive-upload-base | 215 | (concat package-archive-upload-base |
| 182 | file-name "-" pkg-version | 216 | file-name "-" pkg-version |
| @@ -184,8 +218,10 @@ If nil, the \"gnu\" archive is used." | |||
| 184 | nil nil nil 'excl) | 218 | nil nil nil 'excl) |
| 185 | 219 | ||
| 186 | ;; Write a news entry. | 220 | ;; Write a news entry. |
| 187 | (package--update-news (concat file-name "." extension) | 221 | (and package-update-news-on-upload |
| 188 | pkg-version desc archive-url) | 222 | archive-url |
| 223 | (package--update-news (concat file-name "." extension) | ||
| 224 | pkg-version desc archive-url)) | ||
| 189 | 225 | ||
| 190 | ;; special-case "package": write a second copy so that the | 226 | ;; special-case "package": write a second copy so that the |
| 191 | ;; installer can easily find the latest version. | 227 | ;; installer can easily find the latest version. |
| @@ -196,7 +232,9 @@ If nil, the \"gnu\" archive is used." | |||
| 196 | nil nil nil 'ask))))))) | 232 | nil nil nil 'ask))))))) |
| 197 | 233 | ||
| 198 | (defun package-upload-buffer () | 234 | (defun package-upload-buffer () |
| 199 | "Upload a single .el file to ELPA from the current buffer." | 235 | "Upload the current buffer as a single-file Emacs Lisp package. |
| 236 | The variable `package-archive-upload-base' specifies the upload | ||
| 237 | destination." | ||
| 200 | (interactive) | 238 | (interactive) |
| 201 | (save-excursion | 239 | (save-excursion |
| 202 | (save-restriction | 240 | (save-restriction |
| @@ -205,6 +243,13 @@ If nil, the \"gnu\" archive is used." | |||
| 205 | (package-upload-buffer-internal pkg-info "el"))))) | 243 | (package-upload-buffer-internal pkg-info "el"))))) |
| 206 | 244 | ||
| 207 | (defun package-upload-file (file) | 245 | (defun package-upload-file (file) |
| 246 | "Upload the Emacs Lisp package FILE to the package archive. | ||
| 247 | Interactively, prompt for FILE. The package is considered a | ||
| 248 | single-file package if FILE ends in \".el\", and a multi-file | ||
| 249 | package if FILE ends in \".tar\". | ||
| 250 | |||
| 251 | The variable `package-archive-upload-base' specifies the upload | ||
| 252 | destination." | ||
| 208 | (interactive "fPackage file name: ") | 253 | (interactive "fPackage file name: ") |
| 209 | (with-temp-buffer | 254 | (with-temp-buffer |
| 210 | (insert-file-contents-literally file) | 255 | (insert-file-contents-literally file) |
diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el index 3179672a3ec..916dcd4785c 100644 --- a/lisp/emacs-lisp/pcase.el +++ b/lisp/emacs-lisp/pcase.el | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | ;; Copyright (C) 2010-2011 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2010-2011 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> | 5 | ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> |
| 6 | ;; Keywords: | 6 | ;; Keywords: |
| 7 | 7 | ||
| 8 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
| 9 | 9 | ||
| @@ -32,6 +32,14 @@ | |||
| 32 | ;; could be defined this way, as a shorthand for (pred (lambda (_) BOOLEXP)). | 32 | ;; could be defined this way, as a shorthand for (pred (lambda (_) BOOLEXP)). |
| 33 | ;; But better would be if we could define new ways to match by having the | 33 | ;; But better would be if we could define new ways to match by having the |
| 34 | ;; extension provide its own `pcase--split-<foo>' thingy. | 34 | ;; extension provide its own `pcase--split-<foo>' thingy. |
| 35 | ;; - provide something like (setq VAR) so a var can be set rather than | ||
| 36 | ;; let-bound. | ||
| 37 | ;; - provide a way to fallthrough to other cases. | ||
| 38 | ;; - try and be more clever to reduce the size of the decision tree, and | ||
| 39 | ;; to reduce the number of leafs that need to be turned into function: | ||
| 40 | ;; - first, do the tests shared by all remaining branches (it will have | ||
| 41 | ;; to be performed anyway, so better so it first so it's shared). | ||
| 42 | ;; - then choose the test that discriminates more (?). | ||
| 35 | ;; - ideally we'd want (pcase s ((re RE1) E1) ((re RE2) E2)) to be able to | 43 | ;; - ideally we'd want (pcase s ((re RE1) E1) ((re RE2) E2)) to be able to |
| 36 | ;; generate a lex-style DFA to decide whether to run E1 or E2. | 44 | ;; generate a lex-style DFA to decide whether to run E1 or E2. |
| 37 | 45 | ||
| @@ -67,12 +75,12 @@ If a SYMBOL is used twice in the same pattern (i.e. the pattern is | |||
| 67 | QPatterns can take the following forms: | 75 | QPatterns can take the following forms: |
| 68 | (QPAT1 . QPAT2) matches if QPAT1 matches the car and QPAT2 the cdr. | 76 | (QPAT1 . QPAT2) matches if QPAT1 matches the car and QPAT2 the cdr. |
| 69 | ,UPAT matches if the UPattern UPAT matches. | 77 | ,UPAT matches if the UPattern UPAT matches. |
| 70 | STRING matches if the object is `equal' to STRING. | 78 | STRING matches if the object is `equal' to STRING. |
| 71 | ATOM matches if the object is `eq' to ATOM. | 79 | ATOM matches if the object is `eq' to ATOM. |
| 72 | QPatterns for vectors are not implemented yet. | 80 | QPatterns for vectors are not implemented yet. |
| 73 | 81 | ||
| 74 | PRED can take the form | 82 | PRED can take the form |
| 75 | FUNCTION in which case it gets called with one argument. | 83 | FUNCTION in which case it gets called with one argument. |
| 76 | (FUN ARG1 .. ARGN) in which case it gets called with N+1 arguments. | 84 | (FUN ARG1 .. ARGN) in which case it gets called with N+1 arguments. |
| 77 | A PRED of the form FUNCTION is equivalent to one of the form (FUNCTION). | 85 | A PRED of the form FUNCTION is equivalent to one of the form (FUNCTION). |
| 78 | PRED patterns can refer to variables bound earlier in the pattern. | 86 | PRED patterns can refer to variables bound earlier in the pattern. |
| @@ -209,6 +217,7 @@ of the form (UPAT EXP)." | |||
| 209 | (defun pcase--if (test then else) | 217 | (defun pcase--if (test then else) |
| 210 | (cond | 218 | (cond |
| 211 | ((eq else :pcase--dontcare) then) | 219 | ((eq else :pcase--dontcare) then) |
| 220 | ((eq then :pcase--dontcare) (debug) else) ;Can/should this ever happen? | ||
| 212 | ((eq (car-safe else) 'if) | 221 | ((eq (car-safe else) 'if) |
| 213 | (if (equal test (nth 1 else)) | 222 | (if (equal test (nth 1 else)) |
| 214 | ;; Doing a test a second time: get rid of the redundancy. | 223 | ;; Doing a test a second time: get rid of the redundancy. |
| @@ -223,6 +232,8 @@ of the form (UPAT EXP)." | |||
| 223 | `(cond (,test ,then) | 232 | `(cond (,test ,then) |
| 224 | ;; Doing a test a second time: get rid of the redundancy, as above. | 233 | ;; Doing a test a second time: get rid of the redundancy, as above. |
| 225 | ,@(remove (assoc test else) (cdr else)))) | 234 | ,@(remove (assoc test else) (cdr else)))) |
| 235 | ;; Invert the test if that lets us reduce the depth of the tree. | ||
| 236 | ((memq (car-safe then) '(if cond)) (pcase--if `(not ,test) else then)) | ||
| 226 | (t `(if ,test ,then ,else)))) | 237 | (t `(if ,test ,then ,else)))) |
| 227 | 238 | ||
| 228 | (defun pcase--upat (qpattern) | 239 | (defun pcase--upat (qpattern) |
| @@ -264,6 +275,22 @@ MATCH is the pattern that needs to be matched, of the form: | |||
| 264 | (defun pcase--and (match matches) | 275 | (defun pcase--and (match matches) |
| 265 | (if matches `(and ,match ,@matches) match)) | 276 | (if matches `(and ,match ,@matches) match)) |
| 266 | 277 | ||
| 278 | (defconst pcase-mutually-exclusive-predicates | ||
| 279 | '((symbolp . integerp) | ||
| 280 | (symbolp . numberp) | ||
| 281 | (symbolp . consp) | ||
| 282 | (symbolp . arrayp) | ||
| 283 | (symbolp . stringp) | ||
| 284 | (integerp . consp) | ||
| 285 | (integerp . arrayp) | ||
| 286 | (integerp . stringp) | ||
| 287 | (numberp . consp) | ||
| 288 | (numberp . arrayp) | ||
| 289 | (numberp . stringp) | ||
| 290 | (consp . arrayp) | ||
| 291 | (consp . stringp) | ||
| 292 | (arrayp . stringp))) | ||
| 293 | |||
| 267 | (defun pcase--split-match (sym splitter match) | 294 | (defun pcase--split-match (sym splitter match) |
| 268 | (case (car match) | 295 | (case (car match) |
| 269 | ((match) | 296 | ((match) |
| @@ -324,8 +351,14 @@ MATCH is the pattern that needs to be matched, of the form: | |||
| 324 | (cons `(and (match ,syma . ,(pcase--upat (car qpat))) | 351 | (cons `(and (match ,syma . ,(pcase--upat (car qpat))) |
| 325 | (match ,symd . ,(pcase--upat (cdr qpat)))) | 352 | (match ,symd . ,(pcase--upat (cdr qpat)))) |
| 326 | :pcase--fail))) | 353 | :pcase--fail))) |
| 327 | ;; A QPattern but not for a cons, can only go the `else' side. | 354 | ;; A QPattern but not for a cons, can only go to the `else' side. |
| 328 | ((eq (car-safe pat) '\`) (cons :pcase--fail nil)))) | 355 | ((eq (car-safe pat) '\`) (cons :pcase--fail nil)) |
| 356 | ((and (eq (car-safe pat) 'pred) | ||
| 357 | (or (member (cons 'consp (cadr pat)) | ||
| 358 | pcase-mutually-exclusive-predicates) | ||
| 359 | (member (cons (cadr pat) 'consp) | ||
| 360 | pcase-mutually-exclusive-predicates))) | ||
| 361 | (cons :pcase--fail nil)))) | ||
| 329 | 362 | ||
| 330 | (defun pcase--split-equal (elem pat) | 363 | (defun pcase--split-equal (elem pat) |
| 331 | (cond | 364 | (cond |
| @@ -337,7 +370,12 @@ MATCH is the pattern that needs to be matched, of the form: | |||
| 337 | ;; (or (integerp (cadr pat)) (symbolp (cadr pat)) | 370 | ;; (or (integerp (cadr pat)) (symbolp (cadr pat)) |
| 338 | ;; (consp (cadr pat))) | 371 | ;; (consp (cadr pat))) |
| 339 | ) | 372 | ) |
| 340 | (cons :pcase--fail nil)))) | 373 | (cons :pcase--fail nil)) |
| 374 | ((and (eq (car-safe pat) 'pred) | ||
| 375 | (symbolp (cadr pat)) | ||
| 376 | (get (cadr pat) 'side-effect-free) | ||
| 377 | (funcall (cadr pat) elem)) | ||
| 378 | (cons :pcase--succeed nil)))) | ||
| 341 | 379 | ||
| 342 | (defun pcase--split-member (elems pat) | 380 | (defun pcase--split-member (elems pat) |
| 343 | ;; Based on pcase--split-equal. | 381 | ;; Based on pcase--split-equal. |
| @@ -354,13 +392,39 @@ MATCH is the pattern that needs to be matched, of the form: | |||
| 354 | ;; (or (integerp (cadr pat)) (symbolp (cadr pat)) | 392 | ;; (or (integerp (cadr pat)) (symbolp (cadr pat)) |
| 355 | ;; (consp (cadr pat))) | 393 | ;; (consp (cadr pat))) |
| 356 | ) | 394 | ) |
| 357 | (cons :pcase--fail nil)))) | 395 | (cons :pcase--fail nil)) |
| 396 | ((and (eq (car-safe pat) 'pred) | ||
| 397 | (symbolp (cadr pat)) | ||
| 398 | (get (cadr pat) 'side-effect-free) | ||
| 399 | (let ((p (cadr pat)) (all t)) | ||
| 400 | (dolist (elem elems) | ||
| 401 | (unless (funcall p elem) (setq all nil))) | ||
| 402 | all)) | ||
| 403 | (cons :pcase--succeed nil)))) | ||
| 358 | 404 | ||
| 359 | (defun pcase--split-pred (upat pat) | 405 | (defun pcase--split-pred (upat pat) |
| 360 | ;; FIXME: For predicates like (pred (> a)), two such predicates may | 406 | ;; FIXME: For predicates like (pred (> a)), two such predicates may |
| 361 | ;; actually refer to different variables `a'. | 407 | ;; actually refer to different variables `a'. |
| 362 | (if (equal upat pat) | 408 | (cond |
| 363 | (cons :pcase--succeed :pcase--fail))) | 409 | ((equal upat pat) (cons :pcase--succeed :pcase--fail)) |
| 410 | ((and (eq 'pred (car upat)) | ||
| 411 | (eq 'pred (car-safe pat)) | ||
| 412 | (or (member (cons (cadr upat) (cadr pat)) | ||
| 413 | pcase-mutually-exclusive-predicates) | ||
| 414 | (member (cons (cadr pat) (cadr upat)) | ||
| 415 | pcase-mutually-exclusive-predicates))) | ||
| 416 | (cons :pcase--fail nil)) | ||
| 417 | ;; ((and (eq 'pred (car upat)) | ||
| 418 | ;; (eq '\` (car-safe pat)) | ||
| 419 | ;; (symbolp (cadr upat)) | ||
| 420 | ;; (or (symbolp (cadr pat)) (stringp (cadr pat)) (numberp (cadr pat))) | ||
| 421 | ;; (get (cadr upat) 'side-effect-free) | ||
| 422 | ;; (progn (message "Trying predicate %S" (cadr upat)) | ||
| 423 | ;; (ignore-errors | ||
| 424 | ;; (funcall (cadr upat) (cadr pat))))) | ||
| 425 | ;; (message "Simplify pred %S against %S" upat pat) | ||
| 426 | ;; (cons nil :pcase--fail)) | ||
| 427 | )) | ||
| 364 | 428 | ||
| 365 | (defun pcase--fgrep (vars sexp) | 429 | (defun pcase--fgrep (vars sexp) |
| 366 | "Check which of the symbols VARS appear in SEXP." | 430 | "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: | |||
| 375 | ;; bootstrapping problems. | 439 | ;; bootstrapping problems. |
| 376 | (defun pcase--u1 (matches code vars rest) | 440 | (defun pcase--u1 (matches code vars rest) |
| 377 | "Return code that runs CODE (with VARS) if MATCHES match. | 441 | "Return code that runs CODE (with VARS) if MATCHES match. |
| 378 | and otherwise defers to REST which is a list of branches of the form | 442 | Otherwise, it defers to REST which is a list of branches of the form |
| 379 | \(ELSE-MATCH ELSE-CODE . ELSE-VARS)." | 443 | \(ELSE-MATCH ELSE-CODE . ELSE-VARS)." |
| 380 | ;; Depending on the order in which we choose to check each of the MATCHES, | 444 | ;; Depending on the order in which we choose to check each of the MATCHES, |
| 381 | ;; the resulting tree may be smaller or bigger. So in general, we'd want | 445 | ;; 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 | |||
| 433 | ((eq upat 'dontcare) :pcase--dontcare) | 497 | ((eq upat 'dontcare) :pcase--dontcare) |
| 434 | ((functionp upat) (error "Feature removed, use (pred %s)" upat)) | 498 | ((functionp upat) (error "Feature removed, use (pred %s)" upat)) |
| 435 | ((memq (car-safe upat) '(guard pred)) | 499 | ((memq (car-safe upat) '(guard pred)) |
| 500 | (if (eq (car upat) 'pred) (put sym 'pcase-used t)) | ||
| 436 | (destructuring-bind (then-rest &rest else-rest) | 501 | (destructuring-bind (then-rest &rest else-rest) |
| 437 | (pcase--split-rest | 502 | (pcase--split-rest |
| 438 | sym (apply-partially #'pcase--split-pred upat) rest) | 503 | 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 | |||
| 459 | (pcase--u1 matches code vars then-rest) | 524 | (pcase--u1 matches code vars then-rest) |
| 460 | (pcase--u else-rest)))) | 525 | (pcase--u else-rest)))) |
| 461 | ((symbolp upat) | 526 | ((symbolp upat) |
| 527 | (put sym 'pcase-used t) | ||
| 462 | (if (not (assq upat vars)) | 528 | (if (not (assq upat vars)) |
| 463 | (pcase--u1 matches code (cons (cons upat sym) vars) rest) | 529 | (pcase--u1 matches code (cons (cons upat sym) vars) rest) |
| 464 | ;; Non-linear pattern. Turn it into an `eq' test. | 530 | ;; 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 | |||
| 466 | matches) | 532 | matches) |
| 467 | code vars rest))) | 533 | code vars rest))) |
| 468 | ((eq (car-safe upat) '\`) | 534 | ((eq (car-safe upat) '\`) |
| 535 | (put sym 'pcase-used t) | ||
| 469 | (pcase--q1 sym (cadr upat) matches code vars rest)) | 536 | (pcase--q1 sym (cadr upat) matches code vars rest)) |
| 470 | ((eq (car-safe upat) 'or) | 537 | ((eq (car-safe upat) 'or) |
| 471 | (let ((all (> (length (cdr upat)) 1)) | 538 | (let ((all (> (length (cdr upat)) 1)) |
| @@ -524,7 +591,7 @@ and otherwise defers to REST which is a list of branches of the form | |||
| 524 | 591 | ||
| 525 | (defun pcase--q1 (sym qpat matches code vars rest) | 592 | (defun pcase--q1 (sym qpat matches code vars rest) |
| 526 | "Return code that runs CODE if SYM matches QPAT and if MATCHES match. | 593 | "Return code that runs CODE if SYM matches QPAT and if MATCHES match. |
| 527 | and if not, defers to REST which is a list of branches of the form | 594 | Otherwise, it defers to REST which is a list of branches of the form |
| 528 | \(OTHER_MATCH OTHER-CODE . OTHER-VARS)." | 595 | \(OTHER_MATCH OTHER-CODE . OTHER-VARS)." |
| 529 | (cond | 596 | (cond |
| 530 | ((eq (car-safe qpat) '\,) (error "Can't use `,UPATTERN")) | 597 | ((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 | |||
| 539 | (pcase--split-rest sym | 606 | (pcase--split-rest sym |
| 540 | (apply-partially #'pcase--split-consp syma symd) | 607 | (apply-partially #'pcase--split-consp syma symd) |
| 541 | rest) | 608 | rest) |
| 542 | (pcase--if `(consp ,sym) | 609 | (let ((then-body (pcase--u1 `((match ,syma . ,(pcase--upat (car qpat))) |
| 543 | `(let ((,syma (car ,sym)) | 610 | (match ,symd . ,(pcase--upat (cdr qpat))) |
| 544 | (,symd (cdr ,sym))) | 611 | ,@matches) |
| 545 | ,(pcase--u1 `((match ,syma . ,(pcase--upat (car qpat))) | 612 | code vars then-rest))) |
| 546 | (match ,symd . ,(pcase--upat (cdr qpat))) | 613 | (pcase--if |
| 547 | ,@matches) | 614 | `(consp ,sym) |
| 548 | code vars then-rest)) | 615 | ;; We want to be careful to only add bindings that are used. |
| 549 | (pcase--u else-rest))))) | 616 | ;; The byte-compiler could do that for us, but it would have to pay |
| 617 | ;; attention to the `consp' test in order to figure out that car/cdr | ||
| 618 | ;; can't signal errors and our byte-compiler is not that clever. | ||
| 619 | `(let (,@(if (get syma 'pcase-used) `((,syma (car ,sym)))) | ||
| 620 | ,@(if (get symd 'pcase-used) `((,symd (cdr ,sym))))) | ||
| 621 | ,then-body) | ||
| 622 | (pcase--u else-rest)))))) | ||
| 550 | ((or (integerp qpat) (symbolp qpat) (stringp qpat)) | 623 | ((or (integerp qpat) (symbolp qpat) (stringp qpat)) |
| 551 | (destructuring-bind (then-rest &rest else-rest) | 624 | (destructuring-bind (then-rest &rest else-rest) |
| 552 | (pcase--split-rest sym (apply-partially 'pcase--split-equal qpat) rest) | 625 | (pcase--split-rest sym (apply-partially 'pcase--split-equal qpat) rest) |
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el index fae249da9d3..d9b79ccd317 100644 --- a/lisp/emulation/viper-cmd.el +++ b/lisp/emulation/viper-cmd.el | |||
| @@ -2375,7 +2375,7 @@ problems." | |||
| 2375 | (if (eq viper-intermediate-command 'viper-repeat) | 2375 | (if (eq viper-intermediate-command 'viper-repeat) |
| 2376 | (viper-change-subr (mark t) (point)) | 2376 | (viper-change-subr (mark t) (point)) |
| 2377 | (viper-change (mark t) (point))) | 2377 | (viper-change (mark t) (point))) |
| 2378 | ;; com is set to ?r when we repeat this comand with dot | 2378 | ;; com is set to ?r when we repeat this command with dot |
| 2379 | (viper-set-destructive-command (list 'viper-substitute val ?r nil nil nil)) | 2379 | (viper-set-destructive-command (list 'viper-substitute val ?r nil nil nil)) |
| 2380 | )) | 2380 | )) |
| 2381 | 2381 | ||
diff --git a/lisp/erc/ChangeLog.01 b/lisp/erc/ChangeLog.01 index 962acd5bfc6..4016586abc7 100644 --- a/lisp/erc/ChangeLog.01 +++ b/lisp/erc/ChangeLog.01 | |||
| @@ -584,9 +584,9 @@ | |||
| 584 | 584 | ||
| 585 | * debian/maint/conffiles.in: new file | 585 | * debian/maint/conffiles.in: new file |
| 586 | 586 | ||
| 587 | * debian/maint/conffiles: superceded by conffiles.in | 587 | * debian/maint/conffiles: superseded by conffiles.in |
| 588 | 588 | ||
| 589 | * debian/scripts/startup: superceded by startup.erc | 589 | * debian/scripts/startup: superseded by startup.erc |
| 590 | 590 | ||
| 591 | 2001-10-25 Mario Lang <mlang@delysid.org> | 591 | 2001-10-25 Mario Lang <mlang@delysid.org> |
| 592 | 592 | ||
| @@ -609,7 +609,7 @@ | |||
| 609 | 609 | ||
| 610 | * debian/maint/postinst, debian/maint/prerm, debian/scripts/install, | 610 | * debian/maint/postinst, debian/maint/prerm, debian/scripts/install, |
| 611 | debian/scripts/remove: | 611 | debian/scripts/remove: |
| 612 | removed, superceded by it's .in counterpart | 612 | removed, superseded by its .in counterpart |
| 613 | 613 | ||
| 614 | 2001-10-25 Mario Lang <mlang@delysid.org> | 614 | 2001-10-25 Mario Lang <mlang@delysid.org> |
| 615 | 615 | ||
diff --git a/lisp/facemenu.el b/lisp/facemenu.el index 360383aa32b..97862afb678 100644 --- a/lisp/facemenu.el +++ b/lisp/facemenu.el | |||
| @@ -562,17 +562,23 @@ You can change the color sort order by customizing `list-colors-sort'." | |||
| 562 | (let ((lc (nthcdr (1- (display-color-cells)) list))) | 562 | (let ((lc (nthcdr (1- (display-color-cells)) list))) |
| 563 | (if lc | 563 | (if lc |
| 564 | (setcdr lc nil))))) | 564 | (setcdr lc nil))))) |
| 565 | (let ((buf (get-buffer-create "*Colors*"))) | 565 | (unless buffer-name |
| 566 | (with-current-buffer buf | 566 | (setq buffer-name "*Colors*")) |
| 567 | (with-help-window buffer-name | ||
| 568 | (with-current-buffer standard-output | ||
| 567 | (erase-buffer) | 569 | (erase-buffer) |
| 568 | (setq truncate-lines t) | 570 | (setq truncate-lines t))) |
| 569 | ;; Display buffer before generating content to allow | 571 | (let ((buf (get-buffer buffer-name)) |
| 570 | ;; `list-colors-print' to get the right window-width. | 572 | (inhibit-read-only t)) |
| 573 | ;; Display buffer before generating content, to allow | ||
| 574 | ;; `list-colors-print' to get the right window-width. | ||
| 575 | (with-selected-window (or (get-buffer-window buf t) (selected-window)) | ||
| 576 | (with-current-buffer buf | ||
| 577 | (list-colors-print list callback) | ||
| 578 | (set-buffer-modified-p nil))) | ||
| 579 | (when callback | ||
| 571 | (pop-to-buffer buf) | 580 | (pop-to-buffer buf) |
| 572 | (list-colors-print list callback) | 581 | (message "Click on a color to select it.")))) |
| 573 | (set-buffer-modified-p nil))) | ||
| 574 | (if callback | ||
| 575 | (message "Click on a color to select it."))) | ||
| 576 | 582 | ||
| 577 | (defun list-colors-print (list &optional callback) | 583 | (defun list-colors-print (list &optional callback) |
| 578 | (let ((callback-fn | 584 | (let ((callback-fn |
diff --git a/lisp/files.el b/lisp/files.el index 5890bf9b8c9..8849e264151 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -3394,8 +3394,19 @@ Return the new variables list." | |||
| 3394 | (cdr entry) root variables)))) | 3394 | (cdr entry) root variables)))) |
| 3395 | ((or (not key) | 3395 | ((or (not key) |
| 3396 | (derived-mode-p key)) | 3396 | (derived-mode-p key)) |
| 3397 | (setq variables (dir-locals-collect-mode-variables | 3397 | (let* ((alist (cdr entry)) |
| 3398 | (cdr entry) variables)))))) | 3398 | (subdirs (assq 'subdirs alist))) |
| 3399 | (if (or (not subdirs) | ||
| 3400 | (progn | ||
| 3401 | (setq alist (delq subdirs alist)) | ||
| 3402 | (cdr-safe subdirs)) | ||
| 3403 | ;; TODO someone might want to extend this to allow | ||
| 3404 | ;; integer values for subdir, where N means | ||
| 3405 | ;; variables apply to this directory and N levels | ||
| 3406 | ;; below it (0 == nil). | ||
| 3407 | (equal root default-directory)) | ||
| 3408 | (setq variables (dir-locals-collect-mode-variables | ||
| 3409 | alist variables)))))))) | ||
| 3399 | (error | 3410 | (error |
| 3400 | ;; The file's content might be invalid (e.g. have a merge conflict), but | 3411 | ;; The file's content might be invalid (e.g. have a merge conflict), but |
| 3401 | ;; that shouldn't prevent the user from opening the file. | 3412 | ;; that shouldn't prevent the user from opening the file. |
| @@ -5837,6 +5848,9 @@ normally equivalent short `-D' option is just passed on to | |||
| 5837 | (file-name-directory file) | 5848 | (file-name-directory file) |
| 5838 | (file-name-directory (expand-file-name file)))) | 5849 | (file-name-directory (expand-file-name file)))) |
| 5839 | (pattern (file-name-nondirectory file))) | 5850 | (pattern (file-name-nondirectory file))) |
| 5851 | ;; NB since switches is passed to the shell, be | ||
| 5852 | ;; careful of malicious values, eg "-l;reboot". | ||
| 5853 | ;; See eg dired-safe-switches-p. | ||
| 5840 | (call-process | 5854 | (call-process |
| 5841 | shell-file-name nil t nil | 5855 | shell-file-name nil t nil |
| 5842 | "-c" | 5856 | "-c" |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 9dd315782ff..4562d544a58 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,71 @@ | |||
| 1 | 2011-03-01 Julien Danjou <julien@danjou.info> | ||
| 2 | |||
| 3 | * gnus-art.el (list-identifier): Add list-identifier as a parameter | ||
| 4 | group. | ||
| 5 | (article-hide-list-identifiers): Use list-identifier group parameter. | ||
| 6 | |||
| 7 | 2011-02-28 Julien Danjou <julien@danjou.info> | ||
| 8 | |||
| 9 | * sieve.el (sieve-buffer-script-name): New local variable to store | ||
| 10 | sieve script name. | ||
| 11 | (sieve-edit-script): Store sieve script name. | ||
| 12 | (sieve-upload): Use sieve script name when uploading. | ||
| 13 | (sieve-upload): Use substitute-command-keys. | ||
| 14 | (sieve-edit-script): Use substitute-command-keys. | ||
| 15 | (sieve-refresh-scriptlist): Use substitute-command-keys. | ||
| 16 | (sieve-manage-mode-map): Define keymap properly. | ||
| 17 | (sieve-manage-mode): Do not set mode name manually, change mode-name to | ||
| 18 | (sieve-refresh-scriptlist): Use substitute-command-keys."Sieve-manage". | ||
| 19 | Remove commented code about cvs. | ||
| 20 | (sieve-manage-quit): New function. | ||
| 21 | (sieve-manage-mode-map): Bind 'q' to sieve-manage-quit. | ||
| 22 | |||
| 23 | 2011-02-27 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 24 | |||
| 25 | * gnus-group.el (gnus-import-other-newsrc-file): New function. | ||
| 26 | |||
| 27 | 2011-02-25 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 28 | |||
| 29 | * auth-source.el (auth-source-search): Cache empty result sets. | ||
| 30 | |||
| 31 | * auth-source.el (auth-source-save-behavior): New variable to replace | ||
| 32 | `auth-source-never-create'. | ||
| 33 | (auth-source-netrc-create): Use it. | ||
| 34 | (auth-source-never-save): Remove. | ||
| 35 | |||
| 36 | 2011-02-25 Lars Ingebrigtsen <larsi@gnus.org> | ||
| 37 | |||
| 38 | * nnimap.el (nnimap-stream): Doc fix. | ||
| 39 | (nnimap-open-connection-1): Reverse the order of the ports to that the | ||
| 40 | prompted-for port is first. | ||
| 41 | |||
| 42 | * gnus-start.el (gnus-get-unread-articles): Don't clobber the async | ||
| 43 | retrieval by the no-group selection. | ||
| 44 | |||
| 45 | * gnus-demon.el (gnus-demon-init): run-with-timer should be called with | ||
| 46 | numerical parameters. | ||
| 47 | |||
| 48 | 2011-02-25 Julien Danjou <julien@danjou.info> | ||
| 49 | |||
| 50 | * gnus-gravatar.el: Use gnus-with-article-buffer. | ||
| 51 | |||
| 52 | * gnus-art.el (gnus-with-article-buffer): Check that the | ||
| 53 | gnus-article-buffer is alive. | ||
| 54 | |||
| 55 | 2011-02-24 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 56 | |||
| 57 | * auth-source.el (auth-source-creation-prompts): New variable to manage | ||
| 58 | creation-time prompts. | ||
| 59 | (auth-source-search): Document it. | ||
| 60 | (auth-source-format-prompt): Add utility function. | ||
| 61 | (auth-source-netrc-create): Don't default the user name to | ||
| 62 | user-login-name. Use `auth-source-creation-prompts' and some default | ||
| 63 | prompts for user, host, port, and password (the default generic prompt | ||
| 64 | remains ugly). | ||
| 65 | (auth-source-never-save): Add customizable option to never save info. | ||
| 66 | (auth-source-netrc-create): Use it and improve save prompts. Fix help | ||
| 67 | mode excursion. | ||
| 68 | |||
| 1 | 2011-02-24 Katsumi Yamaoka <yamaoka@jpl.org> | 69 | 2011-02-24 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 70 | ||
| 3 | * auth-source.el (auth-source-netrc-create): Use `read-char' with no | 71 | * auth-source.el (auth-source-netrc-create): Use `read-char' with no |
diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el index 63ec93dd760..500de10b71c 100644 --- a/lisp/gnus/auth-source.el +++ b/lisp/gnus/auth-source.el | |||
| @@ -137,8 +137,21 @@ let-binding." | |||
| 137 | (defvar auth-source-creation-defaults nil | 137 | (defvar auth-source-creation-defaults nil |
| 138 | "Defaults for creating token values. Usually let-bound.") | 138 | "Defaults for creating token values. Usually let-bound.") |
| 139 | 139 | ||
| 140 | (defvar auth-source-creation-prompts nil | ||
| 141 | "Default prompts for token values. Usually let-bound.") | ||
| 142 | |||
| 140 | (make-obsolete 'auth-source-hide-passwords nil "Emacs 24.1") | 143 | (make-obsolete 'auth-source-hide-passwords nil "Emacs 24.1") |
| 141 | 144 | ||
| 145 | (defcustom auth-source-save-behavior 'ask | ||
| 146 | "If set, auth-source will respect it for save behavior." | ||
| 147 | :group 'auth-source | ||
| 148 | :version "23.2" ;; No Gnus | ||
| 149 | :type `(choice | ||
| 150 | :tag "auth-source new token save behavior" | ||
| 151 | (const :tag "Always save" t) | ||
| 152 | (const :tag "Never save" nil) | ||
| 153 | (const :tag "Ask" ask))) | ||
| 154 | |||
| 142 | (defvar auth-source-magic "auth-source-magic ") | 155 | (defvar auth-source-magic "auth-source-magic ") |
| 143 | 156 | ||
| 144 | (defcustom auth-source-do-cache t | 157 | (defcustom auth-source-do-cache t |
| @@ -435,12 +448,18 @@ parameter, that parameter will be required in the resulting | |||
| 435 | token. The value for that parameter will be obtained from the | 448 | token. The value for that parameter will be obtained from the |
| 436 | search parameters or from user input. If any queries are needed, | 449 | search parameters or from user input. If any queries are needed, |
| 437 | the alist `auth-source-creation-defaults' will be checked for the | 450 | the alist `auth-source-creation-defaults' will be checked for the |
| 438 | default prompt. | 451 | default value. If the user, host, or port are missing, the alist |
| 452 | `auth-source-creation-prompts' will be used to look up the | ||
| 453 | prompts IN THAT ORDER (so the 'user prompt will be queried first, | ||
| 454 | then 'host, then 'port, and finally 'secret). Each prompt string | ||
| 455 | can use %u, %h, and %p to show the user, host, and port. | ||
| 439 | 456 | ||
| 440 | Here's an example: | 457 | Here's an example: |
| 441 | 458 | ||
| 442 | \(let ((auth-source-creation-defaults '((user . \"defaultUser\") | 459 | \(let ((auth-source-creation-defaults '((user . \"defaultUser\") |
| 443 | (A . \"default A\")))) | 460 | (A . \"default A\"))) |
| 461 | (auth-source-creation-prompts | ||
| 462 | '((password . \"Enter IMAP password for %h:%p: \")))) | ||
| 444 | (auth-source-search :host '(\"nonesuch\" \"twosuch\") :type 'netrc :max 1 | 463 | (auth-source-search :host '(\"nonesuch\" \"twosuch\") :type 'netrc :max 1 |
| 445 | :P \"pppp\" :Q \"qqqq\" | 464 | :P \"pppp\" :Q \"qqqq\" |
| 446 | :create '(A B Q))) | 465 | :create '(A B Q))) |
| @@ -452,12 +471,11 @@ which says: | |||
| 452 | 471 | ||
| 453 | Create a new entry if you found none. The netrc backend will | 472 | Create a new entry if you found none. The netrc backend will |
| 454 | automatically require host, user, and port. The host will be | 473 | automatically require host, user, and port. The host will be |
| 455 | 'nonesuch' and Q will be 'qqqq'. We prompt for A with default | 474 | 'nonesuch' and Q will be 'qqqq'. We prompt for the password |
| 456 | 'default A', for B and port with default nil, and for the | 475 | with the shown prompt. We will not prompt for Q. The resulting |
| 457 | user with default 'defaultUser'. We will not prompt for Q. The | 476 | token will have keys user, host, port, A, B, and Q. It will not |
| 458 | resulting token will have keys user, host, port, A, B, and Q. | 477 | have P with any value, even though P is used in the search to |
| 459 | It will not have P with any value, even though P is used in the | 478 | find only entries that have P set to 'pppp'.\" |
| 460 | search to find only entries that have P set to 'pppp'.\" | ||
| 461 | 479 | ||
| 462 | When multiple values are specified in the search parameter, the | 480 | When multiple values are specified in the search parameter, the |
| 463 | user is prompted for which one. So :host (X Y Z) would ask the | 481 | 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." | |||
| 506 | (keys (loop for i below (length spec) by 2 | 524 | (keys (loop for i below (length spec) by 2 |
| 507 | unless (memq (nth i spec) ignored-keys) | 525 | unless (memq (nth i spec) ignored-keys) |
| 508 | collect (nth i spec))) | 526 | collect (nth i spec))) |
| 527 | (cached (auth-source-remembered-p spec)) | ||
| 528 | ;; note that we may have cached results but found is still nil | ||
| 529 | ;; (there were no results from the search) | ||
| 509 | (found (auth-source-recall spec)) | 530 | (found (auth-source-recall spec)) |
| 510 | filtered-backends accessor-key backend) | 531 | filtered-backends accessor-key backend) |
| 511 | 532 | ||
| 512 | (if (and found auth-source-do-cache) | 533 | (if (and cached auth-source-do-cache) |
| 513 | (auth-source-do-debug | 534 | (auth-source-do-debug |
| 514 | "auth-source-search: found %d CACHED results matching %S" | 535 | "auth-source-search: found %d CACHED results matching %S" |
| 515 | (length found) spec) | 536 | (length found) spec) |
| @@ -562,7 +583,8 @@ must call it to obtain the actual value." | |||
| 562 | "auth-source-search: CREATED %d results (max %d) matching %S" | 583 | "auth-source-search: CREATED %d results (max %d) matching %S" |
| 563 | (length found) max spec)) | 584 | (length found) max spec)) |
| 564 | 585 | ||
| 565 | (when (and found auth-source-do-cache) | 586 | ;; note we remember the lack of result too, if it's applicable |
| 587 | (when auth-source-do-cache | ||
| 566 | (auth-source-remember spec found))) | 588 | (auth-source-remember spec found))) |
| 567 | 589 | ||
| 568 | found)) | 590 | found)) |
| @@ -636,6 +658,11 @@ Returns the deleted entries." | |||
| 636 | (password-read-from-cache | 658 | (password-read-from-cache |
| 637 | (concat auth-source-magic (format "%S" spec)))) | 659 | (concat auth-source-magic (format "%S" spec)))) |
| 638 | 660 | ||
| 661 | (defun auth-source-remembered-p (spec) | ||
| 662 | "Check if SPEC is remembered." | ||
| 663 | (password-in-cache-p | ||
| 664 | (concat auth-source-magic (format "%S" spec)))) | ||
| 665 | |||
| 639 | (defun auth-source-forget (spec) | 666 | (defun auth-source-forget (spec) |
| 640 | "Forget any cached data matching SPEC exactly. | 667 | "Forget any cached data matching SPEC exactly. |
| 641 | 668 | ||
| @@ -646,7 +673,10 @@ Returns t or nil for forgotten or not found." | |||
| 646 | ;;; (loop for sym being the symbols of password-data when (string-match (concat "^" auth-source-magic) (symbol-name sym)) collect (symbol-name sym)) | 673 | ;;; (loop for sym being the symbols of password-data when (string-match (concat "^" auth-source-magic) (symbol-name sym)) collect (symbol-name sym)) |
| 647 | 674 | ||
| 648 | ;;; (auth-source-remember '(:host "wedd") '(4 5 6)) | 675 | ;;; (auth-source-remember '(:host "wedd") '(4 5 6)) |
| 676 | ;;; (auth-source-remembered-p '(:host "wedd")) | ||
| 649 | ;;; (auth-source-remember '(:host "xedd") '(1 2 3)) | 677 | ;;; (auth-source-remember '(:host "xedd") '(1 2 3)) |
| 678 | ;;; (auth-source-remembered-p '(:host "xedd")) | ||
| 679 | ;;; (auth-source-remembered-p '(:host "zedd")) | ||
| 650 | ;;; (auth-source-recall '(:host "xedd")) | 680 | ;;; (auth-source-recall '(:host "xedd")) |
| 651 | ;;; (auth-source-recall '(:host t)) | 681 | ;;; (auth-source-recall '(:host t)) |
| 652 | ;;; (auth-source-forget+ :host t) | 682 | ;;; (auth-source-forget+ :host t) |
| @@ -903,6 +933,17 @@ See `auth-source-search' for details on SPEC." | |||
| 903 | (nth 0 v) | 933 | (nth 0 v) |
| 904 | v)) | 934 | v)) |
| 905 | 935 | ||
| 936 | ;; (auth-source-format-prompt "test %u %h %p" '((?u "user") (?h "host"))) | ||
| 937 | |||
| 938 | (defun auth-source-format-prompt (prompt alist) | ||
| 939 | "Format PROMPT using %x (for any character x) specifiers in ALIST." | ||
| 940 | (dolist (cell alist) | ||
| 941 | (let ((c (nth 0 cell)) | ||
| 942 | (v (nth 1 cell))) | ||
| 943 | (when (and c v) | ||
| 944 | (setq prompt (replace-regexp-in-string (format "%%%c" c) v prompt))))) | ||
| 945 | prompt) | ||
| 946 | |||
| 906 | ;;; (auth-source-search :host "nonesuch" :type 'netrc :max 1 :create t) | 947 | ;;; (auth-source-search :host "nonesuch" :type 'netrc :max 1 :create t) |
| 907 | ;;; (auth-source-search :host "nonesuch" :type 'netrc :max 1 :create t :create-extra-keys '((A "default A") (B))) | 948 | ;;; (auth-source-search :host "nonesuch" :type 'netrc :max 1 :create t :create-extra-keys '((A "default A") (B))) |
| 908 | 949 | ||
| @@ -954,31 +995,50 @@ See `auth-source-search' for details on SPEC." | |||
| 954 | ;; the default supplementals are simple: for the user, | 995 | ;; the default supplementals are simple: for the user, |
| 955 | ;; try (user-login-name), otherwise take given-default | 996 | ;; try (user-login-name), otherwise take given-default |
| 956 | (default (cond | 997 | (default (cond |
| 957 | ((and (not given-default) (eq r 'user)) | 998 | ;; don't default the user name |
| 958 | (user-login-name)) | 999 | ;; ((and (not given-default) (eq r 'user)) |
| 959 | (t given-default)))) | 1000 | ;; (user-login-name)) |
| 1001 | (t given-default))) | ||
| 1002 | (printable-defaults (list | ||
| 1003 | (cons 'user | ||
| 1004 | (or | ||
| 1005 | (auth-source-netrc-element-or-first | ||
| 1006 | (aget valist 'user)) | ||
| 1007 | (plist-get artificial :user) | ||
| 1008 | "[any user]")) | ||
| 1009 | (cons 'host | ||
| 1010 | (or | ||
| 1011 | (auth-source-netrc-element-or-first | ||
| 1012 | (aget valist 'host)) | ||
| 1013 | (plist-get artificial :host) | ||
| 1014 | "[any host]")) | ||
| 1015 | (cons 'port | ||
| 1016 | (or | ||
| 1017 | (auth-source-netrc-element-or-first | ||
| 1018 | (aget valist 'port)) | ||
| 1019 | (plist-get artificial :port) | ||
| 1020 | "[any port]")))) | ||
| 1021 | (prompt (or (aget auth-source-creation-prompts r) | ||
| 1022 | (case r | ||
| 1023 | ('secret "%p password for user %u, host %h: ") | ||
| 1024 | ('user "%p user name: ") | ||
| 1025 | ('host "%p host name for user %u: ") | ||
| 1026 | ('port "%p port for user %u and host %h: ")) | ||
| 1027 | (format "Enter %s (%%u@%%h:%%p): " r))) | ||
| 1028 | (prompt (auth-source-format-prompt | ||
| 1029 | prompt | ||
| 1030 | `((?u ,(aget printable-defaults 'user)) | ||
| 1031 | (?h ,(aget printable-defaults 'host)) | ||
| 1032 | (?p ,(aget printable-defaults 'port)))))) | ||
| 960 | 1033 | ||
| 961 | ;; store the data, prompting for the password if needed | 1034 | ;; store the data, prompting for the password if needed |
| 962 | (setq data | 1035 | (setq data |
| 963 | (cond | 1036 | (cond |
| 964 | ((and (null data) (eq r 'secret)) | 1037 | ((and (null data) (eq r 'secret)) |
| 965 | ;; special case prompt for passwords | 1038 | ;; special case prompt for passwords |
| 966 | (read-passwd (format "Password for %s@%s:%s: " | 1039 | (read-passwd prompt)) |
| 967 | (or | 1040 | ((null data) |
| 968 | (auth-source-netrc-element-or-first | 1041 | (read-string prompt default)) |
| 969 | (aget valist 'user)) | ||
| 970 | (plist-get artificial :user) | ||
| 971 | "[any user]") | ||
| 972 | (or | ||
| 973 | (auth-source-netrc-element-or-first | ||
| 974 | (aget valist 'host)) | ||
| 975 | (plist-get artificial :host) | ||
| 976 | "[any host]") | ||
| 977 | (or | ||
| 978 | (auth-source-netrc-element-or-first | ||
| 979 | (aget valist 'port)) | ||
| 980 | (plist-get artificial :port) | ||
| 981 | "[any port]")))) | ||
| 982 | (t (or data default)))) | 1042 | (t (or data default)))) |
| 983 | 1043 | ||
| 984 | (when data | 1044 | (when data |
| @@ -1026,22 +1086,42 @@ See `auth-source-search' for details on SPEC." | |||
| 1026 | (goto-char (point-max)) | 1086 | (goto-char (point-max)) |
| 1027 | 1087 | ||
| 1028 | ;; ask AFTER we've successfully opened the file | 1088 | ;; ask AFTER we've successfully opened the file |
| 1029 | (let ((prompt (format "Add to file %s? %s: " | 1089 | (let ((prompt (format "Save auth info to file %s? %s: " |
| 1030 | file | 1090 | file |
| 1031 | "(y)es/(n)o but use it/(e)dit line/(s)kip file")) | 1091 | "y/n/N/e/?")) |
| 1032 | done k) | 1092 | (done (not (eq auth-source-save-behavior 'ask))) |
| 1093 | (bufname "*auth-source Help*") | ||
| 1094 | k) | ||
| 1033 | (while (not done) | 1095 | (while (not done) |
| 1034 | (message "%s" prompt) | 1096 | (message "%s" prompt) |
| 1035 | (setq k (read-char)) | 1097 | (setq k (read-char)) |
| 1036 | (case k | 1098 | (case k |
| 1037 | (?y (setq done t)) | 1099 | (?y (setq done t)) |
| 1100 | (?? (save-excursion | ||
| 1101 | (with-output-to-temp-buffer bufname | ||
| 1102 | (princ | ||
| 1103 | (concat "(y)es, save\n" | ||
| 1104 | "(n)o but use the info\n" | ||
| 1105 | "(N)o and don't ask to save again\n" | ||
| 1106 | "(e)dit the line\n" | ||
| 1107 | "(?) for help as you can see.\n")) | ||
| 1108 | (set-buffer standard-output) | ||
| 1109 | (help-mode)))) | ||
| 1038 | (?n (setq add "" | 1110 | (?n (setq add "" |
| 1039 | done t)) | 1111 | done t)) |
| 1040 | (?s (setq add "" | 1112 | (?N (setq add "" |
| 1041 | done 'skip)) | 1113 | done t |
| 1114 | auth-source-save-behavior nil)) | ||
| 1042 | (?e (setq add (read-string "Line to add: " add))) | 1115 | (?e (setq add (read-string "Line to add: " add))) |
| 1043 | (t nil))) | 1116 | (t nil))) |
| 1044 | 1117 | ||
| 1118 | (when (get-buffer-window bufname) | ||
| 1119 | (delete-window (get-buffer-window bufname))) | ||
| 1120 | |||
| 1121 | ;; make sure the info is not saved | ||
| 1122 | (when (null auth-source-save-behavior) | ||
| 1123 | (setq add "")) | ||
| 1124 | |||
| 1045 | (when (< 0 (length add)) | 1125 | (when (< 0 (length add)) |
| 1046 | (progn | 1126 | (progn |
| 1047 | (unless (bolp) | 1127 | (unless (bolp) |
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index 204d63d37e4..989488c0995 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el | |||
| @@ -441,7 +441,7 @@ manipulated as follows: | |||
| 441 | (setf (gnus-agent-cat-groups old-category) | 441 | (setf (gnus-agent-cat-groups old-category) |
| 442 | (delete group (gnus-agent-cat-groups | 442 | (delete group (gnus-agent-cat-groups |
| 443 | old-category)))))) | 443 | old-category)))))) |
| 444 | ;; Purge cache as preceeding loop invalidated it. | 444 | ;; Purge cache as preceding loop invalidated it. |
| 445 | (setq gnus-category-group-cache nil)) | 445 | (setq gnus-category-group-cache nil)) |
| 446 | 446 | ||
| 447 | (setcdr (or (assq 'agent-groups category) | 447 | (setcdr (or (assq 'agent-groups category) |
| @@ -1195,7 +1195,7 @@ downloadable." | |||
| 1195 | (mapc #'gnus-summary-remove-process-mark | 1195 | (mapc #'gnus-summary-remove-process-mark |
| 1196 | (gnus-sorted-ndifference gnus-newsgroup-processable gnus-newsgroup-undownloaded)) | 1196 | (gnus-sorted-ndifference gnus-newsgroup-processable gnus-newsgroup-undownloaded)) |
| 1197 | 1197 | ||
| 1198 | ;; The preceeding call to (gnus-agent-summary-fetch-group) | 1198 | ;; The preceding call to (gnus-agent-summary-fetch-group) |
| 1199 | ;; updated the temporary gnus-newsgroup-downloadable to | 1199 | ;; updated the temporary gnus-newsgroup-downloadable to |
| 1200 | ;; remove each article successfully fetched. Now, I | 1200 | ;; remove each article successfully fetched. Now, I |
| 1201 | ;; update the real gnus-newsgroup-downloadable to only | 1201 | ;; update the real gnus-newsgroup-downloadable to only |
| @@ -1520,14 +1520,14 @@ downloaded into the agent." | |||
| 1520 | header-number) | 1520 | header-number) |
| 1521 | ;; Check each article | 1521 | ;; Check each article |
| 1522 | (while (setq article (pop articles)) | 1522 | (while (setq article (pop articles)) |
| 1523 | ;; Skip alist entries preceeding this article | 1523 | ;; Skip alist entries preceding this article |
| 1524 | (while (> article (or (caar alist) (1+ article))) | 1524 | (while (> article (or (caar alist) (1+ article))) |
| 1525 | (setq alist (cdr alist))) | 1525 | (setq alist (cdr alist))) |
| 1526 | 1526 | ||
| 1527 | ;; Prune off articles that we have already fetched. | 1527 | ;; Prune off articles that we have already fetched. |
| 1528 | (unless (and (eq article (caar alist)) | 1528 | (unless (and (eq article (caar alist)) |
| 1529 | (cdar alist)) | 1529 | (cdar alist)) |
| 1530 | ;; Skip headers preceeding this article | 1530 | ;; Skip headers preceding this article |
| 1531 | (while (> article | 1531 | (while (> article |
| 1532 | (setq header-number | 1532 | (setq header-number |
| 1533 | (let* ((header (car headers))) | 1533 | (let* ((header (car headers))) |
| @@ -3437,7 +3437,7 @@ missing NOV entry. Run gnus-agent-regenerate-group to restore it."))) | |||
| 3437 | 3437 | ||
| 3438 | ;; If considering all articles is set, I can only | 3438 | ;; If considering all articles is set, I can only |
| 3439 | ;; expire article IDs that are no longer in the | 3439 | ;; expire article IDs that are no longer in the |
| 3440 | ;; active range (That is, articles that preceed the | 3440 | ;; active range (That is, articles that precede the |
| 3441 | ;; first article in the new alist). | 3441 | ;; first article in the new alist). |
| 3442 | (if (and gnus-agent-consider-all-articles | 3442 | (if (and gnus-agent-consider-all-articles |
| 3443 | (>= article-number (car active))) | 3443 | (>= article-number (car active))) |
| @@ -3715,7 +3715,7 @@ has been fetched." | |||
| 3715 | (gnus-agent-append-to-list tail-uncached v1)) | 3715 | (gnus-agent-append-to-list tail-uncached v1)) |
| 3716 | (setq arts (cdr arts)) | 3716 | (setq arts (cdr arts)) |
| 3717 | (setq ref (cdr ref))) | 3717 | (setq ref (cdr ref))) |
| 3718 | (t ; reference article (v2) preceeds the list being filtered | 3718 | (t ; reference article (v2) precedes the list being filtered |
| 3719 | (setq ref (cdr ref)))))) | 3719 | (setq ref (cdr ref)))))) |
| 3720 | (while arts | 3720 | (while arts |
| 3721 | (gnus-agent-append-to-list tail-uncached (pop arts))) | 3721 | (gnus-agent-append-to-list tail-uncached (pop arts))) |
| @@ -4020,7 +4020,7 @@ If REREAD is not nil, downloaded articles are marked as unread." | |||
| 4020 | ;; article (with the exception of the last ID in the list - it's | 4020 | ;; article (with the exception of the last ID in the list - it's |
| 4021 | ;; special) that no longer appears in the overview. In this | 4021 | ;; special) that no longer appears in the overview. In this |
| 4022 | ;; situtation, the last article ID in the list implies that it, | 4022 | ;; situtation, the last article ID in the list implies that it, |
| 4023 | ;; and every article ID preceeding it, have been fetched from the | 4023 | ;; and every article ID preceding it, have been fetched from the |
| 4024 | ;; server. | 4024 | ;; server. |
| 4025 | 4025 | ||
| 4026 | (if gnus-agent-consider-all-articles | 4026 | (if gnus-agent-consider-all-articles |
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 5b3489a72ee..7469c4445c6 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -1253,6 +1253,24 @@ predicate. See Info node `(gnus)Customizing Articles'." | |||
| 1253 | :link '(custom-manual "(gnus)Customizing Articles") | 1253 | :link '(custom-manual "(gnus)Customizing Articles") |
| 1254 | :type gnus-article-treat-custom) | 1254 | :type gnus-article-treat-custom) |
| 1255 | 1255 | ||
| 1256 | (gnus-define-group-parameter | ||
| 1257 | list-identifier | ||
| 1258 | :variable-document | ||
| 1259 | "Alist of regexps and correspondent identifiers." | ||
| 1260 | :variable-group gnus-article-washing | ||
| 1261 | :parameter-type | ||
| 1262 | '(choice :tag "Identifier" | ||
| 1263 | :value nil | ||
| 1264 | (symbol :tag "Item in `gnus-list-identifiers'" none) | ||
| 1265 | regexp | ||
| 1266 | (const :tag "None" nil)) | ||
| 1267 | :parameter-document | ||
| 1268 | "If non-nil, specify how to remove `identifiers' from articles' subject. | ||
| 1269 | |||
| 1270 | Any symbol is used to look up a regular expression to match the | ||
| 1271 | banner in `gnus-list-identifiers'. A string is used as a regular | ||
| 1272 | expression to match the identifier directly.") | ||
| 1273 | |||
| 1256 | (make-obsolete-variable 'gnus-treat-strip-pgp nil | 1274 | (make-obsolete-variable 'gnus-treat-strip-pgp nil |
| 1257 | "Gnus 5.10 (Emacs 22.1)") | 1275 | "Gnus 5.10 (Emacs 22.1)") |
| 1258 | 1276 | ||
| @@ -1725,9 +1743,10 @@ Initialized from `text-mode-syntax-table.") | |||
| 1725 | (put 'gnus-with-article-headers 'edebug-form-spec '(body)) | 1743 | (put 'gnus-with-article-headers 'edebug-form-spec '(body)) |
| 1726 | 1744 | ||
| 1727 | (defmacro gnus-with-article-buffer (&rest forms) | 1745 | (defmacro gnus-with-article-buffer (&rest forms) |
| 1728 | `(with-current-buffer gnus-article-buffer | 1746 | `(when (buffer-live-p gnus-article-buffer) |
| 1729 | (let ((inhibit-read-only t)) | 1747 | (with-current-buffer gnus-article-buffer |
| 1730 | ,@forms))) | 1748 | (let ((inhibit-read-only t)) |
| 1749 | ,@forms)))) | ||
| 1731 | 1750 | ||
| 1732 | (put 'gnus-with-article-buffer 'lisp-indent-function 0) | 1751 | (put 'gnus-with-article-buffer 'lisp-indent-function 0) |
| 1733 | (put 'gnus-with-article-buffer 'edebug-form-spec '(body)) | 1752 | (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 | |||
| 3055 | The `gnus-list-identifiers' variable specifies what to do." | 3074 | The `gnus-list-identifiers' variable specifies what to do." |
| 3056 | (interactive) | 3075 | (interactive) |
| 3057 | (let ((inhibit-point-motion-hooks t) | 3076 | (let ((inhibit-point-motion-hooks t) |
| 3058 | (regexp (if (consp gnus-list-identifiers) | 3077 | (regexp (or (gnus-parameter-list-identifier gnus-newsgroup-name) |
| 3059 | (mapconcat 'identity gnus-list-identifiers " *\\|") | 3078 | (if (consp gnus-list-identifiers) |
| 3060 | gnus-list-identifiers)) | 3079 | (mapconcat 'identity gnus-list-identifiers " *\\|") |
| 3061 | (inhibit-read-only t)) | 3080 | gnus-list-identifiers))) |
| 3081 | (inhibit-read-only t)) | ||
| 3062 | (when regexp | 3082 | (when regexp |
| 3063 | (save-excursion | 3083 | (save-excursion |
| 3064 | (save-restriction | 3084 | (save-restriction |
diff --git a/lisp/gnus/gnus-demon.el b/lisp/gnus/gnus-demon.el index 2a45b9363f4..419346b7191 100644 --- a/lisp/gnus/gnus-demon.el +++ b/lisp/gnus/gnus-demon.el | |||
| @@ -140,7 +140,7 @@ Emacs has been idle for IDLE `gnus-demon-timestep's." | |||
| 140 | ;; (func number nil) | 140 | ;; (func number nil) |
| 141 | ;; Call every `time' | 141 | ;; Call every `time' |
| 142 | ((and (numberp time) (null idle)) | 142 | ((and (numberp time) (null idle)) |
| 143 | (run-with-timer t time 'gnus-demon-run-callback func))))) | 143 | (run-with-timer time time 'gnus-demon-run-callback func))))) |
| 144 | (when timer | 144 | (when timer |
| 145 | (add-to-list 'gnus-demon-timers timer))))) | 145 | (add-to-list 'gnus-demon-timers timer))))) |
| 146 | 146 | ||
diff --git a/lisp/gnus/gnus-gravatar.el b/lisp/gnus/gnus-gravatar.el index 7208889a163..98b1f3bd18c 100644 --- a/lisp/gnus/gnus-gravatar.el +++ b/lisp/gnus/gnus-gravatar.el | |||
| @@ -80,9 +80,8 @@ If nil, default to `gravatar-size'." | |||
| 80 | "Insert GRAVATAR for ADDRESS in HEADER in current article buffer. | 80 | "Insert GRAVATAR for ADDRESS in HEADER in current article buffer. |
| 81 | Set image category to CATEGORY." | 81 | Set image category to CATEGORY." |
| 82 | (unless (eq gravatar 'error) | 82 | (unless (eq gravatar 'error) |
| 83 | (with-current-buffer gnus-article-buffer | 83 | (gnus-with-article-buffer |
| 84 | (let ((mark (point-marker)) | 84 | (let ((mark (point-marker)) |
| 85 | (inhibit-read-only t) | ||
| 86 | (inhibit-point-motion-hooks t) | 85 | (inhibit-point-motion-hooks t) |
| 87 | (case-fold-search t)) | 86 | (case-fold-search t)) |
| 88 | (save-restriction | 87 | (save-restriction |
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 30cd1275e7b..832cd758b61 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el | |||
| @@ -4400,6 +4400,21 @@ and the second element is the address." | |||
| 4400 | (defun gnus-group-set-params-info (group params) | 4400 | (defun gnus-group-set-params-info (group params) |
| 4401 | (gnus-group-set-info params group 'params)) | 4401 | (gnus-group-set-info params group 'params)) |
| 4402 | 4402 | ||
| 4403 | ;; Ad-hoc function for inserting data from a different newsrc.eld | ||
| 4404 | ;; file. Use with caution, if at all. | ||
| 4405 | (defun gnus-import-other-newsrc-file (file) | ||
| 4406 | (with-temp-buffer | ||
| 4407 | (insert-file file) | ||
| 4408 | (let (form) | ||
| 4409 | (while (ignore-errors | ||
| 4410 | (setq form (read (current-buffer)))) | ||
| 4411 | (when (and (consp form) | ||
| 4412 | (eq (cadr form) 'gnus-newsrc-alist)) | ||
| 4413 | (let ((infos (cadr (nth 2 form)))) | ||
| 4414 | (dolist (info infos) | ||
| 4415 | (when (gnus-get-info (car info)) | ||
| 4416 | (gnus-set-info (car info) info))))))))) | ||
| 4417 | |||
| 4403 | (defun gnus-add-marked-articles (group type articles &optional info force) | 4418 | (defun gnus-add-marked-articles (group type articles &optional info force) |
| 4404 | ;; Add ARTICLES of TYPE to the info of GROUP. | 4419 | ;; Add ARTICLES of TYPE to the info of GROUP. |
| 4405 | ;; If INFO is non-nil, use that info. If FORCE is non-nil, don't | 4420 | ;; If INFO is non-nil, use that info. If FORCE is non-nil, don't |
diff --git a/lisp/gnus/gnus-range.el b/lisp/gnus/gnus-range.el index 794d1642cdd..ce5a837eaef 100644 --- a/lisp/gnus/gnus-range.el +++ b/lisp/gnus/gnus-range.el | |||
| @@ -116,10 +116,10 @@ Both ranges must be in ascending order." | |||
| 116 | ;; All done with range2 | 116 | ;; All done with range2 |
| 117 | (setq r nil)) | 117 | (setq r nil)) |
| 118 | ((< max1 min2) | 118 | ((< max1 min2) |
| 119 | ;; No overlap: range1 preceeds range2 | 119 | ;; No overlap: range1 precedes range2 |
| 120 | (pop r)) | 120 | (pop r)) |
| 121 | ((< max2 min1) | 121 | ((< max2 min1) |
| 122 | ;; No overlap: range2 preceeds range1 | 122 | ;; No overlap: range2 precedes range1 |
| 123 | (pop range2)) | 123 | (pop range2)) |
| 124 | ((and (<= min2 min1) (<= max1 max2)) | 124 | ((and (<= min2 min1) (<= max1 max2)) |
| 125 | ;; Complete overlap: range1 removed | 125 | ;; Complete overlap: range1 removed |
| @@ -232,10 +232,10 @@ RANGE1 and RANGE2 have to be sorted over <." | |||
| 232 | (setq range1 (cdr range1) | 232 | (setq range1 (cdr range1) |
| 233 | range2 (cdr range2)) | 233 | range2 (cdr range2)) |
| 234 | (while (and min1 min2) | 234 | (while (and min1 min2) |
| 235 | (cond ((< max1 min2) ; range1 preceeds range2 | 235 | (cond ((< max1 min2) ; range1 precedes range2 |
| 236 | (setq range1 (cdr range1) | 236 | (setq range1 (cdr range1) |
| 237 | min1 nil)) | 237 | min1 nil)) |
| 238 | ((< max2 min1) ; range2 preceeds range1 | 238 | ((< max2 min1) ; range2 precedes range1 |
| 239 | (setq range2 (cdr range2) | 239 | (setq range2 (cdr range2) |
| 240 | min2 nil)) | 240 | min2 nil)) |
| 241 | (t ; some sort of overlap is occurring | 241 | (t ; some sort of overlap is occurring |
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index dea6aabc75b..ebfa53f841e 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el | |||
| @@ -1513,7 +1513,7 @@ If SCAN, request a scan of that group as well." | |||
| 1513 | (num 0)) | 1513 | (num 0)) |
| 1514 | 1514 | ||
| 1515 | ;; These checks are present in gnus-activate-group but skipped | 1515 | ;; These checks are present in gnus-activate-group but skipped |
| 1516 | ;; due to setting dont-check in the preceeding call. | 1516 | ;; due to setting dont-check in the preceding call. |
| 1517 | 1517 | ||
| 1518 | ;; If a cache is present, we may have to alter the active info. | 1518 | ;; If a cache is present, we may have to alter the active info. |
| 1519 | (when (and gnus-use-cache info) | 1519 | (when (and gnus-use-cache info) |
| @@ -1690,6 +1690,16 @@ If SCAN, request a scan of that group as well." | |||
| 1690 | method)) | 1690 | method)) |
| 1691 | (setcar elem method)) | 1691 | (setcar elem method)) |
| 1692 | (push (list method 'ok) methods))))) | 1692 | (push (list method 'ok) methods))))) |
| 1693 | |||
| 1694 | ;; If we have primary/secondary select methods, but no groups from | ||
| 1695 | ;; them, we still want to issue a retrieval request from them. | ||
| 1696 | (dolist (method (cons gnus-select-method | ||
| 1697 | gnus-secondary-select-methods)) | ||
| 1698 | (when (and (not (assoc method type-cache)) | ||
| 1699 | (gnus-check-backend-function 'request-list (car method))) | ||
| 1700 | (with-current-buffer nntp-server-buffer | ||
| 1701 | (gnus-read-active-file-1 method nil)))) | ||
| 1702 | |||
| 1693 | ;; Start early async retrieval of data. | 1703 | ;; Start early async retrieval of data. |
| 1694 | (dolist (elem type-cache) | 1704 | (dolist (elem type-cache) |
| 1695 | (destructuring-bind (method method-type infos dummy) elem | 1705 | (destructuring-bind (method method-type infos dummy) elem |
| @@ -1712,15 +1722,6 @@ If SCAN, request a scan of that group as well." | |||
| 1712 | (setcar (nthcdr 3 elem) | 1722 | (setcar (nthcdr 3 elem) |
| 1713 | (gnus-retrieve-group-data-early method infos))))))) | 1723 | (gnus-retrieve-group-data-early method infos))))))) |
| 1714 | 1724 | ||
| 1715 | ;; If we have primary/secondary select methods, but no groups from | ||
| 1716 | ;; them, we still want to issue a retrieval request from them. | ||
| 1717 | (dolist (method (cons gnus-select-method | ||
| 1718 | gnus-secondary-select-methods)) | ||
| 1719 | (when (and (not (assoc method type-cache)) | ||
| 1720 | (gnus-check-backend-function 'request-list (car method))) | ||
| 1721 | (with-current-buffer nntp-server-buffer | ||
| 1722 | (gnus-read-active-file-1 method nil)))) | ||
| 1723 | |||
| 1724 | ;; Do the rest of the retrieval. | 1725 | ;; Do the rest of the retrieval. |
| 1725 | (dolist (elem type-cache) | 1726 | (dolist (elem type-cache) |
| 1726 | (destructuring-bind (method method-type infos early-data) elem | 1727 | (destructuring-bind (method method-type infos early-data) elem |
| @@ -1886,7 +1887,7 @@ If SCAN, request a scan of that group as well." | |||
| 1886 | ;; OK - I'm done | 1887 | ;; OK - I'm done |
| 1887 | (setq articles nil)) | 1888 | (setq articles nil)) |
| 1888 | ((< range article) | 1889 | ((< range article) |
| 1889 | ;; this range preceeds the article. Leave the range unmodified. | 1890 | ;; this range precedes the article. Leave the range unmodified. |
| 1890 | (pop ranges) | 1891 | (pop ranges) |
| 1891 | ranges) | 1892 | ranges) |
| 1892 | ((= range article) | 1893 | ((= range article) |
| @@ -1909,11 +1910,11 @@ If SCAN, request a scan of that group as well." | |||
| 1909 | (setcar ranges min) | 1910 | (setcar ranges min) |
| 1910 | ranges) | 1911 | ranges) |
| 1911 | ((< max article) | 1912 | ((< max article) |
| 1912 | ;; this range preceeds the article. Leave the range unmodified. | 1913 | ;; this range precedes the article. Leave the range unmodified. |
| 1913 | (pop ranges) | 1914 | (pop ranges) |
| 1914 | ranges) | 1915 | ranges) |
| 1915 | ((< article min) | 1916 | ((< article min) |
| 1916 | ;; this article preceeds the range. Return null to move to the | 1917 | ;; this article precedes the range. Return null to move to the |
| 1917 | ;; next article | 1918 | ;; next article |
| 1918 | nil) | 1919 | nil) |
| 1919 | (t | 1920 | (t |
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index 42acb65ff9f..a5c727925f6 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el | |||
| @@ -3114,6 +3114,10 @@ Return nil if not defined." | |||
| 3114 | (defmacro gnus-get-info (group) | 3114 | (defmacro gnus-get-info (group) |
| 3115 | `(nth 2 (gnus-gethash ,group gnus-newsrc-hashtb))) | 3115 | `(nth 2 (gnus-gethash ,group gnus-newsrc-hashtb))) |
| 3116 | 3116 | ||
| 3117 | (defun gnus-set-info (group info) | ||
| 3118 | (setcar (nthcdr 2 (gnus-gethash group gnus-newsrc-hashtb)) | ||
| 3119 | info)) | ||
| 3120 | |||
| 3117 | ;;; Load the compatibility functions. | 3121 | ;;; Load the compatibility functions. |
| 3118 | 3122 | ||
| 3119 | (require 'gnus-ems) | 3123 | (require 'gnus-ems) |
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index b2733407836..c579261e356 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el | |||
| @@ -62,8 +62,9 @@ it will default to `imap'.") | |||
| 62 | 62 | ||
| 63 | (defvoo nnimap-stream 'undecided | 63 | (defvoo nnimap-stream 'undecided |
| 64 | "How nnimap will talk to the IMAP server. | 64 | "How nnimap will talk to the IMAP server. |
| 65 | Values are `ssl', `network', `starttls' or `shell'. | 65 | Values are `ssl', `network', `network-only, `starttls' or |
| 66 | The default is to try `ssl' first, and then `network'.") | 66 | `shell'. The default is to try `ssl' first, and then |
| 67 | `network'.") | ||
| 67 | 68 | ||
| 68 | (defvoo nnimap-shell-program (if (boundp 'imap-shell-program) | 69 | (defvoo nnimap-shell-program (if (boundp 'imap-shell-program) |
| 69 | (if (listp imap-shell-program) | 70 | (if (listp imap-shell-program) |
| @@ -337,7 +338,7 @@ textual parts.") | |||
| 337 | (eq nnimap-stream 'starttls)) | 338 | (eq nnimap-stream 'starttls)) |
| 338 | (nnheader-message 7 "Opening connection to %s..." | 339 | (nnheader-message 7 "Opening connection to %s..." |
| 339 | nnimap-address) | 340 | nnimap-address) |
| 340 | '("143" "imap")) | 341 | '("imap" "143")) |
| 341 | ((eq nnimap-stream 'shell) | 342 | ((eq nnimap-stream 'shell) |
| 342 | (nnheader-message 7 "Opening connection to %s via shell..." | 343 | (nnheader-message 7 "Opening connection to %s via shell..." |
| 343 | nnimap-address) | 344 | nnimap-address) |
| @@ -345,16 +346,16 @@ textual parts.") | |||
| 345 | ((memq nnimap-stream '(ssl tls)) | 346 | ((memq nnimap-stream '(ssl tls)) |
| 346 | (nnheader-message 7 "Opening connection to %s via tls..." | 347 | (nnheader-message 7 "Opening connection to %s via tls..." |
| 347 | nnimap-address) | 348 | nnimap-address) |
| 348 | '("143" "993" "imap" "imaps")) | 349 | '("imaps" "imap" "993" "143")) |
| 349 | (t | 350 | (t |
| 350 | (error "Unknown stream type: %s" nnimap-stream)))) | 351 | (error "Unknown stream type: %s" nnimap-stream)))) |
| 351 | (proto-stream-always-use-starttls t) | 352 | (proto-stream-always-use-starttls t) |
| 352 | login-result credentials) | 353 | login-result credentials) |
| 353 | (when nnimap-server-port | 354 | (when nnimap-server-port |
| 354 | (setq ports (append ports (list nnimap-server-port)))) | 355 | (push nnimap-server-port ports)) |
| 355 | (destructuring-bind (stream greeting capabilities stream-type) | 356 | (destructuring-bind (stream greeting capabilities stream-type) |
| 356 | (open-protocol-stream | 357 | (open-protocol-stream |
| 357 | "*nnimap*" (current-buffer) nnimap-address (car (last ports)) | 358 | "*nnimap*" (current-buffer) nnimap-address (car ports) |
| 358 | :type nnimap-stream | 359 | :type nnimap-stream |
| 359 | :shell-command nnimap-shell-program | 360 | :shell-command nnimap-shell-program |
| 360 | :capability-command "1 CAPABILITY\r\n" | 361 | :capability-command "1 CAPABILITY\r\n" |
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el index 09ecfb8f6b7..66a6365cb3b 100644 --- a/lisp/gnus/nntp.el +++ b/lisp/gnus/nntp.el | |||
| @@ -1672,7 +1672,7 @@ password contained in '~/.nntp-authinfo'." | |||
| 1672 | 1672 | ||
| 1673 | ;; Some nntp servers seem to have an extension to the XOVER | 1673 | ;; Some nntp servers seem to have an extension to the XOVER |
| 1674 | ;; extension. On these servers, requesting an article range | 1674 | ;; extension. On these servers, requesting an article range |
| 1675 | ;; preceeding the active range does not return an error as | 1675 | ;; preceding the active range does not return an error as |
| 1676 | ;; specified in the RFC. What we instead get is the NOV entry | 1676 | ;; specified in the RFC. What we instead get is the NOV entry |
| 1677 | ;; for the first available article. Obviously, a client can | 1677 | ;; for the first available article. Obviously, a client can |
| 1678 | ;; use that entry to avoid making unnecessary requests. The | 1678 | ;; use that entry to avoid making unnecessary requests. The |
diff --git a/lisp/gnus/sieve.el b/lisp/gnus/sieve.el index 31b2665a644..2111d34eac5 100644 --- a/lisp/gnus/sieve.el +++ b/lisp/gnus/sieve.el | |||
| @@ -98,39 +98,40 @@ require \"fileinto\"; | |||
| 98 | 98 | ||
| 99 | (defvar sieve-manage-buffer nil) | 99 | (defvar sieve-manage-buffer nil) |
| 100 | (defvar sieve-buffer-header-end nil) | 100 | (defvar sieve-buffer-header-end nil) |
| 101 | (defvar sieve-buffer-script-name nil | ||
| 102 | "The real script name of the buffer.") | ||
| 103 | (make-local-variable 'sieve-buffer-script-name) | ||
| 101 | 104 | ||
| 102 | ;; Sieve-manage mode: | 105 | ;; Sieve-manage mode: |
| 103 | 106 | ||
| 104 | (defvar sieve-manage-mode-map nil | 107 | (defvar sieve-manage-mode-map |
| 108 | (let ((map (make-sparse-keymap))) | ||
| 109 | ;; various | ||
| 110 | (define-key map "?" 'sieve-help) | ||
| 111 | (define-key map "h" 'sieve-help) | ||
| 112 | (define-key map "q" 'sieve-bury-buffer) | ||
| 113 | ;; activating | ||
| 114 | (define-key map "m" 'sieve-activate) | ||
| 115 | (define-key map "u" 'sieve-deactivate) | ||
| 116 | (define-key map "\M-\C-?" 'sieve-deactivate-all) | ||
| 117 | ;; navigation keys | ||
| 118 | (define-key map "\C-p" 'sieve-prev-line) | ||
| 119 | (define-key map [up] 'sieve-prev-line) | ||
| 120 | (define-key map "\C-n" 'sieve-next-line) | ||
| 121 | (define-key map [down] 'sieve-next-line) | ||
| 122 | (define-key map " " 'sieve-next-line) | ||
| 123 | (define-key map "n" 'sieve-next-line) | ||
| 124 | (define-key map "p" 'sieve-prev-line) | ||
| 125 | (define-key map "\C-m" 'sieve-edit-script) | ||
| 126 | (define-key map "f" 'sieve-edit-script) | ||
| 127 | (define-key map "o" 'sieve-edit-script-other-window) | ||
| 128 | (define-key map "r" 'sieve-remove) | ||
| 129 | (define-key map "q" 'sieve-manage-quit) | ||
| 130 | (define-key map [(down-mouse-2)] 'sieve-edit-script) | ||
| 131 | (define-key map [(down-mouse-3)] 'sieve-manage-mode-menu) | ||
| 132 | map) | ||
| 105 | "Keymap for `sieve-manage-mode'.") | 133 | "Keymap for `sieve-manage-mode'.") |
| 106 | 134 | ||
| 107 | (if sieve-manage-mode-map | ||
| 108 | () | ||
| 109 | (setq sieve-manage-mode-map (make-sparse-keymap)) | ||
| 110 | (suppress-keymap sieve-manage-mode-map) | ||
| 111 | ;; various | ||
| 112 | (define-key sieve-manage-mode-map "?" 'sieve-help) | ||
| 113 | (define-key sieve-manage-mode-map "h" 'sieve-help) | ||
| 114 | (define-key sieve-manage-mode-map "q" 'sieve-bury-buffer) | ||
| 115 | ;; activating | ||
| 116 | (define-key sieve-manage-mode-map "m" 'sieve-activate) | ||
| 117 | (define-key sieve-manage-mode-map "u" 'sieve-deactivate) | ||
| 118 | (define-key sieve-manage-mode-map "\M-\C-?" 'sieve-deactivate-all) | ||
| 119 | ;; navigation keys | ||
| 120 | (define-key sieve-manage-mode-map "\C-p" 'sieve-prev-line) | ||
| 121 | (define-key sieve-manage-mode-map [up] 'sieve-prev-line) | ||
| 122 | (define-key sieve-manage-mode-map "\C-n" 'sieve-next-line) | ||
| 123 | (define-key sieve-manage-mode-map [down] 'sieve-next-line) | ||
| 124 | (define-key sieve-manage-mode-map " " 'sieve-next-line) | ||
| 125 | (define-key sieve-manage-mode-map "n" 'sieve-next-line) | ||
| 126 | (define-key sieve-manage-mode-map "p" 'sieve-prev-line) | ||
| 127 | (define-key sieve-manage-mode-map "\C-m" 'sieve-edit-script) | ||
| 128 | (define-key sieve-manage-mode-map "f" 'sieve-edit-script) | ||
| 129 | (define-key sieve-manage-mode-map "o" 'sieve-edit-script-other-window) | ||
| 130 | (define-key sieve-manage-mode-map "r" 'sieve-remove) | ||
| 131 | (define-key sieve-manage-mode-map [(down-mouse-2)] 'sieve-edit-script) | ||
| 132 | (define-key sieve-manage-mode-map [(down-mouse-3)] 'sieve-manage-mode-menu)) | ||
| 133 | |||
| 134 | (easy-menu-define sieve-manage-mode-menu sieve-manage-mode-map | 135 | (easy-menu-define sieve-manage-mode-menu sieve-manage-mode-map |
| 135 | "Sieve Menu." | 136 | "Sieve Menu." |
| 136 | '("Manage Sieve" | 137 | '("Manage Sieve" |
| @@ -138,21 +139,21 @@ require \"fileinto\"; | |||
| 138 | ["Activate script" sieve-activate t] | 139 | ["Activate script" sieve-activate t] |
| 139 | ["Deactivate script" sieve-deactivate t])) | 140 | ["Deactivate script" sieve-deactivate t])) |
| 140 | 141 | ||
| 141 | (define-derived-mode sieve-manage-mode fundamental-mode "SIEVE" | 142 | (define-derived-mode sieve-manage-mode fundamental-mode "Sieve-manage" |
| 142 | "Mode used for sieve script management." | 143 | "Mode used for sieve script management." |
| 143 | (setq mode-name "SIEVE") | ||
| 144 | (buffer-disable-undo (current-buffer)) | 144 | (buffer-disable-undo (current-buffer)) |
| 145 | (setq truncate-lines t) | 145 | (setq truncate-lines t) |
| 146 | (easy-menu-add sieve-manage-mode-menu sieve-manage-mode-map)) | 146 | (easy-menu-add sieve-manage-mode-menu sieve-manage-mode-map)) |
| 147 | 147 | ||
| 148 | (put 'sieve-manage-mode 'mode-class 'special) | 148 | (put 'sieve-manage-mode 'mode-class 'special) |
| 149 | 149 | ||
| 150 | ;; This is necessary to allow correct handling of \\[cvs-mode-diff-map] | ||
| 151 | ;; in substitute-command-keys. | ||
| 152 | ;(fset 'sieve-manage-mode-map sieve-manage-mode-map) | ||
| 153 | |||
| 154 | ;; Commands used in sieve-manage mode: | 150 | ;; Commands used in sieve-manage mode: |
| 155 | 151 | ||
| 152 | (defun sieve-manage-quit () | ||
| 153 | "Quit." | ||
| 154 | (interactive) | ||
| 155 | (kill-buffer (current-buffer))) | ||
| 156 | |||
| 156 | (defun sieve-activate (&optional pos) | 157 | (defun sieve-activate (&optional pos) |
| 157 | (interactive "d") | 158 | (interactive "d") |
| 158 | (let ((name (sieve-script-at-point)) err) | 159 | (let ((name (sieve-script-at-point)) err) |
| @@ -204,7 +205,10 @@ require \"fileinto\"; | |||
| 204 | (switch-to-buffer (get-buffer-create "template.siv")) | 205 | (switch-to-buffer (get-buffer-create "template.siv")) |
| 205 | (insert sieve-template)) | 206 | (insert sieve-template)) |
| 206 | (sieve-mode) | 207 | (sieve-mode) |
| 207 | (message "Press C-c C-l to upload script to server."))) | 208 | (setq sieve-buffer-script-name name) |
| 209 | (message | ||
| 210 | (substitute-command-keys | ||
| 211 | "Press \\[sieve-upload] to upload script to server.")))) | ||
| 208 | 212 | ||
| 209 | (defmacro sieve-change-region (&rest body) | 213 | (defmacro sieve-change-region (&rest body) |
| 210 | "Turns off sieve-region before executing BODY, then re-enables it after. | 214 | "Turns off sieve-region before executing BODY, then re-enables it after. |
| @@ -337,13 +341,18 @@ Server : " server ":" (or port "2000") " | |||
| 337 | ;; get list of script names and print them | 341 | ;; get list of script names and print them |
| 338 | (let ((scripts (sieve-manage-listscripts sieve-manage-buffer))) | 342 | (let ((scripts (sieve-manage-listscripts sieve-manage-buffer))) |
| 339 | (if (null scripts) | 343 | (if (null scripts) |
| 340 | (insert (format (concat "No scripts on server, press RET on %s to " | 344 | (insert |
| 341 | "create a new script.\n") sieve-new-script)) | 345 | (substitute-command-keys |
| 342 | (insert (format (concat "%d script%s on server, press RET on a script " | 346 | (format |
| 343 | "name edits it, or\npress RET on %s to create " | 347 | "No scripts on server, press \\[sieve-edit-script] on %s to create a new script.\n" |
| 344 | "a new script.\n") (length scripts) | 348 | sieve-new-script))) |
| 345 | (if (eq (length scripts) 1) "" "s") | 349 | (insert |
| 346 | sieve-new-script))) | 350 | (substitute-command-keys |
| 351 | (format (concat "%d script%s on server, press \\[sieve-edit-script] on a script " | ||
| 352 | "name edits it, or\npress \\[sieve-edit-script] on %s to create " | ||
| 353 | "a new script.\n") (length scripts) | ||
| 354 | (if (eq (length scripts) 1) "" "s") | ||
| 355 | sieve-new-script)))) | ||
| 347 | (save-excursion | 356 | (save-excursion |
| 348 | (sieve-insert-scripts (list sieve-new-script)) | 357 | (sieve-insert-scripts (list sieve-new-script)) |
| 349 | (sieve-insert-scripts scripts))) | 358 | (sieve-insert-scripts scripts))) |
| @@ -363,15 +372,15 @@ Server : " server ":" (or port "2000") " | |||
| 363 | ;;;###autoload | 372 | ;;;###autoload |
| 364 | (defun sieve-upload (&optional name) | 373 | (defun sieve-upload (&optional name) |
| 365 | (interactive) | 374 | (interactive) |
| 366 | (unless name | ||
| 367 | (setq name (buffer-name))) | ||
| 368 | (when (or (get-buffer sieve-buffer) (call-interactively 'sieve-manage)) | 375 | (when (or (get-buffer sieve-buffer) (call-interactively 'sieve-manage)) |
| 369 | (let ((script (buffer-string)) err) | 376 | (let ((script (buffer-string)) err) |
| 370 | (with-current-buffer (get-buffer sieve-buffer) | 377 | (with-current-buffer (get-buffer sieve-buffer) |
| 371 | (setq err (sieve-manage-putscript name script sieve-manage-buffer)) | 378 | (setq err (sieve-manage-putscript |
| 379 | (or name sieve-buffer-script-name (buffer-name)) | ||
| 380 | script sieve-manage-buffer)) | ||
| 372 | (if (sieve-manage-ok-p err) | 381 | (if (sieve-manage-ok-p err) |
| 373 | (message (concat | 382 | (message (substitute-command-keys |
| 374 | "Sieve upload done. Use `C-c RET' to manage scripts.")) | 383 | "Sieve upload done. Use \\[sieve-manage] to manage scripts.")) |
| 375 | (message "Sieve upload failed: %s" (nth 2 err))))))) | 384 | (message "Sieve upload failed: %s" (nth 2 err))))))) |
| 376 | 385 | ||
| 377 | ;;;###autoload | 386 | ;;;###autoload |
diff --git a/lisp/ido.el b/lisp/ido.el index d1f2cea83f8..2e67e367a8f 100644 --- a/lisp/ido.el +++ b/lisp/ido.el | |||
| @@ -1472,8 +1472,8 @@ Removes badly formatted data and ignored directories." | |||
| 1472 | (add-hook 'choose-completion-string-functions 'ido-choose-completion-string)) | 1472 | (add-hook 'choose-completion-string-functions 'ido-choose-completion-string)) |
| 1473 | 1473 | ||
| 1474 | (define-minor-mode ido-everywhere | 1474 | (define-minor-mode ido-everywhere |
| 1475 | "Toggle using ido speed-ups everywhere file and directory names are read. | 1475 | "Toggle using ido-mode everywhere file and directory names are read. |
| 1476 | With ARG, turn ido speed-up on if arg is positive, off otherwise." | 1476 | With ARG, turn ido-mode on if arg is positive, off otherwise." |
| 1477 | :global t | 1477 | :global t |
| 1478 | :group 'ido | 1478 | :group 'ido |
| 1479 | (when (get 'ido-everywhere 'file) | 1479 | (when (get 'ido-everywhere 'file) |
| @@ -1494,8 +1494,8 @@ With ARG, turn ido speed-up on if arg is positive, off otherwise." | |||
| 1494 | 1494 | ||
| 1495 | ;;;###autoload | 1495 | ;;;###autoload |
| 1496 | (defun ido-mode (&optional arg) | 1496 | (defun ido-mode (&optional arg) |
| 1497 | "Toggle ido speed-ups on or off. | 1497 | "Toggle ido mode on or off. |
| 1498 | With ARG, turn ido speed-up on if arg is positive, off otherwise. | 1498 | With ARG, turn ido-mode on if arg is positive, off otherwise. |
| 1499 | Turning on ido-mode will remap (via a minor-mode keymap) the default | 1499 | Turning on ido-mode will remap (via a minor-mode keymap) the default |
| 1500 | keybindings for the `find-file' and `switch-to-buffer' families of | 1500 | keybindings for the `find-file' and `switch-to-buffer' families of |
| 1501 | commands to the ido versions of these functions. | 1501 | commands to the ido versions of these functions. |
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 8672fca3a85..5f4d3ea849e 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el | |||
| @@ -366,7 +366,9 @@ This also sets the following values: | |||
| 366 | (coding-system-get coding-system 'ascii-compatible-p))) | 366 | (coding-system-get coding-system 'ascii-compatible-p))) |
| 367 | (setq default-file-name-coding-system coding-system))) | 367 | (setq default-file-name-coding-system coding-system))) |
| 368 | (setq default-terminal-coding-system coding-system) | 368 | (setq default-terminal-coding-system coding-system) |
| 369 | (setq default-keyboard-coding-system coding-system) | 369 | ;; Prevent default-terminal-coding-system from converting ^M to ^J. |
| 370 | (setq default-keyboard-coding-system | ||
| 371 | (coding-system-change-eol-conversion coding-system 'unix)) | ||
| 370 | ;; Preserve eol-type from existing default-process-coding-systems. | 372 | ;; Preserve eol-type from existing default-process-coding-systems. |
| 371 | ;; On non-unix-like systems in particular, these may have been set | 373 | ;; On non-unix-like systems in particular, these may have been set |
| 372 | ;; carefully by the user, or by the startup code, to deal with the | 374 | ;; carefully by the user, or by the startup code, to deal with the |
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 7fe5383d865..9a892f493d7 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el | |||
| @@ -503,7 +503,7 @@ FIELD is the plain text name of a field in the message, such as | |||
| 503 | \"subject\" or \"from\". A FIELD of \"to\" will automatically include | 503 | \"subject\" or \"from\". A FIELD of \"to\" will automatically include |
| 504 | all text from the \"cc\" field as well. | 504 | all text from the \"cc\" field as well. |
| 505 | 505 | ||
| 506 | REGEXP is an expression to match in the preceeding specified FIELD. | 506 | REGEXP is an expression to match in the preceding specified FIELD. |
| 507 | FIELD/REGEXP pairs continue in the list. | 507 | FIELD/REGEXP pairs continue in the list. |
| 508 | 508 | ||
| 509 | examples: | 509 | examples: |
| @@ -4316,7 +4316,7 @@ With prefix argument N moves forward N messages with these labels. | |||
| 4316 | 4316 | ||
| 4317 | ;;;*** | 4317 | ;;;*** |
| 4318 | 4318 | ||
| 4319 | ;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "04902da045706fb7f2b0915529ed161b") | 4319 | ;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "c530622b53038152ca84f2ec9313bd7a") |
| 4320 | ;;; Generated autoloads from rmailmm.el | 4320 | ;;; Generated autoloads from rmailmm.el |
| 4321 | 4321 | ||
| 4322 | (autoload 'rmail-mime "rmailmm" "\ | 4322 | (autoload 'rmail-mime "rmailmm" "\ |
diff --git a/lisp/net/tramp-cmds.el b/lisp/net/tramp-cmds.el index 7d266ad17d7..58f1e2c6a9e 100644 --- a/lisp/net/tramp-cmds.el +++ b/lisp/net/tramp-cmds.el | |||
| @@ -281,6 +281,12 @@ buffer in your bug report. | |||
| 281 | (insert ")\n")) | 281 | (insert ")\n")) |
| 282 | (insert-buffer-substring elbuf))) | 282 | (insert-buffer-substring elbuf))) |
| 283 | 283 | ||
| 284 | ;; Dump load-path shadows. | ||
| 285 | (insert "\nload-path shadows:\n==================\n") | ||
| 286 | (ignore-errors | ||
| 287 | (mapc (lambda (x) (when (string-match "tramp" x) (insert x "\n"))) | ||
| 288 | (split-string (list-load-path-shadows t) "\n"))) | ||
| 289 | |||
| 284 | ;; Append buffers only when we are in message mode. | 290 | ;; Append buffers only when we are in message mode. |
| 285 | (when (and | 291 | (when (and |
| 286 | (eq major-mode 'message-mode) | 292 | (eq major-mode 'message-mode) |
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index 57cc54935dc..b3278dc312d 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el | |||
| @@ -142,7 +142,7 @@ | |||
| 142 | (add-to-list 'tramp-methods (cons elt nil))))) | 142 | (add-to-list 'tramp-methods (cons elt nil))))) |
| 143 | 143 | ||
| 144 | (defconst tramp-gvfs-path-tramp (concat dbus-path-emacs "/Tramp") | 144 | (defconst tramp-gvfs-path-tramp (concat dbus-path-emacs "/Tramp") |
| 145 | "The preceeding object path for own objects.") | 145 | "The preceding object path for own objects.") |
| 146 | 146 | ||
| 147 | (defconst tramp-gvfs-service-daemon "org.gtk.vfs.Daemon" | 147 | (defconst tramp-gvfs-service-daemon "org.gtk.vfs.Daemon" |
| 148 | "The well known name of the GVFS daemon.") | 148 | "The well known name of the GVFS daemon.") |
diff --git a/lisp/obsolete/sym-comp.el b/lisp/obsolete/sym-comp.el index 6365a1075e0..7e9a460ea14 100644 --- a/lisp/obsolete/sym-comp.el +++ b/lisp/obsolete/sym-comp.el | |||
| @@ -51,7 +51,7 @@ Uses `current-word' with the buffer narrowed to the part before | |||
| 51 | point." | 51 | point." |
| 52 | (save-restriction | 52 | (save-restriction |
| 53 | ;; Narrow in case point is in the middle of a symbol -- we want | 53 | ;; Narrow in case point is in the middle of a symbol -- we want |
| 54 | ;; just the preceeding part. | 54 | ;; just the preceding part. |
| 55 | (narrow-to-region (point-min) (point)) | 55 | (narrow-to-region (point-min) (point)) |
| 56 | (current-word))) | 56 | (current-word))) |
| 57 | 57 | ||
diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog index 5f0908e11c6..68d957584c6 100644 --- a/lisp/org/ChangeLog +++ b/lisp/org/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2011-02-28 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * org.el (org-maybe-keyword-time-regexp): | ||
| 4 | * org-icalendar.el (org-icalendar-store-UID): | ||
| 5 | * org-agenda.el (org-agenda-scheduled-leaders) | ||
| 6 | (org-agenda-deadline-leaders, org-agenda-filter-preset): | ||
| 7 | * org-table.el (org-table-current-line-types) | ||
| 8 | (org-table-current-begin-line, org-table-current-begin-pos): | ||
| 9 | (org-table-current-field-formula): | ||
| 10 | Fix typos in docstrings. | ||
| 11 | |||
| 1 | 2011-02-10 Stefan Monnier <monnier@iro.umontreal.ca> | 12 | 2011-02-10 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 13 | ||
| 3 | * org-remember.el (org-remember-mode-map): | 14 | * org-remember.el (org-remember-mode-map): |
diff --git a/lisp/password-cache.el b/lisp/password-cache.el index 8738aa65a9f..a7f75a03add 100644 --- a/lisp/password-cache.el +++ b/lisp/password-cache.el | |||
| @@ -76,6 +76,12 @@ regulate cache behavior." | |||
| 76 | key | 76 | key |
| 77 | (symbol-value (intern-soft key password-data)))) | 77 | (symbol-value (intern-soft key password-data)))) |
| 78 | 78 | ||
| 79 | (defun password-in-cache-p (key) | ||
| 80 | "Check if KEY is in the cache." | ||
| 81 | (and password-cache | ||
| 82 | key | ||
| 83 | (intern-soft key password-data))) | ||
| 84 | |||
| 79 | (defun password-read (prompt &optional key) | 85 | (defun password-read (prompt &optional key) |
| 80 | "Read password, for use with KEY, from user, or from cache if wanted. | 86 | "Read password, for use with KEY, from user, or from cache if wanted. |
| 81 | KEY indicate the purpose of the password, so the cache can | 87 | KEY indicate the purpose of the password, so the cache can |
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index 7c634d14e6a..f6d497569ba 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el | |||
| @@ -2769,7 +2769,7 @@ Will not look before LIM." | |||
| 2769 | (goto-char (cperl-beginning-of-property p look-prop)) | 2769 | (goto-char (cperl-beginning-of-property p look-prop)) |
| 2770 | (beginning-of-line) | 2770 | (beginning-of-line) |
| 2771 | (setq pre-indent-point (point))))) | 2771 | (setq pre-indent-point (point))))) |
| 2772 | (goto-char pre-indent-point) ; Orig line skipping preceeding pod/etc | 2772 | (goto-char pre-indent-point) ; Orig line skipping preceding pod/etc |
| 2773 | (let* ((case-fold-search nil) | 2773 | (let* ((case-fold-search nil) |
| 2774 | (s-s (cperl-get-state (car parse-data) (nth 1 parse-data))) | 2774 | (s-s (cperl-get-state (car parse-data) (nth 1 parse-data))) |
| 2775 | (start (or (nth 2 parse-data) ; last complete sexp terminated | 2775 | (start (or (nth 2 parse-data) ; last complete sexp terminated |
| @@ -2796,8 +2796,8 @@ Will not look before LIM." | |||
| 2796 | (cperl-1+ char-after-pos) 'indentable) | 2796 | (cperl-1+ char-after-pos) 'indentable) |
| 2797 | p (1+ (cperl-beginning-of-property | 2797 | p (1+ (cperl-beginning-of-property |
| 2798 | (point) 'indentable)) | 2798 | (point) 'indentable)) |
| 2799 | is-block ; misused for: preceeding line in REx | 2799 | is-block ; misused for: preceding line in REx |
| 2800 | (save-excursion ; Find preceeding line | 2800 | (save-excursion ; Find preceding line |
| 2801 | (cperl-backward-to-noncomment p) | 2801 | (cperl-backward-to-noncomment p) |
| 2802 | (beginning-of-line) | 2802 | (beginning-of-line) |
| 2803 | (if (<= (point) p) | 2803 | (if (<= (point) p) |
| @@ -2813,10 +2813,10 @@ Will not look before LIM." | |||
| 2813 | prop (parse-partial-sexp p char-after-pos)) | 2813 | prop (parse-partial-sexp p char-after-pos)) |
| 2814 | (cond ((not delim) ; End the REx, ignore is-block | 2814 | (cond ((not delim) ; End the REx, ignore is-block |
| 2815 | (vector 'indentable 'terminator p is-block)) | 2815 | (vector 'indentable 'terminator p is-block)) |
| 2816 | (is-block ; Indent w.r.t. preceeding line | 2816 | (is-block ; Indent w.r.t. preceding line |
| 2817 | (vector 'indentable 'cont-line char-after-pos | 2817 | (vector 'indentable 'cont-line char-after-pos |
| 2818 | is-block char-after p)) | 2818 | is-block char-after p)) |
| 2819 | (t ; No preceeding line... | 2819 | (t ; No preceding line... |
| 2820 | (vector 'indentable 'first-line p)))) | 2820 | (vector 'indentable 'first-line p)))) |
| 2821 | ((get-text-property char-after-pos 'REx-part2) | 2821 | ((get-text-property char-after-pos 'REx-part2) |
| 2822 | (vector 'REx-part2 (point))) | 2822 | (vector 'REx-part2 (point))) |
| @@ -2897,7 +2897,7 @@ Will not look before LIM." | |||
| 2897 | (cperl-backward-to-start-of-continued-exp containing-sexp)) | 2897 | (cperl-backward-to-start-of-continued-exp containing-sexp)) |
| 2898 | (beginning-of-line) | 2898 | (beginning-of-line) |
| 2899 | (cperl-backward-to-noncomment containing-sexp)) | 2899 | (cperl-backward-to-noncomment containing-sexp)) |
| 2900 | ;; Now we get non-label preceeding the indent point | 2900 | ;; Now we get non-label preceding the indent point |
| 2901 | (if (not (or (eq (1- (point)) containing-sexp) | 2901 | (if (not (or (eq (1- (point)) containing-sexp) |
| 2902 | (memq (preceding-char) | 2902 | (memq (preceding-char) |
| 2903 | (append (if is-block " ;{" " ,;{") '(nil))) | 2903 | (append (if is-block " ;{" " ,;{") '(nil))) |
| @@ -4835,7 +4835,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 4835 | ;;; Moreover, one takes positive approach (looks for else,grep etc) | 4835 | ;;; Moreover, one takes positive approach (looks for else,grep etc) |
| 4836 | ;;; another negative (looks for bless,tr etc) | 4836 | ;;; another negative (looks for bless,tr etc) |
| 4837 | (defun cperl-after-block-p (lim &optional pre-block) | 4837 | (defun cperl-after-block-p (lim &optional pre-block) |
| 4838 | "Return true if the preceeding } (if PRE-BLOCK, following {) delimits a block. | 4838 | "Return true if the preceding } (if PRE-BLOCK, following {) delimits a block. |
| 4839 | Would not look before LIM. Assumes that LIM is a good place to begin a | 4839 | Would not look before LIM. Assumes that LIM is a good place to begin a |
| 4840 | statement. The kind of block we treat here is one after which a new | 4840 | statement. The kind of block we treat here is one after which a new |
| 4841 | statement would start; thus the block in ${func()} does not count." | 4841 | 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." | |||
| 4864 | (progn | 4864 | (progn |
| 4865 | (forward-sexp -1) | 4865 | (forward-sexp -1) |
| 4866 | (looking-at "sub[ \t\n\f#]")))))) | 4866 | (looking-at "sub[ \t\n\f#]")))))) |
| 4867 | ;; What preceeds is not word... XXXX Last statement in sub??? | 4867 | ;; What precedes is not word... XXXX Last statement in sub??? |
| 4868 | (cperl-after-expr-p lim)))) | 4868 | (cperl-after-expr-p lim)))) |
| 4869 | (error nil)))) | 4869 | (error nil)))) |
| 4870 | 4870 | ||
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index 30d9fc21867..5b7e07a5aad 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el | |||
| @@ -428,7 +428,7 @@ path \(the value of !PATH). However, under Windows and MacOS | |||
| 428 | variable can be set to specify the paths where IDLWAVE can find PRO | 428 | variable can be set to specify the paths where IDLWAVE can find PRO |
| 429 | files. The shell will only be asked for a list of paths when this | 429 | files. The shell will only be asked for a list of paths when this |
| 430 | variable is nil. The value is a list of directories. A directory | 430 | variable is nil. The value is a list of directories. A directory |
| 431 | preceeded by a `+' will be searched recursively. If you set this | 431 | preceded by a `+' will be searched recursively. If you set this |
| 432 | variable on a UNIX system, the shell will not be queried. See also | 432 | variable on a UNIX system, the shell will not be queried. See also |
| 433 | `idlwave-system-directory'." | 433 | `idlwave-system-directory'." |
| 434 | :group 'idlwave-routine-info | 434 | :group 'idlwave-routine-info |
| @@ -1197,7 +1197,7 @@ As a user, you should not set this to t.") | |||
| 1197 | (2 font-lock-function-name-face))) | 1197 | (2 font-lock-function-name-face))) |
| 1198 | 1198 | ||
| 1199 | ;; Keyword parameters, like /xlog or ,xrange=[] | 1199 | ;; Keyword parameters, like /xlog or ,xrange=[] |
| 1200 | ;; This is anchored to the comma preceeding the keyword. | 1200 | ;; This is anchored to the comma preceding the keyword. |
| 1201 | ;; Treats continuation lines, works only during whole buffer | 1201 | ;; Treats continuation lines, works only during whole buffer |
| 1202 | ;; fontification. Slow, use it only in fancy fontification. | 1202 | ;; fontification. Slow, use it only in fancy fontification. |
| 1203 | (keyword-parameters | 1203 | (keyword-parameters |
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index cb1d3c24a94..75b706b74ec 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el | |||
| @@ -1775,7 +1775,7 @@ NOTE: Activate the new setting by restarting Emacs. | |||
| 1775 | 1775 | ||
| 1776 | (defcustom vhdl-intelligent-tab t | 1776 | (defcustom vhdl-intelligent-tab t |
| 1777 | "*Non-nil means `TAB' does indentation, word completion and tab insertion. | 1777 | "*Non-nil means `TAB' does indentation, word completion and tab insertion. |
| 1778 | That is, if preceeding character is part of a word then complete word, | 1778 | That is, if preceding character is part of a word then complete word, |
| 1779 | else if not at beginning of line then insert tab, | 1779 | else if not at beginning of line then insert tab, |
| 1780 | else if last command was a `TAB' or `RET' then dedent one step, | 1780 | else if last command was a `TAB' or `RET' then dedent one step, |
| 1781 | else indent current line (i.e. `TAB' is bound to `vhdl-electric-tab'). | 1781 | else indent current line (i.e. `TAB' is bound to `vhdl-electric-tab'). |
| @@ -6946,7 +6946,7 @@ only-lines." | |||
| 6946 | ;; Indentation commands | 6946 | ;; Indentation commands |
| 6947 | 6947 | ||
| 6948 | (defun vhdl-electric-tab (&optional prefix-arg) | 6948 | (defun vhdl-electric-tab (&optional prefix-arg) |
| 6949 | "If preceeding character is part of a word or a paren then hippie-expand, | 6949 | "If preceding character is part of a word or a paren then hippie-expand, |
| 6950 | else if right of non whitespace on line then insert tab, | 6950 | else if right of non whitespace on line then insert tab, |
| 6951 | else if last command was a tab or return then dedent one step or if a comment | 6951 | else if last command was a tab or return then dedent one step or if a comment |
| 6952 | toggle between normal indent and inline comment indent, | 6952 | toggle between normal indent and inline comment indent, |
| @@ -10396,7 +10396,7 @@ with double-quotes is to be inserted. DEFAULT specifies a default string." | |||
| 10396 | (if vhdl-upper-case-keywords (upcase-word num) (downcase-word num))) | 10396 | (if vhdl-upper-case-keywords (upcase-word num) (downcase-word num))) |
| 10397 | 10397 | ||
| 10398 | (defun vhdl-minibuffer-tab (&optional prefix-arg) | 10398 | (defun vhdl-minibuffer-tab (&optional prefix-arg) |
| 10399 | "If preceeding character is part of a word or a paren then hippie-expand, | 10399 | "If preceding character is part of a word or a paren then hippie-expand, |
| 10400 | else insert tab (used for word completion in VHDL minibuffer)." | 10400 | else insert tab (used for word completion in VHDL minibuffer)." |
| 10401 | (interactive "P") | 10401 | (interactive "P") |
| 10402 | (cond | 10402 | (cond |
| @@ -13056,7 +13056,7 @@ hierarchy otherwise.") | |||
| 13056 | ;; Scan functions | 13056 | ;; Scan functions |
| 13057 | 13057 | ||
| 13058 | (defun vhdl-scan-context-clause () | 13058 | (defun vhdl-scan-context-clause () |
| 13059 | "Scan the context clause that preceeds a design unit." | 13059 | "Scan the context clause that precedes a design unit." |
| 13060 | (let (lib-alist) | 13060 | (let (lib-alist) |
| 13061 | (save-excursion | 13061 | (save-excursion |
| 13062 | (when (re-search-backward "^[ \t]*\\(architecture\\|configuration\\|entity\\|package\\)\\>" nil t) | 13062 | (when (re-search-backward "^[ \t]*\\(architecture\\|configuration\\|entity\\|package\\)\\>" nil t) |
diff --git a/lisp/replace.el b/lisp/replace.el index 0f8adea2aca..928c3170c65 100644 --- a/lisp/replace.el +++ b/lisp/replace.el | |||
| @@ -1531,7 +1531,7 @@ N (match-string N) (where N is a string of digits) | |||
| 1531 | #& (string-to-number (match-string 0)) | 1531 | #& (string-to-number (match-string 0)) |
| 1532 | # replace-count | 1532 | # replace-count |
| 1533 | 1533 | ||
| 1534 | Note that these symbols must be preceeded by a backslash in order to | 1534 | Note that these symbols must be preceded by a backslash in order to |
| 1535 | type them using Lisp syntax." | 1535 | type them using Lisp syntax." |
| 1536 | (while (consp n) | 1536 | (while (consp n) |
| 1537 | (cond | 1537 | (cond |
diff --git a/lisp/term/screen.el b/lisp/term/screen.el new file mode 100644 index 00000000000..4931a422e09 --- /dev/null +++ b/lisp/term/screen.el | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | ;; -*- no-byte-compile: t -*- | ||
| 2 | ;; Treat a screen terminal similar to an xterm. | ||
| 3 | (load "term/xterm") | ||
| 4 | |||
| 5 | (defun terminal-init-screen () | ||
| 6 | "Terminal initialization function for screen." | ||
| 7 | ;; Use the xterm color initialization code. | ||
| 8 | (xterm-register-default-colors) | ||
| 9 | (tty-set-up-initial-frame-faces)) | ||
| 10 | |||
| 11 | ;; screen.el ends here | ||
diff --git a/lisp/textmodes/paragraphs.el b/lisp/textmodes/paragraphs.el index 70f11cf66dc..a0892b5ebba 100644 --- a/lisp/textmodes/paragraphs.el +++ b/lisp/textmodes/paragraphs.el | |||
| @@ -43,7 +43,7 @@ only considered as a candidate to match `paragraph-start' or | |||
| 43 | 43 | ||
| 44 | Prefix argument says to turn mode on if positive, off if negative. | 44 | Prefix argument says to turn mode on if positive, off if negative. |
| 45 | When the mode is turned on, if there are newlines in the buffer but no hard | 45 | When the mode is turned on, if there are newlines in the buffer but no hard |
| 46 | newlines, ask the user whether to mark as hard any newlines preceeding a | 46 | newlines, ask the user whether to mark as hard any newlines preceding a |
| 47 | `paragraph-start' line. From a program, second arg INSERT specifies whether | 47 | `paragraph-start' line. From a program, second arg INSERT specifies whether |
| 48 | to do this; it can be `never' to change nothing, t or `always' to force | 48 | to do this; it can be `never' to change nothing, t or `always' to force |
| 49 | marking, `guess' to try to do the right thing with no questions, nil | 49 | marking, `guess' to try to do the right thing with no questions, nil |
diff --git a/msdos/ChangeLog b/msdos/ChangeLog index f1cdf510a06..1891d79da43 100644 --- a/msdos/ChangeLog +++ b/msdos/ChangeLog | |||
| @@ -1,3 +1,36 @@ | |||
| 1 | 2011-02-26 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * sedlibmk.inp (BITSIZEOF_PTRDIFF_T, BITSIZEOF_SIG_ATOMIC_T) | ||
| 4 | (BITSIZEOF_SIZE_T, BITSIZEOF_WCHAR_T) | ||
| 5 | (BITSIZEOF_WINT_TGNULIB_FCHMODAT, GNULIB_FSTATAT, GNULIB_FUTIMENS) | ||
| 6 | (GNULIB_LCHMOD, GNULIB_LSTAT, GNULIB_MBTOWC, GNULIB_MKDIRAT) | ||
| 7 | (GNULIB_MKFIFO, GNULIB_MKFIFOAT, GNULIB_MKNOD, GNULIB_MKNODAT) | ||
| 8 | (GNULIB_STAT, GNULIB_UTIMENSAT, GNULIB_WCTOMB, HAVE_FCHMODAT) | ||
| 9 | (HAVE_FSTATAT, HAVE_FUTIMENS, HAVE_INTTYPES_H, HAVE_LCHMOD) | ||
| 10 | (HAVE_LONG_LONG_INT, HAVE_LSTAT, HAVE_MKDIRAT, HAVE_MKFIFO) | ||
| 11 | (HAVE_MKFIFOAT, HAVE_MKNOD, HAVE_MKNODAT) | ||
| 12 | (HAVE_SIGNED_SIG_ATOMIC_T, HAVE_SIGNED_WCHAR_T) | ||
| 13 | (HAVE_SIGNED_WINT_T, HAVE_STDINT_H, HAVE_SYS_BITYPES_H) | ||
| 14 | (HAVE_SYS_INTTYPES_H, HAVE_SYS_TYPES_H) | ||
| 15 | (HAVE_UNSIGNED_LONG_LONG_INT, HAVE_UTIMENSAT, HAVE_WCHAR_H) | ||
| 16 | (MKDIR_P, NEXT_AS_FIRST_DIRECTIVE_STDINT_H) | ||
| 17 | (NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H, NEXT_STDINT_H) | ||
| 18 | (NEXT_SYS_STAT_H, REPLACE_LSTAT, REPLACE_MBTOWC, REPLACE_MKDIR) | ||
| 19 | (REPLACE_MKFIFO, REPLACE_MKNOD, REPLACE_STAT, REPLACE_UTIMENSAT) | ||
| 20 | (REPLACE_WCTOMB, SIG_ATOMIC_T_SUFFIX, SIZE_T_SUFFIX, STDINT_H) | ||
| 21 | (WCHAR_T_SUFFIX, WINT_T_SUFFIX, APPLE_UNIVERSAL_BUILD): New edits. | ||
| 22 | ($(MKDIR_P)): Replace with equivalent DOS command. | ||
| 23 | (gl_LIBOBJS): Add md5.o and filemode.o. | ||
| 24 | |||
| 25 | * sed2v2.inp (BITSIZEOF_PTRDIFF_T, BITSIZEOF_SIG_ATOMIC_T) | ||
| 26 | (BITSIZEOF_SIZE_T, BITSIZEOF_WCHAR_T, BITSIZEOF_WINT_T) | ||
| 27 | (HAVE_LONG_LONG_INT, HAVE_SIGNED_SIG_ATOMIC_T, HAVE_SIGNED_WINT_T) | ||
| 28 | (HAVE_UNSIGNED_LONG_LONG_INT, HAVE_WCHAR_H, HAVE_INTTYPES_H): New | ||
| 29 | edits. | ||
| 30 | |||
| 31 | * depfiles.bat: Create a dummy .Po file only if a file by the same | ||
| 32 | name does not already exist in the deps/ subdirectory. | ||
| 33 | |||
| 1 | 2011-02-19 Eli Zaretskii <eliz@gnu.org> | 34 | 2011-02-19 Eli Zaretskii <eliz@gnu.org> |
| 2 | 35 | ||
| 3 | * depfiles.bat: New file. | 36 | * depfiles.bat: New file. |
diff --git a/msdos/depfiles.bat b/msdos/depfiles.bat index 22fcfc3dcd6..901a53cbb0d 100644 --- a/msdos/depfiles.bat +++ b/msdos/depfiles.bat | |||
| @@ -20,6 +20,6 @@ rem along with GNU Emacs. If not, see http://www.gnu.org/licenses/. | |||
| 20 | 20 | ||
| 21 | rem ---------------------------------------------------------------------- | 21 | rem ---------------------------------------------------------------------- |
| 22 | 22 | ||
| 23 | echo %1 | sed -e "s,^,@echo # dummy > deps\\," -e "s,\.c,.Po," > tdepfile.bat | 23 | echo %1 | sed -e "s,\(.*\)\.c,@if not exist deps\\\1.Po echo # dummy > deps\\\1.Po," > tdepfile.bat |
| 24 | call tdepfile | 24 | call tdepfile |
| 25 | del tdepfile.bat | 25 | del tdepfile.bat |
diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index 470c1bf60a6..030b69e583f 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp | |||
| @@ -62,7 +62,18 @@ | |||
| 62 | /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ | 62 | /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ |
| 63 | /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ | 63 | /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ |
| 64 | /^#undef HAVE_DIRENT_H/s/^.*$/#define HAVE_DIRENT_H 1/ | 64 | /^#undef HAVE_DIRENT_H/s/^.*$/#define HAVE_DIRENT_H 1/ |
| 65 | |||
| 66 | /^#undef BITSIZEOF_PTRDIFF_T *$/s/^.*$/#define BITSIZEOF_PTRDIFF_T 32/ | ||
| 67 | /^#undef BITSIZEOF_SIG_ATOMIC_T *$/s/^.*$/#define BITSIZEOF_SIG_ATOMIC_T 32/ | ||
| 68 | /^#undef BITSIZEOF_SIZE_T *$/s/^.*$/#define BITSIZEOF_SIZE_T 32/ | ||
| 69 | /^#undef BITSIZEOF_WCHAR_T *$/s/^.*$/#define BITSIZEOF_WCHAR_T 16/ | ||
| 70 | /^#undef BITSIZEOF_WINT_T *$/s/^.*$/#define BITSIZEOF_WINT_T 32/ | ||
| 65 | /^#undef HAVE__BOOL/s/^.*$/#define HAVE__BOOL 1/ | 71 | /^#undef HAVE__BOOL/s/^.*$/#define HAVE__BOOL 1/ |
| 72 | /^#undef HAVE_LONG_LONG_INT *$/s/^.*$/#define HAVE_LONG_LONG_INT 1/ | ||
| 73 | /^#undef HAVE_SIGNED_SIG_ATOMIC_T *$/s/^.*$/#define HAVE_SIGNED_SIG_ATOMIC_T 1/ | ||
| 74 | /^#undef HAVE_SIGNED_WINT_T *$/s/^.*$/#define HAVE_SIGNED_WINT_T 1/ | ||
| 75 | /^#undef HAVE_UNSIGNED_LONG_LONG_INT *$/s/^.*$/#define HAVE_UNSIGNED_LONG_LONG_INT 1/ | ||
| 76 | /^#under HAVE_WCHAR_H *$/s/^.*$/#define HAVE_WCHAR_H 1/ | ||
| 66 | /^#undef inline/s/^.*$/#define inline __inline__/ | 77 | /^#undef inline/s/^.*$/#define inline __inline__/ |
| 67 | /^#undef my_strftime/s/^.*$/#define my_strftime nstrftime/ | 78 | /^#undef my_strftime/s/^.*$/#define my_strftime nstrftime/ |
| 68 | /^#undef restrict/s/^.*$/#define restrict __restrict/ | 79 | /^#undef restrict/s/^.*$/#define restrict __restrict/ |
| @@ -77,6 +88,12 @@ s!^#undef config_opsysfile *$!#define config_opsysfile "s/msdos.h"! | |||
| 77 | s!^#undef config_machfile *$!#define config_machfile "m/intel386.h"! | 88 | s!^#undef config_machfile *$!#define config_machfile "m/intel386.h"! |
| 78 | s/^#undef PROTOTYPES *$/#define PROTOTYPES 1/ | 89 | s/^#undef PROTOTYPES *$/#define PROTOTYPES 1/ |
| 79 | s/^#undef POINTER_TYPE *$/#define POINTER_TYPE void/ | 90 | s/^#undef POINTER_TYPE *$/#define POINTER_TYPE void/ |
| 91 | /^#undef HAVE_INTTYPES_H/c\ | ||
| 92 | #if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3\ | ||
| 93 | #define HAVE_INTTYPES_H 1\ | ||
| 94 | #else\ | ||
| 95 | #undef HAVE_INTTYPES_H\ | ||
| 96 | #endif | ||
| 80 | /^#undef HAVE_STDINT_H/c\ | 97 | /^#undef HAVE_STDINT_H/c\ |
| 81 | #if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3\ | 98 | #if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3\ |
| 82 | #define HAVE_STDINT_H 1\ | 99 | #define HAVE_STDINT_H 1\ |
diff --git a/msdos/sedlibmk.inp b/msdos/sedlibmk.inp index b85b20f1491..b71aef985a9 100644 --- a/msdos/sedlibmk.inp +++ b/msdos/sedlibmk.inp | |||
| @@ -47,6 +47,14 @@ am__cd = cd | |||
| 47 | /^EXEEXT *=/s/@[^@\n]*@/.exe/ | 47 | /^EXEEXT *=/s/@[^@\n]*@/.exe/ |
| 48 | /^GETOPT_H *=/s/@[^@\n]*@/getopt.h/ | 48 | /^GETOPT_H *=/s/@[^@\n]*@/getopt.h/ |
| 49 | # | 49 | # |
| 50 | # Gnulib stuff | ||
| 51 | /^BITSIZEOF_PTRDIFF_T *=/s/@BITSIZEOF_PTRDIFF_T@/32/ | ||
| 52 | /^BITSIZEOF_SIG_ATOMIC_T *=/s/@BITSIZEOF_SIG_ATOMIC_T@/32/ | ||
| 53 | /^BITSIZEOF_SIZE_T *=/s/@BITSIZEOF_SIZE_T@/32/ | ||
| 54 | /^BITSIZEOF_WCHAR_T *=/s/@BITSIZEOF_WCHAR_T@/16/ | ||
| 55 | /^BITSIZEOF_WINT_T *=/s/@BITSIZEOF_WINT_T@/32/ | ||
| 56 | /^APPLE_UNIVERSAL_BUILD *=/s/@APPLE_UNIVERSAL_BUILD@/0/ | ||
| 57 | # | ||
| 50 | # Some GNULIB_* are replaced with zero even though DJGPP does not have | 58 | # Some GNULIB_* are replaced with zero even though DJGPP does not have |
| 51 | # these features. That's because the gnulib replacements cannot | 59 | # these features. That's because the gnulib replacements cannot |
| 52 | # possibly work for DJGPP, so we prefer to fail the link than have a | 60 | # possibly work for DJGPP, so we prefer to fail the link than have a |
| @@ -63,8 +71,11 @@ am__cd = cd | |||
| 63 | /^GNULIB_FACCESSAT *=/s/@GNULIB_FACCESSAT@/0/ | 71 | /^GNULIB_FACCESSAT *=/s/@GNULIB_FACCESSAT@/0/ |
| 64 | /^GNULIB_FCHDIR *=/s/@GNULIB_FCHDIR@/0/ | 72 | /^GNULIB_FCHDIR *=/s/@GNULIB_FCHDIR@/0/ |
| 65 | /^GNULIB_FCHOWNAT *=/s/@GNULIB_FCHOWNAT@/0/ | 73 | /^GNULIB_FCHOWNAT *=/s/@GNULIB_FCHOWNAT@/0/ |
| 74 | /^GNULIB_FCHMODAT *=/s/@GNULIB_FCHMODAT@/0/ | ||
| 75 | /^GNULIB_FSTATAT *=/s/@GNULIB_FSTATAT@/0/ | ||
| 66 | /^GNULIB_FSYNC *=/s/@GNULIB_FSYNC@/0/ | 76 | /^GNULIB_FSYNC *=/s/@GNULIB_FSYNC@/0/ |
| 67 | /^GNULIB_FTRUNCATE *=/s/@GNULIB_FTRUNCATE@/0/ | 77 | /^GNULIB_FTRUNCATE *=/s/@GNULIB_FTRUNCATE@/0/ |
| 78 | /^GNULIB_FUTIMENS *=/s/@GNULIB_FUTIMENS@/0/ | ||
| 68 | /^GNULIB_GETCWD *=/s/@GNULIB_GETCWD@/0/ | 79 | /^GNULIB_GETCWD *=/s/@GNULIB_GETCWD@/0/ |
| 69 | /^GNULIB_GETDOMAINNAME *=/s/@GNULIB_GETDOMAINNAME@/0/ | 80 | /^GNULIB_GETDOMAINNAME *=/s/@GNULIB_GETDOMAINNAME@/0/ |
| 70 | /^GNULIB_GETDTABLESIZE *=/s/@GNULIB_GETDTABLESIZE@/0/ | 81 | /^GNULIB_GETDTABLESIZE *=/s/@GNULIB_GETDTABLESIZE@/0/ |
| @@ -77,12 +88,20 @@ am__cd = cd | |||
| 77 | /^GNULIB_GETSUBOPT *=/s/@GNULIB_GETSUBOPT@/0/ | 88 | /^GNULIB_GETSUBOPT *=/s/@GNULIB_GETSUBOPT@/0/ |
| 78 | /^GNULIB_GETUSERSHELL *=/s/@GNULIB_GETUSERSHELL@/0/ | 89 | /^GNULIB_GETUSERSHELL *=/s/@GNULIB_GETUSERSHELL@/0/ |
| 79 | /^GNULIB_GRANTPT *=/s/@GNULIB_GRANTPT@/0/ | 90 | /^GNULIB_GRANTPT *=/s/@GNULIB_GRANTPT@/0/ |
| 91 | /^GNULIB_LCHMOD *=/s/@GNULIB_LCHMOD@/0/ | ||
| 80 | /^GNULIB_LCHOWN *=/s/@GNULIB_LCHOWN@/0/ | 92 | /^GNULIB_LCHOWN *=/s/@GNULIB_LCHOWN@/0/ |
| 81 | /^GNULIB_LINK *=/s/@GNULIB_LINK@/0/ | 93 | /^GNULIB_LINK *=/s/@GNULIB_LINK@/0/ |
| 82 | /^GNULIB_LINKAT *=/s/@GNULIB_LINKAT@/0/ | 94 | /^GNULIB_LINKAT *=/s/@GNULIB_LINKAT@/0/ |
| 83 | /^GNULIB_LSEEK *=/s/@GNULIB_LSEEK@/0/ | 95 | /^GNULIB_LSEEK *=/s/@GNULIB_LSEEK@/0/ |
| 96 | /^GNULIB_LSTAT *=/s/@GNULIB_LSTAT@/0/ | ||
| 84 | /^GNULIB_MALLOC_POSIX *=/s/@GNULIB_MALLOC_POSIX@/0/ | 97 | /^GNULIB_MALLOC_POSIX *=/s/@GNULIB_MALLOC_POSIX@/0/ |
| 98 | /^GNULIB_MBTOWC *=/s/@GNULIB_MBTOWC@/0/ | ||
| 99 | /^GNULIB_MKDIRAT *=/s/@GNULIB_MKDIRAT@/0/ | ||
| 85 | /^GNULIB_MKDTEMP *=/s/@GNULIB_MKDTEMP@/0/ | 100 | /^GNULIB_MKDTEMP *=/s/@GNULIB_MKDTEMP@/0/ |
| 101 | /^GNULIB_MKFIFO *=/s/@GNULIB_MKFIFO@/0/ | ||
| 102 | /^GNULIB_MKFIFOAT *=/s/@GNULIB_MKFIFOAT@/0/ | ||
| 103 | /^GNULIB_MKNOD *=/s/@GNULIB_MKNOD@/0/ | ||
| 104 | /^GNULIB_MKNODAT *=/s/@GNULIB_MKNODAT@/0/ | ||
| 86 | /^GNULIB_MKOSTEMP *=/s/@GNULIB_MKOSTEMP@/0/ | 105 | /^GNULIB_MKOSTEMP *=/s/@GNULIB_MKOSTEMP@/0/ |
| 87 | /^GNULIB_MKOSTEMPS *=/s/@GNULIB_MKOSTEMPS@/0/ | 106 | /^GNULIB_MKOSTEMPS *=/s/@GNULIB_MKOSTEMPS@/0/ |
| 88 | /^GNULIB_MKSTEMP *=/s/@GNULIB_MKSTEMP@/0/ | 107 | /^GNULIB_MKSTEMP *=/s/@GNULIB_MKSTEMP@/0/ |
| @@ -104,6 +123,7 @@ am__cd = cd | |||
| 104 | /^GNULIB_RPMATCH *=/s/@GNULIB_RPMATCH@/0/ | 123 | /^GNULIB_RPMATCH *=/s/@GNULIB_RPMATCH@/0/ |
| 105 | /^GNULIB_SETENV *=/s/@GNULIB_SETENV@/0/ | 124 | /^GNULIB_SETENV *=/s/@GNULIB_SETENV@/0/ |
| 106 | /^GNULIB_SLEEP *=/s/@GNULIB_SLEEP@/0/ | 125 | /^GNULIB_SLEEP *=/s/@GNULIB_SLEEP@/0/ |
| 126 | /^GNULIB_STAT *=/s/@GNULIB_STAT@/0/ | ||
| 107 | /^GNULIB_STRPTIME *=/s/@GNULIB_STRPTIME@/0/ | 127 | /^GNULIB_STRPTIME *=/s/@GNULIB_STRPTIME@/0/ |
| 108 | /^GNULIB_STRTOD *=/s/@GNULIB_STRTOD@/0/ | 128 | /^GNULIB_STRTOD *=/s/@GNULIB_STRTOD@/0/ |
| 109 | /^GNULIB_STRTOLL *=/s/@GNULIB_STRTOLL@/0/ | 129 | /^GNULIB_STRTOLL *=/s/@GNULIB_STRTOLL@/0/ |
| @@ -121,6 +141,8 @@ am__cd = cd | |||
| 121 | /^GNULIB_UNLOCKPT *=/s/@GNULIB_UNLOCKPT@/0/ | 141 | /^GNULIB_UNLOCKPT *=/s/@GNULIB_UNLOCKPT@/0/ |
| 122 | /^GNULIB_UNSETENV *=/s/@GNULIB_UNSETENV@/1/ | 142 | /^GNULIB_UNSETENV *=/s/@GNULIB_UNSETENV@/1/ |
| 123 | /^GNULIB_USLEEP *=/s/@GNULIB_USLEEP@/0/ | 143 | /^GNULIB_USLEEP *=/s/@GNULIB_USLEEP@/0/ |
| 144 | /^GNULIB_UTIMENSAT *=/s/@GNULIB_UTIMENSAT@/0/ | ||
| 145 | /^GNULIB_WCTOMB *=/s/@GNULIB_WCTOMB@/0/ | ||
| 124 | /^GNULIB_WRITE *=/s/@GNULIB_WRITE@/0/ | 146 | /^GNULIB_WRITE *=/s/@GNULIB_WRITE@/0/ |
| 125 | /^GNULIB__EXIT *=/s/@GNULIB__EXIT@/0/ | 147 | /^GNULIB__EXIT *=/s/@GNULIB__EXIT@/0/ |
| 126 | /^HAVE_ATOLL *=/s/@HAVE_ATOLL@/0/ | 148 | /^HAVE_ATOLL *=/s/@HAVE_ATOLL@/0/ |
| @@ -142,9 +164,12 @@ am__cd = cd | |||
| 142 | /^HAVE_EUIDACCESS *=/s/@HAVE_EUIDACCESS@/0/ | 164 | /^HAVE_EUIDACCESS *=/s/@HAVE_EUIDACCESS@/0/ |
| 143 | /^HAVE_FACCESSAT *=/s/@HAVE_FACCESSAT@/0/ | 165 | /^HAVE_FACCESSAT *=/s/@HAVE_FACCESSAT@/0/ |
| 144 | /^HAVE_FCHDIR *=/s/@HAVE_FCHDIR@/0/ | 166 | /^HAVE_FCHDIR *=/s/@HAVE_FCHDIR@/0/ |
| 167 | /^HAVE_FCHMODAT *=/s/@HAVE_FCHMODAT@/0/ | ||
| 145 | /^HAVE_FCHOWNAT *=/s/@HAVE_FCHOWNAT@/0/ | 168 | /^HAVE_FCHOWNAT *=/s/@HAVE_FCHOWNAT@/0/ |
| 169 | /^HAVE_FSTATAT *=/s/@HAVE_FSTATAT@/0/ | ||
| 146 | /^HAVE_FSYNC *=/s/@HAVE_FSYNC@/1/ | 170 | /^HAVE_FSYNC *=/s/@HAVE_FSYNC@/1/ |
| 147 | /^HAVE_FTRUNCATE *=/s/@HAVE_FTRUNCATE@/1/ | 171 | /^HAVE_FTRUNCATE *=/s/@HAVE_FTRUNCATE@/1/ |
| 172 | /^HAVE_FUTIMENS *=/s/@HAVE_FUTIMENS@/0/ | ||
| 148 | /^HAVE_GETDTABLESIZE *=/s/@HAVE_GETDTABLESIZE@/0/ | 173 | /^HAVE_GETDTABLESIZE *=/s/@HAVE_GETDTABLESIZE@/0/ |
| 149 | /^HAVE_GETGROUPS *=/s/@HAVE_GETGROUPS@/0/ | 174 | /^HAVE_GETGROUPS *=/s/@HAVE_GETGROUPS@/0/ |
| 150 | /^HAVE_GETHOSTNAME *=/s/@HAVE_GETHOSTNAME@/1/ | 175 | /^HAVE_GETHOSTNAME *=/s/@HAVE_GETHOSTNAME@/1/ |
| @@ -154,10 +179,19 @@ am__cd = cd | |||
| 154 | /^HAVE_GETSUBOPT *=/s/@HAVE_GETSUBOPT@/0/ | 179 | /^HAVE_GETSUBOPT *=/s/@HAVE_GETSUBOPT@/0/ |
| 155 | /^HAVE_GRANTPT *=/s/@HAVE_GRANTPT@/0/ | 180 | /^HAVE_GRANTPT *=/s/@HAVE_GRANTPT@/0/ |
| 156 | /^HAVE_LCHOWN *=/s/@HAVE_LCHOWN@/0/ | 181 | /^HAVE_LCHOWN *=/s/@HAVE_LCHOWN@/0/ |
| 182 | /^HAVE_INTTYPES_H *=/s/@HAVE_INTTYPES_H@/HAVE_INTTYPES_H/ | ||
| 183 | /^HAVE_LCHMOD *=/s/@HAVE_LCHMOD@/0/ | ||
| 157 | /^HAVE_LINK *=/s/@HAVE_LINK@/1/ | 184 | /^HAVE_LINK *=/s/@HAVE_LINK@/1/ |
| 158 | /^HAVE_LINKAT *=/s/@HAVE_LINKAT@/0/ | 185 | /^HAVE_LINKAT *=/s/@HAVE_LINKAT@/0/ |
| 186 | /^HAVE_LONG_LONG_INT *=/s/@HAVE_LONG_LONG_INT@/1/ | ||
| 187 | /^HAVE_LSTAT *=/s/@HAVE_LSTAT@/HAVE_LSTAT/ | ||
| 159 | /^HAVE_MAKEINFO *=/s/@HAVE_MAKEINFO@/yes/ | 188 | /^HAVE_MAKEINFO *=/s/@HAVE_MAKEINFO@/yes/ |
| 189 | /^HAVE_MKDIRAT *=/s/@HAVE_MKDIRAT@/0/ | ||
| 160 | /^HAVE_MKDTEMP *=/s/@HAVE_MKDTEMP@/0/ | 190 | /^HAVE_MKDTEMP *=/s/@HAVE_MKDTEMP@/0/ |
| 191 | /^HAVE_MKFIFO *=/s/@HAVE_MKFIFO@/1/ | ||
| 192 | /^HAVE_MKFIFOAT *=/s/@HAVE_MKFIFOAT@/0/ | ||
| 193 | /^HAVE_MKNOD *=/s/@HAVE_MKNOD@/1/ | ||
| 194 | /^HAVE_MKNODAT *=/s/@HAVE_MKNODAT@/0/ | ||
| 161 | /^HAVE_MKOSTEMP *=/s/@HAVE_MKOSTEMP@/0/ | 195 | /^HAVE_MKOSTEMP *=/s/@HAVE_MKOSTEMP@/0/ |
| 162 | /^HAVE_MKOSTEMPS *=/s/@HAVE_MKOSTEMPS@/0/ | 196 | /^HAVE_MKOSTEMPS *=/s/@HAVE_MKOSTEMPS@/0/ |
| 163 | /^HAVE_MKSTEMP *=/s/@HAVE_MKSTEMP@/1/ | 197 | /^HAVE_MKSTEMP *=/s/@HAVE_MKSTEMP@/1/ |
| @@ -176,7 +210,11 @@ am__cd = cd | |||
| 176 | /^HAVE_REALPATH *=/s/@HAVE_REALPATH@/0/ | 210 | /^HAVE_REALPATH *=/s/@HAVE_REALPATH@/0/ |
| 177 | /^HAVE_RPMATCH *=/s/@HAVE_RPMATCH@/0/ | 211 | /^HAVE_RPMATCH *=/s/@HAVE_RPMATCH@/0/ |
| 178 | /^HAVE_SETENV *=/s/@HAVE_SETENV@/1/ | 212 | /^HAVE_SETENV *=/s/@HAVE_SETENV@/1/ |
| 213 | /^HAVE_SIGNED_SIG_ATOMIC_T *=/s/@HAVE_SIGNED_SIG_ATOMIC_T@/1/ | ||
| 214 | /^HAVE_SIGNED_WCHAR_T *=/s/@HAVE_SIGNED_WCHAR_T@/0/ | ||
| 215 | /^HAVE_SIGNED_WINT_T *=/s/@HAVE_SIGNED_WINT_T@/1/ | ||
| 179 | /^HAVE_SLEEP *=/s/@HAVE_SLEEP@/1/ | 216 | /^HAVE_SLEEP *=/s/@HAVE_SLEEP@/1/ |
| 217 | /^HAVE_STDINT_H *=/s/@HAVE_STDINT_H@/HAVE_STDINT_H/ | ||
| 180 | /^HAVE_STRPTIME *=/s/@HAVE_STRPTIME@/0/ | 218 | /^HAVE_STRPTIME *=/s/@HAVE_STRPTIME@/0/ |
| 181 | /^HAVE_STRTOD *=/s/@HAVE_STRTOD@/1/ | 219 | /^HAVE_STRTOD *=/s/@HAVE_STRTOD@/1/ |
| 182 | /^HAVE_STRTOLL *=/s/@HAVE_STRTOLL@/1/ | 220 | /^HAVE_STRTOLL *=/s/@HAVE_STRTOLL@/1/ |
| @@ -184,13 +222,19 @@ am__cd = cd | |||
| 184 | /^HAVE_STRUCT_RANDOM_DATA *=/s/@HAVE_STRUCT_RANDOM_DATA@/0/ | 222 | /^HAVE_STRUCT_RANDOM_DATA *=/s/@HAVE_STRUCT_RANDOM_DATA@/0/ |
| 185 | /^HAVE_SYMLINK *=/s/@HAVE_SYMLINK@/1/ | 223 | /^HAVE_SYMLINK *=/s/@HAVE_SYMLINK@/1/ |
| 186 | /^HAVE_SYMLINKAT *=/s/@HAVE_SYMLINKAT@/0/ | 224 | /^HAVE_SYMLINKAT *=/s/@HAVE_SYMLINKAT@/0/ |
| 225 | /^HAVE_SYS_BITYPES_H *=/s/@HAVE_SYS_BITYPES_H@/0/ | ||
| 226 | /^HAVE_SYS_INTTYPES_H *=/s/@HAVE_SYS_INTTYPES_H@/0/ | ||
| 187 | /^HAVE_SYS_LOADAVG_H *=/s/@HAVE_SYS_LOADAVG_H@/0/ | 227 | /^HAVE_SYS_LOADAVG_H *=/s/@HAVE_SYS_LOADAVG_H@/0/ |
| 188 | /^HAVE_SYS_PARAM_H *=/s/@HAVE_SYS_PARAM_H@/1/ | 228 | /^HAVE_SYS_PARAM_H *=/s/@HAVE_SYS_PARAM_H@/1/ |
| 229 | /^HAVE_SYS_TYPES_H *=/s/@HAVE_SYS_TYPES_H@/1/ | ||
| 189 | /^HAVE_TIMEGM *=/s/@HAVE_TIMEGM@/0/ | 230 | /^HAVE_TIMEGM *=/s/@HAVE_TIMEGM@/0/ |
| 190 | /^HAVE_UNISTD_H *=/s/@HAVE_UNISTD_H@/1/ | 231 | /^HAVE_UNISTD_H *=/s/@HAVE_UNISTD_H@/1/ |
| 191 | /^HAVE_UNLINKAT *=/s/@HAVE_UNLINKAT@/0/ | 232 | /^HAVE_UNLINKAT *=/s/@HAVE_UNLINKAT@/0/ |
| 192 | /^HAVE_UNLOCKPT *=/s/@HAVE_UNLOCKPT@/0/ | 233 | /^HAVE_UNLOCKPT *=/s/@HAVE_UNLOCKPT@/0/ |
| 234 | /^HAVE_UNSIGNED_LONG_LONG_INT *=/s/@HAVE_UNSIGNED_LONG_LONG_INT@/1/ | ||
| 193 | /^HAVE_USLEEP *=/s/@HAVE_USLEEP@/1/ | 235 | /^HAVE_USLEEP *=/s/@HAVE_USLEEP@/1/ |
| 236 | /^HAVE_UTIMENSAT *=/s/@HAVE_UTIMENSAT@/0/ | ||
| 237 | /^HAVE_WCHAR_H *=/s/@HAVE_WCHAR_H@/1/ | ||
| 194 | /^HAVE_WCHAR_T *=/s/@HAVE_WCHAR_T@/1/ | 238 | /^HAVE_WCHAR_T *=/s/@HAVE_WCHAR_T@/1/ |
| 195 | /^HAVE_XSERVER *=/s/@HAVE_XSERVER@/0/ | 239 | /^HAVE_XSERVER *=/s/@HAVE_XSERVER@/0/ |
| 196 | /^HAVE__BOOL *=/s/@HAVE__BOOL@/1/ | 240 | /^HAVE__BOOL *=/s/@HAVE__BOOL@/1/ |
| @@ -201,14 +245,20 @@ am__cd = cd | |||
| 201 | /^LD_FIRSTFLAG *=/s/@[^@\n]*@// | 245 | /^LD_FIRSTFLAG *=/s/@[^@\n]*@// |
| 202 | /^LIBS *=/s/@[^@\n]*@// | 246 | /^LIBS *=/s/@[^@\n]*@// |
| 203 | /^MAKEINFO *=/s/@MAKEINFO@/makeinfo/ | 247 | /^MAKEINFO *=/s/@MAKEINFO@/makeinfo/ |
| 248 | # MKDIR_P lines are edited further below | ||
| 249 | /^MKDIR_P *=/s/@MKDIR_P@// | ||
| 204 | /^NEXT_AS_FIRST_DIRECTIVE_GETOPT_H *=/s/@[^@\n]*@/<getopt.h>/ | 250 | /^NEXT_AS_FIRST_DIRECTIVE_GETOPT_H *=/s/@[^@\n]*@/<getopt.h>/ |
| 205 | /^NEXT_AS_FIRST_DIRECTIVE_STDDEF_H *=/s/@[^@\n]*@// | 251 | /^NEXT_AS_FIRST_DIRECTIVE_STDDEF_H *=/s/@[^@\n]*@// |
| 252 | /^NEXT_AS_FIRST_DIRECTIVE_STDINT_H *=/s/@[^@\n]*@/<stdint.h>/ | ||
| 206 | /^NEXT_AS_FIRST_DIRECTIVE_STDLIB_H *=/s/@[^@\n]*@/<stdlib.h>/ | 253 | /^NEXT_AS_FIRST_DIRECTIVE_STDLIB_H *=/s/@[^@\n]*@/<stdlib.h>/ |
| 254 | /^NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H *=/s!@[^@\n]*@!<sys/stat.h>! | ||
| 207 | /^NEXT_AS_FIRST_DIRECTIVE_TIME_H *=/s/@[^@\n]*@/<time.h>/ | 255 | /^NEXT_AS_FIRST_DIRECTIVE_TIME_H *=/s/@[^@\n]*@/<time.h>/ |
| 208 | /^NEXT_AS_FIRST_DIRECTIVE_UNISTD_H *=/s/@[^@\n]*@/<unistd.h>/ | 256 | /^NEXT_AS_FIRST_DIRECTIVE_UNISTD_H *=/s/@[^@\n]*@/<unistd.h>/ |
| 209 | /^NEXT_GETOPT_H *=/s/@[^@\n]*@/<getopt.h>/ | 257 | /^NEXT_GETOPT_H *=/s/@[^@\n]*@/<getopt.h>/ |
| 210 | /^NEXT_STDDEF_H *=/s/@[^@\n]*@// | 258 | /^NEXT_STDDEF_H *=/s/@[^@\n]*@// |
| 259 | /^NEXT_STDINT_H *=/s/@[^@\n]*@/<stdint.h>/ | ||
| 211 | /^NEXT_STDLIB_H *=/s/@[^@\n]*@/<stdlib.h>/ | 260 | /^NEXT_STDLIB_H *=/s/@[^@\n]*@/<stdlib.h>/ |
| 261 | /^NEXT_SYS_STAT_H *=/s!@[^@\n]*@!<sys/stat.h>! | ||
| 212 | /^NEXT_TIME_H *=/s/@[^@\n]*@/<time.h>/ | 262 | /^NEXT_TIME_H *=/s/@[^@\n]*@/<time.h>/ |
| 213 | /^NEXT_UNISTD_H *=/s/@[^@\n]*@/<unistd.h>/ | 263 | /^NEXT_UNISTD_H *=/s/@[^@\n]*@/<unistd.h>/ |
| 214 | /^OBJEXT *=/s/@[^@\n]*@/o/ | 264 | /^OBJEXT *=/s/@[^@\n]*@/o/ |
| @@ -223,6 +273,7 @@ am__cd = cd | |||
| 223 | /^REPLACE_DUP *=/s/@REPLACE_DUP@/0/ | 273 | /^REPLACE_DUP *=/s/@REPLACE_DUP@/0/ |
| 224 | /^REPLACE_DUP2 *=/s/@REPLACE_DUP2@/0/ | 274 | /^REPLACE_DUP2 *=/s/@REPLACE_DUP2@/0/ |
| 225 | /^REPLACE_FCHOWNAT *=/s/@REPLACE_FCHOWNAT@/0/ | 275 | /^REPLACE_FCHOWNAT *=/s/@REPLACE_FCHOWNAT@/0/ |
| 276 | /^REPLACE_FSTAT *=/s/@REPLACE_FSTAT@/0/ | ||
| 226 | /^REPLACE_GETCWD *=/s/@REPLACE_GETCWD@/0/ | 277 | /^REPLACE_GETCWD *=/s/@REPLACE_GETCWD@/0/ |
| 227 | /^REPLACE_GETDOMAINNAME *=/s/@REPLACE_GETDOMAINNAME@/0/ | 278 | /^REPLACE_GETDOMAINNAME *=/s/@REPLACE_GETDOMAINNAME@/0/ |
| 228 | /^REPLACE_GETGROUPS *=/s/@REPLACE_GETGROUPS@/0/ | 279 | /^REPLACE_GETGROUPS *=/s/@REPLACE_GETGROUPS@/0/ |
| @@ -233,7 +284,12 @@ am__cd = cd | |||
| 233 | /^REPLACE_LINKAT *=/s/@REPLACE_LINKAT@/0/ | 284 | /^REPLACE_LINKAT *=/s/@REPLACE_LINKAT@/0/ |
| 234 | /^REPLACE_LOCALTIME_R *=/s/@REPLACE_LOCALTIME_R@/0/ | 285 | /^REPLACE_LOCALTIME_R *=/s/@REPLACE_LOCALTIME_R@/0/ |
| 235 | /^REPLACE_LSEEK *=/s/@REPLACE_LSEEK@/0/ | 286 | /^REPLACE_LSEEK *=/s/@REPLACE_LSEEK@/0/ |
| 287 | /^REPLACE_LSTAT *=/s/@REPLACE_LSTAT@/0/ | ||
| 236 | /^REPLACE_MALLOC *=/s/@REPLACE_MALLOC@/0/ | 288 | /^REPLACE_MALLOC *=/s/@REPLACE_MALLOC@/0/ |
| 289 | /^REPLACE_MBTOWC *=/s/@REPLACE_MBTOWC@/0/ | ||
| 290 | /^REPLACE_MKDIR *=/s/@REPLACE_MKDIR@/0/ | ||
| 291 | /^REPLACE_MKFIFO *=/s/@REPLACE_MKFIFO@/0/ | ||
| 292 | /^REPLACE_MKNOD *=/s/@REPLACE_MKNOD@/0/ | ||
| 237 | /^REPLACE_MKSTEMP *=/s/@REPLACE_MKSTEMP@/0/ | 293 | /^REPLACE_MKSTEMP *=/s/@REPLACE_MKSTEMP@/0/ |
| 238 | /^REPLACE_MKTIME *=/s/@REPLACE_MKTIME@/0/ | 294 | /^REPLACE_MKTIME *=/s/@REPLACE_MKTIME@/0/ |
| 239 | /^REPLACE_NANOSLEEP *=/s/@REPLACE_NANOSLEEP@/0/ | 295 | /^REPLACE_NANOSLEEP *=/s/@REPLACE_NANOSLEEP@/0/ |
| @@ -247,6 +303,7 @@ am__cd = cd | |||
| 247 | /^REPLACE_RMDIR *=/s/@REPLACE_RMDIR@/0/ | 303 | /^REPLACE_RMDIR *=/s/@REPLACE_RMDIR@/0/ |
| 248 | /^REPLACE_SETENV *=/s/@REPLACE_SETENV@/0/ | 304 | /^REPLACE_SETENV *=/s/@REPLACE_SETENV@/0/ |
| 249 | /^REPLACE_SLEEP *=/s/@REPLACE_SLEEP@/0/ | 305 | /^REPLACE_SLEEP *=/s/@REPLACE_SLEEP@/0/ |
| 306 | /^REPLACE_STAT *=/s/@REPLACE_STAT@/0/ | ||
| 250 | /^REPLACE_STRTOD *=/s/@REPLACE_STRTOD@/0/ | 307 | /^REPLACE_STRTOD *=/s/@REPLACE_STRTOD@/0/ |
| 251 | /^REPLACE_SYMLINK *=/s/@REPLACE_SYMLINK@/0/ | 308 | /^REPLACE_SYMLINK *=/s/@REPLACE_SYMLINK@/0/ |
| 252 | /^REPLACE_TIMEGM *=/s/@REPLACE_TIMEGM@/0/ | 309 | /^REPLACE_TIMEGM *=/s/@REPLACE_TIMEGM@/0/ |
| @@ -255,14 +312,21 @@ am__cd = cd | |||
| 255 | /^REPLACE_UNLINKAT *=/s/@REPLACE_UNLINKAT@/0/ | 312 | /^REPLACE_UNLINKAT *=/s/@REPLACE_UNLINKAT@/0/ |
| 256 | /^REPLACE_UNSETENV *=/s/@REPLACE_UNSETENV@/0/ | 313 | /^REPLACE_UNSETENV *=/s/@REPLACE_UNSETENV@/0/ |
| 257 | /^REPLACE_USLEEP *=/s/@REPLACE_USLEEP@/0/ | 314 | /^REPLACE_USLEEP *=/s/@REPLACE_USLEEP@/0/ |
| 315 | /^REPLACE_UTIMENSAT *=/s/@REPLACE_UTIMENSAT@/0/ | ||
| 316 | /^REPLACE_WCTOMB *=/s/@REPLACE_WCTOMB@/0/ | ||
| 258 | /^REPLACE_WRITE *=/s/@REPLACE_WRITE@/0/ | 317 | /^REPLACE_WRITE *=/s/@REPLACE_WRITE@/0/ |
| 318 | /^SIG_ATOMIC_T_SUFFIX *=/s/@SIG_ATOMIC_T_SUFFIX@// | ||
| 319 | /^SIZE_T_SUFFIX *=/s/@SIZE_T_SUFFIX@/u/ | ||
| 259 | /^STDBOOL_H *=/s/@[^@\n]*@// | 320 | /^STDBOOL_H *=/s/@[^@\n]*@// |
| 260 | /^STDDEF_H *=/s/@[^@\n]*@// | 321 | /^STDDEF_H *=/s/@[^@\n]*@// |
| 322 | /^STDINT_H *=/s/@[^@\n]*@/stdint.h/ | ||
| 261 | /^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/ | 323 | /^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/ |
| 262 | /^TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/ | 324 | /^TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/ |
| 263 | /^UNISTD_H_HAVE_WINSOCK2_H *=/s/@[^@\n]*@/0/ | 325 | /^UNISTD_H_HAVE_WINSOCK2_H *=/s/@[^@\n]*@/0/ |
| 264 | /^UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS *=/s/@[^@\n]*@/0/ | 326 | /^UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS *=/s/@[^@\n]*@/0/ |
| 265 | /^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o strftime.o time_r.o getloadavg.o/ | 327 | /^WCHAR_T_SUFFIX *=/s/@WCHAR_T_SUFFIX@/h/ |
| 328 | /^WINT_T_SUFFIX *=/s/@WINT_T_SUFFIX@// | ||
| 329 | /^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o strftime.o time_r.o getloadavg.o md5.o filemode.o/ | ||
| 266 | /^srcdir *=/s/@[^@\n]*@/./ | 330 | /^srcdir *=/s/@[^@\n]*@/./ |
| 267 | /^top_srcdir *=/s/@[^@\n]*@/../ | 331 | /^top_srcdir *=/s/@[^@\n]*@/../ |
| 268 | /^top_builddir *=/s/@[^@\n]*@/../ | 332 | /^top_builddir *=/s/@[^@\n]*@/../ |
| @@ -310,3 +374,4 @@ s/\.in-h\; *\\$/.in-h >> $@-t/ | |||
| 310 | /^unistd\.h:/,/^ [ ]*mv /{ | 374 | /^unistd\.h:/,/^ [ ]*mv /{ |
| 311 | s/'\; \\ *$/' >> $@-t/ | 375 | s/'\; \\ *$/' >> $@-t/ |
| 312 | } | 376 | } |
| 377 | s!\$(MKDIR_P)[ ][ ]*sys!command.com /c "if not exist sys\stat.h md sys"! | ||
diff --git a/nt/ChangeLog b/nt/ChangeLog index f20fbd1d31a..e55fc52a487 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2011-02-27 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * inc/unistd.h (readlink, symlink): Declare prototypes. | ||
| 4 | |||
| 5 | 2011-02-26 Eli Zaretskii <eliz@gnu.org> | ||
| 6 | |||
| 7 | * config.nt (nlink_t): Define. | ||
| 8 | |||
| 1 | 2011-02-21 Christoph Scholtes <cschol2112@gmail.com> | 9 | 2011-02-21 Christoph Scholtes <cschol2112@gmail.com> |
| 2 | 10 | ||
| 3 | * inc/stdint.h: New file, to support compilation with tool chains | 11 | * inc/stdint.h: New file, to support compilation with tool chains |
diff --git a/nt/config.nt b/nt/config.nt index b5ef24fc18b..26fbc1c67c5 100644 --- a/nt/config.nt +++ b/nt/config.nt | |||
| @@ -411,6 +411,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 411 | 411 | ||
| 412 | #define my_strftime nstrftime /* for strftime.c */ | 412 | #define my_strftime nstrftime /* for strftime.c */ |
| 413 | 413 | ||
| 414 | /* Define to the type of st_nlink in struct stat, or a supertype. */ | ||
| 415 | #define nlink_t short | ||
| 416 | |||
| 414 | #ifndef WINDOWSNT | 417 | #ifndef WINDOWSNT |
| 415 | /* Some of the files of Emacs which are intended for use with other | 418 | /* Some of the files of Emacs which are intended for use with other |
| 416 | programs assume that if you have a config.h file, you must declare | 419 | programs assume that if you have a config.h file, you must declare |
diff --git a/nt/inc/unistd.h b/nt/inc/unistd.h index 7e77f95da4c..fb1f1c4b3bf 100644 --- a/nt/inc/unistd.h +++ b/nt/inc/unistd.h | |||
| @@ -1,2 +1,10 @@ | |||
| 1 | /* Fake unistd.h: config.h already provides most of the relevant things. */ | 1 | /* Fake unistd.h: config.h already provides most of the relevant things. */ |
| 2 | 2 | ||
| 3 | #ifndef _UNISTD_H | ||
| 4 | #define _UNISTD_H | ||
| 5 | |||
| 6 | extern ssize_t readlink (const char *, char *, size_t); | ||
| 7 | extern int symlink (char const *, char const *); | ||
| 8 | |||
| 9 | #endif /* _UNISTD_H */ | ||
| 10 | |||
diff --git a/src/ChangeLog b/src/ChangeLog index a8de7268673..388e8c251d1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,55 @@ | |||
| 1 | 2011-02-27 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * frame.c (store_frame_param): Don't store value directly in | ||
| 4 | buffer_list and buried_buffer_list; copy the list and remove dead | ||
| 5 | buffers (Bug#7898). | ||
| 6 | |||
| 7 | 2011-02-27 Eli Zaretskii <eliz@gnu.org> | ||
| 8 | |||
| 9 | * msdos.c (readlink) [DJGPP < 2.04]: New stub function. | ||
| 10 | |||
| 11 | * msdos.h: (readlink) [DJGPP < 2.04]: Declare prototype. | ||
| 12 | |||
| 13 | * w32.c (symlink, readlink): New stub functions. | ||
| 14 | |||
| 15 | 2011-02-27 Paul Eggert <eggert@cs.ucla.edu> | ||
| 16 | |||
| 17 | * scroll.c (CHECK_BOUNDS): #define only if GLYPH_DEBUG. | ||
| 18 | This avoids a gcc warning in some configurations. | ||
| 19 | |||
| 20 | * frame.c (x_set_screen_gamma): Rename local to avoid shadowing. | ||
| 21 | |||
| 22 | * frame.h: Avoid gcc -Wmissing-prototypes diagnostics. | ||
| 23 | (set_menu_bar_lines, x_get_resource_string): New decls. | ||
| 24 | * msdos.c (set_menu_bar_lines): Omit decl. | ||
| 25 | |||
| 26 | * dispextern.h (struct glyph): Make u.img_id int, not unsigned. | ||
| 27 | It's always given int values and used as an int. This suppresses | ||
| 28 | a gcc "comparison of unsigned expression >= 0" warning in some | ||
| 29 | configurations. | ||
| 30 | |||
| 31 | * dispnew.c: Rename locals to avoid shadowing. | ||
| 32 | (update_text_area, scrolling_window, update_frame_1): Rename locals. | ||
| 33 | |||
| 34 | 2011-02-26 Paul Eggert <eggert@cs.ucla.edu> | ||
| 35 | |||
| 36 | * dispnew.c: Fix problems uncovered by gcc -Wstrict-prototypes. | ||
| 37 | (copy_glyph_row_contents): Remove; not used. | ||
| 38 | (frame_row_to_window, check_current_matrix_flags): | ||
| 39 | (window_change_signal): Now static, since they're not used elsewhere. | ||
| 40 | (check_current_matrix_flags): Surround with "#if 0", since its | ||
| 41 | only use is in a comment. Maybe both the comment and the "#if 0" | ||
| 42 | stuff should be removed? | ||
| 43 | |||
| 44 | * dispnew.c: Fix problem uncovered by gcc -Wunused-variable. | ||
| 45 | (adjust_frame_glyphs_for_window_redisplay): Make 'w' local to the | ||
| 46 | contexts that actually need it. | ||
| 47 | |||
| 48 | 2011-02-26 Eli Zaretskii <eliz@gnu.org> | ||
| 49 | |||
| 50 | * s/msdos.h (HAVE_LSTAT): Define for DJGPP >= 2.04. | ||
| 51 | (lstat): Define for DJGPP < 2.04. | ||
| 52 | |||
| 1 | 2011-02-25 Paul Eggert <eggert@cs.ucla.edu> | 53 | 2011-02-25 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 54 | ||
| 3 | Simplify symlink portability workaround. | 55 | Simplify symlink portability workaround. |
diff --git a/src/ChangeLog.10 b/src/ChangeLog.10 index 869ab5b07d8..6152b4c76af 100644 --- a/src/ChangeLog.10 +++ b/src/ChangeLog.10 | |||
| @@ -20002,7 +20002,7 @@ | |||
| 20002 | 20002 | ||
| 20003 | * w32reg.c (w32_get_rdb_resource): New function. | 20003 | * w32reg.c (w32_get_rdb_resource): New function. |
| 20004 | (x_get_string_resource): Use it, so resources passed with -xrm | 20004 | (x_get_string_resource): Use it, so resources passed with -xrm |
| 20005 | supercede the ones in the registry. | 20005 | supersede the ones in the registry. |
| 20006 | 20006 | ||
| 20007 | 2003-03-04 Jan Djärv <jan.h.d@swipnet.se> | 20007 | 2003-03-04 Jan Djärv <jan.h.d@swipnet.se> |
| 20008 | 20008 | ||
| @@ -25474,7 +25474,7 @@ | |||
| 25474 | recursive call unless that arg is non-nil. | 25474 | recursive call unless that arg is non-nil. |
| 25475 | (where_is_internal): New argument no_remap. Callers changed. | 25475 | (where_is_internal): New argument no_remap. Callers changed. |
| 25476 | Call recursively to find original key bindings for a remapped | 25476 | Call recursively to find original key bindings for a remapped |
| 25477 | comand unless that arg is non-nil. | 25477 | command unless that arg is non-nil. |
| 25478 | (Fwhere_is_internal): New optional argument NO-REMAP. | 25478 | (Fwhere_is_internal): New optional argument NO-REMAP. |
| 25479 | Doc updated. Callers changed. Pass arg to where_is_internal. | 25479 | Doc updated. Callers changed. Pass arg to where_is_internal. |
| 25480 | 25480 | ||
diff --git a/src/ChangeLog.3 b/src/ChangeLog.3 index a361142faae..beb7a0a2ae1 100644 --- a/src/ChangeLog.3 +++ b/src/ChangeLog.3 | |||
| @@ -7023,7 +7023,7 @@ | |||
| 7023 | * fileio.c: There are two versions of Fexpand_file_name defined | 7023 | * fileio.c: There are two versions of Fexpand_file_name defined |
| 7024 | here; the latter is inside a `#if 0' clause. Change its DEFUN to | 7024 | here; the latter is inside a `#if 0' clause. Change its DEFUN to |
| 7025 | a DEAFUN, so that its docstring doesn't make it into the DOC file | 7025 | a DEAFUN, so that its docstring doesn't make it into the DOC file |
| 7026 | and supercede the real docstring. | 7026 | and supersede the real docstring. |
| 7027 | 7027 | ||
| 7028 | * callint.c (Fcall_interactively): For the 'K' interactive spec, | 7028 | * callint.c (Fcall_interactively): For the 'K' interactive spec, |
| 7029 | set varies[i] to -1, indicating that the mouse click should be | 7029 | set varies[i] to -1, indicating that the mouse click should be |
| @@ -11142,7 +11142,7 @@ | |||
| 11142 | wait_reading_process_input, instead of just the first two. | 11142 | wait_reading_process_input, instead of just the first two. |
| 11143 | 11143 | ||
| 11144 | * process.c (wait_reading_process_input): Remove support for | 11144 | * process.c (wait_reading_process_input): Remove support for |
| 11145 | only waiting for mouse input, since that has been superceded. | 11145 | only waiting for mouse input, since that has been superseded. |
| 11146 | This removes X dependencies from process.c, and eliminates some | 11146 | This removes X dependencies from process.c, and eliminates some |
| 11147 | references to code that should only exist when using X10. | 11147 | references to code that should only exist when using X10. |
| 11148 | 11148 | ||
| @@ -11450,7 +11450,7 @@ | |||
| 11450 | 11450 | ||
| 11451 | * minibuf.c (temp_echo_area_glyphs): Clear echo_area_glyphs and | 11451 | * minibuf.c (temp_echo_area_glyphs): Clear echo_area_glyphs and |
| 11452 | previous_echo_glyphs, so the message we're displaying will | 11452 | previous_echo_glyphs, so the message we're displaying will |
| 11453 | supercede any existing message. | 11453 | supersede any existing message. |
| 11454 | 11454 | ||
| 11455 | * keyboard.c: Removed external declaration of echo_area_glyphs, | 11455 | * keyboard.c: Removed external declaration of echo_area_glyphs, |
| 11456 | since it's declared in window.h. | 11456 | since it's declared in window.h. |
diff --git a/src/character.c b/src/character.c index f12c4f28d31..6f3312fec29 100644 --- a/src/character.c +++ b/src/character.c | |||
| @@ -761,7 +761,7 @@ str_as_unibyte (unsigned char *str, EMACS_INT bytes) | |||
| 761 | corresponding byte and store in DST. CHARS is the number of | 761 | corresponding byte and store in DST. CHARS is the number of |
| 762 | characters in SRC. The value is the number of bytes stored in DST. | 762 | characters in SRC. The value is the number of bytes stored in DST. |
| 763 | Usually, the value is the same as CHARS, but is less than it if SRC | 763 | Usually, the value is the same as CHARS, but is less than it if SRC |
| 764 | contains a non-ASCII, non-eight-bit characater. If ACCEPT_LATIN_1 | 764 | contains a non-ASCII, non-eight-bit character. If ACCEPT_LATIN_1 |
| 765 | is nonzero, a Latin-1 character is accepted and converted to a byte | 765 | is nonzero, a Latin-1 character is accepted and converted to a byte |
| 766 | of that character code. | 766 | of that character code. |
| 767 | Note: Currently the arg ACCEPT_LATIN_1 is not used. */ | 767 | Note: Currently the arg ACCEPT_LATIN_1 is not used. */ |
diff --git a/src/dired.c b/src/dired.c index ce2a3d105e5..96063680d4d 100644 --- a/src/dired.c +++ b/src/dired.c | |||
| @@ -937,7 +937,11 @@ so last access time will always be midnight of that day. */) | |||
| 937 | Lisp_Object dirname; | 937 | Lisp_Object dirname; |
| 938 | struct stat sdir; | 938 | struct stat sdir; |
| 939 | #endif /* BSD4_2 */ | 939 | #endif /* BSD4_2 */ |
| 940 | char modes[12]; | 940 | |
| 941 | /* An array to hold the mode string generated by filemodestring, | ||
| 942 | including its terminating space and null byte. */ | ||
| 943 | char modes[sizeof "-rwxr-xr-x "]; | ||
| 944 | |||
| 941 | Lisp_Object handler; | 945 | Lisp_Object handler; |
| 942 | struct gcpro gcpro1; | 946 | struct gcpro gcpro1; |
| 943 | char *uname = NULL, *gname = NULL; | 947 | char *uname = NULL, *gname = NULL; |
diff --git a/src/dispextern.h b/src/dispextern.h index 6bb0c3a6aae..37ae7ee5fd5 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -431,7 +431,7 @@ struct glyph | |||
| 431 | } cmp; | 431 | } cmp; |
| 432 | 432 | ||
| 433 | /* Image ID for image glyphs (type == IMAGE_GLYPH). */ | 433 | /* Image ID for image glyphs (type == IMAGE_GLYPH). */ |
| 434 | unsigned img_id; | 434 | int img_id; |
| 435 | 435 | ||
| 436 | /* Sub-structure for type == STRETCH_GLYPH. */ | 436 | /* Sub-structure for type == STRETCH_GLYPH. */ |
| 437 | struct | 437 | struct |
diff --git a/src/dispnew.c b/src/dispnew.c index 4e068bde536..1408bea2fc6 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -1129,32 +1129,6 @@ copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from) | |||
| 1129 | } | 1129 | } |
| 1130 | 1130 | ||
| 1131 | 1131 | ||
| 1132 | /* Copy contents of glyph row FROM to glyph row TO. Glyph pointers in | ||
| 1133 | TO and FROM are left unchanged. Glyph contents are copied from the | ||
| 1134 | glyph memory of FROM to the glyph memory of TO. Increment buffer | ||
| 1135 | positions in row TO by DELTA/ DELTA_BYTES. */ | ||
| 1136 | |||
| 1137 | void | ||
| 1138 | copy_glyph_row_contents (struct glyph_row *to, struct glyph_row *from, | ||
| 1139 | EMACS_INT delta, EMACS_INT delta_bytes) | ||
| 1140 | { | ||
| 1141 | int area; | ||
| 1142 | |||
| 1143 | /* This is like a structure assignment TO = FROM, except that | ||
| 1144 | glyph pointers in the rows are left unchanged. */ | ||
| 1145 | copy_row_except_pointers (to, from); | ||
| 1146 | |||
| 1147 | /* Copy glyphs from FROM to TO. */ | ||
| 1148 | for (area = 0; area < LAST_AREA; ++area) | ||
| 1149 | if (from->used[area]) | ||
| 1150 | memcpy (to->glyphs[area], from->glyphs[area], | ||
| 1151 | from->used[area] * sizeof (struct glyph)); | ||
| 1152 | |||
| 1153 | /* Increment buffer positions in TO by DELTA. */ | ||
| 1154 | increment_row_positions (to, delta, delta_bytes); | ||
| 1155 | } | ||
| 1156 | |||
| 1157 | |||
| 1158 | /* Assign glyph row FROM to glyph row TO. This works like a structure | 1132 | /* Assign glyph row FROM to glyph row TO. This works like a structure |
| 1159 | assignment TO = FROM, except that glyph pointers are not copied but | 1133 | assignment TO = FROM, except that glyph pointers are not copied but |
| 1160 | exchanged between TO and FROM. Pointers must be exchanged to avoid | 1134 | exchanged between TO and FROM. Pointers must be exchanged to avoid |
| @@ -2223,8 +2197,6 @@ adjust_frame_glyphs_for_frame_redisplay (struct frame *f) | |||
| 2223 | static void | 2197 | static void |
| 2224 | adjust_frame_glyphs_for_window_redisplay (struct frame *f) | 2198 | adjust_frame_glyphs_for_window_redisplay (struct frame *f) |
| 2225 | { | 2199 | { |
| 2226 | struct window *w; | ||
| 2227 | |||
| 2228 | xassert (FRAME_WINDOW_P (f) && FRAME_LIVE_P (f)); | 2200 | xassert (FRAME_WINDOW_P (f) && FRAME_LIVE_P (f)); |
| 2229 | 2201 | ||
| 2230 | /* Allocate/reallocate window matrices. */ | 2202 | /* Allocate/reallocate window matrices. */ |
| @@ -2236,6 +2208,7 @@ adjust_frame_glyphs_for_window_redisplay (struct frame *f) | |||
| 2236 | #if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK) | 2208 | #if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK) |
| 2237 | { | 2209 | { |
| 2238 | /* Allocate a dummy window if not already done. */ | 2210 | /* Allocate a dummy window if not already done. */ |
| 2211 | struct window *w; | ||
| 2239 | if (NILP (f->menu_bar_window)) | 2212 | if (NILP (f->menu_bar_window)) |
| 2240 | { | 2213 | { |
| 2241 | f->menu_bar_window = make_window (); | 2214 | f->menu_bar_window = make_window (); |
| @@ -2258,23 +2231,26 @@ adjust_frame_glyphs_for_window_redisplay (struct frame *f) | |||
| 2258 | #endif /* HAVE_X_WINDOWS */ | 2231 | #endif /* HAVE_X_WINDOWS */ |
| 2259 | 2232 | ||
| 2260 | #ifndef USE_GTK | 2233 | #ifndef USE_GTK |
| 2261 | /* Allocate/ reallocate matrices of the tool bar window. If we | 2234 | { |
| 2262 | don't have a tool bar window yet, make one. */ | 2235 | /* Allocate/ reallocate matrices of the tool bar window. If we |
| 2263 | if (NILP (f->tool_bar_window)) | 2236 | don't have a tool bar window yet, make one. */ |
| 2264 | { | 2237 | struct window *w; |
| 2265 | f->tool_bar_window = make_window (); | 2238 | if (NILP (f->tool_bar_window)) |
| 2239 | { | ||
| 2240 | f->tool_bar_window = make_window (); | ||
| 2241 | w = XWINDOW (f->tool_bar_window); | ||
| 2242 | XSETFRAME (w->frame, f); | ||
| 2243 | w->pseudo_window_p = 1; | ||
| 2244 | } | ||
| 2245 | else | ||
| 2266 | w = XWINDOW (f->tool_bar_window); | 2246 | w = XWINDOW (f->tool_bar_window); |
| 2267 | XSETFRAME (w->frame, f); | ||
| 2268 | w->pseudo_window_p = 1; | ||
| 2269 | } | ||
| 2270 | else | ||
| 2271 | w = XWINDOW (f->tool_bar_window); | ||
| 2272 | 2247 | ||
| 2273 | XSETFASTINT (w->top_line, FRAME_MENU_BAR_LINES (f)); | 2248 | XSETFASTINT (w->top_line, FRAME_MENU_BAR_LINES (f)); |
| 2274 | XSETFASTINT (w->left_col, 0); | 2249 | XSETFASTINT (w->left_col, 0); |
| 2275 | XSETFASTINT (w->total_lines, FRAME_TOOL_BAR_LINES (f)); | 2250 | XSETFASTINT (w->total_lines, FRAME_TOOL_BAR_LINES (f)); |
| 2276 | XSETFASTINT (w->total_cols, FRAME_TOTAL_COLS (f)); | 2251 | XSETFASTINT (w->total_cols, FRAME_TOTAL_COLS (f)); |
| 2277 | allocate_matrices_for_window_redisplay (w); | 2252 | allocate_matrices_for_window_redisplay (w); |
| 2253 | } | ||
| 2278 | #endif | 2254 | #endif |
| 2279 | } | 2255 | } |
| 2280 | 2256 | ||
| @@ -2924,7 +2900,7 @@ sync_window_with_frame_matrix_rows (struct window *w) | |||
| 2924 | /* Return the window in the window tree rooted in W containing frame | 2900 | /* Return the window in the window tree rooted in W containing frame |
| 2925 | row ROW. Value is null if none is found. */ | 2901 | row ROW. Value is null if none is found. */ |
| 2926 | 2902 | ||
| 2927 | struct window * | 2903 | static struct window * |
| 2928 | frame_row_to_window (struct window *w, int row) | 2904 | frame_row_to_window (struct window *w, int row) |
| 2929 | { | 2905 | { |
| 2930 | struct window *found = NULL; | 2906 | struct window *found = NULL; |
| @@ -3562,12 +3538,12 @@ redraw_overlapping_rows (struct window *w, int yb) | |||
| 3562 | #endif /* HAVE_WINDOW_SYSTEM */ | 3538 | #endif /* HAVE_WINDOW_SYSTEM */ |
| 3563 | 3539 | ||
| 3564 | 3540 | ||
| 3565 | #ifdef GLYPH_DEBUG | 3541 | #if defined GLYPH_DEBUG && 0 |
| 3566 | 3542 | ||
| 3567 | /* Check that no row in the current matrix of window W is enabled | 3543 | /* Check that no row in the current matrix of window W is enabled |
| 3568 | which is below what's displayed in the window. */ | 3544 | which is below what's displayed in the window. */ |
| 3569 | 3545 | ||
| 3570 | void | 3546 | static void |
| 3571 | check_current_matrix_flags (struct window *w) | 3547 | check_current_matrix_flags (struct window *w) |
| 3572 | { | 3548 | { |
| 3573 | int last_seen_p = 0; | 3549 | int last_seen_p = 0; |
| @@ -4014,7 +3990,7 @@ update_text_area (struct window *w, int vpos) | |||
| 4014 | { | 3990 | { |
| 4015 | /* Otherwise clear to the end of the old row. Everything | 3991 | /* Otherwise clear to the end of the old row. Everything |
| 4016 | after that position should be clear already. */ | 3992 | after that position should be clear already. */ |
| 4017 | int x; | 3993 | int xlim; |
| 4018 | 3994 | ||
| 4019 | if (i >= desired_row->used[TEXT_AREA]) | 3995 | if (i >= desired_row->used[TEXT_AREA]) |
| 4020 | rif->cursor_to (vpos, i, desired_row->y, | 3996 | rif->cursor_to (vpos, i, desired_row->y, |
| @@ -4031,11 +4007,11 @@ update_text_area (struct window *w, int vpos) | |||
| 4031 | : (w->phys_cursor.hpos >= desired_row->used[TEXT_AREA]))) | 4007 | : (w->phys_cursor.hpos >= desired_row->used[TEXT_AREA]))) |
| 4032 | { | 4008 | { |
| 4033 | w->phys_cursor_on_p = 0; | 4009 | w->phys_cursor_on_p = 0; |
| 4034 | x = -1; | 4010 | xlim = -1; |
| 4035 | } | 4011 | } |
| 4036 | else | 4012 | else |
| 4037 | x = current_row->pixel_width; | 4013 | xlim = current_row->pixel_width; |
| 4038 | rif->clear_end_of_line (x); | 4014 | rif->clear_end_of_line (xlim); |
| 4039 | changed_p = 1; | 4015 | changed_p = 1; |
| 4040 | } | 4016 | } |
| 4041 | } | 4017 | } |
| @@ -4491,7 +4467,7 @@ scrolling_window (struct window *w, int header_line_p) | |||
| 4491 | && old_lines[i]->old_uses == 1 | 4467 | && old_lines[i]->old_uses == 1 |
| 4492 | && old_lines[i]->new_uses == 1) | 4468 | && old_lines[i]->new_uses == 1) |
| 4493 | { | 4469 | { |
| 4494 | int j, k; | 4470 | int p, q; |
| 4495 | int new_line = old_lines[i]->new_line_number; | 4471 | int new_line = old_lines[i]->new_line_number; |
| 4496 | struct run *run = run_pool + run_idx++; | 4472 | struct run *run = run_pool + run_idx++; |
| 4497 | 4473 | ||
| @@ -4504,33 +4480,33 @@ scrolling_window (struct window *w, int header_line_p) | |||
| 4504 | run->height = MATRIX_ROW (current_matrix, i)->height; | 4480 | run->height = MATRIX_ROW (current_matrix, i)->height; |
| 4505 | 4481 | ||
| 4506 | /* Extend backward. */ | 4482 | /* Extend backward. */ |
| 4507 | j = i - 1; | 4483 | p = i - 1; |
| 4508 | k = new_line - 1; | 4484 | q = new_line - 1; |
| 4509 | while (j > first_old | 4485 | while (p > first_old |
| 4510 | && k > first_new | 4486 | && q > first_new |
| 4511 | && old_lines[j] == new_lines[k]) | 4487 | && old_lines[p] == new_lines[q]) |
| 4512 | { | 4488 | { |
| 4513 | int h = MATRIX_ROW (current_matrix, j)->height; | 4489 | int h = MATRIX_ROW (current_matrix, p)->height; |
| 4514 | --run->current_vpos; | 4490 | --run->current_vpos; |
| 4515 | --run->desired_vpos; | 4491 | --run->desired_vpos; |
| 4516 | ++run->nrows; | 4492 | ++run->nrows; |
| 4517 | run->height += h; | 4493 | run->height += h; |
| 4518 | run->desired_y -= h; | 4494 | run->desired_y -= h; |
| 4519 | run->current_y -= h; | 4495 | run->current_y -= h; |
| 4520 | --j, --k; | 4496 | --p, --q; |
| 4521 | } | 4497 | } |
| 4522 | 4498 | ||
| 4523 | /* Extend forward. */ | 4499 | /* Extend forward. */ |
| 4524 | j = i + 1; | 4500 | p = i + 1; |
| 4525 | k = new_line + 1; | 4501 | q = new_line + 1; |
| 4526 | while (j < last_old | 4502 | while (p < last_old |
| 4527 | && k < last_new | 4503 | && q < last_new |
| 4528 | && old_lines[j] == new_lines[k]) | 4504 | && old_lines[p] == new_lines[q]) |
| 4529 | { | 4505 | { |
| 4530 | int h = MATRIX_ROW (current_matrix, j)->height; | 4506 | int h = MATRIX_ROW (current_matrix, p)->height; |
| 4531 | ++run->nrows; | 4507 | ++run->nrows; |
| 4532 | run->height += h; | 4508 | run->height += h; |
| 4533 | ++j, ++k; | 4509 | ++p, ++q; |
| 4534 | } | 4510 | } |
| 4535 | 4511 | ||
| 4536 | /* Insert run into list of all runs. Order runs by copied | 4512 | /* Insert run into list of all runs. Order runs by copied |
| @@ -4538,11 +4514,11 @@ scrolling_window (struct window *w, int header_line_p) | |||
| 4538 | be copied because they are already in place. This is done | 4514 | be copied because they are already in place. This is done |
| 4539 | because we can avoid calling update_window_line in this | 4515 | because we can avoid calling update_window_line in this |
| 4540 | case. */ | 4516 | case. */ |
| 4541 | for (j = 0; j < nruns && runs[j]->height > run->height; ++j) | 4517 | for (p = 0; p < nruns && runs[p]->height > run->height; ++p) |
| 4542 | ; | 4518 | ; |
| 4543 | for (k = nruns; k > j; --k) | 4519 | for (q = nruns; q > p; --q) |
| 4544 | runs[k] = runs[k - 1]; | 4520 | runs[q] = runs[q - 1]; |
| 4545 | runs[j] = run; | 4521 | runs[p] = run; |
| 4546 | ++nruns; | 4522 | ++nruns; |
| 4547 | 4523 | ||
| 4548 | i += run->nrows; | 4524 | i += run->nrows; |
| @@ -4639,7 +4615,7 @@ update_frame_1 (struct frame *f, int force_p, int inhibit_id_p) | |||
| 4639 | struct glyph_matrix *current_matrix = f->current_matrix; | 4615 | struct glyph_matrix *current_matrix = f->current_matrix; |
| 4640 | struct glyph_matrix *desired_matrix = f->desired_matrix; | 4616 | struct glyph_matrix *desired_matrix = f->desired_matrix; |
| 4641 | int i; | 4617 | int i; |
| 4642 | int pause; | 4618 | int pause_p; |
| 4643 | int preempt_count = baud_rate / 2400 + 1; | 4619 | int preempt_count = baud_rate / 2400 + 1; |
| 4644 | 4620 | ||
| 4645 | xassert (current_matrix && desired_matrix); | 4621 | xassert (current_matrix && desired_matrix); |
| @@ -4653,7 +4629,7 @@ update_frame_1 (struct frame *f, int force_p, int inhibit_id_p) | |||
| 4653 | #if !PERIODIC_PREEMPTION_CHECKING | 4629 | #if !PERIODIC_PREEMPTION_CHECKING |
| 4654 | if (!force_p && detect_input_pending_ignore_squeezables ()) | 4630 | if (!force_p && detect_input_pending_ignore_squeezables ()) |
| 4655 | { | 4631 | { |
| 4656 | pause = 1; | 4632 | pause_p = 1; |
| 4657 | goto do_pause; | 4633 | goto do_pause; |
| 4658 | } | 4634 | } |
| 4659 | #endif | 4635 | #endif |
| @@ -4733,10 +4709,10 @@ update_frame_1 (struct frame *f, int force_p, int inhibit_id_p) | |||
| 4733 | } | 4709 | } |
| 4734 | } | 4710 | } |
| 4735 | 4711 | ||
| 4736 | pause = (i < FRAME_LINES (f) - 1) ? i : 0; | 4712 | pause_p = (i < FRAME_LINES (f) - 1) ? i : 0; |
| 4737 | 4713 | ||
| 4738 | /* Now just clean up termcap drivers and set cursor, etc. */ | 4714 | /* Now just clean up termcap drivers and set cursor, etc. */ |
| 4739 | if (!pause) | 4715 | if (!pause_p) |
| 4740 | { | 4716 | { |
| 4741 | if ((cursor_in_echo_area | 4717 | if ((cursor_in_echo_area |
| 4742 | /* If we are showing a message instead of the mini-buffer, | 4718 | /* 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) | |||
| 4837 | #endif | 4813 | #endif |
| 4838 | 4814 | ||
| 4839 | clear_desired_matrices (f); | 4815 | clear_desired_matrices (f); |
| 4840 | return pause; | 4816 | return pause_p; |
| 4841 | } | 4817 | } |
| 4842 | 4818 | ||
| 4843 | 4819 | ||
| @@ -5594,7 +5570,7 @@ marginal_area_string (struct window *w, enum window_part part, | |||
| 5594 | 5570 | ||
| 5595 | #ifdef SIGWINCH | 5571 | #ifdef SIGWINCH |
| 5596 | 5572 | ||
| 5597 | SIGTYPE | 5573 | static SIGTYPE |
| 5598 | window_change_signal (int signalnum) /* If we don't have an argument, */ | 5574 | window_change_signal (int signalnum) /* If we don't have an argument, */ |
| 5599 | /* some compilers complain in signal calls. */ | 5575 | /* some compilers complain in signal calls. */ |
| 5600 | { | 5576 | { |
diff --git a/src/editfns.c b/src/editfns.c index 5d6189f2a3c..28690e7c76d 100644 --- a/src/editfns.c +++ b/src/editfns.c | |||
| @@ -3523,7 +3523,7 @@ usage: (format STRING &rest OBJECTS) */) | |||
| 3523 | int maybe_combine_byte; | 3523 | int maybe_combine_byte; |
| 3524 | char *this_format; | 3524 | char *this_format; |
| 3525 | /* Precision for each spec, or -1, a flag value meaning no precision | 3525 | /* Precision for each spec, or -1, a flag value meaning no precision |
| 3526 | was given in that spec. Element 0, corresonding to the format | 3526 | was given in that spec. Element 0, corresponding to the format |
| 3527 | string itself, will not be used. Element NARGS, corresponding to | 3527 | string itself, will not be used. Element NARGS, corresponding to |
| 3528 | no argument, *will* be assigned to in the case that a `%' and `.' | 3528 | no argument, *will* be assigned to in the case that a `%' and `.' |
| 3529 | occur after the final format specifier. */ | 3529 | occur after the final format specifier. */ |
diff --git a/src/frame.c b/src/frame.c index 56e0e7ec919..05938f3e1f0 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -2208,15 +2208,23 @@ store_frame_param (struct frame *f, Lisp_Object prop, Lisp_Object val) | |||
| 2208 | register Lisp_Object old_alist_elt; | 2208 | register Lisp_Object old_alist_elt; |
| 2209 | 2209 | ||
| 2210 | /* The buffer-list parameters are stored in a special place and not | 2210 | /* The buffer-list parameters are stored in a special place and not |
| 2211 | in the alist. */ | 2211 | in the alist. All buffers must be live. */ |
| 2212 | if (EQ (prop, Qbuffer_list)) | 2212 | if (EQ (prop, Qbuffer_list)) |
| 2213 | { | 2213 | { |
| 2214 | f->buffer_list = val; | 2214 | Lisp_Object list = Qnil; |
| 2215 | for (; CONSP (val); val = XCDR (val)) | ||
| 2216 | if (!NILP (Fbuffer_live_p (XCAR (val)))) | ||
| 2217 | list = Fcons (XCAR (val), list); | ||
| 2218 | f->buffer_list = Fnreverse (list); | ||
| 2215 | return; | 2219 | return; |
| 2216 | } | 2220 | } |
| 2217 | if (EQ (prop, Qburied_buffer_list)) | 2221 | if (EQ (prop, Qburied_buffer_list)) |
| 2218 | { | 2222 | { |
| 2219 | f->buried_buffer_list = val; | 2223 | Lisp_Object list = Qnil; |
| 2224 | for (; CONSP (val); val = XCDR (val)) | ||
| 2225 | if (!NILP (Fbuffer_live_p (XCAR (val)))) | ||
| 2226 | list = Fcons (XCAR (val), list); | ||
| 2227 | f->buried_buffer_list = Fnreverse (list); | ||
| 2220 | return; | 2228 | return; |
| 2221 | } | 2229 | } |
| 2222 | 2230 | ||
| @@ -3275,12 +3283,12 @@ x_set_screen_gamma (struct frame *f, Lisp_Object new_value, Lisp_Object old_valu | |||
| 3275 | bgcolor = Fassq (Qbackground_color, f->param_alist); | 3283 | bgcolor = Fassq (Qbackground_color, f->param_alist); |
| 3276 | if (CONSP (bgcolor) && (bgcolor = XCDR (bgcolor), STRINGP (bgcolor))) | 3284 | if (CONSP (bgcolor) && (bgcolor = XCDR (bgcolor), STRINGP (bgcolor))) |
| 3277 | { | 3285 | { |
| 3278 | Lisp_Object index = Fget (Qbackground_color, Qx_frame_parameter); | 3286 | Lisp_Object parm_index = Fget (Qbackground_color, Qx_frame_parameter); |
| 3279 | if (NATNUMP (index) | 3287 | if (NATNUMP (parm_index) |
| 3280 | && (XFASTINT (index) | 3288 | && (XFASTINT (parm_index) |
| 3281 | < sizeof (frame_parms)/sizeof (frame_parms[0])) | 3289 | < sizeof (frame_parms)/sizeof (frame_parms[0])) |
| 3282 | && FRAME_RIF (f)->frame_parm_handlers[XFASTINT (index)]) | 3290 | && FRAME_RIF (f)->frame_parm_handlers[XFASTINT (parm_index)]) |
| 3283 | (*FRAME_RIF (f)->frame_parm_handlers[XFASTINT (index)]) | 3291 | (*FRAME_RIF (f)->frame_parm_handlers[XFASTINT (parm_index)]) |
| 3284 | (f, bgcolor, Qnil); | 3292 | (f, bgcolor, Qnil); |
| 3285 | } | 3293 | } |
| 3286 | 3294 | ||
diff --git a/src/frame.h b/src/frame.h index 9687e39a9fc..756e121f678 100644 --- a/src/frame.h +++ b/src/frame.h | |||
| @@ -841,6 +841,7 @@ extern Lisp_Object Qnoelisp; | |||
| 841 | 841 | ||
| 842 | extern struct frame *last_nonminibuf_frame; | 842 | extern struct frame *last_nonminibuf_frame; |
| 843 | 843 | ||
| 844 | extern void set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object); | ||
| 844 | extern struct frame *make_initial_frame (void); | 845 | extern struct frame *make_initial_frame (void); |
| 845 | extern struct frame *make_terminal_frame (struct terminal *); | 846 | extern struct frame *make_terminal_frame (struct terminal *); |
| 846 | extern struct frame *make_frame (int); | 847 | extern struct frame *make_frame (int); |
| @@ -1131,17 +1132,20 @@ extern int x_figure_window_size (struct frame *, Lisp_Object, int); | |||
| 1131 | extern void x_set_alpha (struct frame *, Lisp_Object, Lisp_Object); | 1132 | extern void x_set_alpha (struct frame *, Lisp_Object, Lisp_Object); |
| 1132 | 1133 | ||
| 1133 | extern void validate_x_resource_name (void); | 1134 | extern void validate_x_resource_name (void); |
| 1134 | 1135 | ||
| 1135 | extern Lisp_Object display_x_get_resource (Display_Info *, | 1136 | extern Lisp_Object display_x_get_resource (Display_Info *, |
| 1136 | Lisp_Object attribute, | 1137 | Lisp_Object attribute, |
| 1137 | Lisp_Object class, | 1138 | Lisp_Object class, |
| 1138 | Lisp_Object component, | 1139 | Lisp_Object component, |
| 1139 | Lisp_Object subclass); | 1140 | Lisp_Object subclass); |
| 1140 | 1141 | ||
| 1142 | #if defined HAVE_X_WINDOWS && !defined USE_X_TOOLKIT | ||
| 1143 | extern char *x_get_resource_string (const char *, const char *); | ||
| 1144 | #endif | ||
| 1145 | |||
| 1141 | /* In xmenu.c */ | 1146 | /* In xmenu.c */ |
| 1142 | extern void set_frame_menubar (FRAME_PTR, int, int); | 1147 | extern void set_frame_menubar (FRAME_PTR, int, int); |
| 1143 | 1148 | ||
| 1144 | #endif /* HAVE_WINDOW_SYSTEM */ | 1149 | #endif /* HAVE_WINDOW_SYSTEM */ |
| 1145 | 1150 | ||
| 1146 | #endif /* not EMACS_FRAME_H */ | 1151 | #endif /* not EMACS_FRAME_H */ |
| 1147 | |||
diff --git a/src/keymap.c b/src/keymap.c index 0e4715e4b8b..1fbb40f1270 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -2756,7 +2756,7 @@ remapped command in the returned list. */) | |||
| 2756 | && !NILP (firstonly) | 2756 | && !NILP (firstonly) |
| 2757 | && !NILP (tem = Fget (definition, QCadvertised_binding))) | 2757 | && !NILP (tem = Fget (definition, QCadvertised_binding))) |
| 2758 | { | 2758 | { |
| 2759 | /* We have a list of advertized bindings. */ | 2759 | /* We have a list of advertised bindings. */ |
| 2760 | while (CONSP (tem)) | 2760 | while (CONSP (tem)) |
| 2761 | if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil, 0), definition)) | 2761 | if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil, 0), definition)) |
| 2762 | return XCAR (tem); | 2762 | return XCAR (tem); |
diff --git a/src/msdos.c b/src/msdos.c index 8f0f6776aaa..261a09ac859 100644 --- a/src/msdos.c +++ b/src/msdos.c | |||
| @@ -1389,8 +1389,6 @@ IT_delete_glyphs (struct frame *f, int n) | |||
| 1389 | void | 1389 | void |
| 1390 | x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) | 1390 | x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) |
| 1391 | { | 1391 | { |
| 1392 | extern void set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object); | ||
| 1393 | |||
| 1394 | set_menu_bar_lines (f, value, oldval); | 1392 | set_menu_bar_lines (f, value, oldval); |
| 1395 | } | 1393 | } |
| 1396 | 1394 | ||
| @@ -3922,6 +3920,18 @@ croak (char *badfunc) | |||
| 3922 | */ | 3920 | */ |
| 3923 | int setpgrp (void) {return 0; } | 3921 | int setpgrp (void) {return 0; } |
| 3924 | int setpriority (int x, int y, int z) { return 0; } | 3922 | int setpriority (int x, int y, int z) { return 0; } |
| 3923 | |||
| 3924 | #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4 | ||
| 3925 | ssize_t | ||
| 3926 | readlink (const char *name, char *dummy1, size_t dummy2) | ||
| 3927 | { | ||
| 3928 | /* `access' is much faster than `stat' on MS-DOS. */ | ||
| 3929 | if (access (name, F_OK) == 0) | ||
| 3930 | errno = EINVAL; | ||
| 3931 | return -1; | ||
| 3932 | } | ||
| 3933 | #endif | ||
| 3934 | |||
| 3925 | 3935 | ||
| 3926 | #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 2 | 3936 | #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 2 |
| 3927 | 3937 | ||
| @@ -4236,4 +4246,3 @@ This variable is used only by MS-DOS terminals. */); | |||
| 4236 | } | 4246 | } |
| 4237 | 4247 | ||
| 4238 | #endif /* MSDOS */ | 4248 | #endif /* MSDOS */ |
| 4239 | |||
diff --git a/src/msdos.h b/src/msdos.h index 6b076c1722b..4bbe9b134de 100644 --- a/src/msdos.h +++ b/src/msdos.h | |||
| @@ -40,6 +40,11 @@ void mouse_init (void); | |||
| 40 | void mouse_on (void); | 40 | void mouse_on (void); |
| 41 | void mouse_off (void); | 41 | void mouse_off (void); |
| 42 | void mouse_moveto (int, int); | 42 | void mouse_moveto (int, int); |
| 43 | |||
| 44 | #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4 | ||
| 45 | int readlink (const char *, char *, size_t); | ||
| 46 | #endif | ||
| 47 | |||
| 43 | 48 | ||
| 44 | #ifndef HAVE_X_WINDOWS | 49 | #ifndef HAVE_X_WINDOWS |
| 45 | /* Dummy types. */ | 50 | /* Dummy types. */ |
diff --git a/src/s/msdos.h b/src/s/msdos.h index 8debd28dccb..29ca0629899 100644 --- a/src/s/msdos.h +++ b/src/s/msdos.h | |||
| @@ -80,6 +80,12 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */ | |||
| 80 | strtold, so use _strtold in all versions. */ | 80 | strtold, so use _strtold in all versions. */ |
| 81 | #define strtold _strtold | 81 | #define strtold _strtold |
| 82 | 82 | ||
| 83 | #if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3 | ||
| 84 | # define HAVE_LSTAT 1 | ||
| 85 | #else | ||
| 86 | # define lstat stat | ||
| 87 | #endif | ||
| 88 | |||
| 83 | /* End of gnulib-related stuff. */ | 89 | /* End of gnulib-related stuff. */ |
| 84 | 90 | ||
| 85 | /* When $TERM is "internal" then this is substituted: */ | 91 | /* When $TERM is "internal" then this is substituted: */ |
diff --git a/src/scroll.c b/src/scroll.c index 08ae83eeee8..1343b89c41e 100644 --- a/src/scroll.c +++ b/src/scroll.c | |||
| @@ -262,7 +262,8 @@ do_scrolling (struct frame *frame, struct glyph_matrix *current_matrix, struct m | |||
| 262 | for (k = 0; k < window_size; ++k) | 262 | for (k = 0; k < window_size; ++k) |
| 263 | copy_from[k] = -1; | 263 | copy_from[k] = -1; |
| 264 | 264 | ||
| 265 | #define CHECK_BOUNDS \ | 265 | #if GLYPH_DEBUG |
| 266 | # define CHECK_BOUNDS \ | ||
| 266 | do \ | 267 | do \ |
| 267 | { \ | 268 | { \ |
| 268 | int k; \ | 269 | int k; \ |
| @@ -271,6 +272,7 @@ do_scrolling (struct frame *frame, struct glyph_matrix *current_matrix, struct m | |||
| 271 | || (copy_from[k] >= 0 && copy_from[k] < window_size)); \ | 272 | || (copy_from[k] >= 0 && copy_from[k] < window_size)); \ |
| 272 | } \ | 273 | } \ |
| 273 | while (0); | 274 | while (0); |
| 275 | #endif | ||
| 274 | 276 | ||
| 275 | /* When j is advanced, this corresponds to deleted lines. | 277 | /* When j is advanced, this corresponds to deleted lines. |
| 276 | When i is advanced, this corresponds to inserted lines. */ | 278 | When i is advanced, this corresponds to inserted lines. */ |
| @@ -1035,4 +1037,3 @@ do_line_insertion_deletion_costs (FRAME_PTR frame, | |||
| 1035 | FRAME_DELETE_COST (frame), FRAME_DELETEN_COST (frame), | 1037 | FRAME_DELETE_COST (frame), FRAME_DELETEN_COST (frame), |
| 1036 | coefficient); | 1038 | coefficient); |
| 1037 | } | 1039 | } |
| 1038 | |||
| @@ -3614,6 +3614,25 @@ utime (const char *name, struct utimbuf *times) | |||
| 3614 | } | 3614 | } |
| 3615 | 3615 | ||
| 3616 | 3616 | ||
| 3617 | /* Symlink-related functions that always fail. Used in fileio.c to | ||
| 3618 | avoid #ifdef's. */ | ||
| 3619 | int | ||
| 3620 | symlink (char const *dummy1, char const *dummy2) | ||
| 3621 | { | ||
| 3622 | errno = ENOSYS; | ||
| 3623 | return -1; | ||
| 3624 | } | ||
| 3625 | |||
| 3626 | ssize_t | ||
| 3627 | readlink (const char *name, char *dummy1, size_t dummy2) | ||
| 3628 | { | ||
| 3629 | /* `access' is much faster than `stat' on MS-Windows. */ | ||
| 3630 | if (sys_access (name, 0) == 0) | ||
| 3631 | errno = EINVAL; | ||
| 3632 | return -1; | ||
| 3633 | } | ||
| 3634 | |||
| 3635 | |||
| 3617 | /* Support for browsing other processes and their attributes. See | 3636 | /* Support for browsing other processes and their attributes. See |
| 3618 | process.c for the Lisp bindings. */ | 3637 | process.c for the Lisp bindings. */ |
| 3619 | 3638 | ||
diff --git a/src/w32proc.c b/src/w32proc.c index 1c009c7f943..bb8b428ffe4 100644 --- a/src/w32proc.c +++ b/src/w32proc.c | |||
| @@ -831,7 +831,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) | |||
| 831 | 831 | ||
| 832 | Note that using backslash to escape embedded quotes requires | 832 | Note that using backslash to escape embedded quotes requires |
| 833 | additional special handling if an embedded quote is already | 833 | additional special handling if an embedded quote is already |
| 834 | preceeded by backslash, or if an arg requiring quoting ends with | 834 | preceded by backslash, or if an arg requiring quoting ends with |
| 835 | backslash. In such cases, the run of escape characters needs to be | 835 | backslash. In such cases, the run of escape characters needs to be |
| 836 | doubled. For consistency, we apply this special handling as long | 836 | doubled. For consistency, we apply this special handling as long |
| 837 | as the escape character is not quote. | 837 | as the escape character is not quote. |
diff --git a/src/w32term.c b/src/w32term.c index 692130b5140..67e853f21f0 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -5941,7 +5941,7 @@ w32_initialize_display_info (Lisp_Object display_name) | |||
| 5941 | 5941 | ||
| 5942 | } | 5942 | } |
| 5943 | 5943 | ||
| 5944 | /* Create an xrdb-style database of resources to supercede registry settings. | 5944 | /* Create an xrdb-style database of resources to supersede registry settings. |
| 5945 | The database is just a concatenation of C strings, finished by an additional | 5945 | The database is just a concatenation of C strings, finished by an additional |
| 5946 | \0. The strings are submitted to some basic normalization, so | 5946 | \0. The strings are submitted to some basic normalization, so |
| 5947 | 5947 | ||