Merge from emacs-24; up to 2014-05-04T21:18:30Z!eggert@cs.ucla.edu
This commit is contained in:
commit
3e9fa60a5c
46 changed files with 1235 additions and 970 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
|||
2014-05-04 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Require ImageMagick >= 6.3.5, due to PixelSetMagickColor (Bug#17339).
|
||||
* configure.ac (IMAGEMAGICK_MODULE): Bump prereq from 6.2.8 to 6.3.5.
|
||||
A more-complicated fix would be to remove uses of PixelSetMagickColor,
|
||||
introduced in ImageMagick 6.3.5 (Sept. 2007).
|
||||
|
||||
2014-05-04 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.ac (LIBPNG): Consult libpng-config for the precise
|
||||
form of "-lpng" to use. (Bug#17339)
|
||||
|
||||
2014-05-03 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* autogen.sh: If all else fails, try using pkg-config to find pkg.m4.
|
||||
|
|
|
@ -5,6 +5,11 @@ Instructions to create pretest or release tarballs. -*- coding: utf-8 -*-
|
|||
|
||||
Steps to take before starting on the first pretest in any release sequence:
|
||||
|
||||
0. The release branch (e.g. emacs-24) should already have been made
|
||||
and you should use it for all that follows. Diffs from this
|
||||
branch should be going to the emacs-diffs mailing list (see
|
||||
admin/notes/bzr section on bzr-email plugin).
|
||||
|
||||
1. Decide on versions of automake and autoconf, and ensure you will
|
||||
have them available for the duration of the release process.
|
||||
|
||||
|
@ -14,17 +19,15 @@ Steps to take before starting on the first pretest in any release sequence:
|
|||
when preparing the first pretest for a major Emacs release.)
|
||||
Commit cus-edit.el if changed.
|
||||
|
||||
3. Remove any old pretests from ftp://alpha.gnu.org/gnu/emacs/pretest.
|
||||
You can use `gnupload --delete' (see below for more gnupload details).
|
||||
|
||||
General steps (for each step, check for possible errors):
|
||||
|
||||
1. `bzr update' (for a bound branch), or `bzr pull'.
|
||||
bzr status # check for locally modified files
|
||||
|
||||
2. Bootstrap to make 100% sure all elc files are up-to-date, and to
|
||||
make sure that the later tagged version will bootstrap, should it be
|
||||
necessary to check it out.
|
||||
|
||||
3. Regenerate the etc/AUTHORS file:
|
||||
2. Regenerate the etc/AUTHORS file:
|
||||
M-: (require 'authors) RET
|
||||
M-x authors RET
|
||||
|
||||
|
@ -39,7 +42,7 @@ General steps (for each step, check for possible errors):
|
|||
authors-ambiguous-files or authors-aliases, and repeat.
|
||||
Commit any fixes to ChangeLogs or authors.el.
|
||||
|
||||
4. Set the version number (M-x load-file RET admin/admin.el RET, then
|
||||
3. Set the version number (M-x load-file RET admin/admin.el RET, then
|
||||
M-x set-version RET). For a release, add released ChangeLog
|
||||
entries (M-x add-release-logs RET).
|
||||
|
||||
|
@ -54,31 +57,37 @@ General steps (for each step, check for possible errors):
|
|||
emacs-XX.Y-rc1.tar. If all goes well in the following week, you
|
||||
can simply rename the file and use it for the actual release.
|
||||
|
||||
5. autoreconf -i -I m4 --force
|
||||
4. autoreconf -i -I m4 --force
|
||||
make bootstrap
|
||||
|
||||
make -C etc/refcards
|
||||
make -C etc/refcards clean
|
||||
|
||||
6. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
|
||||
5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
|
||||
|
||||
Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed
|
||||
by M-x set-version.
|
||||
by M-x set-version. Use a commit log message that bzrmerge.el
|
||||
will ignore (eg "Bump version...").
|
||||
For a release, also commit the ChangeLog files in all directories.
|
||||
|
||||
7. ./make-dist --snapshot --no-compress
|
||||
If someone else made a commit between step 1 and now,
|
||||
you need to repeat from step 4 onwards. (You can commit the files
|
||||
from step 2 and 3 earlier to reduce the chance of this.)
|
||||
|
||||
Check the contents of the new tar with
|
||||
admin/diff-tar-files against an older tar file. Some old pretest
|
||||
tarballs may be found at <ftp://alpha.gnu.org/gnu/emacs/pretest>;
|
||||
old release tarballs are at <ftp://ftp.gnu.org/pub/gnu/emacs/>.
|
||||
6. ./make-dist --snapshot --no-compress
|
||||
|
||||
Check the contents of the new tar with admin/diff-tar-files
|
||||
against the previous release (if this is the first pretest) or the
|
||||
previous pretest. If you did not make the previous pretest
|
||||
yourself, find it at <ftp://alpha.gnu.org/gnu/emacs/pretest>.
|
||||
Releases are of course at <ftp://ftp.gnu.org/pub/gnu/emacs/>.
|
||||
|
||||
If this is the first pretest of a major release, just comparing
|
||||
with the previous release may overlook many new files. You can try
|
||||
something like `find . | sort' in a clean bzr tree, and compare the
|
||||
results against the new tar contents.
|
||||
|
||||
8. tar -xf emacs-NEW.tar; cd emacs-NEW
|
||||
7. tar -xf emacs-NEW.tar; cd emacs-NEW
|
||||
./configure --prefix=/tmp/emacs && make && make install
|
||||
Use `script' or M-x compile to save the compilation log in
|
||||
compile-NEW.log and compare it against an old one. The easiest way
|
||||
|
@ -87,25 +96,21 @@ General steps (for each step, check for possible errors):
|
|||
M-x ediff. Especially check that Info files aren't built, and that
|
||||
no autotools (autoconf etc) run.
|
||||
|
||||
9. cd EMACS_ROOT_DIR && bzr tag TAG
|
||||
8. cd EMACS_ROOT_DIR && bzr tag TAG
|
||||
TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release.
|
||||
|
||||
Shortly before the release, cut the version branch also, and open
|
||||
a Savannah support request asking for commits to the new branch to
|
||||
be sent to the emacs-diffs mailing list (by default, the list
|
||||
normally only gets commits to the trunk).
|
||||
|
||||
10. Decide what compression schemes to offer.
|
||||
9. Decide what compression schemes to offer.
|
||||
For a release, at least gz and xz:
|
||||
gzip --best -c emacs-NEW.tar > emacs-NEW.tar.gz
|
||||
xz -c emacs-NEW.tar > emacs-NEW.tar.xz
|
||||
For pretests, just xz is probably fine (saves bandwidth).
|
||||
|
||||
Now you should upload the files to the GNU ftp server. In order to
|
||||
do that, you must be registered as an Emacs maintainer and have your
|
||||
GPG key acknowledged by the ftp people. For instructions, see
|
||||
http://www.gnu.org/prep/maintain/html_node/Automated-Upload-Registration.html
|
||||
The simplest method is to use the gnulib <http://www.gnu.org/s/gnulib/>
|
||||
script "build-aux/gnupload" to upload each FILE, like this:
|
||||
The simplest method to upload is to use the gnulib
|
||||
<http://www.gnu.org/s/gnulib/> script "build-aux/gnupload":
|
||||
|
||||
For a pretest:
|
||||
gnupload [--user your@gpg.key.email] --to alpha.gnu.org:emacs/pretest \
|
||||
|
@ -136,19 +141,21 @@ General steps (for each step, check for possible errors):
|
|||
For a pretest, place the files in /incoming/alpha instead, so that
|
||||
they appear on ftp://alpha.gnu.org/.
|
||||
|
||||
11. After five minutes, verify that the files are visible at
|
||||
10. After five minutes, verify that the files are visible at
|
||||
ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or
|
||||
ftp://ftp.gnu.org/gnu/emacs/ for a release.
|
||||
|
||||
Download them and check the signatures. Check they build.
|
||||
|
||||
12. For a pretest, announce it on emacs-devel and info-gnu-emacs@gnu.org.
|
||||
Probably should also include the platform-testers list:
|
||||
https://lists.gnu.org/mailman/listinfo/platform-testers
|
||||
For a release, also announce it on info-gnu@gnu.org. (Probably
|
||||
bcc the info- addresses to make it less likely that people will
|
||||
followup on those lists.)
|
||||
11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org.
|
||||
For a pretest, also bcc: platform-testers@gnu.org.
|
||||
(The reason for using bcc: is to make it less likely that people
|
||||
will followup on the wrong list.)
|
||||
See the info-gnu-emacs mailing list archives for the form
|
||||
of past announcements. The first pretest announcement, and the
|
||||
release announcement, should have more detail.
|
||||
|
||||
13. For a release, update the Emacs homepage in the web repository.
|
||||
Also add the new NEWS file as NEWS.xx.y.
|
||||
Maybe regenerate the html manuals, update the FAQ, etc, etc.
|
||||
12. For a release, update the Emacs homepage in the web repository.
|
||||
Also update history.html, and add the new NEWS file as NEWS.xx.y.
|
||||
Regenerate the html manuals (use make-manuals from admin.el).
|
||||
If there are new manuals, add appropriate index pages.
|
||||
|
|
19
configure.ac
19
configure.ac
|
@ -2175,11 +2175,9 @@ fi
|
|||
HAVE_IMAGEMAGICK=no
|
||||
if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${HAVE_W32}" = "yes"; then
|
||||
if test "${with_imagemagick}" != "no"; then
|
||||
## 6.2.8 is the earliest version known to work, but earlier versions
|
||||
## might work - let us know if you find one.
|
||||
## 6.0.7 does not work. See bug#7955.
|
||||
## 6.3.5 is the earliest version known to work; see Bug#17339.
|
||||
## 6.8.2 makes Emacs crash; see Bug#13867.
|
||||
IMAGEMAGICK_MODULE="Wand >= 6.2.8 Wand != 6.8.2"
|
||||
IMAGEMAGICK_MODULE="Wand >= 6.3.5 Wand != 6.8.2"
|
||||
EMACS_CHECK_MODULES([IMAGEMAGICK], [$IMAGEMAGICK_MODULE])
|
||||
AC_SUBST(IMAGEMAGICK_CFLAGS)
|
||||
AC_SUBST(IMAGEMAGICK_LIBS)
|
||||
|
@ -3051,8 +3049,15 @@ elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
|
|||
fi
|
||||
|
||||
if test "${HAVE_PNG}" = "yes"; then
|
||||
AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
|
||||
LIBPNG="-lpng -lz -lm"
|
||||
AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library.])
|
||||
|
||||
dnl Some systems, eg NetBSD 6, only provide eg "libpng16", not "libpng".
|
||||
lpng=`libpng-config --libs 2> /dev/null`
|
||||
case $lpng in
|
||||
-l*) : ;;
|
||||
*) lpng="-lpng" ;;
|
||||
esac
|
||||
LIBPNG="$lpng -lz -lm"
|
||||
|
||||
AC_CHECK_DECL(png_longjmp,
|
||||
[],
|
||||
|
@ -4908,7 +4913,7 @@ echo " Does Emacs use -lXpm? ${HAVE_XPM}"
|
|||
echo " Does Emacs use -ljpeg? ${HAVE_JPEG}"
|
||||
echo " Does Emacs use -ltiff? ${HAVE_TIFF}"
|
||||
echo " Does Emacs use a gif library? ${HAVE_GIF} $LIBGIF"
|
||||
echo " Does Emacs use -lpng? ${HAVE_PNG}"
|
||||
echo " Does Emacs use a png library? ${HAVE_PNG} $LIBPNG"
|
||||
echo " Does Emacs use -lrsvg-2? ${HAVE_RSVG}"
|
||||
echo " Does Emacs use imagemagick? ${HAVE_IMAGEMAGICK}"
|
||||
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2014-05-04 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* trouble.texi (Lossage, DEL Does Not Delete, Stuck Recursive)
|
||||
(Screen Garbled, Text Garbled, After a Crash, Emergency Escape)
|
||||
(Bug Criteria, Understanding Bug Reporting, Checklist, Service):
|
||||
Improve indexing.
|
||||
|
||||
2014-05-04 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* cal-xtra.texi (Non-Gregorian Diary): Document new features for
|
||||
|
|
|
@ -135,6 +135,7 @@ facility.
|
|||
|
||||
@node Lossage
|
||||
@section Dealing with Emacs Trouble
|
||||
@cindex troubleshooting Emacs
|
||||
|
||||
This section describes how to recognize and deal with situations in
|
||||
which Emacs does not work as you expect, such as keyboard code mixups,
|
||||
|
@ -158,6 +159,7 @@ Emacs.
|
|||
@subsection If @key{DEL} Fails to Delete
|
||||
@cindex @key{DEL} vs @key{BACKSPACE}
|
||||
@cindex @key{BACKSPACE} vs @key{DEL}
|
||||
@cindex @key{DEL} does not delete
|
||||
|
||||
Every keyboard has a large key, usually labeled @key{BACKSPACE},
|
||||
which is ordinarily used to erase the last character that you typed.
|
||||
|
@ -212,6 +214,8 @@ Customization}.
|
|||
|
||||
@node Stuck Recursive
|
||||
@subsection Recursive Editing Levels
|
||||
@cindex stuck in recursive editing
|
||||
@cindex recursive editing, cannot exit
|
||||
|
||||
Recursive editing levels are important and useful features of Emacs, but
|
||||
they can seem like malfunctions if you do not understand them.
|
||||
|
@ -225,6 +229,9 @@ top-level}. @xref{Recursive Edit}.
|
|||
|
||||
@node Screen Garbled
|
||||
@subsection Garbage on the Screen
|
||||
@cindex garbled display
|
||||
@cindex display, incorrect
|
||||
@cindex screen display, wrong
|
||||
|
||||
If the text on a text terminal looks wrong, the first thing to do is
|
||||
see whether it is wrong in the buffer. Type @kbd{C-l} to redisplay
|
||||
|
@ -242,6 +249,8 @@ bug in Emacs that appears for certain terminal types.
|
|||
|
||||
@node Text Garbled
|
||||
@subsection Garbage in the Text
|
||||
@cindex garbled text
|
||||
@cindex buffer text garbled
|
||||
|
||||
If @kbd{C-l} shows that the text is wrong, first type @kbd{C-h l} to
|
||||
see what commands you typed to produce the observed results. Then try
|
||||
|
@ -348,6 +357,7 @@ enable them by running the shell command @samp{ulimit -c unlimited}
|
|||
|
||||
@node After a Crash
|
||||
@subsection Recovery After a Crash
|
||||
@cindex recovering crashed session
|
||||
|
||||
If Emacs or the computer crashes, you can recover the files you were
|
||||
editing at the time of the crash from their auto-save files. To do
|
||||
|
@ -394,6 +404,7 @@ not make a backup of its old contents.
|
|||
|
||||
@node Emergency Escape
|
||||
@subsection Emergency Escape
|
||||
@cindex emergency escape
|
||||
|
||||
On text terminals, the @dfn{emergency escape} feature suspends Emacs
|
||||
immediately if you type @kbd{C-g} a second time before Emacs can
|
||||
|
@ -528,6 +539,8 @@ not feel obliged to read this list before reporting a bug.
|
|||
|
||||
@node Bug Criteria
|
||||
@subsection When Is There a Bug
|
||||
@cindex bug criteria
|
||||
@cindex what constitutes an Emacs bug
|
||||
|
||||
If Emacs accesses an invalid memory location (``segmentation
|
||||
fault''), or exits with an operating system error message that
|
||||
|
@ -580,6 +593,8 @@ with the manual, one of them must be wrong; that is a bug.
|
|||
|
||||
@node Understanding Bug Reporting
|
||||
@subsection Understanding Bug Reporting
|
||||
@cindex bug reporting
|
||||
@cindex report an Emacs bug, how to
|
||||
|
||||
@findex emacs-version
|
||||
When you decide that there is a bug, it is important to report it
|
||||
|
@ -636,8 +651,8 @@ separate bug report for each.
|
|||
|
||||
@node Checklist
|
||||
@subsection Checklist for Bug Reports
|
||||
|
||||
@cindex reporting bugs
|
||||
@cindex checklist before reporting a bug
|
||||
@cindex bug reporting, checklist
|
||||
|
||||
Before reporting a bug, first try to see if the problem has already
|
||||
been reported (@pxref{Known Problems}).
|
||||
|
@ -1192,6 +1207,9 @@ file in the Emacs distribution.
|
|||
|
||||
@node Service
|
||||
@section How To Get Help with GNU Emacs
|
||||
@cindex help in using Emacs
|
||||
@cindex help-gnu-emacs mailing list
|
||||
@cindex gnu.emacs.help newsgroup
|
||||
|
||||
If you need help installing, using or changing GNU Emacs, there are two
|
||||
ways to find it:
|
||||
|
|
|
@ -1,3 +1,15 @@
|
|||
2014-05-04 Stephen Berman <stephen.berman@gmx.net>
|
||||
|
||||
* todo-mode.texi: Update, improve exposition, add cross
|
||||
references, fix typos.
|
||||
(Inserting New Items, Editing Item Headers and Text): Rewrite to
|
||||
document new user interface.
|
||||
|
||||
2014-05-04 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* autotype.texi (Skeleton Language):
|
||||
* message.texi (Header Commands): Replace `iff'.
|
||||
|
||||
2014-05-02 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* vhdl-mode.texi: Add "@documentencoding UTF-8",
|
||||
|
|
|
@ -241,10 +241,10 @@ put at these places. Point is left at first @code{_} where nothing is wrapped.
|
|||
Indent line according to major mode. When following element is @code{_}, and
|
||||
there is a interregion that will be wrapped here, indent that interregion.
|
||||
@item @code{&}
|
||||
Logical and. Iff preceding element moved point, i.e., usually inserted
|
||||
Logical and. If preceding element moved point, i.e., usually inserted
|
||||
something, do following element.
|
||||
@item @code{|}
|
||||
Logical xor. Iff preceding element didn't move point, i.e., usually inserted
|
||||
Logical xor. If preceding element didn't move point, i.e., usually inserted
|
||||
nothing, do following element.
|
||||
@item @code{-@var{number}}
|
||||
Delete preceding number characters. Depends on value of
|
||||
|
|
|
@ -748,9 +748,8 @@ by the @code{message-cross-post-note-function} variable.
|
|||
@item C-c C-f t
|
||||
@kindex C-c C-f t
|
||||
@findex message-reduce-to-to-cc
|
||||
Replace contents of @samp{To} header with contents of @samp{Cc} or
|
||||
@samp{Bcc} header. (Iff @samp{Cc} header is not present, @samp{Bcc}
|
||||
header will be used instead.)
|
||||
Replace contents of @samp{To} header with contents of @samp{Cc}
|
||||
header (or the @samp{Bcc} header, if there is no @samp{Cc} header).
|
||||
|
||||
@item C-c C-f w
|
||||
@kindex C-c C-f w
|
||||
|
|
|
@ -611,7 +611,7 @@ Emacs Lisp. It is an LALR parser suitable for complex languages.
|
|||
@c LocalWords: deffn deffnx defun defvar destructor's dfn diff dir
|
||||
@c LocalWords: doc docstring EDE EIEIO elisp emacsman emph enum
|
||||
@c LocalWords: eq Exp EXPANDFULL expression fn foo func funcall
|
||||
@c LocalWords: ia ids iff ifinfo imenu imenus init int isearch itemx java kbd
|
||||
@c LocalWords: ia ids ifinfo imenu imenus init int isearch itemx java kbd
|
||||
@c LocalWords: keymap keywordtable lang languagemode lexer lexing Ludlam
|
||||
@c LocalWords: menubar metaparent metaparents min minibuffer Misc mode's
|
||||
@c LocalWords: multitable NAvigaTOR noindent nomedian nonterm noselect
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,8 @@
|
|||
2014-05-04 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Handle systems without WCONTINUED consistently. (Bug#15110, 17339)
|
||||
* emacsclient.c (WCONTINUED): Move to ../src/syswait.h.
|
||||
|
||||
2014-04-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in ($(DESTDIR)${archlibdir}):
|
||||
|
|
|
@ -65,10 +65,6 @@ char *w32_getenv (char *);
|
|||
# define CLOSE_SOCKET close
|
||||
# define INITIALIZE()
|
||||
|
||||
# ifndef WCONTINUED
|
||||
# define WCONTINUED 8
|
||||
# endif
|
||||
|
||||
#define egetenv(VAR) getenv(VAR)
|
||||
|
||||
#endif /* !WINDOWSNT */
|
||||
|
|
|
@ -1,3 +1,97 @@
|
|||
2014-05-04 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* mail/rmailsum.el (rmail-new-summary-1): Fix a typo in a comment.
|
||||
|
||||
2014-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* vc/ediff-diff.el (ediff-set-fine-diff-properties-in-one-buffer):
|
||||
Use nil rather than `default' for the "default" appearance (bug#17388).
|
||||
* vc/ediff-util.el (ediff-inferior-compare-regions)
|
||||
(ediff-toggle-autorefine, ediff-unselect-difference): Don't use
|
||||
a misleading `default' value when it's really a boolean.
|
||||
* vc/ediff-init.el (ediff-set-overlay-face): Don't set help-echo if the
|
||||
overlay is not visible.
|
||||
|
||||
2014-05-04 Stephen Berman <stephen.berman@gmx.net>
|
||||
|
||||
* calendar/todo-mode.el (todo-edit-file): Use display-warning.
|
||||
(todo-menu): Uncomment and update.
|
||||
|
||||
2014-05-04 Stephen Berman <stephen.berman@gmx.net>
|
||||
|
||||
* calendar/todo-mode.el: Reimplement item editing to have the same
|
||||
basic user interface as item insertion, and make small UI and
|
||||
larger internal improvements to the latter.
|
||||
(todo-insert-item): Add reference to the Todo mode user manual to
|
||||
the documentation string.
|
||||
(todo-insert-item--basic): Rename from todo-basic-insert-item and
|
||||
adjust all callers. Change signature to combine diary and
|
||||
nonmarking arguments. Incorporate functionality of deleted item
|
||||
copying command and add error checking. Remove detailed
|
||||
descriptions of the arguments from the documentation string, since
|
||||
this is treated in the Todo mode user manual.
|
||||
(todo-copy-item, todo-edit-multiline-item)
|
||||
(todo-edit-done-item-comment, todo-edit-item-header)
|
||||
(todo-edit-item-time, todo-edit-item-date-from-calendar)
|
||||
(todo-edit-item-date-to-today, todo-edit-item-date-day-name)
|
||||
(todo-edit-item-date-year, todo-edit-item-date-month)
|
||||
(todo-edit-item-date-day, todo-edit-item-diary-nonmarking):
|
||||
Remove.
|
||||
(todo-edit-item): Reimplement as wrapper command for
|
||||
todo-edit-item--next-key and make it distinguish done and not done
|
||||
todo items.
|
||||
(todo-edit-item--text): New function, replacing old command
|
||||
todo-edit-item and incorporating deleted commands
|
||||
todo-edit-multiline-item and todo-edit-done-item-comment.
|
||||
(todo-edit-item--header): Rename from todo-basic-edit-item-header.
|
||||
Use only numeric value of prefix argument. Remove detailed
|
||||
descriptions of the arguments from the documentation string, since
|
||||
this is treated in the Todo mode user manual.
|
||||
(todo-edit-item--diary-inclusion): New function, replacing old
|
||||
command todo-edit-item-diary-inclusion and incorporating and fixing
|
||||
functionality of deleted command todo-edit-item-diary-nonmarking,
|
||||
making sure to remove todo-nondiary-marker when adding
|
||||
diary-nonmarking-symbol.
|
||||
(todo-edit-category-diary-inclusion): Make sure to delete
|
||||
diary-nonmarking-symbol when adding todo-nondiary-marker.
|
||||
(todo-edit-category-diary-nonmarking): Fix indentation.
|
||||
(todo-insert-item--parameters): Group diary and nonmarking
|
||||
parameters together.
|
||||
(todo-insert-item--apply-args): Adjust to signature of
|
||||
todo-insert-item--basic and incorporate copy parameter.
|
||||
Make small code improvements.
|
||||
(todo-insert-item--next-param): Improve prompt and adjust it to
|
||||
new parameter grouping. Remove obsolete code.
|
||||
(todo-edit-item--param-key-alist)
|
||||
(todo-edit-item--date-param-key-alist)
|
||||
(todo-edit-done-item--param-key-alist): New defconsts.
|
||||
(todo-edit-item--prompt): New variable.
|
||||
(todo-edit-item--next-key): New function.
|
||||
(todo-key-bindings-t): Bind "e" to todo-edit-item. Remove
|
||||
bindings of deleted commands.
|
||||
|
||||
2014-05-04 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* emacs-lisp/cl-macs.el (cl-deftype): Fix indentation.
|
||||
|
||||
2014-05-04 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* allout-widgets.el (allout-widgets-tally)
|
||||
(allout-decorate-item-guides):
|
||||
* menu-bar.el (menu-bar-positive-p):
|
||||
* minibuffer.el (completion-pcm-complete-word-inserts-delimiters):
|
||||
* progmodes/gdb-mi.el (gdbmi-same-start, gdbmi-is-number):
|
||||
* progmodes/js.el (js--inside-param-list-p)
|
||||
(js--inside-dojo-class-list-p, js--forward-destructuring-spec):
|
||||
* progmodes/prolog.el (region-exists-p):
|
||||
* progmodes/verilog-mode.el (verilog-scan-cache-ok-p):
|
||||
* textmodes/reftex-parse.el (reftex-using-biblatex-p):
|
||||
Doc fixes (replace `iff').
|
||||
|
||||
2014-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* mpc.el (mpc-volume-mouse-set): Don't burp at the boundaries.
|
||||
|
||||
2014-05-04 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
Support Chinese diary entries in calendar and diary. (Bug#17393)
|
||||
|
|
|
@ -266,7 +266,7 @@ decreases as obsolete widgets are garbage collected."
|
|||
(defvar allout-widgets-tally nil
|
||||
"Hash-table of existing allout widgets, for debugging.
|
||||
|
||||
Table is maintained iff `allout-widgets-maintain-tally' is non-nil.
|
||||
Table is maintained only if `allout-widgets-maintain-tally' is non-nil.
|
||||
|
||||
The table contents will be out of sync if any widgets are created
|
||||
or deleted while this variable is nil.")
|
||||
|
@ -1852,7 +1852,7 @@ In their absence, the current guide column flags are used.
|
|||
|
||||
Optional PARENT-WIDGET is the widget for the item's parent item.
|
||||
|
||||
Optional HAS-SUCCESSOR is true iff the item is followed by a sibling.
|
||||
Optional HAS-SUCCESSOR is true if the item is followed by a sibling.
|
||||
|
||||
We also hide the header-prefix string.
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,11 @@
|
|||
2014-05-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ede.el (ede-project-directories, ede-check-project-directory):
|
||||
* semantic/ia-sb.el (semantic-ia-sb-show-doc):
|
||||
* semantic/tag.el (semantic-tag-in-buffer-p):
|
||||
* semantic/bovine/c.el (semantic-tag-abstract-p):
|
||||
Doc fixes (replace `iff').
|
||||
|
||||
2014-04-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ede/emacs.el (ede-emacs-version): Update AC_INIT regexp. (Bug#17160)
|
||||
|
|
|
@ -100,7 +100,7 @@ target willing to take the file. 'never means never perform the check."
|
|||
If the value is t, EDE may search in any directory.
|
||||
|
||||
If the value is a function, EDE calls that function with one
|
||||
argument, the directory name; the function should return t iff
|
||||
argument, the directory name; the function should return t if
|
||||
EDE should look for project files in the directory.
|
||||
|
||||
Otherwise, the value should be a list of fully-expanded directory
|
||||
|
@ -704,7 +704,7 @@ Otherwise, create a new project for DIR."
|
|||
"Check if DIR should be in `ede-project-directories'.
|
||||
If it is not, try asking the user if it should be added; if so,
|
||||
add it and save `ede-project-directories' via Customize.
|
||||
Return nil iff DIR should not be in `ede-project-directories'."
|
||||
Return nil if DIR should not be in `ede-project-directories'."
|
||||
(setq dir (directory-file-name (expand-file-name dir))) ; strip trailing /
|
||||
(or (eq ede-project-directories t)
|
||||
(and (functionp ede-project-directories)
|
||||
|
|
|
@ -1594,7 +1594,7 @@ Optional PARENT and COLOR as specified with
|
|||
"Return non-nil if TAG is considered abstract.
|
||||
PARENT is tag's parent.
|
||||
In C, a method is abstract if it is `virtual', which is already
|
||||
handled. A class is abstract iff its destructor is virtual."
|
||||
handled. A class is abstract only if its destructor is virtual."
|
||||
(cond
|
||||
((eq (semantic-tag-class tag) 'type)
|
||||
(require 'semantic/find)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
;;; semantic/ia-sb.el --- Speedbar analysis display interactor
|
||||
|
||||
;;; Copyright (C) 2002-2004, 2006, 2008-2014 Free Software Foundation,
|
||||
;;; Inc.
|
||||
;;; Copyright (C) 2002-2004, 2006, 2008-2014 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Eric M. Ludlam <zappo@gnu.org>
|
||||
;; Keywords: syntax
|
||||
|
@ -139,7 +138,7 @@ DIRECTORY is the current directory, which is ignored, and ZERO is 0."
|
|||
)))
|
||||
|
||||
(defmethod semantic-ia-sb-show-doc ((context semantic-analyze-context))
|
||||
"Show documentation about CONTEXT iff CONTEXT points at a complete symbol."
|
||||
"Show documentation about CONTEXT if CONTEXT points at a complete symbol."
|
||||
(let ((sym (car (reverse (oref context prefix))))
|
||||
(doc nil))
|
||||
(when (semantic-tag-p sym)
|
||||
|
|
|
@ -172,7 +172,7 @@ That function is for internal use only."
|
|||
(semantic--tag-set-overlay tag (vector start end)))))
|
||||
|
||||
(defun semantic-tag-in-buffer-p (tag)
|
||||
"Return the buffer TAG resides in IFF tag is already in a buffer.
|
||||
"Return the buffer TAG resides in, if tag is already in a buffer.
|
||||
If a tag is not in a buffer, return nil."
|
||||
(let ((o (semantic-tag-overlay tag)))
|
||||
;; TAG is currently linked to a buffer, return it.
|
||||
|
|
|
@ -2928,7 +2928,7 @@ The function's arguments should be treated as immutable.
|
|||
(defmacro cl-deftype (name arglist &rest body)
|
||||
"Define NAME as a new data type.
|
||||
The type name can then be used in `cl-typecase', `cl-check-type', etc."
|
||||
(declare (debug cl-defmacro) (doc-string 3))
|
||||
(declare (debug cl-defmacro) (doc-string 3) (indent 2))
|
||||
`(cl-eval-when (compile load eval)
|
||||
(put ',name 'cl-deftype-handler
|
||||
(cl-function (lambda (&cl-defs '('*) ,@arglist) ,@body)))))
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2014-05-04 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* gnus-registry.el (gnus-registry-install-p): Doc fix.
|
||||
|
||||
2014-05-02 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* gnus-art.el (gnus-mime-inline-part): Redisplay a button so as to show
|
||||
|
|
|
@ -1125,9 +1125,9 @@ only the last one's marks are returned."
|
|||
(add-hook 'gnus-registry-unload-hook 'gnus-registry-unload-hook)
|
||||
|
||||
(defun gnus-registry-install-p ()
|
||||
"If the registry is not already enabled, and `gnus-registry-install' is t,
|
||||
the registry is enabled. If `gnus-registry-install' is `ask',
|
||||
the user is asked first. Returns non-nil iff the registry is enabled."
|
||||
"Return non-nil if the registry is enabled (and maybe enable it first).
|
||||
If the registry is not already enabled, then if `gnus-registry-install'
|
||||
is `ask', ask the user; or if `gnus-registry-install' is non-nil, enable it."
|
||||
(interactive)
|
||||
(unless gnus-registry-enabled
|
||||
(when (if (eq gnus-registry-install 'ask)
|
||||
|
|
|
@ -473,8 +473,8 @@ message."
|
|||
(widen)
|
||||
(goto-char (point-min))
|
||||
(while (>= total msgnum)
|
||||
;; Go back to the Rmail buffer so
|
||||
;; so FUNCTION and rmail-get-summary can see its local vars.
|
||||
;; Go back to the Rmail buffer so FUNCTION and
|
||||
;; rmail-get-summary can see its local vars.
|
||||
(with-current-buffer main-buffer
|
||||
;; First test whether to include this message.
|
||||
(if (or (null function)
|
||||
|
|
|
@ -922,7 +922,7 @@ by \"Save Options\" in Custom buffers.")
|
|||
(selected-frame)))
|
||||
|
||||
(defun menu-bar-positive-p (val)
|
||||
"Return non-nil iff VAL is a positive number."
|
||||
"Return non-nil if VAL is a positive number."
|
||||
(and (numberp val)
|
||||
(> val 0)))
|
||||
|
||||
|
|
|
@ -2773,7 +2773,7 @@ expression (not containing character ranges like `a-z')."
|
|||
|
||||
(defcustom completion-pcm-complete-word-inserts-delimiters nil
|
||||
"Treat the SPC or - inserted by `minibuffer-complete-word' as delimiters.
|
||||
Those chars are treated as delimiters iff this variable is non-nil.
|
||||
Those chars are treated as delimiters if this variable is non-nil.
|
||||
I.e. if non-nil, M-x SPC will just insert a \"-\" in the minibuffer, whereas
|
||||
if nil, it will list all possible commands in *Completions* because none of
|
||||
the commands start with a \"-\" or a SPC."
|
||||
|
|
11
lisp/mpc.el
11
lisp/mpc.el
|
@ -1811,9 +1811,14 @@ A value of t means the main playlist.")
|
|||
(char-after (posn-point posn))))
|
||||
'(?◁ ?<))
|
||||
(- mpc-volume-step) mpc-volume-step))
|
||||
(newvol (+ (string-to-number (cdr (assq 'volume mpc-status))) diff)))
|
||||
(mpc-proc-cmd (list "setvol" newvol) 'mpc-status-refresh)
|
||||
(message "Set MPD volume to %s%%" newvol)))
|
||||
(curvol (string-to-number (cdr (assq 'volume mpc-status))))
|
||||
(newvol (max 0 (min 100 (+ curvol diff)))))
|
||||
(if (= newvol curvol)
|
||||
(progn
|
||||
(message "MPD volume already at %s%%" newvol)
|
||||
(ding))
|
||||
(mpc-proc-cmd (list "setvol" newvol) 'mpc-status-refresh)
|
||||
(message "Set MPD volume to %s%%" newvol))))
|
||||
|
||||
(defun mpc-volume-widget (vol &optional size)
|
||||
(unless size (setq size 12.5))
|
||||
|
|
|
@ -1979,7 +1979,7 @@ OFFSET is the position in STR at which the comparison takes place."
|
|||
(string-equal match (substring str offset (+ offset match-length))))))
|
||||
|
||||
(defun gdbmi-same-start (str offset match)
|
||||
"Return non-nil iff STR and MATCH are equal up to the end of either strings.
|
||||
"Return non-nil if STR and MATCH are equal up to the end of either strings.
|
||||
OFFSET is the position in STR at which the comparison takes place."
|
||||
(let* ((str-length (- (length str) offset))
|
||||
(match-length (length match))
|
||||
|
@ -1989,7 +1989,7 @@ OFFSET is the position in STR at which the comparison takes place."
|
|||
(substring match 0 compare-length)))))
|
||||
|
||||
(defun gdbmi-is-number (character)
|
||||
"Return non-nil iff CHARACTER is a numerical character between 0 and 9."
|
||||
"Return non-nil if CHARACTER is a numerical character between 0 and 9."
|
||||
(and (>= character ?0)
|
||||
(<= character ?9)))
|
||||
|
||||
|
|
|
@ -1302,7 +1302,7 @@ LIMIT defaults to point."
|
|||
(up-list -1)))
|
||||
|
||||
(defun js--inside-param-list-p ()
|
||||
"Return non-nil iff point is in a function parameter list."
|
||||
"Return non-nil if point is in a function parameter list."
|
||||
(ignore-errors
|
||||
(save-excursion
|
||||
(js--up-nearby-list)
|
||||
|
@ -1313,7 +1313,7 @@ LIMIT defaults to point."
|
|||
(looking-at "function"))))))))
|
||||
|
||||
(defun js--inside-dojo-class-list-p ()
|
||||
"Return non-nil iff point is in a Dojo multiple-inheritance class block."
|
||||
"Return non-nil if point is in a Dojo multiple-inheritance class block."
|
||||
(ignore-errors
|
||||
(save-excursion
|
||||
(js--up-nearby-list)
|
||||
|
@ -1352,7 +1352,7 @@ REGEXPS, but only if FRAMEWORK is in `js-enabled-frameworks'."
|
|||
(defun js--forward-destructuring-spec (&optional func)
|
||||
"Move forward over a JavaScript destructuring spec.
|
||||
If FUNC is supplied, call it with no arguments before every
|
||||
variable name in the spec. Return true iff this was actually a
|
||||
variable name in the spec. Return true if this was actually a
|
||||
spec. FUNC must preserve the match data."
|
||||
(pcase (char-after)
|
||||
(?\[
|
||||
|
|
|
@ -3228,7 +3228,7 @@ PREFIX is the prefix of the search regexp."
|
|||
|
||||
(unless (fboundp 'region-exists-p)
|
||||
(defun region-exists-p ()
|
||||
"Non-nil iff the mark is set. Lobotomized version for Emacsen that do not provide their own."
|
||||
"Non-nil if the mark is set. Lobotomized version for Emacsen that do not provide their own."
|
||||
(mark)))
|
||||
|
||||
|
||||
|
|
|
@ -2361,7 +2361,7 @@ the value thus obtained, and the result is used instead."
|
|||
|
||||
;; I commented this out because nobody calls it -- rms.
|
||||
;;(defun sh-abbrevs (ancestor &rest list)
|
||||
;; "Iff it isn't, define the current shell as abbrev table and fill that.
|
||||
;; "If it isn't, define the current shell as abbrev table and fill that.
|
||||
;;Abbrev table will inherit all abbrevs from ANCESTOR, which is either an abbrev
|
||||
;;table or a list of (NAME1 EXPANSION1 ...). In addition it will define abbrevs
|
||||
;;according to the remaining arguments NAMEi EXPANSIONi ...
|
||||
|
|
|
@ -3160,7 +3160,7 @@ and `verilog-scan'.")
|
|||
(setq verilog-scan-cache-tick nil))
|
||||
|
||||
(defun verilog-scan-cache-ok-p ()
|
||||
"Return t iff the scan cache is up to date."
|
||||
"Return t if the scan cache is up to date."
|
||||
(or (and verilog-scan-cache-preserving
|
||||
(eq verilog-scan-cache-preserving (current-buffer))
|
||||
verilog-scan-cache-tick)
|
||||
|
|
|
@ -357,7 +357,7 @@ of master file."
|
|||
docstruct))
|
||||
|
||||
(defun reftex-using-biblatex-p ()
|
||||
"Return non-nil iff we are using biblatex rather than bibtex."
|
||||
"Return non-nil if we are using biblatex rather than bibtex."
|
||||
(if (boundp 'TeX-active-styles)
|
||||
;; the sophisticated AUCTeX way
|
||||
(member "biblatex" TeX-active-styles)
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2014-05-04 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* url-parse.el (url-generic-parse-url): Doc fix (replace `iff').
|
||||
|
||||
2014-04-01 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* url-tramp.el: New file.
|
||||
|
|
|
@ -125,7 +125,7 @@ TARGET is the fragment identifier component (used to refer to a
|
|||
ATTRIBUTES is nil; this slot originally stored the attribute and
|
||||
value alists for IMAP URIs, but this feature was removed
|
||||
since it conflicts with RFC 3986.
|
||||
FULLNESS is non-nil iff the hierarchical sequence component of
|
||||
FULLNESS is non-nil if the hierarchical sequence component of
|
||||
the URL starts with two slashes, \"//\".
|
||||
|
||||
The parser follows RFC 3986, except that it also tries to handle
|
||||
|
|
|
@ -818,10 +818,9 @@ one optional arguments, diff-number to refine.")
|
|||
n &optional default)
|
||||
(let ((fine-diff-vector (ediff-get-fine-diff-vector n buf-type))
|
||||
(face (if default
|
||||
'default
|
||||
nil
|
||||
(ediff-get-symbol-from-alist
|
||||
buf-type ediff-fine-diff-face-alist)
|
||||
)))
|
||||
buf-type ediff-fine-diff-face-alist))))
|
||||
(mapc (lambda (overl)
|
||||
(ediff-set-overlay-face overl face))
|
||||
fine-diff-vector)))
|
||||
|
|
|
@ -807,7 +807,7 @@ TYPE-OF-EMACS is either 'xemacs or 'emacs."
|
|||
|
||||
(defun ediff-set-overlay-face (extent face)
|
||||
(ediff-overlay-put extent 'face face)
|
||||
(ediff-overlay-put extent 'help-echo 'ediff-region-help-echo))
|
||||
(ediff-overlay-put extent 'help-echo (if face 'ediff-region-help-echo)))
|
||||
|
||||
(defun ediff-region-help-echo (extent-or-window &optional overlay _point)
|
||||
(unless overlay
|
||||
|
|
|
@ -958,7 +958,7 @@ On a dumb terminal, switches between ASCII highlighting and no highlighting."
|
|||
(message "Auto-refining is OFF")
|
||||
(setq ediff-auto-refine 'off))
|
||||
(t ;; nix 'em
|
||||
(ediff-set-fine-diff-properties ediff-current-difference 'default)
|
||||
(ediff-set-fine-diff-properties ediff-current-difference t)
|
||||
(message "Refinements are HIDDEN")
|
||||
(setq ediff-auto-refine 'nix))
|
||||
))
|
||||
|
@ -2973,7 +2973,7 @@ Hit \\[ediff-recenter] to reset the windows afterward."
|
|||
))
|
||||
|
||||
;; unhighlight fine diffs
|
||||
(ediff-set-fine-diff-properties ediff-current-difference 'default)
|
||||
(ediff-set-fine-diff-properties ediff-current-difference t)
|
||||
(run-hooks 'ediff-unselect-hook))))
|
||||
|
||||
|
||||
|
@ -3492,7 +3492,7 @@ Ediff Control Panel to restore highlighting."
|
|||
|
||||
(if (ediff-valid-difference-p ediff-current-difference)
|
||||
(progn
|
||||
(ediff-set-fine-diff-properties ediff-current-difference 'default)
|
||||
(ediff-set-fine-diff-properties ediff-current-difference t)
|
||||
(ediff-unhighlight-diff)))
|
||||
(ediff-paint-background-regions 'unhighlight)
|
||||
|
||||
|
|
|
@ -1,3 +1,54 @@
|
|||
2014-05-04 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Revert recent libpng changes (Bug#17339).
|
||||
* Makefile.in (PNG_CFLAGS): Remove; all uses removed.
|
||||
* image.c [HAVE_LIBPNG_PNG_H]: Include <libpng/png.h>, not <png.h>.
|
||||
|
||||
2014-05-03 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Handle systems without WCONTINUED consistently. (Bug#15110, 17339)
|
||||
* process.c (handle_child_signal): Remove WCONTINUED ifdef,
|
||||
because WCONTINUED is always defined now.
|
||||
* syswait.h (WCONTINUED): Move here from ../lib-src/emacsclient.c.
|
||||
|
||||
2014-05-03 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* buffer.c (overlay_strings): Fix the wording of the commentary.
|
||||
|
||||
2014-05-02 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Consult libpng-config more consistently (Bug#17339).
|
||||
* Makefile.in (PNG_CFLAGS): New var.
|
||||
(ALL_CFLAGS): Use it.
|
||||
* image.c [HAVE_PNG]: Don't worry about <libpng/png.h>, as
|
||||
CFLAGS now handles this.
|
||||
|
||||
2014-05-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* floatfns.c (Fisnan):
|
||||
* profiler.c (Fprofiler_cpu_running_p): Doc fix (replace `iff').
|
||||
|
||||
2014-05-01 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* term.c (tty_menu_activate): A better initialization for cursor
|
||||
coordinates.
|
||||
|
||||
2014-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* intervals.c: Tighten assertions.
|
||||
(create_root_interval): Make sure the interval is not empty.
|
||||
(intervals_equal): Use booleans.
|
||||
(rotate_right, rotate_left): Check LENGTHs rather than TOTAL_LENGTH.
|
||||
(balance_an_interval): Sanity check LENGTHs and TOTAL_LENGTHs.
|
||||
(balance_possible_root_interval): Simplify and use booleans.
|
||||
(split_interval_right, split_interval_left): Check LENGTH, and remove
|
||||
now redundant assertion.
|
||||
(adjust_intervals_for_insertion): Remove now redundant assertions.
|
||||
(delete_node, interval_deletion_adjustment)
|
||||
(adjust_intervals_for_deletion, merge_interval_right)
|
||||
(merge_interval_left): Check LENGTH rather than TOTAL_LENGTH.
|
||||
(reproduce_interval): Make sure the interval is not empty.
|
||||
|
||||
2014-04-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* term.c (tty_menu_activate): Don't assume row and col are initialized.
|
||||
|
|
21
src/buffer.c
21
src/buffer.c
|
@ -3328,17 +3328,18 @@ record_overlay_string (struct sortstrlist *ssl, Lisp_Object str,
|
|||
}
|
||||
}
|
||||
|
||||
/* Return the concatenation of the strings associated with overlays that
|
||||
begin or end at POS, ignoring overlays that are specific to a window
|
||||
other than W. The strings are concatenated in the appropriate order:
|
||||
shorter overlays nest inside longer ones, and higher priority inside
|
||||
lower. Normally all of the after-strings come first, but zero-sized
|
||||
overlays have their after-strings ride along with the before-strings
|
||||
because it would look strange to print them inside-out.
|
||||
/* Concatenate the strings associated with overlays that begin or end
|
||||
at POS, ignoring overlays that are specific to windows other than W.
|
||||
The strings are concatenated in the appropriate order: shorter
|
||||
overlays nest inside longer ones, and higher priority inside lower.
|
||||
Normally all of the after-strings come first, but zero-sized
|
||||
overlays have their after-strings ride along with the
|
||||
before-strings because it would look strange to print them
|
||||
inside-out.
|
||||
|
||||
Returns the string length, and stores the contents indirectly through
|
||||
PSTR, if that variable is non-null. The string may be overwritten by
|
||||
subsequent calls. */
|
||||
Returns the concatenated string's length, and return the pointer to
|
||||
that string via PSTR, if that variable is non-NULL. The storage of
|
||||
the concatenated strings may be overwritten by subsequent calls. */
|
||||
|
||||
ptrdiff_t
|
||||
overlay_strings (ptrdiff_t pos, struct window *w, unsigned char **pstr)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
/* Primitive operations on floating point for GNU Emacs Lisp interpreter.
|
||||
|
||||
Copyright (C) 1988, 1993-1994, 1999, 2001-2014 Free Software Foundation,
|
||||
Inc.
|
||||
Copyright (C) 1988, 1993-1994, 1999, 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
Author: Wolfgang Rupprecht
|
||||
(according to ack.texi)
|
||||
|
@ -142,7 +141,7 @@ DEFUN ("tan", Ftan, Stan, 1, 1, 0,
|
|||
}
|
||||
|
||||
DEFUN ("isnan", Fisnan, Sisnan, 1, 1, 0,
|
||||
doc: /* Return non nil iff argument X is a NaN. */)
|
||||
doc: /* Return non nil if argument X is a NaN. */)
|
||||
(Lisp_Object x)
|
||||
{
|
||||
CHECK_FLOAT (x);
|
||||
|
|
|
@ -110,13 +110,14 @@ create_root_interval (Lisp_Object parent)
|
|||
set_string_intervals (parent, new);
|
||||
new->position = 0;
|
||||
}
|
||||
|
||||
eassert (LENGTH (new) > 0);
|
||||
|
||||
set_interval_object (new, parent);
|
||||
|
||||
return new;
|
||||
}
|
||||
|
||||
/* Make the interval TARGET have exactly the properties of SOURCE */
|
||||
/* Make the interval TARGET have exactly the properties of SOURCE. */
|
||||
|
||||
void
|
||||
copy_properties (register INTERVAL source, register INTERVAL target)
|
||||
|
@ -176,10 +177,10 @@ intervals_equal (INTERVAL i0, INTERVAL i1)
|
|||
Lisp_Object i1_cdr, i1_val;
|
||||
|
||||
if (DEFAULT_INTERVAL_P (i0) && DEFAULT_INTERVAL_P (i1))
|
||||
return 1;
|
||||
return true;
|
||||
|
||||
if (DEFAULT_INTERVAL_P (i0) || DEFAULT_INTERVAL_P (i1))
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
i0_cdr = i0->plist;
|
||||
i1_cdr = i1->plist;
|
||||
|
@ -188,31 +189,31 @@ intervals_equal (INTERVAL i0, INTERVAL i1)
|
|||
i0_sym = XCAR (i0_cdr);
|
||||
i0_cdr = XCDR (i0_cdr);
|
||||
if (!CONSP (i0_cdr))
|
||||
return 0;
|
||||
return false;
|
||||
i1_val = i1->plist;
|
||||
while (CONSP (i1_val) && !EQ (XCAR (i1_val), i0_sym))
|
||||
{
|
||||
i1_val = XCDR (i1_val);
|
||||
if (!CONSP (i1_val))
|
||||
return 0;
|
||||
return false;
|
||||
i1_val = XCDR (i1_val);
|
||||
}
|
||||
|
||||
/* i0 has something i1 doesn't. */
|
||||
if (EQ (i1_val, Qnil))
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
/* i0 and i1 both have sym, but it has different values in each. */
|
||||
if (!CONSP (i1_val)
|
||||
|| (i1_val = XCDR (i1_val), !CONSP (i1_val))
|
||||
|| !EQ (XCAR (i1_val), XCAR (i0_cdr)))
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
i0_cdr = XCDR (i0_cdr);
|
||||
|
||||
i1_cdr = XCDR (i1_cdr);
|
||||
if (!CONSP (i1_cdr))
|
||||
return 0;
|
||||
return false;
|
||||
i1_cdr = XCDR (i1_cdr);
|
||||
}
|
||||
|
||||
|
@ -339,10 +340,8 @@ rotate_right (INTERVAL A)
|
|||
ptrdiff_t old_total = A->total_length;
|
||||
|
||||
eassert (old_total > 0);
|
||||
eassert (old_total
|
||||
> TOTAL_LENGTH (B) + TOTAL_LENGTH (A->right));
|
||||
eassert (TOTAL_LENGTH (B)
|
||||
> TOTAL_LENGTH (B->left) + TOTAL_LENGTH (c));
|
||||
eassert (LENGTH (A) > 0);
|
||||
eassert (LENGTH (B) > 0);
|
||||
|
||||
/* Deal with any Parent of A; make it point to B. */
|
||||
if (! ROOT_INTERVAL_P (A))
|
||||
|
@ -366,9 +365,11 @@ rotate_right (INTERVAL A)
|
|||
/* A's total length is decreased by the length of B and its left child. */
|
||||
A->total_length -= B->total_length - TOTAL_LENGTH (c);
|
||||
eassert (TOTAL_LENGTH (A) > 0);
|
||||
eassert (LENGTH (A) > 0);
|
||||
|
||||
/* B must have the same total length of A. */
|
||||
B->total_length = old_total;
|
||||
eassert (LENGTH (B) > 0);
|
||||
|
||||
return B;
|
||||
}
|
||||
|
@ -390,10 +391,8 @@ rotate_left (INTERVAL A)
|
|||
ptrdiff_t old_total = A->total_length;
|
||||
|
||||
eassert (old_total > 0);
|
||||
eassert (old_total
|
||||
> TOTAL_LENGTH (B) + TOTAL_LENGTH (A->left));
|
||||
eassert (TOTAL_LENGTH (B)
|
||||
> TOTAL_LENGTH (B->right) + TOTAL_LENGTH (c));
|
||||
eassert (LENGTH (A) > 0);
|
||||
eassert (LENGTH (B) > 0);
|
||||
|
||||
/* Deal with any parent of A; make it point to B. */
|
||||
if (! ROOT_INTERVAL_P (A))
|
||||
|
@ -417,9 +416,11 @@ rotate_left (INTERVAL A)
|
|||
/* A's total length is decreased by the length of B and its right child. */
|
||||
A->total_length -= B->total_length - TOTAL_LENGTH (c);
|
||||
eassert (TOTAL_LENGTH (A) > 0);
|
||||
eassert (LENGTH (A) > 0);
|
||||
|
||||
/* B must have the same total length of A. */
|
||||
B->total_length = old_total;
|
||||
eassert (LENGTH (B) > 0);
|
||||
|
||||
return B;
|
||||
}
|
||||
|
@ -432,6 +433,9 @@ balance_an_interval (INTERVAL i)
|
|||
{
|
||||
register ptrdiff_t old_diff, new_diff;
|
||||
|
||||
eassert (LENGTH (i) > 0);
|
||||
eassert (TOTAL_LENGTH (i) >= LENGTH (i));
|
||||
|
||||
while (1)
|
||||
{
|
||||
old_diff = LEFT_TOTAL_LENGTH (i) - RIGHT_TOTAL_LENGTH (i);
|
||||
|
@ -468,16 +472,16 @@ static INTERVAL
|
|||
balance_possible_root_interval (INTERVAL interval)
|
||||
{
|
||||
Lisp_Object parent;
|
||||
bool have_parent = 0;
|
||||
|
||||
if (!INTERVAL_HAS_OBJECT (interval) && !INTERVAL_HAS_PARENT (interval))
|
||||
return interval;
|
||||
bool have_parent = false;
|
||||
|
||||
if (INTERVAL_HAS_OBJECT (interval))
|
||||
{
|
||||
have_parent = 1;
|
||||
have_parent = true;
|
||||
GET_INTERVAL_OBJECT (parent, interval);
|
||||
}
|
||||
else if (!INTERVAL_HAS_PARENT (interval))
|
||||
return interval;
|
||||
|
||||
interval = balance_an_interval (interval);
|
||||
|
||||
if (have_parent)
|
||||
|
@ -553,7 +557,7 @@ split_interval_right (INTERVAL interval, ptrdiff_t offset)
|
|||
{
|
||||
set_interval_right (interval, new);
|
||||
new->total_length = new_length;
|
||||
eassert (TOTAL_LENGTH (new) >= 0);
|
||||
eassert (LENGTH (new) > 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -562,7 +566,6 @@ split_interval_right (INTERVAL interval, ptrdiff_t offset)
|
|||
set_interval_parent (interval->right, new);
|
||||
set_interval_right (interval, new);
|
||||
new->total_length = new_length + new->right->total_length;
|
||||
eassert (TOTAL_LENGTH (new) >= 0);
|
||||
balance_an_interval (new);
|
||||
}
|
||||
|
||||
|
@ -598,7 +601,7 @@ split_interval_left (INTERVAL interval, ptrdiff_t offset)
|
|||
{
|
||||
set_interval_left (interval, new);
|
||||
new->total_length = new_length;
|
||||
eassert (TOTAL_LENGTH (new) >= 0);
|
||||
eassert (LENGTH (new) > 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -607,7 +610,6 @@ split_interval_left (INTERVAL interval, ptrdiff_t offset)
|
|||
set_interval_parent (new->left, new);
|
||||
set_interval_left (interval, new);
|
||||
new->total_length = new_length + new->left->total_length;
|
||||
eassert (TOTAL_LENGTH (new) >= 0);
|
||||
balance_an_interval (new);
|
||||
}
|
||||
|
||||
|
@ -791,12 +793,12 @@ update_interval (register INTERVAL i, ptrdiff_t pos)
|
|||
{
|
||||
if (pos < i->position)
|
||||
{
|
||||
/* Move left. */
|
||||
/* Move left. */
|
||||
if (pos >= i->position - TOTAL_LENGTH (i->left))
|
||||
{
|
||||
i->left->position = i->position - TOTAL_LENGTH (i->left)
|
||||
+ LEFT_TOTAL_LENGTH (i->left);
|
||||
i = i->left; /* Move to the left child */
|
||||
i = i->left; /* Move to the left child. */
|
||||
}
|
||||
else if (NULL_PARENT (i))
|
||||
error ("Point before start of properties");
|
||||
|
@ -806,12 +808,12 @@ update_interval (register INTERVAL i, ptrdiff_t pos)
|
|||
}
|
||||
else if (pos >= INTERVAL_LAST_POS (i))
|
||||
{
|
||||
/* Move right. */
|
||||
/* Move right. */
|
||||
if (pos < INTERVAL_LAST_POS (i) + TOTAL_LENGTH (i->right))
|
||||
{
|
||||
i->right->position = INTERVAL_LAST_POS (i)
|
||||
+ LEFT_TOTAL_LENGTH (i->right);
|
||||
i = i->right; /* Move to the right child */
|
||||
i = i->right; /* Move to the right child. */
|
||||
}
|
||||
else if (NULL_PARENT (i))
|
||||
error ("Point %"pD"d after end of properties", pos);
|
||||
|
@ -958,7 +960,6 @@ adjust_intervals_for_insertion (INTERVAL tree,
|
|||
for (temp = prev ? prev : i; temp; temp = INTERVAL_PARENT_OR_NULL (temp))
|
||||
{
|
||||
temp->total_length += length;
|
||||
eassert (TOTAL_LENGTH (temp) >= 0);
|
||||
temp = balance_possible_root_interval (temp);
|
||||
}
|
||||
|
||||
|
@ -1014,7 +1015,6 @@ adjust_intervals_for_insertion (INTERVAL tree,
|
|||
for (temp = i; temp; temp = INTERVAL_PARENT_OR_NULL (temp))
|
||||
{
|
||||
temp->total_length += length;
|
||||
eassert (TOTAL_LENGTH (temp) >= 0);
|
||||
temp = balance_possible_root_interval (temp);
|
||||
}
|
||||
}
|
||||
|
@ -1216,9 +1216,10 @@ delete_node (register INTERVAL i)
|
|||
this = this->left;
|
||||
this->total_length += migrate_amt;
|
||||
}
|
||||
eassert (TOTAL_LENGTH (this) >= 0);
|
||||
set_interval_left (this, migrate);
|
||||
set_interval_parent (migrate, this);
|
||||
eassert (LENGTH (this) > 0);
|
||||
eassert (LENGTH (i->right) > 0);
|
||||
|
||||
return i->right;
|
||||
}
|
||||
|
@ -1298,7 +1299,7 @@ interval_deletion_adjustment (register INTERVAL tree, register ptrdiff_t from,
|
|||
relative_position,
|
||||
amount);
|
||||
tree->total_length -= subtract;
|
||||
eassert (TOTAL_LENGTH (tree) >= 0);
|
||||
eassert (LENGTH (tree) > 0);
|
||||
return subtract;
|
||||
}
|
||||
/* Right branch. */
|
||||
|
@ -1313,7 +1314,7 @@ interval_deletion_adjustment (register INTERVAL tree, register ptrdiff_t from,
|
|||
relative_position,
|
||||
amount);
|
||||
tree->total_length -= subtract;
|
||||
eassert (TOTAL_LENGTH (tree) >= 0);
|
||||
eassert (LENGTH (tree) > 0);
|
||||
return subtract;
|
||||
}
|
||||
/* Here -- this node. */
|
||||
|
@ -1328,7 +1329,7 @@ interval_deletion_adjustment (register INTERVAL tree, register ptrdiff_t from,
|
|||
amount = my_amount;
|
||||
|
||||
tree->total_length -= amount;
|
||||
eassert (TOTAL_LENGTH (tree) >= 0);
|
||||
eassert (LENGTH (tree) >= 0);
|
||||
if (LENGTH (tree) == 0)
|
||||
delete_interval (tree);
|
||||
|
||||
|
@ -1370,7 +1371,7 @@ adjust_intervals_for_deletion (struct buffer *buffer,
|
|||
if (ONLY_INTERVAL_P (tree))
|
||||
{
|
||||
tree->total_length -= length;
|
||||
eassert (TOTAL_LENGTH (tree) >= 0);
|
||||
eassert (LENGTH (tree) > 0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1430,12 +1431,12 @@ merge_interval_right (register INTERVAL i)
|
|||
while (! NULL_LEFT_CHILD (successor))
|
||||
{
|
||||
successor->total_length += absorb;
|
||||
eassert (TOTAL_LENGTH (successor) >= 0);
|
||||
eassert (LENGTH (successor) > 0);
|
||||
successor = successor->left;
|
||||
}
|
||||
|
||||
successor->total_length += absorb;
|
||||
eassert (TOTAL_LENGTH (successor) >= 0);
|
||||
eassert (LENGTH (successor) > 0);
|
||||
delete_interval (i);
|
||||
return successor;
|
||||
}
|
||||
|
@ -1457,7 +1458,7 @@ merge_interval_right (register INTERVAL i)
|
|||
|
||||
successor = INTERVAL_PARENT (successor);
|
||||
successor->total_length -= absorb;
|
||||
eassert (TOTAL_LENGTH (successor) >= 0);
|
||||
eassert (LENGTH (successor) > 0);
|
||||
}
|
||||
|
||||
/* This must be the rightmost or last interval and cannot
|
||||
|
@ -1486,12 +1487,12 @@ merge_interval_left (register INTERVAL i)
|
|||
while (! NULL_RIGHT_CHILD (predecessor))
|
||||
{
|
||||
predecessor->total_length += absorb;
|
||||
eassert (TOTAL_LENGTH (predecessor) >= 0);
|
||||
eassert (LENGTH (predecessor) > 0);
|
||||
predecessor = predecessor->right;
|
||||
}
|
||||
|
||||
predecessor->total_length += absorb;
|
||||
eassert (TOTAL_LENGTH (predecessor) >= 0);
|
||||
eassert (LENGTH (predecessor) > 0);
|
||||
delete_interval (i);
|
||||
return predecessor;
|
||||
}
|
||||
|
@ -1513,7 +1514,7 @@ merge_interval_left (register INTERVAL i)
|
|||
|
||||
predecessor = INTERVAL_PARENT (predecessor);
|
||||
predecessor->total_length -= absorb;
|
||||
eassert (TOTAL_LENGTH (predecessor) >= 0);
|
||||
eassert (LENGTH (predecessor) > 0);
|
||||
}
|
||||
|
||||
/* This must be the leftmost or first interval and cannot
|
||||
|
@ -1528,6 +1529,8 @@ reproduce_interval (INTERVAL source)
|
|||
{
|
||||
register INTERVAL target = make_interval ();
|
||||
|
||||
eassert (LENGTH (source) > 0);
|
||||
|
||||
target->total_length = source->total_length;
|
||||
target->position = source->position;
|
||||
|
||||
|
@ -1538,6 +1541,7 @@ reproduce_interval (INTERVAL source)
|
|||
if (! NULL_RIGHT_CHILD (source))
|
||||
set_interval_right (target, reproduce_tree (source->right, target));
|
||||
|
||||
eassert (LENGTH (target) > 0);
|
||||
return target;
|
||||
}
|
||||
|
||||
|
@ -1766,7 +1770,7 @@ lookup_char_property (Lisp_Object plist, Lisp_Object prop, bool textprop)
|
|||
|
||||
if (! NILP (fallback))
|
||||
return fallback;
|
||||
/* Check for alternative properties */
|
||||
/* Check for alternative properties. */
|
||||
tail = Fassq (prop, Vchar_property_alias_alist);
|
||||
if (! NILP (tail))
|
||||
{
|
||||
|
@ -2434,7 +2438,7 @@ set_intervals_multibyte_1 (INTERVAL i, bool multi_flag,
|
|||
end, end_byte);
|
||||
}
|
||||
|
||||
/* Rounding to char boundaries can theoretically ake this interval
|
||||
/* Rounding to char boundaries can theoretically make this interval
|
||||
spurious. If so, delete one child, and copy its property list
|
||||
to this interval. */
|
||||
if (LEFT_TOTAL_LENGTH (i) + RIGHT_TOTAL_LENGTH (i) >= TOTAL_LENGTH (i))
|
||||
|
|
|
@ -6226,11 +6226,7 @@ handle_child_signal (int sig)
|
|||
int status;
|
||||
|
||||
if (p->alive
|
||||
#ifndef WCONTINUED
|
||||
&& child_status_changed (p->pid, &status, WUNTRACED))
|
||||
#else
|
||||
&& child_status_changed (p->pid, &status, WUNTRACED | WCONTINUED))
|
||||
#endif
|
||||
&& child_status_changed (p->pid, &status, WUNTRACED | WCONTINUED))
|
||||
{
|
||||
/* Change the status of the process that was found. */
|
||||
p->tick = ++process_tick;
|
||||
|
|
|
@ -384,7 +384,7 @@ Return non-nil if the profiler was running. */)
|
|||
DEFUN ("profiler-cpu-running-p",
|
||||
Fprofiler_cpu_running_p, Sprofiler_cpu_running_p,
|
||||
0, 0, 0,
|
||||
doc: /* Return non-nil iff cpu profiler is running. */)
|
||||
doc: /* Return non-nil if cpu profiler is running. */)
|
||||
(void)
|
||||
{
|
||||
return profiler_cpu_running ? Qt : Qnil;
|
||||
|
|
|
@ -29,6 +29,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
#include <sys/wait.h>
|
||||
#endif /* !HAVE_SYS_WAIT_H */
|
||||
|
||||
#ifndef WCONTINUED
|
||||
#define WCONTINUED 8
|
||||
#endif
|
||||
|
||||
#ifndef WCOREDUMP /* not POSIX */
|
||||
#define WCOREDUMP(status) ((status) & 0x80)
|
||||
#endif
|
||||
|
|
|
@ -3267,7 +3267,10 @@ tty_menu_activate (tty_menu *menu, int *pane, int *selidx,
|
|||
|
||||
/* Turn off the cursor. Otherwise it shows through the menu
|
||||
panes, which is ugly. */
|
||||
col = cursorX (tty);
|
||||
row = cursorY (tty);
|
||||
tty_hide_cursor (tty);
|
||||
|
||||
if (buffers_num_deleted)
|
||||
menu->text[0][7] = ' ';
|
||||
onepane = menu->count == 1 && menu->submenu[0];
|
||||
|
@ -3405,8 +3408,6 @@ tty_menu_activate (tty_menu *menu, int *pane, int *selidx,
|
|||
col = cursorX (tty);
|
||||
row = cursorY (tty);
|
||||
}
|
||||
else
|
||||
row = -1;
|
||||
|
||||
/* Display the help-echo message for the currently-selected menu
|
||||
item. */
|
||||
|
@ -3418,8 +3419,7 @@ tty_menu_activate (tty_menu *menu, int *pane, int *selidx,
|
|||
/* Move the cursor to the beginning of the current menu
|
||||
item, so that screen readers and other accessibility aids
|
||||
know where the active region is. */
|
||||
if (0 <= row)
|
||||
cursor_to (sf, row, col);
|
||||
cursor_to (sf, row, col);
|
||||
tty_hide_cursor (tty);
|
||||
fflush (tty->output);
|
||||
prev_menu_help_message = menu_help_message;
|
||||
|
|
Loading…
Add table
Reference in a new issue