summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/cedet/semantic/wisent/comp.el13
-rw-r--r--lisp/emacs-lisp/package.el20
-rw-r--r--lisp/image/exif.el21
-rw-r--r--lisp/image/image-converter.el5
-rw-r--r--lisp/international/characters.el46
-rw-r--r--lisp/international/fontset.el9
-rw-r--r--lisp/international/mule-cmds.el4
-rw-r--r--lisp/tab-line.el9
-rw-r--r--lisp/textmodes/fill.el3
-rw-r--r--lisp/vc/smerge-mode.el15
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."