]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 years agoFix chunked encoding connections in url-http
Nacho Barrientos [Sun, 17 Apr 2022 11:00:12 +0000 (13:00 +0200)]
Fix chunked encoding connections in url-http

* lisp/url/url-http.el
(url-http-chunked-encoding-after-change-function): Ensure that chunked
encoding is interpreted correctly (bug#54989).

As per [0], the last chunk of 0 bytes is always accompanied by a last
CRLF that signals the end of the message:

     chunked-body   = *chunk
                      last-chunk
                      trailer-part
                      CRLF
                      ^ this one

     chunk          = chunk-size [ chunk-ext ] CRLF
                      chunk-data CRLF
     chunk-size     = 1*HEXDIG
     last-chunk     = 1*("0") [ chunk-ext ] CRLF

     chunk-data     = 1*OCTET ; a sequence of chunk-size octets

`url-http-chunked-encoding-after-change-function' is able to process
(and remove) that terminator IF AVAILABLE in the buffer when
processing the response, however it won't wait for it if it's not yet
there.

In other words:

| Bottom of the response buffer | Bottom of the full response |
|    (visible to url-http)      | (to be delivered to Emacs)  |
| ------------------------------+-----------------------------|
| 0\r\n                         | 0\r\n                       |
|                               | \r\n                        |

If the last chunk is processed when the bottom of the response buffer
is as above (note that the whole response has not yet been delivered
to Emacs), url-http will call the user callback without waiting for
the final terminator to be read from the socket.

This is normally not an issue when doing one-shot requests, but it's
problematic when the connection is reused immediately. As there are 2
bytes from the request N that have not been dealt with, they'll be
considered as part of the response of the request N+1. On top, it
turns out that when processing the headers of request N+1,
`url-http-wait-for-headers-change-function' will consider the request
a "headerless malformed response" delivering it broken to the caller.

The proposed fix implements a state in which
`url-http-chunked-encoding-after-change-function` properly waits for
the very last element of the message preventing the problem explained
above from happening.

For additional context, this bug was found when debugging
magit/ghub (see [1] for details).

[0] https://datatracker.ietf.org/doc/html/rfc7230#section-4.1
[1] https://github.com/magit/ghub/issues/81

Copyright-paperwork-exempt: yes

2 years agoRemove duplicates from Info-read-node-name-2
Oleh Krehel [Sun, 17 Apr 2022 10:50:05 +0000 (12:50 +0200)]
Remove duplicates from Info-read-node-name-2

* lisp/info.el (Info-read-node-name-2): Remove duplicates from
completions (bug#20365).

2 years agoFix instructions on how to enable password-store
Lars Ingebrigtsen [Sun, 17 Apr 2022 10:39:41 +0000 (12:39 +0200)]
Fix instructions on how to enable password-store

* doc/misc/auth.texi (Help for users): Give the correct
instructions on how to enable password store (bug#30900).

2 years agoClarify setopt NEWS entry
Lars Ingebrigtsen [Sun, 17 Apr 2022 10:27:40 +0000 (12:27 +0200)]
Clarify setopt NEWS entry

2 years agoDo some NEWS tagging
Lars Ingebrigtsen [Sun, 17 Apr 2022 10:18:58 +0000 (12:18 +0200)]
Do some NEWS tagging

2 years agoAdd a doc string to xref-current-item
Lars Ingebrigtsen [Sun, 17 Apr 2022 10:17:30 +0000 (12:17 +0200)]
Add a doc string to xref-current-item

* lisp/progmodes/xref.el (xref-after-jump-hook): Link to it.
(xref-current-item): Add a doc string to the now-public variable.

2 years agoClarify emacs-news--heading-p logic
Lars Ingebrigtsen [Sun, 17 Apr 2022 10:11:36 +0000 (12:11 +0200)]
Clarify emacs-news--heading-p logic

* lisp/textmodes/emacs-news-mode.el (emacs-news--heading-p):
Clarify the logic.

2 years agoMove some entries around in the NEWS file
Lars Ingebrigtsen [Sun, 17 Apr 2022 09:06:23 +0000 (11:06 +0200)]
Move some entries around in the NEWS file

2 years agoFix up the NEWS entry for emacs-news*-mode
Lars Ingebrigtsen [Sun, 17 Apr 2022 09:00:08 +0000 (11:00 +0200)]
Fix up the NEWS entry for emacs-news*-mode

2 years ago* src/filelock.c (Fcreate_lockfiles): Doc string fix.
Paul Eggert [Sun, 17 Apr 2022 08:50:59 +0000 (01:50 -0700)]
* src/filelock.c (Fcreate_lockfiles): Doc string fix.

2 years agoMerge from origin/emacs-28
Paul Eggert [Sun, 17 Apr 2022 08:44:30 +0000 (01:44 -0700)]
Merge from origin/emacs-28

4641bc1c55 Fix GC bug in filelock.c

2 years agoFix race conditions waiting for menu bar resize events on Haiku
Po Lu [Sun, 17 Apr 2022 08:13:49 +0000 (08:13 +0000)]
Fix race conditions waiting for menu bar resize events on Haiku

* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
Clear `wait_for_event_type'.
(haiku_set_menu_bar_lines): Clean up coding style.
* src/haikuterm.c (haiku_wait_for_event): New function.
(haiku_read_socket): Implement waiting for MENU_BAR_RESIZE
events.
* src/haikuterm.h (struct haiku_output): New field
`wait_for_event_type'.

2 years agoFix race conditions waiting for menu bar resize events on Haiku
Po Lu [Sun, 17 Apr 2022 08:10:01 +0000 (08:10 +0000)]
Fix race conditions waiting for menu bar resize events on Haiku

* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame)
(haiku_set_menu_bar_lines): Clear `wait_for_event_type'.
* src/haikumenu.c (set_frame_menubar): Wait for menu bar resize
event.
* src/haikuterm.c (haiku_wait_for_event): New function.
(haiku_read_socket): Handle waiting for MENU_BAR_RESIZE.
* src/haikuterm.h (struct haiku_output): New field
`wait_for_event_type'.

2 years agoGet rid of unused flags on Haiku
Po Lu [Sun, 17 Apr 2022 07:29:36 +0000 (07:29 +0000)]
Get rid of unused flags on Haiku

* src/haikufns.c (haiku_free_frame_resources): Syntax fixes.
* src/haikumenu.c (set_frame_menubar, run_menu_bar_help_event):
* src/haikuterm.c (haiku_read_socket): Stop setting and
consulting `menu_up_to_date_p'.
* src/haikuterm.h (struct haiku_output): Delete
`menu_up_to_date_p'.

2 years ago* src/haikufns.c (haiku_free_frame_resources): Free saved menu event.
Po Lu [Sun, 17 Apr 2022 07:16:03 +0000 (07:16 +0000)]
* src/haikufns.c (haiku_free_frame_resources): Free saved menu event.

2 years agoFix hangs when clicking on Haiku menu bar to activate frame
Po Lu [Sun, 17 Apr 2022 07:15:17 +0000 (07:15 +0000)]
Fix hangs when clicking on Haiku menu bar to activate frame

* src/haiku_io.c (haiku_len): Handle new event `MENU_BAR_CLICK'.
* src/haiku_support.cc (class EmacsWindow): Remove most of the
menu bar cv stuff.
(MessageReceived): Handle REPLAY_MENU_BAR message.
(EmacsWindow_signal_menu_update_complete): Delete function.
(be_replay_menu_bar_event): New function.

* src/haiku_support.h (enum haiku_event_type): New event type
`MENU_BAR_CLICK'.
(struct haiku_menu_bar_click_event): New struct.

* src/haikumenu.c (haiku_activate_menubar): New function.
* src/haikuterm.c (haiku_read_socket): Save a
MENU_BAR_ACTIVATE_EVENT and the menu bar click event instead of
handling the menu bar update synchronously.
(haiku_create_terminal): Set `activate_menubar_hook'.
(syms_of_haikuterm): Remove extraneous newline.

* src/haikuterm.h (struct haiku_output): New field
`saved_menu_event'.

2 years agoFix GC bug in filelock.c
Paul Eggert [Sun, 17 Apr 2022 08:06:46 +0000 (01:06 -0700)]
Fix GC bug in filelock.c

Fix a bug where if GC occurred at the wrong moment when locking a
file, the lock file’s name was trashed so file locking did not work.
This bug was introduced in Emacs 28.1.  The bug sometimes caused
filelock-tests-detect-external-change test failures on Fedora 35
x86-64 in an en_US.utf8 locale.
* src/filelock.c (lock_file_1, current_lock_owner, lock_if_free)
(lock_file, unlock_file, Ffile_locked_p):
Use Lisp_Object, not char *, for string, so that GC doesn’t trash
string contents.
(make_lock_file_name): Return the encoded name, not the original.
All callers changed.

2 years agoAdd 'G' argument predicate in Eshell
Jim Porter [Sat, 2 Apr 2022 05:06:02 +0000 (22:06 -0700)]
Add 'G' argument predicate in Eshell

* lisp/eshell/em-pred.el (eshell-predicate-alist): Add 'G' predicate.
(eshell-predicate-help-string): Document it.  (Bug#54470)

* test/lisp/eshell/em-pred-tests.el
(em-pred-test/predicate-effective-gid): New test.

* doc/misc/eshell.text (Argument Predication): Document 'G' predicate.

2 years agoAdd unit tests and documentation for Eshell predicates/modifiers
Jim Porter [Sat, 19 Mar 2022 19:41:13 +0000 (12:41 -0700)]
Add unit tests and documentation for Eshell predicates/modifiers

* lisp/eshell/esh-cmd.el (eshell-eval-argument): New function.
* lisp/eshell/esh-util.el (eshell-file-attributes): Pass original
value of FILE to 'file-attributes'.
* lisp/eshell/em-pred.el (eshell-predicate-alist): Change socket char
to '=', since 's' conflicts with setuid.
(eshell-modifier-alist): Fix 'E' (eval) modifier by using
'eshell-eval-argument'.  Also improve performance of 'O' (reversed
sort) modifier.
(eshell-modifier-help-string): Fix documentation of global
substitution modifier.
(eshell-pred-substitute): Fix infinite loop in some global
substitutions.
(eshell-join-members): Fix joining with implicit " " delimiter.
(Bug#54470)

* test/lisp/eshell/em-pred-tests.el: New file.

* doc/misc/eshell.texi (Argument Predication): New section.

2 years agoAdd unit tests and documentation for Eshell pattern-based globs
Jim Porter [Wed, 9 Mar 2022 01:07:26 +0000 (17:07 -0800)]
Add unit tests and documentation for Eshell pattern-based globs

* lisp/eshell/em-glob.el (eshell-extended-glob): Fix docstring.
(eshell-glob-entries): Refer to '**/' in error (technically, '**' can
end a glob, but it means the same thing as '*').  (Bug#54470)

* test/lisp/eshell/em-glob-tests.el: New file.

* doc/misc/eshell.texi (Globbing): Document pattern-based globs.

2 years agoMake sure the ftcr font driver is used on Haiku when Cairo is enabled
Po Lu [Sun, 17 Apr 2022 04:06:52 +0000 (04:06 +0000)]
Make sure the ftcr font driver is used on Haiku when Cairo is enabled

* src/haikufont.c (syms_of_haikufont): [USE_BE_CAIRO]: Make sure
`ftcr' superseeds `haiku'.

2 years agoDocument encode-time caveats
Paul Eggert [Sun, 17 Apr 2022 01:48:51 +0000 (18:48 -0700)]
Document encode-time caveats

* doc/lispref/os.texi (Time of Day, Time Conversion):
Move the warnings about DST being -1 to closer to where DST is
discussed, and reword and improve the discussions and warnings.
Be more precise about years before 1969 (possible west of UTC) vs the
Epoch.  Mention some problems due to leap seconds, leap years,
daylight saving transitions, and time zone changes.  Modernize
discussion of OS timestamp range.  Prefer secular ‘BCE’ to religious
‘BC’.  Omit discussion of decoded-time-add and make-decoded-time, as
they are in a library and are not always available; instead, mention
the library.  Warn about common mistakes when doing simple date
arithmetic.
* src/timefns.c (Fencode_time): In doc string, mention date
arithmetic and tighten up the wording a bit.

2 years agoStress difference of new and old ways to call `encode-time'
Max Nikulin [Sun, 17 Apr 2022 01:48:51 +0000 (18:48 -0700)]
Stress difference of new and old ways to call `encode-time'

* doc/lispref/os.texi (Time Conversion): Add a warning that blind
changing of code calling `encode-time' to use single list instead of
multiple values may cause deferred bugs since it is common to use nil
for ignored arguments such as DST in the old calling convention.
* src/timefns.c (encode-time): Mention the warning added to the elisp
reference in the docstring.

Refactoring related to `encode-time' caused (bug#54731), so it is better
to make apparent the difference between the recommended and the
obsolescent ways to call the function.  More details concerning the
purpose and limitations of the DST field are added after discussion with
Paul Eggert in (bug#54764).

2 years agoRestore pending_signals at a point in the DND event loop
Po Lu [Sun, 17 Apr 2022 00:38:37 +0000 (08:38 +0800)]
Restore pending_signals at a point in the DND event loop

* src/xterm.c (x_dnd_begin_drag_and_drop): Restore
pending_signals after unblock_input.

2 years agoAdd basic Texinfo support for Flymake.
Earl Hyatt [Tue, 7 Dec 2021 02:04:27 +0000 (21:04 -0500)]
Add basic Texinfo support for Flymake.

* lisp/textmodes/texinfo.el (texinfo-flymake, texinfo--flymake-proc)
(texinfo-mode):
Add the functions texinfo-flymake and process variable
texinfo--flymake-proc.  Modify texinfo-mode to automatically add this
function to the hook flymake-diagnostic-functions.

2 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Eli Zaretskii [Sat, 16 Apr 2022 18:05:54 +0000 (14:05 -0400)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

Merge from emacs-28.

2 years ago; Merge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:58:34 +0000 (13:58 -0400)]
; Merge from origin/emacs-28

The following commit was skipped:

1c495aff71 Clarify when mode tagging is used

2 years agoMerge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:58:31 +0000 (13:58 -0400)]
Merge from origin/emacs-28

d53c999b4a Further vcs-cvs/rcs-responsible-p updates from master
dc3d1628ec ; * src/sysdep.c: Fix mistake in previous commit
855e15dbf1 Fix builds on older versions of macOS
9da744e450 Fix documentation of Outline minor mode options
a8bb12ab05 Improve discoverability of 'insert-directory-program'
3f166bdf44 ; * etc/PROBLEMS: Describe MS-Windows issues with fonts.  ...
803ac857ee Fix cursor motion under truncate-lines with Flymake fringe...

# Conflicts:
# etc/PROBLEMS
# lisp/outline.el
# src/sysdep.c

2 years ago; Merge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:46:05 +0000 (13:46 -0400)]
; Merge from origin/emacs-28

The following commit was skipped:

bc63651588 Make all vc-*-responsible-p functions return a string

2 years agoMerge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:46:04 +0000 (13:46 -0400)]
Merge from origin/emacs-28

b201823f63 Describe problems with invoking Python on MS-Windows
880f2734c9 A better fix for bug#54800
5ee959aa87 Add a comment about cl-concatenate
ab2b822b9b Revert "Make cl-concatenate an alias of seq-concatenate"

2 years ago; Merge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:46:04 +0000 (13:46 -0400)]
; Merge from origin/emacs-28

The following commit was skipped:

78e1640ad5 Fix 'window-text-pixel-width' when starting from display p...

2 years agoMerge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:45:50 +0000 (13:45 -0400)]
Merge from origin/emacs-28

5e47d6284b * lisp/gnus/mm-encode.el (mm-default-file-encoding): Fix "...
e71c7a7c60 Fix default-directory of buffers visiting files in renamed...
cccaa9c31d Fix a kill-append regression
33828e4818 * doc/misc/eww.texi (Advanced): Correct outdated info (bug...
e8d2f40f41 Clean up the MSDOS port
338eda09d8 Fix typo in next-error-find-buffer-function

# Conflicts:
# doc/misc/eww.texi

2 years ago; Merge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:43:33 +0000 (13:43 -0400)]
; Merge from origin/emacs-28

The following commit was skipped:

b385fd0b88 Revert "Make shell-resync-dirs handle whitespace in direct...

2 years agoMerge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:43:33 +0000 (13:43 -0400)]
Merge from origin/emacs-28

