changeset 81885:e0cd45299f77

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 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 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
author Miles Bader <miles@gnu.org>
date Sun, 15 Jul 2007 01:50:59 +0000
parents a7d43c06a61a (current diff) f0705c4da65a (diff)
children f18e4c78670d 0ece58f6e0aa a66921565bcb
files lisp/ChangeLog lisp/gnus/ChangeLog lispref/ChangeLog lispref/display.texi nt/ChangeLog src/ChangeLog
diffstat 18 files changed, 129 insertions(+), 62 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun Jul 15 01:34:15 2007 +0000
+++ b/lisp/ChangeLog	Sun Jul 15 01:50:59 2007 +0000
@@ -31,6 +31,15 @@
 
 	* subr.el (when, unless): Doc fix.
 
+2007-07-13  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* replace.el (match): Use yellow1 instead of yellow.
+
+	* progmodes/gdb-ui.el (breakpoint-enabled): Use red1 instead of
+	red. 
+
+	* pcvs-info.el (cvs-unknown): Likewise.
+
 2007-07-13  Eli Zaretskii  <eliz@gnu.org>
 
 	* makefile.w32-in (install-lisp-SH, install-lisp-CMD): New targets.
@@ -140,6 +149,11 @@
 
 	* menu-bar.el (vc-menu-map): New defalias.
 
+2007-07-10  Richard Stallman  <rms@gnu.org>
+
+	* emacs-lisp/lisp-mode.el (eval-defun):
+	Explain special handling of `defface'.
+
 2007-07-10  Jim Meyering  <jim@meyering.net>  (tiny change)
 
 	* emacs-lisp/copyright.el (copyright-current-gpl-version): Set to 3.
--- a/lisp/emacs-lisp/lisp-mode.el	Sun Jul 15 01:34:15 2007 +0000
+++ b/lisp/emacs-lisp/lisp-mode.el	Sun Jul 15 01:50:59 2007 +0000
@@ -730,7 +730,9 @@
 evaluating it this way resets the variable using its initial value
 expression even if the variable already has some other value.
 \(Normally `defvar' and `defcustom' do not alter the value if there
