diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/.cvsignore greed/.cvsignore
--- greed-clean/.cvsignore	1970-01-01 01:00:00.000000000 +0100
+++ greed/.cvsignore	2004-05-24 22:32:15.000000000 +0100
@@ -0,0 +1 @@
+build
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/ChangeLog greed/ChangeLog
--- greed-clean/ChangeLog	1970-01-01 01:00:00.000000000 +0100
+++ greed/ChangeLog	2002-11-25 20:02:41.000000000 +0000
@@ -0,0 +1,15 @@
+2002-11-25  Richard Kettlewell  <rjk@greenend.org.uk>
+
+	* greed.el: highlighting of index and item buffers (ages ago, but
+	I didn't write a changelog)
+	(greed-index-mouse-item): mouse click in the index and the item is
+	selected.  Click again on the same item and it scrolls.  It
+	doesn't chain to the next item or anything at the end though -
+	this is deliberate, to stop confusion regarding where the mouse is
+	then pointing.
+	(greed-item-buffer-name): make item buffers visible (i.e. not have
+	a space at the beginning).  GNU Emacs won't fontify invisible
+	buffers even if they are actually displayed.
+
+	* use standard ChangeLog format
+
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/Makefile greed/Makefile
--- greed-clean/Makefile	2000-08-07 10:10:55.000000000 +0100
+++ greed/Makefile	2002-11-26 12:15:08.000000000 +0000
@@ -36,7 +36,11 @@
 	texi2dvi greed.texi
 
 clean:
-	rm greed.elc greed-md5.elc greed-help-macro.elc greed.info
+	rm -f greed.elc greed-md5.elc greed-help-macro.elc greed.info
+
+distclean: clean
+	rm -f greed.aux greed.cp greed.cps greed.dvi greed.fn greed.ky
+	rm -f greed.log greed.pg greed.toc greed.tp greed.vr greed.vrs
 
 dist:
 	echo greed-`sed -e '/defconst greed-version/!d' \
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/debian/.cvsignore greed/debian/.cvsignore
--- greed-clean/debian/.cvsignore	1970-01-01 01:00:00.000000000 +0100
+++ greed/debian/.cvsignore	2004-05-24 22:32:21.000000000 +0100
@@ -0,0 +1,2 @@
+files
+tmp
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/debian/changelog greed/debian/changelog
--- greed-clean/debian/changelog	2000-08-08 19:45:13.000000000 +0100
+++ greed/debian/changelog	2004-05-24 22:28:32.000000000 +0100
@@ -1,9 +1,20 @@
+groggs-greed (1.3.0a.rjk.2) unstable; urgency=low
+
+  * Change package name since there is another 'greed' in Debian now.
+
+ -- Richard Kettlewell <rjk@greenend.org.uk>  Mon, 24 May 2004 22:27:37 +0100
+
+greed (1.3.0a.rjk.1) unstable; urgency=low
+
+  * Fontification and some mouse support.  Byte-compile at runtime in
+    the usual Debian way.
+
+ -- Richard Kettlewell <rjk@greenend.org.uk>  Mon, 25 Nov 2002 19:55:46 +0000
+
 greed (1.3.0a) unstable; urgency=low
 
   * Initial Debianisation
 
  -- Owen Dunn <owend@chiark.greenend.org.uk>  Tue,  8 Aug 2000 19:21:40 +0100
 
-Local variables:
-mode: debian-changelog
-End:
+
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/debian/control greed/debian/control
--- greed-clean/debian/control	2000-08-08 19:45:13.000000000 +0100
+++ greed/debian/control	2004-05-24 22:25:08.000000000 +0100
@@ -1,12 +1,12 @@
-Source: greed
+Source: groggs-greed
 Section: net
 Priority: optional
 Maintainer: Owen Dunn <owend@chiark.greenend.org.uk>
 Standards-Version: 3.0.1
 
-Package: greed
+Package: groggs-greed
 Architecture: all
-Depends: emacs19|emacs20|xemacs19|xemacs20|xemacs21
+Depends: emacsen|xemacs19|xemacs20|xemacs21
 Description: RGTP-based GROGGS reader for GNU Emacs and XEmacs
  GREED stands for "Groggs Reader/Editor with Emacs Display"
  and is a client that runs under GNU Emacs and XEmacs and can be used
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/debian/copyright greed/debian/copyright
--- greed-clean/debian/copyright	2000-08-08 19:45:13.000000000 +0100
+++ greed/debian/copyright	2002-11-25 19:56:30.000000000 +0000
@@ -1,4 +1,5 @@
-Greed is copyright 1995-6 by Gareth Rees, 2000 by Owen Dunn
+Greed is copyright 1995-6 by Gareth Rees, 2000 by Owen Dunn, 2002 by
+Richard Kettlewell
 
 Greed 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
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/debian/files greed/debian/files
--- greed-clean/debian/files	1970-01-01 01:00:00.000000000 +0100
+++ greed/debian/files	2004-05-24 22:27:52.000000000 +0100
@@ -0,0 +1,2 @@
+greed_1.3.0a.rjk.1_all.deb net optional
+groggs-greed_1.3.0a.rjk.2_all.deb net optional
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/debian/install greed/debian/install
--- greed-clean/debian/install	1970-01-01 01:00:00.000000000 +0100
+++ greed/debian/install	2004-05-24 22:25:41.000000000 +0100
@@ -0,0 +1,40 @@
+#! /bin/sh
+set -e
+
+FLAVOR="$1"
+PACKAGE=greed
+
+case "$FLAVOR" in
+emacs )
+  exit 0
+  ;;
+xemacs* )
+  SITEFLAG="-no-site-file"
+  ;;
+* )
+  SITEFLAG="--no-site-file"
+  ;;
+esac
+FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile"
+
+echo "install/$PACKAGE: Handling install for emacsen flavor $FLAVOR"
+
+ELDIR="/usr/share/emacs/site-lisp/${PACKAGE}"
+ELCDIR="/usr/share/${FLAVOR}/site-lisp/${PACKAGE}"
+
+install -m 755 -d "$ELCDIR"
+cd "$ELDIR"
+FILES=`echo *.el`
+ln ${FILES} "${ELCDIR}"
+cd "${ELCDIR}"
+cat <<EOF > path.el
+(setq load-path (cons "." load-path) byte-compile-warnings nil)
+EOF
+${FLAVOR} ${FLAGS} ${FILES}
+rm -f *.el path.el
+
+cat <<EOF > "/etc/${FLAVOR}/site-start.d/50greed.el"
+; automatically created file, editing would be a bad idea
+(setq load-path (cons "$ELCDIR" load-path))
+(autoload 'greed "greed" "Read Groggs" t)
+EOF
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/debian/postinst greed/debian/postinst
--- greed-clean/debian/postinst	1970-01-01 01:00:00.000000000 +0100
+++ greed/debian/postinst	2002-11-26 12:06:44.000000000 +0000
@@ -0,0 +1,9 @@
+#! /bin/sh
+set -e
+case "$1" in
+configure )
+  /usr/lib/emacsen-common/emacs-package-install greed
+  install-info --quiet --section Emacs Emacs \
+      /usr/share/info/greed.info.gz
+  ;;
+esac
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/debian/prerm greed/debian/prerm
--- greed-clean/debian/prerm	1970-01-01 01:00:00.000000000 +0100
+++ greed/debian/prerm	2002-11-26 12:06:55.000000000 +0000
@@ -0,0 +1,8 @@
+#! /bin/sh
+set -e
+case "$1" in
+remove )
+  /usr/lib/emacsen-common/emacs-package-remove greed
+  install-info --quiet --remove greed
+  ;;
+esac
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/debian/remove greed/debian/remove
--- greed-clean/debian/remove	1970-01-01 01:00:00.000000000 +0100
+++ greed/debian/remove	2002-11-26 11:30:30.000000000 +0000
@@ -0,0 +1,16 @@
+#! /bin/sh
+set -e
+
+FLAVOR="$1"
+PACKAGE=greed
+
+case "$FLAVOR" in
+emacs )
+  exit 0
+  ;;
+esac
+
+echo "remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR}"
+
+rm -rf "/usr/share/${FLAVOR}/site-lisp/${PACKAGE}"
+rm -f "/etc/${FLAVOR}/site-start.d/50greed.el"
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/debian/rules greed/debian/rules
--- greed-clean/debian/rules	2000-08-08 19:45:13.000000000 +0100
+++ greed/debian/rules	2004-05-24 22:26:17.000000000 +0100
@@ -9,7 +9,7 @@
 # paternity under the Copyright, Designs and Patents Act 1988.)
 # This file may have to be extensively modified
 
-package=greed
+package=groggs-greed
 
 build:
 	$(checkdir)
@@ -26,17 +26,22 @@
 	$(checkdir)
 	rm -rf debian/tmp
 	install -d debian/tmp/DEBIAN\
+		-d debian/tmp/usr/lib/emacsen-common/packages/install \
+		-d debian/tmp/usr/lib/emacsen-common/packages/remove \
 		-d debian/tmp/usr/share/doc/$(package)\
-		-d debian/tmp/usr/share/emacs/site-lisp\
-		-d debian/tmp/usr/info\
-		-d debian/tmp/etc/emacs/site-start.d
-	cp greed.el greed-md5.el greed-help-macro.el debian/tmp/usr/share/emacs/site-lisp
-	cp debian/50greed.el debian/tmp/etc/emacs/site-start.d
-	cp greed.info debian/tmp/usr/info
-	mv debian/tmp/usr/info debian/tmp/usr/share/info
+		-d debian/tmp/usr/share/emacs/site-lisp/$(package)\
+		-d debian/tmp/usr/share/info
+	install -m 755 debian/postinst debian/prerm debian/tmp/DEBIAN/
+	install -m 755 debian/install \
+		debian/tmp/usr/lib/emacsen-common/packages/install/$(package)
+	install -m 755 debian/remove \
+		debian/tmp/usr/lib/emacsen-common/packages/remove/$(package)
+	install -m 644 greed.el greed-md5.el greed-help-macro.el \
+		debian/tmp/usr/share/emacs/site-lisp/$(package)/
+	install -m 644 greed.info debian/tmp/usr/share/info
 	gzip -9v debian/tmp/usr/share/info/*
-	cp debian/copyright debian/tmp/usr/share/doc/$(package)/.
-	cp CHANGELOG debian/tmp/usr/share/doc/$(package)/changelog
+	install -m 644 debian/copyright debian/tmp/usr/share/doc/$(package)/
+	cat ChangeLog CHANGELOG > debian/tmp/usr/share/doc/$(package)/changelog
 	cd debian/tmp/usr/share/doc/$(package) && gzip -9v changelog
 	dpkg-gencontrol
 	chown -R root.root debian/tmp
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/greed.el greed/greed.el
--- greed-clean/greed.el	2000-08-07 10:20:00.000000000 +0100
+++ greed/greed.el	2002-11-26 11:58:49.000000000 +0000
@@ -81,6 +81,13 @@
       (if (not (featurep 'help-macro))
 	  (require 'help-screen)))))
 
+;; Events are opaque objects in XEmacs 21, but you have to interpret
+;; their structure in other versions.
+(defun greed-button-test (e)
+  (if (functionp 'button-press-event-p)
+      (button-press-event-p event)
+    (eq (car e) 'mouse-2)))
+
 
 ;;; Variables -----------------------------------------------------------------
 
@@ -296,6 +303,27 @@
 (defvar greed-old-window-config nil)	; Window config before reply composed.
 (defvar greed-action-to-be nil)		; What action to take (reply/new/etc).
 
+;; Variables related to highlighting
+
+(defvar greed-index-mode-font-lock-keywords
+  '(
+    ; highlight unread items
+    ("^\\*.*" 0 greed-unread-face)
+    )
+  "Font locking for Greed index buffer")
+(defvar greed-item-mode-font-lock-keywords
+  '(
+    ; highlight item headers
+    ("^Item [A-Z][0-9]+ from \\S-+@\\S-+ at [0-9]+\\.[0-9]+ on \\([A-Z][a-z]+ \\)?[0-9]+ [A-Z][a-z]+\\( [0-9]+\\)?$" 0 greed-item-header-face)
+    ("^Item [A-Z][0-9]+ from .* (\\S-+@\\S-+) at [0-9]+\\.[0-9]+ on \\([A-Z][a-z]+ \\)?[0-9]+ [A-Z][a-z]+\\( [0-9]+\\)?$" 0 greed-item-header-face)
+    ; highlight reply separators
+    ("^Reply from \\S-+@\\S-+ at [0-9]+\\.[0-9]+ on [A-Z][a-z]+ [0-9]+ [A-Z][a-z]+\\( [0-9]+\\)?$" 0 greed-reply-separator-face)
+    ("^Reply from .* (\\S-+@\\S-+) at [0-9]+\\.[0-9]+ on [A-Z][a-z]+ [0-9]+ [A-Z][a-z]+\\( [0-9]+\\)?$" 0 greed-reply-separator-face)
+    )
+  "Font locking for Greed item buffer")
+(defvar greed-syntax-table nil
+  "Syntax table for Greed index mode")
+
 
 ;;; XEmacs compatibility ------------------------------------------------------
 
@@ -355,6 +383,56 @@
     (setq menus (cdr menus))))
 
 
+;;; Customization -------------------------------------------------------------
+
+(defgroup greed nil
+  "Customization of Greed"
+  )
+
+(defface greed-unread-face
+  '(
+    (((class color) (background dark))
+     (:foreground "red"))
+    (((class color) (background light))
+     (:foreground "blue"))
+    (t
+     (:bold t))
+    )
+  "Face used for items with unread gossip"
+  :group 'greed
+  )
+(defvar greed-unread-face 'greed-unread-face
+  "Face used for items with unread gossip")
+
+(defface greed-item-header-face
+  '(
+    (((class color) (background dark))
+     (:foreground "green"))
+    (((class color) (background light))
+     (:foreground "green"))
+    (t
+     (:bold t))
+    )
+  "Face used for item headers"
+  :group 'greed)
+(defvar greed-item-header-face 'greed-item-header-face
+  "Face used for item headers")
+
+(defface greed-reply-separator-face
+  '(
+    (((class color) (background dark))
+     (:foreground "green"))
+    (((class color) (background light))
+     (:foreground "green"))
+    (t
+     (:bold t))
+    )
+  "Face used to for reply separators within items"
+  :group 'greed)
+(defvar greed-reply-separator-face 'greed-reply-separator-face
+  "Face used to for reply separators within items")
+
+
 ;;; Miscellaneous utilities ---------------------------------------------------
 
 ;; Print STRING to the buffer of logged messages.
@@ -914,6 +992,7 @@
   (define-key greed-index-mode-map "o" 'greed-options-help)
   (define-key greed-index-mode-map " " 'greed-index-scroll-item-forward)
   (define-key greed-index-mode-map "\177" 'greed-index-scroll-item-backward)
+  (define-key greed-index-mode-map [backspace] 'greed-index-scroll-item-backward)
   (define-key greed-index-mode-map "\r" 'greed-index-scroll-item-one-line)
   (define-key greed-index-mode-map "n" 'greed-index-next-item)
   (define-key greed-index-mode-map "p" 'greed-index-prev-item)
@@ -945,8 +1024,17 @@
   (define-key greed-index-mode-map "u" 'greed-index-unkill-item)
   (define-key greed-index-mode-map "v" 'greed-index-version)
   (define-key greed-index-mode-map "z" 'greed-index-suspend)
+  (define-key greed-index-mode-map [button2] 'greed-index-mouse-item)
+  (define-key greed-index-mode-map [mouse-2] 'greed-index-mouse-item)
   (define-key greed-index-mode-map "?" 'describe-mode))
 
+; We have a local syntax table because otherwise we get the standard one
+; which defines " as string delimeter, which makes no sense in an index
+; buffer (and mucks up the highlighting).  Ditto the item buffer.
+(if greed-syntax-table ()
+  (setq greed-syntax-table (make-syntax-table))
+  (modify-syntax-entry ?\" "." greed-syntax-table))
+
 (defun greed-index-mode ()
   "GREED Index Mode: a major mode for reading GROGGS.
 
@@ -1042,6 +1130,11 @@
   (greed-set-modified "--- ")
   (greed-install-menus greed-index-actions-menu greed-index-options-menu
 		       greed-index-edit-menu)
+  (set (make-local-variable 'font-lock-defaults)
+       '(greed-index-mode-font-lock-keywords nil nil nil nil))
+  (if (or greed-xemacs-p window-system)
+      (font-lock-mode))
+  (set-syntax-table greed-syntax-table)
   (run-hooks 'greed-index-mode-hook))
 
 ;; Select item N in the index buffer, where N starts at 1.
@@ -1501,6 +1594,23 @@
   (interactive "p")
   (greed-index-scroll-item lines))
 
+(defun greed-index-mouse-item (event)
+  "Jump to an item, scroll it if already there"
+  (interactive "e")
+  (cond ((greed-button-test event)
+	 (mouse-set-point event)
+	 (let ((s (greed-index-select-item (greed-index-current-data))))
+	   (cond ((eq s 0)		;item is already displayed
+		  (greed-index-scroll-item nil)
+		  )
+		 ((eq s 1)		;fetched but invisible (still)
+		  (greed-configure-windows)
+		  (greed-index-beginning-of-item)
+		  )
+		 ((eq s 3)		;we displayed it
+		  (greed-index-beginning-of-item)
+		  ))))))
+
 (defun greed-index-describe-briefly ()
   "Describe Index mode commands briefly."
   (interactive)
@@ -1920,6 +2030,11 @@
 		      (greed-item-identification greed-item-data))))
     (greed-set-buffer-identification (format "GREED: %s" id))
     (setq mode-name mn))
+  (set (make-local-variable 'font-lock-defaults)
+       '(greed-item-mode-font-lock-keywords nil nil nil nil))
+  (if (or greed-xemacs-p window-system)
+      (font-lock-mode))
+  (set-syntax-table greed-syntax-table)
   (use-local-map greed-item-mode-map)
   (buffer-disable-undo (current-buffer))
   (run-hooks 'greed-item-mode-hook))
@@ -2070,7 +2185,7 @@
 
 ;; Returns buffer name for item given by vector ITEM.
 (defun greed-item-buffer-name (item)
-  (concat " *Item-" (aref item greed-data-itemid) "*"))
+  (concat "*Item-" (aref item greed-data-itemid) "*"))
 
 ;; Returns name of the buffer for the current item.
 (defun greed-current-item-buffer-name ()
diff -ruN -xCVS -xTAGS -xgreed.info -xtmp greed-clean/greed.texi greed/greed.texi
--- greed-clean/greed.texi	2000-08-06 13:17:18.000000000 +0100
+++ greed/greed.texi	2002-11-25 19:37:30.000000000 +0000
@@ -19,9 +19,10 @@
 @sp 2
 @center Gareth Rees, November 1995 -- March 1996
 @center Owen Dunn, 2000
+@center Richard Kettlewell, 2002
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1995 Gareth Rees, 2000 Owen Dunn
+Copyright @copyright{} 1995 Gareth Rees, 2000 Owen Dunn, 2002 Richard Kettlewell
 @end titlepage
 @c ---------------------------------------------------------------------
 @node    Top,       Introduction, (dir),    (dir)
@@ -46,7 +47,8 @@
 @node Copying, Introduction, Top, Top
 @chapter Copyright and licence
 
-Greed is copyright @copyright{} 1995--6 by Gareth Rees, 2000 by Owen Dunn
+Greed is copyright @copyright{} 1995--6 by Gareth Rees, 2000 by Owen
+Dunn, 2002 by Richard Kettlewell
 
 Greed 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
@@ -476,6 +478,11 @@
 save it in.
 @cindex Saving items to files
 @end table
+
+In addition, if you are using a terminal with a mouse, you can use the
+Mouse-2 button in the index buffer to select an item, or to scroll it if
+it is already selected.
+
 @c
 @c ---------------------------------------------------------------------
 @node Reading options, Killing, Reading commands, Reading
