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.
Alan Mackenzie [Wed, 1 Apr 2015 19:12:07 +0000 (19:12 +0000)]
Fix the CC Mode fixes from 2015-03-30. Fixes debbugs#20240.
* progmodes/cc-mode.el (c-extend-after-change-region): Widen before
applying text properties.
* progmodes/cc-langs.el (c-before-font-lock-functions): Update an entry
to a new function name.
Artur Malabarba [Wed, 1 Apr 2015 10:09:00 +0000 (11:09 +0100)]
* emacs-lisp/package.el: Make package-menu asynchronous.
(package-menu-async): New variable. Controls whether
`list-packages' is asynchronous.
(list-packages): Now asynchronous by default.
(package-menu--new-package-list): Always buffer-local.
(package-menu--post-refresh)
(package-menu--find-and-notify-upgrades)
(package-menu--populate-new-package-list): New functions.
(package--with-work-buffer-async)
(package--check-signature-content)
(package--update-downloads-in-progress): New functions.
(package--check-signature, package--download-one-archive)
(package--download-and-read-archives, package-refresh-contents):
Optional arguments for async usage.
(package--post-download-archives-hook): New variable. Hook run
after every refresh.
Stefan Monnier [Tue, 31 Mar 2015 01:33:20 +0000 (21:33 -0400)]
Let jit-lock know the result of font-lock-extend-region-functions.
* lisp/jit-lock.el (jit-lock--run-functions): New function.
(jit-lock-fontify-now): Use it. Handle fontification bounds more
precisely in case the backend functions fontify more than requested.
Don't round up to whole lines since that shouldn't be needed
any more.
* lisp/font-lock.el (font-lock-fontify-region-function): Adjust docstring.
(font-lock-inhibit-thing-lock): Make obsolete.
(font-lock-default-fontify-region): Return the bounds actually used.