-already is one.)
+already is one.)  In an analogous way, evaluating a `defface'
+overrides any customizations of the face, so that it becomes
+defined exactly as the `defface' expression says.
 
 If `eval-expression-debug-on-error' is non-nil, which is the default,
 this command arranges for all errors to enter the debugger.
--- a/lisp/gnus/ChangeLog	Sun Jul 15 01:34:15 2007 +0000
+++ b/lisp/gnus/ChangeLog	Sun Jul 15 01:50:59 2007 +0000
@@ -3,6 +3,25 @@
 	* gnus-art.el (gnus-mime-delete-part): Don't go through article-edit
 	finishing actions if we did not edit the article.
 
+2007-07-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* 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.
+
+	* 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.
+
+	* nnrss.el (nnrss-compatible-encoding-alist): Inherit the value of
+	mm-charset-override-alist.
+
+	* 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-04  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* gnus-sum.el (gnus-summary-catchup): Don't recognize cached articles
--- a/lisp/gnus/gnus-srvr.el	Sun Jul 15 01:34:15 2007 +0000
+++ b/lisp/gnus/gnus-srvr.el	Sun Jul 15 01:50:59 2007 +0000
@@ -214,43 +214,12 @@
 ;; backward-compatibility alias
 (put 'gnus-server-offline-face 'face-alias 'gnus-server-offline)
 
-(defcustom gnus-server-agent-face 'gnus-server-agent
-  "Face name to use on AGENTIZED servers."
-  :version "22.1"
-  :group 'gnus-server-visual
-  :type 'face)
-
-(defcustom gnus-server-opened-face 'gnus-server-opened
-  "Face name to use on OPENED servers."
-  :version "22.1"
-  :group 'gnus-server-visual
-  :type 'face)
-
-(defcustom gnus-server-closed-face 'gnus-server-closed
-  "Face name to use on CLOSED servers."
-  :version "22.1"
-  :group 'gnus-server-visual
-  :type 'face)
-
-(defcustom gnus-server-denied-face 'gnus-server-denied
-  "Face name to use on DENIED servers."
-  :version "22.1"
-  :group 'gnus-server-visual
-  :type 'face)
-
-(defcustom gnus-server-offline-face 'gnus-server-offline
-  "Face name to use on OFFLINE servers."
-  :version "22.1"
-  :group 'gnus-server-visual
-  :type 'face)
-
 (defvar gnus-server-font-lock-keywords
-  (list
-   '("(\\(agent\\))" 1 gnus-server-agent-face)
-   '("(\\(opened\\))" 1 gnus-server-opened-face)
-   '("(\\(closed\\))" 1 gnus-server-closed-face)
-   '("(\\(offline\\))" 1 gnus-server-offline-face)
-   '("(\\(denied\\))" 1 gnus-server-denied-face)))
+  '(("(\\(agent\\))" 1 gnus-server-agent)
+    ("(\\(opened\\))" 1 gnus-server-opened)
+    ("(\\(closed\\))" 1 gnus-server-closed)
+    ("(\\(offline\\))" 1 gnus-server-offline)
+    ("(\\(denied\\))" 1 gnus-server-denied)))
 
 (defun gnus-server-mode ()
   "Major mode for listing and editing servers.
--- a/lisp/gnus/mm-util.el	Sun Jul 15 01:34:15 2007 +0000
+++ b/lisp/gnus/mm-util.el	Sun Jul 15 01:50:59 2007 +0000
@@ -36,11 +36,7 @@
        (if (fboundp (car elem))
 	   (defalias nfunc (car elem))
 	 (defalias nfunc (cdr elem)))))
-   '((decode-coding-string . (lambda (s a) s))
-     (encode-coding-string . (lambda (s a) s))
-     (encode-coding-region . ignore)
-     (coding-system-list . ignore)
-     (decode-coding-region . ignore)
+   '((coding-system-list . ignore)
      (char-int . identity)
      (coding-system-equal . equal)
      (annotationp . ignore)
@@ -97,6 +93,34 @@
      (multibyte-char-to-unibyte . identity))))
 
 (eval-and-compile
+  (if (featurep 'xemacs)
+      (if (featurep 'file-coding)
+	  ;; Don't modify string if CODING-SYSTEM is nil.
+	  (progn
+	    (defun mm-decode-coding-string (str coding-system)
+	      (if coding-system
+		  (decode-coding-string str coding-system)
+		str))
+	    (defun mm-encode-coding-string (str coding-system)
+	      (if coding-system
+		  (encode-coding-string str coding-system)
+		str))
+	    (defun mm-decode-coding-region (start end coding-system)
+	      (if coding-system
+		  (decode-coding-region start end coding-system)))
+	    (defun mm-encode-coding-region (start end coding-system)
+	      (if coding-system
+		  (encode-coding-region start end coding-system))))
+	(defun mm-decode-coding-string (str coding-system) str)
+	(defun mm-encode-coding-string (str coding-system) str)
+	(defalias 'mm-decode-coding-region 'ignore)
+	(defalias 'mm-encode-coding-region 'ignore))
+    (defalias 'mm-decode-coding-string 'decode-coding-string)
+    (defalias 'mm-encode-coding-string 'encode-coding-string)
+    (defalias 'mm-decode-coding-region 'decode-coding-region)
+    (defalias 'mm-encode-coding-region 'encode-coding-region)))
+
+(eval-and-compile
   (cond
    ((fboundp 'replace-in-string)
     (defalias 'mm-replace-in-string 'replace-in-string))
--- a/lisp/gnus/nnrss.el	Sun Jul 15 01:34:15 2007 +0000
+++ b/lisp/gnus/nnrss.el	Sun Jul 15 01:50:59 2007 +0000
@@ -85,7 +85,12 @@
 (defvar nnrss-file-coding-system mm-universal-coding-system
   "Coding system used when reading and writing files.")
 
-(defvar nnrss-compatible-encoding-alist '((iso-8859-1 . windows-1252))
+(defvar nnrss-compatible-encoding-alist
+  (delq nil (mapcar (lambda (elem)
+		      (if (and (mm-coding-system-p (car elem))
+			       (mm-coding-system-p (cdr elem)))
+			  elem))
+		    mm-charset-override-alist))
   "Alist of encodings and those supersets.
 The cdr of each element is used to decode data if it is available when
 the car is what the data specify as the encoding.  Or, the car is used
--- a/lisp/gnus/rfc2047.el	Sun Jul 15 01:34:15 2007 +0000
+++ b/lisp/gnus/rfc2047.el	Sun Jul 15 01:50:59 2007 +0000
@@ -55,7 +55,7 @@
 (require 'ietf-drums)
 ;; Fixme: Avoid this (used for mail-parse-charset) mm dependence on gnus.
 (require 'mail-prsvr)
-(require 'base64)
+(require 'rfc2045) ;; rfc2045-encode-string
 (autoload 'mm-body-7-or-8 "mm-bodies")
 
 (eval-and-compile
@@ -832,12 +832,9 @@
 
 \(defalias 'mail-header-encode-parameter 'rfc2047-encode-parameter)
 "
-  (let* ((rfc2047-encoding-type 'mime)
-	 (rfc2047-encode-max-chars nil)
-	 (string (rfc2047-encode-string value)))
-    (if (string-match (concat "[" ietf-drums-tspecials "]") string)
-	(format "%s=%S" param string)
-      (concat param "=" string))))
+  (let ((rfc2047-encoding-type 'mime)
+	(rfc2047-encode-max-chars nil))
+    (rfc2045-encode-string param (rfc2047-encode-string value))))
 
 ;;;
 ;;; Functions for decoding RFC2047 messages
--- a/lisp/pcvs-info.el	Sun Jul 15 01:34:15 2007 +0000
+++ b/lisp/pcvs-info.el	Sun Jul 15 01:50:59 2007 +0000
@@ -85,9 +85,9 @@
 
 (defface cvs-unknown
   '((((class color) (background dark))
-     (:foreground "red"))
+     (:foreground "red1"))
     (((class color) (background light))
-     (:foreground "red"))
+     (:foreground "red1"))
     (t (:slant italic)))
   "PCL-CVS face used to highlight unknown file status."
   :group 'pcl-cvs)
--- a/lisp/progmodes/gdb-ui.el	Sun Jul 15 01:34:15 2007 +0000
+++ b/lisp/progmodes/gdb-ui.el	Sun Jul 15 01:50:59 2007 +0000
@@ -1765,7 +1765,7 @@
 
 (defface breakpoint-enabled
   '((t
-     :foreground "red"
+     :foreground "red1"
      :weight bold))
   "Face for enabled breakpoint icon in fringe."
   :group 'gud)
--- a/lisp/replace.el	Sun Jul 15 01:34:15 2007 +0000
+++ b/lisp/replace.el	Sun Jul 15 01:50:59 2007 +0000
@@ -860,7 +860,7 @@
 
 (defface match
   '((((class color) (min-colors 88) (background light))
-     :background "yellow")
+     :background "yellow1")
     (((class color) (min-colors 88) (background dark))
      :background "RoyalBlue3")
     (((class color) (min-colors 8) (background light))
--- a/lispref/ChangeLog	Sun Jul 15 01:34:15 2007 +0000
+++ b/lispref/ChangeLog	Sun Jul 15 01:50:59 2007 +0000
@@ -2,6 +2,10 @@
 
 	* control.texi (Handling Errors): Document `debug' in handler list.
 
