Paul Eggert [Sun, 23 Oct 2016 09:50:48 +0000 (02:50 -0700)]
Merge from origin/emacs-25
50fa7d6 ;* src/w32heap.c: Fix typo and wording of the comments. 6f1325e electric-quote mode no longer worries about coding c2a1792 * src/regex.c (re_search_2): Make new code safe for -Wjump-mi... f6134bb Port to GCC 6.2.1 + --enable-gcc-warnings b2ba630 Explain how to debug emacsclient lisp errors 9da53e2 Let describe-function work for lambda again 5c2da93 Fix kill-line's docstring ad66b3f Fix handling of allocation in regex matching 5a26c9b * lisp/electric.el (electric-quote-mode): Improve doc (Bug#24... 3877c91 vc-region-history: Search just on lines intersecting the region 8988327 Fix documentation of 'alist-get' b6998ea * src/regex.h (re_match_object): Improve commentary.
Paul Eggert [Sun, 23 Oct 2016 09:43:17 +0000 (02:43 -0700)]
Merge from origin/emacs-25
b73f466 * lisp/cus-start.el (exec-path): Handle nil elements. (Bug#2... 55ebb70 Catch the imenu-unavailable error in sh-mode completion table 993acb5 ; Minor fix for last change in characters.el 30c4bb5 More char-width fixes 4eb4463 Fix char-width-table values for some Emoji 528997d Keep point when switching from and to *terminal* buffer 2130005 * INSTALL: Use correct Emacs release number 25. 10835b1 Avoid crashes due to objects read with the #n=object form 4de671d Improve doc string of 'completion-at-point-functions' ceb46f0 Fix crash in evaluating functions d8374c4 * src/filelock.c (current_lock_owner): Update comment.
Paul Eggert [Sun, 23 Oct 2016 09:43:16 +0000 (02:43 -0700)]
Merge from origin/emacs-25
2deb20c Port last_marked change to full-program optimizers 27eb668 Adapt GDB scripts to '--enable-check-lisp-object-type' builds dac64e3 Avoid optimizing out the last_marked[] array
Paul Eggert [Sun, 23 Oct 2016 04:12:54 +0000 (21:12 -0700)]
Port to GCC 6.2.1 + --enable-gcc-warnings
* src/regex.c (ENSURE_FAIL_STACK, re_search_2):
Redo recent regex changes to avoid complaints from GCC 6.2.1 when
Emacs is configured with --enable-gcc-warnings. Also, work around
GCC bug 78081, which was uncovered by this new code.
Jorgen Schaefer [Sat, 22 Oct 2016 11:07:32 +0000 (13:07 +0200)]
Autoload all commands from misc.el
Only two of the commands there were autoloaded, one of which is an
easter egg.
* lisp/miscl.el (copy-from-above-command):
* lisp/miscl.el (zap-up-to-char):
* lisp/miscl.el (mark-beginning-of-buffer):
* lisp/miscl.el (mark-end-of-buffer):
* lisp/miscl.el (upcase-char):
* lisp/miscl.el (forward-to-word):
* lisp/miscl.el (backward-to-word):
Add autoload cookie.
Noam Postavsky [Mon, 3 Oct 2016 22:49:56 +0000 (18:49 -0400)]
Let describe-function work for lambda again
Since commit "* lisp/help-fns.el (describe-function): More type
checking[...]", `describe-function' throws a user-error when given a
non-symbol. This prevents the [back] button in a *Help* buffer from
working when the page it goes back to describes an anonymous
function (e.g., the result of `describe-key' on a key which is bound to
a lambda form).
* lisp/help-fns.el (describe-function): Move the checks on FUNCTION
being an fbound symbol into the `interactive' form. This allows
non-interactive calls to pass an anonymous function (Bug #24221). Note
that passing a non-bound symbol non-interactively will still trigger a
`void-function' error from `describe-function-1'.
Noam Postavsky [Thu, 20 Oct 2016 00:23:50 +0000 (20:23 -0400)]
Fix handling of allocation in regex matching
`re_match_2_internal' uses pointers to the lisp objects that it
searches. Since it may call malloc when growing the "fail stack", these
pointers may be invalidated while searching, resulting in memory
curruption (Bug #24358).
To fix this, we check the pointer that the lisp object (as specified by
re_match_object) points to before and after growing the stack, and
update existing pointers accordingly.
* src/regex.c (STR_BASE_PTR): New macro.
(ENSURE_FAIL_STACK, re_search_2): Use it to convert pointers into
offsets before possible malloc call, and back into pointers again
afterwards.
(POS_AS_IN_BUFFER): Add explanatory comment about punning trick.
* src/search.c (search_buffer): Instead of storing search location as
pointers, store them as pointers and recompute the corresponding address
for each call to `re_search_2'.
(string_match_1, fast_string_match_internal, fast_looking_at):
* src/dired.c (directory_files_internal): Set `re_match_object' to Qnil
after calling `re_search' or `re_match_2'.
* src/regex.h (re_match_object): Mention new usage in commentary.
Paul Eggert [Fri, 21 Oct 2016 20:04:02 +0000 (13:04 -0700)]
New error file-missing
This fixes a recently-introduced bug in delete-directory,
where the code assumes the C locale when determining
whether a file-error corresponds to a missing file (Bug#24714).
* doc/lispref/errors.texi (Standard Errors):
* doc/lispref/files.texi (Changing Files):
* etc/NEWS:
Document this.
* doc/lispref/loading.texi (How Programs Do Loading):
Say "a file-error" rather than "the error file-error" since
it might be a file-missing now.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
* lisp/epa-file.el (epa-file--find-file-not-found-function):
(epa-file-insert-file-contents, epa-file-write-region):
* lisp/ffap.el (find-file-at-point, dired-at-point):
* lisp/jka-compr.el (jka-compr-insert-file-contents)
(jka-compr-insert-file-contents):
* lisp/net/ange-ftp.el (ange-ftp-barf-if-not-directory)
(ange-ftp-insert-file-contents, ange-ftp-copy-file-internal):
* lisp/progmodes/etags.el (visit-tags-table):
* lisp/url/url-handlers.el (url-copy-file):
* src/fileio.c (report_file_errno):
Signal file-missing if appropriate.
* lisp/epa-file.el (epa-file-insert-file-contents):
* lisp/jka-compr.el (jka-compr-insert-file-contents):
Don't assume file-error is a leaf in the error hierarchy.
* lisp/files.el (files--force):
* lisp/gnus/nnmaildir.el (nnmaildir--enoent-p):
* lisp/jka-compr.el (jka-compr-insert-file-contents):
Use file-missing to detect whether the file is missing.
* lisp/url/url-handlers.el (url-copy-file):
Signal file-already-exists if appropriate.
* src/fileio.c (syms_of_fileio): Define file-missing.
Mark Oteiza [Fri, 21 Oct 2016 15:23:39 +0000 (11:23 -0400)]
Teach browse-url to open man page urls
* lisp/net/browse-url.el (browse-url-man-function): New custom option.
(browse-url): Add a condition to catch links matching "^man:".
(browse-url-man): New function.
Eli Zaretskii [Fri, 21 Oct 2016 09:59:58 +0000 (12:59 +0300)]
Improve fontification of footnote references in Info buffers
* lisp/info.el (Info-fontify-node): Don't fontify random numbers
in parentheses as if they were footnote references. See
https://lists.gnu.org/archive/html/bug-texinfo/2016-10/msg00007.html
for the details.
Tino Calancha [Thu, 20 Oct 2016 10:51:55 +0000 (19:51 +0900)]
cl-seq: Remove max limit on input sequence length
* lisp/emacs-lisp/cl-seq.el (cl-fill, cl-replace, cl-delete)
(cl--position, cl-nsubstitute, cl-substitute, cl-remove):
Remove limit on maximum length for the input sequence
(#Bug24264).
* test/lisp/emacs-lisp/cl-seq-tests.el: Update test expected result as passed.
Mark Oteiza [Thu, 20 Oct 2016 03:59:04 +0000 (23:59 -0400)]
Derive dig-mode from special-mode
* lisp/net/dig.el: Remove unused cl dependency. Remove top level
mode-class assignment.
(dig-mode-map): Unmap g, as dig has no notion of reverting the buffer.
(dig-mode): Derive from special-mode.
(dig-exit): Use quit-window instead.
(dig): Use pop-to-buffer-same-window. Remove redundant assignments.
(query-dig): Use pop-to-buffer-same-window.
Eli Zaretskii [Wed, 19 Oct 2016 18:10:31 +0000 (21:10 +0300)]
Fix documentation of 'alist-get'
* doc/lispref/lists.texi (Association Lists): Fix the signature of
'alist-get'. Fix the markup, the wording, and the punctuation in
the description. (Bug#24740)
Mark Oteiza [Tue, 18 Oct 2016 22:05:51 +0000 (18:05 -0400)]
Add an option for eshell-input-filter
* etc/NEWS: Document changes.
* lisp/eshell/em-hist.el (eshell-input-filter): Set value to function
symbol. Change type to a radio for choosing functions. Refer to both
new functions.
(eshell-input-filter-default): New function. Same body as the previous
value of eshell-input-filter.
(eshell-input-filter-initial-space): New function.
Paul Eggert [Tue, 18 Oct 2016 16:36:03 +0000 (09:36 -0700)]
delete-directory no longer errors when racing
Problem reported by Glenn Morris for package-test.el (Bug#24714).
* doc/lispref/files.texi (Create/Delete Dirs), etc/NEWS: Document this.
* lisp/files.el (files--force): New function.
(delete-directory): Use it to avoid error in this case.
Yuri Khan [Tue, 18 Oct 2016 06:42:54 +0000 (09:42 +0300)]
Support Shift selection in nxml-mode commands
* lisp/nxml/nxml-mode.el (nxml-forward-balanced-item)
(nxml-up-element, nxml-backward-up-element, nxml-down-element)
(nxml-backward-down-element, nxml-forward-element)
(nxml-backward-element, nxml-forward-paragraph)
(nxml-backward-paragraph): Use "^p" as the interactive spec, to
support shift-selection.
Mark Oteiza [Tue, 18 Oct 2016 05:53:22 +0000 (01:53 -0400)]
Simplify some loops and cons
* lisp/net/mailcap.el: Replace cl with cl-lib.
(mailcap--get-user-mime-data, mailcap--set-user-mime-data):
(mailcap-parse-mailcaps, mailcap-parse-mailcap-extras):
(mailcap-possible-viewers): Use push and dolist where possible.
(mailcap-viewer-passes-test): Remove unused binding.
(mailcap-add-mailcap-entry): Use push.
(mailcap-mime-info): Remove unused binding. Use push.
(mailcap-parse-mimetypes): Use dolist.
Göktuğ Kayaalp [Tue, 18 Oct 2016 00:01:58 +0000 (03:01 +0300)]
Fix display of vc-dir CVS file statuses in subdirectories
* lisp/vc/vc-cvs.el (vc-cvs-dir-status-files): Use 'cvs update'
instead of 'cvs status'. It's faster, easier to parse, and
relieves us of the need to use vc-expand-dirs. (Bug#24082)
(vc-cvs-after-dir-status): Parse its output.
Mark Oteiza [Mon, 17 Oct 2016 18:31:31 +0000 (14:31 -0400)]
Turn on lexical-binding in auth-source
* lisp/auth-source.el: Turn on lexical-binding.
(auth-source-netrc-parse, auth-source-netrc-normalize):
(auth-source-token-passphrase-callback-function):
(auth-source-netrc-create, auth-source-secrets-search):
(auth-source-macos-keychain-search-items):
(auth-source-plstore-search): Use let instead of lexical-let.
Martin Rudalics [Mon, 17 Oct 2016 08:52:01 +0000 (10:52 +0200)]
Fix frame focus redirection with shared minibuffer windows (Bug#24500)
* src/frame.c (do_switch_frame): Redirect frame focus also when
the frame switched to has its minibuffer window on the selected
frame.
* src/window.c (candidate_window_p): To qualify as candidate
it's not sufficient for the window's frame to just share the
minibuffer window - it must be active as well.
Eli Zaretskii [Mon, 17 Oct 2016 07:25:58 +0000 (10:25 +0300)]
Fix time-related data types in 2 editfns.c functions
* src/editfns.c (format_time_string, Fcurrent_time_zone): Pass a
pointer to time_t value to emacs_localtime_rz and gmtime_r,
instead of relying on struct timespec's tv_sec member to be of
compatible type.
Eli Zaretskii [Mon, 17 Oct 2016 07:19:34 +0000 (10:19 +0300)]
Fix time-related data types in 2 editfns.c functions
* src/editfns.c (format_time_string, Fcurrent_time_zone): Pass a
pointer to 'time_t' value to 'emacs_localtime_rz' and 'gmtime_r',
instead of relying on struct timespec's 'tv_sec' member to be of
compatible type.
Martin Rudalics [Mon, 17 Oct 2016 06:57:24 +0000 (08:57 +0200)]
Document atomic windows in Elisp manual (Bug#18170)
* lisp/window.el (display-buffer-in-atom-window): If no `side'
alist entry was specified, use `below' as the doc tells.
* doc/lispref/elisp.texi (Atomic Windows): Add menu entry.
* doc/lispref/windows.texi (Atomic Windows): New section.
(Window Parameters): Update reference.
Paul Eggert [Sun, 16 Oct 2016 23:25:47 +0000 (16:25 -0700)]
Port to Ubuntu 16.10, which needs gcc -nopie
* configure.ac (emacs_cv_prog_cc_no_pie): Rename from
emacs_cv_prog_cc_nopie. All usages changed. Check for -no-pie in
preference to -nopie (Bug#24682). Backport from master.
Paul Eggert [Mon, 17 Oct 2016 01:48:19 +0000 (18:48 -0700)]
New face homoglyph
Suggested by Eli Zaretskii, from a feature request by
Alan Mackenzie (Bug#24468).
* doc/emacs/display.texi (Standard Faces, Text Display):
* etc/NEWS: Document this.
* etc/themes/dichromacy-theme.el, etc/themes/leuven-theme.el:
* etc/themes/light-blue-theme.el, etc/themes/manoj-dark-theme.el:
* etc/themes/tango-dark-theme.el, etc/themes/tango-theme.el:
* etc/themes/wombat-theme.el:
Customize homoglyph to be the same as escape-glyph.
* lisp/cus-theme.el (custom-theme--listed-faces):
Add homoglyph.
* lisp/faces.el (homoglyph): New face.
* lisp/startup.el (startup--setup-quote-display): Use it.
Paul Eggert [Sun, 16 Oct 2016 23:25:47 +0000 (16:25 -0700)]
Port to Ubuntu 16.10, which needs gcc -nopie
* configure.ac (emacs_cv_prog_cc_no_pie): Rename from
emacs_cv_prog_cc_nopie. All usages changed. Check for -no-pie in
preference to -nopie (Bug#24682).
Sam Steingold [Sun, 16 Oct 2016 03:14:48 +0000 (23:14 -0400)]
Save and restore buffer-display-time
* desktop.el (desktop-locals-to-save): Add `buffer-display-time'
(desktop-read): Set `desktop-file-modtime' before loading the desktop file
(desktop-create-buffer): Adjust `buffer-display-time' for the downtime
Philipp Stephani [Sat, 15 Oct 2016 13:19:56 +0000 (15:19 +0200)]
Disable bracketed paste in a terminal in char mode
In char mode, a terminal doesn't accept bracketed paste events,
therefore we should disable them; see Bug#24639. To decouple the XTerm
management from term.el, introduce a per-buffer setting to disable
bracketed paste for that buffer. If bracketed paste is inhiited for at
least one buffer in a terminal, it is disabled for the whole terminal.
* term/xterm.el (xterm-inhibit-bracketed-paste-mode): New mode to
inhibit XTerm bracketed paste per buffer.
(xterm--buffer-terminals, xterm--update-bracketed-paste)
(xterm--bracketed-paste-possible, xterm--is-xterm): New helper
functions.
(xterm--init-bracketed-paste-mode): Remove unused helper
function.
(terminal-init-xterm): Update bracketed paste status when
initializing an XTerm and on window configuration change.
Eli Zaretskii [Sat, 15 Oct 2016 13:53:36 +0000 (16:53 +0300)]
Keep point when switching from and to *terminal* buffer
* lisp/term.el (term-reset-size): Don't reset the size if it
didn't change. If the size did change, restore point after
adjusting the size. (Bug#24465)
Simen Heggestøyl [Sat, 15 Oct 2016 09:23:26 +0000 (11:23 +0200)]
Add tests for foreign completions in CSS mode
* test/lisp/textmodes/css-mode-tests.el
(css-test-foreign-completions): New test for
`css--foreign-completions'.
(css-test-complete-selector-tag): Rename test.
(css-test-complete-selector-class): New test testing completion of
class names in selectors.
(css-test-complete-selector-id): New test testing completion of IDs in
selectors.
Eli Zaretskii [Fri, 14 Oct 2016 19:52:46 +0000 (22:52 +0300)]
Avoid crashes due to objects read with the #n=object form
* src/lread.c (read1): Use Fcons for 'placeholder', not AUTO_CONS,
because elements of the list in 'read_objects' cannot be allocated
off the stack. (Bug#24640)
Fix problem with submitting binary data via HTTP forms
* lisp/gnus/mm-url.el (mm-url-encode-multipart-form-data):
Document the parameters, clean up the code, and make uploading
binary data really work (which it didn't if the binary bits
were in the last part of the data).
Mark Oteiza [Thu, 13 Oct 2016 18:29:32 +0000 (14:29 -0400)]
Derive Man and WoMan modes from special-mode
* lisp/man.el (Man-mode-map): Set parent to map composed from both
button-buffer-map and special-mode-map. Remove redundant bindings.
Fix menu to refer to the quit-window command.
(Man-mode): Derive from special-mode. Fix docstring. Remove redundant
buffer-read-only binding.
(Man-quit): Remove.
* lisp/woman.el (woman-really-find-file): Use setq-local.
(woman-mode-map): Refer to woman-mode in docstring.
(woman-mode): Derive from special-mode. Document woman-mode-map in
docstring. Use setq-local where possible; imenu-generic-expression is
already buffer-local.
(woman-negative-vertical-space): Replace unused binding with _.
Paul Eggert [Wed, 12 Oct 2016 16:16:31 +0000 (09:16 -0700)]
Port --enable-gcc-warnings to GCC 6.2.1
Backport from master.
* src/conf_post.h (GNUC_PREREQ): New macro.
* src/keyboard.c: Use it to work around GCC bug 54561.
* src/process.c (would_block): New function.
(server_accept_connection, wait_reading_process_output, send_process):
Use it.
Paul Eggert [Wed, 12 Oct 2016 16:01:03 +0000 (09:01 -0700)]
Work around Samba bug with ':' in symlink contents
* src/filelock.c (current_lock_owner): When reading the contents
of a lock, treat the UTF-8 for U+F022 as if it were ':' (Bug#24656).
Backport from master.
Eli Zaretskii [Wed, 12 Oct 2016 08:59:53 +0000 (11:59 +0300)]
Adapt GDB scripts to '--enable-check-lisp-object-type' builds
* etc/emacs-buffer.gdb <$qnil>: New variable.
(ybuffer-list, yset-buffer): Use $qnil for comparing against
'nil', as direct comparison with Qnil doesn't work in a build with
'--enable-check-lisp-object-type'.
* src/.gdbinit: Adapt commands of the temporary breakpoint in
init_sys_modes to a build with '--enable-check-lisp-object-type'.
Eli Zaretskii [Mon, 10 Oct 2016 16:22:40 +0000 (19:22 +0300)]
Fix compilation warnings on MS-Windows
* src/w32.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Remove
definitions of these macros, which seem to be unneeded and cause
compiler warnings.
* src/fileio.c (NOMINMAX): Avoid compiler warnings about unused
macros.
* src/firstfile.c (dummy_main_reference): Rename from 'dummy' and
make it external, to avoid compiler warning.
Paul Eggert [Mon, 10 Oct 2016 14:39:05 +0000 (07:39 -0700)]
Merge from origin/emacs-25
4f406e9 CC Mode manual: remove reference to former Emacs variable las... 44e402e Allow to disable compaction of font caches 4ff4b66 Allow selection of font for symbols as in Emacs 24.x c03d44b ; Fix last commit d4be4f3 ; Fix indexing in lispref manual ed399f2 ; Minor improvement in documentation of generators 197a6bc Fix horizontal scrolling during Isearch 3566644 Fix infloop in redisplay due to truncated lines and invisible...
Paul Eggert [Mon, 10 Oct 2016 14:35:33 +0000 (07:35 -0700)]
; Merge from origin/emacs-25
The following commits were skipped:
a6e0a67 gitmerge: Add cherry pick to gitmerge-skip-regexp fb12af2 ; Merge: some backports from master 6234012 Don't require isearch-update before isearch-done 5e50114 Avoid error in icalendar--read-element ace9d22 Make a menu less ambiguous e683495 Doc fix for url-http