diff options
| author | Joakim Verona | 2011-08-25 07:11:38 +0200 |
|---|---|---|
| committer | Joakim Verona | 2011-08-25 07:11:38 +0200 |
| commit | eff2e78688e5347aed84f237fabfa5829492feb1 (patch) | |
| tree | 8033a98014481f35874226802703980d1b3481f1 /lisp | |
| parent | 2002bbd139da85246597a131d0b43c4ef921f233 (diff) | |
| parent | e4ed06f12b052a3c80d5c572889cb670a41f3c7d (diff) | |
| download | emacs-eff2e78688e5347aed84f237fabfa5829492feb1.tar.gz emacs-eff2e78688e5347aed84f237fabfa5829492feb1.zip | |
upstream
Diffstat (limited to 'lisp')
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 @@ | |||
| 1 | 2011-08-25 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * window.el (bury-buffer, quit-window): Use bury-buffer-internal. | ||
| 4 | |||
| 5 | 2011-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 | |||
| 10 | 2011-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 | |||
| 23 | 2011-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 | |||
| 28 | 2011-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 | |||
| 36 | 2011-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 | |||
| 45 | 2011-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 | |||
| 52 | 2011-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 | |||
| 60 | 2011-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 | |||
| 65 | 2011-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 | |||
| 71 | 2011-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 | |||
| 1 | 2011-08-23 Martin Rudalics <rudalics@gmx.at> | 89 | 2011-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). |
| 32 | Property value is an integer.") | 32 | Property value is an integer 0..9, or nil. |
| 33 | The 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). |
| 36 | Property value is an integer.") | 37 | Property value is an integer 0..9, or nil. |
| 38 | The 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). |
| 40 | Property value is an integer or a floating point.") | 42 | Property value is an integer, a floating point, or nil. |
| 43 | The 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. |
| 56 | Property value is a character.") | 59 | Property value is a character or nil. |
| 60 | The value nil means that the actual property value of a character | ||
| 61 | is 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. |
| 60 | Property value is a character.") | 65 | Property value is a character or nil. |
| 66 | The value nil means that the actual property value of a character | ||
| 67 | is 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. |
| 64 | Property value is a character.") | 71 | Property value is a character or nil. |
| 72 | The value nil means that the actual property value of a character | ||
| 73 | is 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. |
| 68 | Property value is a character that has the corresponding mirroring image, | 77 | Property value is a character that has the corresponding mirroring image or nil. |
| 69 | or nil for non-mirrored character.") | 78 | The value nil means that the actual property value of a character |
| 79 | is 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. |
| 319 | Return the buffer in which the process is/was running." | 326 | Return 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 | ||
| 2273 | Functions quitting a window and consequently affected by this | 2273 | Functions quitting a window and consequently affected by this |
| 2274 | variable are `switch-to-prev-buffer', `delete-windows-on', | 2274 | variable 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. |
| 2912 | WINDOW must be a live window and defaults to the selected window. | 2912 | WINDOW defaults to the selected window. |
| 2913 | Return nil. | 2913 | With a prefix argument, kill the buffer instead. |
| 2914 | 2914 | ||
| 2915 | According to information stored in WINDOW's `quit-restore' window | 2915 | According to information stored in WINDOW's `quit-restore' window |
| 2916 | parameter either \(1) delete WINDOW and its frame, \(2) delete | 2916 | parameter either \(1) delete WINDOW and its frame, \(2) delete |
| 2917 | WINDOW, \(3) restore the buffer previously displayed in WINDOW, | 2917 | WINDOW, \(3) restore the buffer previously displayed in WINDOW, |
| 2918 | or \(4) make WINDOW display some other buffer than the present | 2918 | or \(4) make WINDOW display some other buffer than the present |
| 2919 | one. If non-nil, reset `quit-restore' parameter to nil. | 2919 | one. If non-nil, reset `quit-restore' parameter to nil." |
| 2920 | 2920 | (interactive "P") | |
| 2921 | Optional argument KILL non-nil means in addition kill WINDOW's | ||
| 2922 | buffer. If KILL is nil, put WINDOW's buffer at the end of the | ||
| 2923 | buffer 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. | ||
| 7050 | With a prefix argument, kill the buffer instead. WINDOW defaults | ||
| 7051 | to the selected window. | ||
| 7052 | |||
| 7053 | If WINDOW is non-nil, dedicated, or a minibuffer window, delete | ||
| 7054 | it and, if it's alone on its frame, its frame too. Otherwise, or | ||
| 7055 | if deleting WINDOW fails in any of the preceding cases, display | ||
| 7056 | another buffer in WINDOW using `switch-to-buffer'. | ||
| 7057 | |||
| 7058 | Optional argument KILL non-nil means kill WINDOW's buffer. | ||
| 7059 | Otherwise, 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. |