84a2857722 Fix scrolling of the stack window in Calc
9dd44505b1 ; * src/window.c (Fset_window_start): Clarify the effect o...
24a6c7c8c0 Update and fix instructions and scripts for updating the W...
886339747b Extend tramp-archive-test45-auto-load
ff997ad786 Ensure local `default-directory' in Tramp when needed
4f27588a16 Clarify "idleness" in the ELisp manual

2 years ago; Merge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:43:33 +0000 (13:43 -0400)]
; Merge from origin/emacs-28

The following commit was skipped:

98abf01fd6 Use correct signal oldset in posix_spawn implementation

2 years agoMerge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:43:32 +0000 (13:43 -0400)]
Merge from origin/emacs-28

aab36e1895 Fix error in tramp-archive-autoload-file-name-handler
11a1f7817e Merge branch 'emacs-28' of git.sv.gnu.org:/srv/git/emacs i...
93974198b6 Commit missing file from previous commit

2 years ago; Merge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:43:32 +0000 (13:43 -0400)]
; Merge from origin/emacs-28

The following commits were skipped:

71f51f1b9d Commit missing file from previous commit (Do not merge wit...
009e88e002 Merge with Tramp 2.5.2.3 (Do not merge with master)
4161a36849 cl-generic.el: Fix bug#46722

2 years agoMerge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:43:32 +0000 (13:43 -0400)]
Merge from origin/emacs-28

8c71ac606e Fix fallout from lexical-binding in vhdl-mode.el

2 years ago; Merge from origin/emacs-28
Eli Zaretskii [Sat, 16 Apr 2022 17:43:31 +0000 (13:43 -0400)]
; Merge from origin/emacs-28

The following commit was skipped:

dd3863d8bc ; Prepare the release branch for Emacs-28.2 development

2 years agoRegenerated ldefs-boot.el
Lars Ingebrigtsen [Sat, 16 Apr 2022 17:42:44 +0000 (19:42 +0200)]
Regenerated ldefs-boot.el

2 years agoDon't leave `C-h N' in a text-mode derived mode
Lars Ingebrigtsen [Sat, 16 Apr 2022 17:42:33 +0000 (19:42 +0200)]
Don't leave `C-h N' in a text-mode derived mode

