diff options
author | Eli Zaretskii <eliz@gnu.org> | 2023-04-06 14:38:20 -0400 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2023-04-06 14:38:20 -0400 |
commit | 2d1a96e878ef8dd9a27fb360aa6c85b1dc9b856e (patch) | |
tree | 33fcdce2bd4f616991341f5d776138448e5e05e0 | |
parent | f7e8586104b77254a390e685fab9a24774a7ccd6 (diff) | |
parent | 305246d9726bbe05a65ad3836880138db5c01dfa (diff) | |
download | emacs-2d1a96e878ef8dd9a27fb360aa6c85b1dc9b856e.tar.gz |
Merge from origin/emacs-29
305246d9726 Add emoji-zoom-reset
470d269ec1f Make emoji-zoom-{increase,decrease} set text properties c...
63d4a86f8d1 Fix transforming sliced images
5e1953a8f85 ; * etc/NEWS: Minor copyedits of entry for 'keymap-*' fun...
6b9f9df9454 ; Improve documentation of 'declare-function'
81d1f46d0fe ; Avoid compiler warning in eglot.el.
38cdfcb2128 ; Fix description of new 'keymap-*' functions
257090b8728 Adapt EMBA scripts.
90c07d3fdd2 Another terminology fix in ELisp reference manual
a832bc7090c Correct terminology in Elisp Reference Manual
db308233cb3 Comment out GNUSTEP jobs on EMBA (again)
8c1b1022439 ; * lisp/image.el (put-image): Doc fix.
eda88c63adf ; * doc/emacs/trouble.texi (Checklist): Minor grammar fix.
728bc09cf3c Fix regexp string escaping mistake in vhdl-mode.el (bug#6...
479626dbac9 Update to Org 9.6.3-2-gf2949d
5a1c9aace70 ; Add a bit more docstring to tsx-ts-mode (bug#62429)
86cf9fd932c Eglot: don't watch directories that don't exist
82d0b6c64ea ; * lisp/subr.el (use-dialog-box-p): Fix last change.
3619663f982 Preserve peer information for web page in eww-readable
cb8d6ab648f * lisp/subr.el (use-dialog-box-p): Fix conditions for GUI...
fb2c4409207 ; * lisp/progmodes/c-ts-mode.el (c++-ts-mode): Add some n...
# Conflicts:
# etc/NEWS
-rw-r--r-- | doc/emacs/trouble.texi | 2 | ||||
-rw-r--r-- | doc/lispref/commands.texi | 6 | ||||
-rw-r--r-- | doc/lispref/frames.texi | 2 | ||||
-rw-r--r-- | doc/lispref/functions.texi | 19 | ||||
-rw-r--r-- | doc/lispref/keymaps.texi | 19 | ||||
-rw-r--r-- | etc/NEWS.29 | 13 | ||||
-rw-r--r-- | etc/refcards/orgcard.tex | 2 | ||||
-rw-r--r-- | lisp/image.el | 50 | ||||
-rw-r--r-- | lisp/international/emoji.el | 60 | ||||
-rw-r--r-- | lisp/international/mule-cmds.el | 3 | ||||
-rw-r--r-- | lisp/net/eww.el | 2 | ||||
-rw-r--r-- | lisp/org/ob-comint.el | 37 | ||||
-rw-r--r-- | lisp/org/org-version.el | 4 | ||||
-rw-r--r-- | lisp/org/org.el | 35 | ||||
-rw-r--r-- | lisp/progmodes/c-ts-mode.el | 6 | ||||
-rw-r--r-- | lisp/progmodes/eglot.el | 6 | ||||
-rw-r--r-- | lisp/progmodes/typescript-ts-mode.el | 5 | ||||
-rw-r--r-- | lisp/progmodes/vhdl-mode.el | 2 | ||||
-rw-r--r-- | lisp/subr.el | 7 | ||||
-rw-r--r-- | test/infra/Dockerfile.emba | 4 |
20 files changed, 172 insertions, 112 deletions
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi index 0166c613144..db78895bb5b 100644 --- a/doc/emacs/trouble.texi +++ b/doc/emacs/trouble.texi @@ -1075,7 +1075,7 @@ report. (The backtrace is more detailed if you load the relevant Lisp @file{*.el} source files before triggering the error, so do that if you know how to find and load those files.) -To debug the error, we suggest to use Edebug. @xref{Edebug,, Edebug, +To debug the error, we suggest using Edebug. @xref{Edebug,, Edebug, elisp, the Emacs Lisp Reference Manual}, for information on debugging Emacs Lisp programs with the Edebug package. diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index 62a0939a47e..30765a7e8f7 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@ -1960,8 +1960,8 @@ end-position of a drag event, this position list may represent a location outside the boundaries of the initially selected frame, in which case the list contains that frame in place of a window. -The special form @code{track-mouse} enables generation of motion -events within its body. Outside of @code{track-mouse} forms, Emacs +The @code{track-mouse} macro enables generation of motion +events within its body. Outside of @code{track-mouse} body, Emacs does not generate events for mere motion of the mouse, and these events do not appear. @xref{Mouse Tracking}. @@ -2443,7 +2443,7 @@ into another window. That produces a pair of events like these: The frame with input focus might not take up the entire screen, and the user might move the mouse outside the scope of the frame. Inside -the @code{track-mouse} special form, that produces an event like this: +the @code{track-mouse} macro, that produces an event like this: @smallexample (mouse-movement (#<frame *ielm* 0x102849a30> nil (563 . 205) 532301936)) diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index e0766ad0b43..7cae94d2627 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -3577,7 +3577,7 @@ the mouse position list will be @code{nil} if the value is @code{drag-source}. This is useful to determine if a frame is not directly visible underneath the mouse pointer. -The @code{track-mouse} form causes Emacs to generate mouse motion +The @code{track-mouse} macro causes Emacs to generate mouse motion events by binding the variable @code{track-mouse} to a non-@code{nil} value. If that variable has the special value @code{dragging}, it additionally instructs the display engine to diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index e9841821431..42441361fea 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -593,8 +593,8 @@ symbol a function definition, its function cell is said to be In practice, nearly all functions have names, and are referred to by their names. You can create a named Lisp function by defining a lambda expression and putting it in a function cell (@pxref{Function -Cells}). However, it is more common to use the @code{defun} special -form, described in the next section. +Cells}). However, it is more common to use the @code{defun} macro, +described in the next section. @ifnottex @xref{Defining Functions}. @end ifnottex @@ -2693,13 +2693,14 @@ byte compiler can check that the calls match the declaration. Tell the byte compiler to assume that @var{function} is defined in the file @var{file}. The optional third argument @var{arglist} is either @code{t}, meaning the argument list is unspecified, or a list of -formal parameters in the same style as @code{defun}. An omitted -@var{arglist} defaults to @code{t}, not @code{nil}; this is atypical -behavior for omitted arguments, and it means that to supply a fourth -but not third argument one must specify @code{t} for the third-argument -placeholder instead of the usual @code{nil}. The optional fourth -argument @var{fileonly} non-@code{nil} means check only that -@var{file} exists, not that it actually defines @var{function}. +formal parameters in the same style as @code{defun} (including the +parentheses). An omitted @var{arglist} defaults to @code{t}, not +@code{nil}; this is atypical behavior for omitted arguments, and it +means that to supply a fourth but not third argument one must specify +@code{t} for the third-argument placeholder instead of the usual +@code{nil}. The optional fourth argument @var{fileonly} +non-@code{nil} means check only that @var{file} exists, not that it +actually defines @var{function}. @end defmac @findex check-declare-file diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index fdab5075b94..6d07ad5be2c 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi @@ -768,8 +768,8 @@ prefix definition, and then by those from the global map. In the following example, we make @kbd{C-p} a prefix key in the local keymap, in such a way that @kbd{C-p} is identical to @kbd{C-x}. Then the binding for @kbd{C-p C-f} is the function @code{find-file}, just -like @kbd{C-x C-f}. The key sequence @kbd{C-p 6} is not found in any -active keymap. +like @kbd{C-x C-f}. By contrast, the key sequence @kbd{C-p 9} is not +found in any active keymap. @example @group @@ -778,15 +778,14 @@ active keymap. @end group @group (keymap-local-set "C-p" ctl-x-map) - @result{} nil + @result{} (keymap #^[nil nil keymap @dots{} @end group @group -(keymap-binding "C-p C-f") +(keymap-lookup nil "C-p C-f") @result{} find-file @end group - @group -(keymap-binding "C-p 6") +(keymap-lookup nil "C-p 9") @result{} nil @end group @end example @@ -883,7 +882,7 @@ Normally it ignores @code{overriding-local-map} and then it pays attention to them. @var{position} can optionally be either an event position as returned by @code{event-start} or a buffer position, and may change the keymaps as described for -@code{keymap-binding}. +@code{keymap-lookup} (@pxref{Functions for Key Lookup, keymap-lookup}). @end defun @node Searching Keymaps @@ -1308,7 +1307,11 @@ the second example. @end group @end example -The @var{keymap} argument can also be a list of keymaps. +The @var{keymap} argument can be @code{nil}, meaning to look up +@var{key} in the current keymaps (as returned by +@code{current-active-maps}, @pxref{Active Keymaps}); or it can be a +keymap or a list of keymaps, meaning to look up @var{key} only in the +specified keymaps. Unlike @code{read-key-sequence}, this function does not modify the specified events in ways that discard information (@pxref{Key Sequence diff --git a/etc/NEWS.29 b/etc/NEWS.29 index d3f057308dc..dc4eb64a63a 100644 --- a/etc/NEWS.29 +++ b/etc/NEWS.29 @@ -1022,6 +1022,11 @@ These are bound to 'C-x 8 e +' and 'C-x 8 e -', respectively. They can be used on any character, but are mainly useful for Emoji. --- +*** New command 'emoji-zoom-reset'. +This is bound to 'C-x 8 e 0', and undoes any size changes performed by +'emoji-zoom-increase' and 'emoji-zoom-decrease'. + +--- *** New input method 'emoji'. This allows you to enter Emoji using short strings, eg ':face_palm:' or ':scream:'. @@ -4323,9 +4328,11 @@ that binding is ignored by 'where-is-internal'. +++ *** New functions for defining and manipulating keystrokes. -These all take the syntax defined by 'key-valid-p'. None of the older -functions have been deprecated or altered, but they are now -de-emphasized in the documentation. +These all take the syntax defined by 'key-valid-p', which is basically +the same syntax as the one accepted by the 'kbd' macro. None of the +older functions have been deprecated or altered, but they are now +de-emphasized in the documentation, and we encourage Lisp programs to +switch to these new functions. +++ *** Use 'keymap-set' instead of 'define-key'. diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex index 0ef05353341..f8894d9dc1c 100644 --- a/etc/refcards/orgcard.tex +++ b/etc/refcards/orgcard.tex @@ -1,5 +1,5 @@ % Reference Card for Org Mode -\def\orgversionnumber{9.6.2} +\def\orgversionnumber{9.6.3} \def\versionyear{2023} % latest update \input emacsver.tex diff --git a/lisp/image.el b/lisp/image.el index 2372fd1ce09..838cc0f8942 100644 --- a/lisp/image.el +++ b/lisp/image.el @@ -595,8 +595,8 @@ If nil, use the `image-scaling-factor' variable." IMAGE must be an image created with `create-image' or `defimage'. IMAGE is displayed by putting an overlay into the current buffer with a `before-string' STRING that has a `display' property whose value is the -image. STRING is defaulted if you omit it. -The overlay created will have the `put-image' property set to t. +image. STRING defaults to \"x\" if it's nil or omitted. +The overlay created by this function has the `put-image' property set to t. POS may be an integer or marker. AREA is where to display the image. AREA nil or omitted means display it in the text area, a value of `left-margin' means @@ -1158,9 +1158,11 @@ has no effect." "r" #'image-rotate) (defun image-increase-size (&optional n position) - "Increase the image size by a factor of N. -If N is 3, then the image size will be increased by 30%. The -default is 20%." + "Increase the image size at POSITION by a factor specified by N. +If N is 3, then the image size will be increased by 30%. More +generally, the image size is multiplied by 1 plus N divided by 10. +N defaults to 2, which increases the image size by 20%. +POSITION can be a buffer position or a marker, and defaults to point." (interactive "P") (image--delayed-change-size (if n (1+ (/ (prefix-numeric-value n) 10.0)) @@ -1179,9 +1181,11 @@ default is 20%." (run-with-idle-timer 0.3 nil #'image--change-size size position)) (defun image-decrease-size (&optional n position) - "Decrease the image size by a factor of N. -If N is 3, then the image size will be decreased by 30%. The -default is 20%." + "Decrease the image size at POSITION by a factor specified by N. +If N is 3, then the image size will be decreased by 30%. More +generally, the image size is multiplied by 1 minus N divided by 10. +N defaults to 2, which decreases the image size by 20%. +POSITION can be a buffer position or a marker, and defaults to point." (interactive "P") (image--delayed-change-size (if n (- 1 (/ (prefix-numeric-value n) 10.0)) @@ -1191,7 +1195,9 @@ default is 20%." "Use %k for further adjustments")) (defun image-mouse-increase-size (&optional event) - "Increase the image size using the mouse." + "Increase the image size using the mouse-gesture EVENT. +This increases the size of the image at the position specified by +EVENT, if any, by the default factor used by `image-increase-size'." (interactive "e") (when (listp event) (save-window-excursion @@ -1199,7 +1205,9 @@ default is 20%." (image-increase-size nil (point-marker))))) (defun image-mouse-decrease-size (&optional event) - "Decrease the image size using the mouse." + "Decrease the image size using the mouse-gesture EVENT. +This decreases the size of the image at the position specified by +EVENT, if any, by the default factor used by `image-decrease-size'." (interactive "e") (when (listp event) (save-window-excursion @@ -1207,12 +1215,24 @@ default is 20%." (image-decrease-size nil (point-marker))))) (defun image--get-image (&optional position) - "Return the image at point." - (let ((image (get-char-property (or position (point)) 'display - (when (markerp position) - (marker-buffer position))))) + "Return the image at POSITION. +POSITION can be a buffer position or a marker, and defaults to point." + (let* ((image (get-char-property (or position (point)) 'display + (when (markerp position) + (marker-buffer position)))) + (image-car (car-safe image)) + (image + (cond ((eq image-car 'image) + image) + ;; The value of the display property could be a sliced + ;; image of the form ((slice ...) (image ...)). + ;; FIXME: can we have more than 2 members in the list, + ;; so that the (image ...) part is NOT the cadr? + ((and (listp image) (consp image-car)) + (cadr image)) + (t nil)))) (unless (eq (car-safe image) 'image) - (error "No image under point")) + (error "No recognizable image under point")) image)) ;;;###autoload diff --git a/lisp/international/emoji.el b/lisp/international/emoji.el index fec3e637f0c..856c405b545 100644 --- a/lisp/international/emoji.el +++ b/lisp/international/emoji.el @@ -684,30 +684,41 @@ We prefer the earliest unique letter." (defvar-keymap emoji-zoom-map "+" #'emoji-zoom-increase - "-" #'emoji-zoom-decrease) + "-" #'emoji-zoom-decrease + "0" #'emoji-zoom-reset) ;;;###autoload (defun emoji-zoom-increase (&optional factor) "Increase the size of the character under point. FACTOR is the multiplication factor for the size." (interactive) - (set-transient-map emoji-zoom-map t nil "Zoom with %k") - (let* ((factor (or factor 1.1)) - (old (get-text-property (point) 'face)) - (height (or (and (consp old) - (plist-get old :height)) - 1.0)) - (inhibit-read-only t)) - (with-silent-modifications - (if (consp old) - (add-text-properties - (point) (1+ (point)) - (list 'face (plist-put (copy-sequence old) :height (* height factor)) - 'rear-nonsticky t)) - (add-face-text-property (point) (1+ (point)) - (list :height (* height factor))) - (put-text-property (point) (1+ (point)) - 'rear-nonsticky t))))) + (set-transient-map emoji-zoom-map t #'redisplay "Zoom with %k") + (unless (eobp) + (let* ((factor (or factor 1.1)) + (old (get-text-property (point) 'face)) + ;; The text property is either a named face, or a plist + ;; with :height, or a list starting with such a plist, + ;; followed by one or more faces. + (newheight (* (or (and (consp old) + (or (plist-get (car old) :height) + (plist-get old :height))) + 1.0) + factor)) + (inhibit-read-only t)) + (with-silent-modifications + (if (consp old) + (add-text-properties + (point) (1+ (point)) + (list 'face + (if (eq (car old) :height) + (plist-put (copy-sequence old) :height newheight) + (cons (plist-put (car old) :height newheight) + (cdr old))) + 'rear-nonsticky t)) + (add-face-text-property (point) (1+ (point)) + (list :height newheight)) + (put-text-property (point) (1+ (point)) + 'rear-nonsticky t)))))) ;;;###autoload (defun emoji-zoom-decrease () @@ -715,6 +726,19 @@ FACTOR is the multiplication factor for the size." (interactive) (emoji-zoom-increase 0.9)) +;;;###autoload +(defun emoji-zoom-reset () + "Reset the size of the character under point." + (interactive) + (with-silent-modifications + (let ((old (get-text-property (point) 'face))) + (when (and (consp old) + (remove-text-properties (point) (1+ (point)) '(rear-nonsticky nil))) + (if (eq (car old) :height) + (remove-text-properties (point) (1+ (point)) '(face nil)) + (add-text-properties (point) (1+ (point)) (list 'face + (cdr old)))))))) + (provide 'emoji) ;;; emoji.el ends here diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 4e38b13b1a5..3d6d66970d3 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -3269,7 +3269,8 @@ single characters to be treated as standing for themselves." "r" #'emoji-recent "l" #'emoji-list "+" #'emoji-zoom-increase - "-" #'emoji-zoom-decrease)) + "-" #'emoji-zoom-decrease + "0" #'emoji-zoom-reset)) (defface confusingly-reordered '((((supports :underline (:style wave))) diff --git a/lisp/net/eww.el b/lisp/net/eww.el index 808f2295e52..11be20b68db 100644 --- a/lisp/net/eww.el +++ b/lisp/net/eww.el @@ -1015,7 +1015,7 @@ the like." (list 'base (list (cons 'href base)) (eww-highest-readability dom)) nil (current-buffer)) - (dolist (elem '(:source :url :title :next :previous :up)) + (dolist (elem '(:source :url :title :next :previous :up :peer)) (plist-put eww-data elem (plist-get old-data elem))) (eww--after-page-change))) diff --git a/lisp/org/ob-comint.el b/lisp/org/ob-comint.el index 54bf5127e16..adfe31c4008 100644 --- a/lisp/org/ob-comint.el +++ b/lisp/org/ob-comint.el @@ -81,19 +81,7 @@ or user `keyboard-quit' during execution of body." (let* ((string-buffer "") (comint-output-filter-functions (cons (lambda (text) - (setq string-buffer - (concat - string-buffer - ;; Upon concatenation, the prompt may no - ;; longer match `comint-prompt-regexp'. - ;; In particular, when the regexp has ^ - ;; and the output does not contain - ;; trailing newline. Use more reliable - ;; match to split the output later. - (replace-regexp-in-string - comint-prompt-regexp - ,org-babel-comint-prompt-separator - text)))) + (setq string-buffer (concat string-buffer text))) comint-output-filter-functions)) dangling-text) ;; got located, and save dangling text @@ -108,21 +96,28 @@ or user `keyboard-quit' during execution of body." (while (progn (goto-char comint-last-input-end) (not (save-excursion - (and (re-search-forward - (regexp-quote ,eoe-indicator) nil t) - (re-search-forward - comint-prompt-regexp nil t))))) + (and (re-search-forward + (regexp-quote ,eoe-indicator) nil t) + (re-search-forward + comint-prompt-regexp nil t))))) (accept-process-output (get-buffer-process (current-buffer)))) ;; replace cut dangling text (goto-char (process-mark (get-buffer-process (current-buffer)))) (insert dangling-text) - ;; Replace partially supplied input lines. - ;; This is needed when output filter spits partial lines that - ;; do not include a full prompt at a time. + ;; Filter out prompts. (setq string-buffer (replace-regexp-in-string - comint-prompt-regexp + ;; Sometimes, we get multiple agglomerated + ;; prompts together in a single output: + ;; "prompt prompt prompt output" + ;; Remove them progressively, so that + ;; possible "^" in the prompt regexp gets to + ;; work as we remove the heading prompt + ;; instance. + (if (string-prefix-p "^" comint-prompt-regexp) + (format "^\\(%s\\)+" (substring comint-prompt-regexp 1)) + comint-prompt-regexp) ,org-babel-comint-prompt-separator string-buffer)) ;; remove echo'd FULL-BODY from input diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el index fd75f4785d6..43fdcb82832 100644 --- a/lisp/org/org-version.el +++ b/lisp/org/org-version.el @@ -5,13 +5,13 @@ (defun org-release () "The release version of Org. Inserted by installing Org mode or when a release is made." - (let ((org-release "9.6.2")) + (let ((org-release "9.6.3")) org-release)) ;;;###autoload (defun org-git-version () "The Git version of Org mode. Inserted by installing Org or when a release is made." - (let ((org-git-version "release_9.6.2")) + (let ((org-git-version "release_9.6.3-2-gf2949d")) org-git-version)) (provide 'org-version) diff --git a/lisp/org/org.el b/lisp/org/org.el index 1649722ab0c..be9d0e32dd0 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -9,7 +9,7 @@ ;; URL: https://orgmode.org ;; Package-Requires: ((emacs "26.1")) -;; Version: 9.6.2 +;; Version: 9.6.3 ;; This file is part of GNU Emacs. ;; @@ -3600,13 +3600,13 @@ following symbols: (const :tag "Entities" entities)))) (defcustom org-hide-emphasis-markers nil - "Non-nil mean font-lock should hide the emphasis marker characters." + "Non-nil means font-lock should hide the emphasis marker characters." :group 'org-appearance :type 'boolean :safe #'booleanp) (defcustom org-hide-macro-markers nil - "Non-nil mean font-lock should hide the brackets marking macro calls." + "Non-nil means font-lock should hide the brackets marking macro calls." :group 'org-appearance :type 'boolean) @@ -3618,7 +3618,7 @@ When nil, the \\name form remains in the buffer." :type 'boolean) (defcustom org-pretty-entities-include-sub-superscripts t - "Non-nil means, pretty entity display includes formatting sub/superscripts." + "Non-nil means pretty entity display includes formatting sub/superscripts." :group 'org-appearance :version "24.1" :type 'boolean) @@ -10215,7 +10215,7 @@ nil." (replace-match "") (if (and (string-match "\\S-" (buffer-substring (line-beginning-position) (point))) (equal (char-before) ?\ )) - (backward-delete-char 1) + (delete-char -1) (when (string-match "^[ \t]*$" (buffer-substring (line-beginning-position) (line-end-position))) (delete-region (line-beginning-position) @@ -12006,18 +12006,17 @@ Returns the new tags string, or nil to not change the current settings." (setq current nil) (when exit-after-next (setq exit-after-next 'now))) ((= c ?\t) - (condition-case nil - (unless tab-tags - (setq tab-tags - (delq nil - (mapcar (lambda (x) - (let ((item (car-safe x))) - (and (stringp item) - (list item)))) - (org--tag-add-to-alist - (with-current-buffer buf - (org-get-buffer-tags)) - table)))))) + (unless tab-tags + (setq tab-tags + (delq nil + (mapcar (lambda (x) + (let ((item (car-safe x))) + (and (stringp item) + (list item)))) + (org--tag-add-to-alist + (with-current-buffer buf + (org-get-buffer-tags)) + table))))) (setq tg (completing-read "Tag: " tab-tags)) (when (string-match "\\S-" tg) (cl-pushnew (list tg) tab-tags :test #'equal) @@ -16532,7 +16531,7 @@ because, in this case the deletion might narrow the column." (looking-at-p ".*?|") (org-at-table-p)) (progn (forward-char -1) (org-delete-char 1)) - (backward-delete-char N) + (funcall-interactively #'backward-delete-char N) (org-fix-tags-on-the-fly)))) (defun org-delete-char (N) diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index d773b4a41f4..385e3918842 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el @@ -1027,7 +1027,11 @@ To use tree-sitter C/C++ modes by default, evaluate (add-to-list \\='major-mode-remap-alist \\='(c-or-c++-mode . c-or-c++-ts-mode)) -in your configuration." +in your configuration. + +Since this mode uses a parser, unbalanced brackets might cause +some breakage in indentation/fontification. Therefore, it's +recommended to enable `electric-pair-mode' with this mode." :group 'c++ :after-hook (c-ts-mode-set-modeline) diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index 10b6c0cc2ca..f3b806e5613 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -1626,6 +1626,7 @@ If optional MARKER, return a marker instead" (directory-file-name (file-local-name truepath)) eglot--uri-path-allowed-chars))))) +(declare-function w32-long-file-name "w32proc.c" (fn)) (defun eglot--uri-to-path (uri) "Convert URI to file path, helped by `eglot--current-server'." (when (keywordp uri) (setq uri (substring (symbol-name uri) 1))) @@ -3488,8 +3489,9 @@ at point. With prefix argument, prompt for ACTION-KIND." (unwind-protect (progn (dolist (dir dirs-to-watch) - (push (file-notify-add-watch dir '(change) #'handle-event) - (gethash id (eglot--file-watches server)))) + (when (file-readable-p dir) + (push (file-notify-add-watch dir '(change) #'handle-event) + (gethash id (eglot--file-watches server))))) (setq success `(:message ,(format "OK, watching %s directories in %s watchers" diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el index ef87bb29d52..3f198e9f180 100644 --- a/lisp/progmodes/typescript-ts-mode.el +++ b/lisp/progmodes/typescript-ts-mode.el @@ -453,7 +453,10 @@ See `treesit-sexp-type-regexp' for more information.") This major mode defines two additional JSX-specific faces: `typescript-ts-jsx-attribute-face' and `typescript-ts-jsx-attribute-face' that are used for HTML tags -and attributes, respectively." +and attributes, respectively. + +The JSX-specific faces are used when `treesit-font-lock-level' is +at least 3 (which is the default value)." :group 'typescript :syntax-table typescript-ts-mode--syntax-table diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index b0699d8308b..45fd17f65c4 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -286,7 +286,7 @@ Overrides local variable `indent-tabs-mode'." ;; counter_rtl.vhd(29):Conditional signal assignment line__29 ("ModelSim" "vcom" "-93 -work \\1" "make" "-f \\1" nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "modelsim" - ("^\\(ERROR\\|WARNING\\|\\*\\* Error\\|\\*\\* Warning\\)[^:]*:\\( *\[[0-9]+\]\\| ([^)]+)\\)? \\([^ \t\n]+\\)(\\([0-9]+\\)):" 3 4 nil) + ("^\\(ERROR\\|WARNING\\|\\*\\* Error\\|\\*\\* Warning\\)[^:]*:\\( *\\[[0-9]+]\\| ([^)]+)\\)? \\([^ \t\n]+\\)(\\([0-9]+\\)):" 3 4 nil) ("" 0) ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat" "\\1/_primary.dat" "\\1/body.dat" downcase)) diff --git a/lisp/subr.el b/lisp/subr.el index 123275b5971..cbddfa620a8 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -45,7 +45,8 @@ declaration. A FILE with an \"ext:\" prefix is an external file. `check-declare' will check such files if they are found, and skip them without error if they are not. -Optional ARGLIST specifies FN's arguments, or is t to not specify +Optional ARGLIST specifies FN's arguments, in the same form as +in `defun' (including the parentheses); or it is t to not specify FN's arguments. An omitted ARGLIST defaults to t, not nil: a nil ARGLIST specifies an empty argument list, and an explicit t ARGLIST is a placeholder that allows supplying a later arg. @@ -3575,9 +3576,9 @@ confusing to some users.") (defvar from--tty-menu-p nil "Non-nil means the current command was invoked from a TTY menu.") (defun use-dialog-box-p () - "Say whether the current command should prompt the user via a dialog box." + "Return non-nil if the current command should prompt the user via a dialog box." (and last-input-event ; not during startup - (or (listp last-nonmenu-event) ; invoked by a mouse event + (or (consp last-nonmenu-event) ; invoked by a mouse event from--tty-menu-p) ; invoked via TTY menu use-dialog-box)) diff --git a/test/infra/Dockerfile.emba b/test/infra/Dockerfile.emba index 0c4a2e414bf..722a449b636 100644 --- a/test/infra/Dockerfile.emba +++ b/test/infra/Dockerfile.emba @@ -87,14 +87,14 @@ FROM emacs-base as emacs-gnustep RUN apt-get update && \ apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \ - gnustep-devel \ + gnustep-devel zlib1g-dev \ && rm -rf /var/lib/apt/lists/* COPY . /checkout WORKDIR /checkout RUN ./autogen.sh autoconf RUN ./configure --with-ns -RUN make V=1 bootstrap +RUN make bootstrap FROM emacs-base as emacs-native-comp |