+2007-07-10  Richard Stallman  <rms@gnu.org>
+
+	* display.texi (Defining Faces): Explain C-M-x feature for defface.
+
 2007-07-09  Richard Stallman  <rms@gnu.org>
 
 	* files.texi (Magic File Names): Rewrite previous change.
--- a/lispref/display.texi	Sun Jul 15 01:34:15 2007 +0000
+++ b/lispref/display.texi	Sun Jul 15 01:50:59 2007 +0000
@@ -1760,6 +1760,11 @@
 @var{spec}, then uses any customizations that were read from the
 init file (@pxref{Init File}) to override that specification.
 
+When you evaluate a @code{defcustom} form with @kbd{C-M-x} in Emacs
+Lisp mode (@code{eval-defun}), a special feature of @code{eval-defun}
+overrides any customizations of the face.  This way, the face reflects
+exactly what the @code{defcustom} says.
+
 The purpose of @var{spec} is to specify how the face should appear on
 different kinds of terminals.  It should be an alist whose elements
 have the form @code{(@var{display} @var{atts})}.  Each element's
--- a/nt/ChangeLog	Sun Jul 15 01:34:15 2007 +0000
+++ b/nt/ChangeLog	Sun Jul 15 01:50:59 2007 +0000
@@ -3,6 +3,12 @@
 	* inc/sys/socket.h: Include winsock2.h and ws2tcpip.h instead
 	of winsock.h.
 
