aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2014-10-15 16:16:10 +0300
committerEli Zaretskii2014-10-15 16:16:10 +0300
commitb8ec977659df3970a6c8afb7a5b79c9b61e08307 (patch)
tree58d317d79edc1406c8f50235062c86cb71ae18b5
parent48af58622bd07f37124a7b35f903b00de119f4a8 (diff)
parent73d4c39e1519a5fec742686e3c81941113d41448 (diff)
downloademacs-b8ec977659df3970a6c8afb7a5b79c9b61e08307.tar.gz
emacs-b8ec977659df3970a6c8afb7a5b79c9b61e08307.zip
Merge from trunk.
-rw-r--r--INSTALL140
-rw-r--r--README5
-rw-r--r--admin/notes/exit-value28
-rw-r--r--admin/notes/iftc26
-rw-r--r--admin/notes/lel-TODO124
-rw-r--r--admin/notes/versioning26
-rw-r--r--admin/versioning49
-rw-r--r--etc/NXML-NEWS24
-rw-r--r--lisp/ChangeLog12
-rw-r--r--lisp/emacs-lisp/tabulated-list.el5
-rw-r--r--lisp/erc/ChangeLog9
-rw-r--r--lisp/erc/erc-track.el2
-rw-r--r--lisp/gnus/ChangeLog7
-rw-r--r--lisp/gnus/gnus-start.el33
-rw-r--r--lisp/progmodes/elisp-mode.el13
-rw-r--r--nextstep/INSTALL10
-rw-r--r--nextstep/README37
17 files changed, 148 insertions, 402 deletions
diff --git a/INSTALL b/INSTALL
index 4bda46cfbc0..8ecee65aaa5 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,5 @@
1GNU Emacs Installation Guide 1GNU Emacs Installation Guide
2Copyright (C) 1992, 1994, 1996-1997, 2000-2014 Free Software Foundation, 2Copyright (C) 1992, 1994, 1996-1997, 2000-2014 Free Software Foundation, Inc.
3Inc.
4See the end of the file for license conditions. 3See the end of the file for license conditions.
5 4
6 5
@@ -34,9 +33,9 @@ some of the steps manually. The more detailed description in the other
34sections of this guide will help you do that, so please refer to those 33sections of this guide will help you do that, so please refer to those
35sections if you need to. 34sections if you need to.
36 35
37 1. Unpacking the Emacs 24.1 release requires about 180 MB of free 36 1. Unpacking the Emacs 24 release requires about 200 MB of free
38 disk space. Building Emacs uses about another 70 MB of space. 37 disk space. Building Emacs uses about another 200 MB of space.
39 The final installed Emacs uses about 110 MB of disk space. 38 The final installed Emacs uses about 150 MB of disk space.
40 This includes the space-saving that comes from automatically 39 This includes the space-saving that comes from automatically
41 compressing the Lisp source files on installation. 40 compressing the Lisp source files on installation.
42 41
@@ -208,24 +207,11 @@ corresponding command is `yum-builddep emacs'.
208 207
209DETAILED BUILDING AND INSTALLATION: 208DETAILED BUILDING AND INSTALLATION:
210 209
211(This is for a Unix or Unix-like system. For MS-DOS and MS Windows 3.X, 210(This is for a Unix or Unix-like system. For GNUstep and Mac OS X,
212see msdos/INSTALL. For later versions of MS Windows, see the file 211see nextstep/INSTALL. For non-ancient versions of MS Windows, see
213nt/INSTALL. For GNUstep and Mac OS X, see nextstep/INSTALL.) 212the file nt/INSTALL. For MS-DOS and MS Windows 3.X, see msdos/INSTALL.)
214 213
2151) Make sure your system has enough swapping space allocated to handle 2141) See the basic installation summary above for the disk space requirements.
216a program whose pure code is 1.5 MB and whose data area is at
217least 2.8 MB and can reach 100 MB or more. If the swapping space is
218insufficient, you will get an error in the command `temacs -batch -l
219loadup dump', found in `./src/Makefile.in', or possibly when
220running the final dumped Emacs. (This should not be an issue
221on any recent system.)
222
223Building Emacs requires about 230 MB of disk space (including the
224Emacs sources). Once installed, Emacs occupies about 120 MB in the file
225system where it is installed; this includes the executable files, Lisp
226libraries, miscellaneous data files, and on-line documentation. If
227the building and installation take place in different directories,
228then the installation procedure momentarily requires 230+120 MB.
229 215
2302) In the unlikely event that `configure' does not detect your system 2162) In the unlikely event that `configure' does not detect your system
231type correctly, consult `./etc/MACHINES' to see what --host, --build 217type correctly, consult `./etc/MACHINES' to see what --host, --build
@@ -264,8 +250,7 @@ Gtk or Motif, if you have the Xaw3d library installed (see
264"Image support libraries" above for Xaw3d availability). 250"Image support libraries" above for Xaw3d availability).
265 251
266You can tell configure where to search for GTK by giving it the 252You can tell configure where to search for GTK by giving it the
267argument PKG_CONFIG='/full/name/of/pkg-config'. GTK version 2.6 or 253argument PKG_CONFIG='/full/name/of/pkg-config'.
268newer is required for Emacs.
269 254
270Emacs will autolaunch a D-Bus session bus, when the environment 255Emacs will autolaunch a D-Bus session bus, when the environment
271variable DISPLAY is set, but no session bus is running. This might be 256variable DISPLAY is set, but no session bus is running. This might be
@@ -374,8 +359,7 @@ without sound support.
374`configure' doesn't do any compilation or installation itself. 359`configure' doesn't do any compilation or installation itself.
375It just creates the files that influence those things: 360It just creates the files that influence those things:
376`./Makefile' in the top-level directory and several subdirectories; 361`./Makefile' in the top-level directory and several subdirectories;
377and `./src/config.h'. For details on exactly what it does, see the 362and `./src/config.h'.
378section called `CONFIGURATION BY HAND', below.
379 363
380When it is done, `configure' prints a description of what it did and 364When it is done, `configure' prints a description of what it did and
381creates a shell script `config.status' which, when run, recreates the 365creates a shell script `config.status' which, when run, recreates the
@@ -430,11 +414,6 @@ those libraries are. For example:
430 ./configure \ 414 ./configure \
431 PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig' 415 PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig'
432 416
433The work of `configure' can be done by editing various files in the
434distribution, but using `configure' is easier. See the section called
435"CONFIGURATION BY HAND" below if you want to do the configuration
436yourself.
437
4383b) To build in a separate directory, go to that directory 4173b) To build in a separate directory, go to that directory
439and run the program `configure' as follows: 418and run the program `configure' as follows:
440 419
@@ -444,9 +423,6 @@ SOURCE-DIR refers to the top-level Emacs source directory which is
444where Emacs's configure script is located. `configure' looks for the 423where Emacs's configure script is located. `configure' looks for the
445Emacs source code in the directory that `configure' is in. 424Emacs source code in the directory that `configure' is in.
446 425
447(Do not try to build in a separate directory by creating many links to
448the real source directory--there is no need, and installation will fail.)
449
4504) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs 4264) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
451Lisp code you want Emacs to load before it is dumped out. Use 427Lisp code you want Emacs to load before it is dumped out. Use
452site-load.el for additional libraries if you arrange for their 428site-load.el for additional libraries if you arrange for their
@@ -559,11 +535,7 @@ to enable it to write the lock files. We believe this is safe.
5599) You are done! You can remove executables and object files from 5359) You are done! You can remove executables and object files from
560the build directory by typing `make clean'. To also remove the files 536the build directory by typing `make clean'. To also remove the files
561that `configure' created (so you can compile Emacs for a different 537that `configure' created (so you can compile Emacs for a different
562configuration), type `make distclean'. If you don't need some, or all 538configuration), type `make distclean'.
563of the input methods from the Leim package, you can remove the
564unneeded files in the leim subdirectories of your site's lisp
565directory (usually /usr/local/share/emacs/VERSION/).
566
567 539
568 540
569MAKE VARIABLES 541MAKE VARIABLES
@@ -671,94 +643,6 @@ Makefiles for the subdirectories, so you don't have to specify them
671when running make in the subdirectories. 643when running make in the subdirectories.
672 644
673 645
674CONFIGURATION BY HAND
675
676This should not be necessary and is not recommended. Instead of
677running the `configure' program, you have to perform the following steps.
678
6791) Copy `./src/config.in' to `./src/config.h'.
680
6812) Edit `./src/config.h' to set the right options for your system.
682
6833) Create `Makefile' files in various directories from the
684corresponding `Makefile.in' files. This isn't so hard, just a matter
685of editing in appropriate substitutions for the @...@ constructs.
686
687The `configure' script is built from `configure.ac' by the
688`autogen.sh' script, which checks that `autoconf' and other build
689tools are sufficiently up to date and then runs the build tools.
690
691BUILDING GNU EMACS BY HAND
692
693Once Emacs is configured, running `make' in the top directory performs
694the following steps.
695
6961) Run `make epaths-force' in the top directory. This produces
697`./src/epaths.h' from the template file `./src/epaths.in', changing
698the paths to the values specified in `./Makefile'.
699
7002) Go to directory `./lib' and run `make'. This creates include files
701and libraries used in later steps.
702
7033) Go to directory `./lib-src' and run `make'. This creates
704executables named `etags', `make-docfile', and others.
705
7064) Go to directory `./src' and run `make'. This refers to files in
707the `./lisp', `./lib', and `./lib-src' subdirectories using names
708`../lisp', `../lib', and `../lib-src'.
709
710This creates a file `./src/emacs' which is the runnable Emacs,
711which has another name that contains a version number.
712Each time you do this, that version number increments in the last place.
713
714It also creates a file in `./etc' whose name is `DOC' followed by the
715current Emacs version. This file contains documentation strings for
716all the functions in Emacs. Each time you run make to make a new
717emacs, a new DOC file with a new name is made. You must keep the DOC
718file for an Emacs version as long as you keep using that Emacs version.
719
720
721INSTALLATION BY HAND
722
723The steps below are done by running `make install' in the main
724directory of the Emacs distribution.
725
7261) Copy `./lisp' and its subdirectories, `./etc', and the executables
727in `./lib-src' to their final destinations, as selected in `./src/epaths.h'.
728
729Strictly speaking, not all of the executables in `./lib-src' need be copied.
730- The programs `hexl', `movemail', `profile', and `rcs2log'
731 are used by Emacs; they do need to be copied.
732- The programs `etags', `ctags', and `emacsclient' are intended to be
733 run by users; they are handled below.
734- The program `make-docfile' was used in building Emacs, and is
735 not needed any more.
736
7372) Copy the files in `./info' to the place specified in
738`./lisp/site-init.el' or `./lisp/info.el'. Note that if the
739destination directory already contains a file named `dir', you
740probably don't want to replace it with the `dir' file in the Emacs
741distribution. Instead, you should make sure that the existing `dir'
742file contains an appropriate menu entry for the Emacs info.
743
7443) Copy `./src/emacs' to `/usr/local/bin', or to some other directory
745in users' search paths. `./src/emacs' has an alternate name
746`./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named
747`/usr/local/bin/emacs' pointing to that alternate name, as an easy way
748of installing different versions.
749
750You can delete `./src/temacs'.
751
7524) Copy the programs `emacsclient', `ctags', and `etags' from `./lib-src'
753to `/usr/local/bin'. These programs are intended for users to run.
754
7555) Copy the man pages in `./doc/man' into the appropriate man directory.
756
7576) The files in the `./src' subdirectory, except for `emacs', are not
758used by Emacs once it is built. However, it is very desirable to keep
759the source on line for debugging.
760
761
762PROBLEMS 646PROBLEMS
763 647
764See the file `./etc/PROBLEMS' for a list of various problems sometimes 648See the file `./etc/PROBLEMS' for a list of various problems sometimes
diff --git a/README b/README
index 6c83c75bee3..ad412c4fb86 100644
--- a/README
+++ b/README
@@ -39,10 +39,7 @@ process of building and installing Emacs. See INSTALL for more
39detailed information. 39detailed information.
40 40
41The file `configure.ac' is the input used by the autoconf program to 41The file `configure.ac' is the input used by the autoconf program to
42construct the `configure' script. Since Emacs has some configuration 42construct the `configure' script.
43requirements that autoconf can't meet directly, and for historical
44reasons, `configure.ac' uses an unholy marriage of custom-baked
45configuration code and autoconf macros.
46 43
47The shell script `autogen.sh' generates 'configure' and other files by 44The shell script `autogen.sh' generates 'configure' and other files by
48running the GNU build tools autoconf and automake, which in turn use 45running the GNU build tools autoconf and automake, which in turn use
diff --git a/admin/notes/exit-value b/admin/notes/exit-value
deleted file mode 100644
index 96337e4c8dd..00000000000
--- a/admin/notes/exit-value
+++ /dev/null
@@ -1,28 +0,0 @@
1ttn 2004-05-09
2
3The exit value of a program returning to the shell on unixoid systems
4is typically 0 for success, and non-0 (such as 1) for failure. This is
5not always the case on other systems.
6
7From the point of view of the program stdlib.h provides macros
8`EXIT_SUCCESS' and `EXIT_FAILURE' that should DTRT. N.B. The
9numerical values of these macros DO NOT need to fulfill the exit value
10requirements outlined in the first paragraph! That is the job of the
11`exit' function. Thus, this kind of construct shows misunderstanding:
12
13 #ifdef WEIRD_OS
14 exit (1);
15 #else
16 exit (0);
17 #endif
18
19Values aside from EXIT_SUCCESS and EXIT_FAILURE are tricky, but can be
20used to indicate finer gradations of failure. If this is the only
21information available to the caller, clamping such values to
22EXIT_FAILURE loses information. If there are other ways to indicate
23the problem to the caller (such as a message to stderr) it may be ok
24to clamp. In all cases, it is the relationship between the program
25and its caller that must be examined.
26
27[Insert ZAMM quote here.] <-- I presume this refers to ``Zen and the
28Art of Motorcycle Maintenance'' - Reuben Thomas <rrt@sc3d.org>.
diff --git a/admin/notes/iftc b/admin/notes/iftc
deleted file mode 100644
index 983b1486685..00000000000
--- a/admin/notes/iftc
+++ /dev/null
@@ -1,26 +0,0 @@
1Iso-Functional Type Contour
2
3
4This is a term coined to describe "column int->float" change approach, and can
5be used whenever low-level types need to change (hopefully not often!) but the
6meanings of the values (whose type has changed) do not.
7
8The premise is that changing a low-level type potentially means lots of code
9needs to be changed as well, and the question is how to do this incrementally,
10which is the preferred way to change things.
11
12Say LOW and HIGH are C functions:
13
14 int LOW (void) { return 1; }
15 void HIGH (void) { int value = LOW (); }
16
17We want to convert LOW to return float, so we cast HIGH usage:
18
19 float LOW (void) { return 1.0; }
20 void HIGH (void) { int value = (int) LOW (); } /* iftc */
21
22The comment /* iftc */ is used to mark this type of casting to differentiate
23it from other casting. We commit the changes and can now go about modifying
24LOW and HIGH separately. When HIGH is ready to handle the type change, the
25cast can be removed.
26
diff --git a/admin/notes/lel-TODO b/admin/notes/lel-TODO
deleted file mode 100644
index 4a4ccb5e6e8..00000000000
--- a/admin/notes/lel-TODO
+++ /dev/null
@@ -1,124 +0,0 @@
1Some lisp/emacs-lisp/ Features and Where They Are Documented
2
3Copyright (C) 2007-2014 Free Software Foundation, Inc.
4See the end of the file for license conditions.
5
6
7* Status Key
8 - -- as yet unknown
9 n/a -- not applicable (internal, uninteresting, etc)
10 obsolete -- an obsolete feature, to be removed in future
11 todo -- not documented but should be
12 NODE -- documented in or under info node NODE
13
14
15* Features
16 advice (elisp) Advising Functions
17 advice-preload n/a
18 assoc -
19 authors -
20 autoload (elisp) Autoload
21 avl-tree -
22 backquote n/a
23 benchmark n/a
24 bindat (elisp) Byte Packing
25 byte-compile (elisp) Byte Compilation
26 byte-opt -
27 bytecomp (elisp) Compilation Functions
28 checkdoc (elisp) Documentation Tips
29 cl (cl)
30 cl-compat n/a
31 cl-specs n/a
32 copyright -
33 crm -
34 cust-print (elisp) Printing in Edebug
35 debug (elisp) Debugger
36 derived (elisp) Derived Modes
37 disass (elisp) Disassembly
38 easy-mmode (elisp) Defining Minor Modes
39 easymenu -
40 edebug (elisp) Edebug
41 eldoc -
42 elint -
43 elp n/a
44 ewoc (elisp) Separated Rendering
45 find-func -
46 find-gc -
47 generic (elisp) Generic Modes
48 gulp n/a
49 helper -
50 levents obsolete
51 lisp-float-type -
52 lisp-mnt -
53 lisp-mode n/a
54 lmenu obsolete
55 lucid obsolete
56 macroexp (elisp) Expansion
57 pp (emacs) Program Indent
58 re-builder -
59 regexp-opt (elisp) Regexp Functions
60 regi -
61 ring (elisp) Rings
62 rx -
63 shadow -
64 sregex obsolete
65 syntax (elisp) Position Parse
66 testcover -
67 timer (elisp) Timers
68 tq (elisp) Transaction Queues
69 trace -
70 unsafep (elisp) Function Safety
71 warnings (elisp) Warnings
72
73
74* Above list created using default directory lisp/emacs-lisp/ with
75 (shell-command
76 "sed '/^(provide '\\''/!d;s// /;s/).*//' *.el | sort | uniq")
77
78
79* How to use this file to improve Emacs
80 (loop
81 (let* ((feature (choose-one Features))
82 (status (feature-status feature)))
83 (if (or (eq '- status) (not (verify status)))
84 (update feature (current-docs feature))
85 (case status
86 (todo (let (doc patch feedback)
87 (while (not (grok feature))
88 (or (play-with feature)
89 (grep feature Internet)
90 (grep feature (wisdom-maybe "emacs-devel"))))
91 (setq doc (write-documentation feature)
92 patch (diff (current-docs) doc))
93 (while (not (and (correct doc)
94 (well-placed doc)
95 (well-formed patch)))
96 (setq doc (revise doc)
97 patch (diff (current-docs) doc))
98 feedback (wisdom-maybe "emacs-devel" patch))
99 (when (install patch)
100 (when (update feature (current-docs feature))
101 (job-well-done user-login-name)))))
102 (n/a (job-well-done user-login-name))))))
103
104
105* Etc
106
107This file is part of GNU Emacs.
108
109GNU Emacs is free software: you can redistribute it and/or modify
110it under the terms of the GNU General Public License as published by
111the Free Software Foundation, either version 3 of the License, or
112(at your option) any later version.
113
114GNU Emacs is distributed in the hope that it will be useful,
115but WITHOUT ANY WARRANTY; without even the implied warranty of
116MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
117GNU General Public License for more details.
118
119You should have received a copy of the GNU General Public License
120along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
121
122 Local variables:
123 mode: outline
124 End:
diff --git a/admin/notes/versioning b/admin/notes/versioning
new file mode 100644
index 00000000000..e422b22e432
--- /dev/null
+++ b/admin/notes/versioning
@@ -0,0 +1,26 @@
1GNU EMACS VERSIONING -*- org -*-
2
3Ref: http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00872.html
4
5Emacs version numbers have the form
6
7 major.minor[.devel].build
8
9"build" increments each time Emacs is built in the same location
10(without cleaning) and isn't really part of the version.
11
12bugfix releases increase "minor" by 1.
13non-bugfix releases increase "major" by 1, and reset "minor" to 1.
14(The division between bugfix and non-bugfix has not always been clear
15historically.)
16
17Unreleased (development) versions have an extra "devel" component.
18This is a fairly meaningless number that may be unchanged for a long time.
19It is normally 50.
20When the release process starts, it changes to 90, 91, ...
21When the actual release is made, this component is removed.
22
23The development version for a new major release has "minor" = 0.
24The development version for a new minor release has "minor" = that of
25the previous release.
26
diff --git a/admin/versioning b/admin/versioning
deleted file mode 100644
index da547ee94ca..00000000000
--- a/admin/versioning
+++ /dev/null
@@ -1,49 +0,0 @@
1GNU EMACS VERSIONING -*- org -*-
2
3The version number scheme of Emacs, including how to determine when to
4bump various components of the version number, has evolved over the
5years. This file defines the current method, explains why it was
6chosen, and lightly documents the previous schemes. It was prompted
7by http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00872.html.
8
9Related info:
10- [[file:FOR-RELEASE][FOR-RELEASE]]
11- [[file:make-tarball.txt][make-tarball.txt]]
12
13* what: MAJOR.MINOR
14
15This has always been the case (see [[was]], below). MINOR is 1 or more,
16usually, the exception being for pretest releases, where there is
17an additional trailing ".ALPHA" (e.g., 24.3.95 prior to 24.4).
18
19To determine any release's version, we follow this algorithm:
20
21- If MAJOR-CHANGES, increment MAJOR and set MINOR to 1.
22- Otherwise, increment MINOR.
23
24where MAJOR-CHANGES is defined roughly as the union of:
25
26- dropped support for IMPORTANT
27 - platforms (almost never happens)
28 - Emacs Lisp features
29 - non-programming features/packages
30- IMPORTANT additions and changes
31 - Emacs Lisp features
32 - non-programming features/packages
33
34and IMPORTANT is defined through discussion on the [[http://mail.gnu.org/archive/html/emacs-devel/][emacs-devel]]
35mailing list and/or private arm-twisting (although this latter
36method is somewhat discouraged :-D).
37
38* why
39
40People expect bumps in MINOR for "minor" changes. This typically
41includes bugfixes, doc improvements, or fully-backward-compatible
42additions and changes, only.
43
44Anything else is actually IMPORTANT, to the user. [Actually, who
45really knows what the user thinks? I certainly don't. --ttn]
46
47* was
48
49TODO (be sure to include "ad-hoc" :-D)
diff --git a/etc/NXML-NEWS b/etc/NXML-NEWS
index ab0d351096d..8a284e2617b 100644
--- a/etc/NXML-NEWS
+++ b/etc/NXML-NEWS
@@ -1,3 +1,10 @@
1Copyright (C) 2007-2014 Free Software Foundation, Inc.
2See the end of the file for license conditions.
3
4
5For more recent changes, see the main Emacs NEWS file.
6
7
120041004 820041004
2-------- 9--------
3 10
@@ -197,3 +204,20 @@ Bug fixes.
197-------- 204--------
198 205
199Initial release. 206Initial release.
207
208
209
210This file is part of GNU Emacs.
211
212GNU Emacs is free software: you can redistribute it and/or modify
213it under the terms of the GNU General Public License as published by
214the Free Software Foundation, either version 3 of the License, or
215(at your option) any later version.
216
217GNU Emacs is distributed in the hope that it will be useful,
218but WITHOUT ANY WARRANTY; without even the implied warranty of
219MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
220GNU General Public License for more details.
221
222You should have received a copy of the GNU General Public License
223along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 055ec17160e..80157c67704 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,15 @@
12014-10-15 Eli Zaretskii <eliz@gnu.org>
2
3 * emacs-lisp/tabulated-list.el (tabulated-list-mode): Force
4 bidi-paragraph-direction to 'left-to-right'. This fixes
5 buffer-menu display when the first buffer happens to start with
6 R2L letter.
7
82014-10-15 Stefan Monnier <monnier@iro.umontreal.ca>
9
10 * progmodes/elisp-mode.el (elisp--local-variables-1):
11 Handle quoted expressions (bug#18688).
12
12014-10-14 Jérémy Compostella <jeremy.compostella@intel.com> 132014-10-14 Jérémy Compostella <jeremy.compostella@intel.com>
2 Michael Albinus <michael.albinus@gmx.de> 14 Michael Albinus <michael.albinus@gmx.de>
3 15
diff --git a/lisp/emacs-lisp/tabulated-list.el b/lisp/emacs-lisp/tabulated-list.el
index 3ee261aa06b..1e613c7fd4e 100644
--- a/lisp/emacs-lisp/tabulated-list.el
+++ b/lisp/emacs-lisp/tabulated-list.el
@@ -519,7 +519,10 @@ as the ewoc pretty-printer."
519 (setq-local buffer-read-only t) 519 (setq-local buffer-read-only t)
520 (setq-local buffer-undo-list t) 520 (setq-local buffer-undo-list t)
521 (setq-local revert-buffer-function #'tabulated-list-revert) 521 (setq-local revert-buffer-function #'tabulated-list-revert)
522 (setq-local glyphless-char-display tabulated-list-glyphless-char-display)) 522 (setq-local glyphless-char-display tabulated-list-glyphless-char-display)
523 ;; Avoid messing up the entries' display just because the first
524 ;; column of the first entry happens to begin with a R2L letter.
525 (setq bidi-paragraph-direction 'left-to-right))
523 526
524(put 'tabulated-list-mode 'mode-class 'special) 527(put 'tabulated-list-mode 'mode-class 'special)
525 528
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog
index 0833bda4cb1..c12f289ce0f 100644
--- a/lisp/erc/ChangeLog
+++ b/lisp/erc/ChangeLog
@@ -1,3 +1,8 @@
12014-10-15 Ivan Shmakov <ivan@siamics.net>
2
3 * erc-track.el (erc-modified-channels-display): Update mode line
4 more frequently (bug#18510).
5
12014-10-10 Kelvin White <kwhite@gnu.org> 62014-10-10 Kelvin White <kwhite@gnu.org>
2 7
3 * erc.el (erc-initialize-log-marker): Only initialize 8 * erc.el (erc-initialize-log-marker): Only initialize
@@ -434,9 +439,9 @@
434 439
4352011-11-28 Mike Kazantsev <mk.fraggod@gmail.com> (tiny change) 4402011-11-28 Mike Kazantsev <mk.fraggod@gmail.com> (tiny change)
436 441
437 * erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Updated regexp to 442 * erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Update regexp to
438 match quoted filenames with spaces inside. 443 match quoted filenames with spaces inside.
439 (erc-dcc-handle-ctcp-send): Updated regexp match group numbers, 444 (erc-dcc-handle-ctcp-send): Update regexp match group numbers,
440 added processing of escaped quotes and backslashes if filename 445 added processing of escaped quotes and backslashes if filename
441 itself was in quotes. 446 itself was in quotes.
442 447
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el
index 706cce2fefe..47e76c3ea1e 100644
--- a/lisp/erc/erc-track.el
+++ b/lisp/erc/erc-track.el
@@ -860,7 +860,7 @@ Use `erc-make-mode-line-buffer-name' to create buttons."
860 faces (cdr faces))) 860 faces (cdr faces)))
861 strings))) 861 strings)))
862 (newobject (erc-modified-channels-object strings))) 862 (newobject (erc-modified-channels-object strings)))
863 (unless (equal oldobject newobject) 863 (unless (equal-including-properties oldobject newobject)
864 (setq erc-modified-channels-object newobject) 864 (setq erc-modified-channels-object newobject)
865 (force-mode-line-update t))))) 865 (force-mode-line-update t)))))
866 866
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 6c59200dfa6..30eda3d2bf0 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,10 @@
12014-10-14 Teodor Zlatanov <tzz@lifelogs.com>
2
3 * gnus-start.el (gnus-save-newsrc-file-check-timestamp): New option to
4 check the newsrc.eld file's timestamp before saving it.
5 (gnus-save-newsrc-file): Use it, with a prompt when the newsrc.eld
6 timestamp has changed to be newer.
7
12014-10-06 Jan Tatarik <jan.tatarik@gmail.com> 82014-10-06 Jan Tatarik <jan.tatarik@gmail.com>
2 9
3 * gnus-icalendar.el (gnus-icalendar-identities): 10 * gnus-icalendar.el (gnus-icalendar-identities):
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 766e7c26ac4..5b734d0ae77 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -442,6 +442,14 @@ See also `gnus-before-startup-hook'."
442 :group 'gnus-newsrc 442 :group 'gnus-newsrc
443 :type 'hook) 443 :type 'hook)
444 444
445(defcustom gnus-save-newsrc-file-check-timestamp nil
446 "Check the modification time of the newsrc.eld file before saving it.
447When the newsrc.eld file is updated by multiple machines,
448checking the file's modification time is a good way to avoid
449overwriting updated data."
450 :group 'gnus-newsrc
451 :type 'boolean)
452
445(defcustom gnus-save-newsrc-hook nil 453(defcustom gnus-save-newsrc-hook nil
446 "A hook called before saving any of the newsrc files." 454 "A hook called before saving any of the newsrc files."
447 :group 'gnus-newsrc 455 :group 'gnus-newsrc
@@ -2783,6 +2791,7 @@ If FORCE is non-nil, the .newsrc file is read."
2783 'msdos-long-file-names 2791 'msdos-long-file-names
2784 (lambda () t)))) 2792 (lambda () t))))
2785 2793
2794(defvar gnus-save-newsrc-file-last-timestamp nil)
2786(defun gnus-save-newsrc-file (&optional force) 2795(defun gnus-save-newsrc-file (&optional force)
2787 "Save .newsrc file." 2796 "Save .newsrc file."
2788 ;; Note: We cannot save .newsrc file if all newsgroups are removed 2797 ;; Note: We cannot save .newsrc file if all newsgroups are removed
@@ -2821,12 +2830,30 @@ If FORCE is non-nil, the .newsrc file is read."
2821 (erase-buffer) 2830 (erase-buffer)
2822 (gnus-message 5 "Saving %s.eld..." gnus-current-startup-file) 2831 (gnus-message 5 "Saving %s.eld..." gnus-current-startup-file)
2823 2832
2833 ;; check timestamp of `gnus-current-startup-file'.eld against
2834 ;; `gnus-save-newsrc-file-last-timestamp'
2835 (when gnus-save-newsrc-file-check-timestamp
2836 (let* ((checkfile (concat gnus-current-startup-file ".eld"))
2837 (mtime (nth 5 (file-attributes checkfile))))
2838 (when (and gnus-save-newsrc-file-last-timestamp
2839 (time-less-p gnus-save-newsrc-file-last-timestamp
2840 mtime))
2841 (unless (y-or-n-p
2842 (format "%s was updated externally after %s, save?"
2843 checkfile
2844 (format-time-string
2845 "%c"
2846 gnus-save-newsrc-file-last-timestamp)))
2847 (error "Couldn't save %s: updated externally" checkfile)))))
2848
2824 (if gnus-save-startup-file-via-temp-buffer 2849 (if gnus-save-startup-file-via-temp-buffer
2825 (let ((coding-system-for-write gnus-ding-file-coding-system) 2850 (let ((coding-system-for-write gnus-ding-file-coding-system)
2826 (standard-output (current-buffer))) 2851 (standard-output (current-buffer)))
2827 (gnus-gnus-to-quick-newsrc-format) 2852 (gnus-gnus-to-quick-newsrc-format)
2828 (gnus-run-hooks 'gnus-save-quick-newsrc-hook) 2853 (gnus-run-hooks 'gnus-save-quick-newsrc-hook)
2829 (save-buffer)) 2854 (save-buffer)
2855 (setq gnus-save-newsrc-file-last-timestamp
2856 (nth 5 (file-attributes buffer-file-name))))
2830 (let ((coding-system-for-write gnus-ding-file-coding-system) 2857 (let ((coding-system-for-write gnus-ding-file-coding-system)
2831 (version-control gnus-backup-startup-file) 2858 (version-control gnus-backup-startup-file)
2832 (startup-file (concat gnus-current-startup-file ".eld")) 2859 (startup-file (concat gnus-current-startup-file ".eld"))
@@ -2861,7 +2888,9 @@ If FORCE is non-nil, the .newsrc file is read."
2861 2888
2862 ;; Replace the existing startup file with the temp file. 2889 ;; Replace the existing startup file with the temp file.
2863 (rename-file working-file startup-file t) 2890 (rename-file working-file startup-file t)
2864 (gnus-set-file-modes startup-file setmodes))) 2891 (gnus-set-file-modes startup-file setmodes)
2892 (setq gnus-save-newsrc-file-last-timestamp
2893 (nth 5 (file-attributes startup-file)))))
2865 (condition-case nil 2894 (condition-case nil
2866 (delete-file working-file) 2895 (delete-file working-file)
2867 (file-error nil))))) 2896 (file-error nil)))))
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index f3143bd76ee..900e859b54a 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -255,18 +255,27 @@ Blank lines separate paragraphs. Semicolons start comments.
255 (dolist (binding bindings) 255 (dolist (binding bindings)
256 (push (or (car-safe binding) binding) vars)) 256 (push (or (car-safe binding) binding) vars))
257 (elisp--local-variables-1 vars (car (last body))))) 257 (elisp--local-variables-1 vars (car (last body)))))
258 (`(lambda ,_) (setq sexp nil)) 258 (`(lambda ,_args)
259 ;; FIXME: Look for the witness inside `args'.
260 (setq sexp nil))
259 (`(lambda ,args . ,body) 261 (`(lambda ,args . ,body)
260 (elisp--local-variables-1 262 (elisp--local-variables-1
261 (append args vars) (car (last body)))) 263 (append (remq '&optional (remq '&rest args)) vars)
264 (car (last body))))
262 (`(condition-case ,_ ,e) (elisp--local-variables-1 vars e)) 265 (`(condition-case ,_ ,e) (elisp--local-variables-1 vars e))
263 (`(condition-case ,v ,_ . ,catches) 266 (`(condition-case ,v ,_ . ,catches)
264 (elisp--local-variables-1 267 (elisp--local-variables-1
265 (cons v vars) (cdr (car (last catches))))) 268 (cons v vars) (cdr (car (last catches)))))
269 (`(quote . ,_)
270 ;; FIXME: Look for the witness inside sexp.
271 (setq sexp nil))
272 ;; FIXME: Handle `cond'.
266 (`(,_ . ,_) 273 (`(,_ . ,_)
267 (elisp--local-variables-1 vars (car (last sexp)))) 274 (elisp--local-variables-1 vars (car (last sexp))))
268 (`elisp--witness--lisp (or vars '(nil))) 275 (`elisp--witness--lisp (or vars '(nil)))
269 (_ nil))) 276 (_ nil)))
277 ;; We didn't find the witness in the last element so we try to
278 ;; backtrack to the last-but-one.
270 (setq sexp (ignore-errors (butlast sexp))))) 279 (setq sexp (ignore-errors (butlast sexp)))))
271 res)) 280 res))
272 281
diff --git a/nextstep/INSTALL b/nextstep/INSTALL
index 63f52efdca9..76cc01c5831 100644
--- a/nextstep/INSTALL
+++ b/nextstep/INSTALL
@@ -2,6 +2,16 @@ Copyright (C) 2008-2014 Free Software Foundation, Inc.
2See the end of the file for license conditions. 2See the end of the file for license conditions.
3 3
4 4
5Requirements
6------------
7Mac OS X 10.6 or later
8
9- or -
10
11GNUstep "Startup 0.23" or later
12Tested on GNU/Linux, may work on other systems.
13
14
5Compilation 15Compilation
6----------- 16-----------
7 17
diff --git a/nextstep/README b/nextstep/README
index 07f0d897e13..45b9b23ee10 100644
--- a/nextstep/README
+++ b/nextstep/README
@@ -1,37 +1,4 @@
1Copyright (C) 2008-2014 Free Software Foundation, Inc. 1This directory contains files needed to build Emacs on Nextstep-based
2See the end of the file for license conditions. 2platforms, including GNUstep and Mac OS X (using the Cocoa libraries).
3
4This directory contains the files needed to build Emacs on
5Nextstep-based platforms, including GNUstep and Mac OS X.
6
7The Nextstep support code works on many POSIX systems (and possibly
8W32) using the GNUstep libraries, and on MacOS X systems using the
9Cocoa libraries.
10 3
11See the INSTALL file in this directory for compilation instructions. 4See the INSTALL file in this directory for compilation instructions.
12
13Requirements
14------------
15Mac OS X 10.6 or later
16
17- or -
18
19GNUstep "Startup 0.23" or later
20Tested on GNU/Linux, should work on other systems, perhaps with minor
21build tweaking.
22
23
24This file is part of GNU Emacs.
25
26GNU Emacs is free software: you can redistribute it and/or modify
27it under the terms of the GNU General Public License as published by
28the Free Software Foundation, either version 3 of the License, or
29(at your option) any later version.
30
31GNU Emacs is distributed in the hope that it will be useful,
32but WITHOUT ANY WARRANTY; without even the implied warranty of
33MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34GNU General Public License for more details.
35
36You should have received a copy of the GNU General Public License
37along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.