Merge from origin/emacs-29
f8c95d1a76
Fix xt-mouse on terminals that report UTF-8 encoded coord...4bf7cb71ed
Fix go-ts-mode indentation and set indent offset to 8 (Bu...ff9498624f
; * src/insdel.c (insert_from_buffer): Fix assertions.41f497c8be
Fix doc strings of window-splitting commandscdf74254ff
Fix indentation for c-ts-mode (bug#61026)4bd06ce2a9
Fix call to treesit_record_change in insdel.c00675aa724
Add support for building tree-sitter modules with MinGWaf28191b04
* lisp/net/tramp.el (tramp-wrong-passwd-regexp): Fix regexp.42e02480c2
* doc/emacs/text.texi (Outline Minor Mode): New node spli...37c1c92466
; * etc/NEWS: Minor reordering.cfb180329b
ruby-ts-mode: Don't reindent when "class" or "def" is und...abb3becb9f
treesit-install-language-grammar: Provide default repo urlc6613403e5
Fix Dired face for directory symlinks37454de0c8
Pacify --without-x unused function warning9a21cb1075
; * etc/NEWS: Fix typos.f30a4f51fe
Announce outline.el keymaps8198803f66
; Don't mention in the Gnus manual user options that were...8a1498c01f
Fix fontification of function-valued variables (bug#61053)cfe26f3189
Add new java indent rules987e53f3e2
; * doc/misc/erc.texi: Improve Local Modules section.3846e79c93
; Fix filename mismatches in prop lines of ERC testsecf500b5e3
Handle relative file names in vc-resynch-window and vc-re...695e9f71c3
Use named keymaps for outline buttonse31a562396
* lisp/vc/vc-bzr.el (vc-bzr--pushpull): Return buffer's p...deee3a9262
; Fix last change in etc/NEWSbc78285e68
; * etc/NEWS: Fix typos.c15c0f7f01
CC Mode: Change the default value of objc-font-lock-extra...7f438ff543
Don't try to make a pipe process for remote processes in ...cb9628373a
* lisp/startup.el (command-line): Fix warning message. (...e6c5f32e77
* lisp/find-dired.el (find-dired): Fix bug where M-p skip... # Conflicts: # etc/NEWS
This commit is contained in:
commit
12e419ad11
33 changed files with 338 additions and 163 deletions
|
@ -3,12 +3,17 @@
|
|||
lang=$1
|
||||
topdir="$PWD"
|
||||
|
||||
if [ $(uname) == "Darwin" ]
|
||||
then
|
||||
soext="dylib"
|
||||
else
|
||||
soext="so"
|
||||
fi
|
||||
case $(uname) in
|
||||
"Darwin")
|
||||
soext="dylib"
|
||||
;;
|
||||
*"MINGW"*)
|
||||
soext="dll"
|
||||
;;
|
||||
*)
|
||||
soext="so"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "Building ${lang}"
|
||||
|
||||
|
|
|
@ -962,8 +962,6 @@ hooks.
|
|||
@cindex invisible lines
|
||||
|
||||
@findex outline-mode
|
||||
@findex outline-minor-mode
|
||||
@vindex outline-minor-mode-prefix
|
||||
@vindex outline-mode-hook
|
||||
Outline mode is a major mode derived from Text mode, which is
|
||||
specialized for editing outlines. It provides commands to navigate
|
||||
|
@ -986,6 +984,19 @@ previous visible line. Killing the ellipsis at the end of a visible
|
|||
line really kills all the following invisible text associated with the
|
||||
ellipsis.
|
||||
|
||||
@menu
|
||||
* Outline Minor Mode:: Outline mode to use with other major modes.
|
||||
* Outline Format:: What the text of an outline looks like.
|
||||
* Outline Motion:: Special commands for moving through outlines.
|
||||
* Outline Visibility:: Commands to control what is visible.
|
||||
* Outline Views:: Outlines and multiple views.
|
||||
* Foldout:: Folding means zooming in on outlines.
|
||||
@end menu
|
||||
|
||||
@node Outline Minor Mode
|
||||
@subsection Outline Minor Mode
|
||||
|
||||
@findex outline-minor-mode
|
||||
Outline minor mode is a buffer-local minor mode which provides the
|
||||
same commands as the major mode, Outline mode, but can be used in
|
||||
conjunction with other major modes. You can type @kbd{M-x
|
||||
|
@ -994,6 +1005,7 @@ buffer, or use a file-local variable setting to enable it in a
|
|||
specific file (@pxref{File Variables}).
|
||||
|
||||
@kindex C-c @@ @r{(Outline minor mode)}
|
||||
@vindex outline-minor-mode-prefix
|
||||
The major mode, Outline mode, provides special key bindings on the
|
||||
@kbd{C-c} prefix. Outline minor mode provides similar bindings with
|
||||
@kbd{C-c @@} as the prefix; this is to reduce the conflicts with the
|
||||
|
@ -1018,14 +1030,6 @@ outline heading lines. @kbd{TAB} cycles hiding, showing the
|
|||
sub-heading, and showing all for the current section. @kbd{S-@key{TAB}}
|
||||
does the same for the entire buffer.
|
||||
|
||||
@menu
|
||||
* Outline Format:: What the text of an outline looks like.
|
||||
* Outline Motion:: Special commands for moving through outlines.
|
||||
* Outline Visibility:: Commands to control what is visible.
|
||||
* Outline Views:: Outlines and multiple views.
|
||||
* Foldout:: Folding means zooming in on outlines.
|
||||
@end menu
|
||||
|
||||
@node Outline Format
|
||||
@subsection Format of Outlines
|
||||
|
||||
|
|
|
@ -539,36 +539,55 @@ so demands special precautions to avoid degrading the user experience.
|
|||
At present, the only such module is @code{networks}, whose library ERC
|
||||
always loads anyway.
|
||||
|
||||
@anchor{Local Modules}
|
||||
@subheading Local Modules
|
||||
@cindex local modules
|
||||
|
||||
All modules operate as minor modes under the hood, and some newer ones
|
||||
may be defined as buffer-local. These so-called ``local modules'' are
|
||||
a work in progress and their behavior and interface are subject to
|
||||
change. As of ERC 5.5, the only practical differences are
|
||||
change. As of ERC 5.5, the only practical differences are as follows:
|
||||
|
||||
@enumerate
|
||||
@item
|
||||
``Control variables,'' like @code{erc-sasl-mode}, are stateful across
|
||||
IRC sessions and override @code{erc-module} membership when influencing
|
||||
module activation in new sessions.
|
||||
``Control variables,'' like @code{erc-sasl-mode}, retain their values
|
||||
across IRC sessions and override @code{erc-module} membership when
|
||||
influencing module activation.
|
||||
@item
|
||||
Removing a local module from @code{erc-modules} via Customize not only
|
||||
disables its mode but also kills its control variable in all ERC
|
||||
buffers.
|
||||
@item
|
||||
``Mode toggles,'' like @code{erc-sasl-mode} and
|
||||
@code{erc-sasl-enable}, behave differently relative to each other and
|
||||
to their global counterparts. (More on this just below.)
|
||||
``Mode toggles,'' like @code{erc-sasl-mode} and the complementary
|
||||
@code{erc-sasl-enable}/@code{erc-sasl-disable} pairing, behave
|
||||
differently than their global counterparts.
|
||||
@end enumerate
|
||||
|
||||
By default, all local-mode toggles, like @code{erc-sasl-mode}, only
|
||||
affect the current buffer, but their ``non-mode'' variants, such as
|
||||
@code{erc-sasl-enable}, operate on all buffers belonging to a
|
||||
connection when called interactively. Keep in mind that whether
|
||||
enabled or not, a module may effectively be ``inert'' in certain types
|
||||
of buffers, such as queries and channels. Whatever the case, a local
|
||||
toggle never mutates @code{erc-modules}.
|
||||
In target buffers, a local module's activation state survives
|
||||
``reassociation'' by default, but modules themselves always have the
|
||||
final say. For example, a module may reset all instances of itself in
|
||||
its network context upon reconnecting. Moreover, the value of a mode
|
||||
variable may be meaningless in buffers that its module has no interest
|
||||
in. For example, the value of @code{erc-sasl-mode} doesn't matter in
|
||||
target buffers and may even remain non-@code{nil} after SASL has been
|
||||
disabled for the current connection (and vice versa).
|
||||
|
||||
When it comes to server buffers, a module's activation state only
|
||||
persists for sessions revived via the automatic reconnection mechanism
|
||||
or a manual @samp{/reconnect} issued at the prompt. In other words,
|
||||
this doesn't apply to sessions revived by an entry-point command, such
|
||||
as @code{erc-tls}, because such commands always ensure a clean slate
|
||||
by looking only to @code{erc-modules}. Although a session revived in
|
||||
this manner may indeed harvest other information from a previous
|
||||
server buffer, it simply doesn't care which modules might have been
|
||||
active during that connection.
|
||||
|
||||
Lastly, a local mode's toggle command, like @code{erc-sasl-mode}, only
|
||||
affects the current buffer, but its ``non-mode'' cousins, like
|
||||
@code{erc-sasl-enable} and @code{erc-sasl-disable}, operate on all
|
||||
buffers belonging to their connection (when called interactively).
|
||||
And unlike global toggles, none of these ever mutates
|
||||
@code{erc-modules}.
|
||||
|
||||
|
||||
@c PRE5_4: Document every option of every module in its own subnode
|
||||
|
|
|
@ -12106,17 +12106,6 @@ if they were public groups, you can add the name of that group to the
|
|||
|
||||
Also @pxref{Misc Article} for @code{gnus-inhibit-images}.
|
||||
|
||||
@item gnus-html-cache-directory
|
||||
@vindex gnus-html-cache-directory
|
||||
Gnus will download and cache images according to how
|
||||
@code{gnus-blocked-images} is set. These images will be stored in
|
||||
this directory.
|
||||
|
||||
@item gnus-html-cache-size
|
||||
@vindex gnus-html-cache-size
|
||||
When @code{gnus-html-cache-size} bytes have been used in that
|
||||
directory, the oldest files will be deleted. The default is 500MB.
|
||||
|
||||
@item gnus-html-frame-width
|
||||
@vindex gnus-html-frame-width
|
||||
The width to use when rendering HTML@. The default is 70.
|
||||
|
|
90
etc/NEWS.29
90
etc/NEWS.29
|
@ -1126,6 +1126,12 @@ buffer, and you can use 'RET' to cycle outline visibility. When
|
|||
the value is 'in-margins', Outline Minor Mode uses the window margins
|
||||
for buttons that hide/show outlines.
|
||||
|
||||
+++
|
||||
*** Buttons and headings now have their own keymaps.
|
||||
'outline-button-icon-map', 'outline-overlay-button-map', and
|
||||
'outline-inserted-button-map' are now available as defined keymaps
|
||||
instead of being anonymous keymaps.
|
||||
|
||||
** Windows
|
||||
|
||||
+++
|
||||
|
@ -1680,6 +1686,14 @@ command is installed.
|
|||
---
|
||||
*** C++ Mode now supports most of the new features in the C++20 Standard.
|
||||
|
||||
---
|
||||
*** In Objective-C Mode, no extra types are recognized by default.
|
||||
The default value of 'objc-font-lock-extra-types' has been changed to
|
||||
nil, since too many identifiers were getting misfontified as types.
|
||||
This may cause some actual types not to get fontified. To get the old
|
||||
behavior back, customize the user option to the value suggested in its
|
||||
doc string.
|
||||
|
||||
** Cperl Mode
|
||||
|
||||
---
|
||||
|
@ -2072,7 +2086,7 @@ This is in addition to the old keybindings 'C-c C-n' and 'C-c C-p'.
|
|||
---
|
||||
*** New command 'vc-pull-and-push'.
|
||||
This commands first does a "pull" command, and if that is successful,
|
||||
does a "push" command afterwards.
|
||||
does a "push" command afterwards. Currently supported in Git and Bzr.
|
||||
|
||||
+++
|
||||
*** 'C-x v b' prefix key is used now for branch commands.
|
||||
|
@ -2716,6 +2730,13 @@ some commands and user options are no longer needed and are now obsolete:
|
|||
'image-dired-display-window-width-correction',
|
||||
'image-dired-temp-image-file'.
|
||||
|
||||
** Exif
|
||||
|
||||
---
|
||||
*** New function 'exif-field'.
|
||||
This is a convenience function to extract the field data from
|
||||
'exif-parse-file' and 'exif-parse-buffer'.
|
||||
|
||||
** Bookmarks
|
||||
|
||||
---
|
||||
|
@ -2737,13 +2758,6 @@ It is bound to the new command 'bookmark-edit-annotation-cancel'.
|
|||
This option controls the bitmap used to indicate bookmarks in the
|
||||
fringe (or nil to disable showing this marker).
|
||||
|
||||
** Exif
|
||||
|
||||
---
|
||||
*** New function 'exif-field'.
|
||||
This is a convenience function to extract the field data from
|
||||
'exif-parse-file' and 'exif-parse-buffer'.
|
||||
|
||||
** Xwidget
|
||||
|
||||
---
|
||||
|
@ -4261,6 +4275,24 @@ vectors and strings.
|
|||
The new 'key' type can be used for options that should be a valid key
|
||||
according to 'key-valid-p'. The type 'key-sequence' is now obsolete.
|
||||
|
||||
+++
|
||||
** New function 'define-keymap'.
|
||||
This function allows defining a number of keystrokes with one form.
|
||||
|
||||
+++
|
||||
** New macro 'defvar-keymap'.
|
||||
This macro allows defining keymap variables more conveniently.
|
||||
|
||||
** 'defvar-keymap' can specify 'repeat-mode' behavior for the keymap.
|
||||
Use ':repeat t' to have all bindings be repeatable or for more
|
||||
advanced usage:
|
||||
|
||||
:repeat (:enter (commands ...) :exit (commands ...))
|
||||
|
||||
---
|
||||
** 'kbd' can now be used in built-in, preloaded libraries.
|
||||
It no longer depends on edmacro.el and cl-lib.el.
|
||||
|
||||
+++
|
||||
** New substitution in docstrings and 'substitute-command-keys'.
|
||||
Use \\`KEYSEQ' to insert a literal key sequence "KEYSEQ" (for example
|
||||
|
@ -4270,6 +4302,18 @@ be used only when a key sequence has no corresponding command, for
|
|||
example when it is read directly with 'read-key-sequence'. It must be
|
||||
a valid key sequence according to 'key-valid-p'.
|
||||
|
||||
---
|
||||
** 'lookup-key' is more permissive when searching for extended menu items.
|
||||
In Emacs 28.1, the behavior of 'lookup-key' was changed: when looking
|
||||
for a menu item '[menu-bar Foo-Bar]', first try to find an exact
|
||||
match, then look for the lowercased '[menu-bar foo-bar]'.
|
||||
|
||||
This has been extended, so that when looking for a menu item with a
|
||||
symbol containing spaces, as in '[menu-bar Foo\ Bar]', first look for
|
||||
an exact match, then the lowercased '[menu-bar foo\ bar]' and finally
|
||||
'[menu-bar foo-bar]'. This further improves backwards-compatibility
|
||||
when converting menus to use 'easy-menu-define'.
|
||||
|
||||
+++
|
||||
** New function 'file-name-split'.
|
||||
This returns a list of all the components of a file name.
|
||||
|
@ -4469,24 +4513,6 @@ permanent local variables.
|
|||
** Third 'mapconcat' argument SEPARATOR is now optional.
|
||||
An explicit nil always meant the empty string, now it can be left out.
|
||||
|
||||
+++
|
||||
** New function 'define-keymap'.
|
||||
This function allows defining a number of keystrokes with one form.
|
||||
|
||||
+++
|
||||
** New macro 'defvar-keymap'.
|
||||
This macro allows defining keymap variables more conveniently.
|
||||
|
||||
** 'defvar-keymap' can specify 'repeat-mode' behavior for the keymap.
|
||||
Use ':repeat t' to have all bindings be repeatable or for more
|
||||
advanced usage:
|
||||
|
||||
:repeat (:enter (commands ...) :exit (commands ...))
|
||||
|
||||
---
|
||||
** 'kbd' can now be used in built-in, preloaded libraries.
|
||||
It no longer depends on edmacro.el and cl-lib.el.
|
||||
|
||||
+++
|
||||
** New function 'image-at-point-p'.
|
||||
This function returns t if point is on a valid image, and nil
|
||||
|
@ -4510,18 +4536,6 @@ separate glyphs. This takes into account combining characters and
|
|||
grapheme clusters, by treating each sequence of characters composed on
|
||||
display as a single unit.
|
||||
|
||||
---
|
||||
** 'lookup-key' is more permissive when searching for extended menu items.
|
||||
In Emacs 28.1, the behavior of 'lookup-key' was changed: when looking
|
||||
for a menu item '[menu-bar Foo-Bar]', first try to find an exact
|
||||
match, then look for the lowercased '[menu-bar foo-bar]'.
|
||||
|
||||
This has been extended, so that when looking for a menu item with a
|
||||
symbol containing spaces, as in '[menu-bar Foo\ Bar]', first look for
|
||||
an exact match, then the lowercased '[menu-bar foo\ bar]' and finally
|
||||
'[menu-bar foo-bar]'. This further improves backwards-compatibility
|
||||
when converting menus to use 'easy-menu-define'.
|
||||
|
||||
** Xwidget
|
||||
|
||||
+++
|
||||
|
|
|
@ -789,7 +789,7 @@ Subexpression 2 must end right before the \\n.")
|
|||
'(dired-move-to-filename)
|
||||
nil
|
||||
'(1 dired-symlink-face)
|
||||
'(2 '(face dired-directory-face dired-symlink-filename t))))
|
||||
'(2 `(face ,dired-directory-face dired-symlink-filename t))))
|
||||
;;
|
||||
;; Symbolic link to a non-directory.
|
||||
(list dired-re-sym
|
||||
|
|
|
@ -296,8 +296,13 @@ Used only on systems which do not support async subprocesses.")
|
|||
'unix))))
|
||||
(cond
|
||||
((fboundp 'make-process)
|
||||
(unless (equal (car (aref eshell-current-handles eshell-output-handle))
|
||||
(car (aref eshell-current-handles eshell-error-handle)))
|
||||
(unless (or ;; FIXME: It's not currently possible to use a
|
||||
;; stderr process for remote files.
|
||||
(file-remote-p default-directory)
|
||||
(equal (car (aref eshell-current-handles
|
||||
eshell-output-handle))
|
||||
(car (aref eshell-current-handles
|
||||
eshell-error-handle))))
|
||||
(eshell-protect-handles eshell-current-handles)
|
||||
(setq stderr-proc
|
||||
(make-pipe-process
|
||||
|
|
|
@ -177,7 +177,9 @@ using GNU findutils (on macOS and *BSD systems), see instead the
|
|||
man page for \"find\"."
|
||||
(interactive (list (read-directory-name "Run find in directory: " nil "" t)
|
||||
(read-string "Run find (with args): " find-args
|
||||
'(find-args-history . 1))))
|
||||
(if find-args
|
||||
'(find-args-history . 1)
|
||||
'find-args-history))))
|
||||
(setq find-args args ; save for next interactive call
|
||||
args (concat find-program " . "
|
||||
(if (string= args "")
|
||||
|
|
|
@ -657,7 +657,7 @@ The `sudo' program appears to insert a `^@' character into the prompt."
|
|||
(defcustom tramp-wrong-passwd-regexp
|
||||
(rx bol (* nonl)
|
||||
(| "Permission denied"
|
||||
"Login [Ii]ncorrect"
|
||||
(: "Login " (| "Incorrect" "incorrect"))
|
||||
"Connection refused"
|
||||
"Connection closed"
|
||||
"Timeout, server not responding."
|
||||
|
|
|
@ -1776,6 +1776,20 @@ With a prefix argument, show headings up to that LEVEL."
|
|||
|
||||
;;; Button/margin indicators
|
||||
|
||||
(defvar-keymap outline-button-icon-map
|
||||
"<mouse-2>" #'outline-cycle
|
||||
;; Need to override the global binding
|
||||
;; `mouse-appearance-menu' with <down->:
|
||||
"S-<down-mouse-1>" #'ignore
|
||||
"S-<mouse-1>" #'outline-cycle-buffer)
|
||||
|
||||
(defvar-keymap outline-overlay-button-map
|
||||
"RET" #'outline-cycle)
|
||||
|
||||
(defvar-keymap outline-inserted-button-map
|
||||
:parent (make-composed-keymap outline-button-icon-map
|
||||
outline-overlay-button-map))
|
||||
|
||||
(defun outline--create-button-icons ()
|
||||
(pcase outline-minor-mode-use-buttons
|
||||
('in-margins
|
||||
|
@ -1808,12 +1822,7 @@ With a prefix argument, show headings up to that LEVEL."
|
|||
(propertize (icon-string icon-name)
|
||||
'mouse-face 'default
|
||||
'follow-link 'mouse-face
|
||||
'keymap (define-keymap
|
||||
"<mouse-2>" #'outline-cycle
|
||||
;; Need to override the global binding
|
||||
;; `mouse-appearance-menu' with <down->:
|
||||
"S-<down-mouse-1>" #'ignore
|
||||
"S-<mouse-1>" #'outline-cycle-buffer)))
|
||||
'keymap outline-button-icon-map))
|
||||
(list 'outline-open
|
||||
(if outline--use-rtl 'outline-close-rtl 'outline-close))))))
|
||||
|
||||
|
@ -1839,19 +1848,13 @@ With a prefix argument, show headings up to that LEVEL."
|
|||
(overlay-put o 'face (plist-get icon 'face))
|
||||
(overlay-put o 'follow-link 'mouse-face)
|
||||
(overlay-put o 'mouse-face 'highlight)
|
||||
(overlay-put o 'keymap (define-keymap
|
||||
"RET" #'outline-cycle
|
||||
"<mouse-2>" #'outline-cycle
|
||||
;; Need to override the global binding
|
||||
;; `mouse-appearance-menu' with <down->:
|
||||
"S-<down-mouse-1>" #'ignore
|
||||
"S-<mouse-1>" #'outline-cycle-buffer)))
|
||||
(overlay-put o 'keymap outline-inserted-button-map))
|
||||
('in-margins
|
||||
(overlay-put o 'before-string icon)
|
||||
(overlay-put o 'keymap (define-keymap "RET" #'outline-cycle)))
|
||||
(overlay-put o 'keymap outline-overlay-button-map))
|
||||
(_
|
||||
(overlay-put o 'before-string icon)
|
||||
(overlay-put o 'keymap (define-keymap "RET" #'outline-cycle))))))))
|
||||
(overlay-put o 'keymap outline-overlay-button-map)))))))
|
||||
|
||||
(defun outline--fix-up-all-buttons (&optional from to)
|
||||
(when outline-minor-mode-use-buttons
|
||||
|
|
|
@ -279,6 +279,19 @@ NODE should be a labeled_statement."
|
|||
"enumerator_list"))
|
||||
"Regexp matching types of block nodes (i.e., {} blocks).")
|
||||
|
||||
(defvar c-ts-mode--statement-offset-post-processr nil
|
||||
"A functions that makes adjustments to `c-ts-mode--statement-offset'.
|
||||
|
||||
This is a function that takes two arguments, the current indent
|
||||
level and the current node, and returns a new level.
|
||||
|
||||
When `c-ts-mode--statement-offset' runs and go up the parse tree,
|
||||
it increments the indent level when some condition are met in
|
||||
each level. At each level, after (possibly) incrementing the
|
||||
offset, it calls this function, passing it the current indent
|
||||
level and the current node, and use the return value as the new
|
||||
indent level.")
|
||||
|
||||
(defun c-ts-mode--statement-offset (node parent &rest _)
|
||||
"This anchor is used for children of a statement inside a block.
|
||||
|
||||
|
@ -319,9 +332,24 @@ PARENT is NODE's parent."
|
|||
;; Add a level.
|
||||
((looking-back (rx bol (* whitespace))
|
||||
(line-beginning-position))
|
||||
(cl-incf level))))))
|
||||
(cl-incf level)))))
|
||||
(when c-ts-mode--statement-offset-post-processr
|
||||
(setq level (funcall c-ts-mode--statement-offset-post-processr
|
||||
level node))))
|
||||
(* level c-ts-mode-indent-offset)))
|
||||
|
||||
(defun c-ts-mode--fix-bracketless-indent (level node)
|
||||
"Takes LEVEL and NODE and returns adjusted LEVEL.
|
||||
This fixes indentation for cases shown in bug#61026. Basically
|
||||
in C/C++, constructs like if, for, while sometimes don't have
|
||||
bracket."
|
||||
(if (and (not (equal (treesit-node-type node) "compound_statement"))
|
||||
(member (treesit-node-type (treesit-node-parent node))
|
||||
'("if_statement" "while_statement" "do_statement"
|
||||
"for_statement")))
|
||||
(1+ level)
|
||||
level))
|
||||
|
||||
(defun c-ts-mode--close-bracket-offset (node parent &rest _)
|
||||
"Offset for the closing bracket, NODE.
|
||||
It's basically one level less that the statements in the block.
|
||||
|
@ -789,6 +817,8 @@ the semicolon. This function skips the semicolon."
|
|||
;; Indent.
|
||||
(when (eq c-ts-mode-indent-style 'linux)
|
||||
(setq-local indent-tabs-mode t))
|
||||
(setq-local c-ts-mode--statement-offset-post-processr
|
||||
#'c-ts-mode--fix-bracketless-indent)
|
||||
|
||||
;; Comment
|
||||
(c-ts-common-comment-setup)
|
||||
|
|
|
@ -1609,8 +1609,7 @@ as a type name.")
|
|||
:type 'c-extra-types-widget
|
||||
:group 'c)
|
||||
|
||||
(defcustom objc-font-lock-extra-types
|
||||
(list (concat "[" c-upper "]\\sw*[" c-lower "]\\sw*"))
|
||||
(defcustom objc-font-lock-extra-types nil
|
||||
(c-make-font-lock-extra-types-blurb "ObjC" "objc-mode" (concat
|
||||
"For example, a value of (\"[" c-upper "]\\\\sw*[" c-lower "]\\\\sw*\") means
|
||||
capitalized words are treated as type names (the requirement for a
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
(declare-function treesit-node-type "treesit.c")
|
||||
(declare-function treesit-search-subtree "treesit.c")
|
||||
|
||||
(defcustom go-ts-mode-indent-offset 4
|
||||
(defcustom go-ts-mode-indent-offset 8
|
||||
"Number of spaces for each indentation step in `go-ts-mode'."
|
||||
:version "29.1"
|
||||
:type 'integer
|
||||
|
@ -78,8 +78,10 @@
|
|||
((parent-is "expression_switch_statement") parent-bol 0)
|
||||
((parent-is "field_declaration_list") parent-bol go-ts-mode-indent-offset)
|
||||
((parent-is "import_spec_list") parent-bol go-ts-mode-indent-offset)
|
||||
((parent-is "interface_type") parent-bol go-ts-mode-indent-offset)
|
||||
((parent-is "labeled_statement") parent-bol go-ts-mode-indent-offset)
|
||||
((parent-is "literal_value") parent-bol go-ts-mode-indent-offset)
|
||||
((parent-is "parameter_list") parent-bol go-ts-mode-indent-offset)
|
||||
((parent-is "type_spec") parent-bol go-ts-mode-indent-offset)
|
||||
((parent-is "var_declaration") parent-bol go-ts-mode-indent-offset)
|
||||
(no-node parent-bol 0)))
|
||||
|
|
|
@ -81,6 +81,7 @@
|
|||
((parent-is "annotation_type_body") parent-bol java-ts-mode-indent-offset)
|
||||
((parent-is "interface_body") parent-bol java-ts-mode-indent-offset)
|
||||
((parent-is "constructor_body") parent-bol java-ts-mode-indent-offset)
|
||||
((parent-is "enum_body_declarations") parent-bol 0)
|
||||
((parent-is "enum_body") parent-bol java-ts-mode-indent-offset)
|
||||
((parent-is "switch_block") parent-bol java-ts-mode-indent-offset)
|
||||
((parent-is "record_declaration_body") parent-bol java-ts-mode-indent-offset)
|
||||
|
@ -93,6 +94,7 @@
|
|||
((parent-is "variable_declarator") parent-bol java-ts-mode-indent-offset)
|
||||
((parent-is "method_invocation") parent-bol java-ts-mode-indent-offset)
|
||||
((parent-is "switch_rule") parent-bol java-ts-mode-indent-offset)
|
||||
((parent-is "switch_label") parent-bol java-ts-mode-indent-offset)
|
||||
((parent-is "ternary_expression") parent-bol java-ts-mode-indent-offset)
|
||||
((parent-is "lambda_expression") parent-bol java-ts-mode-indent-offset)
|
||||
((parent-is "element_value_array_initializer") parent-bol java-ts-mode-indent-offset)
|
||||
|
|
|
@ -566,6 +566,12 @@ a statement container is a node that matches
|
|||
((n-p-gp nil nil "regex") no-indent 0)
|
||||
((parent-is "regex") no-indent 0)
|
||||
|
||||
;; Incomplete buffer state, better not reindent (bug#61017).
|
||||
((and (parent-is "ERROR")
|
||||
(or (node-is ,ruby-ts--class-or-module-regex)
|
||||
(node-is "\\`def\\'")))
|
||||
no-indent 0)
|
||||
|
||||
;; if then else elseif notes:
|
||||
;;
|
||||
;; 1. The "then" starts at the end of the line that ends
|
||||
|
|
|
@ -132,26 +132,21 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
|||
Argument LANGUAGE is either `typescript' or `tsx'."
|
||||
(treesit-font-lock-rules
|
||||
:language language
|
||||
:override t
|
||||
:feature 'comment
|
||||
`((comment) @font-lock-comment-face)
|
||||
|
||||
:language language
|
||||
:override t
|
||||
:feature 'constant
|
||||
`(((identifier) @font-lock-constant-face
|
||||
(:match "^[A-Z_][A-Z_\\d]*$" @font-lock-constant-face))
|
||||
|
||||
[(true) (false) (null)] @font-lock-constant-face)
|
||||
|
||||
:language language
|
||||
:override t
|
||||
:feature 'keyword
|
||||
`([,@typescript-ts-mode--keywords] @font-lock-keyword-face
|
||||
[(this) (super)] @font-lock-keyword-face)
|
||||
|
||||
:language language
|
||||
:override t
|
||||
:feature 'string
|
||||
`((regex pattern: (regex_pattern)) @font-lock-regexp-face
|
||||
(string) @font-lock-string-face
|
||||
|
@ -159,7 +154,7 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
|||
(template_substitution ["${" "}"] @font-lock-misc-punctuation-face))
|
||||
|
||||
:language language
|
||||
:override t
|
||||
:override t ;; for functions assigned to variables
|
||||
:feature 'declaration
|
||||
`((function
|
||||
name: (identifier) @font-lock-function-name-face)
|
||||
|
@ -174,6 +169,10 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
|||
(required_parameter (identifier) @font-lock-variable-name-face)
|
||||
(optional_parameter (identifier) @font-lock-variable-name-face)
|
||||
|
||||
(variable_declarator
|
||||
name: (identifier) @font-lock-function-name-face
|
||||
value: [(function) (arrow_function)])
|
||||
|
||||
(variable_declarator
|
||||
name: (identifier) @font-lock-variable-name-face)
|
||||
|
||||
|
@ -188,10 +187,6 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
|||
(arrow_function
|
||||
parameter: (identifier) @font-lock-variable-name-face)
|
||||
|
||||
(variable_declarator
|
||||
name: (identifier) @font-lock-function-name-face
|
||||
value: [(function) (arrow_function)])
|
||||
|
||||
(variable_declarator
|
||||
name: (array_pattern
|
||||
(identifier)
|
||||
|
@ -205,7 +200,6 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
|||
(import_clause (named_imports (import_specifier (identifier)) @font-lock-variable-name-face)))
|
||||
|
||||
:language language
|
||||
:override t
|
||||
:feature 'identifier
|
||||
`((nested_type_identifier
|
||||
module: (identifier) @font-lock-type-face)
|
||||
|
@ -234,7 +228,6 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
|||
(_ (_ (_ (identifier) @font-lock-variable-name-face)))]))
|
||||
|
||||
:language language
|
||||
:override t
|
||||
:feature 'property
|
||||
`((property_signature
|
||||
name: (property_identifier) @font-lock-property-face)
|
||||
|
@ -249,7 +242,6 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
|||
@font-lock-property-face))
|
||||
|
||||
:language language
|
||||
:override t
|
||||
:feature 'expression
|
||||
'((assignment_expression
|
||||
left: [(identifier) @font-lock-function-name-face
|
||||
|
@ -266,7 +258,6 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
|||
property: (property_identifier) @font-lock-function-name-face)]))
|
||||
|
||||
:language language
|
||||
:override t
|
||||
:feature 'pattern
|
||||
`((pair_pattern
|
||||
key: (property_identifier) @font-lock-property-face)
|
||||
|
@ -274,7 +265,6 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
|||
(array_pattern (identifier) @font-lock-variable-name-face))
|
||||
|
||||
:language language
|
||||
:override t
|
||||
:feature 'jsx
|
||||
`((jsx_opening_element
|
||||
[(nested_identifier (identifier)) (identifier)]
|
||||
|
|
|
@ -1604,7 +1604,7 @@ please check its value")
|
|||
(display-warning 'initialization
|
||||
(format-message "\
|
||||
Your `load-path' seems to contain\n\
|
||||
your `.emacs.d' directory: %s\n\
|
||||
your `user-emacs-directory': %s\n\
|
||||
This is likely to cause problems...\n\
|
||||
Consider using a subdirectory instead, e.g.: %s"
|
||||
dir (expand-file-name
|
||||
|
|
|
@ -2789,8 +2789,10 @@ See `treesit-language-source-alist' for details."
|
|||
(if (equal string "") nil string)))
|
||||
(list
|
||||
lang
|
||||
(read-string
|
||||
"Enter the URL of the Git repository of the language grammar: ")
|
||||
(let ((repo-default (format "https://github.com/tree-sitter/tree-sitter-%s" lang)))
|
||||
(read-string
|
||||
"Enter the URL of the Git repository of the language grammar: "
|
||||
(and (treesit--check-repo-url repo-default) repo-default)))
|
||||
(empty-string-to-nil
|
||||
(read-string
|
||||
"Enter the tag or branch (default: default branch): "))
|
||||
|
@ -2804,6 +2806,16 @@ See `treesit-language-source-alist' for details."
|
|||
(read-string
|
||||
"Enter the C++ compiler to use (default: auto-detect): "))))))
|
||||
|
||||
(defun treesit--check-repo-url (url)
|
||||
(defvar url-request-method)
|
||||
(let ((url-request-method "HEAD"))
|
||||
(let ((buffer (condition-case nil (url-retrieve-synchronously url t t)
|
||||
(file-error nil))))
|
||||
(and buffer
|
||||
(eql
|
||||
(buffer-local-value 'url-http-response-status buffer)
|
||||
200)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun treesit-install-language-grammar (lang)
|
||||
"Build and install the tree-sitter language grammar library for LANG.
|
||||
|
|
|
@ -381,7 +381,9 @@ If PROMPT is non-nil, prompt for the Bzr command to run."
|
|||
(setq-local compile-command
|
||||
(concat vc-bzr-program " " command " "
|
||||
(if args (mapconcat #'identity args " ") "")))))
|
||||
(vc-set-async-update buf))))
|
||||
(vc-set-async-update buf)
|
||||
;; Return the process for `vc-pull-and-push'
|
||||
(get-buffer-process buf))))
|
||||
|
||||
(defun vc-bzr-pull (prompt)
|
||||
"Pull changes into the current Bzr branch.
|
||||
|
|
|
@ -608,7 +608,10 @@ reverting. NOQUERY should be t *only* if it is known the only
|
|||
difference between the buffer and the file is due to
|
||||
modifications by the dispatcher client code, rather than user
|
||||
editing!"
|
||||
(and (string= buffer-file-name file)
|
||||
(and (string= buffer-file-name
|
||||
(if (file-name-absolute-p file)
|
||||
file
|
||||
(expand-file-name file (vc-root-dir))))
|
||||
(if keep
|
||||
(when (file-exists-p file)
|
||||
(when reset-vc-info
|
||||
|
@ -643,7 +646,10 @@ editing!"
|
|||
|
||||
(defun vc-resynch-buffer (file &optional keep noquery reset-vc-info)
|
||||
"If FILE is currently visited, resynch its buffer."
|
||||
(if (string= buffer-file-name file)
|
||||
(if (string= buffer-file-name
|
||||
(if (file-name-absolute-p file)
|
||||
file
|
||||
(expand-file-name file (vc-root-dir))))
|
||||
(vc-resynch-window file keep noquery reset-vc-info)
|
||||
(if (file-directory-p file)
|
||||
(vc-resynch-buffers-in-directory file keep noquery reset-vc-info)
|
||||
|
|
|
@ -1289,6 +1289,7 @@ If PROMPT is non-nil, prompt for the Git command to run."
|
|||
(lambda (_name-of-mode) buffer)
|
||||
nil))))
|
||||
(vc-set-async-update buffer)
|
||||
;; Return the process for `vc-pull-and-push'
|
||||
proc))
|
||||
|
||||
(defun vc-git-pull (prompt)
|
||||
|
|
|
@ -3064,7 +3064,8 @@ On a distributed version control system, this runs a \"pull\"
|
|||
operation on the current branch, prompting for the precise
|
||||
command if required. Optional prefix ARG non-nil forces a prompt
|
||||
for the VCS command to run. If this is successful, a \"push\"
|
||||
operation will then be done.
|
||||
operation will then be done. This is supported only in backends
|
||||
where the pull operation returns a process.
|
||||
|
||||
On a non-distributed version control system, this signals an error.
|
||||
It also signals an error in a Bazaar bound branch."
|
||||
|
|
|
@ -5670,9 +5670,11 @@ the original point in both windows."
|
|||
|
||||
(defun split-window-below (&optional size window-to-split)
|
||||
"Split WINDOW-TO-SPLIT into two windows, one above the other.
|
||||
WINDOW-TO-SPLIT defaults to the selected window and and will be above
|
||||
the other window after splitting. The newly split-off window is
|
||||
below and displays the same buffer. Return the new window.
|
||||
WINDOW-TO-SPLIT defaults to the selected window if omitted or nil.
|
||||
The newly created window will be below WINDOW-TO-SPLIT and will show
|
||||
the same buffer as WINDOW-TO-SPLIT, if it is a live window, else the
|
||||
buffer shown in the WINDOW-TO-SPLIT's frame's selected window.
|
||||
Return the new window.
|
||||
|
||||
If optional argument SIZE is omitted or nil, both windows get the
|
||||
same height, or close to it. If SIZE is positive, the upper
|
||||
|
@ -5735,9 +5737,11 @@ handled as in `split-window-below'."
|
|||
|
||||
(defun split-window-right (&optional size window-to-split)
|
||||
"Split WINDOW-TO-SPLIT into two side-by-side windows.
|
||||
WINDOW-TO-SPLIT defaults to the selected window and and will be on the
|
||||
left after splitting. The newly split-off window is on the right and
|
||||
displays the same buffer. Return the new window.
|
||||
WINDOW-TO-SPLIT defaults to the selected window if omitted or nil.
|
||||
The newly created window will be to the right of WINDOW-TO-SPLIT and
|
||||
will show the same buffer as WINDOW-TO-SPLIT, if it is a live window,
|
||||
else the buffer shown in the WINDOW-TO-SPLIT's frame's selected window.
|
||||
Return the new window.
|
||||
|
||||
If optional argument SIZE is omitted or nil, both windows get the
|
||||
same width, or close to it. If SIZE is positive, the left-hand
|
||||
|
|
|
@ -151,16 +151,22 @@ If `xterm-mouse-utf-8' was non-nil when
|
|||
`turn-on-xterm-mouse-tracking-on-terminal' was called, reads the
|
||||
coordinate as an UTF-8 code unit sequence; otherwise, reads a
|
||||
single byte."
|
||||
(let ((previous-keyboard-coding-system (keyboard-coding-system)))
|
||||
(let ((previous-keyboard-coding-system (keyboard-coding-system))
|
||||
(utf-8-p (terminal-parameter nil 'xterm-mouse-utf-8))
|
||||
;; Prevent conversions inside 'read-char' due to input method,
|
||||
;; when we call 'read-char' below with 2nd argument non-nil.
|
||||
(input-method-function nil))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(set-keyboard-coding-system
|
||||
(if (terminal-parameter nil 'xterm-mouse-utf-8)
|
||||
'utf-8-unix
|
||||
'no-conversion))
|
||||
;; Wait only a little; we assume that the entire escape sequence
|
||||
;; has already been sent when this function is called.
|
||||
(read-char nil nil 0.1))
|
||||
(set-keyboard-coding-system (if utf-8-p 'utf-8-unix 'no-conversion))
|
||||
(read-char nil
|
||||
;; Force 'read-char' to decode UTF-8 sequences if
|
||||
;; 'xterm-mouse-utf-8' is non-nil.
|
||||
utf-8-p
|
||||
;; Wait only a little; we assume that the entire
|
||||
;; escape sequence has already been sent when
|
||||
;; this function is called.
|
||||
0.1))
|
||||
(set-keyboard-coding-system previous-keyboard-coding-system))))
|
||||
|
||||
;; In default mode, each numeric parameter of XTerm's mouse report is
|
||||
|
|
17
src/insdel.c
17
src/insdel.c
|
@ -1175,9 +1175,20 @@ insert_from_buffer (struct buffer *buf,
|
|||
{
|
||||
ptrdiff_t opoint = PT;
|
||||
|
||||
#ifdef HAVE_TREE_SITTER
|
||||
ptrdiff_t obyte = PT_BYTE;
|
||||
#endif
|
||||
|
||||
insert_from_buffer_1 (buf, charpos, nchars, inherit);
|
||||
signal_after_change (opoint, 0, PT - opoint);
|
||||
update_compositions (opoint, PT, CHECK_BORDER);
|
||||
|
||||
#ifdef HAVE_TREE_SITTER
|
||||
eassert (PT_BYTE >= BEG_BYTE);
|
||||
eassert (obyte >= BEG_BYTE);
|
||||
eassert (PT_BYTE >= obyte);
|
||||
treesit_record_change (obyte, obyte, PT_BYTE);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1305,12 +1316,6 @@ insert_from_buffer_1 (struct buffer *buf,
|
|||
/* Insert those intervals. */
|
||||
graft_intervals_into_buffer (intervals, PT, nchars, current_buffer, inherit);
|
||||
|
||||
#ifdef HAVE_TREE_SITTER
|
||||
eassert (outgoing_nbytes >= 0);
|
||||
eassert (PT_BYTE >= 0);
|
||||
treesit_record_change (PT_BYTE, PT_BYTE, PT_BYTE + outgoing_nbytes);
|
||||
#endif
|
||||
|
||||
adjust_point (nchars, outgoing_nbytes);
|
||||
}
|
||||
|
||||
|
|
|
@ -6012,7 +6012,6 @@ realize_non_ascii_face (struct frame *f, Lisp_Object font_object,
|
|||
|
||||
return face;
|
||||
}
|
||||
#endif /* HAVE_WINDOW_SYSTEM */
|
||||
|
||||
/* Remove the attribute at INDEX from the font object if SYMBOL
|
||||
appears in `font-fallback-ignored-attributes'. */
|
||||
|
@ -6031,6 +6030,7 @@ font_maybe_unset_attribute (Lisp_Object font_object,
|
|||
ASET (font_object, index, Qnil);
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_WINDOW_SYSTEM */
|
||||
|
||||
/* Realize the fully-specified face with attributes ATTRS in face
|
||||
cache CACHE for ASCII characters. Do it for GUI frame CACHE->f.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; erc-scenarios-compat-rename-bouncer.el --- compat-rename scenarios -*- lexical-binding: t -*-
|
||||
;;; erc-scenarios-base-compat-rename-bouncer.el --- Compat-rename scenarios -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2022-2023 Free Software Foundation, Inc.
|
||||
|
||||
|
@ -169,4 +169,4 @@
|
|||
(erc-scenarios-common--base-compat-no-rename-bouncer dialogs
|
||||
'auto after)))))
|
||||
|
||||
;;; erc-scenarios-compat-rename-bouncer.el ends here
|
||||
;;; erc-scenarios-base-compat-rename-bouncer.el ends here
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; erc-scenarios-local-modules.el --- Local modules tests for ERC -*- lexical-binding: t -*-
|
||||
;;; erc-scenarios-base-local-modules.el --- Local-module tests for ERC -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2022-2023 Free Software Foundation, Inc.
|
||||
|
||||
|
@ -22,14 +22,15 @@
|
|||
;; A local module doubles as a minor mode whose mode variable and
|
||||
;; associated local data can withstand service disruptions.
|
||||
;; Unfortunately, the current implementation is too unwieldy to be
|
||||
;; made public because it doesn't perform any of the boiler plate
|
||||
;; needed to save and restore buffer-local and "network-local" copies
|
||||
;; of user options. Ultimately, a user-friendly framework must fill
|
||||
;; this void if third-party local modules are ever to become
|
||||
;; promoted publicly because it doesn't perform any of the boiler
|
||||
;; plate needed to save and restore buffer-local and "network-local"
|
||||
;; copies of user options. Ultimately, a user-friendly framework must
|
||||
;; fill this void if third-party local modules are ever to become
|
||||
;; practical.
|
||||
;;
|
||||
;; The following tests all use `sasl' because, as of ERC 5.5, it's the
|
||||
;; only local module.
|
||||
;; only connection-oriented local module. A fictitious
|
||||
;; target-oriented module is defined below for testing purposes.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
@ -325,4 +326,4 @@
|
|||
(funcall expect 10 "User modes for tester")
|
||||
(should (eql erc-scenarios-base-local-modules--local-var 1))))))
|
||||
|
||||
;;; erc-scenarios-local-modules.el ends here
|
||||
;;; erc-scenarios-base-local-modules.el ends here
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; erc-scenarios-base-network-id-samenet.el --- netid-id samenet scenarios -*- lexical-binding: t -*-
|
||||
;;; erc-scenarios-base-netid-samenet.el --- One-network net-ID scenarios -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2022-2023 Free Software Foundation, Inc.
|
||||
|
||||
|
@ -148,4 +148,4 @@
|
|||
:server "foonet/chester"
|
||||
:chan "#chan@foonet/chester")))
|
||||
|
||||
;;; erc-scenarios-base-network-id-samenet.el ends here
|
||||
;;; erc-scenarios-base-netid-samenet.el ends here
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; erc-scenarios-upstream-recon-soju.el --- Upstream soju -*- lexical-binding: t -*-
|
||||
;;; erc-scenarios-base-upstream-recon-soju.el --- Bouncer recon scenario -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2022-2023 Free Software Foundation, Inc.
|
||||
|
||||
|
@ -19,7 +19,8 @@
|
|||
|
||||
;; Commentary:
|
||||
|
||||
;; These concern the loss and recovery of a proxy's IRC-side connection.
|
||||
;; These concern the loss and recovery of a proxy's IRC-side
|
||||
;; connection (hence "upstream").
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
@ -41,4 +42,4 @@
|
|||
'soju-foonet
|
||||
'soju-barnet))
|
||||
|
||||
;;; erc-scenarios-upstream-recon-soju.el ends here
|
||||
;;; erc-scenarios-base-upstream-recon-soju.el ends here
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; erc-scenarios-upstream-recon-znc.el --- Upstream znc -*- lexical-binding: t -*-
|
||||
;;; erc-scenarios-base-upstream-recon-znc.el --- Bouncer recon scenario -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2022-2023 Free Software Foundation, Inc.
|
||||
|
||||
|
@ -19,7 +19,8 @@
|
|||
|
||||
;; Commentary:
|
||||
|
||||
;; These concern the loss and recovery of a proxy's IRC-side connection.
|
||||
;; These concern the loss and recovery of a proxy's IRC-side
|
||||
;; connection (hence "upstream").
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
@ -41,4 +42,4 @@
|
|||
'znc-foonet
|
||||
'znc-barnet))
|
||||
|
||||
;;; erc-scenarios-upstream-recon-znc.el ends here
|
||||
;;; erc-scenarios-base-upstream-recon-znc.el ends here
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(require 'tramp)
|
||||
(require 'ert)
|
||||
(require 'esh-mode)
|
||||
(require 'eshell)
|
||||
|
@ -85,6 +86,18 @@
|
|||
"\\`\\'"))
|
||||
(should (equal (buffer-string) "stdout\nstderr\n"))))
|
||||
|
||||
(ert-deftest esh-var-test/output/remote-redirect ()
|
||||
"Check that redirecting stdout for a remote process works."
|
||||
(skip-unless (and (eshell-tests-remote-accessible-p)
|
||||
(executable-find "echo")))
|
||||
(let ((default-directory ert-remote-temporary-file-directory))
|
||||
(eshell-with-temp-buffer bufname "old"
|
||||
(with-temp-eshell
|
||||
(eshell-match-command-output
|
||||
(format "*echo hello > #<%s>" bufname)
|
||||
"\\`\\'"))
|
||||
(should (equal (buffer-string) "hello\n")))))
|
||||
|
||||
|
||||
;; Exit status
|
||||
|
||||
|
|
|
@ -105,6 +105,58 @@ main (int argc,
|
|||
}
|
||||
=-=-=
|
||||
|
||||
Name: Bracket-less Block-Statement (GNU Style) (bug#61026)
|
||||
|
||||
=-=
|
||||
int main() {
|
||||
while (true)
|
||||
if (true)
|
||||
{
|
||||
puts ("Hello");
|
||||
}
|
||||
for (int i=0; i<5; i++)
|
||||
if (true)
|
||||
{
|
||||
puts ("Hello");
|
||||
}
|
||||
do
|
||||
if (true)
|
||||
{
|
||||
puts ("Hello");
|
||||
}
|
||||
while (true);
|
||||
if (true)
|
||||
if (true)
|
||||
{
|
||||
puts ("Hello");
|
||||
}
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Name: Bracket-less Block-Statement (Linux Style) (bug#61026)
|
||||
|
||||
=-=-=
|
||||
int main() {
|
||||
while (true)
|
||||
if (true) {
|
||||
puts ("Hello");
|
||||
}
|
||||
for (int i=0; i<5; i++)
|
||||
if (true) {
|
||||
puts ("Hello");
|
||||
}
|
||||
do
|
||||
if (true) {
|
||||
puts ("Hello");
|
||||
}
|
||||
while (true);
|
||||
if (true)
|
||||
if (true) {
|
||||
puts ("Hello");
|
||||
}
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Name: Multiline Parameter List (bug#60398)
|
||||
|
||||
=-=
|
||||
|
|
Loading…
Add table
Reference in a new issue