changeset 988:5df795348f45

[xemacs-hg @ 2002-09-01 22:13:52 by andyp] apply various 21.4 patches
author andyp
date Sun, 01 Sep 2002 22:14:58 +0000
parents 7ffc86e44409
children 97b958758756
files CHANGES-msw lisp/ChangeLog lisp/about.el lisp/custom.el lisp/files.el src/ChangeLog src/fileio.c src/realpath.c
diffstat 8 files changed, 102 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES-msw	Sun Sep 01 17:54:58 2002 +0000
+++ b/CHANGES-msw	Sun Sep 01 22:14:58 2002 +0000
@@ -10,6 +10,11 @@
 
 See the file 'CHANGES-release' for a full list of mainline changes.
 
+to XEmacs 21.4.9 "Informed Management (Windows)"
+
+  - Fix layout of widgets so that the search dialog works.
+  - Fix focus capture of widgets under X.
+
 to XEmacs 21.4.8 "Honest Recruiter (Windows)"
 
   - All changes from 21.4.6 and 21.4.7.
@@ -19,6 +24,11 @@
   - Fix printer metrics on windows 95 from Jonathan Harris.
   - Fix layout of widgets so that the search dialog works.
   - Fix focus capture of widgets under X.
+  - Buffers tab doc fixes from John Palmieri.
+  - Sync with FSF custom :set-after behavior.
+  - Virtual window manager freeze fix from Rick Rankin.
+  - Fix various printing problems.
+  - Enable windows printing on cygwin.
 
 to XEmacs 21.4.7 "Economic Science (Windows)"
 
@@ -35,7 +45,7 @@
   - Fixed some printing problems.
   - Netinstaller updated to support kit revisions.
   - Fixed customize popup menus.
-  - Fixed problems wiht too many dialog popups.
+  - Fixed problems with too many dialog popups.
   - Netinstaller fixed to correctly upgrade shortcuts when upgrading
     core XEmacs.
   - Fix for virtual window managers from Adrian Aichner.
--- a/lisp/ChangeLog	Sun Sep 01 17:54:58 2002 +0000
+++ b/lisp/ChangeLog	Sun Sep 01 22:14:58 2002 +0000
@@ -1,3 +1,20 @@
+2002-07-12  Andy Piper  <andy@xemacs.org>
+
+	* custom.el (custom-theme-set-variables): remove bogus
+	arguments. Use custom-set-default to set defaults.
+	(custom-set-variables): update doc.
+	(custom-local-buffer): new, synced from FSF.
+	(custom-set-default): ditto.
+	(defcustom): update doc.
+
+2002-07-23  Andy Piper  <andy@xemacs.org>
+
+	* about.el (about-personal-info): update me.
+
+2002-08-28  Andy Piper  <andy@xemacs.org>
+
+	* files.el (revert-buffer): propagate revert-without-query-status.
+
 2002-08-31  Seiichi Ikiuo  <ikiuo@polyphony.co.jp>
 
 	* code-init.el (reset-coding-categories-to-default): Add new
--- a/lisp/about.el	Sun Sep 01 17:54:58 2002 +0000
+++ b/lisp/about.el	Sun Sep 01 22:14:58 2002 +0000
@@ -210,7 +210,7 @@
     (marcpa     . "http://www.positron911.com/products/power.htm")
     (ograf      . "http://www.fga.de/~ograf/")
     (pez        . "http://cbs.sportsline.com/")
-    (piper      . "http://www.xemacs.freeserve.co.uk/")
+    (piper      . "http://www.andypiper.com/")
     (rossini    . "http://faculty.washington.edu/rossini/")
     (stigb      . "http://www.tihlde.hist.no/~stigb/")
     (vin        . "http://www.upa.org/")