+2007-07-11  Jason Rumney  <jasonr@gnu.org>
+
+	* gmake.defs (OLE32): New library to link.
+
+	* nmake.defs (OLE32): Likewise.
+
 2007-06-25  Jason Rumney  <jasonr@gnu.org>
 
 	* cmdproxy.c (main): Set console codepages to "ANSI".
--- a/nt/gmake.defs	Sun Jul 15 01:34:15 2007 +0000
+++ b/nt/gmake.defs	Sun Jul 15 01:50:59 2007 +0000
@@ -176,8 +176,9 @@
 SHELL32		= -lshell32
 USER32		= -luser32
 WSOCK32		= -lwsock32
-WINMM     = -lwinmm
+WINMM		= -lwinmm
 WINSPOOL	= -lwinspool
+OLE32		= -lole32
 
 ifdef NOOPT
 DEBUG_CFLAGS	= -DEMACSDEBUG
--- a/nt/nmake.defs	Sun Jul 15 01:34:15 2007 +0000
+++ b/nt/nmake.defs	Sun Jul 15 01:50:59 2007 +0000
@@ -123,8 +123,9 @@
 SHELL32		= shell32.lib
 USER32		= user32.lib
 WSOCK32		= wsock32.lib
-WINMM     = winmm.lib
+WINMM		= winmm.lib
 WINSPOOL	= winspool.lib
+OLE32		= ole32.lib
 
 !ifdef NOOPT
 DEBUG_CFLAGS	= -DEMACSDEBUG
--- a/src/ChangeLog	Sun Jul 15 01:34:15 2007 +0000
+++ b/src/ChangeLog	Sun Jul 15 01:50:59 2007 +0000
@@ -36,6 +36,13 @@
 
 	* term.c: Include unistd.h only if HAVE_UNISTD_H.
 
+2007-07-11  Jason Rumney  <jasonr@gnu.org>
+
+	* makefile.w32-in (LIBS): Include OLE32.
+
+	* w32fns.c (w32_msg_pump) <WM_EMACS_CREATEWINDOW>: Initialize COM.
+	(w32_msg_pump) <WM_DESTROY>: Uninitialize COM.
+
 2007-07-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* lisp.h (struct Lisp_Hash_Table): Turn next_weak into a bare pointer.
@@ -1206,13 +1213,13 @@
 	when popup menu finishes.
 
 	* w32fns.c (menubar_in_use): New flag.
-	(w32_wnd_proc) [WM_INITMENU, WM_EXITMENULOOP, WM_TIMER, WM_COMMAND]:
+	(w32_wnd_proc) <WM_INITMENU, WM_EXITMENULOOP, WM_TIMER, WM_COMMAND>:
 	Use it.
 
 	* w32menu.c (Fx_popup_menu): Don't free menu strings here.
 	(w32_menu_show): Do it here instead.
 