* lisp/help.el (view-emacs-news): Use emacs-news-view-mode.
* lisp/textmodes/emacs-news-mode.el (emacs-news-view-mode): Split
into own mode to avoid confusion.

2 years agoFix button-buffer-map binding error
Lars Ingebrigtsen [Sat, 16 Apr 2022 17:32:26 +0000 (19:32 +0200)]
Fix button-buffer-map binding error

* lisp/button.el (button-buffer-map): Fix error in map rewriting
in previous commit.

2 years agoAdd new commands to go to headings/sections in the NEWS file
Lars Ingebrigtsen [Sat, 16 Apr 2022 17:14:34 +0000 (19:14 +0200)]
Add new commands to go to headings/sections in the NEWS file

* lisp/textmodes/emacs-news-mode.el (emacs-news-find-heading)
(emacs-news-goto-section): New commands.

2 years ago; * doc/emacs/mini.texi (Completion Commands): Fix markup.
Eli Zaretskii [Sat, 16 Apr 2022 16:37:00 +0000 (19:37 +0300)]
; * doc/emacs/mini.texi (Completion Commands): Fix markup.

2 years agoAdd emacs-news-previous-untagged-entry command
Lars Ingebrigtsen [Sat, 16 Apr 2022 16:35:11 +0000 (18:35 +0200)]
Add emacs-news-previous-untagged-entry command

