changeset 82073:38a46faaf8c1

Merge from emacs--rel--22 Patches applied: * emacs--rel--22 (patch 59-69) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 237-238) - Update from CVS 2007-07-23 Stefan Monnier <monnier@iro.umontreal.ca> * lisp/ses.el (ses-cleanup): Prevent Emacs from spuriously checking if the underlying file is uptodate. 2007-07-17 Dan Nicolaescu <dann@ics.uci.edu> * lisp/vc.el: Add more info about the vc-registered function. 2007-07-15 Richard Stallman <rms@gnu.org> * lisp/kmacro.el (kmacro-bind-to-key): Avoid comparisons on function keys. * lisp/tutorial.el (tutorial--find-changed-keys): Handle C-x specially like ESC. 2007-07-15 Aaron Hawley <aaronh@garden.org> * lisp/tar-mode.el (tar-get-descriptor): No error for zero-length file. 2007-07-21 Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/mm-uu.el (mm-uu-type-alist): Refer to mm-uu-configure-list in doc string. 2007-07-16 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-srvr.el (gnus-server-font-lock-keywords): Quote faces. 2007-07-16 Richard Stallman <rms@gnu.org> * lispref/display.texi (Defining Faces): Fix previous change. 2007-07-20 Eli Zaretskii <eliz@gnu.org> * src/w32proc.c (IMAGE_NT_OPTIONAL_HDR32_MAGIC, IMAGE_OPTIONAL_HEADER32): Define if not defined. 2007-07-18 Jason Rumney <jasonr@gnu.org> * src/w32proc.c (w32_executable_type): Handle 64 bit executables. Revision: emacs@sv.gnu.org/emacs--devo--0--patch-823
author Miles Bader <miles@gnu.org>
date Tue, 24 Jul 2007 01:21:32 +0000
parents 7894e62e5b10 (current diff) 364c3b96da93 (diff)
children 9c5456eec9ea fd5b4a865d1d 492971a3f31f
files leim/ChangeLog lisp/ChangeLog lisp/add-log.el lisp/gnus/ChangeLog lisp/kmacro.el lisp/tar-mode.el lisp/tutorial.el lisp/vc.el lispref/ChangeLog lispref/display.texi src/ChangeLog src/data.c
diffstat 16 files changed, 137 insertions(+), 48 deletions(-) [+]
line wrap: on
line diff
--- a/leim/ChangeLog	Mon Jul 23 21:32:32 2007 +0000
+++ b/leim/ChangeLog	Tue Jul 24 01:21:32 2007 +0000
@@ -13,7 +13,7 @@
 
 	* MISC-DIC/pinyin.map, MISC-DIC/ziranma.cin: Add copyright and
 	license notices.
-	
+
 2007-01-24  Kenichi Handa  <handa@m17n.org>
 
 	* MISC-DIC/README: New file.
--- a/lisp/ChangeLog	Mon Jul 23 21:32:32 2007 +0000
+++ b/lisp/ChangeLog	Tue Jul 24 01:21:32 2007 +0000
@@ -1,3 +1,8 @@
+2007-07-23  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* ses.el (ses-cleanup): Prevent Emacs from spuriously checking if the
+	underlying file is uptodate.
+
 2007-07-23   Christopher J. Madsen  <cjm@cjmweb.net>
 
 	* replace.el (perform-replace): Use isearch-no-upper-case-p.
@@ -364,6 +369,10 @@
 	avoid incorrect kmacro-ring-empty-p messages.
 	Reported by Michael Schierl <schierlm@gmx.de>.
 
+2007-07-17  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* vc.el: Add more info about the vc-registered function.
+
 2007-07-17  Michael Albinus  <michael.albinus@gmx.de>
 
 	* files.el (file-remote-p): Introduce optional parameter
@@ -469,6 +478,17 @@
 	* bookmark.el (bookmark-show-all-annotations):
 	Make sure each inserted annotation ends with newline.
 
+2007-07-15  Richard Stallman  <rms@gnu.org>
+
+	* kmacro.el (kmacro-bind-to-key): Avoid comparisons on function keys.
+
+	* tutorial.el (tutorial--find-changed-keys):
+	Handle C-x specially like ESC.
+
+2007-07-15  Aaron Hawley  <aaronh@garden.org>
+
+	* tar-mode.el (tar-get-descriptor): No error for zero-length file.
+
 2007-07-15  Juri Linkov  <juri@jurta.org>
 
 	* delsel.el (delete-selection-pre-hook):