-	* w32fns.c (w32_wnd_proc) [WM_INITMENU]: Set menubar_active frame
+	* w32fns.c (w32_wnd_proc) <WM_INITMENU>: Set menubar_active frame
 	parameter.
 
 	* w32menu.c (current_popup_menu): Make available globally.
@@ -1220,7 +1227,7 @@
 	menu event into the keyboard buffer.  Remove menu_command_in_progress.
 
 	* w32fns.c (current_popup_menu): Use from w32menu.c.
-	(w32_wnd_proc) [WM_EXITMENULOOP, WM_TIMER]: Use menubar_active
+	(w32_wnd_proc) <WM_EXITMENULOOP, WM_TIMER>: Use menubar_active
 	and current_popup_menu to determine whether a menubar menu has
 	been cancelled.
 
@@ -10331,7 +10338,7 @@
 	* w32term.h (x_output): Add focus_state.
 
 	* w32term.c (x_focus_changed, w32_detect_focus_change): New functions.
-	(w32_read_socket) [WM_SETFOCUS]: Call w32_detect_focus_change.
+	(w32_read_socket) <WM_SETFOCUS>: Call w32_detect_focus_change.
 
 2005-03-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 
@@ -13624,7 +13631,7 @@
 
 	* w32term.h (AppendMenuW_Proc): Move declaration from w32menu.c.
 
-	* w32fns.c (w32_wnd_proc) [WM_MEASUREITEM, WM_DRAWITEM]:
+	* w32fns.c (w32_wnd_proc) <WM_MEASUREITEM, WM_DRAWITEM>:
 	Handle Unicode menu titles.
 
 2004-09-07  Kim F. Storm  <storm@cua.dk>
--- a/src/makefile.w32-in	Sun Jul 15 01:34:15 2007 +0000
+++ b/src/makefile.w32-in	Sun Jul 15 01:50:59 2007 +0000
@@ -138,7 +138,7 @@
 	$(TLIB1)	\
 	$(TLIBW32)	\
 	$(TLASTLIB)	\
-	$(WINMM)    \
+	$(WINMM)	\
 	$(ADVAPI32)	\
 	$(GDI32)	\
 	$(COMDLG32)	\
@@ -146,6 +146,7 @@
 	$(MPR)		\
 	$(SHELL32)	\
 	$(WINSPOOL)	\
+	$(OLE32)	\
 	$(libc)
 
 #
--- a/src/w32fns.c	Sun Jul 15 01:34:15 2007 +0000
+++ b/src/w32fns.c	Sun Jul 15 01:50:59 2007 +0000
@@ -52,6 +52,7 @@
 #include <shellapi.h>
 #include <ctype.h>
 #include <winspool.h>
+#include <objbase.h>
 
 #include <dlgs.h>
 #define FILE_NAME_TEXT_FIELD edt1
@@ -2514,6 +2515,13 @@
 	      /* Produced by complete_deferred_msg; just ignore.  */
 	      break;
 	    case WM_EMACS_CREATEWINDOW:
+              /* Initialize COM for this window. Even though we don't use it,
+                 some third party shell extensions can cause it to be used in
+                 system dialogs, which causes a crash if it is not initialized.
+                 This is a known bug in Windows, which was fixed long ago, but
+                 the patch for XP is not publically available until XP SP3,
+                 and older versions will never be patched.  */
+              CoInitialize (NULL);
 	      w32_createwindow ((struct frame *) msg.wParam);
 	      if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0))
 		abort ();
@@ -3660,6 +3668,10 @@
       my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
       goto dflt;
 
+    case WM_DESTROY:
+      CoUninitialize ();
+      return 0;
+
     case WM_CLOSE:
       wmsg.dwModifiers = w32_get_modifiers ();
       my_post_msg (&wmsg, hwnd, msg, wParam, lParam);