src/xdisp.c (face_at_pos): Removed code to that modified
it->start_of_box_run_p and it->face_box_p. This function should not
modify it.
(handle_face_prop): Added code to update it->start_of_box_run_p and
it->face_box_p.
(underlying_face_id): Input IT made CONST.
* src/xdisp.c (append_space_for_newline): Modified to add the space
with the last face also in terminal interface.
(fill_column_indicator_column): Modified to group more conditions.
(extend_face_to_end_of_line): Simplified code in
fill_column_indicator to use the new function.
* src/xdisp.c (extend_face_to_end_of_line): Added a call to
handle_face_prop_general to extend face after EOL according to
parameter :extend in the faces.
* src/xdisp.c (handle_face_prop_general): New function to specialize
handle_face_prop with ATTR_FILTER.
* src/dispextern.h (face_at_buffer_position): Added
LFACE_ATTRIBUTE_INDEX.
* src/xfaces.c (merge_face_ref): Added LFACE_ATTRIBUTE_INDEX to merge
conditionally.
* src/dispextern.h (enum face_underline_type): Add FACE_NO_UNDERLINE = 0.
(struct face): Merge `underline_type` and `underline_p` into `underline`.
Update all the occurrences in src/xdisp.c, src/xfaces.c, and src/xterm.c.
Hong Xu [Mon, 14 Oct 2019 04:46:47 +0000 (06:46 +0200)]
Make url-hexify-string accept a list of allowed chars (bug#26469)
* lisp/url/url-util.el (url-hexify-string): Accept a list of allowed
chars.
* doc/misc/url.texi (URI Encoding): Update url-hexify-string doc and
index improvements (bug#24694).
Juri Linkov [Sun, 13 Oct 2019 22:00:38 +0000 (01:00 +0300)]
Don't display the number of windows in tab name in tab-bar by default.
* lisp/tab-bar.el (tab-bar-tab-name-function): Change the default value.
(tab-bar-tab-name-current): Rename from tab-bar-tab-name-selected-window.
(tab-bar-tab-name-current-with-count): New function.
(tab-bar-tab-name-all): Rename from tab-bar-tab-name-all-windows.
Juri Linkov [Sun, 13 Oct 2019 20:47:33 +0000 (23:47 +0300)]
Fix initial value of frame-inhibit-implied-resize
* src/frame.c (syms_of_frame): Update doc string and default value of
frame-inhibit-implied-resize in NS to not include 'tab-bar-lines,
and non-toolkit X builds to include 'tab-bar-lines.
* lisp/progmodes/compile.el (compilation-next-error-function):
Don't bug out with an incomprehensible error message on "make[2]:"
texts (bug#5316).
(compilation-find-file): Protect against there being no file name.
Add a new action in save-some-buffers to view the buffer
* doc/emacs/files.texi (Save Commands): Document it.
* lisp/files.el (save-some-buffers-action-alist): Offer to pop to
the buffer and then quit (bug#3625).
(save-some-buffers): Implement it.
(save-some-buffers--switch-window-callback): New variable.
Correctly explain test failures with mixed uni/multibyte strings
* lisp/emacs-lisp/ert.el (ert--explain-equal-rec):
* test/lisp/emacs-lisp/ert-tests.el (ert-test-explain-equal):
When explaining a difference between a unibyte and a multibyte string,
first convert both to multibyte. Otherwise, we might end up comparing
unibyte char C to multibyte char C, 127<C<256, and not detect the
difference (bug#30219).
* doc/lispref/nonascii.texi (Specifying Coding Systems): Don't use
'&rest' in conjunction with 'body...' in arglist of
with-coding-priority. Fix typo and cross-referencing (2-arg @pxref
adds a trailing period).
Stephen Gildea [Sun, 13 Oct 2019 14:58:55 +0000 (07:58 -0700)]
Minor tweaks to time-stamp documentation strings
* time-stamp.el (time-stamp): Reformat the explanation of the
variables that affect time-stamp, for easier reading. In particular,
wrap the documentation to 75 characters, so that it displays neatly as
a before-save-hook customization option.
* time-stamp-tests.el (with-time-stamp-test-env): Use imperative voice,
per checkdoc.
Alan Mackenzie [Sun, 13 Oct 2019 13:15:35 +0000 (13:15 +0000)]
In compilation-tear-down-arrow-spec-in-margin, test compilation-arrow-overlay
* lisp/progmodes/compile.el (compilation-tear-down-arrow-spec-in-margin): Make
sure compilation-arrow-overlay is an overlay before performing overlay
operations on it. This fixes bug #37733.
Make diff-mode understand git-format-patch separators
* lisp/vc/diff-mode.el (diff-prev-line-if-patch-separator):
A function to return prev. line if it has git-format-patch
separator.
(diff-end-of-hunk): Make use of
diff-prev-line-if-patch-separator
diff-buffer-type: whether a buffer is a git-diff
(define-derived-mode): set diff-buffer-type to appropriate
value (bug#37395).
* lisp/subr.el (read-password--hide-password): Factor out (bug#17127).
(read-passwd): Use it in post-command-hook instead of
after-change-functions to ensure that we hide the password no
matter what inserts text.
* src/keymap.c (copy_keymap_1): Factor out and refuse to recurse
infinitely (bug#7496).
(Fcopy_keymap): ... from here.
(copy_keymap_item): Pass on the depth parameter.
Make Fadd_face_text_property even less destructive
* src/textprop.c (Fadd_face_text_property): We need to be
non-destructive in buffers, too, because face properties may have
been added with `put-text-property' as a list that's been reused.
Jiajie Chen [Sat, 12 Oct 2019 19:47:47 +0000 (21:47 +0200)]
button-* function doc string clarifications
* lisp/button.el (button-start, button-end, button-get)
(button-put, button-label): Have the doc string mention that they
have to be called from the current buffer (bug#23909).
* lisp/progmodes/compile.el (compilation-error-properties): Fix
thinko in compilation-transform-file-match-alist feature -- `file'
isn't a list of files after all.
* lisp/progmodes/cc-langs.el (c-string-innards-re-alist): Remove redundant
"\\|\r" from regular expression.
* lisp/progmodes/cc-mode.el (c-make-mode-syntax-table): Correct the name of
the hook normal-erase-is-backspace-MODE-hook from a non-existant hook name.
Paul Eggert [Sat, 12 Oct 2019 01:23:47 +0000 (18:23 -0700)]
Update from Gnulib
This incorporates:
2019-10-11 Simplify and regularize regex use of ‘assert’
2019-10-09 regex: omit debug assignment when not debugging
2019-10-09 regex: tell compiler there’s at most 256 arcs out
2019-10-09 regex: simplify by assuming C99
2019-10-09 regex: avoid copying of uninitialized storage
2019-09-29 fbufmode: Fix compilation error on glibc >= 2.28 systems
2019-09-28 Update comments that refer to POSIX
2019-09-23 Update URLs and associated text
* doc/misc/texinfo.tex, lib/open.c, lib/regcomp.c:
* lib/regex_internal.c, lib/regex_internal.h, lib/regexec.c:
* lib/stdio-impl.h:
Copy from Gnulib.
* lisp/help-mode.el (help-function-def--button-function): Factor
out into own function for easier reuse.
(help-function-def): ... from the lambda here.
* lisp/progmodes/sh-script.el (sh--maybe-here-document): Require a
space before expanding a heredoc (bug#3226). This allows the user
to insert a bash <<< "herestring", which was previously difficult.
Alan Mackenzie [Fri, 11 Oct 2019 19:10:11 +0000 (19:10 +0000)]
C++ Mode: Correctly handle <:, <::, <::>, etc, according to the C++ standard
* lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Perform
checking now on an insertion, should point be inside a critical token.
(c-forward-<>-arglist-recur, c-guess-continued-construct): Check for <::, etc.
* lisp/progmodes/cc-langs.el (c-<-pseudo-digraph-cont-regexp)
(c-<-pseudo-digraph-cont-len): New lang variables/constants.
(map--into-hash): New function, extracted from `map-into <hash-table>`.
Speed it up a bit by using gethash instead of map-elt when we know
we're accessing a hash table.
Stefan Kangas [Fri, 11 Oct 2019 13:59:42 +0000 (15:59 +0200)]
Remove reference to obsolete package gnuserv from FAQ
On visiting http://meltin.net/hacks/emacs/, we now find:
"I used to have some Emacs and Haskell hacks on my previous
sites. However, these hacks are now old and un-maintained. I don’t
think there is enough interest to keep them around."
* doc/misc/efaq.texi (Using an already running Emacs process):
Remove reference to obsolete package 'gnuserv'. (Bug#37574)
* lisp/net/tramp.el: Remove :group from all defcustoms.
(tramp-encoding-shell): Fix docstring.
(tramp-error): Remove text properties from error message.
Stefan Kangas [Fri, 11 Oct 2019 11:01:13 +0000 (13:01 +0200)]
Support showing directory in shell command prompt
* lisp/simple.el (shell-command-prompt-show-cwd): New defcustom.
(async-shell-command, shell-command): Show current directory in prompt
when above option is non-nil. (Bug#4987)
* etc/NEWS: Announce it.
Martin Rudalics [Fri, 11 Oct 2019 07:26:41 +0000 (09:26 +0200)]
Minor fixes for switching to previous and next buffers (Bug#37514)
* lisp/window.el (switch-to-prev-buffer)
(switch-to-next-buffer): In doc-strings add links to
'prev-buffer' and 'next-buffer'.
(next-buffer, previous-buffer): Signal 'user-error' instead of
'error'. In doc-strings link to 'switch-to-prev-buffer' and
'switch-to-next-buffer'.