Paul Eggert [Tue, 19 May 2020 00:17:46 +0000 (17:17 -0700)]
Reject attempts to clear pure strings
* src/fns.c (Ffillarray, Fclear_string):
Add CHECK_IMPURE here, to be consistent with Faset etc.
(Ffillarray): Prefer memset when the fill is a single byte.
Paul Eggert [Mon, 18 May 2020 22:19:49 +0000 (15:19 -0700)]
Redo RCS Id for pdumper
* lisp/version.el: Don’t put an RCS Id style string into the
executable via purecopy, as this does not work with the pdumper.
* src/emacs.c (RCS_Id): New constant, for 'ident'.
Glenn Morris [Mon, 18 May 2020 17:54:14 +0000 (10:54 -0700)]
Restore buffer-undo-list to buffer-local-variables
It has been missing since 2012-07-03 (Emacs 24.3)
"Cleanup basic buffer management", when undo_list was moved to
the end of struct buffer. (Bug#33492)
* src/buffer.c (buffer_local_variables_1): New function.
(Fbuffer_local_variables): Explicitly add buffer-undo-list.
Fix calculator entry of numbers with negative exponents (bug#41347)
* lisp/calculator.el (calculator-string-to-number):
Remove obsolete string transformations preventing entry of 1e-3 etc.
Keep one transformation to allow entry of "1.e3".
Reported by Chris Zheng.
Dmitry Gutov [Mon, 18 May 2020 00:36:43 +0000 (03:36 +0300)]
Add user option project-vc-merge-submodules
* lisp/progmodes/project.el (project-vc): Update the docstring.
(project-vc-merge-submodules): New user option.
(project-try-vc): Use it.
(project--submodule-p): Extract from project-try-vc.
Dmitry Gutov [Sun, 17 May 2020 23:46:06 +0000 (02:46 +0300)]
vc-working-revision: Bind default-directory
* lisp/vc/vc-hooks.el (vc-working-revision):
Bind default-directory to be on the safe side.
Suggested by Ilya Ostapyshyn
(https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg02301.html).
Paul Eggert [Sun, 17 May 2020 23:50:49 +0000 (16:50 -0700)]
Don’t attempt to modify constant strings
These attempts were found by ‘make compile-always’.
* lisp/language/tibet-util.el (tibetan-obsolete-glyphs):
* lisp/org/org-agenda.el (org-agenda-get-restriction-and-command):
Don’t try to modify string constants.
Andrea Corallo [Sun, 17 May 2020 12:23:59 +0000 (13:23 +0100)]
* Fix Garbage Collector for missing calle-saved regs content (Bug#41357)
* src/alloc.c (SET_STACK_TOP_ADDRESS): Do not call
__builtin_unwind_init.
(flush_stack_call_func1): Rename from 'flush_stack_call_func'.
(flush_stack_call_func): New function to spill all registers
before calling 'flush_stack_call_func1'. This to make sure the
top of the stack identified includes those registers.
Stefan Kangas [Sun, 17 May 2020 12:59:10 +0000 (14:59 +0200)]
Fix minor issues with mouse-drag-and-drop-region-show-tooltip
* lisp/mouse.el (mouse-drag-and-drop-region-show-tooltip): Fix
defcustom type to allow all valid values. Suggested by David
Ponce. (Bug#41351)
(mouse-drag-and-drop-region): Fix bug where setting
`drag-and-drop-region-show-tooltip' to 0 would still show a
tooltip.
Paul Eggert [Sun, 17 May 2020 00:04:15 +0000 (17:04 -0700)]
Don’t attempt to modify constant conses
From a patch privately suggested by Mattias Engdegård on 2020-05-11
in a followup to Bug#40671.
* admin/charsets/cp51932.awk:
* admin/charsets/eucjp-ms.awk:
Generate code that does not modify constant conses.
* doc/misc/emacs-mime.texi (Encoding Customization):
* lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-free-ops):
* lisp/frameset.el (frameset-persistent-filter-alist):
* lisp/gnus/gnus-sum.el (gnus-article-mode-line-format-alist):
Use append instead of nconc.
* lisp/language/japanese.el (japanese-ucs-cp932-to-jis-map)
(jisx0213-to-unicode):
Use mapcar instead of mapc.
* lisp/language/lao-util.el (lao-transcription-consonant-alist)
(lao-transcription-vowel-alist):
* lisp/language/tibetan.el (tibetan-subjoined-transcription-alist):
Use copy-sequence.
* test/src/fns-tests.el (fns-tests-nreverse):
(fns-tests-sort, fns-tests-collate-sort)
(fns-tests-string-version-lessp, fns-tests-mapcan):
Use copy-sequence, vector, and list.
Glenn Morris [Sat, 16 May 2020 17:29:14 +0000 (10:29 -0700)]
Merge from origin/emacs-27
b4937f64cd (origin/emacs-27) Improve documentation of manually instal... efd4e973a4 Reflect the emacs-devel ELPA/MELPA dispute in FAQ 28541674cd Consider face inheritance when checking region face backgr... e75f6be6cc Fix dired default file operation (bug#41261) 406fb0746c Fix documentation related to 'command-switch-alist'. 747e0a2523 Improve ediff readability in misterioso theme (Bug#41221) 48830c73e7 Fix a crash in handle_display_spec a37290a6f9 In x_hide_tip reset tip_last_frame for GTK+ tooltips only ... 3d81995692 Fix docstring of flymake-make-diagnostic (bug#40351) 632aa9d57a Go back to “Bahá’í” e2406ff60f * lisp/dired.el (dired-toggle-marks): Doc fix. (Bug#41097)
Stefan Kangas [Sat, 16 May 2020 13:34:47 +0000 (15:34 +0200)]
Remove Emacs 22 compat code from ediff-vers.el
* lisp/vc/ediff-vers.el (ediff-vc-revision-other-window)
(ediff-vc-working-revision): Redefine Emacs 22 compatibility
aliases as obsolete function aliases.
(ediff-vc-internal, ediff-vc-merge-internal): Don't use the now
obsolete aliases.
Stefan Kangas [Sat, 16 May 2020 13:22:54 +0000 (15:22 +0200)]
Remove some XEmacs compat code from semantic
* lisp/cedet/semantic/wisent/comp.el (wisent-ISVALID-TOKEN)
(wisent-parse-nonterminals):
* lisp/cedet/semantic/wisent/wisent.el
(wisent-item-to-string): Remove XEmacs compatibility code.
(wisent-char-p): Redefine as obsolete function alias for
'characterp'.
Eli Zaretskii [Sat, 16 May 2020 08:54:37 +0000 (11:54 +0300)]
Improve documentation of manually installing Lisp packages
* doc/emacs/building.texi (Lisp Libraries): Describe how to
manually load packages in the init file. Mention the 'site-lisp'
subdirectory of the default 'load-path'.
* doc/emacs/package.texi (Packages): Describe manual installation
of ELisp packages. Suggested by Jean-Christophe Helary
<jean.christophe.helary@traduction-libre.org>.
Tassilo Horn [Fri, 15 May 2020 20:24:29 +0000 (22:24 +0200)]
Consider face inheritance when checking region face background.
Some themes (like dracula) make the region face inherit from some
other face. If the background color of the region was inherited,
`indicate-copied-region' did the switch-point-and-mark-twice dance
which is not visible in case the region is highlighted. It just
looked like Emacs would hang for a second after M-w.
* lisp/simple.el (indicate-copied-region): Consider face inheritance
when checking region face background.
Alan Mackenzie [Fri, 15 May 2020 19:24:29 +0000 (19:24 +0000)]
CC Mode: Fix bug #40052, where a very large macro was too slow in scrolling
* lisp/progmodes/cc-engine.el (c-end-of-macro): Fix faulty cache handling,
where the upper bound of c-macro-cache was never being set.
(c-forward-comment-minus-1): New macro which terminates unwanted indefinite
backward searching with lots of escaped newlines in c-backward-single-comment.
(c-backward-single-comment, c-backward-comments): Use the new macro above.
* lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings)
(c-after-change-mark-abnormal-strings, c-after-change-escape-NL-in-string):
Optimize three regexps by using shy groups, thus preventing regexp stack
overflow while handling the large C Macro.
Stefan Kangas [Fri, 15 May 2020 17:55:26 +0000 (19:55 +0200)]
Delete libraries obsolete since 23.1 and 23.2
Emacs 23.2 was released 10 years ago. old-whitespace.el has a
replacement in whitespace.el and is no longer relevant. The other
libraries implement compatibility with Lucid Emacs, a modified version
of Emacs last released in the 1990s.
* lisp/obsolete/ledit.el:
* lisp/obsolete/lmenu.el:
* lisp/obsolete/lucid.el:
* lisp/obsolete/old-whitespace.el: Delete files. These libraries have
been obsolete since Emacs 23.1 or 23.2.
* etc/NEWS: Announce their deletion.
Philipp Stephani [Thu, 14 May 2020 17:26:43 +0000 (19:26 +0200)]
Fix documentation related to 'command-switch-alist'.
While there, add a unit test to verify the behavior.
* doc/lispref/os.texi (Command-Line Arguments): Fix documentation: the
option string in 'command-switch-alist' does include leading hyphens.
Also mention that 'command-switch-alist' parsing ignores equals signs
in options.
* test/lisp/startup-tests.el
(startup-tests/command-switch-alist): New unit test.
Tino Calancha [Fri, 8 May 2020 20:14:03 +0000 (22:14 +0200)]
Combine archive-int-to-mode and tar-grind-file-mode
Add a new function, file-modes-number-to-symbolic.
Make archive-int-to-mode and obsolete alias of it; use it
to define tar-grind-file-mode (Bug#27952).
* lisp/files.el (file-modes-number-to-symbolic): New defun.
* lisp/arc-mode.el (archive-int-to-mode): Make it an obsolete alias.
* lisp/tar-mode.el (tar-grind-file-mode):
Use file-modes-number-to-symbolic.
Stefan Kangas [Wed, 13 May 2020 23:28:03 +0000 (01:28 +0200)]
; Fix warning after last change in cal-julian.el
* lisp/calendar/cal-julian.el (diary-julian-date)
(diary-astro-day-number): Silence byte-compiler warning about variable
'declared after its first use'.
João Távora [Wed, 13 May 2020 10:31:21 +0000 (11:31 +0100)]
Turn Eldoc, Xref and Project into GNU ELPA :core packages
The new packages state they require Emacs 26.3 to function, but a
small part of project.el breaks this "soft" rule: the two functions
requiring fileloop.el are incompatible with Emacs 26.3.
* lisp/jsonrpc.el: Tweak comment near Package-Requires.
* lisp/emacs-lisp/eldoc.el: Add Version and Package-Requires.
* lisp/progmodes/flymake.el: Add comment near Package-Requires.
* lisp/progmodes/project.el: Add Version and Package-Requires.
* lisp/progmodes/xref.el: Add Version and Package-Requires.
Paul Eggert [Tue, 12 May 2020 22:19:46 +0000 (15:19 -0700)]
Use proper digraphs in Bahá’í month names
* lisp/calendar/cal-bahai.el (calendar-bahai-month-name-array):
There doesn’t seem to be any disagreement in the sources I
consulted that “Mas͟híyyat” and “S͟haraf” both need an “s͟h” digraph
instead of plain “sh”.
Stefan Kangas [Fri, 24 Apr 2020 21:43:57 +0000 (23:43 +0200)]
Support sorting timer-list-mode by column (Bug#40854)
* lisp/emacs-lisp/timer-list.el (timer-list-mode)
(timer-list--idle-predicate, timer-list--next-predicate)
(timer-list--repeat-predicate)
(timer-list--function-predicate): Add support for sorting by column.
Stefan Kangas [Fri, 24 Apr 2020 21:42:37 +0000 (23:42 +0200)]
Base timer-list-mode on tabulated-list-mode (Bug#40854)
* lisp/emacs-lisp/timer-list.el (list-timers)
(timer-list-mode): Inherit from 'tabulated-list-mode' instead of
'special-mode' and make the necessary changes to support that.
Paul Eggert [Tue, 12 May 2020 00:41:16 +0000 (17:41 -0700)]
Pacify GCC 10.1.0
Pacify GCC 10.1.0 so that it does not issue false alarms
when Emacs is configured with --enable-gcc-warnings.
* src/dispnew.c (clear_glyph_row):
* src/fns.c (hash_clear):
* src/keyboard.c (append_tab_bar_item):
* src/lisp.h (vcopy):
* src/xfaces.c (get_lface_attributes_no_remap)
(Finternal_copy_lisp_face, realize_default_face):
* src/xmenu.c (set_frame_menubar):
Work around -Warray-bounds false alarm in GCC 10.1.0.
* src/intervals.c (copy_properties):
Avoid -Wnull-dereference false alarm in GCC 10.1.0.
* src/lisp.h (xvector_contents_addr, xvector_contents):
New functions, useful for working around GCC bug 95072.
Alan Mackenzie [Mon, 11 May 2020 20:05:54 +0000 (20:05 +0000)]
Fix bug #40992 whilst still allowing breakpoint highlights in edebug
Strategy: when an instrumented function gets re-evaluated, save the former
value of its symbol's `edebug' property in the new propery `ghost-edebug'. If
this function is still being edebugged, edebug will then access its info from
this new property.
Also fix the bug whereby compile-defun'ing an instrumented function prevents
the function being re-instrumented by I (edebug-instrument-callee).
* lisp/emacs-lisp/edebug.el (edebug-get-edebug-or-ghost): New function.
(edebug-read-and-maybe-wrap-form1): save value of `edebug' property in
'ghost-edebug'.
(edebug-make-form-wrapper): Set value of `ghost-edebug' to nil.
(edebug-make-form-wrapper, edebug-find-stop-point, edebug-next-break-point)
(edebug-modify-breakpoint, edebug--overlay-breakpoints, edebug-set-breakpoint)
(edebug-unset-breakpoints, edebug-toggle-disable-breakpoint)
(edebug--backtrace-goto-source, edebug-display-freq-count)
(edebug-set-conditional-breakpoint): Use edebug-get-edebug-or-ghost to access
edebug information.
(edebug-instrument-function): Also check a function is a cons before declaring
it "already instrumented".
Dmitry Gutov [Mon, 11 May 2020 01:34:55 +0000 (04:34 +0300)]
Use the "modern" toolbars in Gnus again
* lisp/gnus/gmm-utils.el (gmm-tool-bar-style):
Undo the breakage from commit d88118db37dd
(https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg02094.html).
Stefan Monnier [Sun, 10 May 2020 23:07:45 +0000 (19:07 -0400)]
* lisp/emacs-lisp/pcase.el: Don't bind unused vars in branches
(pcase--fgrep): Change calling convention to take bindings rather than
just variables.
(pcase--funcall, pcase--eval): Adjust to this new calling convention.
(pcase--expand): Use `pcase--fgrep` to bind only the vars that are used.
Paul Eggert [Sun, 10 May 2020 15:47:47 +0000 (08:47 -0700)]
Go back to “Bahá’í”
* doc/emacs/calendar.texi (Holidays): Revert previous change, as
bahai.org spells it “Bahá’í” (with U+2019 RIGHT SINGLE QUOTATION
MARK) and that’s good enough for us.
* lisp/help-mode.el: Use lexical-binding.
(help-mode-map, help-mode-menu, help-mode-setup)
(help-mode-finish): Make spelling of "Help mode" consistent throughout
the doc strings (also making it consistent with the spelling of "Help
mode" used in the Elisp manual).
(help-do-xref): Re-indent to make the else-branch easier to see.
* test/lisp/help-mode-tests.el: New file with tests for help-mode.el.
Glenn Morris [Sat, 9 May 2020 17:03:21 +0000 (10:03 -0700)]
Merge from origin/emacs-27
be0d1cac83 (origin/emacs-27) Small fix for type of 'display-fill-colu... c5e5839776 Fix customization of 'display-fill-column-indicator-charac... d5c184aa3e Refer to fill column indicator Info node in some places. e13300ae50 Merge branch 'emacs-27' of git.sv.gnu.org:/srv/git/emacs i... 0bae57033f Fix GTK's Tool Bar menu radio buttons 4c98aa7ea5 Minor clarifications in NEWS a1cbd05f38 Improve documentation of 'with-suppressed-warnings'. 4a895c1b26 Fix a typo in a comment 2caf3e997e Improve documentation of Hi Lock mode 7081c1d66f Fix typos in the Emacs user manual 0385771e2f Fix references to Speedbar in VHDL mode a76cafea0d Fix handling of FROM = t and TO = t by 'window-text-pixel-...
Add new filter command to Package Menu (Bug#39903)
* lisp/emacs-lisp/package.el
(package-menu-filter-marked): New filter command.
* test/lisp/emacs-lisp/package-tests.el
(package-test-list-filter-marked): New test.
(package-menu-mode-menu):
(package-menu-mode-map): Update menu to include new filter command.
* doc/emacs/package.texi (Package Menu): Document the new command.
* etc/NEWS: Announce the new command.
* lisp/progmodes/cc-mode (c-or-c++-mode--regexp): Expand the regexp to
match some more C++-only constructs and recognise a few more standard
C++ header files. Also make sure identifiers start with non-digit.
(c-or-c++-mode): Add ‘(interactive)’ declaration.
* test/lisp/progmodes/cc-mode-tests.el (c-or-c++-mode): Add test case
for the newly recognised constructs.
Introduce ‘c-lineup-ternary-bodies’ function which, when used as
a c lineup function, aligns question mark and colon of a ternary
operator. For example:
return arg % 2 == 0 ? arg / 2
: (3 * arg + 1);
* lisp/progmodes/cc-align.el (c-lineup-ternary-bodies): New function.
* doc/misc/cc-mode.texi (Operator Line-Up Functions): Document the
new function.
* test/lisp/progmodes/cc-mode-tests.el (c-lineup-ternary-bodies): New
test case.