aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2007-07-15 01:50:59 +0000
committerMiles Bader2007-07-15 01:50:59 +0000
commit6f8a87c027ebd6f9cfdac5c0df97d651227bec62 (patch)
tree59b69dc267d2fcdd8809f7134e7680ea7bb21ac8
parent36ae4ff74e439d0624dc06969b1f9f542eb19671 (diff)
parent82fe1aeda6647e15874f7c7c5299f82abd2cbb5c (diff)
downloademacs-6f8a87c027ebd6f9cfdac5c0df97d651227bec62.tar.gz
emacs-6f8a87c027ebd6f9cfdac5c0df97d651227bec62.zip
Merge from emacs--rel--22
Patches applied: * emacs--rel--22 (patch 55-58) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 235-236) - Update from CVS 2007-07-13 Dan Nicolaescu <dann@ics.uci.edu> * lisp/replace.el (match): Use yellow1 instead of yellow. * lisp/progmodes/gdb-ui.el (breakpoint-enabled): Use red1 instead of red. * lisp/pcvs-info.el (cvs-unknown): Likewise. 2007-07-10 Richard M. Stallman <rms@gnu.org> * lisp/emacs-lisp/lisp-mode.el (eval-defun): Explain special handling of `defface'. 2007-07-13 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-srvr.el (gnus-server-agent-face, gnus-server-opened-face) (gnus-server-closed-face, gnus-server-denied-face) (gnus-server-offline-face): Remove variable. (gnus-server-font-lock-keywords): Use faces that are not aliases. * lisp/gnus/mm-util.el (mm-decode-coding-string, mm-encode-coding-string) (mm-decode-coding-region, mm-encode-coding-region): Don't modify string if the coding-system argument is nil for XEmacs. * lisp/gnus/nnrss.el (nnrss-compatible-encoding-alist): Inherit the value of mm-charset-override-alist. * lisp/gnus/rfc2047.el: Don't require base64; require rfc2045 for the function rfc2045-encode-string. (rfc2047-encode-parameter): Use rfc2045-encode-string to quote or not to quote the parameter value. 2007-07-10 Richard M. Stallman <rms@gnu.org> * lispref/display.texi (Defining Faces): Explain C-M-x feature for defface. 2007-07-11 Jason Rumney <jasonr@gnu.org> * nt/gmake.defs (OLE32): New library to link. * nt/nmake.defs (OLE32): Likewise. 2007-07-11 Jason Rumney <jasonr@gnu.org> * src/makefile.w32-in (LIBS): Include OLE32. * src/w32fns.c (w32_msg_pump) <WM_EMACS_CREATEWINDOW>: Initialize COM. (w32_msg_pump) <WM_DESTROY>: Uninitialize COM. Revision: emacs@sv.gnu.org/emacs--devo--0--patch-812
-rw-r--r--lisp/ChangeLog14
-rw-r--r--lisp/emacs-lisp/lisp-mode.el4
-rw-r--r--lisp/gnus/ChangeLog19
-rw-r--r--lisp/gnus/gnus-srvr.el41
-rw-r--r--lisp/gnus/mm-util.el34
-rw-r--r--lisp/gnus/nnrss.el7
-rw-r--r--lisp/gnus/rfc2047.el11
-rw-r--r--lisp/pcvs-info.el4
-rw-r--r--lisp/progmodes/gdb-ui.el2
-rw-r--r--lisp/replace.el2
-rw-r--r--lispref/ChangeLog4
-rw-r--r--lispref/display.texi5
-rw-r--r--nt/ChangeLog6
-rw-r--r--nt/gmake.defs3
-rw-r--r--nt/nmake.defs3
-rw-r--r--src/ChangeLog17
-rw-r--r--src/makefile.w32-in3
-rw-r--r--src/w32fns.c12
18 files changed, 129 insertions, 62 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 526d7d021e8..6a568afe055 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -31,6 +31,15 @@
31 31
32 * subr.el (when, unless): Doc fix. 32 * subr.el (when, unless): Doc fix.
33 33
342007-07-13 Dan Nicolaescu <dann@ics.uci.edu>
35
36 * replace.el (match): Use yellow1 instead of yellow.
37
38 * progmodes/gdb-ui.el (breakpoint-enabled): Use red1 instead of
39 red.
40
41 * pcvs-info.el (cvs-unknown): Likewise.
42
342007-07-13 Eli Zaretskii <eliz@gnu.org> 432007-07-13 Eli Zaretskii <eliz@gnu.org>
35 44
36 * makefile.w32-in (install-lisp-SH, install-lisp-CMD): New targets. 45 * makefile.w32-in (install-lisp-SH, install-lisp-CMD): New targets.
@@ -140,6 +149,11 @@
140 149
141 * menu-bar.el (vc-menu-map): New defalias. 150 * menu-bar.el (vc-menu-map): New defalias.
142 151
1522007-07-10 Richard Stallman <rms@gnu.org>
153
154 * emacs-lisp/lisp-mode.el (eval-defun):
155 Explain special handling of `defface'.
156
1432007-07-10 Jim Meyering <jim@meyering.net> (tiny change) 1572007-07-10 Jim Meyering <jim@meyering.net> (tiny change)
144 158
145 * emacs-lisp/copyright.el (copyright-current-gpl-version): Set to 3. 159 * emacs-lisp/copyright.el (copyright-current-gpl-version): Set to 3.
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 73379a816d7..374d3ae2327 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -730,7 +730,9 @@ If the current defun is actually a call to `defvar' or `defcustom',
730evaluating it this way resets the variable using its initial value 730evaluating it this way resets the variable using its initial value
731expression even if the variable already has some other value. 731expression even if the variable already has some other value.
732\(Normally `defvar' and `defcustom' do not alter the value if there 732\(Normally `defvar' and `defcustom' do not alter the value if there
733already is one.) 733already is one.) In an analogous way, evaluating a `defface'
734overrides any customizations of the face, so that it becomes
735defined exactly as the `defface' expression says.
734 736
735If `eval-expression-debug-on-error' is non-nil, which is the default, 737If `eval-expression-debug-on-error' is non-nil, which is the default,
736this command arranges for all errors to enter the debugger. 738this command arranges for all errors to enter the debugger.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 30b787acf41..6a66ebbf756 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -3,6 +3,25 @@
3 * gnus-art.el (gnus-mime-delete-part): Don't go through article-edit 3 * gnus-art.el (gnus-mime-delete-part): Don't go through article-edit
4 finishing actions if we did not edit the article. 4 finishing actions if we did not edit the article.
5 5
62007-07-13 Katsumi Yamaoka <yamaoka@jpl.org>
7
8 * gnus-srvr.el (gnus-server-agent-face, gnus-server-opened-face)
9 (gnus-server-closed-face, gnus-server-denied-face)
10 (gnus-server-offline-face): Remove variable.
11 (gnus-server-font-lock-keywords): Use faces that are not aliases.
12
13 * mm-util.el (mm-decode-coding-string, mm-encode-coding-string)
14 (mm-decode-coding-region, mm-encode-coding-region): Don't modify string
15 if the coding-system argument is nil for XEmacs.
16
17 * nnrss.el (nnrss-compatible-encoding-alist): Inherit the value of
18 mm-charset-override-alist.
19
20 * rfc2047.el: Don't require base64; require rfc2045 for the function
21 rfc2045-encode-string.
22 (rfc2047-encode-parameter): Use rfc2045-encode-string to quote or not
23 to quote the parameter value.
24
62007-07-04 Katsumi Yamaoka <yamaoka@jpl.org> 252007-07-04 Katsumi Yamaoka <yamaoka@jpl.org>
7 26
8 * gnus-sum.el (gnus-summary-catchup): Don't recognize cached articles 27 * gnus-sum.el (gnus-summary-catchup): Don't recognize cached articles
diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el
index f6804f3b114..0d5443f576c 100644
--- a/lisp/gnus/gnus-srvr.el
+++ b/lisp/gnus/gnus-srvr.el
@@ -214,43 +214,12 @@ If nil, a faster, but more primitive, buffer is used instead."
214;; backward-compatibility alias 214;; backward-compatibility alias
215(put 'gnus-server-offline-face 'face-alias 'gnus-server-offline) 215(put 'gnus-server-offline-face 'face-alias 'gnus-server-offline)
216 216
217(defcustom gnus-server-agent-face 'gnus-server-agent
218 "Face name to use on AGENTIZED servers."
219 :version "22.1"
220 :group 'gnus-server-visual
221 :type 'face)
222
223(defcustom gnus-server-opened-face 'gnus-server-opened
224 "Face name to use on OPENED servers."
225 :version "22.1"
226 :group 'gnus-server-visual
227 :type 'face)
228
229(defcustom gnus-server-closed-face 'gnus-server-closed
230 "Face name to use on CLOSED servers."
231 :version "22.1"
232 :group 'gnus-server-visual
233 :type 'face)
234
235(defcustom gnus-server-denied-face 'gnus-server-denied
236 "Face name to use on DENIED servers."
237 :version "22.1"
238 :group 'gnus-server-visual
239 :type 'face)
240
241(defcustom gnus-server-offline-face 'gnus-server-offline
242 "Face name to use on OFFLINE servers."
243 :version "22.1"
244 :group 'gnus-server-visual
245 :type 'face)
246
247(defvar gnus-server-font-lock-keywords 217(defvar gnus-server-font-lock-keywords
248 (list 218 '(("(\\(agent\\))" 1 gnus-server-agent)
249 '("(\\(agent\\))" 1 gnus-server-agent-face) 219 ("(\\(opened\\))" 1 gnus-server-opened)
250 '("(\\(opened\\))" 1 gnus-server-opened-face) 220 ("(\\(closed\\))" 1 gnus-server-closed)
251 '("(\\(closed\\))" 1 gnus-server-closed-face) 221 ("(\\(offline\\))" 1 gnus-server-offline)
252 '("(\\(offline\\))" 1 gnus-server-offline-face) 222 ("(\\(denied\\))" 1 gnus-server-denied)))
253 '("(\\(denied\\))" 1 gnus-server-denied-face)))
254 223
255(defun gnus-server-mode () 224(defun gnus-server-mode ()
256 "Major mode for listing and editing servers. 225 "Major mode for listing and editing servers.
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index 742bbc223ae..8933edaf42c 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -36,11 +36,7 @@
36 (if (fboundp (car elem)) 36 (if (fboundp (car elem))
37 (defalias nfunc (car elem)) 37 (defalias nfunc (car elem))
38 (defalias nfunc (cdr elem))))) 38 (defalias nfunc (cdr elem)))))
39 '((decode-coding-string . (lambda (s a) s)) 39 '((coding-system-list . ignore)
40 (encode-coding-string . (lambda (s a) s))
41 (encode-coding-region . ignore)
42 (coding-system-list . ignore)
43 (decode-coding-region . ignore)
44 (char-int . identity) 40 (char-int . identity)
45 (coding-system-equal . equal) 41 (coding-system-equal . equal)
46 (annotationp . ignore) 42 (annotationp . ignore)
@@ -97,6 +93,34 @@
97 (multibyte-char-to-unibyte . identity)))) 93 (multibyte-char-to-unibyte . identity))))
98 94
99(eval-and-compile 95(eval-and-compile
96 (if (featurep 'xemacs)
97 (if (featurep 'file-coding)
98 ;; Don't modify string if CODING-SYSTEM is nil.
99 (progn
100 (defun mm-decode-coding-string (str coding-system)
101 (if coding-system
102 (decode-coding-string str coding-system)
103 str))
104 (defun mm-encode-coding-string (str coding-system)
105 (if coding-system
106 (encode-coding-string str coding-system)
107 str))
108 (defun mm-decode-coding-region (start end coding-system)
109 (if coding-system
110 (decode-coding-region start end coding-system)))
111 (defun mm-encode-coding-region (start end coding-system)
112 (if coding-system
113 (encode-coding-region start end coding-system))))
114 (defun mm-decode-coding-string (str coding-system) str)
115 (defun mm-encode-coding-string (str coding-system) str)
116 (defalias 'mm-decode-coding-region 'ignore)
117 (defalias 'mm-encode-coding-region 'ignore))
118 (defalias 'mm-decode-coding-string 'decode-coding-string)
119 (defalias 'mm-encode-coding-string 'encode-coding-string)
120 (defalias 'mm-decode-coding-region 'decode-coding-region)
121 (defalias 'mm-encode-coding-region 'encode-coding-region)))
122
123(eval-and-compile
100 (cond 124 (cond
101 ((fboundp 'replace-in-string) 125 ((fboundp 'replace-in-string)
102 (defalias 'mm-replace-in-string 'replace-in-string)) 126 (defalias 'mm-replace-in-string 'replace-in-string))
diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el
index 996783e69b6..1f7e5ba1de9 100644
--- a/lisp/gnus/nnrss.el
+++ b/lisp/gnus/nnrss.el
@@ -85,7 +85,12 @@ ARTICLE is the article number of the current headline.")
85(defvar nnrss-file-coding-system mm-universal-coding-system 85(defvar nnrss-file-coding-system mm-universal-coding-system
86 "Coding system used when reading and writing files.") 86 "Coding system used when reading and writing files.")
87 87
88(defvar nnrss-compatible-encoding-alist '((iso-8859-1 . windows-1252)) 88(defvar nnrss-compatible-encoding-alist
89 (delq nil (mapcar (lambda (elem)
90 (if (and (mm-coding-system-p (car elem))
91 (mm-coding-system-p (cdr elem)))
92 elem))
93 mm-charset-override-alist))
89 "Alist of encodings and those supersets. 94 "Alist of encodings and those supersets.
90The cdr of each element is used to decode data if it is available when 95The cdr of each element is used to decode data if it is available when
91the car is what the data specify as the encoding. Or, the car is used 96the car is what the data specify as the encoding. Or, the car is used
diff --git a/lisp/gnus/rfc2047.el b/lisp/gnus/rfc2047.el
index 6dc432daf79..3cf2940e031 100644
--- a/lisp/gnus/rfc2047.el
+++ b/lisp/gnus/rfc2047.el
@@ -55,7 +55,7 @@ Value is what BODY returns."
55(require 'ietf-drums) 55(require 'ietf-drums)
56;; Fixme: Avoid this (used for mail-parse-charset) mm dependence on gnus. 56;; Fixme: Avoid this (used for mail-parse-charset) mm dependence on gnus.
57(require 'mail-prsvr) 57(require 'mail-prsvr)
58(require 'base64) 58(require 'rfc2045) ;; rfc2045-encode-string
59(autoload 'mm-body-7-or-8 "mm-bodies") 59(autoload 'mm-body-7-or-8 "mm-bodies")
60 60
61(eval-and-compile 61(eval-and-compile
@@ -832,12 +832,9 @@ it, put the following line in your ~/.gnus.el file:
832 832
833\(defalias 'mail-header-encode-parameter 'rfc2047-encode-parameter) 833\(defalias 'mail-header-encode-parameter 'rfc2047-encode-parameter)
834" 834"
835 (let* ((rfc2047-encoding-type 'mime) 835 (let ((rfc2047-encoding-type 'mime)
836 (rfc2047-encode-max-chars nil) 836 (rfc2047-encode-max-chars nil))
837 (string (rfc2047-encode-string value))) 837 (rfc2045-encode-string param (rfc2047-encode-string value))))
838 (if (string-match (concat "[" ietf-drums-tspecials "]") string)
839 (format "%s=%S" param string)
840 (concat param "=" string))))
841 838
842;;; 839;;;
843;;; Functions for decoding RFC2047 messages 840;;; Functions for decoding RFC2047 messages
diff --git a/lisp/pcvs-info.el b/lisp/pcvs-info.el
index 6e36b5a93e3..880972bff9d 100644
--- a/lisp/pcvs-info.el
+++ b/lisp/pcvs-info.el
@@ -85,9 +85,9 @@ to confuse some users sometimes."
85 85
86(defface cvs-unknown 86(defface cvs-unknown
87 '((((class color) (background dark)) 87 '((((class color) (background dark))
88 (:foreground "red")) 88 (:foreground "red1"))
89 (((class color) (background light)) 89 (((class color) (background light))
90 (:foreground "red")) 90 (:foreground "red1"))
91 (t (:slant italic))) 91 (t (:slant italic)))
92 "PCL-CVS face used to highlight unknown file status." 92 "PCL-CVS face used to highlight unknown file status."
93 :group 'pcl-cvs) 93 :group 'pcl-cvs)
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 4dbc9893f61..7bc904f8319 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -1765,7 +1765,7 @@ static char *magick[] = {
1765 1765
1766(defface breakpoint-enabled 1766(defface breakpoint-enabled
1767 '((t 1767 '((t
1768 :foreground "red" 1768 :foreground "red1"
1769 :weight bold)) 1769 :weight bold))
1770 "Face for enabled breakpoint icon in fringe." 1770 "Face for enabled breakpoint icon in fringe."
1771 :group 'gud) 1771 :group 'gud)
diff --git a/lisp/replace.el b/lisp/replace.el
index ed1fa9a6b59..5d4c2a2eba6 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -860,7 +860,7 @@ Compatibility function for \\[next-error] invocations."
860 860
861(defface match 861(defface match
862 '((((class color) (min-colors 88) (background light)) 862 '((((class color) (min-colors 88) (background light))
863 :background "yellow") 863 :background "yellow1")
864 (((class color) (min-colors 88) (background dark)) 864 (((class color) (min-colors 88) (background dark))
865 :background "RoyalBlue3") 865 :background "RoyalBlue3")
866 (((class color) (min-colors 8) (background light)) 866 (((class color) (min-colors 8) (background light))
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 6a824f8deaf..5102e723566 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -2,6 +2,10 @@
2 2
3 * control.texi (Handling Errors): Document `debug' in handler list. 3 * control.texi (Handling Errors): Document `debug' in handler list.
4 4
52007-07-10 Richard Stallman <rms@gnu.org>
6
7 * display.texi (Defining Faces): Explain C-M-x feature for defface.
8
52007-07-09 Richard Stallman <rms@gnu.org> 92007-07-09 Richard Stallman <rms@gnu.org>
6 10
7 * files.texi (Magic File Names): Rewrite previous change. 11 * files.texi (Magic File Names): Rewrite previous change.
diff --git a/lispref/display.texi b/lispref/display.texi
index 664ad1d2c15..f4d7a5dbcdb 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -1760,6 +1760,11 @@ When @code{defface} executes, it defines the face according to
1760@var{spec}, then uses any customizations that were read from the 1760@var{spec}, then uses any customizations that were read from the
1761init file (@pxref{Init File}) to override that specification. 1761init file (@pxref{Init File}) to override that specification.
1762 1762
1763When you evaluate a @code{defcustom} form with @kbd{C-M-x} in Emacs
1764Lisp mode (@code{eval-defun}), a special feature of @code{eval-defun}
1765overrides any customizations of the face. This way, the face reflects
1766exactly what the @code{defcustom} says.
1767
1763The purpose of @var{spec} is to specify how the face should appear on 1768The purpose of @var{spec} is to specify how the face should appear on
1764different kinds of terminals. It should be an alist whose elements 1769different kinds of terminals. It should be an alist whose elements
1765have the form @code{(@var{display} @var{atts})}. Each element's 1770have the form @code{(@var{display} @var{atts})}. Each element's
diff --git a/nt/ChangeLog b/nt/ChangeLog
index c23d65d48e5..df2344dc3af 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -3,6 +3,12 @@
3 * inc/sys/socket.h: Include winsock2.h and ws2tcpip.h instead 3 * inc/sys/socket.h: Include winsock2.h and ws2tcpip.h instead
4 of winsock.h. 4 of winsock.h.
5 5
62007-07-11 Jason Rumney <jasonr@gnu.org>
7
8 * gmake.defs (OLE32): New library to link.
9
10 * nmake.defs (OLE32): Likewise.
11
62007-06-25 Jason Rumney <jasonr@gnu.org> 122007-06-25 Jason Rumney <jasonr@gnu.org>
7 13
8 * cmdproxy.c (main): Set console codepages to "ANSI". 14 * cmdproxy.c (main): Set console codepages to "ANSI".
diff --git a/nt/gmake.defs b/nt/gmake.defs
index 15ec2bf0ea3..c08ca32200f 100644
--- a/nt/gmake.defs
+++ b/nt/gmake.defs
@@ -176,8 +176,9 @@ MPR = -lmpr
176SHELL32 = -lshell32 176SHELL32 = -lshell32
177USER32 = -luser32 177USER32 = -luser32
178WSOCK32 = -lwsock32 178WSOCK32 = -lwsock32
179WINMM = -lwinmm 179WINMM = -lwinmm
180WINSPOOL = -lwinspool 180WINSPOOL = -lwinspool
181OLE32 = -lole32
181 182
182ifdef NOOPT 183ifdef NOOPT
183DEBUG_CFLAGS = -DEMACSDEBUG 184DEBUG_CFLAGS = -DEMACSDEBUG
diff --git a/nt/nmake.defs b/nt/nmake.defs
index 5f52bc18c62..03ae2f851fa 100644
--- a/nt/nmake.defs
+++ b/nt/nmake.defs
@@ -123,8 +123,9 @@ MPR = mpr.lib
123SHELL32 = shell32.lib 123SHELL32 = shell32.lib
124USER32 = user32.lib 124USER32 = user32.lib
125WSOCK32 = wsock32.lib 125WSOCK32 = wsock32.lib
126WINMM = winmm.lib 126WINMM = winmm.lib
127WINSPOOL = winspool.lib 127WINSPOOL = winspool.lib
128OLE32 = ole32.lib
128 129
129!ifdef NOOPT 130!ifdef NOOPT
130DEBUG_CFLAGS = -DEMACSDEBUG 131DEBUG_CFLAGS = -DEMACSDEBUG
diff --git a/src/ChangeLog b/src/ChangeLog
index 4694c984f2d..a707d884454 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -36,6 +36,13 @@
36 36
37 * term.c: Include unistd.h only if HAVE_UNISTD_H. 37 * term.c: Include unistd.h only if HAVE_UNISTD_H.
38 38
392007-07-11 Jason Rumney <jasonr@gnu.org>
40
41 * makefile.w32-in (LIBS): Include OLE32.
42
43 * w32fns.c (w32_msg_pump) <WM_EMACS_CREATEWINDOW>: Initialize COM.
44 (w32_msg_pump) <WM_DESTROY>: Uninitialize COM.
45
392007-07-11 Stefan Monnier <monnier@iro.umontreal.ca> 462007-07-11 Stefan Monnier <monnier@iro.umontreal.ca>
40 47
41 * lisp.h (struct Lisp_Hash_Table): Turn next_weak into a bare pointer. 48 * lisp.h (struct Lisp_Hash_Table): Turn next_weak into a bare pointer.
@@ -1206,13 +1213,13 @@
1206 when popup menu finishes. 1213 when popup menu finishes.
1207 1214
1208 * w32fns.c (menubar_in_use): New flag. 1215 * w32fns.c (menubar_in_use): New flag.
1209 (w32_wnd_proc) [WM_INITMENU, WM_EXITMENULOOP, WM_TIMER, WM_COMMAND]: 1216 (w32_wnd_proc) <WM_INITMENU, WM_EXITMENULOOP, WM_TIMER, WM_COMMAND>:
1210 Use it. 1217 Use it.
1211 1218
1212 * w32menu.c (Fx_popup_menu): Don't free menu strings here. 1219 * w32menu.c (Fx_popup_menu): Don't free menu strings here.
1213 (w32_menu_show): Do it here instead. 1220 (w32_menu_show): Do it here instead.
1214 1221
1215 * w32fns.c (w32_wnd_proc) [WM_INITMENU]: Set menubar_active frame 1222 * w32fns.c (w32_wnd_proc) <WM_INITMENU>: Set menubar_active frame
1216 parameter. 1223 parameter.
1217 1224
1218 * w32menu.c (current_popup_menu): Make available globally. 1225 * w32menu.c (current_popup_menu): Make available globally.
@@ -1220,7 +1227,7 @@
1220 menu event into the keyboard buffer. Remove menu_command_in_progress. 1227 menu event into the keyboard buffer. Remove menu_command_in_progress.
1221 1228
1222 * w32fns.c (current_popup_menu): Use from w32menu.c. 1229 * w32fns.c (current_popup_menu): Use from w32menu.c.
1223 (w32_wnd_proc) [WM_EXITMENULOOP, WM_TIMER]: Use menubar_active 1230 (w32_wnd_proc) <WM_EXITMENULOOP, WM_TIMER>: Use menubar_active
1224 and current_popup_menu to determine whether a menubar menu has 1231 and current_popup_menu to determine whether a menubar menu has
1225 been cancelled. 1232 been cancelled.
1226 1233
@@ -10331,7 +10338,7 @@
10331 * w32term.h (x_output): Add focus_state. 10338 * w32term.h (x_output): Add focus_state.
10332 10339
10333 * w32term.c (x_focus_changed, w32_detect_focus_change): New functions. 10340 * w32term.c (x_focus_changed, w32_detect_focus_change): New functions.
10334 (w32_read_socket) [WM_SETFOCUS]: Call w32_detect_focus_change. 10341 (w32_read_socket) <WM_SETFOCUS>: Call w32_detect_focus_change.
10335 10342
103362005-03-25 Stefan Monnier <monnier@iro.umontreal.ca> 103432005-03-25 Stefan Monnier <monnier@iro.umontreal.ca>
10337 10344
@@ -13624,7 +13631,7 @@
13624 13631
13625 * w32term.h (AppendMenuW_Proc): Move declaration from w32menu.c. 13632 * w32term.h (AppendMenuW_Proc): Move declaration from w32menu.c.
13626 13633
13627 * w32fns.c (w32_wnd_proc) [WM_MEASUREITEM, WM_DRAWITEM]: 13634 * w32fns.c (w32_wnd_proc) <WM_MEASUREITEM, WM_DRAWITEM>:
13628 Handle Unicode menu titles. 13635 Handle Unicode menu titles.
13629 13636
136302004-09-07 Kim F. Storm <storm@cua.dk> 136372004-09-07 Kim F. Storm <storm@cua.dk>
diff --git a/src/makefile.w32-in b/src/makefile.w32-in
index 4dad03f4c0c..ccb0dcf9f5f 100644
--- a/src/makefile.w32-in
+++ b/src/makefile.w32-in
@@ -138,7 +138,7 @@ LIBS = $(TLIB0) \
138 $(TLIB1) \ 138 $(TLIB1) \
139 $(TLIBW32) \ 139 $(TLIBW32) \
140 $(TLASTLIB) \ 140 $(TLASTLIB) \
141 $(WINMM) \ 141 $(WINMM) \
142 $(ADVAPI32) \ 142 $(ADVAPI32) \
143 $(GDI32) \ 143 $(GDI32) \
144 $(COMDLG32) \ 144 $(COMDLG32) \
@@ -146,6 +146,7 @@ LIBS = $(TLIB0) \
146 $(MPR) \ 146 $(MPR) \
147 $(SHELL32) \ 147 $(SHELL32) \
148 $(WINSPOOL) \ 148 $(WINSPOOL) \
149 $(OLE32) \
149 $(libc) 150 $(libc)
150 151
151# 152#
diff --git a/src/w32fns.c b/src/w32fns.c
index fd8df29affa..47ca9157623 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -52,6 +52,7 @@ Boston, MA 02110-1301, USA. */
52#include <shellapi.h> 52#include <shellapi.h>
53#include <ctype.h> 53#include <ctype.h>
54#include <winspool.h> 54#include <winspool.h>
55#include <objbase.h>
55 56
56#include <dlgs.h> 57#include <dlgs.h>
57#define FILE_NAME_TEXT_FIELD edt1 58#define FILE_NAME_TEXT_FIELD edt1
@@ -2514,6 +2515,13 @@ w32_msg_pump (deferred_msg * msg_buf)
2514 /* Produced by complete_deferred_msg; just ignore. */ 2515 /* Produced by complete_deferred_msg; just ignore. */
2515 break; 2516 break;
2516 case WM_EMACS_CREATEWINDOW: 2517 case WM_EMACS_CREATEWINDOW:
2518 /* Initialize COM for this window. Even though we don't use it,
2519 some third party shell extensions can cause it to be used in
2520 system dialogs, which causes a crash if it is not initialized.
2521 This is a known bug in Windows, which was fixed long ago, but
2522 the patch for XP is not publically available until XP SP3,
2523 and older versions will never be patched. */
2524 CoInitialize (NULL);
2517 w32_createwindow ((struct frame *) msg.wParam); 2525 w32_createwindow ((struct frame *) msg.wParam);
2518 if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0)) 2526 if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0))
2519 abort (); 2527 abort ();
@@ -3660,6 +3668,10 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
3660 my_post_msg (&wmsg, hwnd, msg, wParam, lParam); 3668 my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
3661 goto dflt; 3669 goto dflt;
3662 3670
3671 case WM_DESTROY:
3672 CoUninitialize ();
3673 return 0;
3674
3663 case WM_CLOSE: 3675 case WM_CLOSE:
3664 wmsg.dwModifiers = w32_get_modifiers (); 3676 wmsg.dwModifiers = w32_get_modifiers ();
3665 my_post_msg (&wmsg, hwnd, msg, wParam, lParam); 3677 my_post_msg (&wmsg, hwnd, msg, wParam, lParam);