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 + + * 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 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 Mon, 25 Nov 2002 19:55:46 +0000 + greed (1.3.0a) unstable; urgency=low * Initial Debianisation -- Owen Dunn 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 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/install greed/debian/install --- greed-clean/debian/install 1970-01-01 01:00:00.000000000 +0100 +++ greed/debian/install 2004-08-30 12:30:24.000000000 +0100 @@ -0,0 +1,40 @@ +#! /bin/sh +set -e + +FLAVOR="$1" +PACKAGE=groggs-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 < path.el +(setq load-path (cons "." load-path) byte-compile-warnings nil) +EOF +${FLAVOR} ${FLAGS} ${FILES} +rm -f *.el path.el + +cat < "/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 2004-08-30 12:30:07.000000000 +0100 @@ -0,0 +1,9 @@ +#! /bin/sh +set -e +case "$1" in +configure ) + /usr/lib/emacsen-common/emacs-package-install groggs-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 2004-08-30 12:32:32.000000000 +0100 @@ -0,0 +1,8 @@ +#! /bin/sh +set -e +case "$1" in +remove ) + /usr/lib/emacsen-common/emacs-package-remove groggs-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 2004-08-30 12:30:53.000000000 +0100 @@ -0,0 +1,16 @@ +#! /bin/sh +set -e + +FLAVOR="$1" +PACKAGE=groggs-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-08-30 12:39:50.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