Commits

Anonymous committed d620409

Import from CVS: tag r19-15b100

Comments (0)

Files changed (38)

 							-*- indented-text -*-
+to 19.15 beta100
+-- GIF crash fix courtesy of David Moore
+-- Fix for problem dumping comint with sparcworks
+-- Fixes for problems during build with dynamic puresize
+-- xpm background color patch courtesy of Darrell Kindred
+-- Custom-1.64
+-- Gnus-5.4.28
+-- Miscellaneous bug fixes
+
 to 19.15 beta99
 -- Update to time.el.
 -- htmlpro DTD, IE3 DTDs added to etc/sgml.

lib-src/update-elc.sh

 ##  and 'etc'.  (If this is a Sun workspace, you can run it from
 ##  'era-specific' instead.)
 
-set -eu
-unset MAKEFLAGS   # GNU make sets MAKEFLAGS to -w; confuses non-GNU make
+set -e
 
 # This means we're running in a Sun workspace
 if [ -d ../era-specific ]; then
 echo "Recompiling in `pwd|sed 's|^/tmp_mnt||'`"
 echo "          with $REAL..."
 
-$EMACS -batch -q -no-site-file -l cleantree -f batch-remove-old-elc lisp
+$EMACS -batch -q -l `pwd`/lisp/prim/cleantree -f batch-remove-old-elc lisp
 
 prune_vc="( -name SCCS -o -name RCS -o -name CVS ) -prune -o"
 
 echo Compiling AUC TeX...
 ( cd lisp/auctex ; ${MAKE:-make} some -f Makefile EMACS=$REAL )
 echo AUC TeX done.
-
-#
-# Now get the files whose .el is newer than .elc
-#
-echo Compiling files with out-of-date .elc...
-$BYTECOMP -f batch-byte-recompile-directory lisp

lisp/comint/comint-xemacs.el

