aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Verona2013-04-13 08:30:33 +0200
committerJoakim Verona2013-04-13 08:30:33 +0200
commit44399ce2917f50909cfcd7a82aa071e58cc81dae (patch)
tree3d1cb6ff4b7934f9171f4f6a8c09f31b02be22e3
parentea0a8e9d270b2b0cfbc2b137b1e6c3922bc2ab5b (diff)
parent011cddd649d81956ce13b9325b059dac78e61c4d (diff)
downloademacs-44399ce2917f50909cfcd7a82aa071e58cc81dae.tar.gz
emacs-44399ce2917f50909cfcd7a82aa071e58cc81dae.zip
auto upstream
-rw-r--r--ChangeLog5
-rw-r--r--configure.ac6
-rw-r--r--lisp/ChangeLog22
-rw-r--r--lisp/cus-edit.el6
-rw-r--r--lisp/cus-theme.el2
-rw-r--r--lisp/face-remap.el2
-rw-r--r--lisp/facemenu.el2
-rw-r--r--lisp/faces.el179
-rw-r--r--lisp/gnus/ChangeLog5
-rw-r--r--lisp/gnus/gnus-msg.el3
-rw-r--r--lisp/info.el3
-rw-r--r--src/ChangeLog29
-rw-r--r--src/window.c10
13 files changed, 153 insertions, 121 deletions
diff --git a/ChangeLog b/ChangeLog
index a2ebd3e912b..f8a3a5e0cca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
12013-04-12 Ken Brown <kbrown@cornell.edu>
2
3 * configure.ac (canonical): Adapt to 64-bit Cygwin, for which
4 `canonical' is `x86_64-unknown-cygwin'.
5
12013-04-09 Ken Brown <kbrown@cornell.edu> 62013-04-09 Ken Brown <kbrown@cornell.edu>
2 7
3 * configure.ac (W32_RES_LINK): Remove unneeded linker directive 8 * configure.ac (W32_RES_LINK): Remove unneeded linker directive
diff --git a/configure.ac b/configure.ac
index 57365aada19..5376a8146bf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -473,6 +473,11 @@ case "${canonical}" in
473## fi 473## fi
474 ;; 474 ;;
475 475
476 ## Cygwin ports
477 *-*-cygwin )
478 opsys=cygwin
479 ;;
480
476 ## HP 9000 series 700 and 800, running HP/UX 481 ## HP 9000 series 700 and 800, running HP/UX
477 hppa*-hp-hpux10.2* ) 482 hppa*-hp-hpux10.2* )
478 opsys=hpux10-20 483 opsys=hpux10-20
@@ -546,7 +551,6 @@ case "${canonical}" in
546 ## Intel 386 machines where we don't care about the manufacturer. 551 ## Intel 386 machines where we don't care about the manufacturer.
547 i[3456]86-*-* ) 552 i[3456]86-*-* )
548 case "${canonical}" in 553 case "${canonical}" in
549 *-cygwin ) opsys=cygwin ;;
550 *-darwin* ) opsys=darwin ;; 554 *-darwin* ) opsys=darwin ;;
551 *-sysv4.2uw* ) opsys=unixware ;; 555 *-sysv4.2uw* ) opsys=unixware ;;
552 *-sysv5uw* ) opsys=unixware ;; 556 *-sysv5uw* ) opsys=unixware ;;
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c7ac52fac32..37e8028c941 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,25 @@
12013-04-12 Roland Winkler <winkler@gnu.org>
2
3 * faces.el (read-face-name): Do not override value of arg default.
4 Allow single faces and strings as default values. Remove those
5 elements from return value that are not faces.
6 (describe-face): Simplify.
7 (face-at-point): New optional args thing and multiple so that this
8 function can provide the same functionality previously provided by
9 read-face-name.
10 (make-face-bold, make-face-unbold, make-face-italic)
11 (make-face-unitalic, make-face-bold-italic, invert-face)
12 (modify-face, read-face-and-attribute): Use face-at-point.
13
14 * cus-edit.el (customize-face, customize-face-other-window)
15 * cus-theme.el (custom-theme-add-face)
16 * face-remap.el (buffer-face-set)
17 * facemenu.el (facemenu-set-face): Use face-at-point.
18
192013-04-12 Michael Albinus <michael.albinus@gmx.de>
20
21 * info.el (Info-file-list-for-emacs): Add "tramp" and "dbus".
22
12013-04-10 Tassilo Horn <tsdh@gnu.org> 232013-04-10 Tassilo Horn <tsdh@gnu.org>
2 24
3 * textmodes/reftex-cite.el (reftex-parse-bibtex-entry): Don't cut 25 * textmodes/reftex-cite.el (reftex-parse-bibtex-entry): Don't cut
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index d19e2ded00c..ac9408b1081 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1319,7 +1319,8 @@ If OTHER-WINDOW is non-nil, display in another window.
1319 1319
1320Interactively, when point is on text which has a face specified, 1320Interactively, when point is on text which has a face specified,
1321suggest to customize that face, if it's customizable." 1321suggest to customize that face, if it's customizable."
1322 (interactive (list (read-face-name "Customize face" "all faces" t))) 1322 (interactive (list (read-face-name "Customize face"
1323 (or (face-at-point t t) "all faces") t)))
1323 (if (member face '(nil "")) 1324 (if (member face '(nil ""))
1324 (setq face (face-list))) 1325 (setq face (face-list)))
1325 (if (and (listp face) (null (cdr face))) 1326 (if (and (listp face) (null (cdr face)))
@@ -1350,7 +1351,8 @@ If FACE is actually a face-alias, customize the face it is aliased to.
1350 1351
1351Interactively, when point is on text which has a face specified, 1352Interactively, when point is on text which has a face specified,
1352suggest to customize that face, if it's customizable." 1353suggest to customize that face, if it's customizable."
1353 (interactive (list (read-face-name "Customize face" "all faces" t))) 1354 (interactive (list (read-face-name "Customize face"
1355 (or (face-at-point t t) "all faces") t)))
1354 (customize-face face t)) 1356 (customize-face face t))
1355 1357
1356(defalias 'customize-customized 'customize-unsaved) 1358(defalias 'customize-customized 'customize-unsaved)
diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el
index cc1046eddc5..dbe4fa42d8e 100644
--- a/lisp/cus-theme.el
+++ b/lisp/cus-theme.el
@@ -263,7 +263,7 @@ interactively, this defaults to the current value of VAR."
263(defun custom-theme-add-face (face &optional spec) 263(defun custom-theme-add-face (face &optional spec)
264 "Add a widget for FACE (a symbol) to the *New Custom Theme* buffer. 264 "Add a widget for FACE (a symbol) to the *New Custom Theme* buffer.
265SPEC, if non-nil, should be a face spec to which to set the widget." 265SPEC, if non-nil, should be a face spec to which to set the widget."
266 (interactive (list (read-face-name "Face name" nil nil) nil)) 266 (interactive (list (read-face-name "Face name" (face-at-point t))))
267 (unless (or (facep face) spec) 267 (unless (or (facep face) spec)
268 (error "`%s' has no face definition" face)) 268 (error "`%s' has no face definition" face))
269 (let ((entry (assq face custom-theme-faces))) 269 (let ((entry (assq face custom-theme-faces)))
diff --git a/lisp/face-remap.el b/lisp/face-remap.el
index f1efc3727f5..b620d01d83e 100644
--- a/lisp/face-remap.el
+++ b/lisp/face-remap.el
@@ -378,7 +378,7 @@ one face is listed, that specifies an aggregate face, like in a
378 378
379This function makes the variable `buffer-face-mode-face' buffer 379This function makes the variable `buffer-face-mode-face' buffer
380local, and sets it to FACE." 380local, and sets it to FACE."
381 (interactive (list (read-face-name "Set buffer face"))) 381 (interactive (list (read-face-name "Set buffer face" (face-at-point t))))
382 (while (and (consp specs) (null (cdr specs))) 382 (while (and (consp specs) (null (cdr specs)))
383 (setq specs (car specs))) 383 (setq specs (car specs)))
384 (if (null specs) 384 (if (null specs)
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index 9a66edd28fc..eb4554585a8 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -329,7 +329,7 @@ This command can also add FACE to the menu of faces,
329if `facemenu-listed-faces' says to do that." 329if `facemenu-listed-faces' says to do that."
330 (interactive (list (progn 330 (interactive (list (progn
331 (barf-if-buffer-read-only) 331 (barf-if-buffer-read-only)
332 (read-face-name "Use face")) 332 (read-face-name "Use face" (face-at-point t)))
333 (if (and mark-active (not current-prefix-arg)) 333 (if (and mark-active (not current-prefix-arg))
334 (region-beginning)) 334 (region-beginning))
335 (if (and mark-active (not current-prefix-arg)) 335 (if (and mark-active (not current-prefix-arg))
diff --git a/lisp/faces.el b/lisp/faces.el
index 400b475429f..de6d36c7ae8 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -757,7 +757,8 @@ is specified, `:italic' is ignored."
757FRAME nil or not specified means change face on all frames. 757FRAME nil or not specified means change face on all frames.
758Argument NOERROR is ignored and retained for compatibility. 758Argument NOERROR is ignored and retained for compatibility.
759Use `set-face-attribute' for finer control of the font weight." 759Use `set-face-attribute' for finer control of the font weight."
760 (interactive (list (read-face-name "Make which face bold"))) 760 (interactive (list (read-face-name "Make which face bold"
761 (face-at-point t))))
761 (set-face-attribute face frame :weight 'bold)) 762 (set-face-attribute face frame :weight 'bold))
762 763
763 764
@@ -765,7 +766,8 @@ Use `set-face-attribute' for finer control of the font weight."
765 "Make the font of FACE be non-bold, if possible. 766 "Make the font of FACE be non-bold, if possible.
766FRAME nil or not specified means change face on all frames. 767FRAME nil or not specified means change face on all frames.
767Argument NOERROR is ignored and retained for compatibility." 768Argument NOERROR is ignored and retained for compatibility."
768 (interactive (list (read-face-name "Make which face non-bold"))) 769 (interactive (list (read-face-name "Make which face non-bold"
770 (face-at-point t))))
769 (set-face-attribute face frame :weight 'normal)) 771 (set-face-attribute face frame :weight 'normal))
770 772
771 773
@@ -774,7 +776,8 @@ Argument NOERROR is ignored and retained for compatibility."
774FRAME nil or not specified means change face on all frames. 776FRAME nil or not specified means change face on all frames.
775Argument NOERROR is ignored and retained for compatibility. 777Argument NOERROR is ignored and retained for compatibility.
776Use `set-face-attribute' for finer control of the font slant." 778Use `set-face-attribute' for finer control of the font slant."
777 (interactive (list (read-face-name "Make which face italic"))) 779 (interactive (list (read-face-name "Make which face italic"
780 (face-at-point t))))
778 (set-face-attribute face frame :slant 'italic)) 781 (set-face-attribute face frame :slant 'italic))
779 782
780 783
@@ -782,7 +785,8 @@ Use `set-face-attribute' for finer control of the font slant."
782 "Make the font of FACE be non-italic, if possible. 785 "Make the font of FACE be non-italic, if possible.
783FRAME nil or not specified means change face on all frames. 786FRAME nil or not specified means change face on all frames.
784Argument NOERROR is ignored and retained for compatibility." 787Argument NOERROR is ignored and retained for compatibility."
785 (interactive (list (read-face-name "Make which face non-italic"))) 788 (interactive (list (read-face-name "Make which face non-italic"
789 (face-at-point t))))
786 (set-face-attribute face frame :slant 'normal)) 790 (set-face-attribute face frame :slant 'normal))
787 791
788 792
@@ -791,7 +795,8 @@ Argument NOERROR is ignored and retained for compatibility."
791FRAME nil or not specified means change face on all frames. 795FRAME nil or not specified means change face on all frames.
792Argument NOERROR is ignored and retained for compatibility. 796Argument NOERROR is ignored and retained for compatibility.
793Use `set-face-attribute' for finer control of font weight and slant." 797Use `set-face-attribute' for finer control of font weight and slant."
794 (interactive (list (read-face-name "Make which face bold-italic"))) 798 (interactive (list (read-face-name "Make which face bold-italic"
799 (face-at-point t))))
795 (set-face-attribute face frame :weight 'bold :slant 'italic)) 800 (set-face-attribute face frame :weight 'bold :slant 'italic))
796 801
797 802
@@ -911,7 +916,7 @@ If FRAME is omitted or nil, it means change face on all frames.
911If FACE specifies neither foreground nor background color, 916If FACE specifies neither foreground nor background color,
912set its foreground and background to the background and foreground 917set its foreground and background to the background and foreground
913of the default face. Value is FACE." 918of the default face. Value is FACE."
914 (interactive (list (read-face-name "Invert face"))) 919 (interactive (list (read-face-name "Invert face" (face-at-point t))))
915 (let ((fg (face-attribute face :foreground frame)) 920 (let ((fg (face-attribute face :foreground frame))
916 (bg (face-attribute face :background frame))) 921 (bg (face-attribute face :background frame)))
917 (if (not (and (eq fg 'unspecified) (eq bg 'unspecified))) 922 (if (not (and (eq fg 'unspecified) (eq bg 'unspecified)))
@@ -929,85 +934,54 @@ of the default face. Value is FACE."
929;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 934;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
930 935
931(defun read-face-name (prompt &optional default multiple) 936(defun read-face-name (prompt &optional default multiple)
932 "Read one or more face names, defaulting to the face(s) at point. 937 "Read one or more face names, prompting with PROMPT.
933PROMPT should be a prompt string; it should not end in a space or 938PROMPT should not end in a space or a colon.
934a colon.
935 939
936The optional argument DEFAULT specifies the default face name(s) 940Return DEFAULT if the user enters the empty string.
937to return if the user just types RET. If its value is non-nil, 941If DEFAULT is non-nil, it should be a list of face names (symbols or strings).
938it should be a list of face names (symbols or strings); in that case, 942In that case, return the `car' of DEFAULT (if MULTIPLE is non-nil),
939the default return value is the `car' of DEFAULT (if the argument 943or DEFAULT (if MULTIPLE is nil). See below for the meaning of MULTIPLE.
940MULTIPLE is non-nil), or DEFAULT (if MULTIPLE is nil). See below 944DEFAULT can also be a single face.
941for the meaning of MULTIPLE.
942
943If DEFAULT is nil, the list of default face names is taken from
944the symbol at point and the `read-face-name' property of the text at point,
945or, if that is nil, from the `face' property of the text at point.
946 945
947This function uses `completing-read-multiple' with \"[ \\t]*,[ \\t]*\" 946This function uses `completing-read-multiple' with \"[ \\t]*,[ \\t]*\"
948as the separator regexp. Thus, the user may enter multiple face 947as the separator regexp. Thus, the user may enter multiple face names,
949names, separated by commas. The optional argument MULTIPLE 948separated by commas.
950specifies the form of the return value. If MULTIPLE is non-nil, 949
951return a list of face names; if the user entered just one face 950MULTIPLE specifies the form of the return value. If MULTIPLE is non-nil,
952name, the return value would be a list of one face name. 951return a list of face names; if the user entered just one face name,
953Otherwise, return a single face name; if the user entered more 952return a list of one face name. Otherwise, return a single face name;
954than one face name, return only the first one." 953if the user entered more than one face name, return only the first one."
955 ;; Should we better not generate automagically a value for DEFAULT 954 (if (and default (not (stringp default)))
956 ;; when `read-face-name' was called with DEFAULT being nil? 955 (setq default
957 ;; Such magic is somewhat unusual for a function `read-...'. 956 (cond ((symbolp default)
958 ;; Also, one cannot skip this magic by means of a suitable 957 (symbol-name default))
959 ;; value of DEFAULT. It would be cleaner to use 958 (multiple
960 ;; (read-face-name prompt (face-at-point)). 959 (mapconcat (lambda (f) (if (symbolp f) (symbol-name f) f))
961 (unless default 960 default ", "))
962 ;; Try to get a default face name from the buffer. 961 ;; If we only want one, and the default is more than one,
963 (let ((thing (intern-soft (thing-at-point 'symbol)))) 962 ;; discard the unwanted ones.
964 (if (memq thing (face-list)) 963 (t (symbol-name (car default))))))
965 (setq default (list thing)))) 964
966 ;; Add the named faces that the `read-face-name' or `face' property uses. 965 (let (aliasfaces nonaliasfaces faces)
967 (let ((faceprop (or (get-char-property (point) 'read-face-name) 966 ;; Build up the completion tables.
968 (get-char-property (point) 'face))))
969 (if (and (listp faceprop)
970 ;; Don't treat an attribute spec as a list of faces.
971 (not (keywordp (car faceprop)))
972 (not (memq (car faceprop) '(foreground-color background-color))))
973 (dolist (face faceprop)
974 (if (symbolp face)
975 (push face default)))
976 (if (symbolp faceprop)
977 (push faceprop default)))
978 (delete-dups default)))
979
980 ;; If we only want one, and the default is more than one,
981 ;; discard the unwanted ones now.
982 (if (and default (not multiple))
983 (setq default (list (car default))))
984
985 (if default
986 (setq default (mapconcat (lambda (f)
987 (if (symbolp f) (symbol-name f) f))
988 default ", ")))
989
990 ;; Build up the completion tables.
991 (let (aliasfaces nonaliasfaces)
992 (mapatoms (lambda (s) 967 (mapatoms (lambda (s)
993 (if (custom-facep s) 968 (if (facep s)
994 (if (get s 'face-alias) 969 (if (get s 'face-alias)
995 (push (symbol-name s) aliasfaces) 970 (push (symbol-name s) aliasfaces)
996 (push (symbol-name s) nonaliasfaces))))) 971 (push (symbol-name s) nonaliasfaces)))))
997 972 (dolist (face (completing-read-multiple
998 (let ((faces 973 (if default
999 ;; Read the faces. 974 (format "%s (default `%s'): " prompt default)
1000 (mapcar 'intern 975 (format "%s: " prompt))
1001 (completing-read-multiple 976 (completion-table-in-turn nonaliasfaces aliasfaces)
1002 (if default 977 nil t nil 'face-name-history default))
1003 (format "%s (default `%s'): " prompt default) 978 ;; Ignore elements that are not faces
1004 (format "%s: " prompt)) 979 ;; (for example, because DEFAULT was "all faces")
1005 (completion-table-in-turn nonaliasfaces aliasfaces) 980 (if (facep face) (push (intern face) faces)))
1006 nil t nil 'face-name-history default)))) 981 ;; Return either a list of faces or just one face.
1007 ;; Return either a list of faces or just one face. 982 (if multiple
1008 (if multiple 983 (nreverse faces)
1009 faces 984 (last faces))))
1010 (car faces)))))
1011 985
1012;; Not defined without X, but behind window-system test. 986;; Not defined without X, but behind window-system test.
1013(defvar x-bitmap-file-path) 987(defvar x-bitmap-file-path)
@@ -1235,7 +1209,7 @@ and the face and its settings are obtained by querying the user."
1235 :slant (if italic-p 'italic 'normal) 1209 :slant (if italic-p 'italic 'normal)
1236 :underline underline 1210 :underline underline
1237 :inverse-video inverse-p) 1211 :inverse-video inverse-p)
1238 (setq face (read-face-name "Modify face")) 1212 (setq face (read-face-name "Modify face" (face-at-point t)))
1239 (apply #'set-face-attribute face frame 1213 (apply #'set-face-attribute face frame
1240 (read-all-face-attributes face frame)))) 1214 (read-all-face-attributes face frame))))
1241 1215
@@ -1247,13 +1221,13 @@ Value is a list (FACE NEW-VALUE) where FACE is the face read
1247\(a symbol), and NEW-VALUE is value read." 1221\(a symbol), and NEW-VALUE is value read."
1248 (cond ((eq attribute :font) 1222 (cond ((eq attribute :font)
1249 (let* ((prompt "Set font-related attributes of face") 1223 (let* ((prompt "Set font-related attributes of face")
1250 (face (read-face-name prompt)) 1224 (face (read-face-name prompt (face-at-point t)))
1251 (font (read-face-font face frame))) 1225 (font (read-face-font face frame)))
1252 (list face font))) 1226 (list face font)))
1253 (t 1227 (t
1254 (let* ((attribute-name (face-descriptive-attribute-name attribute)) 1228 (let* ((attribute-name (face-descriptive-attribute-name attribute))
1255 (prompt (format "Set %s of face" attribute-name)) 1229 (prompt (format "Set %s of face" attribute-name))
1256 (face (read-face-name prompt)) 1230 (face (read-face-name prompt (face-at-point t)))
1257 (new-value (read-face-attribute face attribute frame))) 1231 (new-value (read-face-attribute face attribute frame)))
1258 (list face new-value))))) 1232 (list face new-value)))))
1259 1233
@@ -1363,8 +1337,7 @@ If the optional argument FRAME is given, report on face FACE in that frame.
1363If FRAME is t, report on the defaults for face FACE (for new frames). 1337If FRAME is t, report on the defaults for face FACE (for new frames).
1364If FRAME is omitted or nil, use the selected frame." 1338If FRAME is omitted or nil, use the selected frame."
1365 (interactive (list (read-face-name "Describe face" 1339 (interactive (list (read-face-name "Describe face"
1366 (if (eq 'default (face-at-point)) 1340 (or (face-at-point t) 'default)
1367 '(default))
1368 t))) 1341 t)))
1369 (let* ((attrs '((:family . "Family") 1342 (let* ((attrs '((:family . "Family")
1370 (:foundry . "Foundry") 1343 (:foundry . "Foundry")
@@ -1879,23 +1852,33 @@ resulting color name in the echo area."
1879 (when msg (message "Color: `%s'" color)) 1852 (when msg (message "Color: `%s'" color))
1880 color)) 1853 color))
1881 1854
1882 1855(defun face-at-point (&optional thing multiple)
1883(defun face-at-point ()
1884 "Return the face of the character after point. 1856 "Return the face of the character after point.
1885If it has more than one face, return the first one. 1857If it has more than one face, return the first one.
1886Return nil if it has no specified face." 1858If THING is non-nil try first to get a face name from the buffer.
1887 (let* ((faceprop (or (get-char-property (point) 'read-face-name) 1859IF MULTIPLE is non-nil, return a list of all faces.
1888 (get-char-property (point) 'face) 1860Return nil if there is no face."
1889 'default)) 1861 (let (faces)
1890 (face (cond ((symbolp faceprop) faceprop) 1862 (if thing
1891 ;; List of faces (don't treat an attribute spec). 1863 ;; Try to get a face name from the buffer.
1892 ;; Just use the first face. 1864 (let ((face (intern-soft (thing-at-point 'symbol))))
1893 ((and (consp faceprop) (not (keywordp (car faceprop))) 1865 (if (facep face)
1894 (not (memq (car faceprop) 1866 (push face faces))))
1895 '(foreground-color background-color)))) 1867 ;; Add the named faces that the `read-face-name' or `face' property uses.
1896 (car faceprop)) 1868 (let ((faceprop (or (get-char-property (point) 'read-face-name)
1897 (t nil)))) ; Invalid face value. 1869 (get-char-property (point) 'face))))
1898 (if (facep face) face nil))) 1870 (cond ((facep faceprop)
1871 (push faceprop faces))
1872 ((and (listp faceprop)
1873 ;; Don't treat an attribute spec as a list of faces.
1874 (not (keywordp (car faceprop)))
1875 (not (memq (car faceprop)
1876 '(foreground-color background-color))))
1877 (dolist (face faceprop)
1878 (if (facep face)
1879 (push face faces))))))
1880 (setq faces (delete-dups (nreverse faces)))
1881 (if multiple faces (car faces))))
1899 1882
1900(defun foreground-color-at-point () 1883(defun foreground-color-at-point ()
1901 "Return the foreground color of the character after point." 1884 "Return the foreground color of the character after point."
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 58de51672e6..f15ed7e707c 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,8 @@
12013-04-12 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus-msg.el (gnus-msg-mail): Make it avoid using posting styles
4 corresponding to any existing group (Bug#14166).
5
12013-04-10 Andrew Cohen <cohen@bu.edu> 62013-04-10 Andrew Cohen <cohen@bu.edu>
2 7
3 * nnir.el (number-sequence): No longer used. 8 * nnir.el (number-sequence): No longer used.
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index 36135556c73..362dd3ea7f0 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -538,7 +538,8 @@ instead."
538 (message-mail to subject other-headers continue 538 (message-mail to subject other-headers continue
539 nil yank-action send-actions return-action)) 539 nil yank-action send-actions return-action))
540 (let ((buf (current-buffer)) 540 (let ((buf (current-buffer))
541 (gnus-newsgroup-name (or gnus-newsgroup-name "")) 541 ;; Don't use posting styles corresponding to any existing group.
542 (gnus-newsgroup-name "")
542 mail-buf) 543 mail-buf)
543 (gnus-setup-message 'message 544 (gnus-setup-message 'message
544 (message-mail to subject other-headers continue 545 (message-mail to subject other-headers continue
diff --git a/lisp/info.el b/lisp/info.el
index 4679b51b999..58ebf0b17da 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -4383,7 +4383,8 @@ This feature will be removed in future.")
4383 ("ietf-drums" . "emacs-mime") ("quoted-printable" . "emacs-mime") 4383 ("ietf-drums" . "emacs-mime") ("quoted-printable" . "emacs-mime")
4384 ("binhex" . "emacs-mime") ("uudecode" . "emacs-mime") 4384 ("binhex" . "emacs-mime") ("uudecode" . "emacs-mime")
4385 ("mailcap" . "emacs-mime") ("mm" . "emacs-mime") 4385 ("mailcap" . "emacs-mime") ("mm" . "emacs-mime")
4386 ("mml" . "emacs-mime")) 4386 ("mml" . "emacs-mime")
4387 "tramp" "dbus")
4387 "List of Info files that describe Emacs commands. 4388 "List of Info files that describe Emacs commands.
4388An element can be a file name, or a list of the form (PREFIX . FILE) 4389An element can be a file name, or a list of the form (PREFIX . FILE)
4389where PREFIX is a name prefix and FILE is the file to look in. 4390where PREFIX is a name prefix and FILE is the file to look in.
diff --git a/src/ChangeLog b/src/ChangeLog
index 7f4c59b8eb4..08f33eb7d02 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * window.c (select_window): `record_buffer' even if window is
4 already selected (bug#14191).
5
12013-04-11 Eli Zaretskii <eliz@gnu.org> 62013-04-11 Eli Zaretskii <eliz@gnu.org>
2 7
3 * window.c (Fwindow_end): Test more flags, including the buffer's 8 * window.c (Fwindow_end): Test more flags, including the buffer's
@@ -10,8 +15,8 @@
102013-04-10 Eli Zaretskii <eliz@gnu.org> 152013-04-10 Eli Zaretskii <eliz@gnu.org>
11 16
12 * frame.c (do_switch_frame): Mark the TTY frame we switch to as 17 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
13 garbaged only if it is not already the top frame on its TTY. This 18 garbaged only if it is not already the top frame on its TTY.
14 prevents flickering due to constant redrawing of TTY frames when 19 This prevents flickering due to constant redrawing of TTY frames when
15 there are GUI frames open in the same session. (Bug#13864) 20 there are GUI frames open in the same session. (Bug#13864)
16 21
172013-04-10 Stefan Monnier <monnier@iro.umontreal.ca> 222013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
@@ -95,7 +100,7 @@
95 The following changes is to optimize the code for reading UTF-8 100 The following changes is to optimize the code for reading UTF-8
96 files. 101 files.
97 102
98 * coding.c (check_ascii): Renamed from detect_ascii. Return value 103 * coding.c (check_ascii): Rename from detect_ascii. Return value
99 changed. Check EOL format. Do not call adjust_coding_eol_type 104 changed. Check EOL format. Do not call adjust_coding_eol_type
100 here. 105 here.
101 (check_utf_8): New function. 106 (check_utf_8): New function.
@@ -287,8 +292,8 @@
287 292
288 * xdisp.c (with_echo_area_buffer_unwind_data): Save window 293 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
289 start marker... 294 start marker...
290 (unwind_with_echo_area_buffer): ...to restore it here. This 295 (unwind_with_echo_area_buffer): ...to restore it here.
291 is needed to ensure that... 296 This is needed to ensure that...
292 (redisplay_window): ...both window markers are valid here, 297 (redisplay_window): ...both window markers are valid here,
293 which is verified by eassert. 298 which is verified by eassert.
294 * editfns.c (save_excursion_save): Do not assume that 299 * editfns.c (save_excursion_save): Do not assume that
@@ -438,10 +443,10 @@
438 443
439 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH, 444 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
440 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static 445 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
441 variables, to save and restore frame dimensions. Use 446 variables, to save and restore frame dimensions.
442 FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position 447 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
443 after returning from a 'fullscreen' configuration. use 448 after returning from a 'fullscreen' configuration.
444 SendMessage instead of PostMessage to send the SC_RESTORE message, 449 use SendMessage instead of PostMessage to send the SC_RESTORE message,
445 to avoid races between the main thread and the input thread. 450 to avoid races between the main thread and the input thread.
446 451
447 * w32term.h (struct w32_output): New members normal_width, 452 * w32term.h (struct w32_output): New members normal_width,
@@ -526,10 +531,10 @@
526 531
527 * frame.h (struct frame): Drop resx and resy because the same data is 532 * frame.h (struct frame): Drop resx and resy because the same data is
528 available from window system-specific output context. Adjust users. 533 available from window system-specific output context. Adjust users.
529 (default_pixels_per_inch_x, default_pixels_per_inch_y): New 534 (default_pixels_per_inch_x, default_pixels_per_inch_y):
530 functions to provide defaults when no window system available. 535 New functions to provide defaults when no window system available.
531 (FRAME_RES_X, FRAME_RES_Y): New macros. 536 (FRAME_RES_X, FRAME_RES_Y): New macros.
532 (NUMVAL): Moved from xdisp.c. 537 (NUMVAL): Move from xdisp.c.
533 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface) 538 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
534 (Ffont_face_attributes, Fopen_font): 539 (Ffont_face_attributes, Fopen_font):
535 * image.c (gs_load): 540 * image.c (gs_load):
diff --git a/src/window.c b/src/window.c
index ee3feb90b7b..ed2505a893f 100644
--- a/src/window.c
+++ b/src/window.c
@@ -490,7 +490,10 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap)
490 Fset_buffer (w->contents); 490 Fset_buffer (w->contents);
491 491
492 if (EQ (window, selected_window) && !inhibit_point_swap) 492 if (EQ (window, selected_window) && !inhibit_point_swap)
493 return window; 493 /* `switch-to-buffer' uses (select-window (selected-window)) as a "clever"
494 way to call record_buffer from Elisp, so it's important that we call
495 record_buffer before returning here. */
496 goto record_and_return;
494 497
495 sf = SELECTED_FRAME (); 498 sf = SELECTED_FRAME ();
496 if (XFRAME (WINDOW_FRAME (w)) != sf) 499 if (XFRAME (WINDOW_FRAME (w)) != sf)
@@ -509,7 +512,10 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap)
509 fset_selected_window (sf, window); 512 fset_selected_window (sf, window);
510 513
511 select_window_1 (window, inhibit_point_swap); 514 select_window_1 (window, inhibit_point_swap);
515 bset_last_selected_window (XBUFFER (w->contents), window);
516 windows_or_buffers_changed++;
512 517
518 record_and_return:
513 /* record_buffer can run QUIT, so make sure it is run only after we have 519 /* record_buffer can run QUIT, so make sure it is run only after we have
514 re-established the invariant between selected_window and selected_frame, 520 re-established the invariant between selected_window and selected_frame,
515 otherwise the temporary broken invariant might "escape" (bug#14161). */ 521 otherwise the temporary broken invariant might "escape" (bug#14161). */
@@ -519,8 +525,6 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap)
519 record_buffer (w->contents); 525 record_buffer (w->contents);
520 } 526 }
521 527
522 bset_last_selected_window (XBUFFER (w->contents), window);
523 windows_or_buffers_changed++;
524 return window; 528 return window;
525} 529}
526 530