* lisp/textmodes/emacs-news-mode.el
(emacs-news-next-untagged-entry): Allow searching backward.
(emacs-news-previous-untagged-entry): New command and keystroke.

2 years ago; * lisp/language/indian.el ("Brahmi"): Enhance composition rules.
Eli Zaretskii [Sat, 16 Apr 2022 16:27:25 +0000 (19:27 +0300)]
; * lisp/language/indian.el ("Brahmi"): Enhance composition rules.

2 years agoFold some too-long NEWS lines
Lars Ingebrigtsen [Sat, 16 Apr 2022 16:08:42 +0000 (18:08 +0200)]
Fold some too-long NEWS lines

2 years agoDo some NEWS tagging
Lars Ingebrigtsen [Sat, 16 Apr 2022 15:59:05 +0000 (17:59 +0200)]
Do some NEWS tagging

2 years agoDo some NEWS tagging
Lars Ingebrigtsen [Sat, 16 Apr 2022 15:38:37 +0000 (17:38 +0200)]
Do some NEWS tagging

2 years agoImprove exif-field discoverability
Lars Ingebrigtsen [Sat, 16 Apr 2022 15:35:44 +0000 (17:35 +0200)]
Improve exif-field discoverability

* lisp/image/exif.el (exif-parse-file, exif-parse-buffer): Link to
`exif-field'.

2 years agoDo some NEWS tagging
Lars Ingebrigtsen [Sat, 16 Apr 2022 15:33:19 +0000 (17:33 +0200)]
Do some NEWS tagging

2 years agoDocument project-kill-buffers-display-buffer-list
Lars Ingebrigtsen [Sat, 16 Apr 2022 15:30:32 +0000 (17:30 +0200)]
Document project-kill-buffers-display-buffer-list

* doc/emacs/maintaining.texi (Project Buffer Commands): Mention
project-kill-buffers-display-buffer-list.

* lisp/progmodes/project.el (project-kill-buffers): Link to
project-kill-buffers-display-buffer-list.

2 years agoDocument prefix to project-find-file
Lars Ingebrigtsen [Sat, 16 Apr 2022 15:27:37 +0000 (17:27 +0200)]
Document prefix to project-find-file

* doc/emacs/maintaining.texi (Project File Commands): Mention the
prefix in the project-find-file command.

2 years agoFix glyphless-display-mode indexing
Lars Ingebrigtsen [Sat, 16 Apr 2022 15:21:43 +0000 (17:21 +0200)]
Fix glyphless-display-mode indexing

* doc/lispref/display.texi (Glyphless Chars): Fix indexing.

2 years agoDocument completions-sort
Lars Ingebrigtsen [Sat, 16 Apr 2022 15:20:04 +0000 (17:20 +0200)]
Document completions-sort

* doc/emacs/mini.texi (Completion Options): Document completions-sort.

2 years agoMention completion-wrap-movement in relevant commands
Lars Ingebrigtsen [Sat, 16 Apr 2022 15:17:05 +0000 (17:17 +0200)]
Mention completion-wrap-movement in relevant commands

* lisp/simple.el (previous-completion, next-completion): Mention
`completion-wrap-movement'.

