aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorJoakim Verona2011-08-25 07:11:38 +0200
committerJoakim Verona2011-08-25 07:11:38 +0200
commiteff2e78688e5347aed84f237fabfa5829492feb1 (patch)
tree8033a98014481f35874226802703980d1b3481f1 /lisp
parent2002bbd139da85246597a131d0b43c4ef921f233 (diff)
parente4ed06f12b052a3c80d5c572889cb670a41f3c7d (diff)
downloademacs-eff2e78688e5347aed84f237fabfa5829492feb1.tar.gz
emacs-eff2e78688e5347aed84f237fabfa5829492feb1.zip
upstream
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog88
-rw-r--r--lisp/battery.el2
-rw-r--r--lisp/cus-start.el7
-rw-r--r--lisp/emacs-lisp/eieio.el116
-rw-r--r--lisp/faces.el2
-rw-r--r--lisp/ibuffer.el4
-rw-r--r--lisp/international/charprop.el26
-rw-r--r--lisp/international/ucs-normalize.el10
-rw-r--r--lisp/international/uni-bidi.elbin8719 -> 7950 bytes
-rw-r--r--lisp/international/uni-category.elbin11396 -> 12759 bytes
-rw-r--r--lisp/international/uni-combining.elbin8369 -> 6251 bytes
-rw-r--r--lisp/international/uni-comment.elbin2386 -> 2407 bytes
-rw-r--r--lisp/international/uni-decimal.elbin1869 -> 2710 bytes
-rw-r--r--lisp/international/uni-decomposition.elbin28459 -> 28497 bytes
-rw-r--r--lisp/international/uni-digit.elbin2187 -> 3028 bytes
-rw-r--r--lisp/international/uni-lowercase.elbin5347 -> 6421 bytes
-rw-r--r--lisp/international/uni-mirrored.elbin10452 -> 9342 bytes
-rw-r--r--lisp/international/uni-name.elbin158765 -> 158786 bytes
-rw-r--r--lisp/international/uni-numeric.elbin3688 -> 4522 bytes
-rw-r--r--lisp/international/uni-old-name.elbin19692 -> 19713 bytes
-rw-r--r--lisp/international/uni-titlecase.elbin5434 -> 6462 bytes
-rw-r--r--lisp/international/uni-uppercase.elbin5430 -> 6458 bytes
-rw-r--r--lisp/isearch.el30
-rw-r--r--lisp/mail/smtpmail.el8
-rw-r--r--lisp/mpc.el39
-rw-r--r--lisp/proced.el2
-rw-r--r--lisp/view.el4
-rw-r--r--lisp/window.el74
28 files changed, 295 insertions, 117 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 2973fa64360..91078ce3246 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,91 @@
12011-08-25 Chong Yidong <cyd@stupidchicken.com>
2
3 * window.el (bury-buffer, quit-window): Use bury-buffer-internal.
4
52011-08-25 Glenn Morris <rgm@gnu.org>
6
7 * mail/smtpmail.el (smtpmail-smtp-user): Add version: tag.
8 (smtpmail-via-smtp): Handle nil response from smtp.
9
102011-08-24 Juri Linkov <juri@jurta.org>
11
12 * proced.el (proced-marked): Inherit from `error' instead of
13 `font-lock-warning-face'.
14
15 * ibuffer.el (ibuffer-marked-face): Change default face from
16 `font-lock-warning-face' to `warning'.
17 (ibuffer-deletion-face): Change default face from
18 `font-lock-type-face' to `error'.
19
20 * battery.el (battery-update): Use the face `error' instead of
21 `font-lock-warning-face' (bug#6117).
22
232011-08-24 Juri Linkov <juri@jurta.org>
24
25 * faces.el (success): Change face color from "Green3" to
26 "ForestGreen" on light background (bug#9353).
27
282011-08-24 Chong Yidong <cyd@stupidchicken.com>
29
30 * window.el (quit-window): Renamed from quit-restore-window. Use
31 same arglist as old quit-window.
32 (frame-auto-delete): Doc fix.
33
34 * view.el (view-mode-exit): Use quit-window.
35
362011-08-24 Juri Linkov <juri@jurta.org>
37
38 * isearch.el (isearch-ring-adjust1): Start visiting previous
39 search strings from the index 0 (-1 + 1) instead of 1 (0 + 1).
40 (isearch-repeat, isearch-edit-string): Call `isearch-ring-adjust1'
41 for empty search string (when the last search string is reused
42 automatically) to adjust the isearch ring to the last element and
43 prepare the correct index for further M-p commands (bug#9185).
44
452011-08-24 Kenichi Handa <handa@m17n.org>
46
47 * international/ucs-normalize.el: If decomposition property of
48 CHAR is the default one (i.e. a list of CHAR itself), treat it as
49 nil.
50 (nfd, nfkd): Likewise.
51
522011-08-24 Stefan Monnier <monnier@iro.umontreal.ca>
53
54 * mpc.el (mpc--proc-filter): Don't signal mpc-proc-error since signals
55 from process filters aren't reliably transmitted to the surrounding
56 accept-process-output.
57 (mpc-proc-check): New function.
58 (mpc-proc-sync): Use it (bug#8293)
59
602011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
61
62 * emacs-lisp/eieio.el (eieio-defmethod, eieio-defgeneric):
63 Add compatibility functions (bug#9313).
64
652011-08-23 Eli Zaretskii <eliz@gnu.org>
66
67 * cus-start.el (all): Add entry for bidi-paragraph-direction.
68
69 * international/uni-bidi.el: Regenerated.
70
712011-08-23 Kenichi Handa <handa@m17n.org>
72
73 * international/charprop.el:
74 * international/uni-bidi.el:
75 * international/uni-category.el:
76 * international/uni-combining.el:
77 * international/uni-comment.el:
78 * international/uni-decimal.el:
79 * international/uni-decomposition.el:
80 * international/uni-digit.el:
81 * international/uni-lowercase.el:
82 * international/uni-mirrored.el:
83 * international/uni-name.el:
84 * international/uni-numeric.el:
85 * international/uni-old-name.el:
86 * international/uni-titlecase.el:
87 * international/uni-uppercase.el: Regenerate.
88
12011-08-23 Martin Rudalics <rudalics@gmx.at> 892011-08-23 Martin Rudalics <rudalics@gmx.at>
2 90
3 * help.el (help-window-setup): Fix message displayed when other 91 * help.el (help-window-setup): Fix message displayed when other
diff --git a/lisp/battery.el b/lisp/battery.el
index d7d3045fa58..e0bba96b655 100644
--- a/lisp/battery.el
+++ b/lisp/battery.el
@@ -199,7 +199,7 @@ seconds."
199 'face 199 'face
200 (and (<= (car (read-from-string (cdr (assq ?p data)))) 200 (and (<= (car (read-from-string (cdr (assq ?p data))))
201 battery-load-critical) 201 battery-load-critical)
202 'font-lock-warning-face) 202 'error)
203 'help-echo "Battery status information"))) 203 'help-echo "Battery status information")))
204 (force-mode-line-update)) 204 (force-mode-line-update))
205 205
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 389716b35b9..232c6c3808e 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -118,6 +118,13 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
118 :standard (not noninteractive) 118 :standard (not noninteractive)
119 :initialize custom-initialize-delay 119 :initialize custom-initialize-delay
120 :set custom-set-minor-mode) 120 :set custom-set-minor-mode)
121 (bidi-paragraph-direction
122 paragraphs
123 (choice
124 (const :tag "Left to Right" left-to-right)
125 (const :tag "Right to Left" right-to-left)
126 (const :tag "Dynamic, according to paragraph text" nil))
127 "24.1")
121 ;; callint.c 128 ;; callint.c
122 (mark-even-if-inactive editing-basics boolean) 129 (mark-even-if-inactive editing-basics boolean)
123 ;; callproc.c 130 ;; callproc.c
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index 83c09b6fe0f..f1fe9594fc0 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -1312,20 +1312,20 @@ Summary:
1312(defun eieio--defmethod (method kind argclass code) 1312(defun eieio--defmethod (method kind argclass code)
1313 "Work part of the `defmethod' macro defining METHOD with ARGS." 1313 "Work part of the `defmethod' macro defining METHOD with ARGS."
1314 (let ((key 1314 (let ((key
1315 ;; find optional keys 1315 ;; find optional keys
1316 (cond ((or (eq ':BEFORE kind) 1316 (cond ((or (eq ':BEFORE kind)
1317 (eq ':before kind)) 1317 (eq ':before kind))
1318 method-before) 1318 method-before)
1319 ((or (eq ':AFTER kind) 1319 ((or (eq ':AFTER kind)
1320 (eq ':after kind)) 1320 (eq ':after kind))
1321 method-after) 1321 method-after)
1322 ((or (eq ':PRIMARY kind) 1322 ((or (eq ':PRIMARY kind)
1323 (eq ':primary kind)) 1323 (eq ':primary kind))
1324 method-primary) 1324 method-primary)
1325 ((or (eq ':STATIC kind) 1325 ((or (eq ':STATIC kind)
1326 (eq ':static kind)) 1326 (eq ':static kind))
1327 method-static) 1327 method-static)
1328 ;; Primary key 1328 ;; Primary key
1329 (t method-primary)))) 1329 (t method-primary))))
1330 ;; Make sure there is a generic (when called from defclass). 1330 ;; Make sure there is a generic (when called from defclass).
1331 (eieio--defalias 1331 (eieio--defalias
@@ -1338,8 +1338,8 @@ Summary:
1338 ;; under the type `primary' which is a non-specific calling of the 1338 ;; under the type `primary' which is a non-specific calling of the
1339 ;; function. 1339 ;; function.
1340 (if argclass 1340 (if argclass
1341 (if (not (class-p argclass)) 1341 (if (not (class-p argclass))
1342 (error "Unknown class type %s in method parameters" 1342 (error "Unknown class type %s in method parameters"
1343 argclass)) 1343 argclass))
1344 (if (= key -1) 1344 (if (= key -1)
1345 (signal 'wrong-type-argument (list :static 'non-class-arg))) 1345 (signal 'wrong-type-argument (list :static 'non-class-arg)))
@@ -2864,6 +2864,106 @@ of `eq'."
2864) 2864)
2865 2865
2866 2866
2867;;; Obsolete backward compatibility functions.
2868;; Needed to run byte-code compiled with the EIEIO of Emacs-23.
2869
2870(defun eieio-defmethod (method args)
2871 "Obsolete work part of an old version of the `defmethod' macro."
2872 (let ((key nil) (body nil) (firstarg nil) (argfix nil) (argclass nil) loopa)
2873 ;; find optional keys
2874 (setq key
2875 (cond ((or (eq ':BEFORE (car args))
2876 (eq ':before (car args)))
2877 (setq args (cdr args))
2878 method-before)
2879 ((or (eq ':AFTER (car args))
2880 (eq ':after (car args)))
2881 (setq args (cdr args))
2882 method-after)
2883 ((or (eq ':PRIMARY (car args))
2884 (eq ':primary (car args)))
2885 (setq args (cdr args))
2886 method-primary)
2887 ((or (eq ':STATIC (car args))
2888 (eq ':static (car args)))
2889 (setq args (cdr args))
2890 method-static)
2891 ;; Primary key
2892 (t method-primary)))
2893 ;; get body, and fix contents of args to be the arguments of the fn.
2894 (setq body (cdr args)
2895 args (car args))
2896 (setq loopa args)
2897 ;; Create a fixed version of the arguments
2898 (while loopa
2899 (setq argfix (cons (if (listp (car loopa)) (car (car loopa)) (car loopa))
2900 argfix))
2901 (setq loopa (cdr loopa)))
2902 ;; make sure there is a generic
2903 (eieio-defgeneric
2904 method
2905 (if (stringp (car body))
2906 (car body) (format "Generically created method `%s'." method)))
2907 ;; create symbol for property to bind to. If the first arg is of
2908 ;; the form (varname vartype) and `vartype' is a class, then
2909 ;; that class will be the type symbol. If not, then it will fall
2910 ;; under the type `primary' which is a non-specific calling of the
2911 ;; function.
2912 (setq firstarg (car args))
2913 (if (listp firstarg)
2914 (progn
2915 (setq argclass (nth 1 firstarg))
2916 (if (not (class-p argclass))
2917 (error "Unknown class type %s in method parameters"
2918 (nth 1 firstarg))))
2919 (if (= key -1)
2920 (signal 'wrong-type-argument (list :static 'non-class-arg)))
2921 ;; generics are higher
2922 (setq key (eieio-specialized-key-to-generic-key key)))
2923 ;; Put this lambda into the symbol so we can find it
2924 (if (byte-code-function-p (car-safe body))
2925 (eieiomt-add method (car-safe body) key argclass)
2926 (eieiomt-add method (append (list 'lambda (reverse argfix)) body)
2927 key argclass))
2928 )
2929
2930 (when eieio-optimize-primary-methods-flag
2931 ;; Optimizing step:
2932 ;;
2933 ;; If this method, after this setup, only has primary methods, then
2934 ;; we can setup the generic that way.
2935 (if (generic-primary-only-p method)
2936 ;; If there is only one primary method, then we can go one more
2937 ;; optimization step.
2938 (if (generic-primary-only-one-p method)
2939 (eieio-defgeneric-reset-generic-form-primary-only-one method)
2940 (eieio-defgeneric-reset-generic-form-primary-only method))
2941 (eieio-defgeneric-reset-generic-form method)))
2942
2943 method)
2944(make-obsolete 'eieio-defmethod 'eieio--defmethod "24.1")
2945
2946(defun eieio-defgeneric (method doc-string)
2947 "Obsolete work part of an old version of the `defgeneric' macro."
2948 (if (and (fboundp method) (not (generic-p method))
2949 (or (byte-code-function-p (symbol-function method))
2950 (not (eq 'autoload (car (symbol-function method)))))
2951 )
2952 (error "You cannot create a generic/method over an existing symbol: %s"
2953 method))
2954 ;; Don't do this over and over.
2955 (unless (fboundp 'method)
2956 ;; This defun tells emacs where the first definition of this
2957 ;; method is defined.
2958 `(defun ,method nil)
2959 ;; Make sure the method tables are installed.
2960 (eieiomt-install method)
2961 ;; Apply the actual body of this function.
2962 (fset method (eieio-defgeneric-form method doc-string))
2963 ;; Return the method
2964 'method))
2965(make-obsolete 'eieio-defgeneric nil "24.1")
2966
2867;;; Interfacing with edebug 2967;;; Interfacing with edebug
2868;; 2968;;
2869(defun eieio-edebug-prin1-to-string (object &optional noescape) 2969(defun eieio-edebug-prin1-to-string (object &optional noescape)
diff --git a/lisp/faces.el b/lisp/faces.el
index 404bd7b6609..3c4a3330c81 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -2435,7 +2435,7 @@ It is used for characters of no fonts too."
2435 2435
2436(defface success 2436(defface success
2437 '((((class color) (min-colors 16) (background light)) 2437 '((((class color) (min-colors 16) (background light))
2438 (:foreground "Green3" :weight bold)) 2438 (:foreground "ForestGreen" :weight bold))
2439 (((class color) (min-colors 88) (background dark)) 2439 (((class color) (min-colors 88) (background dark))
2440 (:foreground "Green1" :weight bold)) 2440 (:foreground "Green1" :weight bold))
2441 (((class color) (min-colors 16) (background dark)) 2441 (((class color) (min-colors 16) (background dark))
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 725192399ff..5a86508e144 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -356,12 +356,12 @@ directory, like `default-directory'."
356 :type 'hook 356 :type 'hook
357 :group 'ibuffer) 357 :group 'ibuffer)
358 358
359(defcustom ibuffer-marked-face 'font-lock-warning-face 359(defcustom ibuffer-marked-face 'warning
360 "Face used for displaying marked buffers." 360 "Face used for displaying marked buffers."
361 :type 'face 361 :type 'face
362 :group 'ibuffer) 362 :group 'ibuffer)
363 363
364(defcustom ibuffer-deletion-face 'font-lock-type-face 364(defcustom ibuffer-deletion-face 'error
365 "Face used for displaying buffers marked for deletion." 365 "Face used for displaying buffers marked for deletion."
366 :type 'face 366 :type 'face
367 :group 'ibuffer) 367 :group 'ibuffer)
diff --git a/lisp/international/charprop.el b/lisp/international/charprop.el
index 919666010b1..2424e87ae44 100644
--- a/lisp/international/charprop.el
+++ b/lisp/international/charprop.el
@@ -29,15 +29,18 @@ one of these symbols representing compatibility formatting tag:
29;; FILE: uni-decimal.el 29;; FILE: uni-decimal.el
30(define-char-code-property 'decimal-digit-value "uni-decimal.el" 30(define-char-code-property 'decimal-digit-value "uni-decimal.el"
31 "Unicode numeric value (decimal digit). 31 "Unicode numeric value (decimal digit).
32Property value is an integer.") 32Property value is an integer 0..9, or nil.
33The value nil stands for NaN \"Numeric_Value\".")
33;; FILE: uni-digit.el 34;; FILE: uni-digit.el
34(define-char-code-property 'digit-value "uni-digit.el" 35(define-char-code-property 'digit-value "uni-digit.el"
35 "Unicode numeric value (digit). 36 "Unicode numeric value (digit).
36Property value is an integer.") 37Property value is an integer 0..9, or nil.
38The value nil stands for NaN \"Numeric_Value\".")
37;; FILE: uni-numeric.el 39;; FILE: uni-numeric.el
38(define-char-code-property 'numeric-value "uni-numeric.el" 40(define-char-code-property 'numeric-value "uni-numeric.el"
39 "Unicode numeric value (numeric). 41 "Unicode numeric value (numeric).
40Property value is an integer or a floating point.") 42Property value is an integer, a floating point, or nil.
43The value nil stands for NaN \"Numeric_Value\".")
41;; FILE: uni-mirrored.el 44;; FILE: uni-mirrored.el
42(define-char-code-property 'mirrored "uni-mirrored.el" 45(define-char-code-property 'mirrored "uni-mirrored.el"
43 "Unicode bidi mirrored flag. 46 "Unicode bidi mirrored flag.
@@ -53,20 +56,27 @@ Property value is a string.")
53;; FILE: uni-uppercase.el 56;; FILE: uni-uppercase.el
54(define-char-code-property 'uppercase "uni-uppercase.el" 57(define-char-code-property 'uppercase "uni-uppercase.el"
55 "Unicode simple uppercase mapping. 58 "Unicode simple uppercase mapping.
56Property value is a character.") 59Property value is a character or nil.
60The value nil means that the actual property value of a character
61is the character itself.")
57;; FILE: uni-lowercase.el 62;; FILE: uni-lowercase.el
58(define-char-code-property 'lowercase "uni-lowercase.el" 63(define-char-code-property 'lowercase "uni-lowercase.el"
59 "Unicode simple lowercase mapping. 64 "Unicode simple lowercase mapping.
60Property value is a character.") 65Property value is a character or nil.
66The value nil means that the actual property value of a character
67is the character itself.")
61;; FILE: uni-titlecase.el 68;; FILE: uni-titlecase.el
62(define-char-code-property 'titlecase "uni-titlecase.el" 69(define-char-code-property 'titlecase "uni-titlecase.el"
63 "Unicode simple titlecase mapping. 70 "Unicode simple titlecase mapping.
64Property value is a character.") 71Property value is a character or nil.
72The value nil means that the actual property value of a character
73is the character itself.")
65;; FILE: uni-mirrored.el 74;; FILE: uni-mirrored.el
66(define-char-code-property 'mirroring "uni-mirrored.el" 75(define-char-code-property 'mirroring "uni-mirrored.el"
67 "Unicode bidi-mirroring characters. 76 "Unicode bidi-mirroring characters.
68Property value is a character that has the corresponding mirroring image, 77Property value is a character that has the corresponding mirroring image or nil.
69or nil for non-mirrored character.") 78The value nil means that the actual property value of a character
79is the character itself.")
70;; Local Variables: 80;; Local Variables:
71;; coding: utf-8 81;; coding: utf-8
72;; no-byte-compile: t 82;; no-byte-compile: t
diff --git a/lisp/international/ucs-normalize.el b/lisp/international/ucs-normalize.el
index f83e0f7588f..df05b355b46 100644
--- a/lisp/international/ucs-normalize.el
+++ b/lisp/international/ucs-normalize.el
@@ -139,14 +139,17 @@
139 (defun nfd (char) 139 (defun nfd (char)
140 (let ((decomposition 140 (let ((decomposition
141 (get-char-code-property char 'decomposition))) 141 (get-char-code-property char 'decomposition)))
142 (if (and decomposition (numberp (car decomposition))) 142 (if (and decomposition (numberp (car decomposition))
143 (or (> (length decomposition) 1)
144 (/= (car decomposition) char)))
143 decomposition))) 145 decomposition)))
144 146
145 (defun nfkd (char) 147 (defun nfkd (char)
146 (let ((decomposition 148 (let ((decomposition
147 (get-char-code-property char 'decomposition))) 149 (get-char-code-property char 'decomposition)))
148 (if (symbolp (car decomposition)) (cdr decomposition) 150 (if (symbolp (car decomposition)) (cdr decomposition)
149 decomposition))) 151 (if (or (> (length decomposition) 1)
152 (/= (car decomposition) char)) decomposition))))
150 153
151 (defun hfs-nfd (char) 154 (defun hfs-nfd (char)
152 (when (or (and (>= char 0) (< char #x2000)) 155 (when (or (and (>= char 0) (< char #x2000))
@@ -180,6 +183,9 @@
180 (setq ccc (ucs-normalize-ccc char)) 183 (setq ccc (ucs-normalize-ccc char))
181 (setq decomposition (get-char-code-property 184 (setq decomposition (get-char-code-property
182 char 'decomposition)) 185 char 'decomposition))
186 (if (and (= (length decomposition) 1)
187 (= (car decomposition) char))
188 (setq decomposition nil))
183 (if (and ccc (/= 0 ccc)) (add-to-list 'combining-chars char)) 189 (if (and ccc (/= 0 ccc)) (add-to-list 'combining-chars char))
184 (if (and (numberp (car decomposition)) 190 (if (and (numberp (car decomposition))
185 (/= (ucs-normalize-ccc (car decomposition)) 191 (/= (ucs-normalize-ccc (car decomposition))
diff --git a/lisp/international/uni-bidi.el b/lisp/international/uni-bidi.el
index e7682c6d8ff..4d86fc821fa 100644
--- a/lisp/international/uni-bidi.el
+++ b/lisp/international/uni-bidi.el
Binary files differ
diff --git a/lisp/international/uni-category.el b/lisp/international/uni-category.el
index a4455decc52..94b7c18b6e2 100644
--- a/lisp/international/uni-category.el
+++ b/lisp/international/uni-category.el
Binary files differ
diff --git a/lisp/international/uni-combining.el b/lisp/international/uni-combining.el
index 227b9d0af79..1437ff9acbd 100644
--- a/lisp/international/uni-combining.el
+++ b/lisp/international/uni-combining.el
Binary files differ
diff --git a/lisp/international/uni-comment.el b/lisp/international/uni-comment.el
index c9743064bd4..21ccfe3ffe7 100644
--- a/lisp/international/uni-comment.el
+++ b/lisp/international/uni-comment.el
Binary files differ
diff --git a/lisp/international/uni-decimal.el b/lisp/international/uni-decimal.el
index 2c424ffb5de..096257add20 100644
--- a/lisp/international/uni-decimal.el
+++ b/lisp/international/uni-decimal.el
Binary files differ
diff --git a/lisp/international/uni-decomposition.el b/lisp/international/uni-decomposition.el
index b0bf07bbe85..b9660cdab0a 100644
--- a/lisp/international/uni-decomposition.el
+++ b/lisp/international/uni-decomposition.el
Binary files differ
diff --git a/lisp/international/uni-digit.el b/lisp/international/uni-digit.el
index fc52fd8c28c..efb78b0e43d 100644
--- a/lisp/international/uni-digit.el
+++ b/lisp/international/uni-digit.el
Binary files differ
diff --git a/lisp/international/uni-lowercase.el b/lisp/international/uni-lowercase.el
index 41890018204..7afd9503cb3 100644
--- a/lisp/international/uni-lowercase.el
+++ b/lisp/international/uni-lowercase.el
Binary files differ
diff --git a/lisp/international/uni-mirrored.el b/lisp/international/uni-mirrored.el
index 006cf575591..e650166c24c 100644
--- a/lisp/international/uni-mirrored.el
+++ b/lisp/international/uni-mirrored.el
Binary files differ
diff --git a/lisp/international/uni-name.el b/lisp/international/uni-name.el
index 7fac18b278d..8b681631067 100644
--- a/lisp/international/uni-name.el
+++ b/lisp/international/uni-name.el
Binary files differ
diff --git a/lisp/international/uni-numeric.el b/lisp/international/uni-numeric.el
index d16e8c00870..a1865f1fb23 100644
--- a/lisp/international/uni-numeric.el
+++ b/lisp/international/uni-numeric.el
Binary files differ
diff --git a/lisp/international/uni-old-name.el b/lisp/international/uni-old-name.el
index 4e704e5cdd0..de2d67b9450 100644
--- a/lisp/international/uni-old-name.el
+++ b/lisp/international/uni-old-name.el
Binary files differ
diff --git a/lisp/international/uni-titlecase.el b/lisp/international/uni-titlecase.el
index b8098c81876..517edb20445 100644
--- a/lisp/international/uni-titlecase.el
+++ b/lisp/international/uni-titlecase.el
Binary files differ
diff --git a/lisp/international/uni-uppercase.el b/lisp/international/uni-uppercase.el
index 899276eb725..fcb22d72470 100644
--- a/lisp/international/uni-uppercase.el
+++ b/lisp/international/uni-uppercase.el
Binary files differ
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 1942641fae9..7fcc31f188f 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1191,19 +1191,17 @@ If first char entered is \\[isearch-yank-word-or-char], then do word search inst
1191 isearch-word isearch-new-word)) 1191 isearch-word isearch-new-word))
1192 1192
1193 ;; Empty isearch-string means use default. 1193 ;; Empty isearch-string means use default.
1194 (if (= 0 (length isearch-string)) 1194 (when (= 0 (length isearch-string))
1195 (setq isearch-string (or (car (if isearch-regexp 1195 (setq isearch-string (or (car (if isearch-regexp
1196 regexp-search-ring 1196 regexp-search-ring
1197 search-ring)) 1197 search-ring))
1198 "") 1198 "")
1199 1199
1200 isearch-message 1200 isearch-message
1201 (mapconcat 'isearch-text-char-description 1201 (mapconcat 'isearch-text-char-description
1202 isearch-string "")) 1202 isearch-string ""))
1203 ;; This used to set the last search string, 1203 ;; After taking the last element, adjust ring to previous one.
1204 ;; but I think it is not right to do that here. 1204 (isearch-ring-adjust1 nil)))
1205 ;; Only the string actually used should be saved.
1206 ))
1207 1205
1208 ;; This used to push the state as of before this C-s, but it adds 1206 ;; This used to push the state as of before this C-s, but it adds
1209 ;; an inconsistent state where part of variables are from the 1207 ;; an inconsistent state where part of variables are from the
@@ -1290,7 +1288,9 @@ Use `isearch-exit' to quit without signaling."
1290 isearch-message 1288 isearch-message
1291 (mapconcat 'isearch-text-char-description 1289 (mapconcat 'isearch-text-char-description
1292 isearch-string "") 1290 isearch-string "")
1293 isearch-case-fold-search isearch-last-case-fold-search)) 1291 isearch-case-fold-search isearch-last-case-fold-search)
1292 ;; After taking the last element, adjust ring to previous one.
1293 (isearch-ring-adjust1 nil))
1294 ;; If already have what to search for, repeat it. 1294 ;; If already have what to search for, repeat it.
1295 (or isearch-success 1295 (or isearch-success
1296 (progn 1296 (progn
@@ -2071,7 +2071,7 @@ Isearch mode."
2071 () 2071 ()
2072 (set yank-pointer-name 2072 (set yank-pointer-name
2073 (setq yank-pointer 2073 (setq yank-pointer
2074 (mod (+ (or yank-pointer 0) 2074 (mod (+ (or yank-pointer (if advance 0 -1))
2075 (if advance -1 1)) 2075 (if advance -1 1))
2076 length))) 2076 length)))
2077 (setq isearch-string (nth yank-pointer ring) 2077 (setq isearch-string (nth yank-pointer ring)
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index 40fbb072594..69c49c471c0 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -88,6 +88,7 @@ The default value would be \"smtp\" or 25."
88 88
89(defcustom smtpmail-smtp-user nil 89(defcustom smtpmail-smtp-user nil
90 "User name to use when looking up credentials." 90 "User name to use when looking up credentials."
91 :version "24.1"
91 :type '(choice (const nil) string) 92 :type '(choice (const nil) string)
92 :group 'smtpmail) 93 :group 'smtpmail)
93 94
@@ -677,7 +678,7 @@ The list is in preference order.")
677 (throw 'done (format "No greeting: %s" greeting))) 678 (throw 'done (format "No greeting: %s" greeting)))
678 (when (>= code 400) 679 (when (>= code 400)
679 (throw 'done (format "Connection not allowed: %s" greeting)))) 680 (throw 'done (format "Connection not allowed: %s" greeting))))
680 681
681 (with-current-buffer process-buffer 682 (with-current-buffer process-buffer
682 (set-buffer-process-coding-system 'raw-text-unix 'raw-text-unix) 683 (set-buffer-process-coding-system 'raw-text-unix 'raw-text-unix)
683 (make-local-variable 'smtpmail-read-point) 684 (make-local-variable 'smtpmail-read-point)
@@ -730,7 +731,7 @@ The list is in preference order.")
730 731
731 (when (member 'xusr supported-extensions) 732 (when (member 'xusr supported-extensions)
732 (smtpmail-command-or-throw process (format "XUSR"))) 733 (smtpmail-command-or-throw process (format "XUSR")))
733 734
734 ;; MAIL FROM:<sender> 735 ;; MAIL FROM:<sender>
735 (let ((size-part 736 (let ((size-part
736 (if (or (member 'size supported-extensions) 737 (if (or (member 'size supported-extensions)
@@ -769,7 +770,7 @@ The list is in preference order.")
769 ) 770 )
770 ((and auth-mechanisms 771 ((and auth-mechanisms
771 (not ask-for-password) 772 (not ask-for-password)
772 (= (car result) 530)) 773 (eq (car result) 530))
773 ;; We got a "530 auth required", so we close and try 774 ;; We got a "530 auth required", so we close and try
774 ;; again, this time asking the user for a password. 775 ;; again, this time asking the user for a password.
775 (smtpmail-send-command process "QUIT") 776 (smtpmail-send-command process "QUIT")
@@ -796,6 +797,7 @@ The list is in preference order.")
796 nil) 797 nil)
797 ((and auth-mechanisms 798 ((and auth-mechanisms
798 (not ask-for-password) 799 (not ask-for-password)
800 (integerp (car result))
799 (>= (car result) 550) 801 (>= (car result) 550)
800 (<= (car result) 554)) 802 (<= (car result) 554))
801 ;; We got a "550 relay not permitted" (or the like), 803 ;; We got a "550 relay not permitted" (or the like),
diff --git a/lisp/mpc.el b/lisp/mpc.el
index 5319ea43898..932fb5926fd 100644
--- a/lisp/mpc.el
+++ b/lisp/mpc.el
@@ -246,11 +246,12 @@ and HOST defaults to localhost."
246 (process-put proc 'ready t) 246 (process-put proc 'ready t)
247 (unless (eq (match-end 0) (point-max)) 247 (unless (eq (match-end 0) (point-max))
248 (error "Unexpected trailing text")) 248 (error "Unexpected trailing text"))
249 (let ((error (match-string 1))) 249 (let ((error-text (match-string 1)))
250 (delete-region (point) (point-max)) 250 (delete-region (point) (point-max))
251 (let ((callback (process-get proc 'callback))) 251 (let ((callback (process-get proc 'callback)))
252 (process-put proc 'callback nil) 252 (process-put proc 'callback nil)
253 (if error (signal 'mpc-proc-error error)) 253 (if error-text
254 (process-put proc 'mpc-proc-error error-text))
254 (funcall callback))))))))) 255 (funcall callback)))))))))
255 256
256(defun mpc--proc-connect (host) 257(defun mpc--proc-connect (host)
@@ -314,19 +315,23 @@ and HOST defaults to localhost."
314 mpc-proc) 315 mpc-proc)
315 (setq mpc-proc (mpc--proc-connect mpc-host)))) 316 (setq mpc-proc (mpc--proc-connect mpc-host))))
316 317
318(defun mpc-proc-check (proc)
319 (let ((error-text (process-get proc 'mpc-proc-error)))
320 (when error-text
321 (process-put proc 'mpc-proc-error nil)
322 (signal 'mpc-proc-error error-text))))
323
317(defun mpc-proc-sync (&optional proc) 324(defun mpc-proc-sync (&optional proc)
318 "Wait for MPC process until it is idle again. 325 "Wait for MPC process until it is idle again.
319Return the buffer in which the process is/was running." 326Return the buffer in which the process is/was running."
320 (unless proc (setq proc (mpc-proc))) 327 (unless proc (setq proc (mpc-proc)))
321 (unwind-protect 328 (unwind-protect
322 (condition-case err 329 (progn
323 (progn 330 (while (and (not (process-get proc 'ready))
324 (while (and (not (process-get proc 'ready)) 331 (accept-process-output proc)))
325 (accept-process-output proc))) 332 (mpc-proc-check proc)
326 (if (process-get proc 'ready) (process-buffer proc) 333 (if (process-get proc 'ready) (process-buffer proc)
327 ;; (delete-process proc) 334 (error "No response from MPD")))
328 (error "No response from MPD")))
329 (error (message "MPC: %s" err) (signal (car err) (cdr err))))
330 (unless (process-get proc 'ready) 335 (unless (process-get proc 'ready)
331 ;; (debug) 336 ;; (debug)
332 (message "Killing hung process") 337 (message "Killing hung process")
@@ -358,13 +363,13 @@ which will be concatenated with proper quoting before passing them to MPD."
358 "\n"))) 363 "\n")))
359 (if callback 364 (if callback
360 ;; (let ((buf (current-buffer))) 365 ;; (let ((buf (current-buffer)))
361 (process-put proc 'callback 366 (process-put proc 'callback
362 callback 367 callback
363 ;; (lambda () 368 ;; (lambda ()
364 ;; (funcall callback 369 ;; (funcall callback
365 ;; (prog1 (current-buffer) 370 ;; (prog1 (current-buffer)
366 ;; (set-buffer buf))))) 371 ;; (set-buffer buf)))))
367 ) 372 )
368 ;; If `callback' is nil, we're executing synchronously. 373 ;; If `callback' is nil, we're executing synchronously.
369 (process-put proc 'callback 'ignore) 374 (process-put proc 'callback 'ignore)
370 ;; This returns the process's buffer. 375 ;; This returns the process's buffer.
diff --git a/lisp/proced.el b/lisp/proced.el
index 94ea579ebd8..e4987bd926c 100644
--- a/lisp/proced.el
+++ b/lisp/proced.el
@@ -395,7 +395,7 @@ It is a list of lists (KEY PREDICATE REVERSE).")
395 :group 'proced-faces) 395 :group 'proced-faces)
396 396
397(defface proced-marked 397(defface proced-marked
398 '((t (:inherit font-lock-warning-face))) 398 '((t (:inherit error)))
399 "Face used for marked processes." 399 "Face used for marked processes."
400 :group 'proced-faces) 400 :group 'proced-faces)
401 401
diff --git a/lisp/view.el b/lisp/view.el
index 21479a70a72..be011d217fc 100644
--- a/lisp/view.el
+++ b/lisp/view.el
@@ -576,9 +576,9 @@ current buffer. "
576 (cond 576 (cond
577 ((or all-windows view-exits-all-viewing-windows) 577 ((or all-windows view-exits-all-viewing-windows)
578 (dolist (window (get-buffer-window-list)) 578 (dolist (window (get-buffer-window-list))
579 (quit-restore-window window))) 579 (quit-window nil window)))
580 ((eq (window-buffer) (current-buffer)) 580 ((eq (window-buffer) (current-buffer))
581 (quit-restore-window))) 581 (quit-window)))
582 582
583 (when exit-action 583 (when exit-action
584 (funcall exit-action buffer)) 584 (funcall exit-action buffer))
diff --git a/lisp/window.el b/lisp/window.el
index 75fa0b46a1c..e68af18ab8e 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -2272,7 +2272,7 @@ another frame still exists.
2272 2272
2273Functions quitting a window and consequently affected by this 2273Functions quitting a window and consequently affected by this
2274variable are `switch-to-prev-buffer', `delete-windows-on', 2274variable are `switch-to-prev-buffer', `delete-windows-on',
2275`replace-buffer-in-windows' and `quit-restore-window'." 2275`replace-buffer-in-windows' and `quit-window'."
2276 :type '(choice 2276 :type '(choice
2277 (const :tag "Never" nil) 2277 (const :tag "Never" nil)
2278 (const :tag "Automatic" automatic) 2278 (const :tag "Automatic" automatic)
@@ -2795,7 +2795,7 @@ displayed there."
2795 (let* ((buffer (window-normalize-buffer buffer-or-name))) 2795 (let* ((buffer (window-normalize-buffer buffer-or-name)))
2796 ;; If `buffer-or-name' is not on the selected frame we unrecord it 2796 ;; If `buffer-or-name' is not on the selected frame we unrecord it
2797 ;; although it's not "here" (call it a feature). 2797 ;; although it's not "here" (call it a feature).
2798 (unrecord-buffer buffer) 2798 (bury-buffer-internal buffer)
2799 ;; Handle case where `buffer-or-name' is nil and the current buffer 2799 ;; Handle case where `buffer-or-name' is nil and the current buffer
2800 ;; is shown in the selected window. 2800 ;; is shown in the selected window.
2801 (cond 2801 (cond
@@ -2907,21 +2907,17 @@ all window-local buffer lists."
2907 ;; Unrecord BUFFER in WINDOW. 2907 ;; Unrecord BUFFER in WINDOW.
2908 (unrecord-window-buffer window buffer))))) 2908 (unrecord-window-buffer window buffer)))))
2909 2909
2910(defun quit-restore-window (&optional window kill) 2910(defun quit-window (&optional kill window)
2911 "Quit WINDOW in some way. 2911 "Quit WINDOW and bury its buffer.
2912WINDOW must be a live window and defaults to the selected window. 2912WINDOW defaults to the selected window.
2913Return nil. 2913With a prefix argument, kill the buffer instead.
2914 2914
2915According to information stored in WINDOW's `quit-restore' window 2915According to information stored in WINDOW's `quit-restore' window
2916parameter either \(1) delete WINDOW and its frame, \(2) delete 2916parameter either \(1) delete WINDOW and its frame, \(2) delete
2917WINDOW, \(3) restore the buffer previously displayed in WINDOW, 2917WINDOW, \(3) restore the buffer previously displayed in WINDOW,
2918or \(4) make WINDOW display some other buffer than the present 2918or \(4) make WINDOW display some other buffer than the present
2919one. If non-nil, reset `quit-restore' parameter to nil. 2919one. If non-nil, reset `quit-restore' parameter to nil."
2920 2920 (interactive "P")
2921Optional argument KILL non-nil means in addition kill WINDOW's
2922buffer. If KILL is nil, put WINDOW's buffer at the end of the
2923buffer list. Interactively, KILL is the prefix argument."
2924 (interactive "i\nP")
2925 (setq window (window-normalize-live-window window)) 2921 (setq window (window-normalize-live-window window))
2926 (let ((buffer (window-buffer window)) 2922 (let ((buffer (window-buffer window))
2927 (quit-restore (window-parameter window 'quit-restore)) 2923 (quit-restore (window-parameter window 'quit-restore))
@@ -2932,12 +2928,9 @@ buffer list. Interactively, KILL is the prefix argument."
2932 (eq (window-buffer window) (nth 1 quit-restore))) 2928 (eq (window-buffer window) (nth 1 quit-restore)))
2933 (window-dedicated-p window)) 2929 (window-dedicated-p window))
2934 (setq deletable (window-deletable-p window))) 2930 (setq deletable (window-deletable-p window)))
2935 ;; WINDOW can be deleted. 2931 ;; Check if WINDOW's frame can be deleted.
2936 (unrecord-buffer buffer)
2937 (if (eq deletable 'frame) 2932 (if (eq deletable 'frame)
2938 ;; WINDOW's frame can be deleted.
2939 (delete-frame (window-frame window)) 2933 (delete-frame (window-frame window))
2940 ;; Just delete WINDOW.
2941 (delete-window window)) 2934 (delete-window window))
2942 ;; If the previously selected window is still alive, select it. 2935 ;; If the previously selected window is still alive, select it.
2943 (when (window-live-p (nth 2 quit-restore)) 2936 (when (window-live-p (nth 2 quit-restore))
@@ -2948,17 +2941,17 @@ buffer list. Interactively, KILL is the prefix argument."
2948 ;; in the first place. 2941 ;; in the first place.
2949 (eq (window-buffer window) (nth 3 quit-restore))) 2942 (eq (window-buffer window) (nth 3 quit-restore)))
2950 (setq resize (with-current-buffer buffer temp-buffer-resize-mode)) 2943 (setq resize (with-current-buffer buffer temp-buffer-resize-mode))
2951 ;; Unrecord buffer.
2952 (unrecord-buffer buffer)
2953 (unrecord-window-buffer window buffer) 2944 (unrecord-window-buffer window buffer)
2954 ;; Display buffer stored in the quit-restore parameter. 2945 ;; Display buffer stored in the quit-restore parameter.
2955 (set-window-dedicated-p window nil) 2946 (set-window-dedicated-p window nil)
2956 (set-window-buffer window (nth 0 quit-restore)) 2947 (set-window-buffer window (nth 0 quit-restore))
2957 (set-window-start window (nth 1 quit-restore)) 2948 (set-window-start window (nth 1 quit-restore))
2958 (set-window-point window (nth 2 quit-restore)) 2949 (set-window-point window (nth 2 quit-restore))
2959 (when (and resize (/= (nth 4 quit-restore) (window-total-size window))) 2950 (and resize
2960 (window-resize 2951 (/= (nth 4 quit-restore) (window-total-size window))
2961 window (- (nth 4 quit-restore) (window-total-size window)))) 2952 (window-resize window
2953 (- (nth 4 quit-restore)
2954 (window-total-size window))))
2962 ;; Reset the quit-restore parameter. 2955 ;; Reset the quit-restore parameter.
2963 (set-window-parameter window 'quit-restore nil) 2956 (set-window-parameter window 'quit-restore nil)
2964 (when (window-live-p (nth 5 quit-restore)) 2957 (when (window-live-p (nth 5 quit-restore))
@@ -2967,12 +2960,12 @@ buffer list. Interactively, KILL is the prefix argument."
2967 ;; Otherwise, show another buffer in WINDOW and reset the 2960 ;; Otherwise, show another buffer in WINDOW and reset the
2968 ;; quit-restore parameter. 2961 ;; quit-restore parameter.
2969 (set-window-parameter window 'quit-restore nil) 2962 (set-window-parameter window 'quit-restore nil)
2970 (unrecord-buffer buffer)
2971 (switch-to-prev-buffer window 'bury-or-kill))) 2963 (switch-to-prev-buffer window 'bury-or-kill)))
2972 2964
2973 ;; Kill WINDOW's old-buffer if requested 2965 ;; Kill WINDOW's old-buffer if requested
2974 (when kill (kill-buffer buffer)) 2966 (if kill
2975 nil)) 2967 (kill-buffer buffer)
2968 (bury-buffer-internal buffer))))
2976 2969
2977;;; Splitting windows. 2970;;; Splitting windows.
2978(defsubst window-split-min-size (&optional horizontal) 2971(defsubst window-split-min-size (&optional horizontal)
@@ -7045,39 +7038,6 @@ Return non-nil if the window was shrunk, nil otherwise."
7045 (with-current-buffer buffer-to-kill 7038 (with-current-buffer buffer-to-kill
7046 (remove-hook 'kill-buffer-hook delete-window-hook t)))))) 7039 (remove-hook 'kill-buffer-hook delete-window-hook t))))))
7047 7040
7048(defun quit-window (&optional kill window)
7049 "Quit WINDOW and bury its buffer.
7050With a prefix argument, kill the buffer instead. WINDOW defaults
7051to the selected window.
7052
7053If WINDOW is non-nil, dedicated, or a minibuffer window, delete
7054it and, if it's alone on its frame, its frame too. Otherwise, or
7055if deleting WINDOW fails in any of the preceding cases, display
7056another buffer in WINDOW using `switch-to-buffer'.
7057
7058Optional argument KILL non-nil means kill WINDOW's buffer.
7059Otherwise, bury WINDOW's buffer, see `bury-buffer'."
7060 (interactive "P")
7061 (let ((buffer (window-buffer window)))
7062 (if (or window
7063 (window-minibuffer-p window)
7064 (window-dedicated-p window))
7065 ;; WINDOW is either non-nil, a minibuffer window, or dedicated;
7066 ;; try to delete it.
7067 (let* ((window (or window (selected-window)))
7068 (frame (window-frame window)))
7069 (if (frame-root-window-p window)
7070 ;; WINDOW is alone on its frame.
7071 (delete-frame frame)
7072 ;; There are other windows on its frame, delete WINDOW.
7073 (delete-window window)))
7074 ;; Otherwise, switch to another buffer in the selected window.
7075 (switch-to-buffer nil))
7076
7077 ;; Deal with the buffer.
7078 (if kill
7079 (kill-buffer buffer)
7080 (bury-buffer buffer))))
7081 7041
7082(defvar recenter-last-op nil 7042(defvar recenter-last-op nil
7083 "Indicates the last recenter operation performed. 7043 "Indicates the last recenter operation performed.