--- a/lisp/add-log.el	Mon Jul 23 21:32:32 2007 +0000
+++ b/lisp/add-log.el	Tue Jul 24 01:21:32 2007 +0000
@@ -519,15 +519,13 @@
           (mailing-address (or add-log-mailing-address user-mail-address)))
 
       (when whoami
-        (setq full-name (read-string "Full name: "
-                                     (or add-log-full-name (user-full-name))))
+        (setq full-name (read-string "Full name: " full-name))
         ;; Note that some sites have room and phone number fields in
         ;; full name which look silly when inserted.  Rather than do
         ;; anything about that here, let user give prefix argument so that
         ;; s/he can edit the full name field in prompter if s/he wants.
         (setq mailing-address
-              (read-string "Mailing address: "
-                           (or add-log-mailing-address user-mail-address))))
+	      (read-string "Mailing address: " mailing-address)))
 
       ;; If file starts with a copyright and permission notice, skip them.
       ;; Assume they end at first blank line.
--- a/lisp/gnus/ChangeLog	Mon Jul 23 21:32:32 2007 +0000
+++ b/lisp/gnus/ChangeLog	Tue Jul 24 01:21:32 2007 +0000
@@ -1,3 +1,12 @@
+2007-07-21  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* mm-uu.el (mm-uu-type-alist): Refer to mm-uu-configure-list in doc
+	string.
+
+2007-07-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-srvr.el (gnus-server-font-lock-keywords): Quote faces.
+
 2007-07-14  David Kastrup  <dak@gnu.org>
 
 	* gnus-art.el (gnus-mime-delete-part): Don't go through article-edit