2 years agoDocument minibuffer-completion-auto-choose/M-up/M-down
Lars Ingebrigtsen [Sat, 16 Apr 2022 15:14:08 +0000 (17:14 +0200)]
Document minibuffer-completion-auto-choose/M-up/M-down

* doc/emacs/mini.texi (Completion Commands): Document
minibuffer-completion-auto-choose/M-up/M-down.

2 years agoFurther IDNA/proxy url fixes
Lars Ingebrigtsen [Sat, 16 Apr 2022 15:02:01 +0000 (17:02 +0200)]
Further IDNA/proxy url fixes

* lisp/url/url-http.el (url-http-create-request): Puny-encode
domains (bug#54921).

2 years agoCrosslink some buttonize function doc strings
Lars Ingebrigtsen [Sat, 16 Apr 2022 14:59:41 +0000 (16:59 +0200)]
Crosslink some buttonize function doc strings

* lisp/button.el (buttonize-region, buttonize): Crosslink doc
strings for discoverability.

2 years agoImprove completion in `C-h R'
Lars Ingebrigtsen [Sat, 16 Apr 2022 14:35:57 +0000 (16:35 +0200)]
Improve completion in `C-h R'

* lisp/info.el (info-display-manual): Use it (bug#54961).
(info--filter-manual-names): Filter away duplicates and irrelevant
files.

2 years agoClarify when mode tagging is used
Lars Ingebrigtsen [Sat, 16 Apr 2022 14:24:39 +0000 (16:24 +0200)]
Clarify when mode tagging is used

* etc/NEWS: Clarify when mode tagging is used (bug#54964).

2 years agoFurther vcs-cvs/rcs-responsible-p updates from master
Lars Ingebrigtsen [Thu, 14 Apr 2022 14:51:39 +0000 (16:51 +0200)]
Further vcs-cvs/rcs-responsible-p updates from master

* lisp/vc/vc-bzr.el (vc-bzr-responsible-p):
* lisp/vc/vc-sccs.el (vc-sccs-responsible-p):
* lisp/vc/vc-dav.el (vc-dav-responsible-p): Update doc string.

* lisp/vc/vc-rcs.el (vc-rcs-responsible-p):
* lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Further fixes from
master.

* lisp/vc/vc-src.el (vc-src-responsible-p): Return the directory.

* lisp/vc/vc.el: Update comments.

2 years agoMake emacs-news-next-untagged-entry push the mark
Lars Ingebrigtsen [Sat, 16 Apr 2022 14:11:45 +0000 (16:11 +0200)]
Make emacs-news-next-untagged-entry push the mark

* lisp/textmodes/emacs-news-mode.el
(emacs-news-next-untagged-entry): Push the mark for easier
navigation back to where we were.

2 years agoFix NEWS tag commands
Lars Ingebrigtsen [Sat, 16 Apr 2022 14:07:25 +0000 (16:07 +0200)]
Fix NEWS tag commands

* lisp/textmodes/emacs-news-mode.el
(emacs-news-next-untagged-entry): Fix logic.
(emacs-news-count-untagged-entries): Add new command and keystroke.

2 years agoClean up emacs-news--buttonize
Lars Ingebrigtsen [Sat, 16 Apr 2022 13:58:20 +0000 (15:58 +0200)]
Clean up emacs-news--buttonize

* lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize):
Remove unnecessary check left over from previous version.

2 years agoBind TAB and <backtab> on buttons
Lars Ingebrigtsen [Sat, 16 Apr 2022 13:57:33 +0000 (15:57 +0200)]
Bind TAB and <backtab> on buttons

* lisp/button.el (button-map): Inherit from 'button-buffer-map'.

2 years agoRegenerated ldefs-boot.el
Lars Ingebrigtsen [Sat, 16 Apr 2022 13:40:57 +0000 (15:40 +0200)]
Regenerated ldefs-boot.el

2 years agoAdd a new mode for editing and viewing the Emacs NEWS file
Lars Ingebrigtsen [Sat, 16 Apr 2022 13:40:43 +0000 (15:40 +0200)]
Add a new mode for editing and viewing the Emacs NEWS file

* etc/NEWS (mode): Use emacs-news-mode.
* lisp/help.el (view-emacs-news): Use emacs-news-mode.

* lisp/textmodes/emacs-news-mode.el: New mode for editing and
viewing the Emacs NEWS file.

2 years agoAdd new function buttonize-region
Lars Ingebrigtsen [Sat, 16 Apr 2022 13:39:03 +0000 (15:39 +0200)]
Add new function buttonize-region

* lisp/button.el (buttonize-region): New function.
(button--properties): Factored out.
(buttonize): Use it.

2 years agoPrevent race conditions with async input during drag-and-drop
Po Lu [Sat, 16 Apr 2022 11:12:04 +0000 (19:12 +0800)]
Prevent race conditions with async input during drag-and-drop

* src/xterm.c (XTread_socket): Don't read events here during
drag-and-drop, otherwise the right hold_quit might not be used
for selection events.

2 years agoFix builds on older versions of macOS
Mattias Engdegård [Sat, 16 Apr 2022 09:33:14 +0000 (11:33 +0200)]
Fix builds on older versions of macOS

This adds back macOS-specific code replaced earlier (bug#48548),
specifically to fix build errors on macOS 10.7.5.  See discussion at
https://lists.gnu.org/archive/html/emacs-devel/2022-04/msg00779.html .

* src/sysdep.c (HAVE_RUSAGE_INFO_CURRENT, HAVE_PROC_PIDINFO): New.
(system_process_attributes): Use alternative code or exclude features
when building on older macOS versions.

(cherry picked from commit 855e15dbf10a6aac42b860fdb28711f979e2bf22)

2 years agoImprove support for the Brahmi script
Eli Zaretskii [Sat, 16 Apr 2022 10:18:47 +0000 (13:18 +0300)]
Improve support for the Brahmi script

* lisp/language/indian.el ("Brahmi"): New language environment.
Add composition rules for Brahmi.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Brahmi.  (Bug#54914)

* etc/NEWS: Announce the new language environment.

2 years ago; * src/sysdep.c: Fix mistake in previous commit
Mattias Engdegård [Sat, 16 Apr 2022 10:16:45 +0000 (12:16 +0200)]
; * src/sysdep.c: Fix mistake in previous commit

2 years agoFix builds on older versions of macOS
Mattias Engdegård [Sat, 16 Apr 2022 09:33:14 +0000 (11:33 +0200)]
Fix builds on older versions of macOS

This adds back macOS-specific code replaced earlier (bug#48548),
specifically to fix build errors on macOS 10.7.5.  See discussion at
https://lists.gnu.org/archive/html/emacs-devel/2022-04/msg00779.html .

* src/sysdep.c (HAVE_RUSAGE_INFO_CURRENT, HAVE_PROC_PIDINFO): New.
(system_process_attributes): Use alternative code or exclude features
when building on older macOS versions.

2 years agoDisable annoying Clang warnings
Mattias Engdegård [Sat, 16 Apr 2022 09:31:58 +0000 (11:31 +0200)]
Disable annoying Clang warnings

* configure.ac (CHECK_LISP_OBJECT_TYPE): Disable
-Wimplicit-const-int-float-conversion and -Wint-in-bool-context, which
currently only have false positives.

2 years agoFix ODF file detection in doc-view-mode
Lars Ingebrigtsen [Sat, 16 Apr 2022 09:21:25 +0000 (11:21 +0200)]
Fix ODF file detection in doc-view-mode

* lisp/doc-view.el (doc-view-set-doc-type): Fix ODF file detection
(bug#54947).

2 years agoFix build with toolkit scroll bars without XI2
Po Lu [Sat, 16 Apr 2022 09:13:21 +0000 (17:13 +0800)]
Fix build with toolkit scroll bars without XI2

* src/xterm.c (mark_xterm): Fix up ifdefs slightly.

2 years agoProtect windows from garbage collection when a ClientMessage is pending
Po Lu [Sat, 16 Apr 2022 08:48:02 +0000 (16:48 +0800)]
Protect windows from garbage collection when a ClientMessage is pending

* src/xterm.c (x_protect_window_for_callback)
(x_unprotect_window_for_callback): New functions.
(x_send_scroll_bar_event): Protect windows from garbage
collection before sending event containing pointer to window.
(handle_one_xevent): Unprotect after such a ClientMessage is
received and the window put in the keyboard buffer.
(x_term_init): Initialize protected windows list.
(x_delete_display): Free that list.
(mark_xterm): Mark the windows in that list.
* src/xterm.h (struct x_display_info): New fields for recording
a list of protected windows.

2 years ago; * lisp/window.el (display-buffer-assq-regexp): Doc fix.
Eli Zaretskii [Sat, 16 Apr 2022 08:41:48 +0000 (11:41 +0300)]
; * lisp/window.el (display-buffer-assq-regexp): Doc fix.

2 years agoFix documentation of Outline minor mode options
Eli Zaretskii [Sat, 16 Apr 2022 07:56:01 +0000 (10:56 +0300)]
Fix documentation of Outline minor mode options

* lisp/outline.el (outline-minor-mode-cycle-filter)
(outline-minor-mode-cycle, outline-minor-mode-highlight)
(outline-cycle, outline-cycle-buffer): Doc fixes.  (Bug#54967)

2 years agoAdd some missing multilingual keys to Haiku
Po Lu [Sat, 16 Apr 2022 04:04:25 +0000 (04:04 +0000)]
Add some missing multilingual keys to Haiku

* src/haiku_support.cc (keysym_from_raw_char): Support keys
found on some East Asian keyboards.

2 years agoHandle errors getting selection ownership when starting DND
Po Lu [Sat, 16 Apr 2022 00:54:40 +0000 (08:54 +0800)]
Handle errors getting selection ownership when starting DND

* src/xterm.c (x_clear_dnd_targets): New function.
(x_dnd_begin_drag_and_drop): Handle errors in `x_own_selection'.

2 years agoImprove discoverability of 'insert-directory-program'
Eli Zaretskii [Fri, 15 Apr 2022 20:03:15 +0000 (23:03 +0300)]
Improve discoverability of 'insert-directory-program'

* lisp/files.el (insert-directory-program): Mention 'dired' in the
doc string.
* lisp/dired.el (dired): Mention 'insert-directory-program' in the
doc string.  (Bug#54962)

2 years agoImprove buffer-match-p documentation
Philip Kaludercic [Fri, 15 Apr 2022 19:12:56 +0000 (21:12 +0200)]
Improve buffer-match-p documentation

* doc/lispref/windows.texi (Choosing Window): Document that
buffer-match-p is used by display-buffer-alist.
* etc/NEWS: Mention buffer-match-p and match-buffers.
* lisp/window.el (display-buffer-alist): Update documentation as for
display-buffer-assq-regexp.
(display-buffer-assq-regexp): Rename buffer-name to buffer-or-name.
(display-buffer): Pass the buffer directly to
display-buffer-assq-regexp,.

2 years agoAdd rcirc-cycle-completion-flag
Philip Kaludercic [Sat, 12 Mar 2022 21:18:49 +0000 (22:18 +0100)]
Add rcirc-cycle-completion-flag

* doc/misc/rcirc.texi: Document new option.
* lisp/net/rcirc.el (rcirc-cycle-completion-flag): Add new option.
(rcirc-mode): Respect new option.

2 years ago; * etc/PROBLEMS: Describe MS-Windows issues with fonts. (Bug#54685)
Eli Zaretskii [Fri, 15 Apr 2022 12:38:06 +0000 (15:38 +0300)]
; * etc/PROBLEMS: Describe MS-Windows issues with fonts.  (Bug#54685)

2 years agoFix default registry of Haiku font backend
Po Lu [Fri, 15 Apr 2022 12:22:26 +0000 (12:22 +0000)]
Fix default registry of Haiku font backend

* src/haiku_support.h (struct haiku_zoom_event): Fix coding
style.
(enum haiku_font_specification): Move FSPECs over here.
* src/haikufont.c (haikufont_apply_registry)
(haikufont_get_fallback_entity, haikufont_pattern_to_entity)
(haikufont_spec_or_entity_to_pattern, haikufont_list): Use
`iso10646-1' as the default registry instead of `utf8', which is
not a registry.

2 years agoEnable dragging resizing final column in vtable
Lars Ingebrigtsen [Fri, 15 Apr 2022 12:06:26 +0000 (14:06 +0200)]
Enable dragging resizing final column in vtable

* lisp/emacs-lisp/vtable.el (vtable--insert-line): Insert the
divider after the final column, too, so that the size can be
dragged.

2 years ago; * src/haiku_support.h: Fix header coding style.
Po Lu [Fri, 15 Apr 2022 11:58:09 +0000 (11:58 +0000)]
; * src/haiku_support.h: Fix header coding style.

2 years agoClean up keysyms from Haiku headers
Po Lu [Fri, 15 Apr 2022 11:57:14 +0000 (11:57 +0000)]
Clean up keysyms from Haiku headers

* src/haiku_support.cc (keysym_from_raw_char): Add keysym
numbers here and use those instead.
* src/haiku_support.h: Delete all the X11 keysym definitions.

2 years agoAdd some mouse-face bits to vtable
Lars Ingebrigtsen [Fri, 15 Apr 2022 11:58:41 +0000 (13:58 +0200)]
Add some mouse-face bits to vtable

* lisp/emacs-lisp/vtable.el (make-vtable)
(vtable--insert-header-line): Put mouse-face on draggable bits.

2 years agoTweak sorting indicator placement in vtable
Lars Ingebrigtsen [Fri, 15 Apr 2022 11:45:00 +0000 (13:45 +0200)]
Tweak sorting indicator placement in vtable

* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Tweak
sorting indicator position.

2 years agoMake the sorting indicator prettier in vtable
Lars Ingebrigtsen [Fri, 15 Apr 2022 11:37:05 +0000 (13:37 +0200)]
Make the sorting indicator prettier in vtable

* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Place
the sorting indicator flush right in the heading.

2 years agoFix dismissal of tooltips on Haiku
Po Lu [Fri, 15 Apr 2022 11:25:25 +0000 (11:25 +0000)]
Fix dismissal of tooltips on Haiku

* src/haikuterm.c (haiku_mouse_or_wdesc_frame): New argument
`accept_tooltip'.
(haiku_read_socket): Use it when handling MOUSE_MOTION events.

2 years agoAllow using faces for colors in vtable
Lars Ingebrigtsen [Fri, 15 Apr 2022 09:46:40 +0000 (11:46 +0200)]
Allow using faces for colors in vtable

* doc/misc/vtable.texi (Making A Table): Adjust color documentation.
* lisp/emacs-lisp/vtable.el (make-vtable): Mix more.
(vtable--compute-colors): Mix both foreground and background colors.
(vtable--make-color-face, vtable--face-blend): New functions.
(vtable--insert-line): Adjust usage.

2 years ago; * src/fringe.c: Include pgtkterm.h only in HAVE_PGTK builds.
Eli Zaretskii [Fri, 15 Apr 2022 09:22:15 +0000 (12:22 +0300)]
; * src/fringe.c: Include pgtkterm.h only in HAVE_PGTK builds.

2 years agoAllow dragging the divider in vtable
Lars Ingebrigtsen [Fri, 15 Apr 2022 09:10:05 +0000 (11:10 +0200)]
Allow dragging the divider in vtable

* lisp/emacs-lisp/vtable.el (vtable): Add a keymap cache.
(make-vtable): Allow dragging the divider.
(vtable-insert): Don't put the table keymap over the entire line
-- avoid the divider, which has its own keymap.
(vtable--drag-resize-column): Adjust to the in-buffer divider
dragging.

2 years agoFix off-by-one error in text-property-search-backward
Lars Ingebrigtsen [Fri, 15 Apr 2022 09:06:44 +0000 (11:06 +0200)]
Fix off-by-one error in text-property-search-backward

* lisp/emacs-lisp/text-property-search.el
(text-property-search-backward): Fix off-by-one error -- this
would result in not finding the previous (non-)match when at the
first character in a field.

2 years agoFix cursor motion under truncate-lines with Flymake fringe indicator
Eli Zaretskii [Fri, 15 Apr 2022 09:03:36 +0000 (12:03 +0300)]
Fix cursor motion under truncate-lines with Flymake fringe indicator

* src/indent.c (Fvertical_motion): Don't consider fringe bitmaps
as "images" for the purpose of vertical-motion logic dealing with
overshooting buffer positions.  (Bug#54946)

2 years agoMore PGTK related cleanup
Po Lu [Fri, 15 Apr 2022 08:43:15 +0000 (16:43 +0800)]
More PGTK related cleanup

* src/pgtkfns.c (x_set_foreground_color, x_set_background_color)
(x_set_border_color, x_set_cursor_color, x_set_title)
(x_set_menu_bar_lines, x_set_tab_bar_lines, x_set_tool_bar_lines)
(x_set_child_frame_border_width, x_set_internal_border_width)
(x_set_icon_type, x_set_icon_name, x_set_cursor_type)
(x_set_mouse_color, x_set_undecorated, x_set_skip_taskbar)
(x_set_override_redirect, pgtk_frame_parm_handlers)
(Fx_create_frame): Rename most `x_' functions to `pgtk_' ones.
All callers changed.
* src/pgtkmenu.c (Fx_menu_bar_open_internal): Remove duplicate
doc string definition.
* src/pgtkterm.c (x_set_offset, pgtk_iconify_frame)
(x_set_parent_frame, x_set_no_focus_on_map, x_set_no_accept_focus)
(x_set_z_group, x_set_cursor_gc, x_set_mouse_face_gc)
(x_set_mode_line_face_gc, x_set_glyph_string_gc)
(x_set_glyph_string_clipping, x_set_glyph_string_clipping_exactly)
(x_setup_relief_color, x_setup_relief_colors)
(x_set_clip_rectangles, x_draw_relief_rect, x_draw_box_rect)
(x_draw_glyph_string_box, x_draw_image_relief)
(x_draw_image_foreground, x_draw_stretch_glyph_string)
(pgtk_draw_glyph_string, x_set_toolkit_scroll_bar_thumb)
(x_set_toolkit_horizontal_scroll_bar_thumb)
(pgtk_set_vertical_scroll_bar, pgtk_set_horizontal_scroll_bar)
(x_set_frame_alpha, frame_highlight, frame_unhighlight)
(pgtk_create_terminal, map_event): Rename most `x_' functions to
`pgtk_' ones.  All callers changed.
* src/pgtkterm.h: Update prototypes.