Commits

Anonymous committed d2f30a1

Import from CVS: tag r20-1b14

Comments (0)

Files changed (48)

 							-*- indented-text -*-
+to 20.1 beta14
+-- about.el hacking
+-- W3-3.0.81
+-- autodetect restored for use with Glyphs
+-- Gnus-5.4.43
+-- miscellaneous bug fixes
+
+[beta13 was skipped]
+
 to 20.1 beta12
 -- Synch to Emacs/MULE patches courtesy of MORIOKA Tomohiko
 -- VM-6.24
+Thu Apr 10 19:07:26 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* XEmacs 20.1-b14 is released.  (Beta 13 was skipped).
+
 Wed Apr  9 22:52:06 1997  Steven L Baur  <steve@altair.xemacs.org>
 
 	* XEmacs 20.1-b12 is released.

lib-src/movemail.c

 #include <stdio.h>
 #include <errno.h>
 #include <../src/syswait.h>
+#include <stdlib.h>
+#include <string.h>
 #ifdef MAIL_USE_POP
 #include "pop.h"
 #endif
+Thu Apr 10 13:23:14 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* prim/about.el (about-xemacs-xref): Forgot to link David Moore's
+	picture (oops).
+
+Thu Apr 10 12:30:29 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* efs/dired-faces.el (dired): Move to environment group.
+
 Wed Apr  9 19:45:46 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
 
-	* x-menubar.el (default-menubar): Inline definition of customize menu.
+	* x11/x-menubar.el (default-menubar): Inline definition of
+	customize menu.
 
 Wed Apr  9 10:45:54 1997  Steven L Baur  <steve@altair.xemacs.org>
 