+;;; comint-xemacs.el --- Face customizations for comint
+
+;; Copyright (C) 1997 by Free Software Foundation, Inc.
+
+;; Author: Steven L Baur <steve@altair.xemacs.org>
+;; Keywords: help, faces
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Synched up with: Not in FSF
+
+;;; Commentary:
+
+;; Declare customizable faces for comint outside the main code so it can
+;; be dumped with XEmacs.
+
+;;; Code:
+
+(defface comint-input-face '((((class color)
+			      (background dark))
+			     (:foreground "red"))
+			    (((class color)
+			      (background light))
+			     (:foreground "blue"))
+			    (((class mono))
+			     (:bold t))
+			    (((class grayscale))
+			     (:bold t))
+			    (t 
+			     (:bold t)))
+  "How to display user input for comint shells."
+  :group 'comint-input-face)
+
+
+
+(provide 'comint-xemacs)
+
+;;; comint-xemacs.el ends here

lisp/comint/comint.el

 (put 'comint-scroll-show-maximum-output 'permanent-local t)
 (put 'comint-ptyp 'permanent-local t)
 
-(defface comint-input-face '((((class color)
-			      (background dark))
-			     (:foreground "red"))
-			    (((class color)
-			      (background light))
-			     (:foreground "blue"))
-			    (((class mono))
-			     (:bold t))
-			    (((class grayscale))
-			     (:bold t))
-			    (t 
-			     (:bold t)))
-  "How to display user input for comint shells."
-  :group 'comint-input-face)
-
 
 
 (defun comint-mode ()
 
 (defun comint-input-setup ()
   "Insure the comint-input-extent is ready."
+  (require 'comint-xemacs)
   (setq comint-input-extent (make-extent (point) (point-max)))
   (set-extent-property comint-input-extent 'detachable nil)
   (set-extent-property comint-input-extent 'start-closed t)

lisp/custom/ChangeLog

+Mon Mar 17 11:32:51 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.64 released.
+
+Mon Mar 17 10:43:10 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* cus-edit.el (custom-group-menu-create): Split definition into
+	XEmacs and Emacs.  XEmacs uses :filter.  Emacs limits
+	`custom-menu-nesting'. 
+	(custom-menu-create): Do noy limit `custom-menu-nesting' here. 
+	(custom-menu-update): Removed XEmacs support.
+
+	* custom.el (custom-help-menu): Use `custom-menu-create' in XEmacs
+	:filter.
+
 Fri Mar 14 18:03:55 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
 
 	* Version 1.63 released.

lisp/custom/cus-edit.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
 				   ':style 'toggle
 				   ':selected symbol)))
 
-(defun custom-group-menu-create (widget symbol)
-  "Ignoring WIDGET, create a menu entry for customization group SYMBOL."
-  (custom-menu-create symbol))
+(if (string-match "XEmacs" emacs-version)
+    ;; XEmacs can create menus dynamically.
+    (defun custom-group-menu-create (widget symbol)
+      "Ignoring WIDGET, create a menu entry for customization group SYMBOL."
+      `( ,(custom-unlispify-menu-entry symbol t)
+	  :filter (lambda (&rest junk)
+		    (cdr (custom-menu-create ',symbol)))))
+  ;; But emacs can't.
+  (defun custom-group-menu-create (widget symbol)
+    "Ignoring WIDGET, create a menu entry for customization group SYMBOL."
+    ;; Limit the nesting.
+    (let ((custom-menu-nesting (1- custom-menu-nesting)))
+      (custom-menu-create symbol))))
 
 (defun custom-menu-create (symbol &optional name)
   "Create menu for customization group SYMBOL.
   (let ((item (vector name
 		      `(custom-buffer-create '((,symbol custom-group)))
 		      t)))
-    (if (and (> custom-menu-nesting 0)
+    (if (and (>= custom-menu-nesting 0)
 	     (< (length (get symbol 'custom-group)) widget-menu-max-size))
-	(let ((custom-menu-nesting (1- custom-menu-nesting))
-	      (custom-prefix-list (custom-prefix-add symbol
+	(let ((custom-prefix-list (custom-prefix-add symbol
 						     custom-prefix-list)))
 	  (custom-load-symbol symbol)
 	  `(,(custom-unlispify-menu-entry symbol t)
   (add-hook 'custom-define-hook 'custom-menu-reset)
   (let* ((emacs (widget-apply '(custom-group) :custom-menu 'emacs))
 	 (menu `(,(car custom-help-menu)
-		,emacs
-		,@(cdr (cdr custom-help-menu)))))
-    (if (fboundp 'add-submenu)
-	(progn 
-	  (add-submenu '("Options") menu)
-	  (cdr emacs))
-      (let ((map (easy-menu-create-keymaps (car menu) (cdr menu))))
-	(define-key global-map [menu-bar help-menu customize-menu]
-	  (cons (car menu) map))
-	(when (fboundp 'x-popup-menu)
-	  (x-popup-menu event map))))))
+		 ,emacs
+		 ,@(cdr (cdr custom-help-menu)))))
+    (let ((map (easy-menu-create-keymaps (car menu) (cdr menu))))
+      (define-key global-map [menu-bar help-menu customize-menu]
+	(cons (car menu) map)))))
 
 ;;; Dependencies.
 

lisp/custom/cus-face.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:

lisp/custom/custom.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
 
 ;;; Menu support
 
-(defconst custom-help-menu `("Customize"
-			     ,(if (string-match "XEmacs" emacs-version)
-				  '("Emacs" :filter custom-menu-update)
-				["Update menu..." custom-menu-update t])
-			     ["Group..." customize t]
-			     ["Variable..." customize-variable t]
-			     ["Face..." customize-face t]
-			     ["Saved..." customize-customized t]
-			     ["Apropos..." customize-apropos t])
+(defconst custom-help-menu
+  `("Customize"
+    ,(if (string-match "XEmacs" emacs-version)
+	 '("Emacs" :filter (lambda (&rest junk)
+			     (cdr (custom-menu-create 'emacs))))
+       ["Update menu..." custom-menu-update t])
+    ["Group..." customize t]
+    ["Variable..." customize-variable t]
+    ["Face..." customize-face t]
+    ["Saved..." customize-customized t]
+    ["Apropos..." customize-apropos t])
   "Customize menu")
 
 (defun custom-menu-reset ()
 	    (easy-menu-create-keymaps (car custom-help-menu)
 				      (cdr custom-help-menu))))))
 
-(unless (string-match "XEmacs" emacs-version)
+(if (string-match "XEmacs" emacs-version)
+    (autoload 'custom-menu-create "cus-edit")
   (custom-menu-reset))
 
 ;;; The End.

lisp/custom/wid-browse.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: extensions
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:

lisp/custom/wid-edit.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: extensions
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:

lisp/custom/widget-example.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, extensions, faces, hypermedia
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 (require 'widget)

lisp/custom/widget.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, extensions, faces, hypermedia
-;; Version: 1.63
+;; Version: 1.64
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:

lisp/gnus/ChangeLog

+Tue Mar 18 00:35:06 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+	* gnus.el: Gnus v5.4.28 is released.
+
+Mon Mar 17 18:36:11 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-sum.el (gnus-update-marks): Use `list' instead of
+	`articles'.
+
+	* nndoc.el (nndoc-rfc822-forward-type-p): Renamed.
+	(nndoc-rfc822-forward-body-end-function): Ditto.
+
+Mon Mar 17 17:35:35 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+	* gnus.el: Gnus v5.4.27 is released.
+
+Mon Mar 17 15:59:11 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* nndoc.el (nndoc-x400-forward-type-p): New function.
+	(nndoc-x400-forward-body-end-function): Ditto.
+
+	* nnfolder.el (nnfolder-adjust-min-active): Be in the right
+	buffer. 
+
+Sat Mar 15 16:09:44 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* message.el (message-post-method): Fix typo.
+
+	* gnus-load.el (message-sending): Fix typo.
+
+Mon Mar 17 15:47:59 1997  Gordon Matzigkeit  <gord@m-tech.ab.ca>
+
+	* message.el (message-set-auto-save-file-name): Expand before
+	temping. 
+
+Mon Mar 17 15:05:44 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-sum.el (gnus-update-marks): Get rid of article entries of
+	articles with the default score.
+
+	* gnus-group.el (gnus-group-read-ephemeral-group): Be more careful
+	when uniquifying methods.
+
+	* gnus-sum.el (gnus-execute-command): Insert asynch into buffer.
+
+	* nnfolder.el (nnfolder-possibly-change-group): Didn't set the
+	current group.
+
+Mon Mar 17 15:03:02 1997  Paul Stodghill  <stodghil@cs.cornell.edu>
+
+	* gnus-srvr.el (gnus-server-prepare): Would infloop.
+
+Mon Mar 17 06:37:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* nnmail.el (nnmail-crosspost-link-function): Change default on
+	NT. 
+
+Fri Mar 14 12:07:12 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* gnus-msg.el (gnus-extended-version): Add XEmacs beta # to
+	default X-Mailer/X-Newsreader.
+
+Fri Mar 14 20:57:03 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* nnfolder.el (nnfolder-possibly-change-group): Check folder
+	buffer. 
+
+	* nnheader.el (nnheader-parse-head): Understand Message-ID with
+	spaces. 
+	* gnus-sum.el (gnus-get-newsgroup-headers): Ditto.
+	(gnus-group-make-articles-read): Doc fix.
+
+	* nnml.el (nnml-generate-nov-databases-1): Made interactive.
+
+	* gnus-msg.el (gnus-inews-narrow-to-headers): Removed.
+	(gnus-post-news): Add `to-list' to the right group.
+
 Fri Mar 14 20:11:01 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 	* gnus.el: Gnus v5.4.26 is released.
 
 	* nnfolder.el (nnfolder-generate-active-file): Didn't work.
 
-Fri Mar 14 12:07:12 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-	* gnus-msg.el (gnus-extended-version): Add XEmacs beta # to
-	default X-Mailer/X-Newsreader.
-
 Sun Mar  9 18:38:37 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 	* gnus.el: Gnus v5.4.25 is released.

lisp/gnus/gnus-group.el

   ;; Transform the select method into a unique server.
   (let ((saddr (intern (format "%s-address" (car method)))))
     (setq method (gnus-copy-sequence method))
-    (unless (assq saddr method)
-      (nconc method `((,saddr ,(cadr method)))))
-    (setf (cadr method) (format "%s-%d" (cadr method)
-				(incf gnus-ephemeral-group-server))))
+    (require (car method))
+    (when (boundp saddr)
+      (unless (assq saddr method)
+	(nconc method `((,saddr ,(cadr method)))))
+      (setf (cadr method) (format "%s-%d" (cadr method)
+				  (incf gnus-ephemeral-group-server)))))
   (let ((group (if (gnus-group-foreign-p group) group
 		 (gnus-group-prefixed-name group method))))
     (gnus-sethash

lisp/gnus/gnus-load.el

 (put 'nnmail 'custom-loads '("nnmail"))
 (put 'gnus-article-emphasis 'custom-loads '("gnus-art"))
 (put 'gnus-article-headers 'custom-loads '("gnus-sum" "gnus-art"))
-(put 'gnus-newsrc 'custom-loads '("gnus-start"))
 (put 'nnmail-procmail 'custom-loads '("nnmail"))
 (put 'gnus-score-kill 'custom-loads '("gnus-kill"))
 (put 'gnus-visual 'custom-loads '("smiley" "gnus" "gnus-picon" "gnus-art" "earcon"))
 (put 'gnus-score-expire 'custom-loads '("gnus-score" "gnus-kill"))
-(put 'gnus-exit 'custom-loads '("gnus-group"))
 (put 'gnus-summary-maneuvering 'custom-loads '("gnus-sum"))
 (put 'gnus-start 'custom-loads '("gnus" "gnus-util" "gnus-start" "gnus-int" "gnus-group"))
 (put 'gnus-extract-view 'custom-loads '("gnus-uu" "gnus-sum"))
 (put 'gnus-summary-exit 'custom-loads '("gnus-sum"))
 (put 'news 'custom-loads '("message" "gnus"))
 (put 'gnus 'custom-loads '("nnmail" "gnus" "gnus-win" "gnus-uu" "gnus-eform" "gnus-dup" "gnus-demon" "gnus-cache" "gnus-async" "gnus-art"))
-(put 'gnus-server 'custom-loads '("gnus"))
 (put 'gnus-summary-visual 'custom-loads '("gnus-sum"))
 (put 'gnus-group-listing 'custom-loads '("gnus-group"))
 (put 'gnus-score 'custom-loads '("gnus" "gnus-nocem"))
 (put 'gnus-score-decay 'custom-loads '("gnus-score"))
 (put 'help 'custom-loads '("cus-edit"))
 (put 'gnus-nocem 'custom-loads '("gnus-nocem"))
-(put 'gnus-group-visual 'custom-loads '("gnus-group"))
 (put 'gnus-cite 'custom-loads '("gnus-cite"))
 (put 'gnus-demon 'custom-loads '("gnus-demon"))
 (put 'gnus-message 'custom-loads '("message"))
 (put 'external 'custom-loads '("cus-edit"))
 (put 'message-headers 'custom-loads '("message"))
 (put 'message-forwarding 'custom-loads '("message"))
+(put 'message-faces 'custom-loads '("message"))
 (put 'environment 'custom-loads '("cus-edit"))
 (put 'gnus-article-mime 'custom-loads '("gnus-sum" "gnus-art"))
 (put 'gnus-duplicate 'custom-loads '("gnus-dup"))
 (put 'widgets 'custom-loads '("wid-edit" "wid-browse"))
 (put 'earcon 'custom-loads '("earcon"))
 (put 'hypermedia 'custom-loads '("wid-edit"))
-(put 'gnus-group-levels 'custom-loads '("gnus-start" "gnus-group"))
+(put 'gnus-group-levels 'custom-loads '("gnus-group"))
 (put 'gnus-summary-format 'custom-loads '("gnus-sum"))
 (put 'gnus-files 'custom-loads '("nnmail" "gnus"))
 (put 'gnus-windows 'custom-loads '("gnus-win"))
 (put 'gnus-article-saving 'custom-loads '("gnus-art"))
 (put 'nnmail-expire 'custom-loads '("nnmail"))
 (put 'message-mail 'custom-loads '("message"))
-(put 'faces 'custom-loads '("wid-edit" "cus-edit" "gnus"))
+(put 'faces 'custom-loads '("wid-edit" "cus-edit" "message" "gnus"))
 (put 'gnus-summary-various 'custom-loads '("gnus-sum"))
 (put 'applications 'custom-loads '("cus-edit"))
-(put 'gnus-start-server 'custom-loads '("gnus-start"))
 (put 'gnus-extract-archive 'custom-loads '("gnus-uu"))
 (put 'message 'custom-loads '("message"))
 (put 'message-sending 'custom-loads '("message"))
 (put 'gnus-extract-post 'custom-loads '("gnus-uu"))
 (put 'mail 'custom-loads '("message" "gnus"))
 (put 'gnus-summary-sort 'custom-loads '("gnus-sum"))
-(put 'gnus-group-new 'custom-loads '("gnus-start"))
 (put 'customize 'custom-loads '("wid-edit" "custom" "cus-face" "cus-edit"))
 (put 'nnmail-split 'custom-loads '("nnmail"))
 (put 'gnus-asynchronous 'custom-loads '("gnus-async"))
-(put 'gnus-dribble-file 'custom-loads '("gnus-start"))
 (put 'gnus-article-highlight 'custom-loads '("gnus-art"))
 (put 'gnus-extract 'custom-loads '("gnus-uu"))
 (put 'gnus-article 'custom-loads '("gnus-cite" "gnus-art"))
 (put 'gnus-group-foreign 'custom-loads '("gnus-group"))
 (put 'programming 'custom-loads '("cus-edit"))
-(put 'message-sending 'custom-loads '("message"))
 (put 'nnmail-prepare 'custom-loads '("nnmail"))
 (put 'picons 'custom-loads '("gnus-picon"))
 (put 'gnus-article-signature 'custom-loads '("gnus-art"))

lisp/gnus/gnus-msg.el

 		(message-mail (or to-address to-list))
 		;; Arrange for mail groups that have no `to-address' to
 		;; get that when the user sends off the mail.
-		(push (list 'gnus-inews-add-to-address group)
+		(push (list 'gnus-inews-add-to-address pgroup)
 		      message-send-actions))
 	    (set-buffer gnus-article-copy)
 	    (message-wide-reply to-address)))
      ;; Use the normal select method.
      (t gnus-select-method))))
 
-(defun gnus-inews-narrow-to-headers ()
-  (widen)
-  (narrow-to-region
-   (goto-char (point-min))
-   (or (and (re-search-forward
-	     (concat "^" (regexp-quote mail-header-separator) "$") nil t)
-	    (match-beginning 0))
-       (point-max)))
-  (goto-char (point-min)))
-
 ;;;
 ;;; Check whether the message has been sent already.
 ;;;
 (defun gnus-inews-reject-message ()
   "Check whether this message has already been sent."
   (when gnus-sent-message-ids-file
-    (let ((message-id (save-restriction (gnus-inews-narrow-to-headers)
+    (let ((message-id (save-restriction (message-narrow-to-headers)
 					(mail-fetch-field "message-id")))
 	  end)
       (when message-id
     (save-excursion
       (save-restriction
 	(widen)
-	(gnus-inews-narrow-to-headers)
+	(message-narrow-to-headers)
 	(let (gnus-deletable-headers)
 	  (if (message-news-p)
 	      (message-generate-headers message-required-news-headers)
   "Insert Gcc headers based on `gnus-outgoing-message-group'."
   (save-excursion
     (save-restriction
-      (gnus-inews-narrow-to-headers)
+      (message-narrow-to-headers)
       (let* ((group gnus-outgoing-message-group)
 	     (gcc (cond
 		   ((gnus-functionp group)
 	(setq groups (list groups)))
       (save-excursion
 	(save-restriction
-	  (gnus-inews-narrow-to-headers)
+	  (message-narrow-to-headers)
 	  (goto-char (point-max))
 	  (insert "Gcc: ")
 	  (if (and gnus-newsgroup-name

lisp/gnus/gnus-srvr.el

 	(push (cdar alist) done)
 	(cdr (setq server (pop alist)))
 	(when (and server (car server) (cdr server))
-	  (gnus-server-insert-server-line (car server) (cdr server)))))
+	  (gnus-server-insert-server-line (car server) (cdr server))))
+      (when (member (cdar alist) done)
+	(pop alist)))
     ;; Then we insert the list of servers that have been opened in
     ;; this session.
     (while opened

lisp/gnus/gnus-sum.el

 		 (const more)
 		 (sexp :menu-tag "all" t)))
 
-(defcustom gnus-summary-thread-gathering-function 'gnus-gather-threads-by-subject
+(defcustom gnus-summary-thread-gathering-function
+  'gnus-gather-threads-by-subject
   "Function used for gathering loose threads.
 There are two pre-defined functions: `gnus-gather-threads-by-subject',
 which only takes Subjects into consideration; and
 	type list newmarked symbol)
     (when info
       ;; Add all marks lists that are non-nil to the list of marks lists.
-      (while types
-	(setq type (pop types))
+      (while (setq type (pop types))
 	(when (setq list (symbol-value
 			  (setq symbol
 				(intern (format "gnus-newsgroup-%s"
 						(car type))))))
+
+	  ;; Get rid of the entries of the articles that have the
+	  ;; default score.
+	  (when (and (eq (cdr type) 'score)
+		     gnus-save-score
+		     list)
+	    (let* ((arts list)
+		   (prev (cons nil articles))
+		   (all prev))
+	      (while arts
+		(if (or (not (consp (car arts)))
+			(= (cdar arts) gnus-summary-default-score))
+		    (setcdr prev (cdr arts))
+		  (setq prev arts))
+		(setq arts (cdr arts)))
+	      (setq list (cdr all))))
+
 	  (push (cons (cdr type)
 		      (if (memq (cdr type) uncompressed) list
 			(gnus-compress-sequence
 	 xref-hashtb)))))
 
 (defun gnus-group-make-articles-read (group articles)
-  "Update the info of GROUP to say that only ARTICLES are unread."
+  "Update the info of GROUP to say that ARTICLES are read."
   (let* ((num 0)
 	 (entry (gnus-gethash group gnus-newsrc-hashtb))
 	 (info (nth 2 entry))
 	    ;; Message-ID.
 	    (progn
 	      (goto-char p)
-	      (setq id (if (search-forward "\nmessage-id: " nil t)
-			   (nnheader-header-value)
+	      (setq id (if (search-forward "\nmessage-id:" nil t)
+			   (buffer-substring
+			    (1- (or (search-forward "<" nil t) (point)))
+			    (or (search-forward ">" nil t) (point)))
 			 ;; If there was no message-id, we just fake one
 			 ;; to make subsequent routines simpler.
 			 (nnheader-generate-fake-message-id))))
     (gnus-article-setup-buffer)
     (set-buffer gnus-article-buffer)
     (setq buffer-read-only nil)
-    (let ((command (if automatic command (read-string "Command: " command)))
-	  ;; Just binding this here doesn't help, because there might
-	  ;; be output from the process after exiting the scope of
-	  ;; this `let'.
-	  ;; (buffer-read-only nil)
-	  )
+    (let ((command (if automatic command (read-string "Command: " command))))
       (erase-buffer)
       (insert "$ " command "\n\n")
       (if gnus-view-pseudo-asynchronously
-	  (start-process "gnus-execute" nil shell-file-name
+	  (start-process "gnus-execute" (current-buffer) shell-file-name
 			 shell-command-switch command)
 	(call-process shell-file-name nil t nil
 		      shell-command-switch command)))))

lisp/gnus/gnus.el

   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "5.4.26"
+(defconst gnus-version-number "5.4.28"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Gnus v%s" gnus-version-number)

lisp/gnus/message.el

     (unless (file-exists-p message-autosave-directory)
       (make-directory message-autosave-directory t))
     (let ((name (make-temp-name
-		 (concat (file-name-as-directory message-autosave-directory)
-			 "msg."))))
+		 (expand-file-name
+		  (concat (file-name-as-directory message-autosave-directory)
+			  "msg.")))))
       (setq buffer-auto-save-file-name
 	    (save-excursion
 	      (prog1

lisp/gnus/nndoc.el

 (defvoo nndoc-article-type 'guess
   "*Type of the file.
 One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
-`rfc934', `mime-digest', `standard-digest', `slack-digest',
-`clari-briefs' or `guess'.")
+`rfc934', `rfc822-forward', `mime-digest', `standard-digest',
+`slack-digest', `clari-briefs' or `guess'.")
 
 (defvoo nndoc-post-type 'mail
   "*Whether the nndoc group is `mail' or `post'.")
      (prepare-body-function . nndoc-unquote-dashes)
      (subtype digest guess))
     (lanl-gov-announce
-      (article-begin . "^\\\\\\\\\n")
-      (head-begin . "^Paper.*:")
-      (head-end   . "\\(^\\\\\\\\.*\n\\|-----------------\\)")
-      (body-begin . "")
-      (body-end   . "-------------------------------------------------")
-      (file-end   . "^Title: Recent Seminal")
-      (generate-head-function . nndoc-generate-lanl-gov-head)
-      (article-transform-function . nndoc-transform-lanl-gov-announce)
-      (subtype preprints guess))
+     (article-begin . "^\\\\\\\\\n")
+     (head-begin . "^Paper.*:")
+     (head-end   . "\\(^\\\\\\\\.*\n\\|-----------------\\)")
+     (body-begin . "")
+     (body-end   . "-------------------------------------------------")
+     (file-end   . "^Title: Recent Seminal")
+     (generate-head-function . nndoc-generate-lanl-gov-head)
+     (article-transform-function . nndoc-transform-lanl-gov-announce)
+     (subtype preprints guess))
+    (rfc822-forward
+     (article-begin . "^\n")
+     (body-end-function . nndoc-rfc822-forward-body-end-function))
     (guess
      (guess . t)
      (subtype nil))
      (subtype nil))
     (preprints
      (guess . t)
-     (subtype nil))
-    ))
+     (subtype nil))))
 
 
 
 	     (not (re-search-forward "^From:" nil t 2)))
     t))
 
+(defun nndoc-rfc822-forward-type-p ()
+  (save-restriction
+    (message-narrow-to-head)
+    (when (re-search-forward "^Content-Type: *message/rfc822" nil t)
+      t)))
+
+(defun nndoc-rfc822-forward-body-end-function ()
+  (goto-char (point-max)))
+
 (defun nndoc-clari-briefs-type-p ()
   (when (let ((case-fold-search nil))
 	  (re-search-forward "^\t[^a-z]+ ([^a-z]+) --" nil t))

lisp/gnus/nneething.el

 
 ;;; Commentary:
 
-;; Based on nnspool.el by Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>.
-;; For an overview of what the interface functions do, please see the
-;; Gnus sources.
-
 ;;; Code:
 
 (require 'nnheader)
 (nnoo-declare nneething)
 
 (defvoo nneething-map-file-directory "~/.nneething/"
-  "*Where nneething stores the map files.")
+  "Where nneething stores the map files.")
 
 (defvoo nneething-map-file ".nneething"
-  "*Name of the map files.")
+  "Name of the map files.")
 
 (defvoo nneething-exclude-files nil
-  "*Regexp saying what files to exclude from the group.
+  "Regexp saying what files to exclude from the group.
 If this variable is nil, no files will be excluded.")
 
 
 (defvoo nneething-message-id-number 0)
 (defvoo nneething-work-buffer " *nneething work*")
 
-(defvoo nneething-directory nil)
 (defvoo nneething-group nil)
 (defvoo nneething-map nil)
 (defvoo nneething-read-only nil)
 	     (insert "\n"))
 	   t))))
 
-(deffoo nneething-request-group (group &optional dir dont-check)
-  (nneething-possibly-change-directory group dir)
+(deffoo nneething-request-group (group &optional server dont-check)
+  (nneething-possibly-change-directory group server)
   (unless dont-check
     (nneething-create-mapping)
     (if (> (car nneething-active) (cdr nneething-active))

lisp/gnus/nnfolder.el

 	 (nnfolder-delete-mail))
        (when last
 	 (nnfolder-save-buffer)
-	 (nnfolder-adjust-min-active group))))
+	 (nnfolder-adjust-min-active group)
+	 (nnmail-save-active nnfolder-group-alist nnfolder-active-file))))
     result))
 
 (deffoo nnfolder-request-accept-article (group &optional server last)
 	 (marker (concat "\n" nnfolder-article-marker))
 	 (number "[0-9]+")
 	 (activemin (cdr active)))
-    (goto-char (point-min))
-    (while (and (search-forward marker nil t)
-		(re-search-forward number nil t))
-      (setq activemin (min activemin
-			   (string-to-number (buffer-substring
-					      (match-beginning 0)
-					      (match-end 0))))))
-    (setcar active activemin)))
+    (save-excursion
+      (set-buffer nnfolder-current-buffer)
+      (goto-char (point-min))
+      (while (and (search-forward marker nil t)
+		  (re-search-forward number nil t))
+	(setq activemin (min activemin
+			     (string-to-number (buffer-substring
+						(match-beginning 0)
+						(match-end 0))))))
+      (setcar active activemin))))
 
 (defun nnfolder-article-string (article)
   (if (numberp article)
   (when (and server
 	     (not (nnfolder-server-opened server)))
     (nnfolder-open-server server))
+  (unless (gnus-buffer-live-p nnfolder-current-buffer)
+    (setq nnfolder-current-buffer nil
+	  nnfolder-current-group nil))
   ;; Change group.
   (when (and group
 	     (not (equal group nnfolder-current-group)))
       (push (list group (cons 1 0)) nnfolder-group-alist)
       (nnmail-save-active nnfolder-group-alist nnfolder-active-file))
 
-    (unless dont-check
+    (if dont-check
+	(setq nnfolder-current-group group)
       (let (inf file)
 	;; If we have to change groups, see if we don't already have the
 	;; folder in memory.  If we do, verify the modtime and destroy

lisp/gnus/nnheader.el

 	  ;; a case (which basically was the old function) is actually
 	  ;; about twice as fast, even though it looks messier.	 You
 	  ;; can't have everything, I guess.  Speed and elegance
-	  ;; doesn't always go hand in hand.
+	  ;; don't always go hand in hand.
 	  (vector
 	   ;; Number.
 	   (if naked
 	   ;; Message-ID.
 	   (progn
 	     (goto-char p)
-	     (if (search-forward "\nmessage-id: " nil t)
-		 (nnheader-header-value)
+	     (if (search-forward "\nmessage-id:" nil t)
+		 (buffer-substring
+		  (1- (or (search-forward "<" nil t) (point)))
+		  (or (search-forward ">" nil t) (point)))
 	       ;; If there was no message-id, we just fake one to make
 	       ;; subsequent routines simpler.
 	       (nnheader-generate-fake-message-id)))

lisp/gnus/nnmail.el

   :group 'nnmail-files
   :type 'function)
 
-(defcustom nnmail-crosspost-link-function 'add-name-to-file
+(defcustom nnmail-crosspost-link-function
+  (if (string-match "windows-nt\\|emx" (format "%s" system-type))
+      'copy-file
+    'add-name-to-file)
   "Function called to create a copy of a file.
 This is `add-name-to-file' by default, which means that crossposts
 will use hard links.  If your file system doesn't allow hard

lisp/gnus/nnml.el

 
 ;;;###autoload
 (defun nnml-generate-nov-databases ()
-  "Generate nov databases in all nnml directories."
+  "Generate NOV databases in all nnml directories."
   (interactive)
   ;; Read the active file to make sure we don't re-use articles
   ;; numbers in empty groups.
   (nnmail-save-active nnml-group-alist nnml-active-file))
 
 (defun nnml-generate-nov-databases-1 (dir &optional seen)
+  "Regenerate the NOV database in DIR."
+  (interactive "DRegenerate NOV in: ")
   (setq dir (file-name-as-directory dir))
   ;; Only scan this sub-tree if we haven't been here yet.
   (unless (member (file-truename dir) seen)

lisp/prim/auto-autoloads.el

 ;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el")
 
 (autoload 'nnml-generate-nov-databases "nnml" "\
-Generate nov databases in all nnml directories." t nil)
+Generate NOV databases in all nnml directories." t nil)
 
 ;;;***
 
 ;;;### (autoloads (ksh-mode) "ksh-mode" "modes/ksh-mode.el")
 
 (autoload 'ksh-mode "ksh-mode" "\
-ksh-mode $Revision: 1.13 $ - Major mode for editing (Bourne, Korn or Bourne again)
+ksh-mode $Revision: 1.14 $ - Major mode for editing (Bourne, Korn or Bourne again)
 shell scripts.
 Special key bindings and commands:
 \\{ksh-mode-map}
 
 (autoload 'vhdl-mode "vhdl-mode" "\
 Major mode for editing VHDL code.
-vhdl-mode $Revision: 1.13 $
+vhdl-mode $Revision: 1.14 $
 To submit a problem report, enter `\\[vhdl-submit-bug-report]' from a
 vhdl-mode buffer.  This automatically sets up a mail buffer with version
 information already added.  You just need to add a description of the

lisp/prim/custom-load.el

 (put 'gnus-article-washing 'custom-loads '("gnus-art"))
 (put 'mail 'custom-loads '("gnus" "message"))
 (put 'gnus-summary-exit 'custom-loads '("gnus-sum"))
-(put 'comint-input-face 'custom-loads '("comint"))
+(put 'comint-input-face 'custom-loads '("comint-xemacs"))
 (put 'gnus-article-saving 'custom-loads '("gnus-art"))
 (put 'gnus-extract-view 'custom-loads '("gnus-sum" "gnus-uu"))
 (put 'gnus-group-listing 'custom-loads '("gnus-group"))
 (put 'gnus-summary 'custom-loads '("gnus-sum" "gnus"))
-(put 'message-headers 'custom-loads '("auto-autoloads" "message"))
+(put 'message-headers 'custom-loads '("message"))
 (put 'gnus-group-select 'custom-loads '("gnus-sum"))
-(put 'display-time 'custom-loads '("time" "auto-autoloads"))
+(put 'display-time 'custom-loads '("time"))
 (put 'hypermedia 'custom-loads '("wid-edit"))
 (put 'w3-advanced 'custom-loads '("w3-cus"))
 (put 'w3-menus 'custom-loads '("w3-cus"))
 (put 'help 'custom-loads '("cus-edit"))
 (put 'nnmail-split 'custom-loads '("nnmail"))
 (put 'gnus-article-various 'custom-loads '("gnus-art" "gnus-sum"))
-(put 'message-sending 'custom-loads '("auto-autoloads" "message"))
+(put 'message-sending 'custom-loads '("message"))
 (put 'w3-files 'custom-loads '("w3-cus"))
 (put 'widget-browse 'custom-loads '("wid-browse"))
 (put 'gnus-article 'custom-loads '("gnus-art" "gnus-cite"))
 (put 'gnus-summary-choose 'custom-loads '("gnus-sum"))
 (put 'development 'custom-loads '("cus-edit"))
 (put 'gnus-windows 'custom-loads '("gnus-win"))
-(put 'message-mail 'custom-loads '("auto-autoloads" "message"))
-(put 'message-various 'custom-loads '("auto-autoloads" "message"))
+(put 'message-mail 'custom-loads '("message"))
+(put 'message-various 'custom-loads '("message"))
 (put 'gnus-group-levels 'custom-loads '("gnus-group"))
 (put 'languages 'custom-loads '("cus-edit"))
 (put 'gnus-summary-format 'custom-loads '("gnus-sum"))
 (put 'emacs 'custom-loads '("cus-edit" "dired-faces"))
 (put 'news 'custom-loads '("gnus" "message"))
 (put 'w3-hooks 'custom-loads '("w3-cus"))
-(put 'message-insertion 'custom-loads '("auto-autoloads" "message"))
+(put 'message-insertion 'custom-loads '("message"))
 (put 'wp 'custom-loads '("cus-edit"))
 (put 'message-faces 'custom-loads '("message"))
 (put 'gnus-score-files 'custom-loads '("gnus-score"))

lisp/utils/autoload.el

   (let ((visited (get-file-buffer file)))
     (save-excursion
       (set-buffer (or visited (find-file-noselect file)))
-      (when (and file (string-match "\\`\\(.*\\)\\.el\\'" file))
+      (when (and file
+		 (string-match "\\`\\(.*\\)\\.el\\'" file)
+		 (not (buffer-modified-p)))
 	(goto-char (point-min))
 	(condition-case nil
 	    (let ((name (file-name-nondirectory (match-string 1 file))))
 (defconst emacs-version "19.15" "\
 Version numbers of this version of Emacs.")
 
-(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta99)")))
+(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta100)")))
 
 (defconst emacs-major-version
   (progn (or (string-match "^[0-9]+" emacs-version)
 @comment  node-name,  next,  previous,  up
 @top The Customization Library
 
-Version: 1.63
+Version: 1.64
 
 @menu
 * Introduction::                
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Gnus 5.4 Manual
+@settitle Gnus 5.4.28 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @tex
 
 @titlepage
-@title Gnus 5.4 Manual
+@title Gnus 5.4.28 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1995,96 Free Software Foundation, Inc. 
+Copyright @copyright{} 1995,96,97 Free Software Foundation, Inc. 
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Gnus 5.4.
+This manual corresponds to Gnus 5.4.28
 
 @end ifinfo
 
 command, you will be prompted for a file name and a file type.
 Currently supported types are @code{babyl}, @code{mbox}, @code{digest},
 @code{mmdf}, @code{news}, @code{rnews}, @code{clari-briefs},
-@code{rfc934} and @code{forward}.  If you run this command without a
-prefix, Gnus will guess at the file type.  @xref{Document Groups}.
+@code{rfc934}, @code{rfc822-forward}, and @code{forward}.  If you run
+this command without a prefix, Gnus will guess at the file type.
+@xref{Document Groups}.
 
 @item G w
 @kindex G w (Group)
 followup---except that if it is present in a news group, you'll get mail
 group semantics when doing @kbd{f}.
 
+If you do an @kbd{a} command in a mail group and you don't have a
+@code{to-list} group parameter, one will be added automatically upon
+sending the message.
+
 @item broken-reply-to
 @cindex broken-reply-to
 Elements like @code{(broken-reply-to . t)} signals that @code{Reply-To}
 
 @vindex nnmail-expiry-wait
 The @code{nnmail-expiry-wait} variable supplies the default time an
-expirable article has to live.  The default is seven days.  
+expirable article has to live.  Gnus starts counting days from when the
+message @emph{arrived}, not from when it was sent.  The default is seven
+days.
 
 Gnus also supplies a function that lets you fine-tune how long articles
 are to live, based on what group they are in.  Let's say you want to
 @item nndoc-article-type
 @vindex nndoc-article-type
 This should be one of @code{mbox}, @code{babyl}, @code{digest},
-@code{mmdf}, @code{forward}, @code{rfc934}, @code{news}, @code{rnews},
-@code{mime-digest}, @code{clari-briefs}, or @code{guess}.
+@code{mmdf}, @code{forward}, @code{rfc934}, @code{rfc822-forward},
+@code{news}, @code{rnews}, @code{mime-digest}, @code{clari-briefs}, or
+@code{guess}.
 
 @item nndoc-post-type
 @vindex nndoc-post-type
 
 Adrian Aichner,
 Peter Arius, 
+Matt Armstrong,
 Marc Auslander,
 Chris Bone,
 Mark Borges,
 Shlomo Mahlab,
 Nat Makarevitch,
 David Martin,
+Gordon Matzigkeit,
 Timo Metzemakers,
 Richard Mlynarik,
 Lantz Moore,
 Loren Schall,
 Dan Schmidt,
 Ralph Schleicher,
+Philippe Schnoebelen,
 Randal L. Schwartz,
 Danny Siu, 
 Paul D. Smith,

man/internals/internals.texi

 version 19.12 released June 23, 1995.
 @item
 version 19.13 released September 1, 1995.
+@item
+version 19.14 released June 23, 1996.
+@item
+version 20.0 released February 9, 1997.
 @end itemize
 
 @node GNU Emacs 19
 version 19.28 (first ``official'' release) released November 1, 1994.
 @item
 version 19.29 released June 21, 1995.
+@item
+version 19.30 released November 24, 1995.
+@item
+version 19.31 released May 25, 1996.
+@item
+version 19.32 released July 31, 1996.
+@item
+version 19.33 released August 11, 1996.
+@item
+version 19.34 released August 21, 1996.
+@item
+version 19.34b released September 6, 1996.
 @end itemize
 
 @cindex Mlynarik, Richard
 \input texinfo.tex
 
-@c $Id: widget.texi,v 1.8 1997/03/16 05:56:07 steve Exp $
+@c $Id: widget.texi,v 1.9 1997/03/18 04:23:28 steve Exp $
 
 @c %**start of header
 @setfilename widget
 @comment  node-name,  next,  previous,  up
 @top The Emacs Widget Library
 
-Version: 1.63
+Version: 1.64
 
 @menu
 * Introduction::                

src/Makefile.in.in

 	else true; fi
 	@touch SATISFIED
 	-$(DUMPENV) ./temacs -nl -batch -l loadup.el dump
-	@if [ -f SATISFIED ]; then \
+	@if [ ! -f SATISFIED ]; then \
 		$(MAKE) release; \
 	fi
+	@/bin/rm -f SATISFIED
 #else /* ! defined (HAVE_SHM) */
 	-if [ -w ${srcdir}/../lisp ]; then \
 	  w=`pwd`; cd ${srcdir}; $${w}/temacs -batch -l inc-vers; \
 	else true; fi
 	@touch SATISFIED
 	-$(DUMPENV) ./temacs -batch -l loadup.el dump
-	@if [ -f SATISFIED ]; then \
+	@if [ ! -f SATISFIED ]; then \
 		$(MAKE) release; \
 	fi
+	@/bin/rm -f SATISFIED
 #endif /* ! defined (HAVE_SHM) */
 	touch release
 #endif /* ! defined (CANNOT_DUMP) */
 xemacs: temacs ${libsrc}DOC ${lisp} MOFILE OTHER_FILES
 	@touch SATISFIED
 	-$(DUMPENV) ./temacs -batch -l loadup.el dump
-	@if [ -f SATISFIED ]; then \
+	@if [ ! -f SATISFIED ]; then \
 		$(MAKE) xemacs; \
 	fi
+	@/bin/rm -f SATISFIED
 
 xemacs-no-site-file: temacs ${libsrc}DOC ${lisp} MOFILE OTHER_FILES
 	@touch SATISFIED
 	@if [ -f SATISFIED ]; then \
 		$(MAKE) xemacs-no-site-file; \
 	fi
+	@/bin/rm -f SATISFIED
 
 obj_src = $(objs:.o=.c)
 
 ${libsrc}DOC: ${libsrc}make-docfile ${obj_src} ${lisp}
 #endif
 	rm -f ${libsrc}DOC
-	${libsrc}make-docfile -d ${srcdir} -i ${lispdir}../site-packages \
+	${libsrc}make-docfile -d ${srcdir} -i ../site-packages \
 		${obj_src} \
 	        ${mallocdocsrc} ${rallocdocsrc} ${lispdir}version.el \
 		${lisp} > ${libsrc}DOC
   clear_message ();
 
   if (rc < 0) {
+    (void)unlink("SATISFIED");
     fatal ("Pure size adjusted, will restart `make'");
   } else if (pure_lossage && die_if_pure_storage_exceeded) {
     fatal ("Pure storage exhausted");
   }
-  (void)sys_unlink("SATISFIED");
 }
 
 
 		    return GIF_ERROR;
 		}
 	    }
+
+	  /* Only get 1 image from animated gifs. */
+	  /* #### if the rest of the file was bad, we still return
+	     GIF_OK, since we don't even bother looking at it.  Should
+	     probably check for ImageCount == 1 above too, hmm. */
+	  goto done;
 	  break;
 
 	case EXTENSION_RECORD_TYPE:
     }
   while (RecordType != TERMINATE_RECORD_TYPE);
 
+ done:
+
   return GIF_OK;
 }
 

src/redisplay-x.c

   GC gc;
   XGCValues gcv;
   unsigned long pixmap_mask;
+  int need_clipping = (clip_x || clip_y);
 
   if (!override_gc)
     {
 	  gcv.clip_y_origin = y - pixmap_offset;
 	  pixmap_mask |= (GCFunction | GCClipMask | GCClipXOrigin |
 			  GCClipYOrigin);
+	  /* Can't set a clip rectangle below because we already have a mask.
+	     We could conceivably create a new clipmask by zeroing out
+	     everything outside the clip region.  Is it worth it? 
+	     Is it possible to get an equivalent effect by changing the
+	     args to XCopyArea below rather than messing with a clip box?
+	     - dkindred@cs.cmu.edu */
+	  need_clipping = 0; 
 	}
 
       gc = gc_cache_lookup (DEVICE_X_GC_CACHE (d), &gcv, pixmap_mask);
     }
   else
-    gc = override_gc;
+    {
+      gc = override_gc;
+      /* override_gc might have a mask already--we don't want to nuke it.
+	 Maybe we can insist that override_gc have no mask, or use
+	 one of the suggestions above. */
+      need_clipping = 0;
+    }
 
-  if (clip_x || clip_y)
+  if (need_clipping)
     {
       XRectangle clip_box[1];
 
 		  1L);
     }
 
-  if (clip_x || clip_y)
+  if (need_clipping)
     {
       XSetClipMask (dpy, gc, None);
       XSetClipOrigin (dpy, gc, 0, 0);
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.