mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
Merge from origin/emacs-27
5b7d226779* etc/AUTHORS: Update.4aa758e53d; ChangeLog.3 update9261b1ed49* admin/authors.el (authors-ignored-files): Fix entries.86e4da6eaf; ChangeLog.3 update009c6a1767; ChangeLog.3 fixesf9e53947c7Fix documented slot name of eieio-instance-tracker class999d75c0c1Range-check width passed to define-fringe-bitmap29e415d6b0; ChangeLog.3 fixes4653baa6a5; ChangeLog.3 update & fixes.a95ec6e060* admin/authors.el: Add missing entriesaf519a6348Define libgnutls-version properly9ec6eb1065vc-dir-ignore: More accurately choose base directorye74fb4688b* lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--detect)...3bce7ec382CC Mode: Protect against consecutive calls to before-chang...
This commit is contained in:
commit
1c81bb8c24
10 changed files with 1301 additions and 765 deletions
519
ChangeLog.3
519
ChangeLog.3
File diff suppressed because it is too large
Load diff
|
|
@ -294,7 +294,10 @@ If REALNAME is nil, ignore that author.")
|
|||
"preferences\\.\\(nib\\|gorm\\)"
|
||||
;; Generated files that have since been removed.
|
||||
"\\(refcard\\(-de\\|-pl\\)?\\|calccard\\|dired-ref\\|orgcard\\|\
|
||||
gnus-booklet\\|fr-drdref\\)\\.p\\(df\\|s\\)\\'")
|
||||
gnus-booklet\\|fr-drdref\\)\\.p\\(df\\|s\\)\\'"
|
||||
;; Removed as obsolete
|
||||
"README-ftp-server"
|
||||
)
|
||||
"List of regexps matching obsolete files.
|
||||
Changes to files matching one of the regexps in this list are not listed.")
|
||||
|
||||
|
|
@ -459,6 +462,12 @@ Changes to files matching one of the regexps in this list are not listed.")
|
|||
;; ada-mode has been deleted, now in GNU ELPA
|
||||
"ada-mode.texi"
|
||||
"GNUS-NEWS"
|
||||
"doc/misc/gnus-news.el"
|
||||
"src/fingerprint-dummy.c"
|
||||
"src/fingerprint.h"
|
||||
;; Replaced by lisp/thread.el
|
||||
"lisp/emacs-lisp/thread-list.el"
|
||||
"etc/images/slash.bmp"
|
||||
)
|
||||
"List of files and directories to ignore.
|
||||
Changes to files in this list are not listed.")
|
||||
|
|
@ -1103,6 +1112,8 @@ in the repository.")
|
|||
("lisp/net/starttls.el" . "lisp/obsolete/starttls.el")
|
||||
("url-ns.el" . "lisp/obsolete/url-ns.el")
|
||||
("gnus-news.texi" . "doc/misc/gnus.texi")
|
||||
("lisp/multifile.el". "lisp/fileloop.el")
|
||||
("lisp/emacs-lisp/thread.el". "lisp/thread.el")
|
||||
)
|
||||
"Alist of files which have been renamed during their lifetime.
|
||||
Elements are (OLDNAME . NEWNAME).")
|
||||
|
|
|
|||
|
|
@ -1285,9 +1285,9 @@ This class is defined in the package @file{eieio-base}.
|
|||
Sometimes it is useful to keep a master list of all instances of a given
|
||||
class. The class @code{eieio-instance-tracker} performs this task.
|
||||
|
||||
@deftp {Class} eieio-instance-tracker tracker-symbol
|
||||
@deftp {Class} eieio-instance-tracker tracking-symbol
|
||||
Enable instance tracking for this class.
|
||||
The slot @var{tracker-symbol} should be initialized in inheritors of
|
||||
The slot @var{tracking-symbol} should be initialized in inheritors of
|
||||
this class to a symbol created with @code{defvar}. This symbol will
|
||||
serve as the variable used as a master list of all objects of the given
|
||||
class.
|
||||
|
|
|
|||
1322
etc/AUTHORS
1322
etc/AUTHORS
File diff suppressed because it is too large
Load diff
|
|
@ -141,61 +141,63 @@ By convention, this is a list of symbols where each symbol stands for the
|
|||
;;; Detect cursor movement.
|
||||
|
||||
(defun cursor-sensor--detect (&optional window)
|
||||
(unless cursor-sensor-inhibit
|
||||
(let* ((point (window-point window))
|
||||
;; It's often desirable to make the cursor-sensor-functions property
|
||||
;; non-sticky on both ends, but that means get-pos-property might
|
||||
;; never see it.
|
||||
(new (and (eq (current-buffer) (window-buffer))
|
||||
(or (get-char-property point 'cursor-sensor-functions)
|
||||
(unless (<= (point-min) point)
|
||||
(get-char-property (1- point) 'cursor-sensor-functions)))))
|
||||
(old (window-parameter window 'cursor-sensor--last-state))
|
||||
(oldposmark (car old))
|
||||
(oldpos (or (if oldposmark (marker-position oldposmark))
|
||||
(point-min)))
|
||||
(start (min oldpos point))
|
||||
(end (max oldpos point)))
|
||||
(unless (or (null old) (eq (marker-buffer oldposmark) (current-buffer)))
|
||||
;; `window' does not display the same buffer any more!
|
||||
(setcdr old nil))
|
||||
(if (or (and (null new) (null (cdr old)))
|
||||
(and (eq new (cdr old))
|
||||
(eq (next-single-char-property-change
|
||||
start 'cursor-sensor-functions nil end)
|
||||
end)))
|
||||
;; Clearly nothing to do.
|
||||
nil
|
||||
;; Maybe something to do. Let's see exactly what needs to run.
|
||||
(let* ((missing-p
|
||||
(lambda (f)
|
||||
"Non-nil if F is missing somewhere between START and END."
|
||||
(let ((pos start)
|
||||
(missing nil))
|
||||
(while (< pos end)
|
||||
(setq pos (next-single-char-property-change
|
||||
pos 'cursor-sensor-functions
|
||||
nil end))
|
||||
(unless (memq f (get-char-property
|
||||
pos 'cursor-sensor-functions))
|
||||
(setq missing t)))
|
||||
missing)))
|
||||
(window (selected-window)))
|
||||
(dolist (f (cdr old))
|
||||
(unless (and (memq f new) (not (funcall missing-p f)))
|
||||
(funcall f window oldpos 'left)))
|
||||
(dolist (f new)
|
||||
(unless (and (memq f (cdr old)) (not (funcall missing-p f)))
|
||||
(funcall f window oldpos 'entered)))))
|
||||
(with-current-buffer (window-buffer window)
|
||||
(unless cursor-sensor-inhibit
|
||||
(let* ((point (window-point window))
|
||||
;; It's often desirable to make the
|
||||
;; cursor-sensor-functions property non-sticky on both
|
||||
;; ends, but that means get-pos-property might never
|
||||
;; see it.
|
||||
(new (or (get-char-property point 'cursor-sensor-functions)
|
||||
(unless (<= (point-min) point)
|
||||
(get-char-property (1- point)
|
||||
'cursor-sensor-functions))))
|
||||
(old (window-parameter window 'cursor-sensor--last-state))
|
||||
(oldposmark (car old))
|
||||
(oldpos (or (if oldposmark (marker-position oldposmark))
|
||||
(point-min)))
|
||||
(start (min oldpos point))
|
||||
(end (max oldpos point)))
|
||||
(unless (or (null old) (eq (marker-buffer oldposmark) (current-buffer)))
|
||||
;; `window' does not display the same buffer any more!
|
||||
(setcdr old nil))
|
||||
(if (or (and (null new) (null (cdr old)))
|
||||
(and (eq new (cdr old))
|
||||
(eq (next-single-char-property-change
|
||||
start 'cursor-sensor-functions nil end)
|
||||
end)))
|
||||
;; Clearly nothing to do.
|
||||
nil
|
||||
;; Maybe something to do. Let's see exactly what needs to run.
|
||||
(let* ((missing-p
|
||||
(lambda (f)
|
||||
"Non-nil if F is missing somewhere between START and END."
|
||||
(let ((pos start)
|
||||
(missing nil))
|
||||
(while (< pos end)
|
||||
(setq pos (next-single-char-property-change
|
||||
pos 'cursor-sensor-functions
|
||||
nil end))
|
||||
(unless (memq f (get-char-property
|
||||
pos 'cursor-sensor-functions))
|
||||
(setq missing t)))
|
||||
missing)))
|
||||
(window (selected-window)))
|
||||
(dolist (f (cdr old))
|
||||
(unless (and (memq f new) (not (funcall missing-p f)))
|
||||
(funcall f window oldpos 'left)))
|
||||
(dolist (f new)
|
||||
(unless (and (memq f (cdr old)) (not (funcall missing-p f)))
|
||||
(funcall f window oldpos 'entered)))))
|
||||
|
||||
;; Remember current state for next time.
|
||||
;; Re-read cursor-sensor-functions since the functions may have moved
|
||||
;; window-point!
|
||||
(if old
|
||||
(progn (move-marker (car old) point)
|
||||
(setcdr old new))
|
||||
(set-window-parameter window 'cursor-sensor--last-state
|
||||
(cons (copy-marker point) new))))))
|
||||
;; Remember current state for next time.
|
||||
;; Re-read cursor-sensor-functions since the functions may have moved
|
||||
;; window-point!
|
||||
(if old
|
||||
(progn (move-marker (car old) point)
|
||||
(setcdr old new))
|
||||
(set-window-parameter window 'cursor-sensor--last-state
|
||||
(cons (copy-marker point) new)))))))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode cursor-sensor-mode
|
||||
|
|
|
|||
|
|
@ -1865,18 +1865,25 @@ Note that this is a strict tail, so won't match, e.g. \"0x....\".")
|
|||
;; it/them from the cache. Don't worry about being inside a string
|
||||
;; or a comment - "wrongly" removing a symbol from `c-found-types'
|
||||
;; isn't critical.
|
||||
(unless (or (c-called-from-text-property-change-p)
|
||||
c-just-done-before-change) ; guard against a spurious second
|
||||
; invocation of before-change-functions.
|
||||
(setq c-just-done-before-change t)
|
||||
;; (c-new-BEG c-new-END) will be the region to fontify.
|
||||
(setq c-new-BEG beg c-new-END end)
|
||||
(setq c-maybe-stale-found-type nil)
|
||||
;; A workaround for syntax-ppss's failure to notice syntax-table text
|
||||
;; property changes.
|
||||
(when (fboundp 'syntax-ppss)
|
||||
(setq c-syntax-table-hwm most-positive-fixnum))
|
||||
(unless (c-called-from-text-property-change-p)
|
||||
(save-restriction
|
||||
(widen)
|
||||
(if c-just-done-before-change
|
||||
;; We have two consecutive calls to `before-change-functions' without
|
||||
;; an intervening `after-change-functions'. An example of this is bug
|
||||
;; #38691. To protect CC Mode, assume that the entire buffer has
|
||||
;; changed.
|
||||
(setq beg (point-min)
|
||||
end (point-max)
|
||||
c-just-done-before-change 'whole-buffer)
|
||||
(setq c-just-done-before-change t))
|
||||
;; (c-new-BEG c-new-END) will be the region to fontify.
|
||||
(setq c-new-BEG beg c-new-END end)
|
||||
(setq c-maybe-stale-found-type nil)
|
||||
;; A workaround for syntax-ppss's failure to notice syntax-table text
|
||||
;; property changes.
|
||||
(when (fboundp 'syntax-ppss)
|
||||
(setq c-syntax-table-hwm most-positive-fixnum))
|
||||
(save-match-data
|
||||
(widen)
|
||||
(unwind-protect
|
||||
|
|
@ -1982,14 +1989,20 @@ Note that this is a strict tail, so won't match, e.g. \"0x....\".")
|
|||
;; without an intervening call to `before-change-functions' when reverting
|
||||
;; the buffer (see bug #24094). Whatever the cause, assume that the entire
|
||||
;; buffer has changed.
|
||||
(when (and (not c-just-done-before-change)
|
||||
(not (c-called-from-text-property-change-p)))
|
||||
|
||||
;; Note: c-just-done-before-change is nil, t, or 'whole-buffer.
|
||||
(unless (c-called-from-text-property-change-p)
|
||||
(save-restriction
|
||||
(widen)
|
||||
(c-before-change (point-min) (point-max))
|
||||
(setq beg (point-min)
|
||||
end (point-max)
|
||||
old-len (- end beg))))
|
||||
(unless c-just-done-before-change
|
||||
(c-before-change (point-min) (point-max)))
|
||||
(unless (eq c-just-done-before-change t)
|
||||
(setq beg (point-min)
|
||||
end (point-max)
|
||||
old-len (- end beg)
|
||||
c-new-BEG (point-min)
|
||||
c-new-END (point-max)))
|
||||
(setq c-just-done-before-change nil)))
|
||||
|
||||
;; (c-new-BEG c-new-END) will be the region to fontify. It may become
|
||||
;; larger than (beg end).
|
||||
|
|
|
|||
|
|
@ -879,9 +879,10 @@ If a prefix argument is given, ignore all marked files."
|
|||
(vc-ignore (vc-dir-fileinfo->name filearg))
|
||||
t))
|
||||
vc-ewoc)
|
||||
(vc-ignore
|
||||
(file-relative-name (vc-dir-current-file))
|
||||
default-directory)))
|
||||
(let ((rel-dir (vc--ignore-base-dir)))
|
||||
(vc-ignore
|
||||
(file-relative-name (vc-dir-current-file) rel-dir)
|
||||
rel-dir))))
|
||||
|
||||
(defun vc-dir-current-file ()
|
||||
(let ((node (ewoc-locate vc-ewoc)))
|
||||
|
|
|
|||
|
|
@ -1427,14 +1427,7 @@ When called interactively, prompt for a FILE to ignore, unless a
|
|||
prefix argument is given, in which case prompt for a file FILE to
|
||||
remove from the list of ignored files."
|
||||
(interactive
|
||||
(let* ((backend (vc-responsible-backend default-directory))
|
||||
(rel-dir
|
||||
(condition-case nil
|
||||
(file-name-directory
|
||||
(vc-call-backend backend 'find-ignore-file
|
||||
default-directory))
|
||||
(vc-not-supported
|
||||
default-directory)))
|
||||
(let* ((rel-dir (vc--ignore-base-dir))
|
||||
(file (read-file-name "File to ignore: ")))
|
||||
(when (and (file-name-absolute-p file)
|
||||
(file-in-directory-p file rel-dir))
|
||||
|
|
@ -1447,6 +1440,15 @@ remove from the list of ignored files."
|
|||
(error "Unknown backend"))))
|
||||
(vc-call-backend backend 'ignore file directory remove)))
|
||||
|
||||
(defun vc--ignore-base-dir ()
|
||||
(let ((backend (vc-responsible-backend default-directory)))
|
||||
(condition-case nil
|
||||
(file-name-directory
|
||||
(vc-call-backend backend 'find-ignore-file
|
||||
default-directory))
|
||||
(vc-not-supported
|
||||
default-directory))))
|
||||
|
||||
(defun vc-default-ignore (backend file &optional directory remove)
|
||||
"Ignore FILE under DIRECTORY (default is `default-directory').
|
||||
FILE is a wildcard specification relative to DIRECTORY.
|
||||
|
|
|
|||
|
|
@ -1500,7 +1500,8 @@ DEFUN ("define-fringe-bitmap", Fdefine_fringe_bitmap, Sdefine_fringe_bitmap,
|
|||
BITMAP is a symbol identifying the new fringe bitmap.
|
||||
BITS is either a string or a vector of integers.
|
||||
HEIGHT is height of bitmap. If HEIGHT is nil, use length of BITS.
|
||||
WIDTH must be an integer between 1 and 16, or nil which defaults to 8.
|
||||
WIDTH must be an integer from 1 to 16, or nil which defaults to 8. An
|
||||
error is signaled if WIDTH is outside this range.
|
||||
Optional fifth arg ALIGN may be one of `top', `center', or `bottom',
|
||||
indicating the positioning of the bitmap relative to the rows where it
|
||||
is used; the default is to center the bitmap. Fifth arg may also be a
|
||||
|
|
@ -1535,7 +1536,9 @@ If BITMAP already exists, the existing definition is replaced. */)
|
|||
else
|
||||
{
|
||||
CHECK_FIXNUM (width);
|
||||
fb.width = max (0, min (XFIXNUM (width), 255));
|
||||
fb.width = max (1, min (XFIXNUM (width), 16));
|
||||
if (fb.width != XFIXNUM (width))
|
||||
args_out_of_range (width, build_string ("Width must be from 1 to 16"));
|
||||
}
|
||||
|
||||
fb.period = 0;
|
||||
|
|
|
|||
19
src/gnutls.c
19
src/gnutls.c
|
|
@ -2834,16 +2834,21 @@ Any GnuTLS extension with ID up to 100
|
|||
void
|
||||
syms_of_gnutls (void)
|
||||
{
|
||||
DEFSYM (Qlibgnutls_version, "libgnutls-version");
|
||||
Fset (Qlibgnutls_version,
|
||||
DEFVAR_LISP ("libgnutls-version", Vlibgnutls_version,
|
||||
doc: /* The version of libgnutls that Emacs was compiled with.
|
||||
The version number is encoded as an integer with the major version in
|
||||
the ten thousands place, minor version in the hundreds, and patch
|
||||
level in the ones. For builds without libgnutls, the value is -1. */);
|
||||
Vlibgnutls_version = make_fixnum
|
||||
#ifdef HAVE_GNUTLS
|
||||
make_fixnum (GNUTLS_VERSION_MAJOR * 10000
|
||||
+ GNUTLS_VERSION_MINOR * 100
|
||||
+ GNUTLS_VERSION_PATCH)
|
||||
(GNUTLS_VERSION_MAJOR * 10000
|
||||
+ GNUTLS_VERSION_MINOR * 100
|
||||
+ GNUTLS_VERSION_PATCH)
|
||||
#else
|
||||
make_fixnum (-1)
|
||||
(-1)
|
||||
#endif
|
||||
);
|
||||
;
|
||||
|
||||
#ifdef HAVE_GNUTLS
|
||||
gnutls_global_initialized = 0;
|
||||
PDUMPER_IGNORE (gnutls_global_initialized);
|
||||
|
|
|
|||
Loading…
Reference in a new issue