@@ -1243,9 +1243,10 @@
      (widget-insert "\
 My home page is here:\n")
      (about-url-link 'piper nil "Visit andy's home page")
-     (widget-insert "\n
-Andy has recently rejoined the XEmacs team to help port XEmacs to
-MS Windows operating systems.\n"))
+     (widget-insert "\n Andy has been active in the XEmacs team for a
+number of years, helping port XEmacs to MS Windows operating
+systems. He is also the current MS Windows release manager and
+maintains the MS Windows netinstaller.\n"))
     (pittman
      (widget-insert
       "\
--- a/lisp/custom.el	Sun Sep 01 17:54:58 2002 +0000
+++ b/lisp/custom.el	Sun Sep 01 22:14:58 2002 +0000
@@ -186,7 +186,7 @@
         `custom-initialize-set'
 :set    VALUE should be a function to set the value of the symbol.
         It takes two arguments, the symbol to set and the value to
-        give it.  The default is `set-default'.
+        give it.  The default is `custom-set-default'.
 :get    VALUE should be a function to extract the value of symbol.
         The function takes one argument, a symbol, and should return
         the current value for that symbol.  The default is
@@ -472,10 +472,18 @@
         (setq old (cdr old)))
     (put symbol prop (cons (list theme mode value) old))))
 
+(defvar custom-local-buffer nil
+  "Non-nil, in a Customization buffer, means customize a specific buffer.
+If this variable is non-nil, it should be a buffer,
+and it means customize the local bindings of that buffer.
+This variable is a permanent local, and it normally has a local binding
+in every Customization buffer.")
+(put 'custom-local-buffer 'permanent-local t)
+
 (defun custom-set-variables (&rest args)
   "Initialize variables according to user preferences.
 The settings are registered as theme `user'.
-The arguments should be a list where each entry has the form:
+Each argument should be a list of the form:
 
   (SYMBOL VALUE [NOW [REQUEST [COMMENT]]])
 
@@ -514,7 +522,7 @@
 			;; values.
 			(t (nth 3 a2)))))))
   (let ((immediate (get theme 'theme-immediate)))
-    (while args * etc/custom/example-themes/example-theme.el:
+    (while args
       (let ((entry (car args)))
         (if (listp entry)
             (let* ((symbol (nth 0 entry))
@@ -522,10 +530,13 @@
                    (now (nth 2 entry))
                    (requests (nth 3 entry))
                    (comment (nth 4 entry))
-                   (set (or (get symbol 'custom-set) 'set-default)))
+                   (set (or (get symbol 'custom-set) 'custom-set-default)))
               (put symbol 'saved-value (list value))
               (custom-push-theme 'theme-value symbol theme 'set value)
               (put symbol 'saved-variable-comment comment)
+	  ;; Allow for errors in the case where the setter has
+	  ;; changed between versions, say, but let the user know.
+	      (condition-case data
               (cond ((or now immediate)
                      ;; Rogue variable, set it now.
                      (put symbol 'force-value (if now 'rogue 'immediate))
@@ -533,6 +544,8 @@
                     ((default-boundp symbol)
                      ;; Something already set this, overwrite it.
                      (funcall set symbol (eval value))))
+	      (error 
+	       (message "Error setting %s: %s" symbol data)))
               (and (or now (default-boundp symbol))
                  (put symbol 'variable-comment comment))
               (when requests
@@ -688,6 +701,15 @@
 The ARGS are as in `custom-theme-reset-variables'."
     (apply #'custom-theme-reset-variables 'user args))
 
+(defun custom-set-default (variable value)
+  "Default :set function for a customizable variable.
+Normally, this sets the default value of VARIABLE to VALUE,
+but if `custom-local-buffer' is non-nil,
+this sets the local binding in that buffer instead."
+  (if custom-local-buffer
+      (with-current-buffer custom-local-buffer
+	(set variable value))
+    (set-default variable value)))
 
 ;;; The End.
 
--- a/lisp/files.el	Sun Sep 01 17:54:58 2002 +0000
+++ b/lisp/files.el	Sun Sep 01 22:14:58 2002 +0000
@@ -2829,6 +2829,7 @@
       (funcall revert-buffer-function ignore-auto noconfirm)
     (let* ((opoint (point))
 	   (newbuf nil)
+	   (found nil)
 	   (delay-prompt nil)
 	   (auto-save-p (and (not ignore-auto)
                              (recent-auto-save-p)
@@ -2843,10 +2844,9 @@
 	     (error "Buffer does not seem to be associated with any file"))
 	    ((or noconfirm
 		 (and (not (buffer-modified-p))
-		      (let (found)
-			(dolist (rx revert-without-query found)
-			  (when (string-match rx file-name)
-			    (setq found t)))))
+		      (dolist (rx revert-without-query found)
+			(when (string-match rx file-name)
+			  (setq found t))))
 		 ;; If we might perform an optimized revert then we
 		 ;; want to delay prompting in case we don't need to
 		 ;; do it at all
@@ -2862,7 +2862,7 @@
 			(buffer-modified-p)
 			(and (setq newbuf (revert-buffer-internal
 					   file-name))
-			     (or noconfirm
+			     (or noconfirm found
 				 (and delay-prompt
 				      (yes-or-no-p 
 				       (format "Revert buffer from file %s? "
--- a/src/ChangeLog	Sun Sep 01 17:54:58 2002 +0000
+++ b/src/ChangeLog	Sun Sep 01 22:14:58 2002 +0000
@@ -1,3 +1,11 @@
+2002-08-19  Andy Piper  <andy@xemacs.org>
+
+	* fileio.c (Ffile_truename): on cygwin using win32 normalize to
+	win32 format.
+
+	* realpath.c (xrealpath): normalize drive spec also so that dir
+	sep chars are not mixed on cygwin.
+
 2002-09-01  Mike Alexander  <mta@arbortext.com>
 
 	* event-msw.c (winsock_closer): Use closesocket, not CloseHandle
--- a/src/fileio.c	Sun Sep 01 17:54:58 2002 +0000
+++ b/src/fileio.c	Sun Sep 01 22:14:58 2002 +0000
@@ -1348,6 +1348,21 @@
     Ibyte *p;
 
     LISP_STRING_TO_ALLOCA (expanded_name, path);
+
+#if defined(WIN32_FILENAMES) && defined(CYGWIN)
+    /* When using win32 filenames in cygwin we want file-truename to
+       detect that c:/windows == /windows for example. */
+    if ((IS_DIRECTORY_SEP (path[0]) 
+	 && (elen == 1 || !IS_DIRECTORY_SEP (path[1])))
+	|| (isalpha (path[0])
+	    && (elen == 1 || !IS_DEVICE_SEP (path[1])))) {
+      int ltwff2 =
+	cygwin_posix_to_win32_path_list_buf_size (path);
+      p = (Ibyte *) alloca (ltwff2);
+      cygwin_posix_to_win32_path_list (path, p);
+      path = p;
+    }
+#endif
     p = path;
 
     /* Try doing it all at once. */
--- a/src/realpath.c	Sun Sep 01 17:54:58 2002 +0000
+++ b/src/realpath.c	Sun Sep 01 22:14:58 2002 +0000
@@ -216,14 +216,23 @@
     ;
 #ifdef WIN32_FILENAMES
   /* Check for c:/... or //server/... */
-  else if (abslen == 2 || abslen == 3)
+  else if (abslen == 3 || abslen == 2)
     {
-      qxestrncpy (new_path, path, abslen);
       /* Make sure drive letter is lowercased. */
-      if (abslen == 3)
-	*new_path = tolower (*new_path);
-      new_path += abslen;
-      path += abslen;
+      if (abslen == 3) {
+	*new_path = tolower (*path);
+	new_path++;
+	path++;
+	abslen--;
+      }
+      /* Coerce directory chars. */
+      while (abslen-- > 0) {
+	if (IS_DIRECTORY_SEP (*path))
+	  *new_path++ = DIRECTORY_SEP;
+	else
+	  *new_path++ = *path;
+	path++;
+      }
     }
 #endif
 #ifdef WIN32_NATIVE