Paul Eggert [Sat, 11 Apr 2015 02:12:16 +0000 (19:12 -0700)]
port commit-msg to Gawk 3.0.4 (1999)
* build-aux/git-hooks/commit-msg (cent_sign_utf8_format, cent_sign)
(print_at_sign, at_sign): New vars. Use them to avoid problems
Eli Zaretskii encountered with Gawk 3.0.4 (1999) on MSYS. See:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00566.html
Paul Eggert [Sat, 11 Apr 2015 02:12:16 +0000 (19:12 -0700)]
Have commit-msg report commit failure
* build-aux/git-hooks/commit-msg: If the commit is aborted,
say so. Simplify by doing this at the end. Problem reported
by Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00566.html
Add facility to collect stderr of async subprocess
* src/w32.h (register_aux_fd): New function declaration.
* src/w32.c (register_aux_fd): New function.
* src/process.h (struct Lisp_Process): New member stderrproc.
* src/process.c (PIPECONN_P): New macro.
(PIPECONN1_P): New macro.
(Fdelete_process, Fprocess_status, Fset_process_buffer)
(Fset_process_filter, Fset_process_sentinel, Fstop_process)
(Fcontinue_process): Handle pipe process specially.
(create_process): Respect p->stderrproc.
(Fmake_pipe_process): New function.
(Fmake_process): Add new keyword argument :stderr.
(wait_reading_process_output): Specially handle a pipe process when
it gets an EOF.
(syms_of_process): Register Qpipe and Smake_pipe_process.
* doc/lispref/processes.texi (Asynchronous Processes): Document
`make-pipe-process' and `:stderr' keyword of `make-process'.
* lisp/subr.el (start-process): Suggest to use `make-process' handle
standard error separately.
* test/automated/process-tests.el (process-test-stderr-buffer)
(process-test-stderr-filter): New tests.
* etc/NEWS: Mention new process type `pipe' and its usage with the
`:stderr' keyword of `make-process'.
Eli Zaretskii [Fri, 10 Apr 2015 10:09:42 +0000 (13:09 +0300)]
Fix 'recenter' when visual-line-mode is turned on
* src/window.c (Frecenter): Use the same code for GUI and TTY
frames alike; use vmotion only for "initial" frames. This is
because vmotion doesn't support visual-line-mode. Rewrite the
'iarg >= 0' case to use move_it_* functions instead of using
vmotion, for the same reason. Fix the clipping of the argument
value to support scroll-margin in all cases and avoid unwarranted
recentering. Reported by Milan Stanojević <milanst@gmail.com> in
http://lists.gnu.org/archive/html/help-gnu-emacs/2015-04/msg00092.html,
which see.
Stefan Monnier [Fri, 10 Apr 2015 04:17:19 +0000 (00:17 -0400)]
* lisp/cedet/semantic: Remove some dead code
* lisp/cedet/semantic/util-modes.el
(semantic-stickyfunc-header-line-format): Emacs<22 is not supported
any more.
* lisp/cedet/semantic/fw.el (semantic-buffer-local-value): Emacs<21 is
not supported any more.
(semantic-safe): Use `declare'.
* lisp/cedet/semantic/decorate.el (semantic-set-tag-intangible)
(semantic-tag-intangible-p): Remove unused functions.
* lisp/cedet/semantic/complete.el (semantic-displayor-window-edges):
Remove unused function.
(gnus-article-hide-text, gnus-article-unhide-text)
(gnus-article-unhide-text-type): Remove special handling of
`intangible' since that property is not used any more.
(gnus-article-treat-body-boundary): Use gnus-hidden-properties.
Paul Eggert [Thu, 9 Apr 2015 16:50:48 +0000 (09:50 -0700)]
gitlog-to-changelog coding cookie and mv -i
* build-aux/gitlog-to-emacslog: Use ChangeLog.1, not Makefile.in,
for copyright notice prototype, so that we get a proper "coding:"
cookie. Use 'mv -i' to avoid unconditionally overwriting an
existing ChangeLog. Problems reported by Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00504.html
Stefan Monnier [Thu, 9 Apr 2015 15:01:04 +0000 (11:01 -0400)]
Stop messing with the EMACS env var
Fixes: debbugs:20202
* lisp/net/tramp-sh.el (tramp-remote-process-environment):
* lisp/comint.el (comint-exec-1):
* lisp/term.el (term-exec-1): Don't set EMACS envvar.
* lisp/progmodes/compile.el (compilation-start): Same and bring
INSIDE_EMACS's format in line with other users.
Fixes: debbugs:19755
Thanks to Carlos Pita <carlosjosepita@gmail.com> for reporting
this and providing useful ideas.
* lisp/progmodes/python.el
(python-shell-completion-native-output-timeout): Increase value.
(python-shell-completion-native-try-output-timeout): New var.
(python-shell-completion-native-try): Use it.
(python-shell-completion-native-setup): New readline setup avoids
polluting current context, ensures output when no-completions are
available and includes output end marker.
(python-shell-completion-native-get-completions): Trigger with one
tab only. Call accept-process-output until output end is found or
python-shell-completion-native-output-timeout is exceeded.
* lisp/eshell: Make backslash a no-op in front of normal chars
Fixes: debbugs:8531
* lisp/eshell/esh-arg.el (eshell-parse-argument-hook): Update comment.
(eshell-parse-backslash): Return escaped character after backslash
if it is special. Otherwise, if the backslash is not in a quoted
string, ignore the backslash and return the character after; if
the backslash is in a quoted string, return the backslash and the
character after.
* test/automated/eshell.el (eshell-test/escape-nonspecial)
(eshell-test/escape-nonspecial-unicode)
(eshell-test/escape-nonspecial-quoted)
(eshell-test/escape-special-quoted): Add tests for new
`eshell-parse-backslash' behavior.
Artur Malabarba [Tue, 7 Apr 2015 17:59:40 +0000 (18:59 +0100)]
* lisp/emacs-lisp/package.el: More conservative `ensure-init-file'
(package--ensure-init-file): Check file contents before visiting.
(package-initialize): Call it.
(package-install-from-buffer, package-install): Don't call it.
* doc/misc/eshell.texi (Input/Output): Add notice that some tools
such as git call less with its -F option which omits pagination if
the contents is less than one page long. This interferes with
eshell's visual (sub-)commands.
Ivan Shmakov [Tue, 7 Apr 2015 17:42:28 +0000 (17:42 +0000)]
Update etc/PROBLEMS.
* etc/PROBLEMS: Mention visible-cursor; a few more mentions of
~/.Xresources and xrdb(1); refer to 'GNU Coreutils' and
'X Window System' or 'X' (were: 'GNU Fileutils' and 'X Windows',
respectively); other minor updates and tweaks. (Bug#20011)
Alan Mackenzie [Tue, 7 Apr 2015 11:01:43 +0000 (11:01 +0000)]
Always mark "<" and ">" in #include directives with text properties.
* lisp/progmodes/c-fonts.el (c-cpp-matchers): Replace a font-lock "anchored
matcher" with an invocation of c-make-font-lock-search-function to allow
fontification when there's no trailing space on an "#include <..>" line.
Paul Eggert [Tue, 7 Apr 2015 07:00:55 +0000 (00:00 -0700)]
Generate a ChangeLog file from commit logs
* .gitignore: Add 'ChangeLog'.
* build-aux/gitlog-to-changelog: New file, from Gnulib.
* build-aux/gitlog-to-emacslog: New file.
* CONTRIBUTE: Document the revised workflow.
* Makefile.in (clean): Remove *.tmp and etc/*.tmp*
instead of just special cases.
(CHANGELOG_HISTORY_INDEX_MAX, CHANGELOG_N, gen_origin): New vars.
(ChangeLog, unchanged-history-files, change-history)
(change-history-commit): New rules.
* admin/admin.el (make-manuals-dist--1):
Don't worry about doc/ChangeLog.
* admin/authors.el: Add a FIXME.
* admin/make-tarball.txt:
* lisp/calendar/icalendar.el:
* lisp/gnus/deuglify.el:
* lisp/obsolete/gulp.el:
* lwlib/README:
Adjust to renamed ChangeLog history files.
* admin/merge-gnulib (GNULIB_MODULES): Add gitlog-to-changelog.
* admin/notes/repo: Call it 'master' a la Git, not 'trunk' a la Bzr.
Remove obsolete discussion of merging ChangeLog files.
New section "Maintaining ChangeLog history".
* build-aux/git-hooks/pre-commit:
Reject attempts to commit files named 'ChangeLog'.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* make-dist: Make and distribute top-level ChangeLog if there's a
.git directory. Distribute the new ChangeLog history files
instead of scattered ChangeLog files. Distribute the new files
gitlog-to-changelog and gitlog-to-emacslog. Fixes: bug#19113
Alan Mackenzie [Mon, 6 Apr 2015 22:20:16 +0000 (22:20 +0000)]
Fix miscellaneous glitches in cc-mode.el. Fixes debbugs#20245.
* progmodes/cc-mode.el (c-common-init): bind
\(before\|after\)-change-functions to nil around invocations of
c-get-state-before-change-functions and
c-before-font-lock-functions to prevent recursive invocations.
(c-neutralize-syntax-in-and-mark-CPP): On c-beginning-of-macro,
check that point has actually moved back.
(c-fl-decl-start): Check whether c-beginning-of-decl-1 has
actually found a boundary (as contrasted with hitting a search
limit).
Artur Malabarba [Mon, 6 Apr 2015 16:05:53 +0000 (17:05 +0100)]
* emacs-lisp/package.el: Make the execute prompt less verbose.
(package-menu--list-to-prompt): New function.
(package-menu--prompt-transaction-p): Use "Upgrade" to make the
package-menu-execute prompt less verbose.
Artur Malabarba [Sun, 5 Apr 2015 22:39:43 +0000 (23:39 +0100)]
emacs-lisp/package.el (package-menu-execute): Add async support
Most install/delete logic is now in
`package-menu--perform-transaction', and this function is called
asynchronously if `package-menu-async' is non-nil.
python.el: Enhance docstring detection following PEP-257.
* lisp/progmodes/python.el (python-docstring-at-p): Remove function.
(python-info-assignment-statement-p): New function.
(python-info-assignment-continuation-line-p): Use it.
(python-info-docstring-p): New function.
(python-font-lock-syntactic-face-function)
(python-fill-string): Use it.
Alan Mackenzie [Sun, 5 Apr 2015 12:41:45 +0000 (12:41 +0000)]
Rationalize use of c[ad]+r, expunging cl-c[ad]\{3,4\}r.
Also expunge eudc-c[ad]+r.
* subr.el (internal--compiler-macro-cXXr): "New" function, copied
from cl--compiler-macro-cXXr.
(caar, cadr, cdar, cddr): Change from defsubsts to defuns with
the above compiler-macro.
* emacs-lisp/cl.el (Top level dolist doing defaliases): Remove
caaar, etc., from list of new alias functions.
* emacs-lisp/cl-lib.el (cl-caaar, etc): Rename to caaar, etc.
(gen-cXXr--rawname, gen-cXXr-all-cl-aliases): New function/macro
which generate obsolete cl- aliases for caaar, etc. Invoke them.
* mail/rmail.el (rmail-show-message-1): When displaying a mime message,
indicate start and finish in the echo area.
* mail/rmail.el (rmail-epa-decrypt): Disregard <pre> before armor.
Ignore more kinds of whitespace in mime headers.
Modify the decrypted mime part's mime type so it will be displayed
by default when visiting this message again.
Paul Eggert [Fri, 3 Apr 2015 20:05:23 +0000 (13:05 -0700)]
Port 'configure' to clang 3.5
* configure.ac: Add -Wno-unknown-attributes if clang; otherwise
clang 3.5.0 (Fedora 21 x86-64) complains
"/usr/include/glib-2.0/glib/gmem.h: ... warning: unknown attribute
'__alloc_size__' ignored". Use -Werror when checking for -nopie;
otherwise clang warns about -nopie instead of failing, and then
later it warns everytime the build uses -nopie.