diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/cedet/semantic/wisent/comp.el | 13 | ||||
-rw-r--r-- | lisp/emacs-lisp/package.el | 20 | ||||
-rw-r--r-- | lisp/image/exif.el | 21 | ||||
-rw-r--r-- | lisp/image/image-converter.el | 5 | ||||
-rw-r--r-- | lisp/international/characters.el | 46 | ||||
-rw-r--r-- | lisp/international/fontset.el | 9 | ||||
-rw-r--r-- | lisp/international/mule-cmds.el | 4 | ||||
-rw-r--r-- | lisp/tab-line.el | 9 | ||||
-rw-r--r-- | lisp/textmodes/fill.el | 3 | ||||
-rw-r--r-- | lisp/vc/smerge-mode.el | 15 |
10 files changed, 107 insertions, 38 deletions
diff --git a/lisp/cedet/semantic/wisent/comp.el b/lisp/cedet/semantic/wisent/comp.el index 263dff9dcc6..4e9927f23f1 100644 --- a/lisp/cedet/semantic/wisent/comp.el +++ b/lisp/cedet/semantic/wisent/comp.el @@ -2235,13 +2235,18 @@ there are any reduce/reduce conflicts." (defun wisent-total-conflicts () "Report the total number of conflicts." (let* ((src (wisent-source)) - (symbol (intern (format "wisent-%s--expected-conflicts" - (replace-regexp-in-string "\\.el$" "" src)) - obarray))) + (symbol + ;; Source files may specify how many expected conflicts + ;; there are. If the number is the expected number, don't + ;; output warnings. + (and src + (intern (format "wisent-%s--expected-conflicts" + (replace-regexp-in-string "\\.el$" "" src)))))) (when (or (not (zerop rrc-total)) (and (not (zerop src-total)) (not (= src-total (or wisent-expected-conflicts 0))) - (or (not (boundp symbol)) + (or (null symbol) + (not (boundp symbol)) (not (equal (symbol-value symbol) src-total))))) (let* ((src (if src (concat " in " src) "")) (msg (format "Grammar%s contains" src))) diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 07d63b3a7dc..f5a9055b5b7 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -2861,7 +2861,11 @@ Can be toggled with \\<package-menu-mode-map> \\[package-menu-toggle-hiding]. Installed obsolete packages are always displayed.") (defun package-menu-toggle-hiding () - "In Package Menu, toggle visibility of obsolete available packages." + "In Package Menu, toggle visibility of obsolete available packages. + +Also hide packages whose name matches a regexp in user option +`package-hidden-regexps' (a list). To add regexps to this list, +use `package-menu-hide-package'." (interactive) (package--ensure-package-menu-mode) (setq package-menu--hide-packages @@ -3191,8 +3195,16 @@ function. The args ARG and NOCONFIRM, passed from (defun package-menu-hide-package () "Hide in Package Menu packages that match a regexp. -Prompts for the regexp to match against package names. -The default regexp will hide only the package whose name is at point." +Prompt for the regexp to match against package names. +The default regexp will hide only the package whose name is at point. + +The regexp is added to the list in the user option +`package-hidden-regexps' and saved for future sessions. + +To unhide a package, type +`\\[customize-variable] RET package-hidden-regexps'. + +Type \\[package-menu-toggle-hiding] to toggle package hiding." (interactive) (package--ensure-package-menu-mode) (declare (interactive-only "change `package-hidden-regexps' instead.")) @@ -3211,7 +3223,7 @@ The default regexp will hide only the package whose name is at point." package-archive-contents))) (message "Packages to hide: %d. Type `%s' to toggle or `%s' to customize" (length hidden) - (substitute-command-keys "\\[package-menu-toggle-hidding]") + (substitute-command-keys "\\[package-menu-toggle-hiding]") (substitute-command-keys "\\[customize-variable] RET package-hidden-regexps"))))) diff --git a/lisp/image/exif.el b/lisp/image/exif.el index 642bc58321c..065456dc318 100644 --- a/lisp/image/exif.el +++ b/lisp/image/exif.el @@ -72,7 +72,8 @@ (283 y-resolution) (296 resolution-unit) (305 software) - (306 date-time)) + (306 date-time) + (315 artist)) "Alist of tag values and their names.") (defconst exif--orientation @@ -216,7 +217,10 @@ If the orientation isn't present in the data, return nil." (+ (1+ value) length))) ;; The value is stored directly ;; in the directory. - value) + (if (eq (car field-format) 'ascii) + (exif--direct-ascii-value + value (1- length) le) + value)) (car field-format) le))))) (let ((next (exif--read-number 4 le))) @@ -231,6 +235,19 @@ If the orientation isn't present in the data, return nil." ;; We've reached the end of the directories. dir)))) +(defun exif--direct-ascii-value (value bytes le) + "Make VALUE into a zero-terminated string. +VALUE is an integer representing BYTES characters." + (with-temp-buffer + (set-buffer-multibyte nil) + (if le + (dotimes (i bytes) + (insert (logand (lsh value (* i -8)) 255))) + (dotimes (i bytes) + (insert (logand (lsh value (* (- (1- bytes) i) -8)) 255)))) + (insert 0) + (buffer-string))) + (defun exif--process-value (value type le) "Do type-based post-processing of the value." (cl-case type diff --git a/lisp/image/image-converter.el b/lisp/image/image-converter.el index 0488a13d41a..ae3d9598920 100644 --- a/lisp/image/image-converter.el +++ b/lisp/image/image-converter.el @@ -149,8 +149,9 @@ data is returned as a string." (when (re-search-forward "^-" nil t) (forward-line 1) ;; Lines look like - ;; " WPG* r-- Word Perfect Graphics". - (while (re-search-forward "^ *\\([A-Z0-9]+\\)\\*? +r" nil t) + ;; " WPG* r-- Word Perfect Graphics" or + ;; " WPG* WPG r-- Word Perfect Graphics". + (while (re-search-forward "^ *\\([A-Z0-9]+\\)\\*?\\(?: +[A-Z0-9]+\\)? +r" nil t) (push (downcase (match-string 1)) formats))) (nreverse formats)))) diff --git a/lisp/international/characters.el b/lisp/international/characters.el index e7f86623234..b7656d9c1a7 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -674,6 +674,12 @@ with L, LRE, or LRO Unicode bidi character type.") (set-case-syntax c "." tbl) (setq c (1+ c))) + ;; Symbols for Legacy Computing + (setq c #x1FB00) + (while (<= c #x1FBFF) + (set-case-syntax c "." tbl) + (setq c (1+ c))) + ;; Fullwidth Latin (setq c #xff21) (while (<= c #xff3a) @@ -964,6 +970,7 @@ with L, LRE, or LRO Unicode bidi character type.") (#x0D41 . #x0D44) (#x0D4D . #x0D4D) (#x0D62 . #x0D63) + (#x0D81 . #x0D81) (#x0DCA . #x0DCA) (#x0DD2 . #x0DD6) (#x0E31 . #x0E31) @@ -1020,7 +1027,7 @@ with L, LRE, or LRO Unicode bidi character type.") (#x1A65 . #x1A6C) (#x1A73 . #x1A7C) (#x1A7F . #x1A7F) - (#x1AB0 . #x1ABE) + (#x1AB0 . #x1AC0) (#x1B00 . #x1B03) (#x1B34 . #x1B34) (#x1B36 . #x1B3A) @@ -1058,6 +1065,7 @@ with L, LRE, or LRO Unicode bidi character type.") (#xA806 . #xA806) (#xA80B . #xA80B) (#xA825 . #xA826) + (#xA82C . #xA82C) (#xA8C4 . #xA8C5) (#xA8E0 . #xA8F1) (#xA926 . #xA92D) @@ -1094,6 +1102,7 @@ with L, LRE, or LRO Unicode bidi character type.") (#x10A01 . #x10A0F) (#x10A38 . #x10A3F) (#x10AE5 . #x10AE6) + (#x10EAB . #x10EAC) (#x11001 . #x11001) (#x11038 . #x11046) (#x1107F . #x11081) @@ -1107,6 +1116,7 @@ with L, LRE, or LRO Unicode bidi character type.") (#x11180 . #x11181) (#x111B6 . #x111BE) (#x111CA . #x111CC) + (#x111CF . #x111CF) (#x1122F . #x11231) (#x11234 . #x11234) (#x11236 . #x11237) @@ -1138,6 +1148,9 @@ with L, LRE, or LRO Unicode bidi character type.") (#x1171D . #x1171F) (#x11722 . #x11725) (#x11727 . #x1172B) + (#x1193B . #x1193C) + (#x1193E . #x1193E) + (#x11943 . #x11943) (#x11C30 . #x11C36) (#x11C38 . #x11C3D) (#x11C92 . #x11CA7) @@ -1147,6 +1160,7 @@ with L, LRE, or LRO Unicode bidi character type.") (#x16AF0 . #x16AF4) (#x16B30 . #x16B36) (#x16F8F . #x16F92) + (#x16FE4 . #x16FE4) (#x1BC9D . #x1BC9E) (#x1BCA0 . #x1BCA3) (#x1D167 . #x1D169) @@ -1210,7 +1224,7 @@ with L, LRE, or LRO Unicode bidi character type.") (#x2E80 . #x303E) (#x3040 . #x3247) (#x3250 . #x4DBF) - (#x4E00 . #xA4CF) + (#x4E00 . #x9FFF) (#xA490 . #xA4C6) (#xA960 . #xA97F) (#xAC00 . #xD7A3) @@ -1219,9 +1233,11 @@ with L, LRE, or LRO Unicode bidi character type.") (#xFE30 . #xFE6F) (#xFF01 . #xFF60) (#xFFE0 . #xFFE6) - (#x16FE0 . #x16FE3) + (#x16FE0 . #x16FE4) + (#x16FF0 . #x16FF1) (#x17000 . #x187F7) - (#x18800 . #x18AF2) + (#x18800 . #x18AFF) + (#x18B00 . #x18CD5) (#x1B000 . #x1B152) (#x1B164 . #x1B167) (#x1B170 . #x1B2FB) @@ -1229,6 +1245,7 @@ with L, LRE, or LRO Unicode bidi character type.") (#x1F0CF . #x1F0CF) (#x1F18E . #x1F18E) (#x1F191 . #x1F19A) + (#x1F1AD . #x1F1AD) (#x1F200 . #x1F320) (#x1F32D . #x1F335) (#x1F337 . #x1F37C) @@ -1253,22 +1270,27 @@ with L, LRE, or LRO Unicode bidi character type.") (#x1F680 . #x1F6C5) (#x1F6CC . #x1F6CC) (#x1F6D0 . #x1F6D2) - (#x1F6D5 . #x1F6D5) + (#x1F6D5 . #x1F6D7) (#x1F6EB . #x1F6EC) - (#x1F6F4 . #x1F6FA) + (#x1F6F4 . #x1F6FC) (#x1F7E0 . #x1F7EB) - (#x1F90D . #x1F971) - (#x1F973 . #x1F976) - (#x1F97A . #x1F9A2) + (#x1F90C . #x1F93A) + (#x1F93C . #x1F945) + (#x1F947 . #x1F978) + (#x1F97A . #x1F9CB) (#x1F9A5 . #x1F9AA) (#x1F9AE . #x1F9CA) (#x1F9CD . #x1F9FF) (#x1FA00 . #x1FA53) (#x1FA60 . #x1FA6D) - (#x1FA70 . #x1FA73) + (#x1FA70 . #x1FA74) (#x1FA78 . #x1FA7A) - (#x1FA80 . #x1FA82) - (#x1FA90 . #x1FA95) + (#x1FA80 . #x1FA86) + (#x1FA90 . #x1FAA8) + (#x1FAB0 . #x1FAB6) + (#x1FAC0 . #x1FAC2) + (#x1FAD0 . #x1FAD6) + (#x1FB00 . #x1FB92) (#x20000 . #x2FFFF) (#x30000 . #x3FFFF)))) (dolist (elt l) diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el index 529c7bb88be..23abb0d0a9e 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -220,9 +220,11 @@ (kharoshthi #x10A00) (manichaean #x10AC0) (hanifi-rohingya #x10D00) + (yezidi #x10E80) (old-sogdian #x10F00) (sogdian #x10F30) - (elymaic #x10fe0) + (chorasmian #x10FB0) + (elymaic #x10FE0) (mahajani #x11150) (sinhala-archaic-number #x111E1) (khojki #x11200) @@ -235,6 +237,7 @@ (takri #x11680) (dogra #x11800) (warang-citi #x118A1) + (dives-akuru #x11900) (nandinagari #x119a0) (zanabazar-square #x11A00) (soyombo #x11A50) @@ -253,6 +256,7 @@ (medefaidrin #x16E40) (tangut #x17000) (tangut-components #x18800) + (khitan-small-script #x18B00) (nushu #x1B170) (duployan-shorthand #x1BC20) (byzantine-musical-symbol #x1D000) @@ -736,10 +740,13 @@ cypriot-syllabary phoenician lydian + yezidi kharoshthi manichaean + chorasmian elymaic makasar + dives-akuru cuneiform-numbers-and-punctuation cuneiform egyptian diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 5436aaa4fa0..7714a778fcb 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -2994,7 +2994,9 @@ on encoding." (#x16FE0 . #x16FE3) ;; (#x17000 . #x187FF) Tangut Ideographs ;; (#x18800 . #x18AFF) Tangut Components - ;; (#x18B00 . #x1AFFF) unused + ;; (#x18B00 . #x18CFF) Khitan Small Script + ;; (#x18D00 . #x18D0F) Tangut Ideograph Supplement + ;; (#x18D10 . #x1AFFF) unused (#x1B000 . #x1B11F) ;; (#x1B120 . #x1B14F) unused (#x1B150 . #x1B16F) diff --git a/lisp/tab-line.el b/lisp/tab-line.el index 902c312ce14..53fa984caf6 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el @@ -453,9 +453,10 @@ variable `tab-line-tabs-function'." (> (length strings) 1)) tab-line-right-button))) (if hscroll (nthcdr (truncate hscroll) strings) strings) - (when (eq tab-line-tabs-function #'tab-line-tabs-window-buffers) - (list (concat separator (when tab-line-new-tab-choice - tab-line-new-button))))))) + (list separator) + (when (and (eq tab-line-tabs-function #'tab-line-tabs-window-buffers) + tab-line-new-tab-choice) + (list tab-line-new-button))))) (defvar tab-line-auto-hscroll) @@ -463,7 +464,7 @@ variable `tab-line-tabs-function'." "Template for displaying tab line for selected window." (let* ((tabs (funcall tab-line-tabs-function)) (cache-key (list tabs - (window-buffer) + (buffer-name (window-buffer)) (window-parameter nil 'tab-line-hscroll))) (cache (window-parameter nil 'tab-line-cache))) ;; Enable auto-hscroll again after it was disabled on manual scrolling. diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index 0bc922e9801..15b13af5681 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -365,7 +365,8 @@ which is an error according to some typographical conventions." (defcustom fill-nobreak-predicate nil "List of predicates for recognizing places not to break a line. The predicates are called with no arguments, with point at the place to -be tested. If it returns t, fill commands do not break the line there." +be tested. If it returns a non-nil value, fill commands do not break +the line there." :group 'fill :type 'hook :options '(fill-french-nobreak-p fill-single-word-nobreak-p diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el index 85868b91ecc..d0a83fd7c49 100644 --- a/lisp/vc/smerge-mode.el +++ b/lisp/vc/smerge-mode.el @@ -1429,15 +1429,16 @@ with a \\[universal-argument] prefix, makes up a 3-way conflict." (smerge-remove-props (point-min) (point-max)))) ;;;###autoload -(defun smerge-start-session () +(defun smerge-start-session (&optional interactively) "Turn on `smerge-mode' and move point to first conflict marker. If no conflict maker is found, turn off `smerge-mode'." - (interactive) - (smerge-mode 1) - (condition-case nil - (unless (looking-at smerge-begin-re) - (smerge-next)) - (error (smerge-auto-leave)))) + (interactive "p") + (when (or (null smerge-mode) interactively) + (smerge-mode 1) + (condition-case nil + (unless (looking-at smerge-begin-re) + (smerge-next)) + (error (smerge-auto-leave))))) (defcustom smerge-change-buffer-confirm t "If non-nil, request confirmation before moving to another buffer." |