--- a/lisp/gnus/gnus-srvr.el	Mon Jul 23 21:32:32 2007 +0000
+++ b/lisp/gnus/gnus-srvr.el	Tue Jul 24 01:21:32 2007 +0000
@@ -215,11 +215,11 @@
 (put 'gnus-server-offline-face 'face-alias 'gnus-server-offline)
 
 (defvar gnus-server-font-lock-keywords
-  '(("(\\(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)))
+  '(("(\\(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-uu.el	Mon Jul 23 21:32:32 2007 +0000
+++ b/lisp/gnus/mm-uu.el	Tue Jul 24 01:21:32 2007 +0000
@@ -162,7 +162,10 @@
 Each element consist of the following entries: label,
 start-regexp, end-regexp, extract-function, test-function.
 
-After modifying this list you must run \\[mm-uu-configure].")
+After modifying this list you must run \\[mm-uu-configure].
+
+You can disable elements from this list by customizing
+`mm-uu-configure-list'.")
 
 (defcustom mm-uu-configure-list '((shar . disabled))
   "A list of mm-uu configuration.
--- a/lisp/kmacro.el	Mon Jul 23 21:32:32 2007 +0000
+++ b/lisp/kmacro.el	Tue Jul 24 01:21:32 2007 +0000
@@ -798,8 +798,9 @@
 	  ok cmd)
       (when (= (length key-seq) 1)
 	(let ((ch (aref key-seq 0)))
-	  (if (or (and (>= ch ?0) (<= ch ?9))
-		  (and (>= ch ?A) (<= ch ?Z)))
+	  (if (and (integerp ch)
+		   (or (and (>= ch ?0) (<= ch ?9))
+		       (and (>= ch ?A) (<= ch ?Z))))
 	      (setq key-seq (concat "\C-x\C-k" key-seq)
 		    ok t))))
       (when (and (not (equal key-seq ""))
--- a/lisp/ses.el	Mon Jul 23 21:32:32 2007 +0000
+++ b/lisp/ses.el	Tue Jul 24 01:21:32 2007 +0000
@@ -1470,17 +1470,22 @@
   (overlay-put ses--curcell-overlay 'face 'underline))
 
 (defun ses-cleanup ()
-  "Cleanup when changing a buffer from SES mode to something else.  Delete
-overlay, remove special text properties."
+  "Cleanup when changing a buffer from SES mode to something else.
+Delete overlays, remove special text properties."
   (widen)
   (let ((inhibit-read-only t)
+        ;; When reverting, hide the buffer name, otherwise Emacs will ask
+        ;; the user "the file is modified, do you really want to make
+        ;; modifications to this buffer", where the "modifications" refer to
+        ;; the irrelevant set-text-properties below.
+        (buffer-file-name nil)
 	(was-modified      (buffer-modified-p)))
     ;;Delete read-only, keymap, and intangible properties
     (set-text-properties (point-min) (point-max) nil)
     ;;Delete overlay
     (mapc 'delete-overlay (overlays-in (point-min) (point-max)))
     (unless was-modified
-      (set-buffer-modified-p nil))))
+      (restore-buffer-modified-p nil))))
 
 ;;;###autoload
 (defun ses-mode ()
--- a/lisp/tar-mode.el	Mon Jul 23 21:32:32 2007 +0000
+++ b/lisp/tar-mode.el	Tue Jul 24 01:21:32 2007 +0000
@@ -667,7 +667,7 @@
 		     ((eq link-p 38) "a volume header")
 		     ((eq link-p 55) "an extended pax header")
 		     (t "a link"))))
-    (if (zerop size) (error "This is a zero-length file"))
+    (if (zerop size) (message "This is a zero-length file"))
     descriptor))
 
 (defun tar-mouse-extract (event)
--- a/lisp/tutorial.el	Mon Jul 23 21:32:32 2007 +0000
+++ b/lisp/tutorial.el	Tue Jul 24 01:21:32 2007 +0000
@@ -431,11 +431,17 @@
 	       (def-fun (nth 0 kdf))
 	       (def-fun-txt (format "%s" def-fun))
 	       (rem-fun (command-remapping def-fun))
+	       ;; Handle prefix definitions specially
+	       ;; so that a mode that rebinds some subcommands
+	       ;; won't make it appear that the whole prefix is gone.
 	       (key-fun (if (eq def-fun 'ESC-prefix)
 			    (lookup-key global-map [27])
-			  (key-binding key)))
+			  (if (eq def-fun 'Control-X-prefix)
+			      (lookup-key global-map [24])
+			    (key-binding key))))
 	       (where (where-is-internal (if rem-fun rem-fun def-fun)))
 	       cwhere)
+
 	  (if where
 	      (progn
 		(setq cwhere (car where)
--- a/lisp/vc.el	Mon Jul 23 21:32:32 2007 +0000
+++ b/lisp/vc.el	Tue Jul 24 01:21:32 2007 +0000
@@ -113,8 +113,12 @@
 ;; * registered (file)
 ;;
 ;;   Return non-nil if FILE is registered in this backend.  Both this
-;;   function as well as `state' should be careful to fail gracefully in the
-;;   event that the backend executable is absent.
+;;   function as well as `state' should be careful to fail gracefully
+;;   in the event that the backend executable is absent.  It is
+;;   preferable that this function's body is autoloaded, that way only
+;;   calling vc-registered does not cause the backend to be loaded
+;;   (all the vc-FOO-registered functions are called to try to find
+;;   the controlling backend for FILE.
 ;;
 ;; * state (file)
 ;;
--- a/lispref/ChangeLog	Mon Jul 23 21:32:32 2007 +0000
+++ b/lispref/ChangeLog	Tue Jul 24 01:21:32 2007 +0000
@@ -3,6 +3,10 @@
 	* files.texi (Magic File Names): Introduce optional parameter
 	IDENTIFICATION for `file-remote-p'.
 
+2007-07-16  Richard Stallman  <rms@gnu.org>
+
+	* display.texi (Defining Faces): Fix previous change.
+
 2007-07-14  Richard Stallman  <rms@gnu.org>
 
 	* control.texi (Handling Errors): Document `debug' in handler list.
--- a/lispref/display.texi	Mon Jul 23 21:32:32 2007 +0000
+++ b/lispref/display.texi	Tue Jul 24 01:21:32 2007 +0000
@@ -1760,10 +1760,10 @@
 @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
+When you evaluate a @code{defface} 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.
+exactly what the @code{defface} 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
--- a/src/ChangeLog	Mon Jul 23 21:32:32 2007 +0000
+++ b/src/ChangeLog	Tue Jul 24 01:21:32 2007 +0000
@@ -5,6 +5,15 @@
 
 	* buffer.c (mode-line-format): Describe above case in doc string.
 
+2007-07-20  Eli Zaretskii  <eliz@gnu.org>
+
+	* w32proc.c (IMAGE_NT_OPTIONAL_HDR32_MAGIC, IMAGE_OPTIONAL_HEADER32):
+	Define if not defined.
+
+2007-07-18  Jason Rumney  <jasonr@gnu.org>
+
+	* w32proc.c (w32_executable_type): Handle 64 bit executables.
+
 2007-07-18  Richard Stallman  <rms@gnu.org>
 
 	* data.c (Fsetq_default): Doc fix.
--- a/src/data.c	Mon Jul 23 21:32:32 2007 +0000
+++ b/src/data.c	Tue Jul 24 01:21:32 2007 +0000
@@ -2349,7 +2349,9 @@
   return Qnil;
 }
 
-/* Convert between long values and pairs of Lisp integers.  */
+/* Convert between long values and pairs of Lisp integers.
+   Note that long_to_cons returns a single Lisp integer
+   when the value fits in one.  */
 
 Lisp_Object
 long_to_cons (i)
--- a/src/w32proc.c	Mon Jul 23 21:32:32 2007 +0000
+++ b/src/w32proc.c	Tue Jul 24 01:21:32 2007 +0000
@@ -590,6 +590,13 @@
   return pid;
 }
 
+/* Old versions of w32api headers don't have separate 32-bit and
+   64-bit defines, but the one they have matches the 32-bit variety.  */
+#ifndef IMAGE_NT_OPTIONAL_HDR32_MAGIC
+# define IMAGE_NT_OPTIONAL_HDR32_MAGIC IMAGE_NT_OPTIONAL_HDR_MAGIC
+# define IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER
+#endif
+
 void
 w32_executable_type (char * filename, int * is_dos_app, int * is_cygnus_app, int * is_gui_app)
 {
@@ -650,33 +657,54 @@
   	}
       else if (nt_header->Signature == IMAGE_NT_SIGNATURE)
   	{
-	  /* Look for cygwin.dll in DLL import list. */
-	  IMAGE_DATA_DIRECTORY import_dir =
-	    nt_header->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT];
-	  IMAGE_IMPORT_DESCRIPTOR * imports;
-	  IMAGE_SECTION_HEADER * section;
-
-	  section = rva_to_section (import_dir.VirtualAddress, nt_header);
-	  imports = RVA_TO_PTR (import_dir.VirtualAddress, section, executable);
-
-	  for ( ; imports->Name; imports++)
-  	    {
-	      char * dllname = RVA_TO_PTR (imports->Name, section, executable);
+          IMAGE_DATA_DIRECTORY *data_dir = NULL;
+          if (nt_header->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC)
+            {
+              /* Ensure we are using the 32 bit structure.  */
+              IMAGE_OPTIONAL_HEADER32 *opt
+                = (IMAGE_OPTIONAL_HEADER32*) &(nt_header->OptionalHeader);
+              data_dir = opt->DataDirectory;
+              *is_gui_app = (opt->Subsystem == IMAGE_SUBSYSTEM_WINDOWS_GUI);
+            }
+          /* MingW 3.12 has the required 64 bit structs, but in case older
+             versions don't, only check 64 bit exes if we know how.  */
+#ifdef IMAGE_NT_OPTIONAL_HDR64_MAGIC
+          else if (nt_header->OptionalHeader.Magic
+                   == IMAGE_NT_OPTIONAL_HDR64_MAGIC)
+            {
+              IMAGE_OPTIONAL_HEADER64 *opt
+                = (IMAGE_OPTIONAL_HEADER64*) &(nt_header->OptionalHeader);
+              data_dir = opt->DataDirectory;
+              *is_gui_app = (opt->Subsystem == IMAGE_SUBSYSTEM_WINDOWS_GUI);
+            }
+#endif
+          if (data_dir)
+            {
+              /* Look for cygwin.dll in DLL import list. */
+              IMAGE_DATA_DIRECTORY import_dir =
+                data_dir[IMAGE_DIRECTORY_ENTRY_IMPORT];
+              IMAGE_IMPORT_DESCRIPTOR * imports;
+              IMAGE_SECTION_HEADER * section;
 
-	      /* The exact name of the cygwin dll has changed with
-	         various releases, but hopefully this will be reasonably
-	         future proof.  */
-	      if (strncmp (dllname, "cygwin", 6) == 0)
-		{
-		  *is_cygnus_app = TRUE;
-		  break;
-		}
-  	    }
+              section = rva_to_section (import_dir.VirtualAddress, nt_header);
+              imports = RVA_TO_PTR (import_dir.VirtualAddress, section,
+                                    executable);
 
-	  /* Check whether app is marked as a console or windowed (aka
-             GUI) app.  Accept Posix and OS2 subsytem apps as console
-             apps.  */
-	  *is_gui_app = (nt_header->OptionalHeader.Subsystem == IMAGE_SUBSYSTEM_WINDOWS_GUI);
+              for ( ; imports->Name; imports++)
+                {
+                  char * dllname = RVA_TO_PTR (imports->Name, section,
+                                               executable);
+                  
+                  /* The exact name of the cygwin dll has changed with
+                     various releases, but hopefully this will be reasonably
+                     future proof.  */
+                  if (strncmp (dllname, "cygwin", 6) == 0)
+                    {
+                      *is_cygnus_app = TRUE;
+                      break;
+                    }
+                }
+            }
   	}
     }