lisp/efs/dired-faces.el

 
 (defgroup dired nil
   "Directory editing."
-  :group 'emacs)
+  :group 'environment)
 
 (defcustom dired-do-highlighting t
   "Set if we should use highlighting according to filetype."

lisp/gnus/ChangeLog

+Thu Apr 10 22:07:46 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+	* gnus.el: Gnus v5.4.43 is released.
+
+Thu Apr 10 21:47:08 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-start.el (gnus-save-newsrc-file): Message less.
+
+Thu Apr 10 21:35:45 1997  ISO-2022-JP  <morioka@jaist.ac.jp>
+
+	* gnus-sum.el (gnus-summary-show-article): Bind gnus-show-mime. 
+
+Thu Apr 10 21:26:19 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus.el: Removed gnus-add-hook.
+
+Thu Apr  3 21:08:57 1997  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* gnus-xmas.el (gnus-xmas-summary-set-display-table): Don't change
+	the values that are non-nil in the default table.
+	(gnus-xmas-add-hook): Removed it.
+
+Thu Apr 10 20:44:46 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-art.el (gnus-article-show-summary): Error better.
+
+	* message.el (message-indent-citation): Tippy-foot when deleting
+	leading empty lines.
+
+	* gnus-sum.el (gnus-summary-move-article): Update group lines. 
+
+	* gnus-srvr.el (gnus-server-exit): Configure windows.
+
+	* gnus-group.el: Added gnus-version to help map.
+
+Thu Apr 10 20:41:11 1997  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* gnus-xmas.el: Customized.
+
+Thu Apr 10 19:58:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-sum.el (gnus-summary-next-group): Selected deleted group. 
+
+	* gnus-art.el (article-treat-overstrike): Don't bug out on empty
+	articles. 
+
+Thu Apr 10 19:52:27 1997  David Moore  <dmoore@ucsd.edu>
+
+	* nnvirtual.el (nnvirtual-partition-sequence): Style fix.
+
+Thu Apr 10 19:45:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-group.el (gnus-group-kill-group): Kill more carefully.
+
+Tue Apr  8 23:02:30 1997  Michael Welsh Duggan  <md5i@schenley.com>
+
+	* message.el (message-insert-to): Fetch reply field.
+
+Tue Apr  8 21:41:13 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-sum.el (gnus-summary-refer-article): Accept prefix.
+
+Sun Apr  6 14:08:03 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* gnus-xmas.el (gnus-xmas-summary-set-display-table): Add
+	missing paren.
+	(gnus-xmas-summary-set-display-table): current-display-table can
+	be nil.
+
 Sun Apr  6 23:17:21 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 	* gnus.el: Gnus v5.4.42 is released.
 
 	* gnus.el: Gnus v5.4.41 is released.
 
-Thu Apr  3 21:08:57 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-	* gnus-xmas.el (gnus-xmas-summary-set-display-table): Don't change
-	the values that are non-nil in the default table.
-
 Sun Apr  6 20:58:38 1997  Kim-Minh Kaplan  <kimminh.kaplan@utopia.eunet.fr>
 
 	* gnus-picon.el (gnus-picons-insert-face-if-exists): "." instead

lisp/gnus/gnus-art.el

   (interactive)
   (save-excursion
     (goto-char (point-min))
-    (re-search-forward "\n\n")
-    (let ((buffer-read-only nil))
-      (while (search-forward "\b" nil t)
-	(let ((next (following-char))
-	      (previous (char-after (- (point) 2))))
-	  ;; We do the boldification/underlining by hiding the
-	  ;; overstrikes and putting the proper text property
-	  ;; on the letters.
-	  (cond
-	   ((eq next previous)
-	    (gnus-article-hide-text-type (- (point) 2) (point) 'overstrike)
-	    (put-text-property (point) (1+ (point)) 'face 'bold))
-	   ((eq next ?_)
-	    (gnus-article-hide-text-type (1- (point)) (1+ (point)) 'overstrike)
-	    (put-text-property
-	     (- (point) 2) (1- (point)) 'face 'underline))
-	   ((eq previous ?_)
-	    (gnus-article-hide-text-type (- (point) 2) (point) 'overstrike)
-	    (put-text-property
-	     (point) (1+ (point)) 'face 'underline))))))))
+    (when (search-forward "\n\n" nil t)
+      (let ((buffer-read-only nil))
+	(while (search-forward "\b" nil t)
+	  (let ((next (following-char))
+		(previous (char-after (- (point) 2))))
+	    ;; We do the boldification/underlining by hiding the
+	    ;; overstrikes and putting the proper text property
+	    ;; on the letters.
+	    (cond
+	     ((eq next previous)
+	      (gnus-article-hide-text-type (- (point) 2) (point) 'overstrike)
+	      (put-text-property (point) (1+ (point)) 'face 'bold))
+	     ((eq next ?_)
+	      (gnus-article-hide-text-type
+	       (1- (point)) (1+ (point)) 'overstrike)
+	      (put-text-property
+	       (- (point) 2) (1- (point)) 'face 'underline))
+	     ((eq previous ?_)
+	      (gnus-article-hide-text-type (- (point) 2) (point) 'overstrike)
+	      (put-text-property
+	       (point) (1+ (point)) 'face 'underline)))))))))
 
 (defun article-fill ()
   "Format too long lines."
 (defun gnus-article-show-summary ()
   "Reconfigure windows to show summary buffer."
   (interactive)
-  (gnus-configure-windows 'article)
-  (gnus-summary-goto-subject gnus-current-article))
+  (if (not (gnus-buffer-live-p gnus-summary-buffer))
+      (error "There is no summary buffer for this article buffer")
+    (gnus-configure-windows 'article)
+    (gnus-summary-goto-subject gnus-current-article)))
 
 (defun gnus-article-describe-briefly ()
   "Describe article mode commands briefly."

lisp/gnus/gnus-gl.el

 	    (> (prefix-numeric-value arg) 0)))
     (when gnus-grouplens-mode
       (make-local-hook 'gnus-select-article-hook)
-      (gnus-add-hook 'gnus-select-article-hook 'grouplens-do-time nil 'local)
+      (add-hook 'gnus-select-article-hook 'grouplens-do-time nil 'local)
       (make-local-hook 'gnus-exit-group-hook)
-      (gnus-add-hook 'gnus-exit-group-hook 'bbb-exit-group nil 'local)
+      (add-hook 'gnus-exit-group-hook 'bbb-exit-group nil 'local)
       (make-local-variable 'gnus-score-find-score-files-function)
 
       (cond

lisp/gnus/gnus-group.el

 
   (gnus-define-keys (gnus-group-help-map "H" gnus-group-mode-map)
     "d" gnus-group-describe-group
-    "f" gnus-group-fetch-faq)
+    "f" gnus-group-fetch-faq
+    "v" gnus-version)
 
   (gnus-define-keys (gnus-group-sub-map "S" gnus-group-mode-map)
     "l" gnus-group-set-current-level
   (gnus-update-format-specifications nil 'group 'group-mode)
   (gnus-update-group-mark-positions)
   (make-local-hook 'post-command-hook)
-  (gnus-add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t)
+  (add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t)
   (when gnus-use-undo
     (gnus-undo-mode 1))
   (run-hooks 'gnus-group-mode-hook))

lisp/gnus/gnus-msg.el

 
 (defun gnus-inews-add-send-actions (winconf buffer article)
   (make-local-hook 'message-sent-hook)
-  (gnus-add-hook 'message-sent-hook 'gnus-inews-do-gcc nil t)
+  (add-hook 'message-sent-hook 'gnus-inews-do-gcc nil t)
   (setq message-post-method
 	`(lambda (arg)
 	   (gnus-post-method arg ,gnus-newsgroup-name)))

lisp/gnus/gnus-srvr.el

 (defun gnus-server-exit ()
   "Return to the group buffer."
   (interactive)
+  (run-hooks 'gnus-server-exit-hook)
   (kill-buffer (current-buffer))
-  (switch-to-buffer gnus-group-buffer)
-  (run-hooks 'gnus-server-exit-hook))
+  (gnus-configure-windows 'group t))
 
 (defun gnus-server-list-servers ()
   "List all available servers."

lisp/gnus/gnus-start.el

 	    (gnus-slave-save-newsrc)
 	  ;; Save .newsrc.
 	  (when gnus-save-newsrc-file
-	    (gnus-message 5 "Saving %s..." gnus-current-startup-file)
+	    (gnus-message 8 "Saving %s..." gnus-current-startup-file)
 	    (gnus-gnus-to-newsrc-format)
-	    (gnus-message 5 "Saving %s...done" gnus-current-startup-file))
+	    (gnus-message 8 "Saving %s...done" gnus-current-startup-file))
 	  ;; Save .newsrc.eld.
 	  (set-buffer (get-buffer-create " *Gnus-newsrc*"))
 	  (make-local-variable 'version-control)

lisp/gnus/gnus-sum.el

   (make-local-variable 'gnus-summary-line-format-spec)
   (make-local-variable 'gnus-summary-mark-positions)
   (make-local-hook 'post-command-hook)
-  (gnus-add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t)
+  (add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t)
   (run-hooks 'gnus-summary-mode-hook)
   (gnus-update-format-specifications nil 'summary 'summary-mode 'summary-dummy)
   (gnus-update-summary-mark-positions))
 	  (progn
 	    (gnus-message 5 "Returning to the group buffer")
 	    (setq entered t)
-	    (when (buffer-live-p current-buffer)
+	    (when (gnus-buffer-live-p current-buffer)
 	      (set-buffer current-buffer)
 	      (gnus-summary-exit))
 	    (run-hooks 'gnus-group-no-more-groups-hook))
       (gnus-summary-position-point)
       n)))
 
-(defun gnus-summary-refer-article (message-id)
-  "Fetch an article specified by MESSAGE-ID."
-  (interactive "sMessage-ID: ")
+(defun gnus-summary-refer-article (message-id &optional arg)
+  "Fetch an article specified by MESSAGE-ID.
+If ARG (the prefix), fetch the article using `gnus-refer-article-method'
+or `gnus-select-method', no matter what backend the article comes from."
+  (interactive "sMessage-ID: \nP")
   (when (and (stringp message-id)
 	     (not (zerop (length message-id))))
     ;; Construct the correct Message-ID if necessary.
 	      (gnus-summary-update-article (mail-header-number header))))
 	;; We fetch the article
 	(let ((gnus-override-method
-	       (and (gnus-news-group-p gnus-newsgroup-name)
-		    gnus-refer-article-method))
+	       (cond ((gnus-news-group-p gnus-newsgroup-name)
+		      gnus-refer-article-method)
+		     (arg
+		      (or gnus-refer-article-method gnus-select-method))
+		     (t nil)))
 	      number)
 	  ;; Start the special refer-article method, if necessary.
 	  (when (and gnus-refer-article-method
 	  gnus-article-display-hook
 	  gnus-article-prepare-hook
 	  gnus-break-pages
+	  gnus-show-mime
 	  gnus-visual)
       (gnus-summary-select-article nil 'force)))
   (gnus-summary-goto-subject gnus-current-article)
       (gnus-summary-remove-process-mark article))
     ;; Re-activate all groups that have been moved to.
     (while to-groups
-      (gnus-activate-group (pop to-groups)))
+      (save-excursion
+	(set-buffer gnus-group-buffer)
+	(when (gnus-group-goto-group (car to-groups) t)
+	  (gnus-group-get-new-news-this-group 1))
+	(pop to-groups)))
 
     (gnus-kill-buffer copy-buf)
     (gnus-summary-position-point)

lisp/gnus/gnus-undo.el

       (push (cons 'gnus-undo-mode gnus-undo-mode-map)
 	    minor-mode-map-alist))
     (make-local-hook 'post-command-hook)
-    (gnus-add-hook 'post-command-hook 'gnus-undo-boundary nil t)
+    (add-hook 'post-command-hook 'gnus-undo-boundary nil t)
     (add-hook 'gnus-summary-exit-hook 'gnus-undo-boundary)
     (run-hooks 'gnus-undo-mode-hook)))
 

lisp/gnus/gnus-xmas.el

 (defvar menu-bar-mode (featurep 'menubar))
 (require 'messagexmas)
 
-(defvar gnus-xmas-glyph-directory nil
+(defgroup gnus-xmas nil
+  "XEmacsoid support for Gnus"
+  :group 'gnus)
+
+(defcustom gnus-xmas-glyph-directory nil
   "*Directory where Gnus logos and icons are located.
 If this variable is nil, Gnus will try to locate the directory
-automatically.")
+automatically."
+  :type '(choice (const :tag "autodetect" nil)
+		 directory)
+  :group 'gnus-xmas)
 
 (defvar gnus-xmas-logo-color-alist
   '((flame "#cc3300" "#ff2200")
     (september "#bf9900" "#ffcc00"))
   "Color alist used for the Gnus logo.")
 
-(defvar gnus-xmas-logo-color-style 'flame
-  "Color styles used for the Gnus logo.")
+(defcustom gnus-xmas-logo-color-style 'flame
+  "Color styles used for the Gnus logo."
+  :type '(choice (const flame) (const pine) (const moss)
+		 (const irish) (const sky) (const tin)
+		 (const velvet) (const grape) (const labia)
+		 (const berry) (const neutral) (const september))
+  :group 'gnus-xmas)
 
 (defvar gnus-xmas-logo-colors
   (cdr (assq gnus-xmas-logo-color-style gnus-xmas-logo-color-alist))
   "Colors used for the Gnus logo.")
 
-(defvar gnus-article-x-face-command
+(defcustom gnus-article-x-face-command
   (if (featurep 'xface)
       'gnus-xmas-article-display-xface
     "{ echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | xv -quit -")
   "String or function to be executed to display an X-Face header.
 If it is a string, the command will be executed in a sub-shell
-asynchronously.	 The compressed face will be piped to this command.")
+asynchronously.	 The compressed face will be piped to this command."
+  :type '(choice string function))
 
 ;;; Internal variables.
 
     (set-extent-face gnus-newsgroup-selected-overlay
 		     gnus-summary-selected-face)))
 
-(defvar gnus-xmas-force-redisplay nil
+(defcustom gnus-xmas-force-redisplay nil
   "If non-nil, force a redisplay before recentering the summary buffer.
-This is ugly, but it works around a bug in `window-displayed-height'.")
+This is ugly, but it works around a bug in `window-displayed-height'."
+  :type 'boolean
+  :group 'gnus-xmas)
 
 (defun gnus-xmas-switch-horizontal-scrollbar-off ()
   (when (featurep 'scrollbar)
     (aset table ?\n nil)
     (aset table ?\r nil)
     ;; We nix out any glyphs over 126 that are not set already.
-    (let ((i 256))
-      (while (>= (setq i (1- i)) 127)
-	;; Only modify if the default entry is nil.
-	(when (or (not default-table)
-		  (not (aref default-table i)))
-	  (aset table i [??]))))
+    (when default-table
+      (let ((i 256))
+	(while (>= (setq i (1- i)) 127)
+	  ;; Only modify if the default entry is nil.
+	  (unless (aref default-table i)
+	    (aset table i [??])))))
     ;; Can't use `set-specifier' because of a bug in 19.14 and earlier
     (add-spec-to-specifier current-display-table table (current-buffer) nil)))
 
-(defun gnus-xmas-add-hook (hook function &optional append local)
-  (add-hook hook function))
-
 (defun gnus-xmas-add-text-properties (start end props &optional object)
   (add-text-properties start end props object)
   (put-text-property start end 'start-closed nil object))
   (fset 'gnus-appt-select-lowest-window
 	'gnus-xmas-appt-select-lowest-window)
   (fset 'gnus-mail-strip-quoted-names 'gnus-xmas-mail-strip-quoted-names)
-  (fset 'gnus-add-hook 'gnus-xmas-add-hook)
   (fset 'gnus-character-to-event 'character-to-event)
   (fset 'gnus-mode-line-buffer-identification
 	'gnus-xmas-mode-line-buffer-identification)
 
 ;;; The toolbar.
 
-(defvar gnus-use-toolbar (if (featurep 'toolbar)
-			     'default-toolbar
-			   nil)
+(defcustom gnus-use-toolbar (if (featurep 'toolbar)
+				'default-toolbar
+			      nil)
   "*If nil, do not use a toolbar.
 If it is non-nil, it must be a toolbar.  The five legal values are
 `default-toolbar', `top-toolbar', `bottom-toolbar',
-`right-toolbar', and `left-toolbar'.")
+`right-toolbar', and `left-toolbar'."
+  :type '(choice (const default-toolbar)
+		 (const top-toolbar) (const bottom-toolbar)
+		 (const left-toolbar) (const right-toolbar)
+		 (const :tag "no toolbar" nil))
+  :group 'gnus-xmas)
 
 (defvar gnus-group-toolbar
   '([gnus-group-get-new-news gnus-group-get-new-news t "Get new news"]
    'call-process-region (point-min) (point-max) command t '(t nil) nil
    args))
 
-(unless (find-face 'gnus-x-face)
-  (copy-face 'default 'gnus-x-face)
-  (set-face-foreground 'gnus-x-face "black")
-  (set-face-background 'gnus-x-face "white"))
+(defface gnus-x-face '((t (:foreground "black" :background "white")))
+  "Face to show X face"
+  :group 'gnus-xmas)
 
 (defun gnus-xmas-article-display-xface (beg end)
   "Display any XFace headers in the current article."

lisp/gnus/gnus.el

   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "5.4.42"
+(defconst gnus-version-number "5.4.43"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Gnus v%s" gnus-version-number)
   (defalias 'gnus-topic-remove-excess-properties 'ignore)
   (defalias 'gnus-appt-select-lowest-window 'appt-select-lowest-window)
   (defalias 'gnus-mail-strip-quoted-names 'mail-strip-quoted-names)
-  (defalias 'gnus-add-hook 'add-hook)
   (defalias 'gnus-character-to-event 'identity)
   (defalias 'gnus-add-text-properties 'add-text-properties)
   (defalias 'gnus-put-text-property 'put-text-property)

lisp/gnus/message.el

 (defun message-insert-to ()
   "Insert a To header that points to the author of the article being replied to."
   (interactive)
-  (let ((co (message-fetch-field "mail-copies-to")))
+  (let ((co (message-fetch-reply-field "mail-copies-to")))
     (when (and co
 	       (equal (downcase co) "never"))
       (error "The user has requested not to have copies sent via mail")))
   (let ((start (point)))
     ;; Remove unwanted headers.
     (when message-ignored-cited-headers
-      (save-restriction
-	(narrow-to-region
-	 (goto-char start)
-	 (if (search-forward "\n\n" nil t)
-	     (1- (point))
-	   (point)))
-	(message-remove-header message-ignored-cited-headers t)
-	(goto-char (point-max))))
+      (let (all-removed)
+	(save-restriction
+	  (narrow-to-region
+	   (goto-char start)
+	   (if (search-forward "\n\n" nil t)
+	       (1- (point))
+	     (point)))
+	  (message-remove-header message-ignored-cited-headers t)
+	  (when (= (point-min) (point-max))
+	    (setq all-removed t))
+	  (goto-char (point-max)))
+	(if all-removed
+	    (goto-char start)
+	  (forward-line 1))))
     ;; Delete blank lines at the start of the buffer.
     (while (and (point-min)
 		(eolp)

lisp/gnus/nnvirtual.el

 	  (setq entry (assoc (car article) carticles))
 	  (setcdr entry (cons (cdr article) (cdr entry))))
 	(setq i (1+ i))))
-    (mapc '(lambda (x) (setcdr x (nreverse (cdr x))))
+    (mapc (lambda (x) (setcdr x (nreverse (cdr x))))
 	  carticles)
     carticles))
 

lisp/prim/about.el

     (toggle-read-only 0)
 
     (let ((rest (if who-to-load (list who-to-load)
-		  '(steve mrb cthomp wing stig jwz mly vladimir baw piper bw wmperry kyle larsi jens jareth)))
+		  '(steve mrb cthomp wing stig jwz mly vladimir baw piper bw wmperry kyle larsi jens jareth morioka dmoore)))
 	  (got-error nil))
       (while rest
 	(let* ((who (car rest))
 	  ('jens "About Jens Lautenbacher")
 	  ('jareth "About Jareth Hein")
 	  ('morioka "About MORIOKA Tomohiko")
+	  ('dmoore "About David Moore")
 	  ('others "About Everyone")
 	  ('features "New XEmacs Features")
 	  ('history "XEmacs History")
 	(Japan Advanced Institute of Science and Technology, Hokuriku).
 	I'm interested in Natural Language, Affordance and writing systems.")
 
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+
+	 ((eq xref 'dmoore)
+	  (about-face "David Moore" 'bold)
+	  (insert " <dmoore@UCSD.edu>
+
+	David has contributed greatly to the quest to speed up XEmacs.
+	He is a student in the Computer Systems Laboratory at UCSD.
+	When he manages to have free time, he usually spends it on 200
+	mile bicycle rides, learning german or showing people the best
+	mail & news environment he's found in 10 years.  (That'd be
+	XEmacs, Gnus and bbdb, of course.)  He can be found at
+	`druidmuck.egbt.org 4201' at various hours of the day.")
 
 	  (insert "\n\n\tClick ")
 	  (about-xref "here" prev-page "Return to previous page")
 	(Japan Advanced Institute of Science and Technology, Hokuriku).
 	I'm interested in Natural Language, Affordance and writing systems.
 
+	") (about-xref "David Moore" 'dmoore "Find out more about David Moore") (insert " <dmoore@UCSD.EDU>
+
+	David has contributed greatly to the quest to speed up XEmacs.
+	He is a student in the Computer Systems Laboratory at UCSD.
+	When he manages to have free time, he usually spends it on 200
+	mile bicycle rides, learning german or showing people the best
+	mail & news environment he's found in 10 years.  (That'd be
+	XEmacs, Gnus and bbdb, of course.)  He can be found at
+	`druidmuck.egbt.org 4201' at various hours of the day.
+
 	Darrell Kindred <Darrell.Kindred@cmu.edu>
 	Unofficial maintainer of the xemacs-beta list of extant bugs
 	and contributor of an extraordinary number of important bug
 	Author of the code used to connect XEmacs with ToolTalk, and
 	of an early client of the external Emacs widget.
 
-	David Moore <dmoore@UCSD.EDU>
-	David has contributed greatly to the quest to speed up XEmacs.
-	He is a student in the Computer Systems Laboratory at UCSD.
-	When he manages to have free time, he usually spends it on 200
-	mile bicycle rides, learning german or showing people the best
-	mail & news environment he's found in 10 years.  (That'd be
-	XEmacs, Gnus and bbdb, of course.)  He can be found at
-	`druidmuck.egbt.org 4201' at various hours of the day.
-
 	Hrvoje Niksic <hniksic@srce.hr>
 	Hrvoje is currently a student at the Faculty of Electrical
 	Engineering and Computing in Zagreb, Croatia.  He works part-
 	  Per Abrahamsen <abraham@dina.kvl.dk>
 	  Gary Adams <gra@zeppo.East.Sun.COM>
 	  Gennady Agranov <agranov@csa.CS.Technion.Ac.IL>
+	  Adrian Aichner <aichner@ecf.teradyne.com>
 	  Mark Allender <allender@vnet.IBM.COM>
 	  Butch Anton <butch@zaphod.uchicago.edu>
 	  Fred Appelman <Fred.Appelman@cv.ruu.nl>
 	  Erik \"The Pope\" Arneson <lazarus@mind.net>
 	  Tor Arntsen <tor@spacetec.no>
+	  Larry Auton <lda@control.att.com>
+	  Oswald P. Backus IV <backus@altagroup.com>
 	  Mike Battaglia <mbattagl@dsccc.com>
 	  Neal Becker <neal@ctd.comsat.com>
 	  Paul Bibilo <peb@delcam.com>
 	  Rick Campbell <rickc@lehman.com>
 	  Richard Caley <rjc@cstr.edinburgh.ac.uk>
 	  Stephen Carney <carney@gvc.dec.com>
+	  Lorenzo M. Catucci <lorenzo@argon.roma2.infn.it>
 	  Philippe Charton <charton@lmd.ens.fr>
 	  Peter Cheng <peter.cheng@sun.com>
 	  Jin S. Choi <jin@atype.com>
 	  Tomasz J. Cholewo <tjchol01@mecca.spd.louisville.edu>
 	  Serenella Ciongoli <czs00@ladybug.oes.amdahl.com>
+	  Glynn Clements <glynn@sensei.co.uk>
 	  Richard Cognot <cognot@ensg.u-nancy.fr>
 	  Andy Cohen <cohen@andy.bu.edu>
 	  Andrew J Cosgriff <ajc@bing.wattle.id.au>
 	  Nick J. Crabtree <nickc@scopic.com>
 	  Christopher Davis <ckd@kei.com>
 	  Soren Dayton <csdayton@cs.uchicago.edu>
+	  Chris Dean <ctdean@cogit.com>
 	  Michael Diers <mdiers@logware.de>
 	  William G. Dubuque <wgd@martigny.ai.mit.edu>
+	  Steve Dunham <dunham@dunham.tcimet.net>
 	  Samuel J. Eaton <samuele@cogs.susx.ac.uk>
 	  Carl Edman <cedman@Princeton.EDU>
 	  Dave Edmondson <davided@sco.com>
 	  David Fletcher <frodo@tsunami.com>
 	  Paul Flinders <ptf@delcam.co.uk>
 	  Jered J Floyd <jered@mit.edu>
+	  Gary D. Foster <Gary.Foster@Corp.Sun.COM>
 	  Jerry Frain <jerry@sneffels.tivoli.com>
+	  Holger Franz <hfranz@physik.rwth-aachen.de>
 	  Benjamin Fried <bf@morgan.com>
-	  Barry Friedman <friedman@bnr.ca>
+	  Barry Friedman <friedman@nortel.ca>
 	  Lew Gaiter III <lew@StarFire.com>
 	  Itay Gat <itay@cs.huji.ac.il>
 	  Tim Geisler <Tim.Geisler@informatik.uni-muenchen.de>
 	  Dave Gillespie <daveg@synaptics.com>
 	  Christian F. Goetze <cg@bigbook.com>
+	  Yusuf Goolamabbas <yusufg@iss.nus.sg>
 	  Wolfgang Grieskamp <wg@cs.tu-berlin.de>
 	  James Grinter <jrg@demon.net>
 	  Ben Gross <bgross@uiuc.edu>
 	  Dirk Grunwald <grunwald@foobar.cs.Colorado.EDU>
+	  Michael Guenther <michaelg@igor.stuttgart.netsurf.de>
 	  Dipankar Gupta <dg@hplb.hpl.hp.com>
 	  Markus Gutschke <gutschk@GOEDEL.UNI-MUENSTER.DE>
 	  Adam Hammer <hammer@cs.purdue.edu>
 	  ChangGil Han <cghan@phys401.phys.pusan.ac.kr>
 	  Derek Harding <dharding@lssec.bt.co.uk>
 	  Michael Harnois <mharnois@sbt.net>
+	  Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp>
 	  John Haxby <J.Haxby@isode.com>
+	  Karl M. Hegbloom <karlheg@inetarena.com>
 	  Benedikt Heinen <beh@icemark.thenet.ch>
 	  Stephan Herrmann <sh@first.gmd.de>
 	  Charles Hines <chuck_hines@VNET.IBM.COM>
+	  Shane Holder <holder@rsn.hp.com>
 	  David Hughes <djh@harston.cv.com>
+	  Tatsuya Ichikawa <ichikawa@hv.epson.co.jp>
+	  Kazuyuki IENAGA <ienaga@jsys.co.jp>
 	  Andrew Innes <andrewi@harlequin.co.uk>
+	  Vladimir Ivanovic <Vladimir.Ivanovic@mri.com>
+	  Andreas Jaeger <aj@arthur.pfalz.de>
 	  Markku Jarvinen <Markku.Jarvinen@simpukka.funet.fi>
 	  Robin Jeffries <robin.jeffries@sun.com>
 	  Philip Johnson <johnson@uhics.ics.Hawaii.Edu>
 	  Yasuhiko Kiuchi <kiuchi@dsp.ksp.fujixerox.co.jp>
 	  Greg Klanderman <greg@alphatech.com>
 	  Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
+	  Rob Kooper <kooper@cc.gatech.edu>
+	  Peter Skov Knudsen <knu@dde.dk>
 	  Jens Krinke <krinke@ips.cs.tu-bs.de>
 	  Mats Larsson <Mats.Larsson@uab.ericsson.se>
 	  Simon Leinen <simon@instrumatic.ch>
 	  Mats Lidell <mats.lidell@contactor.se>
 	  Matt Liggett <mliggett@seven.ucs.indiana.edu>
 	  Christian Limpach <Christian.Limpach@nice.ch>
+	  Markus Linnala <maage@b14b.tupsu.ton.tut.fi>
 	  Robert Lipe <robertl@arnet.com>
 	  Damon Lipparelli <lipp@aa.net>
 	  Hamish Macdonald <hamish@bnr.ca>
 	  Simon Marshall <simon@gnu.ai.mit.edu>
 	  Dave Mason <dmason@plg.uwaterloo.ca>
 	  Jaye Mathisen <mrcpu@cdsnet.net>
+	  Michael McNamara <mac@silicon-sorcery.com>
 	  Michael Meissner <meissner@osf.org>
 	  David M. Meyer <meyer@ns.uoregon.edu>
 	  Brad Miller <bmiller@cs.umn.edu>
 	  Tibor Polgar <tlp00@eng.amdahl.com>
 	  Frederic Poncin <fp@info.ucl.ac.be>
 	  E. Rehmi Post <rehmi@asylum.sf.ca.us>
+	  Martin Pottendorfer <Martin.Pottendorfer@aut.alcatel.at>
 	  Colin Rafferty <craffert@spspme.ml.com>
 	  Paul M Reilly <pmr@pajato.com>
 	  Jack Repenning <jackr@sgi.com>
 	  Daniel Rich <drich@cisco.com>
 	  Roland Rieke <rol@darmstadt.gmd.de>
+	  Art Rijos <art.rijos@SNET.com>
 	  Russell Ritchie <ritchier@msc.ie>
 	  Roland <rol@darmstadt.gmd.de>
+	  Anthony Rossini <rossini@math.sc.edu>
 	  Mike Russell <mjruss@rchland.vnet.ibm.com>
 	  Jan Sandquist <etxquist@iqa.ericsson.se>
 	  Marty Sasaki <sasaki@spdcc.com>
 	  Mike Scheidler <c23mts@eng.delcoelect.com>
+	  Daniel Schepler <daniel@shep13.wustl.edu>
 	  Darrel Schneider <darrel@slc.com>
 	  Hayden Schultz <haydens@ll.mit.edu>
 	  Cotton Seed <cottons@cybercom.net>
 	  Vinnie Shelton <shelton@icd.teradyne.com>
 	  John Shen <zfs60@cas.org>
 	  Murata Shuuichirou <mrt@mickey.ai.kyutech.ac.jp>
+	  Dinesh Somasekhar <somasekh@ecn.purdue.edu>
 	  Jeffrey Sparkes <jsparkes@bnr.ca>
 	  Michael Sperber <sperber@informatik.uni-tuebingen.de>
 	  Manoj Srivastava <srivasta@pilgrim.umass.edu>
 	  Francois Staes <frans@kiwi.uia.ac.be>
+	  Anders Stenman <stenman@isy.liu.se>
 	  Jason Stewart <jasons@cs.unm.edu>
 	  Rick Tait <rickt@gnu.ai.mit.edu>
+	  Marcus Thiessel <thiessel@rhrk.uni-kl.de>
 	  James Thompson <thompson@wg2.waii.com>
 	  Raymond L. Toy <toy@rtp.ericsson.se>
+	  Remek Trzaska <remek@npac.syr.edu>
 	  John Turner <turner@xdiv.lanl.gov>
 	  Juan E. Villacis <jvillaci@cs.indiana.edu>
 	  Jan Vroonhof <vroonhof@math.ethz.ch>
 	  Vladimir Vukicevic <vladimir@intrepid.com>
+	  David Walter<djw18@cornell.edu>
 	  Peter Ware <ware@cis.ohio-state.edu>
 	  Yoav Weiss <yoav@zeus.datasrv.co.il>
 	  Rod Whitby <rwhitby@asc.corp.mot.com>

lisp/prim/custom-load.el

 (put 'tcl 'custom-loads '("tcl"))
 (put 'widgets 'custom-loads '("wid-browse" "wid-edit"))
 (put 'minibuffer 'custom-loads '("minibuf"))
-(put 'environment 'custom-loads '("minibuf" "modeline" "x-toolbar" "cus-edit"))
+(put 'environment 'custom-loads '("minibuf" "modeline" "x-toolbar" "cus-edit" "dired-faces"))
 (put 'gnus-article-buttons 'custom-loads '("gnus-art"))
 (put 'gnus-extract-archive 'custom-loads '("gnus-uu"))
 (put 'html 'custom-loads '("psgml-html"))
 (put 'boolean 'custom-loads '("bookmark"))
 (put 'auto-save 'custom-loads '("auto-save"))
 (put 'gnus-group-foreign 'custom-loads '("gnus-group"))
-(put 'gnus-article-washing 'custom-loads '("gnus-art"))
+(put 'gnus-article-washing 'custom-loads '("gnus-xmas" "gnus-art"))
 (put 'ispell 'custom-loads '("ispell"))
 (put 'mail 'custom-loads '("gnus" "message" "mail-abbrevs" "supercite" "highlight-headers"))
 (put 'gnus-summary-exit 'custom-loads '("gnus-sum"))
 (put 'cc-indent 'custom-loads '("cc-mode"))
 (put 'compression 'custom-loads '("jka-compr"))
 (put 'comm 'custom-loads '("ssl"))
-(put 'gnus 'custom-loads '("gnus-art" "gnus-async" "gnus-cache" "gnus-demon" "gnus-dup" "gnus-eform" "gnus-uu" "gnus-win" "gnus" "nnmail"))
+(put 'gnus 'custom-loads '("gnus-art" "gnus-async" "gnus-cache" "gnus-demon" "gnus-dup" "gnus-eform" "gnus-uu" "gnus-win" "gnus-xmas" "gnus" "nnmail"))
+(put 'gnus-xmas 'custom-loads '("gnus-xmas"))
 (put 'gnus-treading 'custom-loads '("gnus-sum"))
 (put 'psgml-html 'custom-loads '("psgml-html"))
 (put 'nnmail 'custom-loads '("nnmail"))
 (put 'xmine 'custom-loads '("xmine"))
 (put 'supercite-frames 'custom-loads '("supercite"))
 (put 'gnus-article-highlight 'custom-loads '("gnus-art"))
-(put 'emacs 'custom-loads '("cus-edit" "dired-faces"))
+(put 'emacs 'custom-loads '("cus-edit"))
 (put 'processes 'custom-loads '("comint-xemacs" "executable" "gnuserv" "ispell" "passwd"))
 (put 'news 'custom-loads '("gnus" "message" "supercite" "highlight-headers"))
 (put 'w3-hooks 'custom-loads '("w3-cus"))

lisp/prim/glyphs.el

 				 [jpeg :data nil] 2)))
        ,@(if (featurep 'png) '(("\.png$" [png :file nil] 2)))
        ,@(if (featurep 'png) '(("^\211PNG" [png :data nil] 2)))
-       ("" [automatic-conversion :data nil] 2))))
+       ("" [autodetect :data nil] 2))))
   ;; #### this should really be formatted-string, not string but we
   ;; don't have it implemented yet
   ;;
 (defconst emacs-version "20.1"
   "Version numbers of this version of Emacs.")
 
-(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta12)")))
+(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta14)")))
 
 (defconst emacs-major-version
   (progn (or (string-match "^[0-9]+" emacs-version)

lisp/w3/ChangeLog

 
 * Makefile (xemacs-w3): Special target for XEmacs Build.
 
+Wed Apr  9 16:46:52 1997  William M. Perry  <wmperry@aventail.com>
+
+* w3-xemac.el (w3-text-pixel-width): And a XEmacs specific version of it.
+
+* w3-e19.el (w3-text-pixel-width): New function to return the pixel width
+  of a piece of text.
+
+* url.el (url-handle-no-scheme): Use it.
+
+* url-vars.el (url-handle-no-scheme-hook): New hook that should expand a
+  partial url like 'gnu' to a full URL, like 'http://www.gnu.org/'.
+
+* w3-sysdp.el (run-hook-with-args-until-success): Added a stub for
+  run-hook-with-args-until-success
+
+Tue Apr  8 12:20:39 1997  William M. Perry  <wmperry@aventail.com>
+
+* w3-auto.el: Added autoloads for all the functions in url-ns for proxy
+  functions, and url-mail
+
+* url-ns.el (isPlainHostName): Fixed isPlainHostName
+
+* w3-parse.el (w3-parse-buffer): now throws up a bad style warning for
+  images without ALT attributes.
+
+* mm.el (mm-parse-mailcaps): Reverse the ':|;' separated path for MAILCAPS
+  so that earlier items take precedence, like standard unix PATH-like
+  variables do.
+  (mm-parse-mimetypes): Ditto for MIMETYPES
+
 Mon Apr  7 06:23:11 1997  William M. Perry  <wmperry@aventail.com>
 
+* Emacs/W3 3.0.80 released
+
 * w3-parse.el: Some more transitions - don't imply <p> after some form
   tags.
 
 recognize that key sequence. Then you may have to make your programs do useful
 things when they get a "backtab", Emacs for example will recognize it
 automatically but except for the Widget and W3 commands nothing is ever bound
-to it.
+it it.
 
 Step 1 On An XTerm: XTerm obeys standard X Toolkit translations which you can
 use to specify what character sequence Shift-Tab generates. The following X
 xmodmap -e 'keysym Tab = Tab'
 
 or adding that command to some global X configuration file (On Debian systems
-adding ``keysym Tab = Tab'' to /etc/X11/Xmodmap or ~/.Xmodmap is sufficient)
+adding ``Keysym Tab = Tab'' to /etc/X11/Xmodmap or ~/.Xmodmap is sufficient)
 
 Step 1 On A Linux Virtual Console: on a Linux virtual console you can
 configure what character sequences are generated by which keys using the
    (t (setq path (concat "/etc/mailcap:/usr/etc/mailcap:"
 			 "/usr/local/etc/mailcap:"
 			 (expand-file-name "~/.mailcap")))))
-  (let ((fnames (mm-string-to-tokens path
-				     (if (memq system-type
-					       '(ms-dos ms-windows windows-nt))
-					 ?;
-				       ?:))) fname)
+  (let ((fnames (reverse
+		 (mm-string-to-tokens path
+				      (if (memq system-type
+						'(ms-dos ms-windows windows-nt))
+					  ? ;
+					?:))))
+	fname)
     (while fnames
       (setq fname (car fnames))
       (if (and (file-exists-p fname) (file-readable-p fname))
 			 "/etc/mime-types:/usr/etc/mime-types:"
 			 "/usr/local/etc/mime-types:"
 			 "/usr/local/www/conf/mime-types"))))
-  (let ((fnames (mm-string-to-tokens path
-				     (if (memq system-type
-					       '(ms-dos ms-windows windows-nt))
-					 ?;
-				       ?:))) fname)
+  (let ((fnames (reverse
+		 (mm-string-to-tokens path
+				      (if (memq system-type
+						'(ms-dos ms-windows windows-nt))
+					  ? ;
+					?:))))
+	fname)
     (while fnames
       (setq fname (car fnames))
       (if (and (file-exists-p fname) (file-readable-p fname))

lisp/w3/url-ns.el

 ;;; url-ns.el --- Various netscape-ish functions for proxy definitions
 ;; Author: wmperry
-;; Created: 1997/03/24 20:16:16
-;; Version: 1.1
+;; Created: 1997/04/08 21:18:23
+;; Version: 1.2
 ;; Keywords: comm, data, processes, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defun isPlainHostName (host)
-  (string-match "\\." host))
+  (not (string-match "\\." host)))
 
 (defun dnsDomainIs (host dom)
   (setq host (url-gateway-nslookup-host host))

lisp/w3/url-vars.el

 ;;; url-vars.el --- Variables for Uniform Resource Locator tool
 ;; Author: wmperry
-;; Created: 1997/04/07 16:06:35
-;; Version: 1.48
+;; Created: 1997/04/10 21:18:12
+;; Version: 1.50
 ;; Keywords: comm, data, processes, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Boston, MA 02111-1307, USA.
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(defconst url-version (let ((x "p3.0.80"))
+(defconst url-version (let ((x "p3.0.81"))
 			(if (string-match "State: \\([^ \t\n]+\\)" x)
 			    (substring x (match-beginning 1) (match-end 1))
 			  x))
 (modify-syntax-entry ?> ")<" url-mailserver-syntax-table)
 (modify-syntax-entry ?/ " " url-mailserver-syntax-table)
 
+(defvar url-handle-no-scheme-hook nil
+  "*Hooks to be run until one can successfully transform an incomplete URL.
+
+Each hook is called with a single argument URL and should return a tranformed
+url with a valid scheme (e.g., \"gnu\" --> \"http://www.gnu.org/\"), or nil
+otherwise.")
+
 ;;; Make OS/2 happy - yeeks
 (defvar	tcp-binary-process-input-services nil
   "*Make OS/2 happy with our CRLF pairs...")
 ;;; url.el --- Uniform Resource Locator retrieval tool
 ;; Author: wmperry
-;; Created: 1997/04/07 16:01:55
-;; Version: 1.72
+;; Created: 1997/04/09 23:49:33
+;; Version: 1.73
 ;; Keywords: comm, data, processes, hypermedia
 
 ;;; LCD Archive Entry:
 ;;; url|William M. Perry|wmperry@cs.indiana.edu|
 ;;; Functions for retrieving/manipulating URLs|
-;;; 1997/04/07 16:01:55|1.72|Location Undetermined
+;;; 1997/04/09 23:49:33|1.73|Location Undetermined
 ;;;
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      ((string-match "\\(\\.[^\\.]+\\)\\(\\.[^\\.]+\\)" url)
       ;; Ok, we have at least two dots in the filename, just stick http on it
       (url-retrieve (concat "http://" url)))
+     ((setq temp (run-hook-with-args-until-success
+		  'url-handle-no-scheme-hook url))
+      (url-retrieve temp))
      (t
       (url-retrieve (concat "http://www." url ".com"))))))
 

lisp/w3/w3-auto.el

 
 ;; URL stuff
 (autoload 'url-gateway-nslookup-host "url-gw")
+(autoload 'url-mail "url-mail")
+(autoload 'isInNet "url-ns")
+(autoload 'isResolvable "url-ns")
+(autoload 'dnsResolve "url-ns")
+(autoload 'dnsDomainIs "url-ns")
+(autoload 'isPlainHostName "url-ns")
 
 ;; Preferences
 (autoload 'w3-preferences-edit "w3-prefs" nil t)

lisp/w3/w3-display.el

 ;;; w3-display.el --- display engine v99999
 ;; Author: wmperry
-;; Created: 1997/04/03 16:32:31
-;; Version: 1.171
+;; Created: 1997/04/07 17:01:38
+;; Version: 1.172
 ;; Keywords: faces, help, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;; Various macros
 (eval-when-compile
+  (defmacro w3-node-visible-p ()
+    (` (not (eq (car break-style) 'none))))
+
   (defmacro w3-handle-empty-tag ()
     (`
      (progn
 	    (setq w3-image-widgets-waiting
 		  (cons widget w3-image-widgets-waiting)))))))
 
-(defmacro w3-node-visible-p ()
-  (` (not (eq (car break-style) 'none))))
-
 (defmacro w3-handle-image ()
   (`
    (let* ((height (w3-get-attribute 'height))

lisp/w3/w3-e19.el

 ;;; w3-e19.el --- Emacs 19.xx specific functions for emacs-w3
 ;; Author: wmperry
-;; Created: 1997/04/01 19:23:18
-;; Version: 1.22
+;; Created: 1997/04/10 00:03:25
+;; Version: 1.23
 ;; Keywords: faces, help, mouse, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 	(if back (font-set-face-background face back))
 	(fillin-text-property (point-min) (point-max) 'face 'face face))))
 
+(defun w3-text-pixel-width (str &optional face)
+  "Return the pixel-width of a chunk of text STR with face FACE."
+  (* (length str) (frame-char-width)))
+
 (defun w3-mouse-handler (e)
   "Function to message the url under the mouse cursor"
   (interactive "e")

lisp/w3/w3-parse.el

                (setq tag-attributes (cons (cons attr-name attr-value)
                                           tag-attributes)))
 
+             (if (and (eq w3-p-d-tag-name 'img)
+                      (not (assq 'alt tag-attributes)))
+                 (w3-debug-html :bad-style
+                                :outer
+                                "IMG element has no ALT attribute"))
              (cond
               ((and (eq w3-p-d-tag-name 'base)
                     (setq w3-p-s-baseobject

lisp/w3/w3-sysdp.el

 ;; NT doesn't have make-symbolic-link
 (sysdep-defalias 'make-symbolic-link 'copy-file)
 
+(sysdep-defun run-hook-with-args-until-success (hook &rest args)
+  "Run HOOK with the specified arguments ARGS.
+HOOK should be a symbol, a hook variable.  Its value should
+be a list of functions.  We call those functions, one by one,
+passing arguments ARGS to each of them, until one of them
+returns a non-nil value.  Then we return that value.
+If all the functions return nil, we return nil."
+  (let ((rval nil)
+	(todo (and (boundp hook) (symbol-value hook)))
+	(global (and (boundp hook) (default-value hook)))
+	(cur nil))
+    (while (and (setq cur (car todo)) (not rval))
+      (setq todo (cdr todo))
+      (if (eq cur t)
+	  (if global
+	      (setq todo (append global todo)))
+	(setq rval (apply cur args))))))
+
 (sysdep-defun split-string (string pattern)
   "Return a list of substrings of STRING which are separated by PATTERN."
   (let (parts (start 0))

lisp/w3/w3-vars.el

 ;;; w3-vars.el,v --- All variable definitions for emacs-w3
 ;; Author: wmperry
-;; Created: 1997/04/07 16:06:34
-;; Version: 1.122
+;; Created: 1997/04/10 21:18:12
+;; Version: 1.123
 ;; Keywords: comm, help, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 (require 'w3-cus)			; Grab everything that is customized
 
 (defconst w3-version-number
-  (let ((x "p3.0.80"))
+  (let ((x "p3.0.81"))
     (if (string-match "State:[ \t\n]+.\\([^ \t\n]+\\)" x)
 	(setq x (substring x (match-beginning 1) (match-end 1)))
       (setq x (substring x 1)))
      (function (lambda (x) (if (= x ?-) "." (char-to-string x)))) x ""))
   "Version # of w3-mode.")
 
-(defconst w3-version-date (let ((x "1997/04/07 16:06:34"))
+(defconst w3-version-date (let ((x "1997/04/10 21:18:12"))
 			    (if (string-match "Date: \\([^ \t\n]+\\)" x)
 				(substring x (match-beginning 1) (match-end 1))
 			      x))

lisp/w3/w3-xemac.el

 ;;; w3-xemac.el --- XEmacs specific functions for emacs-w3
 ;; Author: wmperry
-;; Created: 1997/04/01 19:23:21
-;; Version: 1.17
+;; Created: 1997/04/10 00:03:38
+;; Version: 1.18
 ;; Keywords: faces, help, mouse, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Enhancements For XEmacs
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun w3-text-pixel-width (str &optional face)
+  "Return the pixel-width of a chunk of text STR with face FACE."
+  (let ((glyph (make-glyph str))
+	(todo (if (listp face) face (list face)))
+	(max 0))
+    (while (progn (set-glyph-face glyph (pop todo)) todo)
+      (setq max (max (glyph-width glyph) max)))
+    max))
+  
 (defun w3-mouse-handler (e)
   "Function to message the url under the mouse cursor"
   (interactive "e")
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Gnus 5.4.42 Manual
+@settitle Gnus 5.4.43 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @tex
 
 @titlepage
-@title Gnus 5.4.42 Manual
+@title Gnus 5.4.43 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Gnus 5.4.42.
+This manual corresponds to Gnus 5.4.43.
 
 @end ifinfo
 
 Describe all groups (@code{gnus-group-describe-all-groups}).  If given a
 prefix, force Gnus to re-read the description file from the server.
 
-@item V
+@item H v
+@itemx V
 @kindex V (Group)
+@kindex H v (Group)
 @cindex version
 @findex gnus-version
 Display current Gnus version numbers (@code{gnus-version}).
 that look something like @samp{<38o6up$6f2@@hymir.ifi.uio.no>}.  You
 have to get it all exactly right.  No fuzzy searches, I'm afraid.
 
+The current select method will be used when fetching by
+@code{Message-ID} from non-news select method, but you can override this
+by giving this command a prefix.
+
 @vindex gnus-refer-article-method
 If the group you are reading is located on a backend that does not
 support fetching by @code{Message-ID} very well (like @code{nnspool}),
 If this variable is non-@code{nil}, Gnus will try to keep the tree
 buffer as small as possible to allow more room for the other Gnus
 windows.  If this variable is a number, the tree buffer will never be
-higher than that number.  The default is @code{t}.
+higher than that number.  The default is @code{t}.  Note that if you
+have several windows displayed side-by-side in a frame and the tree
+buffer is one of these, minimizing the tree window will also resize all
+other windows that are displayed next to it.
 
 @item gnus-generate-tree-function
 @vindex gnus-generate-tree-function
 does this @code{defalias} thing with Gnus equivalents instead.  Cleaner
 all over.
 
+In the cases when the XEmacs function interface was obviously
+cleaner, I used it instead.  For example @code{gnus-region-active-p}
+is an alias for @code{region-active-p} in XEmacs, whereas in Emacs
+it is a function.
+
 Of course, I could have chosen XEmacs as my native platform and done
 mapping functions the other way around.  But I didn't.  The performance
 hit these indirections impose on Gnus under XEmacs should be slight.
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Message 5.4.42 Manual
+@settitle Message 5.4.43 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @tex
 
 @titlepage
-@title Message 5.4.42 Manual
+@title Message 5.4.43 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Message 5.4.42.  Message is distributed with
+This manual corresponds to Message 5.4.43.  Message is distributed with
 the Gnus distribution bearing the same version number as this manual
 has. 
 
+Thu Apr 10 12:48:49 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* glyphs.c: Undo duplicate declaration of display_table.
+
+	* glyphs.h: Back out name change of autodetect to
+	automatic_conversion.
+
+	* glyphs.c: Back out name change of autodetect to
+	automatic_conversion.
+
+	* glyphs-x.c (image_instantiator_format_create_glyphs_x): Back out
+	name change of autodetect to automatic_conversion.
+
+	* events.c (Fevent_properties): Do something sensible for
+	dead_event and empty_event.
+
+	* general.c: Restore autodetect symbol.
+
+	* emacsfns.h: Declare new symbol Qempty.
+
+	* general.c: Add symbol to identify empty events.
+
+	* events.c (Fevent_type): Don't abort() when presented with an
+	empty_event or a dead_event.
+
 Mon Apr  7 18:12:26 1997  David Moore  <dmoore@ucsd.edu>
 
 	* xmu.c: Renamed local `initialized' variable to `hex_initialized'

src/Makefile.in.in

 	exit 1
 
 /* Cover your eyes, please */
-xemacs-version.h: ${lispdir}version.el
-	@echo "#define main_1 xemacs_`grep emacs-version ${lispdir}version.el | sed 's/.*\"\(.*\)\.\(.*\)\"/\1_\2/ \
-1q'`_`grep -i xemacs.*lucid.*beta ${lispdir}version.el | sed 's/.*\(beta[0-9]*\).*/\1/ \
-1q'`" > xemacs-version.h
+xemacs-version.h: ../lisp/version.el
+	@echo "#define main_1 xemacs_`grep emacs-version ../lisp/version.el | sed -e 's/.*\"\(.*\)\.\(.*\)\"/\1_\2/' -e 1q`_`grep -i xemacs.*lucid.*beta ../lisp/version.el | sed -e 's/.*\(beta[0-9]*\).*/\1/' -e 1q`" > xemacs-version.h
 
 
 /* Some machines have alloca built-in.

src/console-tty.h

       CONST char *end_motion;		/* rmcup, te */
       CONST char *keypad_on;		/* smkx, ks */
       CONST char *keypad_off;		/* rmkx, ke */
+
+      CONST char *orig_pair;		/* op, op */
     } sd;
   
   /* costs of various operations */
 extern Lisp_Object Qall;
 extern Lisp_Object Qassoc;
 extern Lisp_Object Qat;
+extern Lisp_Object Qautodetect;
 extern Lisp_Object Qautomatic_conversion;
 extern Lisp_Object Qbad_variable;
 extern Lisp_Object Qbefore;
 extern Lisp_Object Qdisplay;
 extern Lisp_Object Qdoc_string;
 extern Lisp_Object Qdynarr_overhead;
+extern Lisp_Object Qempty;
 extern Lisp_Object Qeq;
 extern Lisp_Object Qequal;
 extern Lisp_Object Qeql;
 timeout		A timeout has expired.
 eval		This causes a specified action to occur when dispatched.
 magic		Some window-system-specific event has occurred.
+dead		The event has been deallocated.
+empty		The event has been allocated but not assigned.
+
 */
        (event))
 {
     case magic_eval_event:
       return Qmagic;
 
+    case empty_event:
+      return Qempty;
+
+    case dead_event:
+      return Qdead;
+
     default:
       abort ();
       return Qnil;
 
     case magic_eval_event:
     case magic_event:
+    case dead_event:
+    case empty_event:
       break;
 
     default:
 Lisp_Object Qall;
 Lisp_Object Qassoc;
 Lisp_Object Qat;
+Lisp_Object Qautodetect;
 Lisp_Object Qautomatic_conversion;
 Lisp_Object Qbad_variable;
 Lisp_Object Qbefore;
 Lisp_Object Qdisplay;
 Lisp_Object Qdoc_string;
 Lisp_Object Qdynarr_overhead;
+Lisp_Object Qempty;
 Lisp_Object Qeq;
 Lisp_Object Qequal;
 Lisp_Object Qeql;
   defsymbol (&Qall, "all");
   defsymbol (&Qassoc, "assoc");
   defsymbol (&Qat, "at");
+  defsymbol (&Qautodetect, "autodetect");
   defsymbol (&Qautomatic_conversion, "automatic-conversion");
   defsymbol (&Qbad_variable, "bad-variable");
   defsymbol (&Qbefore, "before");
   defsymbol (&Qdisplay, "display");
   defsymbol (&Qdoc_string, "doc-string");
   defsymbol (&Qdynarr_overhead, "dynarr-overhead");
+  defsymbol (&Qempty, "empty");
   defsymbol (&Qeq, "eq");
   defsymbol (&Qequal, "equal");
   defsymbol (&Qeql, "eql");
 
 DEFINE_IMAGE_INSTANTIATOR_FORMAT (font);
 
-DEFINE_IMAGE_INSTANTIATOR_FORMAT (automatic_conversion);
+DEFINE_IMAGE_INSTANTIATOR_FORMAT (autodetect);
 
 static void cursor_font_instantiate (Lisp_Object image_instance,
 				     Lisp_Object instantiator,
 
 
 /**********************************************************************
- *			 Automatic_Conversion                         *
+ *			 Autodetect		                         *
  **********************************************************************/
 
 static void
-automatic_conversion_validate (Lisp_Object instantiator)
+autodetect_validate (Lisp_Object instantiator)
 {
   data_must_be_present (instantiator);
 }
 
 static Lisp_Object
-automatic_conversion_normalize (Lisp_Object instantiator,
+autodetect_normalize (Lisp_Object instantiator,
 				Lisp_Object console_type)
 {
   Lisp_Object file = find_keyword_in_vector (instantiator, Q_data);
      specification. (We can't do that now because we don't know
      what dest-types it's going to be instantiated into.) */
   {
-    Lisp_Object result = alist_to_tagged_vector (Qautomatic_conversion, alist);
+    Lisp_Object result = alist_to_tagged_vector (Qautodetect, alist);
     free_alist (alist);
     RETURN_UNGCPRO (result);
   }
 }
 
 static int
-automatic_conversion_possible_dest_types (void)
+autodetect_possible_dest_types (void)
 {
   return
     IMAGE_MONO_PIXMAP_MASK  |
 }
 
 static void
-automatic_conversion_instantiate (Lisp_Object image_instance,
+autodetect_instantiate (Lisp_Object image_instance,
 				  Lisp_Object instantiator,
 				  Lisp_Object pointer_fg,
 				  Lisp_Object pointer_bg,
   IIFORMAT_VALID_KEYWORD (xface, Q_background, check_valid_string);
 #endif 
 
-  INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (automatic_conversion,
-					"automatic-conversion");
-
-  IIFORMAT_HAS_METHOD (automatic_conversion, validate);
-  IIFORMAT_HAS_METHOD (automatic_conversion, normalize);
-  IIFORMAT_HAS_METHOD (automatic_conversion, possible_dest_types);
-  IIFORMAT_HAS_METHOD (automatic_conversion, instantiate);
-
-  IIFORMAT_VALID_KEYWORD (automatic_conversion, Q_data, check_valid_string);
+  INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (autodetect,
+					"autodetect");
+
+  IIFORMAT_HAS_METHOD (autodetect, validate);
+  IIFORMAT_HAS_METHOD (autodetect, normalize);
+  IIFORMAT_HAS_METHOD (autodetect, possible_dest_types);
+  IIFORMAT_HAS_METHOD (autodetect, instantiate);
+
+  IIFORMAT_VALID_KEYWORD (autodetect, Q_data, check_valid_string);
 }
 
 void
 Lisp_Object Qmono_pixmap, Qcolor_pixmap, Qsubwindow;
 
 Lisp_Object Vcurrent_display_table;
-Lisp_Object Qdisplay_table;
+/* Declared in faces.c */
+extern Lisp_Object Qdisplay_table;
 
 Lisp_Object Vtruncation_glyph, Vcontinuation_glyph, Voctal_escape_glyph;
 Lisp_Object Vcontrol_arrow_glyph, Vinvisible_text_glyph, Vhscroll_glyph;
 Given an IMAGE-INSTANTIATOR-FORMAT, return non-nil if it is valid.
 Valid formats are some subset of 'nothing, 'string, 'formatted-string,
 'xpm, 'xbm, 'xface, 'gif, 'jpeg, 'png, 'tiff, 'cursor-font, 'font,
-'automatic-conversion, and 'subwindow, depending on how XEmacs was
+'autodetect, and 'subwindow, depending on how XEmacs was
 compiled.
 */
        (image_instantiator_format))
    probably be fixed.)
 'subwindow
   (An embedded X window; not currently implemented.)
-'automatic-conversion
+'autodetect
   (XEmacs tries to guess what format the data is in.  If X support
   exists, the data string will be checked to see if it names a filename.
   If so, and this filename contains XBM or XPM data, the appropriate
   value of the `image-instance-file-name' function when applied to
   the resulting image-instance.  This keyword is not valid for
   instantiator formats `nothing', `string', `formatted-string',
-  `cursor-font', `font', `automatic-conversion', and `inherit'.)
+  `cursor-font', `font', `autodetect', and `inherit'.)
 :foreground
 :background
   (For `xbm', `xface', `cursor-font', and `font'.  These keywords
   font					pointer
   subwindow				subwindow
   inherit				mono-pixmap
-  automatic-conversion			mono-pixmap, color-pixmap, pointer,
+  autodetect				mono-pixmap, color-pixmap, pointer,
 					text
 */
 

src/redisplay-tty.c

   int y2 = WINDOW_TEXT_BOTTOM (w);
   unsigned char divv = '|';
 
-  tty_turn_on_face (w, DEFAULT_INDEX);
+  tty_turn_on_face (w, MODELINE_INDEX);
   for (line = y1; line < y2; line++)
     {
       cmgoto (f, line, WINDOW_TEXT_LEFT (w) - 1);
       send_string_to_tty_console (c, &divv, 1);
       TTY_INC_CURSOR_X (c, 1);
     }
-  tty_turn_off_face (w, DEFAULT_INDEX);
 
   /* Draw the divider in the modeline. */
   cmgoto (f, y2, WINDOW_TEXT_LEFT (w) - 1);
-  tty_turn_on_face (w, MODELINE_INDEX);
   send_string_to_tty_console (c, &divv, 1);
   TTY_INC_CURSOR_X (c, 1);
   tty_turn_off_face (w, MODELINE_INDEX);
   if (!CONSOLE_TTY_P (c))
     return;
 
+  OUTPUT1_IF (c, TTY_SD (c).orig_pair);
   OUTPUT1_IF (c, TTY_SD (c).keypad_off);
   OUTPUT1_IF (c, TTY_SD (c).cursor_normal);
   OUTPUT1_IF (c, TTY_SD (c).end_motion);
   TTY_SD (c).turn_on_bold = tgetstr ("md", &bufptr);
   TTY_SD (c).turn_on_dim = tgetstr ("mh", &bufptr);
   TTY_SD (c).turn_off_attributes = tgetstr ("me", &bufptr);
+  TTY_SD (c).orig_pair = tgetstr ("op", &bufptr);
 
   TTY_SD (c).visual_bell = tgetstr ("vb", &bufptr);
   TTY_SD (c).audio_bell = tgetstr ("bl", &bufptr);
 #define BSD 199103
 #elif __FreeBSD__ == 2
 #define BSD 199306
+#elif __FreeBSD__ == 3
+#define BSD 199506
 #endif
 
 #undef HAVE_UNION_WAIT
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.