mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Merge from origin/emacs-26
7668717d6fMerge from Gnulib9e4d523427* lisp/epg.el (epg-start-sign): Replace obsolete functions.26c58f31a8Small fix for erc-logging-enabled34b41e3bc6Quieten semantic normal usagee25f961e37Avoid irrelevant hyperlink in doc string of 'epa-pinentry-...ec2636513c* doc/misc/tramp.texi (Remote processes): Mention gdb rest...918a052a42Query background for gnome terminal version 3.22 (Bug#29716)1dfc27576aMake pixel-wise scrolling less laggyf92264fc2aFix child frame placement issues (bug#29953)a5f718c4c5; * doc/lispref/text.texi (Change Hooks): Fix last change.e876f5f9fbDescribe the precise interaction of complex primitives wit...3a22097cf6Fix valgrind report in call-interactivelyd5f1c87bfe* src/editfns.c (Fsave_excursion): Doc fix. (Bug#30001)b8d74c4578Fix mark-defun when there's no spaces between successive d...a377c652b5Fix Dired display and operations on file names with raw bytesd9d6e8a04c; Comments related to src/termcap.cf8a07fa6b1Improve documentation of 'gdb-many-windows'f82400798eFix failures in smerge-mode on MS-Windows
This commit is contained in:
commit
ddb26f79b2
31 changed files with 244 additions and 92 deletions
|
|
@ -471,6 +471,7 @@ PROPERTY set."
|
|||
;;; Lexical Analyzer framework settings
|
||||
;;
|
||||
|
||||
;; FIXME change to non-obsolete default.
|
||||
(defvar semantic-lex-analyzer 'semantic-flex
|
||||
"The lexical analyzer used for a given buffer.
|
||||
See `semantic-lex' for documentation.
|
||||
|
|
@ -1856,7 +1857,7 @@ end of the return token will be larger than END. To truly restrict
|
|||
scanning, use `narrow-to-region'.
|
||||
The last argument, LENGTH specifies that `semantic-flex' should only
|
||||
return LENGTH tokens."
|
||||
(message "`semantic-flex' is an obsolete function. Use `define-lex' to create lexers.")
|
||||
(declare (obsolete define-lex "23.2"))
|
||||
(if (not semantic-flex-keywords-obarray)
|
||||
(setq semantic-flex-keywords-obarray [ nil ]))
|
||||
(let ((ts nil)
|
||||
|
|
|
|||
|
|
@ -411,12 +411,13 @@ whitespace."
|
|||
;; See https://lists.gnu.org/r/help-gnu-emacs/2016-08/msg00141.html
|
||||
(save-excursion
|
||||
(forward-line 0)
|
||||
(< (line-end-position)
|
||||
(let ((ppss (syntax-ppss)))
|
||||
(when (nth 4 ppss)
|
||||
(goto-char (nth 8 ppss)))
|
||||
(forward-comment (point-max))
|
||||
(point)))))
|
||||
(let ((ppss (syntax-ppss)))
|
||||
(and (null (nth 3 ppss))
|
||||
(< (line-end-position)
|
||||
(progn (when (nth 4 ppss)
|
||||
(goto-char (nth 8 ppss)))
|
||||
(forward-comment (point-max))
|
||||
(point)))))))
|
||||
|
||||
(defun beginning-of-defun-comments (&optional arg)
|
||||
"Move to the beginning of ARGth defun, including comments."
|
||||
|
|
@ -434,10 +435,7 @@ whitespace."
|
|||
(progn (skip-syntax-backward
|
||||
"-" (line-beginning-position))
|
||||
(not (bolp))) ; Check for blank line.
|
||||
(progn (parse-partial-sexp
|
||||
(line-beginning-position) (line-end-position)
|
||||
nil t (syntax-ppss (line-beginning-position)))
|
||||
(eolp))))) ; Check for non-comment text.
|
||||
(beginning-of-defun--in-emptyish-line-p)))) ; Check for non-comment text.
|
||||
(forward-line (if first-line-p 0 1))))
|
||||
|
||||
(defvar end-of-defun-function
|
||||
|
|
|
|||
|
|
@ -56,12 +56,15 @@ If neither t nor nil, ask user for confirmation."
|
|||
:type 'integer
|
||||
:group 'epa)
|
||||
|
||||
;; In the doc string below, we say "symbol `error'" to avoid producing
|
||||
;; a hyperlink for `error' the function.
|
||||
(defcustom epa-pinentry-mode nil
|
||||
"The pinentry mode.
|
||||
|
||||
GnuPG 2.1 or later has an option to control the behavior of
|
||||
Pinentry invocation. Possible modes are: `ask', `cancel',
|
||||
`error', and `loopback'. See the GnuPG manual for the meanings.
|
||||
Pinentry invocation. The value should be the symbol `error',
|
||||
`ask', `cancel', or `loopback'. See the GnuPG manual for the
|
||||
meanings.
|
||||
|
||||
In epa commands, a particularly useful mode is `loopback', which
|
||||
redirects all Pinentry queries to the caller, so Emacs can query
|
||||
|
|
|
|||
|
|
@ -1676,8 +1676,8 @@ If you are unsure, use synchronous version of this function
|
|||
(setf (epg-context-operation context) 'sign)
|
||||
(setf (epg-context-result context) nil)
|
||||
(unless (memq mode '(t detached nil normal)) ;i.e. cleartext
|
||||
(epg-context-set-armor context nil)
|
||||
(epg-context-set-textmode context nil))
|
||||
(setf (epg-context-armor context) nil)
|
||||
(setf (epg-context-textmode context) nil))
|
||||
(epg--start context
|
||||
(append (list (if (memq mode '(t detached))
|
||||
"--detach-sign"
|
||||
|
|
|
|||
|
|
@ -321,12 +321,13 @@ If BUFFER is nil, the value of `current-buffer' is used.
|
|||
Logging is enabled if `erc-log-channels-directory' is non-nil, the directory
|
||||
is writable (it will be created as necessary) and
|
||||
`erc-enable-logging' returns a non-nil value."
|
||||
(or buffer (setq buffer (current-buffer)))
|
||||
(and erc-log-channels-directory
|
||||
(or (functionp erc-log-channels-directory)
|
||||
(erc-directory-writable-p erc-log-channels-directory))
|
||||
(if (functionp erc-enable-logging)
|
||||
(funcall erc-enable-logging (or buffer (current-buffer)))
|
||||
erc-enable-logging)))
|
||||
(funcall erc-enable-logging buffer)
|
||||
(buffer-local-value 'erc-enable-logging buffer))))
|
||||
|
||||
(defun erc-log-standardize-name (filename)
|
||||
"Make FILENAME safe to use as the name of an ERC log.
|
||||
|
|
|
|||
|
|
@ -82,6 +82,27 @@ case you need scrolling resolution of a pixel, set to 1. After a
|
|||
pixel scroll, typing \\[next-line] or \\[previous-line] scrolls the window to make it
|
||||
fully visible, and undoes the effect of the pixel-level scroll.")
|
||||
|
||||
(defvar pixel-dead-time 0.1
|
||||
"Minimal interval in seconds before next smooth scrolling.
|
||||
If another scrolling request arrives within this period, scrolling
|
||||
will be carried out without pixel resolution. If zero, scrolling
|
||||
is always with pixel resolution.")
|
||||
|
||||
(defvar pixel-last-scroll-time 0
|
||||
"Time when the last scrolling was made, in second since the epoch.")
|
||||
|
||||
(defun pixel-scroll-in-rush-p ()
|
||||
"Return non-nil if next scroll should be non-smooth.
|
||||
When scrolling request is delivered soon after the previous one,
|
||||
user is in hurry. When the time since last scroll is larger than
|
||||
`pixel-dead-time', we are ready for another smooth scroll, and this
|
||||
function returns nil."
|
||||
(let* ((current-time (float-time))
|
||||
(scroll-in-rush-p (< (- current-time pixel-last-scroll-time)
|
||||
pixel-dead-time)))
|
||||
(setq pixel-last-scroll-time current-time)
|
||||
scroll-in-rush-p))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode pixel-scroll-mode
|
||||
"A minor mode to scroll text pixel-by-pixel.
|
||||
|
|
@ -104,35 +125,39 @@ if ARG is omitted or nil."
|
|||
This is an alternative of `scroll-up'. Scope moves downward."
|
||||
(interactive)
|
||||
(or arg (setq arg 1))
|
||||
(dotimes (ii arg) ; move scope downward
|
||||
(let ((amt (if pixel-resolution-fine-flag
|
||||
(if (integerp pixel-resolution-fine-flag)
|
||||
pixel-resolution-fine-flag
|
||||
(frame-char-height))
|
||||
(pixel-line-height))))
|
||||
(if (pixel-eob-at-top-p) ; when end-of-the-buffer is close
|
||||
(scroll-up 1) ; relay on robust method
|
||||
(while (pixel-point-at-top-p amt) ; prevent too late (multi tries)
|
||||
(vertical-motion 1)) ; move point downward
|
||||
(pixel-scroll-pixel-up amt))))) ; move scope downward
|
||||
(if (pixel-scroll-in-rush-p)
|
||||
(scroll-up arg)
|
||||
(dotimes (ii arg) ; move scope downward
|
||||
(let ((amt (if pixel-resolution-fine-flag
|
||||
(if (integerp pixel-resolution-fine-flag)
|
||||
pixel-resolution-fine-flag
|
||||
(frame-char-height))
|
||||
(pixel-line-height))))
|
||||
(if (pixel-eob-at-top-p) ; when end-of-the-buffer is close
|
||||
(scroll-up 1) ; relay on robust method
|
||||
(while (pixel-point-at-top-p amt) ; prevent too late (multi tries)
|
||||
(vertical-motion 1)) ; move point downward
|
||||
(pixel-scroll-pixel-up amt)))))) ; move scope downward
|
||||
|
||||
(defun pixel-scroll-down (&optional arg)
|
||||
"Scroll text of selected window down ARG lines.
|
||||
This is and alternative of `scroll-down'. Scope moves upward."
|
||||
(interactive)
|
||||
(or arg (setq arg 1))
|
||||
(dotimes (ii arg)
|
||||
(let ((amt (if pixel-resolution-fine-flag
|
||||
(if (integerp pixel-resolution-fine-flag)
|
||||
pixel-resolution-fine-flag
|
||||
(frame-char-height))
|
||||
(pixel-line-height -1))))
|
||||
(while (pixel-point-at-bottom-p amt) ; prevent too late (multi tries)
|
||||
(vertical-motion -1)) ; move point upward
|
||||
(if (or (pixel-bob-at-top-p amt) ; when beginning-of-the-buffer is seen
|
||||
(pixel-eob-at-top-p)) ; for file with a long line
|
||||
(scroll-down 1) ; relay on robust method
|
||||
(pixel-scroll-pixel-down amt)))))
|
||||
(if (pixel-scroll-in-rush-p)
|
||||
(scroll-down arg)
|
||||
(dotimes (ii arg)
|
||||
(let ((amt (if pixel-resolution-fine-flag
|
||||
(if (integerp pixel-resolution-fine-flag)
|
||||
pixel-resolution-fine-flag
|
||||
(frame-char-height))
|
||||
(pixel-line-height -1))))
|
||||
(while (pixel-point-at-bottom-p amt) ; prevent too late (multi tries)
|
||||
(vertical-motion -1)) ; move point upward
|
||||
(if (or (pixel-bob-at-top-p amt) ; when beginning-of-the-buffer is seen
|
||||
(pixel-eob-at-top-p)) ; for file with a long line
|
||||
(scroll-down 1) ; relay on robust method
|
||||
(pixel-scroll-pixel-down amt))))))
|
||||
|
||||
(defun pixel-bob-at-top-p (amt)
|
||||
"Return non-nil if window-start is at beginning of the current buffer.
|
||||
|
|
|
|||
|
|
@ -675,8 +675,13 @@ Return the pasted text as a string."
|
|||
(when (and (> version 2000) (equal (match-string 1 str) "1"))
|
||||
;; Hack attack! bug#16988: gnome-terminal reports "1;NNNN;0"
|
||||
;; with a large NNNN but is based on a rather old xterm code.
|
||||
;; Gnome terminal 3.6.1 reports 1;3406;0
|
||||
;; Gnome terminal 2.32.1 reports 1;2802;0
|
||||
;; Gnome terminal 3.6.1 reports 1;3406;0
|
||||
;; Gnome terminal 3.22.2 reports 1;4601;0 and *does* support
|
||||
;; background color querying (Bug#29716).
|
||||
(when (> version 4000)
|
||||
(xterm--query "\e]11;?\e\\"
|
||||
'(("\e]11;" . xterm--report-background-handler))))
|
||||
(setq version 200))
|
||||
(when (equal (match-string 1 str) "83")
|
||||
;; `screen' (which returns 83;40003;0) seems to also lack support for
|
||||
|
|
|
|||
|
|
@ -1019,7 +1019,7 @@ chars to try and eliminate some spurious differences."
|
|||
(setq s short)))
|
||||
(dotimes (_i (1- len)) (insert s)))))))
|
||||
(unless (bolp) (error "Smerge refine internal error"))
|
||||
(let ((coding-system-for-write 'emacs-internal))
|
||||
(let ((coding-system-for-write 'utf-8-emacs-unix))
|
||||
(write-region (point-min) (point-max) file nil 'nomessage))))
|
||||
|
||||
(defun smerge--refine-highlight-change (beg match-num1 match-num2 props)
|
||||
|
|
@ -1084,7 +1084,9 @@ used to replace chars to try and eliminate some spurious differences."
|
|||
;; Call diff on those files.
|
||||
(unwind-protect
|
||||
(with-temp-buffer
|
||||
(let ((coding-system-for-read 'emacs-internal))
|
||||
;; Allow decoding the EOL format, as on MS-Windows the Diff
|
||||
;; utility might produce CR-LF EOLs.
|
||||
(let ((coding-system-for-read 'utf-8-emacs))
|
||||
(call-process diff-command nil t nil
|
||||
(if (and smerge-refine-ignore-whitespace
|
||||
(not smerge-refine-weight-hack))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue