Have header-line-highlight inherit from mode-line-highlight
* lisp/faces.el (header-line-highlight): Inherit from
mode-line-highlight instead of highlight (bug#43926). This is
consistent with header-line inheriting from mode-line.
Stefan Kangas [Mon, 12 Oct 2020 18:59:14 +0000 (20:59 +0200)]
Fix man page title lines and timestamps
* doc/man/ebrowse.1:
* doc/man/emacs.1.in:
* doc/man/emacsclient.1:
* doc/man/etags.1: Update date to match last significant change. Set
file local variable time-stamp-pattern. Fix title line to match the
recommendations in "man man-pages".
Ref: https://lists.gnu.org/r/emacs-devel/2020-09/msg01002.html
Stefan Monnier [Sun, 11 Oct 2020 22:21:48 +0000 (18:21 -0400)]
* lisp/proced.el: Fix behavior with variable-pitch `header-line` face
Also, use lexical-scoping. Remove redundant `:group` args.
(proced-process-alist, proced-header-line): Use `defvar-local`
(proced-header-line): Put :align-to on spaces to improve result with
variable-pitch header-line face.
(proced-filter, proced-format): Use a closure instead of `(lambda ...).
Stefan Monnier [Sun, 11 Oct 2020 21:08:25 +0000 (17:08 -0400)]
* lisp/hexl.el: Fix behavior with variable-pitch `header-line` face
(hexl-ascii-region): Don't inherit from the `header-line`.
(hexl-font-lock-keywords): Fix text alignment.
(hexl-mode): Set `font-lock-extra-managed-props` accordingly.
Alan Third [Sun, 11 Oct 2020 19:46:07 +0000 (20:46 +0100)]
Fix GNUstep build
Fix mistakes made when removing Cocoa code from nsfont.m.
* src/nsfont.m (nsfont_draw): Remove spurious #ifdef.
(ns_uni_to_glyphs): The #if/#endif was removed from this code, but the
code itself not removed. Remove it now.
Stephen Berman [Sun, 11 Oct 2020 04:05:49 +0000 (06:05 +0200)]
Allow killing files with C-k in wdired if -F is used
* lisp/wdired.el (wdired-change-to-wdired-mode): Add hook to
restore properties.
(wdired-change-to-wdired-mode): Adjust check for symlinks.
(wdired-preprocess-files): Fix parsing when using the -F flag.
(wdired-get-filename): Fix parsing of symlinks when using the -F flag.
(wdired--restore-properties): Renamed, and restore more properties
(bug#18475).
Robert Weiner [Sun, 11 Oct 2020 02:03:47 +0000 (04:03 +0200)]
Make posn-set-point work on frame events
* lisp/subr.el (event-start): Mention the frame part of the events.
(posn-window): Ditto.
(posn-set-point): Make this work if the event is a frame event
(bug#28621).
Rasmus [Sat, 10 Oct 2020 20:32:41 +0000 (22:32 +0200)]
gnus-icalendar.el: Fix bug in gnus-icalendar-identities
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--find-attendee):
(gnus-icalendar-identities) `gnus-ignored-from-addresses' and
`message-alternative-emails' may be functions. This is not
supported by `gnus-icalendar-event--find-attendee' (bug#43908).
Stefan Monnier [Sat, 10 Oct 2020 20:00:51 +0000 (16:00 -0400)]
* lisp/calc/: Use lexical scoping in all the files
Includes the following pervasive changes:
- Move some defvars earlier in the file so they cover earlier let-bindings
- Change dynamically scoped `calc-FOO` or `math-FOO` function arguments
to just FOO and then let-bind the `calc-FOO` or `math-FOO` variable
explicitly in the body of the function. In some cases, the
beginning of the function was changed to refer to FOO so as to delay
the binding to a nearby `let` when I could ensure that it did
not make a difference.
- Add an underscore in front of unused vars or comment them out altogether.
- Replace unused `err` arg to `condition-case` with nil.
* lisp/calc/calc-embed.el (calc-embedded-modes-change):
Declare `the-language` and `the-display-just` as dynamically scoped.
* lisp/calc/calc-forms.el (math-setup-year-holidays): Use `dolist`.
* lisp/calc/calc-graph.el (calc-graph-set-styles): Use `symbol-value`
rather than `eval.`
(calc-graph-delete-temps, calc-graph-set-styles): Use ignore-errors.
* lisp/calc/calc-macs.el (calc-with-trail-buffer): Add artificial use
of `save-buf` to silence compiler warnings in all the cases where
`body` doesn't make use of it.
* lisp/calc/calc-math.el (math-largest-emacs-expt)
(math-smallest-emacs-expt, math-use-emacs-fn): Use ignore-errors.
* lisp/calc/calc-mode.el (calc-total-algebraic-mode): Remove "P" from
interactive spec since it's not used anyway.
* lisp/calc/calc-rewr.el (calc-match): Simplify.
* lisp/calc/calc.el (calc-buffer): Give it a global nil value,
so it's automatically declared dynbound in any file that requires `calc`.
(calcDigit-nondigit): Adjust accordingly.
* lisp/calc/calcalg2.el (calcFunc-table): Declare `var-dummy` as dynbound.
(math-scan-for-limits): Comment out dead code.
* lisp/calc/calcalg3.el (math-general-fit): Declare `var-YVAL` and
`var-YVALX` as dynbound.
Glenn Morris [Sat, 10 Oct 2020 14:50:20 +0000 (07:50 -0700)]
Merge from origin/emacs-27
c00606171f (origin/emacs-27) A better fix for bug#43886 3196fd44c3 Avoid crashes when a theme is loaded with one frame suspended 0407b15500 Removed an incorrectly placed extra word in the semantic docs 040dcbe53e Fix current-line hscrolling when overlays change c56eeba2ce Extend tests for shell-command-dont-erase-buffer
Calc: fix arithmetic right shift sign bit detection
Arithmetic right shift didn't compute the bit to shift in correctly.
For example, #x600000000 right-shifted 8 steps (with 32 bit word size)
resulted in #xff000000 rather than 0. (Bug#43764)
Only skip directories in lgrep, not the other grep commands
* lisp/progmodes/grep.el (lgrep): Do the directory ignores here
(bug#23590).
(grep-compute-defaults): ... instead of here, because this would
affect all grep commands, not just lgrep.
Alan Mackenzie [Thu, 8 Oct 2020 16:49:49 +0000 (16:49 +0000)]
CC Mode: Move the handling of keyword auto into type handling for C++.
This should allow auto, const, static, ... to be in any order.
* lisp/progmodes/cc-engine.el (c-forward-type): New return value 'no-id for
when auto precludes the parsing of a type identifier. Adapt processing for
this.
(c-forward-decl-or-cast-1): Use the new facility from c-forward-type.
* lisp/progmodes/cc-langs.el (c-type-modifier-prefix-kwds): Insert the value
of c-no-type-kwds into the value.
(c-no-type-kwds, c-no-type-key): New lang consts/vars, basically "auto".
(c-typeless-decl-kwds, c-modifier-kwds): Remove "auto" from the C++ value.
Stefan Monnier [Thu, 8 Oct 2020 13:49:20 +0000 (09:49 -0400)]
* src/ftcrfont.c (ftcrfont_open): Initialize the `max_width` field
On a 32bit build, Emacs can otherwise crash with a !FIXNUM_OVERFLOW_P
assertion in `Ffont_info` by simply doing `emacs -Q` and then `C-s`.
* src/font.c: Try and detect uninitialized `max_width` fields.
(font_make_object): Set max_width to a silly value.
(Ffont_info): Check the value is not silly any more.
Eli Zaretskii [Wed, 7 Oct 2020 08:35:59 +0000 (11:35 +0300)]
Fix last change in frame.el.
* lisp/frame.el (frame-set-background-mode): Fix last change: yet
another place where FRAME was not taken into account, using the
selected frame instead. (Bug#43837)
Update documentation on this-command-keys to reflect new behavior
* doc/lispref/commands.texi (Command Loop Info):
`this-command-keys' does not include the C-u any more, so remove
that from the description and the example
(bug#22107).
* src/keyboard.c (Fthis_single_command_keys): Don't say that
`this-command-keys' returns the C-u prefix (bug#22111).
Make artist-mode work when display-line-numbers-mode is on
* lisp/textmodes/artist.el (artist--adjust-x): New function.
(artist-mouse-draw-continously, artist-mouse-draw-poly)
(artist-mouse-draw-1point, artist-mouse-draw-2points): Use it to
take `display-line-numbers-mode' widths into account.
Mauro Aranda [Wed, 7 Oct 2020 02:35:52 +0000 (04:35 +0200)]
Make the State button in Custom use extended menus
* lisp/cus-edit.el (custom-actioned-widget): New variable.
Dynamically hold the widget for which to show the menu.
(custom-variable-extended-menu, custom-face-extended-menu)
(custom-group-extended-menu): Keymap menus for the State menu. Use
custom-actioned-widget for the :enable and :selected forms. Make
related items radio buttons. (Bug#4787)
(custom-variable-menu, custom-face-menu, custom-group-menu): Keep for
backward compatibility, but default to nil, so we prefer the keymap
menus instead.
(custom-variable-action, custom-face-action, custom-group-action):
Pass the keymap menu to widget-choose when the simplified menus
are nil.
Juri Linkov [Tue, 6 Oct 2020 20:14:26 +0000 (23:14 +0300)]
Add match-data to isearch state and repeat faces to highlight group matches
* lisp/isearch.el (isearch-match-data): New variable.
(isearch-mode): Set isearch-match-data to nil.
(isearch-update): Call isearch-highlight with isearch-match-data.
(isearch--state): Add isearch-match-data.
(isearch--set-state): Restore isearch-match-data.
(with-isearch-suspended): Preserve isearch-match-data.
(isearch-search): Set isearch-match-data to integers.
(isearch-group-1): Rename from isearch-group-odd and adjust colors.
(isearch-group-2): Rename from isearch-group-even and adjust colors.
(isearch-highlight): Add optional arg 'match-data'.
Rewrite search-highlight-submatches part to recycle faces.
* doc/emacs/search.texi (Search Customizations): Amend the
documentation for isearch-group faces.
* lisp/international/mule-util.el (truncate-string-ellipsis):
Use Unicode hex escapes instead of named escapes here, because \N{...}
is not available during bootstrapping. (Bug#41250)
Harald Jörg [Tue, 6 Oct 2020 01:39:55 +0000 (03:39 +0200)]
cperl-mode: Fix a test to ensure cperl-mode is active
* test/lisp/progmodes/cperl-mode-tests.el
(cperl-mode-test-indent-exp): Make sure that cperl-mode is active
for testing 'cperl-indent-exp', also skip this test under
perl-mode.
* test/lisp/progmodes/cperl-mode-resources/cperl-indent-exp.pl:
Eliminate dependency on unrelated customizable variables (bug#10483).
* doc/lispref/display.texi (Size of Displayed Text): Improve
wording and accuracy of the documentation of
'truncate-string-to-width'. Document the function
'truncate-string-ellipsis'.
* etc/NEWS: Improve the wording of the entry for
'truncate-string-to-width'.
Stefan Monnier [Mon, 5 Oct 2020 02:50:38 +0000 (22:50 -0400)]
* src/xdisp.c (syms_of_xdisp): New var `redisplay_skip_initial_frame`.
This makes it possible to run most of the redisplay code (tho not the
actual drawing since there's nowhere to draw) even when there's no
real frame at hand, as is the case in batch mode.
This makes `xdisp-tests--minibuffer-resizing` work even in batch.
(redisplay_internal): Obey it.
(init_xdisp): Set `echo_area_window` even in noninteractive mode.
* src/dispnew.c (update_frame): Skip the initial frame.
* src/frame.c (make_frame): Use 80x25 as the default initial size.
* test/src/xdisp-tests.el (xdisp-tests--minibuffer-resizing):
Use the new var and fix use of `executing-kbd-macro`.
Juri Linkov [Sun, 4 Oct 2020 19:41:36 +0000 (22:41 +0300)]
Use '…' for ellipsis in truncate-string-to-width by default (bug#41250)
* lisp/international/mule-util.el (truncate-string-ellipsis):
Change the default value to nil.
(truncate-string-ellipsis): New function.
(truncate-string-to-width): Use the value returned from the
function 'truncate-string-ellipsis'.
* lisp/tab-bar.el (tab-bar-tab-name-truncated):
* lisp/tab-line.el (tab-line-tab-name-ellipsis):
Take advantage of the improvement of the ellipsis default value
in truncate-string-to-width and truncate-string-ellipsis.
* doc/lispref/display.texi (Size of Displayed Text):
Improve description of truncate-string-ellipsis.