]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 years agoRevert "Fix reader char escape bugs (bug#55738)"
Mattias Engdegård [Wed, 1 Jun 2022 20:49:34 +0000 (22:49 +0200)]
Revert "Fix reader char escape bugs (bug#55738)"

This reverts commit c50718dcfa54293b695f8a3fa5cd4d77848ee084.

It may have caused bootstrap problems. Sorry about that.

2 years ago* lisp/simple.el (completion-setup-function): Use file-name-directory.
Juri Linkov [Wed, 1 Jun 2022 19:12:12 +0000 (22:12 +0300)]
* lisp/simple.el (completion-setup-function): Use file-name-directory.

Replace file-name-as-directory with file-name-directory,
because file-name-as-directory returns a nonexistent dir
e.g. "/dir/prefix/" when completing "/dir/prefix".
OTOH, file-name-directory returns "/dir/" in such cases (bug#55743).

2 years agoAvoid segfaults on MS-Windows when invoked with --version
Eli Zaretskii [Wed, 1 Jun 2022 18:57:07 +0000 (21:57 +0300)]
Avoid segfaults on MS-Windows when invoked with --version

* src/emacs.c (main): If invoked with --version, call
'init_bignum' before calling 'format-time-string', as that is
needed for safe manipulation of bignums in timefns.c.

2 years agoFix reader char escape bugs (bug#55738)
Mattias Engdegård [Wed, 1 Jun 2022 09:39:44 +0000 (11:39 +0200)]
Fix reader char escape bugs (bug#55738)

Make the character literal ?\LF (linefeed) generate 10, not -1.

Ensure that Control escape sequences in character literals are
idempotent: ?\C-\C-a and ?\^\^a mean the same thing as ?\C-a and ?\^a,
generating the control character with value 1.  "\C-\C-a" no longer
signals an error.

* src/lread.c (read_escape): Make nonrecursive and only combine
the base char with modifiers at the end, creating control chars
if applicable.  Remove the `stringp` argument; assume character
literal syntax.  Never return -1.
(read_string_literal): Handle string-specific escape semantics here
and simplify.
* test/src/lread-tests.el (lread-misc-2): New test.

2 years agoMake files-tests.el more robust
Michael Albinus [Wed, 1 Jun 2022 16:36:35 +0000 (18:36 +0200)]
Make files-tests.el more robust

* test/lisp/files-tests.el (files-tests--with-temp-non-special)
(files-tests--with-temp-non-special-and-file-name-handler): Make
it more robust wrt parallel test jobs.  (Bug#55706)

2 years agodelete-selection-mode: Add user option to delete temporary regions only
Visuwesh [Sun, 29 May 2022 06:15:19 +0000 (11:45 +0530)]
delete-selection-mode: Add user option to delete temporary regions only

* lisp/delsel.el (delete-selection-temporary-region): Add new
user option.
(delete-selection-pre-hook): Respect it.
* doc/emacs/mark.texi (Using Region): Document the new user option.
* etc/NEWS: Announce the new user option. (bug#55692)

2 years agoAdd a comment to lisp/Makefile.in
Lars Ingebrigtsen [Wed, 1 Jun 2022 15:53:29 +0000 (17:53 +0200)]
Add a comment to lisp/Makefile.in

* lisp/Makefile.in: Add FIXME comment.

2 years agoPlace bookmarks without last-modified at the end
Manuel Giraud [Wed, 1 Jun 2022 15:32:28 +0000 (17:32 +0200)]
Place bookmarks without last-modified at the end

* lisp/bookmark.el (bookmark-sort-flag): Typo fix in doc string.
(bookmark-maybe-sort-alist): Fix sorting when there's no last
modified.

2 years agoImprove documentation of Lisp-level drag-and-drop features
Po Lu [Wed, 1 Jun 2022 14:00:44 +0000 (22:00 +0800)]
Improve documentation of Lisp-level drag-and-drop features

* doc/lispref/frames.texi (Drag and Drop): Don't conflate X
Windows specific implementation details with general
drag-and-drop functionality, document what `dnd-protocol-alist'
actually means, and improve documentation on DND data types.

2 years agoMake XEmacs compat code in gamegrid.el obsolete
Stefan Kangas [Tue, 31 May 2022 13:20:44 +0000 (15:20 +0200)]
Make XEmacs compat code in gamegrid.el obsolete

* lisp/play/gamegrid.el (gamegrid-make-glyph): Warn on using obsolete
XEmacs style glyph.  (This is currently unused in the Emacs tree.)
(gamegrid-make-image-from-vector): Make obsolete.

2 years ago; * src/xterm.c (x_wait_for_cell_change): Don't call ConnectionNumber twice.
Po Lu [Wed, 1 Jun 2022 13:28:26 +0000 (21:28 +0800)]
; * src/xterm.c (x_wait_for_cell_change): Don't call ConnectionNumber twice.

2 years agoEnsure that loaddefs-gen.elc is build before loaddefs.el is generated
Lars Ingebrigtsen [Wed, 1 Jun 2022 12:55:31 +0000 (14:55 +0200)]
Ensure that loaddefs-gen.elc is build before loaddefs.el is generated

* lisp/Makefile.in ($(lisp)/loaddefs.el): Make loaddefs.el depend
on loaddefs-gen.elc to ensure that it's built.

2 years agoMinor fixes to x_next_event_from_any_display
Po Lu [Wed, 1 Jun 2022 12:52:00 +0000 (20:52 +0800)]
Minor fixes to x_next_event_from_any_display

* src/xterm.c (x_next_event_from_any_display): Don't call
XPending unless there is input to be read on the connection, and
don't call ConnectionNumber twice.

2 years agoFix up the loaddefs-gen updating logic
Lars Ingebrigtsen [Wed, 1 Jun 2022 12:50:16 +0000 (14:50 +0200)]
Fix up the loaddefs-gen updating logic

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Only do the
updating logic if we're really updating.

2 years agoRevert "Fix loaddefs generation"
Lars Ingebrigtsen [Wed, 1 Jun 2022 12:14:02 +0000 (14:14 +0200)]
Revert "Fix loaddefs generation"

This reverts commit 28358db93007456a1e0a6d9118823d4ddea4ba39.

This has been fixed in a different way.

2 years agoAdd support for the Hanifi Rohingya script (bug#55745)
समीर सिंह Sameer Singh [Tue, 31 May 2022 14:07:34 +0000 (19:37 +0530)]
Add support for the Hanifi Rohingya script (bug#55745)

* lisp/language/misc-lang.el ("Hanifi Rohingya"):
New language environment.
Add composition rules for Hanifi Rohingya.
Add sample text and input method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Hanifi Rohingya.
* lisp/leim/quail/misc-lang.el ("hanifi-rohingya"):
New input method.

* etc/HELLO: Add a Hanifi Rohingya greeting.
* etc/NEWS: Announce the new language environment.

2 years agoStart the org -> texi conversion while doing byte compilation
Lars Ingebrigtsen [Wed, 1 Jun 2022 11:10:30 +0000 (13:10 +0200)]
Start the org -> texi conversion while doing byte compilation

* lisp/Makefile.in (MAIN_FIRST): Compile stuff needed for org ->
texi generation.
(all): Add org-manuals.
(org-manuals): Start org -> texi conversion while we're doing byte
compilation to make things more parallel.  This shaves off about
ten seconds of a "make -j8" build.

2 years agoUpdate modus-themes to their latest version
Protesilaos Stavrou [Wed, 1 Jun 2022 11:05:49 +0000 (14:05 +0300)]
Update modus-themes to their latest version

* admin/MAINTAINERS: Update link to the Git repository of the
modus-themes; point to the new mailing list; include command for
sending a bug report.

* doc/misc/modus-themes.org (Install from the archives): Minor
rewording.
(Dealing with byte compilation errors): Clarify that occasional bugs
are not always a fault of the themes.
(Custom hl-todo colors): Add note about package.:(Full support for
packages or face groups, Indirectly covered packages): Update lists of
supported packages.
(Note on avy hints): Remove obsolete node.
(Note on git-gutter in Doom Emacs): Note problem with custom bitmaps,
which is not the fault of the themes.
(Note on display-fill-column-indicator-mode): Show how to use a
thicker indicator.:(Why are colors mostly variants of blue, magenta,
cyan?): Minor rewording.
(Sources of the themes): Update official theme sources.
(Issues you can help with)
(Patches require copyright assignment to the FSF): Update the
information on potential contributions.
(Acknowledgements): Update list of contributors in the form of code or
ideas/feedback.
(Meta, Other notes about the project): Rename section and include more
links to development-related blog posts.

* etc/themes/modus-themes.el (seq): Stop requiring 'seq'.
(modus-themes--version): Use internal variable for the themes'
version.
(modus-themes-operandi-colors, modus-themes-vivendi-colors): Make
minor tweaks to the color palettes.
(modus-themes-variable-pitch): Remove obsolete symbol from doc string.
(modus-themes--alist-or-seq): Update function to not rely on 'seq'.
(modus-themes--current-theme): Make stylistic tweaks.
(modus-themes--markup): Use correct order of inheritance for faces.
(modus-themes--paren, modus-themes--heading)
(modus-themes--agenda-structure, modus-themes--agenda-date)
(modus-themes--agenda-habit, modus-themes--mode-line-attrs)
(modus-themes--mode-line-padded-box, modus-themes--button): Update to
use 'modus-themes--property-lookup' instead of the previous function
that depended on 'seq'.
(modus-themes--diff): Make it combine as expected with the user option
'modus-themes-deuteranopia'.
(modus-themes-faces): Update list of faces.
(modus-themes-custom-variables): Expand support for face rotation in
'highlight-changes'.

* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Bump version number to 2.4.1.

Release notes: <https://protesilaos.com/codelog/2022-06-01-modus-themes-2-4-0/>.

2 years agoTweak how loaddefs-gen decides whether to do a full update
Lars Ingebrigtsen [Wed, 1 Jun 2022 10:55:06 +0000 (12:55 +0200)]
Tweak how loaddefs-gen decides whether to do a full update

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Do a
complete build more often to avoid problems with going from old
loaddefs.el files to new ones.

2 years agoFix Motif DND return value upon transfer failure
Po Lu [Wed, 1 Jun 2022 10:24:05 +0000 (18:24 +0800)]
Fix Motif DND return value upon transfer failure

* src/xterm.c (handle_one_xevent): Make XmTRANSFER_FAILURE clear
DND action.

2 years agoFix loaddefs generation
Po Lu [Wed, 1 Jun 2022 10:21:36 +0000 (18:21 +0800)]
Fix loaddefs generation

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Prevent
one kind of string match error.

2 years agoAdjust last change to Haiku as well
Po Lu [Wed, 1 Jun 2022 08:39:26 +0000 (08:39 +0000)]
Adjust last change to Haiku as well

* lisp/term/haiku-win.el (haiku-dnd-selection-converters): Add
text/uri-list.
(haiku-dnd-convert-text-uri-list): New function.
(x-begin-drag): Handle alternative data specified in selection
local values.

2 years agoClean up text/uri-list mess inside the Dired drag-and-drop code
Po Lu [Wed, 1 Jun 2022 08:25:53 +0000 (16:25 +0800)]
Clean up text/uri-list mess inside the Dired drag-and-drop code

* doc/lispref/frames.texi (Window System Selections):
* etc/NEWS: Document new changes to `gui-get-selection'.
* lisp/dired.el (dired-mouse-drag): Specify text/uri-list value
explicitly.
* lisp/select.el (gui-set-selection): Update doc string.
(xselect-convert-to-text-uri-list): Update to handle either a
single URL (as a string) or a vector of URLs, instead of file
names.
(xselect-uri-list-available-p): Likewise.
* src/xselect.c (x_get_local_selection): Look in tem's text
properties (if it is a string) for a local value before using
tem itself.

2 years agoFix hangs when explicitly moving frames with input blocked
Po Lu [Wed, 1 Jun 2022 06:13:57 +0000 (14:13 +0800)]
Fix hangs when explicitly moving frames with input blocked

* src/xterm.c (x_check_expected_move): Fix indent.
(x_sync_with_move): Use pselect to wait the 0.5 seconds instead
of wait_reading_process_output if input is blocked.

2 years agoImplement `allow-same-frame' for NS drag-and-drop
Po Lu [Wed, 1 Jun 2022 05:50:40 +0000 (13:50 +0800)]
Implement `allow-same-frame' for NS drag-and-drop

* lisp/term/ns-win.el (x-begin-drag): Implement
`allow-same-frame'.
* src/nsselect.m (Fns_begin_drag): New parameter
`allow-same-frame'.
* src/nsterm.h (@interface EmacsWindow): Update prototypes.
* src/nsterm.m ([EmacsView draggingEntered:]):
([EmacsView prepareForDragOperation:]):
([EmacsView performDragOperation:]): Respect new parameter.
([EmacsWindow beginDrag:forPasteboard:withMode:returnFrameTo:]):
Likewise.

2 years agoFix creation of menu items without help text on Haiku
Po Lu [Wed, 1 Jun 2022 05:05:42 +0000 (05:05 +0000)]
Fix creation of menu items without help text on Haiku

* src/haiku_support.cc (EmacsMenuItem): Don't mistakenly assume
help is non-NULL.

2 years agoTweak MAIN_FIRST/ja-dic compilation
Lars Ingebrigtsen [Wed, 1 Jun 2022 04:55:18 +0000 (06:55 +0200)]
Tweak MAIN_FIRST/ja-dic compilation

* lisp/Makefile.in (MAIN_FIRST): ja-dic-utl isn't used in the
conversion process, to don't compile it early.

2 years agoFix pselect usage mistakes
Po Lu [Wed, 1 Jun 2022 04:50:16 +0000 (12:50 +0800)]
Fix pselect usage mistakes

* src/xterm.c (x_next_event_from_any_display):
(x_wait_for_cell_change): Fix calls to pselect and tests against
return value.

2 years agoDon't do OKURI-NASI until the conversion files have been compiled
Lars Ingebrigtsen [Wed, 1 Jun 2022 04:33:07 +0000 (06:33 +0200)]
Don't do OKURI-NASI until the conversion files have been compiled

* lisp/Makefile.in (generate-ja-dic): Byte-compile the ja-dic.el
file, too.

2 years agoCompile ja-dic files to speed OKURI-NASI up
Lars Ingebrigtsen [Wed, 1 Jun 2022 04:22:29 +0000 (06:22 +0200)]
Compile ja-dic files to speed OKURI-NASI up

* lisp/Makefile.in (MAIN_FIRST): Also compile ja-dic utils to
speed generation up.

2 years agoUpdate publicsuffix.txt from upstream
Stefan Kangas [Wed, 1 Jun 2022 04:01:33 +0000 (06:01 +0200)]
Update publicsuffix.txt from upstream

* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-05-18 19:45:52 UTC.

2 years agoEnsure byte compilation of the ja-dic.el file
Lars Ingebrigtsen [Wed, 1 Jun 2022 03:29:33 +0000 (05:29 +0200)]
Ensure byte compilation of the ja-dic.el file

* lisp/Makefile.in (generate-ja-dic): Byte-compile the ja-dic.el
file, too.

2 years agoReshuffle the generation of the OKURO-NASI entries to speed up build
Lars Ingebrigtsen [Wed, 1 Jun 2022 02:49:57 +0000 (04:49 +0200)]
Reshuffle the generation of the OKURO-NASI entries to speed up build

* leim/Makefile.in (all): Remove the ja-dic target from all -- we
don't need this file generated before we generate the .elc files.
(generate-ja-dic): Add new target.

* lisp/Makefile.in (.PHONY, generate-ja-dic): Add new target.
(all): Make all depend on the new generate-ja-dic target so that
the OKURO-NASI entries are computed while the .elc files are
compiled.  On a AMD Ryzen 9 5950X 16-Core Processor this brings
compilation time on a "make -j32 bootstrap" down from 1m52s to 1m34s.

2 years agoFix the GTK build
Po Lu [Wed, 1 Jun 2022 00:57:52 +0000 (08:57 +0800)]
Fix the GTK build

* src/xterm.c (x_wait_for_cell_change): Don't initialize rfds
on GTK.

2 years agoImprove x_wait_for_cell_change
Po Lu [Wed, 1 Jun 2022 00:57:08 +0000 (08:57 +0800)]
Improve x_wait_for_cell_change

* src/xterm.c (x_wait_for_cell_change): Keep processing events
while still XPending.

2 years agoNote changes in ;;;### parsing
Lars Ingebrigtsen [Tue, 31 May 2022 20:56:21 +0000 (22:56 +0200)]
Note changes in ;;;### parsing

2 years agoFix the loaddefs updating logic
Lars Ingebrigtsen [Tue, 31 May 2022 20:49:12 +0000 (22:49 +0200)]
Fix the loaddefs updating logic

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Fix the
logic of updating -- we update per loaddefs file.

2 years agoFix yank-in-context--transform after recent reversion
Lars Ingebrigtsen [Tue, 31 May 2022 19:04:59 +0000 (21:04 +0200)]
Fix yank-in-context--transform after recent reversion

* lisp/simple.el (yank-in-context--transform): Fix call to
comment-region-default-1 after recent reverted patch.

2 years agoAdd a last-modified field when a bookmark is set
Manuel Giraud [Tue, 31 May 2022 18:35:39 +0000 (20:35 +0200)]
Add a last-modified field when a bookmark is set

* test/lisp/bookmark-tests.el (bookmark-tests-make-record)
(bookmark-tests-make-record-list, bookmark-tests-set): fix tests
to not consider last-modified in bookmark equality.
* lisp/bookmark.el (bookmark-make-record-default): add a
last-modified field.
(bookmark-sort-flag): add the 'last-modified choice.
(bookmark-get-last-modified): new function to get last-modified
bookmark field.
(bookmark-maybe-sort-alist): sort in last-modified first order.
(bookmark-completing-read): use `bookmark-maybe-sort-alist'.

2 years agoRevert "Allow commenting out white space lines in latex-mode"
Lars Ingebrigtsen [Tue, 31 May 2022 18:20:23 +0000 (20:20 +0200)]
Revert "Allow commenting out white space lines in latex-mode"

This reverts commit 0870ebb3cbfcb097d85eea5eacaf992dd88ed204.

This was the wrong way to try to fix this -- see bug#55716.

2 years agoMake partial loaddefs updates work again
Lars Ingebrigtsen [Tue, 31 May 2022 18:08:18 +0000 (20:08 +0200)]
Make partial loaddefs updates work again

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Only update
the loaddefs section for the files that have changed.  This makes
"git pull" (when few/no Lisp files have changed much faster).

2 years agoFix handling of windows/buffers for non-nil completion-auto-select (bug#55712)
Juri Linkov [Tue, 31 May 2022 17:52:37 +0000 (20:52 +0300)]
Fix handling of windows/buffers for non-nil completion-auto-select (bug#55712)

* lisp/minibuffer.el (completion--in-region-1): When completion-auto-select
is `second-tab', call switch-to-completions outside of `with-current-buffer'.
For the case of completion-auto-select customized to t,
move switch-to-completions from completion-setup-function
where it was called inside of with-current-buffer-window.

* lisp/simple.el (completion-setup-function): Move switch-to-completions
for completion-auto-select=t to completion--in-region-1 where it's
handled together with the case of `second-tab'.
(next-completion): Add check for the minibuffer to support in-buffer
inline completions.

2 years agoRemove unused w32-* variables
Eli Zaretskii [Tue, 31 May 2022 17:28:50 +0000 (20:28 +0300)]
Remove unused w32-* variables

* src/w32fns.c (syms_of_w32fns) <w32-bdf-filename-alist>
<w32-strict-fontnames>: Remove unused variables.

2 years ago; * etc/NEWS: Fix a typo.
Eli Zaretskii [Tue, 31 May 2022 16:19:23 +0000 (19:19 +0300)]
; * etc/NEWS: Fix a typo.

2 years agoSpeed up generation of loaddefs files
Lars Ingebrigtsen [Tue, 31 May 2022 16:08:33 +0000 (18:08 +0200)]
Speed up generation of loaddefs files

* doc/lispref/loading.texi (Autoload, Autoload by Prefix): Refer
to loaddefs-generate instead of update-file-autoloads.

* lisp/Makefile.in (LOADDEFS): Remove, because all the loaddefs
files are created in one go now.
(COMPILE_FIRST): Add loaddefs-gen/radix-tree, and drop autoload.
($(lisp)/loaddefs.el): Use loaddefs-gen.
(MH_E_DIR, $(TRAMP_DIR)/tramp-loaddefs.el)
($(MH_E_DIR)/mh-loaddefs.el, $(CAL_DIR)/cal-loaddefs.el)
($(CAL_DIR)/diary-loaddefs.el, $(CAL_DIR)/hol-loaddefs.el): Remove.

* lisp/generic-x.el: Inhibit computing prefixes, because the
namespace here is all wonky.

* lisp/w32-fns.el (w32-batch-update-autoloads): Removed -- unused
function.

* lisp/calendar/holidays.el ("holiday-loaddefs"): Renamed from
hol-loaddefs to have a more regular name.

* lisp/cedet/ede/proj-elisp.el (ede-emacs-cedet-autogen-compiler):
Refer to loaddefs-gen instead of autoload.

* lisp/emacs-lisp/autoload.el (make-autoload, autoload-rubric)
(autoload-insert-section-header): Made into aliases of
loaddefs-gen functions.
(autoload--make-defs-autoload): Ditto.
(autoload-ignored-definitions, autoload-compute-prefixes): Moved
to loaddefs-gen.

* lisp/emacs-lisp/lisp-mode.el (lisp-mode-autoload-regexp): New
constant.
(lisp-fdefs, lisp-mode-variables, lisp-outline-level): Use it to
recognize all ;;;###autoload forms.

* lisp/emacs-lisp/loaddefs-gen.el: New file.

* lisp/emacs-lisp/package.el: Use loaddefs-generate instead of
make-directory-autoloads.

* test/lisp/vc/vc-bzr-tests.el (vc-bzr-test-faulty-bzr-autoloads):
Use loaddefs instead of autoloads.

2 years agoConvert FILE_NAME to refs on Haiku instead of text/uri-list
Po Lu [Tue, 31 May 2022 13:31:18 +0000 (13:31 +0000)]
Convert FILE_NAME to refs on Haiku instead of text/uri-list

* lisp/term/haiku-win.el (haiku-dnd-selection-converters): Use
more appropriate target for file names.
(haiku-dnd-convert-uri-list): Delete function.
(haiku-dnd-convert-file-name): New function.  Also handle remote
file names.

2 years agoMerge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Eli Zaretskii [Tue, 31 May 2022 13:19:44 +0000 (16:19 +0300)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs

2 years agoAdd missing part of recent changes to NS DND support
Po Lu [Tue, 31 May 2022 13:14:16 +0000 (21:14 +0800)]
Add missing part of recent changes to NS DND support

* lisp/term/ns-win.el (x-begin-drag): Implement `return-frame'
argument.

2 years agoAdd support for the Makasar and Lontara scripts (bug#55734)
समीर सिंह Sameer Singh [Mon, 30 May 2022 12:16:14 +0000 (17:46 +0530)]
Add support for the Makasar and Lontara scripts (bug#55734)

* lisp/language/indonesian.el ("Makasar") ("Buginese"):
New language environment. Add composition rules for Makasar
and Lontara. Add sample texts and input methods.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Makasar and Buginese.
* lisp/leim/quail/indonesian.el ("makasar") ("lontara"):
New input methods.

* etc/HELLO: Add Makasar and Buginese greetings.
* etc/NEWS: Announce the new language environments.

2 years agoSlightly optimize x_check_errors as well
Po Lu [Tue, 31 May 2022 12:56:43 +0000 (20:56 +0800)]
Slightly optimize x_check_errors as well

* src/xterm.c (x_check_errors): Don't sync if no requests were
made since the error trap was installed.

2 years ago* lisp/play/handwrite.el: Minor doc fixes.
Stefan Kangas [Tue, 31 May 2022 12:30:38 +0000 (14:30 +0200)]
* lisp/play/handwrite.el: Minor doc fixes.

2 years agoMake handwrite.el printing use more of the ps-print setup
Antonio Ruiz [Tue, 31 May 2022 11:27:28 +0000 (13:27 +0200)]
Make handwrite.el printing use more of the ps-print setup

* lisp/play/handwrite.el (handwrite): Allow ps-lpr-printer to be
computed at runtime (bug#55733).

Copyright-paperwork-exempt: yes

2 years agoFix replying to _NET_WM_PING during drag-and-drop
Po Lu [Tue, 31 May 2022 10:18:52 +0000 (18:18 +0800)]
Fix replying to _NET_WM_PING during drag-and-drop

* src/xterm.c (handle_one_xevent): Test client window against
root window instead of using nonstandard event mask.

2 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Po Lu [Tue, 31 May 2022 10:06:15 +0000 (18:06 +0800)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

2 years agoImplement `return-frame' for DND on NS
Po Lu [Tue, 31 May 2022 10:05:41 +0000 (18:05 +0800)]
Implement `return-frame' for DND on NS

* src/nsselect.m (Fns_begin_drag): New argument `return-frame'.
(syms_of_nsselect): New defsym.
* src/nsterm.h (EmacsWindow): New fields.
* src/nsterm.m (ns_read_socket): Split parts off to
ns_read_socket_1.
(ns_read_socket_1): New function.
(ns_flush_display): Use that function instead.

([EmacsWindow beginDrag:forPasteboard:]): Update for
return-frame.

2 years agoFix autorelease pool "straddling" during DND on NS
Po Lu [Tue, 31 May 2022 08:40:57 +0000 (16:40 +0800)]
Fix autorelease pool "straddling" during DND on NS

* src/nsterm.m (ns_mouse_position): Implement `drag-source'
on NS.
([EmacsView draggingUpdated:]): Add autorelease pool around
callbacks.
([EmacsWindow beginDrag:forPasteboard:]): Block input around
dragImage.

2 years agoPacify GCC 12 in x_get_current_wm_state
Paul Eggert [Tue, 31 May 2022 08:19:32 +0000 (01:19 -0700)]
Pacify GCC 12 in x_get_current_wm_state

* src/xterm.c (x_get_current_wm_state): When lint checking,
initialize reply_data to a non-null dummy value instead of to a
null one.  This pacifies GCC 12 -Wanalyzer-null-dereference.

2 years agoPacify GCC 12 in dump_queue_enqueue
Paul Eggert [Tue, 31 May 2022 08:19:32 +0000 (01:19 -0700)]
Pacify GCC 12 in dump_queue_enqueue

* src/pdumper.c (dump_queue_enqueue): Use BASE_EQ, not EQ.
This pacifies GCC 12 -Wanalyzer-null-dereference.

2 years agoBe more robust if doc file is corrupted
Paul Eggert [Tue, 31 May 2022 08:19:32 +0000 (01:19 -0700)]
Be more robust if doc file is corrupted

* src/doc.c (Fsnarf_documentation): Don’t dump core on a corrupted
doc file.  Problem found by GCC 12 -Wanalyzer-null-argument.

2 years agoPacify GCC 12 in Fmove_overlay
Paul Eggert [Tue, 31 May 2022 08:19:32 +0000 (01:19 -0700)]
Pacify GCC 12 in Fmove_overlay

* src/buffer.c (Fmove_overlay): Use BASE_EQ, not EQ.
This pacifies GCC 12 -Wanalyzer-null-dereference.

2 years agoPacify GCC 12 in Fx_show_tip
Paul Eggert [Tue, 31 May 2022 08:19:32 +0000 (01:19 -0700)]
Pacify GCC 12 in Fx_show_tip

* src/xfns.c (Fx_show_tip): Use BASE_EQ, not EQ.
This pacifies GCC 12 -Wanalyzer-null-dereference.

2 years agoPacify GCC 12 in xrdb.c
Paul Eggert [Tue, 31 May 2022 08:19:32 +0000 (01:19 -0700)]
Pacify GCC 12 in xrdb.c

* src/xrdb.c (x_get_resource): Simply assign the return value.
This pacifies GCC 12 -Wanalyzer-use-of-uninitialized-value.

2 years agoPacify GCC 12 false positive in ccl.c
Paul Eggert [Tue, 31 May 2022 08:19:32 +0000 (01:19 -0700)]
Pacify GCC 12 false positive in ccl.c

* src/ccl.c: Suppress -Wanalyzer-use-of-uninitialized-value
in GCC 12 or later.

2 years agoSimplify CHAR_TABLE_REF_ASCII
Paul Eggert [Tue, 31 May 2022 08:19:32 +0000 (01:19 -0700)]
Simplify CHAR_TABLE_REF_ASCII

* src/lisp.h (CHAR_TABLE_REF_ASCII): Refactor as a straightforward
for-loop.  Redo an if-then-else to be an (!if)-else-then as this
is a bit cleaner, and it also works around GCC bug 105755.

2 years agoAvoid undefined behavior in detect_coding routines
Paul Eggert [Tue, 31 May 2022 08:19:32 +0000 (01:19 -0700)]
Avoid undefined behavior in detect_coding routines

* src/coding.c (detect_coding): Always initialize all
components of detect_info, so that detect_coding_utf_8 etc.
do not have undefined behavior when they read detect_info.checked.
This bug is not likely to cause problems on real systems.
Problem found by GCC 12 -fanalyzer.
(detect_coding_system): Use consistent style with detect_coding
initialization.

2 years agoPacify GCC 12 -fanalyzer in x_popup_menu_1
Paul Eggert [Tue, 31 May 2022 08:19:32 +0000 (01:19 -0700)]
Pacify GCC 12 -fanalyzer in x_popup_menu_1

* src/menu.c (x_popup_menu_1): Rework to avoid unnecessary
initialization and test.  This also pacifies GCC 12.

2 years agoPacify GCC 12 -Wanalyzer-use-of-uninitialized-value
Paul Eggert [Tue, 31 May 2022 08:19:31 +0000 (01:19 -0700)]
Pacify GCC 12 -Wanalyzer-use-of-uninitialized-value

* lib-src/etags.c (readline_internal): Do not copy a pointer to
freed storage, as that has undefined behavior even if the pointer
is not dereferenced.
(relative_filename): Avoid a backward scan by remembering where
the last slash was.  This is a bit faster, and pacifies a GCC
false alarm.

2 years agoFix crashes displaying menu help text on NS
Po Lu [Tue, 31 May 2022 08:25:20 +0000 (16:25 +0800)]
Fix crashes displaying menu help text on NS

* src/nsterm.m (ns_flush_display): Run event loop manually,
avoiding a double free of an autorelease pool.

2 years agoFix processing of DND events on GTK
Po Lu [Tue, 31 May 2022 05:24:27 +0000 (13:24 +0800)]
Fix processing of DND events on GTK

* src/xterm.c (x_dnd_begin_drag_and_drop): Clear `current_count'
and `current_hold_quit' after calling gtk_main_iteration.

2 years agoFix unused variables on GTK
Po Lu [Tue, 31 May 2022 02:17:12 +0000 (10:17 +0800)]
Fix unused variables on GTK

* src/xterm.c (x_wait_for_cell_change): Fix unused variables
on GTK builds.

2 years agoFix initialization of `hold_quit' during DND
Po Lu [Tue, 31 May 2022 02:15:29 +0000 (10:15 +0800)]
Fix initialization of `hold_quit' during DND

* src/xterm.c (x_dnd_begin_drag_and_drop): Use `EVENT_INIT'
instead of just setting type to NO_EVENT.

2 years agoPrevent events from being lost waiting for selections on GTK
Po Lu [Tue, 31 May 2022 00:47:30 +0000 (08:47 +0800)]
Prevent events from being lost waiting for selections on GTK

* src/xterm.c (x_wait_for_cell_change): Use GTK to iterate the
main loop so events reach the toolkit.

2 years agoRegenerated ldefs-boot.el
Lars Ingebrigtsen [Mon, 30 May 2022 19:40:26 +0000 (21:40 +0200)]
Regenerated ldefs-boot.el

2 years agoFix 'debug-timer-check' on MS-Windows
Eli Zaretskii [Mon, 30 May 2022 17:51:19 +0000 (20:51 +0300)]
Fix 'debug-timer-check' on MS-Windows

* src/w32proc.c (w32_raise): New function.
* src/atimer.c (raise) [WINDOWSNT]: Redirect to 'w32_raise'.

2 years ago* lisp/progmodes/project.el: Improve file-reading history and default values.
Juri Linkov [Mon, 30 May 2022 16:30:54 +0000 (19:30 +0300)]
* lisp/progmodes/project.el: Improve file-reading history and default values.

(project-find-file): Use relative file name of the
currently visited file as an alternative default value.
(project-find-file-in, project-find-dir): Use 'file-name-history' (bug#55267).

2 years agoNonrecursive Lisp reader (bug#55676)
Mattias Engdegård [Tue, 24 May 2022 11:02:14 +0000 (13:02 +0200)]
Nonrecursive Lisp reader (bug#55676)

Restructure the reader to be nonrecursive so that it is not limited by
the C stack or crashes Emacs when reading deeply nested data.
This also improves performance.
A few minor bugs were fixed:

- (a .{NBSP}b) where {NBSP} is a non-breaking space (U+00A0) is now
  the dotted pair (a . b), not the 3-element list (a \. b), since U+00A0
  is treated as whitespace everywhere else.
- #_ with no symbol following is now equivalent to ## (empty interned
  symbol), not #: (empty uninterned symbol).

* src/alloc.c (garbage_collect): Call mark_lread.
* src/lread.c (readevalloop): Use read0 instead of read_list.
(stackbufsize): Increase to 1024, now that read0 isn't recursive.
(invalid_radix_integer): Buffer overflow check.
(read1, read_list, read_vector): Remove.
(read_char_literal, read_string_literal)
(hash_table_from_plist, record_from_list, vector_from_rev_list)
(bytecode_from_rev_list, char_table_from_rev_list)
(sub_char_table_from_rev_list, string_props_from_rev_list)
(read_bool_vector, skip_lazy_string, symbol_char_span)
(skip_space_and_comments)
(enum read_entry_type, struct read_stack_entry, struct read_stack)
(rdstack, mark_lread, read_stack_top, read_stack_pop)
(read_stack_empty_p, grow_read_stack, read_stack_push): New.
(read0): Rewrite to be nonrecursive.
* test/src/lread-tests.el (lread-deeply-nested, lread-misc): New tests.

2 years agoFix atimer setting and overdue expiration (bug#55628)
Mattias Engdegård [Mon, 30 May 2022 10:25:19 +0000 (12:25 +0200)]
Fix atimer setting and overdue expiration (bug#55628)

* src/atimer.c (set_alarm): If the atimer has already expired, signal
it right away instead of postponing it further.  Previously this could
occur repeatedly, blocking atimers indefinitely.
Also only use `alarm` as fallback if `setitimer` is unavailable, not
both at the same time (which makes no sense, and they both typically
use the same mechanism behind the curtains).

* test/src/eval-tests.el (eval-tests/funcall-with-delayed-message):
New test, verifying proper functioning of funcall-with-delayed-message
which also serves as test for this bug (which also caused
debug-timer-check to fail, but that test is only run when Emacs is
built with enable-checking).

2 years agoAdd more subscript and superscript characters to "C-x 8"
Eli Zaretskii [Mon, 30 May 2022 12:58:38 +0000 (15:58 +0300)]
Add more subscript and superscript characters to "C-x 8"

* lisp/international/iso-transl.el (iso-transl-char-map): Add more
numerical superscript and subscript characters.  (Bug#55722)

2 years agoAdd support for the Rejang script (bug#55718)
समीर सिंह Sameer Singh [Mon, 30 May 2022 02:18:45 +0000 (07:48 +0530)]
Add support for the Rejang script (bug#55718)

* lisp/language/indonesian.el ("Rejang"): New language environment.
Add composition rules for Rejang.  Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Rejang.
* lisp/leim/quail/indonesian.el ("rejang"): New input method.

* etc/HELLO: Add a Rejang greeting.
* etc/NEWS: Announce the new language environment.

2 years agoGet rid of `defvar-keymap' in flymake.el
Po Lu [Mon, 30 May 2022 10:09:41 +0000 (18:09 +0800)]
Get rid of `defvar-keymap' in flymake.el

* lisp/progmodes/flymake.el (flymake-mode-map)
(flymake-diagnostics-buffer-mode-map): Stop using
`defvar-keymap', since Flymake only requires Emacs 26.1.

2 years agoFix `dnd-indicate-insertion-point' on Mac OS
Po Lu [Mon, 30 May 2022 08:03:11 +0000 (16:03 +0800)]
Fix `dnd-indicate-insertion-point' on Mac OS

* lisp/term/ns-win.el (ns-handle-drag-motion): Remove debugging
code.

* src/nsterm.m ([EmacsView draggingUpdated:]): Redisplay here
instead.

2 years agoUpdate frame positions on Haiku after changing Z group
Po Lu [Mon, 30 May 2022 07:54:22 +0000 (07:54 +0000)]
Update frame positions on Haiku after changing Z group

* src/haiku_support.cc (EmacsScreenChangeMonitor): Fix comment.
* src/haikufns.c (haiku_set_z_group): Ask for a position update,
since changing the Z group might change the feel of the window.

2 years agoFix cursor flushing inside minibuffers on NS
Po Lu [Mon, 30 May 2022 07:06:55 +0000 (15:06 +0800)]
Fix cursor flushing inside minibuffers on NS

* src/nsterm.m (EV_TRAILER): Fix coding style.
(ns_flush_display): New function.
(ns_redisplay_interface): Register `flush_display'.

2 years agoFix hangs when x-get-selection is called inside a popup menu
Po Lu [Mon, 30 May 2022 06:04:43 +0000 (14:04 +0800)]
Fix hangs when x-get-selection is called inside a popup menu

* src/xselect.c (wait_for_property_change):
(x_get_foreign_selection): Use `x_wait_for_cell_change' if input
is blocked.  (bug#22214)
* src/xterm.c (x_wait_for_cell_change): New function.
* src/xterm.h: Update prototypes.

2 years agoMerge from origin/emacs-28
Stefan Kangas [Mon, 30 May 2022 04:30:24 +0000 (06:30 +0200)]
Merge from origin/emacs-28

1b7b69e764 Some Tramp cleanup on MS Windows

2 years agoTry to implement `dnd-indicate-insertion-point' on macOS
Po Lu [Mon, 30 May 2022 02:36:43 +0000 (10:36 +0800)]
Try to implement `dnd-indicate-insertion-point' on macOS

* lisp/term/ns-win.el (ns-handle-drag-motion): New function.
* src/nsterm.m ([EmacsView draggingUpdated:]): Call that
function instead.
(syms_of_nsterm): Clean up old style defvars and add new
defvar for the DND drag function.

2 years agoFurther clean up DND target handling
Po Lu [Mon, 30 May 2022 01:25:03 +0000 (09:25 +0800)]
Further clean up DND target handling

* src/xfns.c (Fx_begin_drag): Alloca target list.

* src/xterm.c (x_set_dnd_targets): Copy the given targets list.
(x_dnd_begin_drag_and_drop): Record freeing the targets list on
the specpdl.
(handle_one_xevent, x_dnd_cleanup_drag_and_drop)
(x_connection_closed, x_delete_terminal): Stop calling
`x_set_dnd_targets' manually to free the targets list.

2 years agoFix crash when loading Postscript images
Po Lu [Mon, 30 May 2022 01:07:27 +0000 (09:07 +0800)]
Fix crash when loading Postscript images

* src/xterm.c (handle_one_xevent): Catch errors around
`x_kill_gs_process'.

2 years agoUse XDrawPoint to clear relief rect corners
Po Lu [Mon, 30 May 2022 00:49:24 +0000 (08:49 +0800)]
Use XDrawPoint to clear relief rect corners

* xterm.c (x_clear_point): New function.
(x_draw_relief_rect): Use that instead.

2 years agoDocument decoded-time-string issue on 6-elt args
Paul Eggert [Sun, 29 May 2022 21:57:48 +0000 (14:57 -0700)]
Document decoded-time-string issue on 6-elt args

* lisp/simple.el: Document problematic use of decoded-time-dst on
6-element args.

2 years agoISO 8601 strings sans "Z" don’t specify DST flag
Paul Eggert [Sun, 29 May 2022 20:07:50 +0000 (13:07 -0700)]
ISO 8601 strings sans "Z" don’t specify DST flag

* lisp/calendar/iso8601.el (iso8601--zone-dst): New function.
(iso8601-parse, iso8601-parse-time): Use it.
(iso8601--decoded-time): Default dst to -1, not nil.
* test/lisp/calendar/iso8601-tests.el (test-iso8601-combined)
(standard-test-time-of-day-zone): Adjust to new behavior.

2 years agoDoc fix for dst flag
Paul Eggert [Sun, 29 May 2022 15:52:13 +0000 (08:52 -0700)]
Doc fix for dst flag

* doc/lispref/os.texi (Time Conversion): Note Common Lisp dst differs.

2 years ago* lisp/shell.el (shell): Fix last change
Stefan Monnier [Sun, 29 May 2022 17:37:44 +0000 (13:37 -0400)]
* lisp/shell.el (shell): Fix last change

Wrap the file-name prompt within `with-connection-local-variables` as
it was before the previous change.
While at it, make sure we set the `default-directory` of
the actual shell buffer after querying the user.

2 years ago; Fix Batak greeting
Eli Zaretskii [Sun, 29 May 2022 17:12:56 +0000 (20:12 +0300)]
; Fix Batak greeting

* etc/HELLO:
* lisp/language/indonesian.el ("Batak"): Fix greeting.

2 years ago; Fix last change (bug#55694)
Eli Zaretskii [Sun, 29 May 2022 16:35:15 +0000 (19:35 +0300)]
; Fix last change (bug#55694)

* etc/HELLO ("Batak"): Add one more greeting.

* lisp/language/indonesian.el ("Batak"): Fix doc string and add
one more greeting.

2 years agoAdd support for the Batak script (bug #55694)
समीर सिंह Sameer Singh [Sun, 29 May 2022 13:25:58 +0000 (18:55 +0530)]
Add support for the Batak script (bug #55694)

* lisp/language/indonesian.el ("Batak"): New language environment.
Add composition rules for Batak.  Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Batak.
* lisp/leim/quail/indonesian.el ("batak"): New input method.
Rename TITLE of balinese, javanese and sundanese in
("quail-define-package").

* etc/HELLO: Add a Batak greeting.
* etc/NEWS: Announce the new language environment and its
input method.

2 years agoFix hfy-etags-cmd type
Lars Ingebrigtsen [Sun, 29 May 2022 14:40:53 +0000 (16:40 +0200)]
Fix hfy-etags-cmd type

* lisp/htmlfontify.el (hfy-etags-cmd): Fix the type -- this
variable usually ends up being nil.

2 years agoFix reference to help-enable-variable-value-editing
Daniel Martín [Sun, 29 May 2022 14:31:38 +0000 (16:31 +0200)]
Fix reference to help-enable-variable-value-editing

* lisp/help-mode.el (help-mode): Fix docstring to reference the
correct variable name.
* lisp/ldefs-boot.el (help-mode): Ditto (bug#55705).

2 years ago* etc/tutorial/TUTORIAL.cn (INSTALLING PACKAGES): Translate from English.
Po Lu [Sun, 29 May 2022 12:13:25 +0000 (20:13 +0800)]
* etc/tutorial/TUTORIAL.cn (INSTALLING PACKAGES): Translate from English.

2 years agoSome Tramp cleanup on MS Windows
Michael Albinus [Sun, 29 May 2022 11:31:32 +0000 (13:31 +0200)]
Some Tramp cleanup on MS Windows

* lisp/net/tramp.el (tramp-restricted-shell-hosts-alist): Do not add
localhost when `tramp-encoding-shell' is a POSIX shell.

* test/lisp/net/tramp-tests.el (tramp-test31-interrupt-process):
Skip on MS Windows.