# HG changeset patch # User cvs # Date 1186988018 -7200 # Node ID c53a95d3c46d174b4fd795dfa6d2365b338d0438 # Parent 279432d5c479a301c58e99394c31f870a0be6344 Import from CVS: tag r19-15b101 diff -r 279432d5c479 -r c53a95d3c46d CHANGES-beta --- a/CHANGES-beta Mon Aug 13 08:53:21 2007 +0200 +++ b/CHANGES-beta Mon Aug 13 08:53:38 2007 +0200 @@ -1,4 +1,17 @@ -*- indented-text -*- +to 19.15 beta101 +-- itimer.el-1.05 +-- hyperbole-4.023 +-- cc-mode.el-4.381 +-- floating-toolbar.el-1.02 +-- balloon-help.el-1.05 +-- W3-3.0.69 +-- VM-6.20 +-- Custom-1.65 +-- Gnus-5.4.30 +-- strip unimplemented subwindows subr code +-- GIF correction courtesy Darrell Kindred + to 19.15 beta100 -- GIF crash fix courtesy of David Moore -- Fix for problem dumping comint with sparcworks diff -r 279432d5c479 -r c53a95d3c46d etc/vm/gear.xpm --- a/etc/vm/gear.xpm Mon Aug 13 08:53:21 2007 +0200 +++ b/etc/vm/gear.xpm Mon Aug 13 08:53:38 2007 +0200 @@ -1,9 +1,10 @@ /* XPM */ static char *gear[] = { /* width height num_colors chars_per_pixel */ -" 24 30 241 2", +" 24 30 242 2", /* colors */ ".. c #aaaaaa s background", +"zz c #aaaaaa", ".# c #8e8e8e", ".a c #4d4d4d", ".b c #9f9f9f", @@ -254,18 +255,18 @@ "......#K#X.H.4...p...3.G.J.I.i.i.i.i.6ab.z.r....", "......#N.m.4.3.3.G.G.J.J.W.z.i.i.i.n.i.i.i.I....", ".....J.6.r.4.3.G.G.J.W.W#K#X.n.6#t.i.i.i.i.n.#..", -"..#K.0.0.0.3.G.J.J.W.W#K.....#.H.#.n.i.i.i.i#t..", -"...G.H.3.3.G.J.J.W.W#K.....r.raB#X.6.i.i.i.aaB..", -"...4.3.G.G.J.J.W#K#K.....r.raB#X#X#i.n.i.n#i....", +"..#K.0.0.0.3.G.J.J.W.W#Kzzzz.#.H.#.n.i.i.i.i#t..", +"...G.H.3.3.G.J.J.W.W#Kzzzz.r.raB#X.6.i.i.i.aaB..", +"...4.3.G.G.J.J.W#K#Kzzzz.r.raB#X#X#i.n.i.n#i....", "..#X.r.G.J.J#K.W#K.raB.r.raB#X.#.#.c.a.n.i.6....", "..aB.p.r.J.W#K#KaB.p.m#NaB#X.#.#.c.l.z.i.i.m....", -"....aBaB.W#K#K..#t.n.i.h.#.#.#.c#iab.i.i.i.i#g.I", -"....#K#K#K.....r.a.z.a.i#X.c.c#i.l.a.i.i.i.i.i.6", -"...W.H.....r.raB.a.I.m.i.l.##i.l.l.I.i.i.i.n.h#t", -"...J.G...r.raB#X#tab#t.i.I...l#N#N#N.a.p.n.h.6#t", +"....aBaB.W#K#Kzz#t.n.i.h.#.#.#.c#iab.i.i.i.i#g.I", +"....#K#K#Kzzzz.r.a.z.a.i#X.c.c#i.l.a.i.i.i.i.i.6", +"...W.Hzzzz.r.raB.a.I.m.i.l.##i.l.l.I.i.i.i.n.h#t", +"...J.Gzz.r.raB#X#tab#t.i.Izz.l#N#N#N.a.p.n.h.6#t", ".....3.r.raB#X#X#N.p.p#g.m#K.l#N#N#t.I.I.h.6ab.l", ".....3aBaB#X#X.#.c.c.i.i#t.r#N#t#t.I.6.6ababab..", -".....3.#.c.#.c.c.c...l.p.J.l#t.I.I.I.6.6.pab....", +".....3.#.c.#.c.c.czz.l.p.J.l#t.I.I.I.6.6.pab....", "....#X.a.p#N.c#i#i#i#K.G.c#t.I.I.6.6abab.n.p....", "..........#t#i#i.l#N#N#t.I.I.I.6.6ab.m.z.i.naB..", "...........J.l#N#N#N#t.I.I.6.6.a.a.h.i.i.i#i....", diff -r 279432d5c479 -r c53a95d3c46d lib-src/update-elc.sh --- a/lib-src/update-elc.sh Mon Aug 13 08:53:21 2007 +0200 +++ b/lib-src/update-elc.sh Mon Aug 13 08:53:38 2007 +0200 @@ -32,11 +32,11 @@ fi fi -EMACS=${XEMACS:-./src/xemacs} +EMACS="./src/xemacs" +export EMACS + echo " (using $EMACS)" -export EMACS - # fuckin' sysv, man... if [ "`uname -r | sed 's/\(.\).*/\1/'`" -gt 4 ]; then echon() @@ -50,7 +50,6 @@ } fi - REAL=`cd \`dirname $EMACS\` ; pwd | sed 's|^/tmp_mnt||'`/`basename $EMACS` BYTECOMP="$REAL -batch -q -no-site-file " echo "Recompiling in `pwd|sed 's|^/tmp_mnt||'`" diff -r 279432d5c479 -r c53a95d3c46d lisp/comint/comint-xemacs.el --- a/lisp/comint/comint-xemacs.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/comint/comint-xemacs.el Mon Aug 13 08:53:38 2007 +0200 @@ -31,20 +31,20 @@ ;;; Code: +(defgroup 'comint nil + "General command interpreter in a window stuff." + :group 'processes) + (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) + :group 'comint) diff -r 279432d5c479 -r c53a95d3c46d lisp/custom/ChangeLog --- a/lisp/custom/ChangeLog Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/custom/ChangeLog Mon Aug 13 08:53:38 2007 +0200 @@ -1,5 +1,17 @@ +Tue Mar 18 14:42:31 1997 Per Abrahamsen + + * Version 1.65 released. + +Tue Mar 18 11:03:02 1997 Per Abrahamsen + + * cus-face.el (custom-face-attributes): Removed `:invert'. + (custom-invert-face): Removed. + Mon Mar 17 11:32:51 1997 Per Abrahamsen + * wid-edit.el (widget-file-action): Spelling correction by Greg + Stark . + * Version 1.64 released. Mon Mar 17 10:43:10 1997 Per Abrahamsen @@ -7,7 +19,7 @@ * 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-create): Do not limit `custom-menu-nesting' here. (custom-menu-update): Removed XEmacs support. * custom.el (custom-help-menu): Use `custom-menu-create' in XEmacs diff -r 279432d5c479 -r c53a95d3c46d lisp/custom/cus-edit.el --- a/lisp/custom/cus-edit.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/custom/cus-edit.el Mon Aug 13 08:53:38 2007 +0200 @@ -4,7 +4,7 @@ ;; ;; Author: Per Abrahamsen ;; Keywords: help, faces -;; Version: 1.64 +;; Version: 1.65 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/ ;;; Commentary: @@ -1808,8 +1808,8 @@ (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))))) + :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." diff -r 279432d5c479 -r c53a95d3c46d lisp/custom/cus-face.el --- a/lisp/custom/cus-face.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/custom/cus-face.el Mon Aug 13 08:53:38 2007 +0200 @@ -4,7 +4,7 @@ ;; ;; Author: Per Abrahamsen ;; Keywords: help, faces -;; Version: 1.64 +;; Version: 1.65 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/ ;;; Commentary: @@ -111,33 +111,33 @@ ;; Too hard to do right on XEmacs. (defalias 'initialize-face-resources 'ignore))) -(if (string-match "XEmacs" emacs-version) - ;; Xemacs. - (defun custom-invert-face (face &optional frame) - "Swap the foreground and background colors of face FACE. -If the colors are not specified in the face, use the default colors." - (interactive (list (read-face-name "Reverse face: "))) - (let ((fg (color-name (face-foreground face frame) frame)) - (bg (color-name (face-background face frame) frame))) - (set-face-foreground face bg frame) - (set-face-background face fg frame))) - ;; Emacs. - (defun custom-invert-face (face &optional frame) - "Swap the foreground and background colors of face FACE. -If the colors are not specified in the face, use the default colors." - (interactive (list (read-face-name "Reverse face: "))) - (let ((fg (or (face-foreground face frame) - (face-foreground 'default frame) - (frame-property (or frame (selected-frame)) - 'foreground-color) - "black")) - (bg (or (face-background face frame) - (face-background 'default frame) - (frame-property (or frame (selected-frame)) - 'background-color) - "white"))) - (set-face-foreground face bg frame) - (set-face-background face fg frame)))) +;;(if (string-match "XEmacs" emacs-version) +;; ;; Xemacs. +;; (defun custom-invert-face (face &optional frame) +;; "Swap the foreground and background colors of face FACE. +;;If the colors are not specified in the face, use the default colors." +;; (interactive (list (read-face-name "Reverse face: "))) +;; (let ((fg (color-name (face-foreground face frame) frame)) +;; (bg (color-name (face-background face frame) frame))) +;; (set-face-foreground face bg frame) +;; (set-face-background face fg frame))) +;; ;; Emacs. +;; (defun custom-invert-face (face &optional frame) +;; "Swap the foreground and background colors of face FACE. +;;If the colors are not specified in the face, use the default colors." +;; (interactive (list (read-face-name "Reverse face: "))) +;; (let ((fg (or (face-foreground face frame) +;; (face-foreground 'default frame) +;; (frame-property (or frame (selected-frame)) +;; 'foreground-color) +;; "black")) +;; (bg (or (face-background face frame) +;; (face-background 'default frame) +;; (frame-property (or frame (selected-frame)) +;; 'background-color) +;; "white"))) +;; (set-face-foreground face bg frame) +;; (set-face-background face fg frame)))) (defcustom custom-background-mode nil "The brightness of the background. @@ -249,14 +249,14 @@ :value "white" :help-echo "Set background color.") set-face-background) - (:invert (const :format "Invert Face\n" - :sibling-args (:help-echo "\ -Reverse the foreground and background color. -If you haven't specified them for the face, the default colors will be used.") - t) - (lambda (face value &optional frame) - ;; We don't use VALUE. - (custom-invert-face face frame))) + ;; (:invert (const :format "Invert Face\n" + ;; :sibling-args (:help-echo " + ;;Reverse the foreground and background color. + ;;If you haven't specified them for the face, the default colors will be used.") + ;; t) + ;; (lambda (face value &optional frame) + ;; ;; We don't use VALUE. + ;; (custom-invert-face face frame))) (:stipple (editable-field :format "Stipple: %v" :help-echo "Name of background bitmap file.") set-face-stipple)) diff -r 279432d5c479 -r c53a95d3c46d lisp/custom/custom.el --- a/lisp/custom/custom.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/custom/custom.el Mon Aug 13 08:53:38 2007 +0200 @@ -4,7 +4,7 @@ ;; ;; Author: Per Abrahamsen ;; Keywords: help, faces -;; Version: 1.64 +;; Version: 1.65 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/ ;;; Commentary: diff -r 279432d5c479 -r c53a95d3c46d lisp/custom/wid-browse.el --- a/lisp/custom/wid-browse.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/custom/wid-browse.el Mon Aug 13 08:53:38 2007 +0200 @@ -4,7 +4,7 @@ ;; ;; Author: Per Abrahamsen ;; Keywords: extensions -;; Version: 1.64 +;; Version: 1.65 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/ ;;; Commentary: diff -r 279432d5c479 -r c53a95d3c46d lisp/custom/wid-edit.el --- a/lisp/custom/wid-edit.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/custom/wid-edit.el Mon Aug 13 08:53:38 2007 +0200 @@ -4,7 +4,7 @@ ;; ;; Author: Per Abrahamsen ;; Keywords: extensions -;; Version: 1.64 +;; Version: 1.65 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/ ;;; Commentary: @@ -2158,7 +2158,7 @@ (file (file-name-nondirectory value)) (menu-tag (widget-apply widget :menu-tag-get)) (must-match (widget-get widget :must-match)) - (answer (read-file-name (concat menu-tag ": (defalt `" value "') ") + (answer (read-file-name (concat menu-tag ": (default `" value "') ") dir nil must-match file))) (widget-value-set widget (abbreviate-file-name answer)) (widget-apply widget :notify widget event) diff -r 279432d5c479 -r c53a95d3c46d lisp/custom/widget-example.el --- a/lisp/custom/widget-example.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/custom/widget-example.el Mon Aug 13 08:53:38 2007 +0200 @@ -4,7 +4,7 @@ ;; ;; Author: Per Abrahamsen ;; Keywords: help, extensions, faces, hypermedia -;; Version: 1.64 +;; Version: 1.65 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/ (require 'widget) diff -r 279432d5c479 -r c53a95d3c46d lisp/custom/widget.el --- a/lisp/custom/widget.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/custom/widget.el Mon Aug 13 08:53:38 2007 +0200 @@ -4,7 +4,7 @@ ;; ;; Author: Per Abrahamsen ;; Keywords: help, extensions, faces, hypermedia -;; Version: 1.64 +;; Version: 1.65 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/ ;;; Commentary: diff -r 279432d5c479 -r c53a95d3c46d lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/gnus/ChangeLog Mon Aug 13 08:53:38 2007 +0200 @@ -1,3 +1,65 @@ +Tue Mar 18 23:54:17 1997 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.4.30 is released. + +Tue Mar 18 23:43:50 1997 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-group-subscribe): Doc fix. + +Tue Mar 18 23:39:08 1997 Lance A. Brown + + * gnus-sum.el (gnus-update-marks): Articles->list. + +Tue Mar 18 23:07:35 1997 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-update-article-line): Don't pass nil + on as subject string. + + * gnus-group.el (gnus-group-read-group): Revert to old + definition. + + * gnus-sum.el (gnus-summary-read-group-1): New function. + (gnus-summary-read-group): Use it. + +Tue Mar 18 17:56:26 1997 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.4.29 is released. + +Tue Mar 18 14:29:49 1997 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-group-read-ephemeral-group): Would set virt + ser too much. + (gnus-group-read-group): Return right value. + + * nnml.el (nnml-generate-nov-databases-1): Save active. + + * gnus-msg.el (gnus-summary-supersede-article): Place point in the + with buffer. + (gnus-inews-add-to-address): Prompt before adding. + + * gnus-art.el (article-strip-leading-space): Not a new command + and keystroke (HTDW Jaari fix). + + * nnfolder.el (nnfolder-close-group): Don't push bogus entries + onto alist. + +Tue Mar 18 14:28:27 1997 Jan Vroonhof + + * nnfolder.el (nnfolder-request-scan): Check whether buffer really + is live. + +Tue Mar 18 13:53:00 1997 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-group-read-group): Iterate instead of + recurse. + + * nnfolder.el (nnfolder-request-accept-article): Don't insert into + Message-ID cache. + * nnbabyl.el (nnbabyl-request-accept-article): Ditto. + * nnmbox.el (nnmbox-request-accept-article): Ditto. + * nnml.el (nnml-request-accept-article): Ditto. + * nnmh.el (nnmh-request-accept-article): Ditto. + Tue Mar 18 00:35:06 1997 Lars Magne Ingebrigtsen * gnus.el: Gnus v5.4.28 is released. diff -r 279432d5c479 -r c53a95d3c46d lisp/gnus/gnus-art.el --- a/lisp/gnus/gnus-art.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/gnus/gnus-art.el Mon Aug 13 08:53:38 2007 +0200 @@ -1018,6 +1018,17 @@ (while (re-search-forward "\n\n\n+" nil t) (replace-match "\n\n" t t))))) +(defun article-strip-leading-space () + "Remove all white space from the beginning of the lines in the article." + (interactive) + (save-excursion + (let ((inhibit-point-motion-hooks t) + buffer-read-only) + (goto-char (point-min)) + (search-forward "\n\n" nil t) + (while (re-search-forward "^[ \t]+" nil t) + (replace-match "" t t))))) + (defun article-strip-blank-lines () "Strip leading, trailing and multiple blank lines." (interactive) @@ -1669,6 +1680,7 @@ article-remove-trailing-blank-lines article-strip-leading-blank-lines article-strip-multiple-blank-lines + article-strip-leading-space article-strip-blank-lines article-date-local article-date-original diff -r 279432d5c479 -r c53a95d3c46d lisp/gnus/gnus-group.el --- a/lisp/gnus/gnus-group.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/gnus/gnus-group.el Mon Aug 13 08:53:38 2007 +0200 @@ -1563,9 +1563,9 @@ (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))))) + (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 @@ -2538,7 +2538,7 @@ (gnus-group-unsubscribe-current-group n 'unsubscribe)) (defun gnus-group-subscribe (&optional n) - "Unsubscribe the current group." + "Subscribe the current group." (interactive "P") (gnus-group-unsubscribe-current-group n 'subscribe)) diff -r 279432d5c479 -r c53a95d3c46d lisp/gnus/gnus-msg.el --- a/lisp/gnus/gnus-msg.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/gnus/gnus-msg.el Mon Aug 13 08:53:38 2007 +0200 @@ -308,13 +308,10 @@ (message-supersede) (push `((lambda () - (gnus-cache-possibly-remove-article ,article nil nil nil t))) - message-send-actions) - (push - `((lambda () (when (buffer-name (get-buffer ,gnus-summary-buffer)) (save-excursion (set-buffer (get-buffer ,gnus-summary-buffer)) + (gnus-cache-possibly-remove-article ,article nil nil nil t) (gnus-summary-mark-as-read ,article gnus-canceled-mark))))) message-send-actions)))) @@ -726,7 +723,9 @@ (gnus-alive-p)) ;; This mail group doesn't have a `to-list', so we add one ;; here. Magic! - (gnus-group-add-parameter group (cons 'to-list to-address))))) + (when (gnus-y-or-n-p + (format "Do you want to add this as `to-list': %s " to-address)) + (gnus-group-add-parameter group (cons 'to-list to-address)))))) (defun gnus-put-message () "Put the current message in some group and return to Gnus." diff -r 279432d5c479 -r c53a95d3c46d lisp/gnus/gnus-sum.el --- a/lisp/gnus/gnus-sum.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/gnus/gnus-sum.el Mon Aug 13 08:53:38 2007 +0200 @@ -1312,7 +1312,8 @@ "t" gnus-article-remove-trailing-blank-lines "l" gnus-article-strip-leading-blank-lines "m" gnus-article-strip-multiple-blank-lines - "a" gnus-article-strip-blank-lines) + "a" gnus-article-strip-blank-lines + "s" gnus-article-strip-leading-space) (gnus-define-keys (gnus-summary-help-map "H" gnus-summary-mode-map) "v" gnus-version @@ -1514,7 +1515,8 @@ ["Leading" gnus-article-strip-leading-blank-lines t] ["Multiple" gnus-article-strip-multiple-blank-lines t] ["Trailing" gnus-article-remove-trailing-blank-lines t] - ["All of the above" gnus-article-strip-blank-lines t]) + ["All of the above" gnus-article-strip-blank-lines t] + ["Leading space" gnus-article-strip-leading-space t]) ["Overstrike" gnus-article-treat-overstrike t] ["Emphasis" gnus-article-emphasize t] ["Word wrap" gnus-article-fill-cited-article t] @@ -2460,6 +2462,21 @@ If SHOW-ALL is non-nil, already read articles are also listed. If NO-ARTICLE is non-nil, no article is selected initially. If NO-DISPLAY, don't generate a summary buffer." + (let (result) + (while (and group + (null (setq result + (gnus-summary-read-group-1 + group show-all no-article + kill-buffer no-display))) + (eq gnus-auto-select-next 'quietly)) + (set-buffer gnus-group-buffer) + (if (not (equal group (gnus-group-group-name))) + (setq group (gnus-group-group-name)) + (setq group nil))) + result)) + +(defun gnus-summary-read-group-1 (group show-all no-article + kill-buffer no-display) ;; Killed foreign groups can't be entered. (when (and (not (gnus-group-native-p group)) (not (gnus-gethash group gnus-newsrc-hashtb))) @@ -2560,7 +2577,7 @@ (not no-display)) (progn ;; This newsgroup is empty. - (gnus-summary-catchup-and-exit nil t) ;Without confirmations. + (gnus-summary-catchup-and-exit nil t) (gnus-message 6 "No unread news") (when kill-buffer (gnus-kill-or-deaden-summary kill-buffer)) @@ -2916,17 +2933,18 @@ (memq article gnus-newsgroup-expirable) ;; Only insert the Subject string when it's different ;; from the previous Subject string. - (unless (gnus-subject-equal - (condition-case () - (mail-header-subject - (gnus-data-header - (cadr - (gnus-data-find-list - article - (gnus-data-list t))))) - (error "")) - (mail-header-subject header)) - (mail-header-subject header)) + (if (gnus-subject-equal + (condition-case () + (mail-header-subject + (gnus-data-header + (cadr + (gnus-data-find-list + article + (gnus-data-list t))))) + (error "")) + (mail-header-subject header)) + (mail-header-subject header) + "") nil (cdr (assq article gnus-newsgroup-scored)) (memq article gnus-newsgroup-processable)) (when length @@ -3832,7 +3850,7 @@ gnus-save-score list) (let* ((arts list) - (prev (cons nil articles)) + (prev (cons nil list)) (all prev)) (while arts (if (or (not (consp (car arts))) diff -r 279432d5c479 -r c53a95d3c46d lisp/gnus/gnus.el --- a/lisp/gnus/gnus.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/gnus/gnus.el Mon Aug 13 08:53:38 2007 +0200 @@ -226,7 +226,7 @@ :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "5.4.28" +(defconst gnus-version-number "5.4.30" "Version number for this version of Gnus.") (defconst gnus-version (format "Gnus v%s" gnus-version-number) diff -r 279432d5c479 -r c53a95d3c46d lisp/gnus/nnbabyl.el --- a/lisp/gnus/nnbabyl.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/gnus/nnbabyl.el Mon Aug 13 08:53:38 2007 +0200 @@ -333,7 +333,6 @@ (save-excursion (while (re-search-backward "^X-Gnus-Newsgroup: " beg t) (delete-region (point) (progn (forward-line 1) (point))))) - (nnmail-cache-insert (nnmail-fetch-field "message-id")) (setq result (car (nnbabyl-save-mail (if (stringp group) (list (cons group (nnbabyl-active-number group))) @@ -344,7 +343,6 @@ (goto-char (match-end 0)) (insert-buffer-substring buf) (when last - (nnmail-cache-insert (nnmail-fetch-field "message-id")) (save-buffer) (nnmail-save-active nnbabyl-group-alist nnbabyl-active-file)) result)))) diff -r 279432d5c479 -r c53a95d3c46d lisp/gnus/nnfolder.el --- a/lisp/gnus/nnfolder.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/gnus/nnfolder.el Mon Aug 13 08:53:38 2007 +0200 @@ -225,7 +225,7 @@ (let ((bufs nnfolder-buffer-alist)) (save-excursion (while bufs - (if (not (buffer-name (nth 1 (car bufs)))) + (if (not (buffer-live-p (nth 1 (car bufs)))) (setq nnfolder-buffer-alist (delq (car bufs) nnfolder-buffer-alist)) (set-buffer (nth 1 (car bufs))) @@ -246,7 +246,8 @@ (equal group nnfolder-current-group)) (let ((inf (assoc group nnfolder-buffer-alist))) (when inf - (when nnfolder-current-group + (when (and nnfolder-current-group + nnfolder-current-buffer) (push (list nnfolder-current-group nnfolder-current-buffer) nnfolder-buffer-alist)) (setq nnfolder-buffer-alist @@ -374,7 +375,6 @@ (forward-line -1) (while (re-search-backward (concat "^" nnfolder-article-marker) nil t) (delete-region (point) (progn (forward-line 1) (point)))) - (nnmail-cache-insert (nnmail-fetch-field "message-id")) (setq result (car (nnfolder-save-mail (if (stringp group) @@ -384,8 +384,7 @@ (when last (save-excursion (nnfolder-possibly-change-folder (or (caar art-group) group)) - (nnfolder-save-buffer) - (nnmail-cache-close)))) + (nnfolder-save-buffer)))) (nnmail-save-active nnfolder-group-alist nnfolder-active-file) (unless result (nnheader-report 'nnfolder "Couldn't store article")) diff -r 279432d5c479 -r c53a95d3c46d lisp/gnus/nnmbox.el --- a/lisp/gnus/nnmbox.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/gnus/nnmbox.el Mon Aug 13 08:53:38 2007 +0200 @@ -304,7 +304,6 @@ (forward-line -1) (while (re-search-backward "^X-Gnus-Newsgroup: " nil t) (delete-region (point) (progn (forward-line 1) (point)))) - (nnmail-cache-insert (nnmail-fetch-field "message-id")) (setq result (nnmbox-save-mail (if (stringp group) (list (cons group (nnmbox-active-number group))) @@ -314,7 +313,6 @@ (goto-char (point-max)) (insert-buffer-substring buf) (when last - (nnmail-cache-close) (nnmail-save-active nnmbox-group-alist nnmbox-active-file) (save-buffer)))) (car result))) diff -r 279432d5c479 -r c53a95d3c46d lisp/gnus/nnmh.el --- a/lisp/gnus/nnmh.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/gnus/nnmh.el Mon Aug 13 08:53:38 2007 +0200 @@ -290,20 +290,16 @@ (deffoo nnmh-request-accept-article (group &optional server last noinsert) (nnmh-possibly-change-directory group server) (nnmail-check-syntax) - (nnmail-cache-insert (nnmail-fetch-field "message-id")) - (prog1 - (if (stringp group) - (and - (nnmail-activate 'nnmh) - (car (nnmh-save-mail - (list (cons group (nnmh-active-number group))) - noinsert))) - (and - (nnmail-activate 'nnmh) - (car (nnmh-save-mail (nnmail-article-group 'nnmh-active-number) - noinsert)))) - (when last - (nnmail-cache-close)))) + (if (stringp group) + (and + (nnmail-activate 'nnmh) + (car (nnmh-save-mail + (list (cons group (nnmh-active-number group))) + noinsert))) + (and + (nnmail-activate 'nnmh) + (car (nnmh-save-mail (nnmail-article-group 'nnmh-active-number) + noinsert))))) (deffoo nnmh-request-replace-article (article group buffer) (nnmh-possibly-change-directory group) diff -r 279432d5c479 -r c53a95d3c46d lisp/gnus/nnml.el --- a/lisp/gnus/nnml.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/gnus/nnml.el Mon Aug 13 08:53:38 2007 +0200 @@ -313,7 +313,6 @@ (nnml-possibly-change-directory group server) (nnmail-check-syntax) (let (result) - (nnmail-cache-insert (nnmail-fetch-field "message-id")) (if (stringp group) (and (nnmail-activate 'nnml) @@ -328,7 +327,6 @@ (nnmail-article-group 'nnml-active-number)))) (when last (nnmail-save-active nnml-group-alist nnml-active-file) - (nnmail-cache-close) (nnml-save-nov)))) result)) @@ -682,11 +680,11 @@ (nnml-open-server (or (nnoo-current-server 'nnml) "")) (setq nnml-directory (expand-file-name nnml-directory)) ;; Recurse down the directories. - (nnml-generate-nov-databases-1 nnml-directory) + (nnml-generate-nov-databases-1 nnml-directory nil t) ;; Save the active file. (nnmail-save-active nnml-group-alist nnml-active-file)) -(defun nnml-generate-nov-databases-1 (dir &optional seen) +(defun nnml-generate-nov-databases-1 (dir &optional seen no-active) "Regenerate the NOV database in DIR." (interactive "DRegenerate NOV in: ") (setq dir (file-name-as-directory dir)) @@ -706,7 +704,9 @@ (when files (funcall nnml-generate-active-function dir) ;; Generate the nov file. - (nnml-generate-nov-file dir files))))) + (nnml-generate-nov-file dir files) + (unless no-active + (nnmail-save-active nnml-group-alist nnml-active-file)))))) (defvar files) (defun nnml-generate-active-info (dir) diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/ChangeLog --- a/lisp/hyperbole/ChangeLog Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/ChangeLog Mon Aug 13 08:53:38 2007 +0200 @@ -1,3 +1,77 @@ +Thu Mar 13 22:01:52 1997 Bob Weiner + +* wrolo.el (rolo-toggle-datestamps): Added. +* hui-mini.el (hui:menus): Added Cust/Toggle-Rolodex-Dates entry. +* hui-menu.el (hui-menu-options): Added Customization/Toggle-Rolodex-Dates + item. +* wrolo.el (rolo-add): Added wrolo-add-hook, executed after the record + is added. + (rolo-edit): Added wrolo-edit-hook, executed after point is + successfully moved to the record to edit. These can be used, for + example, to add and update date entries in address records. + (rolo-current-date): Added. + (rolo-set-date): Added and used as default wrolo-add-hook and + wrolo-edit-hook settings. + +Mon Mar 10 12:17:15 1997 Bob Weiner + +* hsys-w3.el (www-url): Eliminated call of external Web browser if not + running under a window system. + +Sun Mar 9 01:32:03 1997 Bob Weiner + +* hpath.el (hpath:url-at-p): + (hpath:www-at-p): Fixed bug that referred to an optional match + component without checking if it was matched. + (hpath:url-p): Changed doc to reflect that pathname can be optional. + +* hsite-ex.el: Added (require 'hyperbole) to ensure that this file + is loaded if hsite.el is autoloaded, e.g. under XEmacs. + +Thu Mar 6 14:14:05 1997 Bob Weiner + +* hui-mini.el (hyperbole): Added autoload special comment. + +Wed Mar 5 01:14:47 1997 Bob Weiner + +* kotl/kotl-mode.el (kotl-mode:center-line): +* kotl/kview.el (kcell-view:line): Changed calls to + kotl-mode:beginning-of-line to kotl-mode:start-of-line to avoid an + XEmacs byte compiler bug in some versions. The bug shows up when + kotl-mode:center-line is called on the first line of a cell and the + cell label is centered along with the line (the label should not + move). + +Tue Mar 4 20:45:52 1997 Bob Weiner + +* hsite-ex.el (hpath:find-alist): Modified to use `xv' to display xpm + files; it is more robust than `sxpm' in the face of limited colors. + +Mon Mar 3 12:06:49 1997 Bob Weiner + +* hui-menu.el (infodock-hyperbole-menu): Added :config 'Hyperbole + configurator to the menu so users can hide the Hyperbole + menu from the menubar if they don't use it, via menubar-configuration, + under XEmacs and InfoDock. + +Sun Mar 2 22:35:26 1997 Bob Weiner + +* kotl/kotl-mode.el (kotl-mode:set-cell-attribute): Changed + read-expression to read-minibuffer since GNU Emacs doesn't + have the former. + +Fri Feb 28 23:31:57 1997 Bob Weiner + +* kotl/kprop-xe.el (kproperty:put): Fixed problem with internal handling + of text property protocols within newer versions of XEmacs. The + `text-prop' symbol can no longer be set to `t'. It must be set to + a symbol from the property list of the extent that carries + text-properties. + +============================================================================== +V4.023 changes ^^^^: +============================================================================== + Sat Feb 22 14:30:14 1997 Bob Weiner * hypb.el (hypb:ida-logo-keymap): Added conditional for Emacs keybinding. diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/Makefile --- a/lisp/hyperbole/Makefile Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/Makefile Mon Aug 13 08:53:38 2007 +0200 @@ -4,7 +4,7 @@ # AUTHOR: Bob Weiner # # ORIG-DATE: 15-Jun-94 at 03:42:38 -# LAST-MOD: 23-Feb-97 at 23:22:48 by Bob Weiner +# LAST-MOD: 18-Mar-97 at 00:45:58 by Bob Weiner # # This file is part of Hyperbole. # Available for use and distribution under the same terms as GNU Emacs. @@ -98,7 +98,7 @@ # NO CHANGES REQUIRED BELOW HERE. # ########################################################################## -HYPB_VERSION = 4.022 +HYPB_VERSION = 4.023 # Libraries that must be pre-loaded before trying to byte-compile anything. PRELOADS = $(SITE_PRELOADS) -l ./hversion.el -l ./hyperbole.el -l ./hsite.el diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/README --- a/lisp/hyperbole/README Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/README Mon Aug 13 08:53:38 2007 +0200 @@ -11,7 +11,7 @@ # Tel: +1 408-243-3300 # # ORIG-DATE: 19-Oct-91 at 03:27:47 -# LAST-MOD: 23-Feb-97 at 23:25:29 by Bob Weiner +# LAST-MOD: 17-Mar-97 at 21:14:10 by Bob Weiner # # See the Copyright section below for license information. @@ -165,13 +165,16 @@ =========================================================================== -* What's New in V4.02-V4.022 +* What's New in V4.02-V4.023 =========================================================================== (See "ChangeLog" for more complete details of changes.) ACTION AND ASSIST KEYS + - Action Key clicks on HTTP URLs use the Emacs internal web browser + if not running under a window system. + - Support for new ID-edit mode (a part of InfoDock) that allows rapid, cutting, copying and yanking of regions plus fast display management. In this mode, the Action and Assist keys yank the previously selected @@ -231,6 +234,14 @@ ROLODEX + - Date stamps are added to each rolodex entry when created and updated + when edited. This feature can be toggled on and off with: + M-x rolo-toggle-datestamps RET, or via the Toggle-Rolodex-Dates menu + item on the Customization menu. + + - wrolo-add-hook is called after a new entry is added. + wrolo-edit-hook is called after an entry is displayed for editing. + - Rolo-edit, bound to {e} in the rolodex match buffer, now works properly if the rolodex is loaded before the rest of the Hyperbole system. diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/hpath.el --- a/lisp/hyperbole/hpath.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/hpath.el Mon Aug 13 08:53:38 2007 +0200 @@ -9,7 +9,7 @@ ;; ORG: InfoDock Associates ;; ;; ORIG-DATE: 1-Nov-91 at 00:44:23 -;; LAST-MOD: 16-Feb-97 at 02:34:35 by Bob Weiner +;; LAST-MOD: 9-Mar-97 at 01:38:33 by Bob Weiner ;;; ************************************************************************ ;;; Public variables @@ -552,14 +552,14 @@ 4 = optional username 4 = host and domain to connect to 5 = optional port number to use - 6 = pathname to access." - ;; WWW URL format: [URL:]:/[@][:]/ - ;; or [URL:]://[@][:] + 6 = optional pathname to access." + ;; WWW URL format: [URL:]:/[@][:][/] + ;; or [URL:]://[@][:][] ;; Avoid [a-z]:/path patterns since these may be disk paths on OS/2, DOS or ;; Windows. (if (looking-at "\\(URL:\\)?\\([a-zA-Z][a-zA-Z]+\\)://?\\([^@/: \t\n\^M]+@\\)?\\([^/:@ \t\n\^M\"`']+\\)\\(:[0-9]+\\)?\\([/~][^]@ \t\n\^M\"`'\)\}>]*\\)?") (save-excursion - (goto-char (match-end 6)) + (goto-char (match-end 0)) (skip-chars-backward ".?#!*()") (buffer-substring (match-beginning 2) (point))))) @@ -571,9 +571,9 @@ 3 = optional username 4 = host and domain to connect to 5 = optional port number to use - 6 = pathname to access." - ;; WWW URL format: [URL:]:/[@][:]/ - ;; or [URL:]://[@][:] + 6 = optional pathname to access." + ;; WWW URL format: [URL:]:/[@][:][/] + ;; or [URL:]://[@][:][] ;; Avoid [a-z]:/path patterns since these may be disk paths on OS/2, DOS or ;; Windows. (and (stringp obj) @@ -590,9 +590,9 @@ (cond ((not include-start-and-end-p) (hpath:url-at-p)) ((hpath:url-at-p) - (list (buffer-substring (match-beginning 2) (match-end 6)) + (list (buffer-substring (match-beginning 2) (match-end 0)) (match-beginning 2) - (match-end 6)))))) + (match-end 0)))))) (defun hpath:www-p (path) "Returns non-nil iff PATH is a world-wide-web link reference." diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/hsite-ex.el --- a/lisp/hyperbole/hsite-ex.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/hsite-ex.el Mon Aug 13 08:53:38 2007 +0200 @@ -9,7 +9,7 @@ ;; ORG: InfoDock Associates ;; ;; ORIG-DATE: 15-Apr-91 at 00:48:49 -;; LAST-MOD: 17-Feb-97 at 18:34:17 by Bob Weiner +;; LAST-MOD: 8-Mar-97 at 22:52:36 by Bob Weiner ;; ;; This file is part of Hyperbole. ;; Available for use and distribution under the same terms as GNU Emacs. diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/hsys-w3.el --- a/lisp/hyperbole/hsys-w3.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/hsys-w3.el Mon Aug 13 08:53:38 2007 +0200 @@ -9,7 +9,7 @@ ;; ORG: Motorola Inc. ;; ;; ORIG-DATE: 7-Apr-94 at 17:17:39 by Bob Weiner -;; LAST-MOD: 3-Nov-95 at 23:14:34 by Bob Weiner +;; LAST-MOD: 10-Mar-97 at 12:17:08 by Bob Weiner ;; ;; This file is part of Hyperbole. ;; Available for use and distribution under the same terms as GNU Emacs. @@ -66,7 +66,9 @@ '(highlight-headers-follow-url-netscape highlight-headers-follow-url-mosaic)) (require 'highlight-headers)) - (funcall action-key-url-function url)) + (if window-system + (funcall action-key-url-function url) + (w3-fetch url))) (defun www-url:help (&optional but) "Displays history list of www nodes previously visited with the W3 browser." diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/hui-em19-b.el --- a/lisp/hyperbole/hui-em19-b.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/hui-em19-b.el Mon Aug 13 08:53:38 2007 +0200 @@ -6,10 +6,10 @@ ;; KEYWORDS: faces, hypermedia ;; ;; AUTHOR: Bob Weiner -;; ORG: Brown U. +;; ORG: InfoDock Associates ;; ;; ORIG-DATE: 21-Aug-92 -;; LAST-MOD: 24-Oct-95 at 19:54:59 by Bob Weiner +;; LAST-MOD: 26-Feb-97 at 01:58:45 by Bob Weiner ;; ;; This file is part of Hyperbole. ;; It is for use with GNU Emacs V19. @@ -75,7 +75,7 @@ (defun hproperty:but-add (start end face) "Add between START and END a button using FACE in current buffer. -If 'hproperty:but-emphasize-p' is non-nil when this is called, emphasize that +If `hproperty:but-emphasize-p' is non-nil when this is called, emphasize that button is selectable whenever the mouse cursor moves over it." (let ((but (make-overlay start end))) (overlay-put but 'face face) @@ -106,7 +106,7 @@ If REGEXP-MATCH is non-nil, only buttons matching this argument are highlighted. -If 'hproperty:but-emphasize-p' is non-nil when this is called, emphasize that +If `hproperty:but-emphasize-p' is non-nil when this is called, emphasize that button is selectable whenever the mouse cursor moves over it." (interactive) (hproperty:but-clear) diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/hui-menu.el --- a/lisp/hyperbole/hui-menu.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/hui-menu.el Mon Aug 13 08:53:38 2007 +0200 @@ -9,7 +9,7 @@ ;; ORG: InfoDock Associates ;; ;; ORIG-DATE: 28-Oct-94 at 10:59:44 -;; LAST-MOD: 19-Feb-97 at 10:50:57 by Bob Weiner +;; LAST-MOD: 14-Mar-97 at 01:35:02 by Bob Weiner ;; ;; Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc. ;; @@ -117,6 +117,12 @@ ["Scrolls-Proportionally" (setq smart-scroll-proportional t) :style radio :selected smart-scroll-proportional] + ) + '("----" + ["Toggle-Rolodex-Dates" rolo-toggle-datestamps + :style toggle :selected (and (boundp 'wrolo-add-hook) + (listp wrolo-add-hook) + (memq 'rolo-set-date wrolo-add-hook))] )) "Untitled menu of Hyperbole options.") @@ -126,6 +132,7 @@ (delq nil (list "Hyperbole" + :config 'Hyperbole '["About" (hypb:display-file-with-logo (expand-file-name "ABOUT" hyperb:dir)) t] '["Manual" (id-info "(hyperbole.info)Top") t] diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/hui-mini.el --- a/lisp/hyperbole/hui-mini.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/hui-mini.el Mon Aug 13 08:53:38 2007 +0200 @@ -9,7 +9,7 @@ ;; ORG: InfoDock Associates ;; ;; ORIG-DATE: 15-Oct-91 at 20:13:17 -;; LAST-MOD: 6-Mar-97 at 14:08:46 by Bob Weiner +;; LAST-MOD: 17-Mar-97 at 21:28:26 by Bob Weiner ;; ;; This file is part of Hyperbole. ;; Available for use and distribution under the same terms as GNU Emacs. @@ -99,6 +99,16 @@ "Sets where referents are displayed.") ("Smart-Key-at-Eol/" (menu . cust-eol) "Sets how scrolling via end of line presses works.") + ("Toggle-Rolo-Dates" + (if (and (boundp 'wrolo-add-hook) (listp wrolo-add-hook) + (memq 'rolo-set-date wrolo-add-hook)) + (progn (remove-hook 'wrolo-add-hook 'rolo-set-date) + (remove-hook 'wrolo-edit-hook 'rolo-set-date) + (message "Rolodex date stamps are now turned off.")) + (add-hook 'wrolo-add-hook 'rolo-set-date) + (add-hook 'wrolo-edit-hook 'rolo-set-date) + (message "Rolodex date stamps are now turned on.")) + "Toggle whether date stamps are update when rolodex entries are edited.") ("URL-Display/" (menu . cust-urls) "Sets where URLs are displayed."))) '(cust-eol . (("Smart Key press at eol scrolls>") @@ -326,7 +336,6 @@ (progn (beep) nil) (unwind-protect (progn - (require 'hyperbole) (require 'hsite) ;; Since "hui-mini" may be loaded without loading ;; all of Hyperbole. (hyperb:init-menubar) diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/hui-xe-but.el --- a/lisp/hyperbole/hui-xe-but.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/hui-xe-but.el Mon Aug 13 08:53:38 2007 +0200 @@ -6,10 +6,10 @@ ;; KEYWORDS: faces, hypermedia ;; ;; AUTHOR: Bob Weiner -;; ORG: Brown U. +;; ORG: InfoDock Associates ;; ;; ORIG-DATE: 21-Aug-92 -;; LAST-MOD: 24-Oct-95 at 19:55:08 by Bob Weiner +;; LAST-MOD: 26-Feb-97 at 01:58:01 by Bob Weiner ;; ;; This file is part of Hyperbole. ;; It is for use with XEmacs, a modified version of GNU Emacs V19. @@ -69,7 +69,7 @@ (defun hproperty:but-add (start end face) "Add between START and END a button using FACE in current buffer. -If 'hproperty:but-emphasize-p' is non-nil when this is called, emphasize that +If `hproperty:but-emphasize-p' is non-nil when this is called, emphasize that button is selectable whenever the mouse cursor moves over it." (let ((but (make-extent start end))) (set-extent-face but face) @@ -96,7 +96,7 @@ If REGEXP-MATCH is non-nil, only buttons matching this argument are highlighted. -If 'hproperty:but-emphasize-p' is non-nil when this is called, emphasize that +If `hproperty:but-emphasize-p' is non-nil when this is called, emphasize that button is selectable whenever the mouse cursor moves over it." (interactive) (hproperty:but-clear) diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/hversion.el --- a/lisp/hyperbole/hversion.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/hversion.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,6 +1,6 @@ ;;!emacs ;; -;; LCD-ENTRY: hyperbole|Bob Weiner|hyperbole@infodock.com|Everyday Info Manager|23-Feb-97|4.022|ftp://ftp.xemacs.org/pub/infodock +;; LCD-ENTRY: hyperbole|Bob Weiner|hyperbole@infodock.com|Everyday Info Manager|17-Mar-97|4.023|ftp://ftp.xemacs.org/pub/infodock ;; ;; FILE: hversion.el ;; SUMMARY: Hyperbole version, system and load path information. @@ -11,7 +11,7 @@ ;; ORG: InfoDock Associates ;; ;; ORIG-DATE: 1-Jan-94 -;; LAST-MOD: 23-Feb-97 at 23:22:37 by Bob Weiner +;; LAST-MOD: 17-Mar-97 at 21:08:15 by Bob Weiner ;; ;; This file is part of Hyperbole. ;; Available for use and distribution under the same terms as GNU Emacs. @@ -26,7 +26,7 @@ ;;; Public variables ;;; ************************************************************************ -(defconst hyperb:version "04.022" "Hyperbole revision number.") +(defconst hyperb:version "04.023" "Hyperbole revision number.") ;;; Support button highlighting and flashing under XEmacs. ;;; diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/hyperbole.el --- a/lisp/hyperbole/hyperbole.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/hyperbole.el Mon Aug 13 08:53:38 2007 +0200 @@ -11,7 +11,7 @@ ;; ORG: InfoDock Associates ;; ;; ORIG-DATE: 6-Oct-92 at 11:52:51 -;; LAST-MOD: 19-Feb-97 at 10:57:44 by Bob Weiner +;; LAST-MOD: 15-Mar-97 at 17:09:40 by Bob Weiner ;; ;; This file is part of Hyperbole. ;; Available for use and distribution under the same terms as GNU Emacs. @@ -118,7 +118,7 @@ ;;; Provides a site standard way to easily switch between the Hyperbole mouse ;;; bindings and a set of personal mouse bindings. You may instead show -;;; users how to bind this to a key via 'hyperb:init-hook' (see +;;; users how to bind this to a key via `hyperb:init-hook' (see ;;; Hyperbole Manual). ;;; (or (global-key-binding "\C-ct") @@ -130,7 +130,7 @@ (interactive "P") (if arg (assist-key) (action-key))) -;;; A value of t for 'hkey-init' below will cause the Hyperbole +;;; A value of t for `hkey-init' below will cause the Hyperbole ;;; context-sensitive keys to be bound to keyboard keys, in addition to any ;;; mouse key bindings. Comment it out or set it to nil if you don't want ;;; these bindings. Or change the bindings in the succeeding lines. @@ -407,16 +407,17 @@ ) ;;; Hyperbole rolodex main entry points. -(autoload 'rolo-add "wrolo" "Add an entry to rolodex" t) -(autoload 'rolo-display-matches "wrolo" "Redisplay previous rolodex matches" t) -(autoload 'rolo-edit "wrolo" "Edit an existing rolodex entry" t) -(autoload 'rolo-fgrep "wrolo" "Rolodex string search" t) -(autoload 'rolo-grep "wrolo" "Rolodex regexp search" t) -(autoload 'rolo-kill "wrolo" "Delete an existing rolodex entry" t) -(autoload 'rolo-logic "wrolo-logic" "Logical rolodex search filters." t) -(autoload 'rolo-sort "wrolo" "Sort rolodex entries" t) -(autoload 'rolo-word "wrolo" "Rolodex string search for a word" t) -(autoload 'rolo-yank "wrolo" "Insert a rolodex entry into current buffer" t) +(autoload 'rolo-add "wrolo" "Add an entry to rolodex" t) +(autoload 'rolo-display-matches "wrolo" "Redisplay previous rolodex matches" t) +(autoload 'rolo-edit "wrolo" "Edit an existing rolodex entry" t) +(autoload 'rolo-fgrep "wrolo" "Rolodex string search" t) +(autoload 'rolo-grep "wrolo" "Rolodex regexp search" t) +(autoload 'rolo-kill "wrolo" "Delete an existing rolodex entry" t) +(autoload 'rolo-logic "wrolo-logic" "Logical rolodex search filters." t) +(autoload 'rolo-sort "wrolo" "Sort rolodex entries" t) +(autoload 'rolo-toggle-datestamps "wrolo" "Toggle datestamp insertion." t) +(autoload 'rolo-word "wrolo" "Rolodex string search for a word" t) +(autoload 'rolo-yank "wrolo" "Insert a rolodex entry into current buffer" t) ;;; Hyperbole Key autoloads. (autoload 'Info-handle-in-note "hmous-info" @@ -485,14 +486,14 @@ ;;; ;;; Hyperbole mail composer support configuration. ;;; -(var:append 'mail-mode-hook '((lambda () (require 'hsmail)))) -(var:append 'mh-letter-mode-hook '((lambda () (require 'hsmail)))) -(var:append 'vm-mail-mode-hook '((lambda () (require 'hsmail)))) +(var:append 'mail-mode-hook (list (function (lambda () (require 'hsmail))))) +(var:append 'mh-letter-mode-hook (list (function (lambda () (require 'hsmail))))) +(var:append 'vm-mail-mode-hook (list (function (lambda () (require 'hsmail))))) ;;; ************************************************************************ ;;; Frame function aliases. ;;; ************************************************************************ -;; Create all needed 'frame-' aliases for all 'screen-' functions, e.g. +;; Create all needed `frame-' aliases for all `screen-' functions, e.g. ;; screen-width. (if (fboundp 'selected-frame) nil diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/kotl/kfile.el --- a/lisp/hyperbole/kotl/kfile.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/kotl/kfile.el Mon Aug 13 08:53:38 2007 +0200 @@ -8,7 +8,8 @@ ;; AUTHOR: Bob Weiner & Kellie Clark ;; ;; ORIG-DATE: 10/31/93 -;; LAST-MOD: 1-Nov-95 at 00:46:41 by Bob Weiner +;; LAST-MOD: 6-Mar-97 at 01:17:51 by Bob Weiner + ;;; ************************************************************************ ;;; Other required Elisp libraries ;;; ************************************************************************ @@ -152,13 +153,13 @@ Return the new view." (let (ver-string) (cond ((not (bufferp buffer)) - (error "(kfile:read): Argument must be a buffer, '%s'." buffer)) + (error "(kfile:read): Argument must be a buffer, `%s'." buffer)) ((not existing-file-p) (kfile:create buffer)) ((progn (set-buffer buffer) (not (setq ver-string (kfile:is-p)))) - (error "(kfile:read): '%s' is not a koutline file." buffer)) + (error "(kfile:read): `%s' is not a koutline file." buffer)) ((equal ver-string "Kotl-4.0") (kfile:read-v4-or-v3 buffer nil)) ((equal ver-string "Kotl-3.0") @@ -167,7 +168,7 @@ (kfile:read-v2 buffer)) ((equal ver-string "Kotl-1.0") (error "(kfile:read): V1 koutlines are no longer supported")) - (t (error "(kfile:read): '%s' has unknown kotl version, %s." + (t (error "(kfile:read): `%s' has unknown kotl version, %s." buffer ver-string))))) (defun kfile:read-v2 (buffer) @@ -323,7 +324,7 @@ (set-marker opoint nil) nil))) -;;; Next function is adapted from 'file-write' of GNU Emacs 19, copyright FSF, +;;; Next function is adapted from `file-write' of GNU Emacs 19, copyright FSF, ;;; under the GPL. (defun kfile:write (file) "Write current outline to FILE." @@ -529,6 +530,6 @@ ;;; ************************************************************************ (defvar kfile:escape-newlines t - "Value of print-escape-newlines used by 'kfile:print-to-string' function.") + "Value of print-escape-newlines used by `kfile:print-to-string' function.") (provide 'kfile) diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/kotl/kfill.el --- a/lisp/hyperbole/kotl/kfill.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/kotl/kfill.el Mon Aug 13 08:53:38 2007 +0200 @@ -7,7 +7,8 @@ ;; ;; AUTHOR: Bob Weiner ;; ORIG-DATE: 23-Jan-94 -;; LAST-MOD: 15-Jan-97 at 11:54:12 by Bob Weiner +;; LAST-MOD: 6-Mar-97 at 01:18:10 by Bob Weiner + ;;; ************************************************************************ ;;; Public variables ;;; ************************************************************************ @@ -103,7 +104,7 @@ (kfill:fill-paragraph arg skip-prefix-remove)))) ;;; -;;; Redefine this function so that it sets 'fill-prefix-prev' also. +;;; Redefine this function so that it sets `fill-prefix-prev' also. ;;; (defun set-fill-prefix (&optional turn-off) "Set the fill-prefix to the current line up to point. diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/kotl/kimport.el --- a/lisp/hyperbole/kotl/kimport.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/kotl/kimport.el Mon Aug 13 08:53:38 2007 +0200 @@ -8,7 +8,8 @@ ;; AUTHOR: Bob Weiner & Kellie Clark ;; ;; ORIG-DATE: 15-Nov-93 at 11:57:05 -;; LAST-MOD: 1-Nov-95 at 23:19:09 by Bob Weiner +;; LAST-MOD: 6-Mar-97 at 01:18:33 by Bob Weiner + ;;; ************************************************************************ ;;; Other required Elisp libraries ;;; ************************************************************************ @@ -133,7 +134,7 @@ (message "Imported %d of %d Augment statements." count total))) ;;; -;;; Emacs outliner style files, leading '*' cell delimiters +;;; Emacs outliner style files, leading `*' cell delimiters ;;; ;;;###autoload @@ -213,7 +214,7 @@ Text paragraphs are imported as a sequence of same level cells. Koutlines are imported with their structure intact. -The variable, 'paragraph-start,' is used to determine paragraphs." +The variable, `paragraph-start,' is used to determine paragraphs." (interactive "FImport from text/koutline buffer/file: \nFInsert cells into koutline buffer/file: \nP") (let ((klabel "1") (output-level 1) (count 0) initially-empty-output no-renumber orig-point total) @@ -540,7 +541,7 @@ the total number of paragraphs in IMPORT-FROM, used to show a running tally of the imported paragraphs. -The variable, 'paragraph-start' is used to determine paragraphs." +The variable, `paragraph-start' is used to determine paragraphs." (set-buffer import-from) (let* ((count 0) start end contents) ;; Next line is needed when importing into an existing kview. diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/kotl/klabel.el --- a/lisp/hyperbole/kotl/klabel.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/kotl/klabel.el Mon Aug 13 08:53:38 2007 +0200 @@ -8,7 +8,8 @@ ;; AUTHOR: Bob Weiner & Kellie Clark ;; ;; ORIG-DATE: 17-Apr-94 -;; LAST-MOD: 1-Nov-95 at 02:33:23 by Bob Weiner +;; LAST-MOD: 6-Mar-97 at 01:19:02 by Bob Weiner + ;;; ************************************************************************ ;;; Public variables ;;; ************************************************************************ @@ -47,7 +48,7 @@ ((eq label-type 'partial-alpha) (error "(klabel:level): Can't compute the level of a partial-alpha label")) - (t (error "(klabel:level): Invalid label type setting: '%s'" + (t (error "(klabel:level): Invalid label type setting: `%s'" label-type))))) (defun klabel:parent (label) @@ -69,7 +70,7 @@ (error "(klabel:child-id): Can't compute child of idstamp label")))) (t (error - "(klabel-type:child): Invalid label type setting: '%s'" + "(klabel-type:child): Invalid label type setting: `%s'" label-type)))) (defun klabel-type:increment (label-type) @@ -96,7 +97,7 @@ (error "(klabel:increment-no): 0 cell cannot have a sibling") (error "(klabel:increment-id): Can't compute sibling of idstamp label"))))) (t (error - "(klabel:increment): Invalid label type setting: '%s'" + "(klabel:increment): Invalid label type setting: `%s'" label-type)))) (defun klabel-type:parent (label-type) @@ -127,7 +128,7 @@ (error "(klabel:parent-id): Can't compute parent of idstamp label")))) (t (error - "(klabel-type:parent): Invalid label type setting: '%s'" + "(klabel-type:parent): Invalid label type setting: `%s'" label-type)))) ;;; @@ -211,7 +212,7 @@ (concat (substring label 0 (match-beginning 0)) (int-to-string (1+ (string-to-int (substring label (match-beginning 0))))))) - (t (error "(klabel:increment-legal): Invalid label, '%s'" label)))) + (t (error "(klabel:increment-legal): Invalid label, `%s'" label)))) (defun klabel:level-legal (label) "Return outline level as an integer of legal-style LABEL. @@ -243,10 +244,10 @@ ;; It must be one of the following symbols: ;; no for no labels, ;; id for permanent idstamp labels, e.g. 001, 002, etc. -;; alpha for '1a2' full alphanumeric labels -;; legal for '1.1.2' labels -;; partial-alpha for partial alphanumeric labels, e.g. '2' for node '1a2' -;; star for multi-star labeling, e.g. '***'. +;; alpha for `1a2' full alphanumeric labels +;; legal for `1.1.2' labels +;; partial-alpha for partial alphanumeric labels, e.g. `2' for node `1a2' +;; star for multi-star labeling, e.g. `***'. ;; ;; Functions to compute sibling and child labels for particular label types. @@ -352,7 +353,7 @@ (if (re-search-backward "\\(\\`\\|[\n\r][\n\r]\\)[ \t]*0[0-9]+" nil t) (goto-char (match-end 0))))))))) - (error "(kview:to-label-end): Invalid label type: '%s'" label-type))) + (error "(kview:to-label-end): Invalid label type: `%s'" label-type))) (defun klabel-type:star-label (prev-label &optional child-p) "Return full star label, e.g. ***, for cell following PREV-LABEL's cell. @@ -379,7 +380,7 @@ ((eq label-type 'no) "") ((eq label-type 'star) "*") (t (error - "(klabel-type:set-labels): Invalid label type: '%s'" + "(klabel-type:set-labels): Invalid label type: `%s'" label-type)))) (let ((klabel-type:changing-flag t)) (klabel-type:update-labels-from-point label-type first-label))))) @@ -603,7 +604,7 @@ is signaled." (if (not (kotl-label:is-p label)) (error - "(kotl-label:increment): First arg, '%s', must be a kotl-label." + "(kotl-label:increment): First arg, `%s', must be a kotl-label." label)) (let ((int-p) (val 0)) (if (or (setq int-p (kotl-label:integer-p label)) @@ -613,13 +614,13 @@ (progn (setq int-p (string-to-int label)) (if (> (setq val (+ int-p n)) 0) (kotl-label:create val) - (error "(kotl-label:increment): Decrement of '%s' by '%d' is less than 1." label n))) + (error "(kotl-label:increment): Decrement of `%s' by `%d' is less than 1." label n))) ;; alpha-p (if (<= 0 (setq val (+ n (kotl-label:alpha-to-int label)))) (kotl-label:create (kotl-label:int-to-alpha val)) - (error "(kotl-label:increment): Decrement of '%s' by '%d' is illegal." label n))) - (error "(kotl-label:increment): label, '%s', must be all digits or alpha characters" label)))) + (error "(kotl-label:increment): Decrement of `%s' by `%d' is illegal." label n))) + (error "(kotl-label:increment): label, `%s', must be all digits or alpha characters" label)))) (defun kotl-label:increment-alpha (label) "Return alphabetic LABEL incremented by 1. @@ -694,7 +695,7 @@ For example, the full label \"1a2\" has kotl-label \"2\", as does \"1.1.2\"." (if (string-match "[0-9]+$\\|[a-zA-Z]+$" label) (substring label (match-beginning 0)) - (error "(klabel:to-kotl-label): Invalid label, '%s'" label))) + (error "(klabel:to-kotl-label): Invalid label, `%s'" label))) (defun klabel-type:update-labels-from-point (label-type first-label) (let ((label-sep-len (kview:label-separator-length kview))) diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/kotl/klink.el --- a/lisp/hyperbole/kotl/klink.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/kotl/klink.el Mon Aug 13 08:53:38 2007 +0200 @@ -8,7 +8,7 @@ ;; AUTHOR: Bob Weiner & Kellie Clark ;; ;; ORIG-DATE: 15-Nov-93 at 12:15:16 -;; LAST-MOD: 6-Jan-97 at 19:00:58 by Bob Weiner +;; LAST-MOD: 6-Mar-97 at 01:19:19 by Bob Weiner ;; ;; DESCRIPTION: ;; @@ -65,7 +65,7 @@ (defun klink:create (reference) "Insert at point an implicit link to REFERENCE. REFERENCE should be a cell-ref or a string containing \"filename, cell-ref\". -See documentation for 'kcell:ref-to-id' for valid cell-ref formats." +See documentation for `kcell:ref-to-id' for valid cell-ref formats." (interactive ;; Don't change the name or delete default-dir used here. It is referenced ;; in "hargs.el" for argument getting. @@ -98,7 +98,7 @@ (if cell-ref (insert ", " cell-ref)) (insert ">")) (cell-ref (insert "<@ " cell-ref ">")) - (t (error "(klink:create) Invalid reference, '%s'" reference))))) + (t (error "(klink:create) Invalid reference, `%s'" reference))))) (defun klink:at-p () "Return non-nil iff point is within a klink. @@ -161,7 +161,7 @@ < [-!&] pathname > < @ cell-ref > -See documentation for 'kcell:ref-to-id' for valid cell-ref formats." +See documentation for `kcell:ref-to-id' for valid cell-ref formats." (interactive "sKotl link specifier: ") (or (stringp link) (error "(link-to-kotl): Non-string link argument, %s" @@ -216,7 +216,7 @@ |viewspec :augment-viewspec (ignored for now) -See documentation for 'kcell:ref-to-id' for valid cell-ref formats." +See documentation for `kcell:ref-to-id' for valid cell-ref formats." (or (stringp reference) (error "(klink:parse): Non-string reference argument, %s" diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/kotl/kmenu.el --- a/lisp/hyperbole/kotl/kmenu.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/kotl/kmenu.el Mon Aug 13 08:53:38 2007 +0200 @@ -6,12 +6,11 @@ ;; KEYWORDS: mouse, outlines, wp ;; ;; AUTHOR: Bob Weiner -;; ORG: Motorola, Inc., PPG ;; ;; ORIG-DATE: 28-Mar-94 at 11:22:09 -;; LAST-MOD: 22-Oct-96 at 01:30:50 by Bob Weiner +;; LAST-MOD: 6-Mar-97 at 01:20:03 by Bob Weiner ;; -;; Copyright (C) 1994-1995 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc. ;; ;; This file is part of Hyperbole. ;; diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/kotl/kotl-mode.el --- a/lisp/hyperbole/kotl/kotl-mode.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/kotl/kotl-mode.el Mon Aug 13 08:53:38 2007 +0200 @@ -8,7 +8,7 @@ ;; AUTHOR: Bob Weiner & Kellie Clark ;; ;; ORIG-DATE: 6/30/93 -;; LAST-MOD: 5-Dec-96 at 18:55:22 by Bob Weiner +;; LAST-MOD: 6-Mar-97 at 01:15:42 by Bob Weiner ;; ;; This file is part of Hyperbole. ;; Available for use and distribution under the same terms as GNU Emacs. @@ -157,7 +157,7 @@ (opoint (point-marker)) (bocp) start) - (setq start (kotl-mode:beginning-of-line)) + (setq start (kotl-mode:start-of-line)) (if (setq bocp (kotl-mode:bocp)) (progn ;; Add a temporary fill-prefix since this is the 1st line of the cell @@ -522,7 +522,7 @@ ((and (markerp val) (marker-position val)) (princ (marker-position val) (current-buffer))) (t - (error "Register '%c' does not contain text" register)))) + (error "Register `%c' does not contain text" register)))) (if (not arg) (exchange-point-and-mark))) (defun kotl-mode:just-one-space () @@ -1296,7 +1296,7 @@ (setq zmacs-region-stays t) ;; Maintain region highlight for XEmacs. (or arg (setq arg 1)) (or (integer-or-marker-p arg) - (error "(kotl-mode:beginning-of-cell): Wrong type arg, integer-or-marker, '%s'" arg)) + (error "(kotl-mode:beginning-of-cell): Wrong type arg, integer-or-marker, `%s'" arg)) (if (= arg 1) (goto-char (kcell-view:start)) (kotl-mode:backward-cell (1- arg))) @@ -1311,7 +1311,7 @@ (setq zmacs-region-stays t) ;; Maintain region highlight for XEmacs. (or arg (setq arg 1)) (or (integer-or-marker-p arg) - (error "(kotl-mode:start-of-line): Wrong type arg, integer-or-marker, '%s'" arg)) + (error "(kotl-mode:start-of-line): Wrong type arg, integer-or-marker, `%s'" arg)) (forward-line (1- arg)) (if (eolp) nil @@ -1319,7 +1319,9 @@ (beginning-of-line)))) (point)) -(defalias 'kotl-mode:beginning-of-line 'kotl-mode:start-of-line) +;;; This ensures that the key bound to `beginning-of-line' is replaced in +;;; kotl-mode. +(fset 'kotl-mode:beginning-of-line 'kotl-mode:start-of-line) (defun kotl-mode:beginning-of-tree () "Move point to the level 1 root of the current cell's tree. @@ -1369,7 +1371,7 @@ (setq zmacs-region-stays t) ;; Maintain region highlight for XEmacs. (or arg (setq arg 1)) (or (integer-or-marker-p arg) - (error "(kotl-mode:end-of-cell): Wrong type arg, integer-or-marker, '%s'" arg)) + (error "(kotl-mode:end-of-cell): Wrong type arg, integer-or-marker, `%s'" arg)) (if (= arg 1) (goto-char (kcell-view:end-contents)) (kotl-mode:forward-cell (1- arg))) @@ -1384,7 +1386,7 @@ (setq zmacs-region-stays t) ;; Maintain region highlight for XEmacs. (or arg (setq arg 1)) (or (integer-or-marker-p arg) - (error "(kotl-mode:finish-of-line): Wrong type arg, integer-or-marker, '%s'" arg)) + (error "(kotl-mode:finish-of-line): Wrong type arg, integer-or-marker, `%s'" arg)) (forward-line (1- arg)) (end-of-line) ;; May have to move backwards to before label if support labels @@ -1540,7 +1542,7 @@ (point)) (defun kotl-mode:goto-cell (cell-ref &optional error-p) - "Move point to start of cell given by CELL-REF. (See 'kcell:ref-to-id'.) + "Move point to start of cell given by CELL-REF. (See `kcell:ref-to-id'.) Return point iff CELL-REF is found within current view. With a prefix argument, CELL-REF is assigned the argument value for use as an idstamp. @@ -1554,7 +1556,7 @@ (read-string "Goto cell label or id: ")))) (setq cell-ref (or (kcell:ref-to-id cell-ref) - (error "(kotl-mode:goto-cell): Invalid cell reference, '%s'" cell-ref))) + (error "(kotl-mode:goto-cell): Invalid cell reference, `%s'" cell-ref))) (let* ((opoint (point)) (found) cell-id kvspec) @@ -1589,7 +1591,7 @@ (t (goto-char opoint) nil)) (if (and (not found) (or error-p (interactive-p))) - (error "(kotl-mode:goto-cell): No '%s' cell in this view" cell-ref) + (error "(kotl-mode:goto-cell): No `%s' cell in this view" cell-ref) ;; Activate any viewspec associated with cell-ref. (if kvspec (kvspec:activate kvspec)))) found)) @@ -2249,10 +2251,10 @@ (setq attribute (intern attribute) value (kcell-view:get-attr attribute)) (if value - (setq value (read-expression + (setq value (read-minibuffer (format "Change value of \"%s\" to: " attribute) (prin1-to-string value))) - (setq value (read-expression + (setq value (read-minibuffer (format "Set value of \"%s\" to: " attribute)))) (list attribute value nil))) (kcell-view:set-attr attribute value pos) @@ -2558,7 +2560,7 @@ (prog1 (buffer-substring bol eol) (delete-region bol eol))) - (error "(kotl-mode:delete-line): Invalid position, '%d'" (point))))) + (error "(kotl-mode:delete-line): Invalid position, `%d'" (point))))) (defun kotl-mode:indent-line (arg) ;; Disallow the indent-line command. @@ -2619,7 +2621,7 @@ (defun kotl-mode:print-attributes (kview) "Print to the `standard-output' stream the attributes of the current visible kcell. -Takes argument KVIEW (so it can be used with 'kview:map-tree' and so that +Takes argument KVIEW (so it can be used with `kview:map-tree' and so that KVIEW is bound correctly) but always operates upon the current view." ;; Move to start of visible cell to avoid printing attributes for an ;; invisible kcell which point may be over. diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/kotl/kview.el --- a/lisp/hyperbole/kotl/kview.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/kotl/kview.el Mon Aug 13 08:53:38 2007 +0200 @@ -8,7 +8,8 @@ ;; AUTHOR: Bob Weiner & Kellie Clark ;; ;; ORIG-DATE: 6/30/93 -;; LAST-MOD: 2-Nov-95 at 00:52:52 by Bob Weiner +;; LAST-MOD: 6-Mar-97 at 01:16:42 by Bob Weiner + ;;; ************************************************************************ ;;; Other required Lisp Libraries ;;; ************************************************************************ @@ -43,10 +44,10 @@ It must be one of the following symbols: no for no labels id for permanent idstamp labels, e.g. 001, 002, etc. - alpha for '1a2' full alphanumeric labels - legal for '1.1.2' labels - partial-alpha for partial alphanumeric labels, e.g. '2' for node '1a2' - star for multi-star labeling, e.g. '***'.") + alpha for `1a2' full alphanumeric labels + legal for `1.1.2' labels + partial-alpha for partial alphanumeric labels, e.g. `2' for node `1a2' + star for multi-star labeling, e.g. `***'.") (defvar kview:default-level-indent 3 "*Default number of spaces to indent each succeeding level in koutlines.") @@ -294,9 +295,9 @@ (if pos (goto-char pos)) (if (kview:valid-position-p) (buffer-substring - (kotl-mode:beginning-of-line) + (kotl-mode:start-of-line) (kotl-mode:end-of-line)) - (error "(kcell-view:line): Invalid position, '%d'" (point))))) + (error "(kcell-view:line): Invalid position, `%d'" (point))))) (defun kcell-view:next (&optional visible-p label-sep-len) "Move to start of next cell within current view. @@ -402,7 +403,7 @@ (defun kcell-view:reference (&optional pos relative-dir) "Return a reference to the kcell at optional POS or point for use in a link. The reference is a string of the form, \"\" where -cell-ref is as described in the documentation for 'kcell:ref-to-id'. +cell-ref is as described in the documentation for `kcell:ref-to-id'. Kcell-file is made relative to optional RELATIVE-DIR before it is returned." (format "<%s, %s=%s>" (hpath:relative-to buffer-file-name relative-dir) (kcell-view:label pos) (kcell-view:idstamp pos))) @@ -473,21 +474,21 @@ BLANK-LINES, LEVELS-TO-SHOW, and LINES-TO-SHOW may also be given, otherwise default values are used. See documentation of: - 'kview:default-label-type' for LABEL-TYPE, - 'kview:default-level-indent' for LEVEL-INDENT, - 'kview:default-label-separator' for LABEL-SEPARATOR, - 'kview:default-label-min-width' for LABEL-MIN-WIDTH, - 'kview:default-blank-lines' for BLANK-LINES, - 'kview:default-levels-to-show' for LEVELS-TO-SHOW, - 'kview:default-lines-to-show' for LINES-TO-SHOW." + `kview:default-label-type' for LABEL-TYPE, + `kview:default-level-indent' for LEVEL-INDENT, + `kview:default-label-separator' for LABEL-SEPARATOR, + `kview:default-label-min-width' for LABEL-MIN-WIDTH, + `kview:default-blank-lines' for BLANK-LINES, + `kview:default-levels-to-show' for LEVELS-TO-SHOW, + `kview:default-lines-to-show' for LINES-TO-SHOW." (let ((buf (get-buffer buffer-name))) (cond ((null buf) - (error "(kview:create): No such buffer, '%s'." buffer-name)) + (error "(kview:create): No such buffer, `%s'." buffer-name)) ((or (null id-counter) (= id-counter 0)) (setq id-counter 0)) ((not (integerp id-counter)) - (error "(kview:create): 2nd arg, '%s', must be an integer." id-counter))) + (error "(kview:create): 2nd arg, `%s', must be an integer." id-counter))) (set-buffer buf) (if (and (boundp 'kview) (eq (kview:buffer kview) buf)) ;; Don't recreate view if it exists. @@ -731,7 +732,7 @@ FUNC is called so that it may test against this value. `Label-sep-len' contains the label separator length. -See also 'kview:map-siblings' and 'kview:map-tree'." +See also `kview:map-siblings' and `kview:map-tree'." (save-excursion (set-buffer (kview:buffer kview)) (let ((results) @@ -760,7 +761,7 @@ FUNC is called so that it may test against this value. `Label-sep-len' contains the label separator length. -See also 'kview:map-branch' and 'kview:map-tree'." +See also `kview:map-branch' and `kview:map-tree'." (save-excursion (set-buffer (kview:buffer kview)) (let ((results) @@ -787,7 +788,7 @@ FUNC is called so that it may test against this value. `Label-sep-len' contains the label separator length. -See also 'kview:map-branch' and 'kview:map-siblings'." +See also `kview:map-branch' and `kview:map-siblings'." (let ((results) (label-sep-len (kview:label-separator-length kview))) (save-excursion @@ -924,7 +925,7 @@ label-type (intern new-type-str))))) (if (not (memq new-type '(alpha legal id no partial-alpha star))) - (error "(kview:set-label-type): Invalid label type, '%s'." new-type)) + (error "(kview:set-label-type): Invalid label type, `%s'." new-type)) ;; Disable use of partial-alpha for now since it is broken. (if (eq new-type 'partial-alpha) (error "(kview:set-label-type): Partial-alpha labels don't work, choose another type")) @@ -948,9 +949,9 @@ (>= (current-column) (kcell-view:indent))) ((not (integer-or-marker-p pos)) (error "(kview:valid-position-p): Argument POS not an integer -or marker, '%s'" pos)) +or marker, `%s'" pos)) ((or (< pos (point-min)) (> pos (point-max))) - (error "(kview:valid-position-p): Invalid POS argument, '%d'" + (error "(kview:valid-position-p): Invalid POS argument, `%d'" pos)) (t (save-excursion (goto-char pos) diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/kotl/kvspec.el --- a/lisp/hyperbole/kotl/kvspec.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/kotl/kvspec.el Mon Aug 13 08:53:38 2007 +0200 @@ -8,7 +8,7 @@ ;; AUTHOR: Bob Weiner ;; ;; ORIG-DATE: 21-Oct-95 at 15:17:07 -;; LAST-MOD: 4-Dec-96 at 15:36:12 by Bob Weiner +;; LAST-MOD: 6-Mar-97 at 01:17:04 by Bob Weiner ;; ;; This file is part of Hyperbole. ;; Available for use and distribution under the same terms as GNU Emacs. @@ -122,7 +122,7 @@ "Show NUM lines per cell." (if (and (integerp num) (>= num 0)) nil - (error "(kvspec:show-lines-per-cell): Invalid lines per cell, '%d'" num)) + (error "(kvspec:show-lines-per-cell): Invalid lines per cell, `%d'" num)) (kview:set-attr kview 'lines-to-show num) (let (start end count) (if (zerop num) @@ -181,7 +181,7 @@ ;;; ************************************************************************ (defun kvspec:blank-lines () - "Turn blank lines on or off according to 'kvspec:current'." + "Turn blank lines on or off according to `kvspec:current'." (let ((modified-p (buffer-modified-p)) (buffer-read-only)) (if (string-match "b" kvspec:current) @@ -234,12 +234,12 @@ kvspec:label-type-alist))))))))) (defun kvspec:elide () - "Turn ellipses display following clipped cells on or off according to 'kvspec:current'." + "Turn ellipses display following clipped cells on or off according to `kvspec:current'." (setq selective-display-ellipses (if (string-match "e" kvspec:current) t))) (defun kvspec:hide-levels () - "Show a set number of cell levels according to 'kvspec:current'." + "Show a set number of cell levels according to `kvspec:current'." ;; "l" means use value of kview:default-levels-to-show. ;; "l0" means show all levels. (let (levels) @@ -256,7 +256,7 @@ (kvspec:levels-to-show levels)))) (defun kvspec:lines-to-show () - "Show a set number of lines per cell according to 'kvspec:current'." + "Show a set number of lines per cell according to `kvspec:current'." ;; "c" means use value of kview:default-lines-to-show. ;; "c0" means show all lines. (cond ((not (string-match "c\\([0-9]+\\)?" kvspec:current)) @@ -270,7 +270,7 @@ (t (kvspec:show-lines-per-cell kview:default-lines-to-show)))) (defun kvspec:numbering () - "Set the type of numbering (label) display according to 'kvspec:current'." + "Set the type of numbering (label) display according to `kvspec:current'." (if (not (string-match "n\\([.*~0-2]\\)?" kvspec:current)) nil ;; "n" means use value of kview:default-label-type. @@ -315,7 +315,7 @@ (setq mf (cdr mf))))))))) (defun kvspec:update-view () - "Update view according to current setting of local 'kvspec:current' variable." + "Update view according to current setting of local `kvspec:current' variable." (let ((modified-p (buffer-modified-p)) (buffer-read-only)) (save-excursion @@ -374,7 +374,7 @@ (defvar kvspec:string-format " <|%s>" "Format of the kview spec modeline display. -It must contain a '%s' which is replaced with the current set of view spec +It must contain a `%s' which is replaced with the current set of view spec characters at run-time.") (provide 'kvspec) diff -r 279432d5c479 -r c53a95d3c46d lisp/hyperbole/wrolo.el --- a/lisp/hyperbole/wrolo.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/hyperbole/wrolo.el Mon Aug 13 08:53:38 2007 +0200 @@ -15,13 +15,12 @@ ;; Tel: +1 408-243-3300 ;; ;; ORIG-DATE: 7-Jun-89 at 22:08:29 -;; LAST-MOD: 17-Feb-97 at 15:32:20 by Bob Weiner +;; LAST-MOD: 14-Mar-97 at 01:32:23 by Bob Weiner ;; ;; This file is part of Hyperbole. ;; Available for use and distribution under the same terms as GNU Emacs. ;; -;; Copyright (C) 1989, '90, '91, '92, '95 Free Software Foundation, Inc. -;; Copyright (C) 1996 InfoDock Associates +;; Copyright (C) 1989, '90, '91, '92, '95, '96, '97 Free Software Foundation, Inc. ;; ;; DESCRIPTION: ;; @@ -63,7 +62,7 @@ ;; ;; SETUP: ;; -;; The variable 'rolo-file-list' is a list of files to search for +;; The variable `rolo-file-list' is a list of files to search for ;; matching rolodex entries. To add personal files to rolo-file-list, ;; when you find these functions are useful for any sort of list lookup, ;; add the following to your ~/.emacs file (substituting where you see @@ -71,9 +70,9 @@ ;; ;; (setq rolo-file-list (append rolo-file-list '("" ""))) ;; -;; We recommend that entries in 'rolo-file-list' have ".otl" suffixes +;; We recommend that entries in `rolo-file-list' have ".otl" suffixes ;; so that they do not conflict with file names that other rolodex -;; programs might use and so that they are edited in 'outline-mode' by +;; programs might use and so that they are edited in `outline-mode' by ;; default. If you want the latter behavior, uncomment and add something ;; like the following to one of your GNU Emacs initialization files: ;; @@ -98,7 +97,7 @@ ;; message, the rolodex add function will extract the sender's name ;; and e-mail address and prompt you with the name as a default. If ;; you accept it, it will enter the name and the email address using -;; the format given by the 'rolo-email-format' variable. See its +;; the format given by the `rolo-email-format' variable. See its ;; documentation if you want to change its value. ;; ;; @@ -139,8 +138,8 @@ ;; parent/child to locate a child entry below a parent entry, e.g. ;; from the example near the top, we could give Company/Manager/Underlings. ;; -;; Here is a snippet from our group rolodex file. The ';'s should be -;; removed of course and the '*'s should begin at the start of the +;; Here is a snippet from our group rolodex file. The `;'s should be +;; removed of course and the `*'s should begin at the start of the ;; line. If a rolodex file begins with two separator lines whose ;; first three characters are "===", then these lines and any text ;; between them are prepended to the output buffer whenever any @@ -160,43 +159,43 @@ ;; FOR PROGRAMMERS: ;; ;; Entries in rolodex files are separated by patterns matching -;; 'rolo-entry-regexp'. Each entry may have any number of sub-entries +;; `rolo-entry-regexp'. Each entry may have any number of sub-entries ;; which represent the next level down in the entry hierarchy. ;; Sub-entries' separator patterns are always longer than their parents'. -;; For example, if an entry began with '*' then its sub-entries would begin -;; with '**' and so on. Blank lines in rolodex files will not end up where +;; For example, if an entry began with `*' then its sub-entries would begin +;; with `**' and so on. Blank lines in rolodex files will not end up where ;; you want them if you use the rolo-sort commands; therefore, blank lines ;; are not recommended. If you change the value of -;; 'rolo-entry-regexp', you will have to modify 'rolo-sort'. +;; `rolo-entry-regexp', you will have to modify `rolo-sort'. ;; ;; The following additional functions are provided: ;; -;; 'rolo-sort-level' sorts a specific level of entries in a rolodex file; -;; 'rolo-map-level' runs a user specified function on a specific level of +;; `rolo-sort-level' sorts a specific level of entries in a rolodex file; +;; `rolo-map-level' runs a user specified function on a specific level of ;; entries in a rolodex file; -;; 'rolo-fgrep-file', same as 'rolo-fgrep' but operates on a single file; -;; 'rolo-grep-file', same as 'rolo-grep' but operates on a single file; -;; 'rolo-display-matches', display last set of rolodex matches, if any; -;; 'rolo-toggle-narrow-to-entry' toggles between display of current entry +;; `rolo-fgrep-file', same as `rolo-fgrep' but operates on a single file; +;; `rolo-grep-file', same as `rolo-grep' but operates on a single file; +;; `rolo-display-matches', display last set of rolodex matches, if any; +;; `rolo-toggle-narrow-to-entry' toggles between display of current entry ;; and display of all matching entries. ;; ;; ;; MOD HISTORY: ;; ;; 12/17/89 -;; Added internal 'rolo-shrink-window' function for use in +;; Added internal `rolo-shrink-window' function for use in ;; compressing/uncompressing the rolo view window to/from a size just ;; large enough for the selected entry. This is useful when a search ;; turns up more entries than desired. ;; ;; 02/21/90 -;; Modified 'rolo-grep-file' and 'rolo-map-level' so they only set buffers +;; Modified `rolo-grep-file' and `rolo-map-level' so they only set buffers ;; read-only the first time they are read in. This way, if someone edits a ;; rolodex file and then does a rolo-fgrep or other function, the buffer ;; will not be back in read-only mode. ;; ;; 04/18/91 -;; Modified 'rolo-grep-file' to expand any hidden entries in rolo file +;; Modified `rolo-grep-file' to expand any hidden entries in rolo file ;; before doing a search. ;; ;; 12/24/91 @@ -261,6 +260,10 @@ (defvar rolo-save-buffers-after-use t "*Non-nil means save rolodex file after an entry is killed.") +;; Insert or update the entry date each time an entry is added or edited. +(add-hook 'wrolo-add-hook 'rolo-set-date) +(add-hook 'wrolo-edit-hook 'rolo-set-date) + (defvar wrolo-yank-reformat-function nil "*Value is a function of two arguments, START and END, invoked after a rolo-yank. It should reformat the region given by the arguments to some preferred style. @@ -290,19 +293,19 @@ (format rolo-email-format entry email) entry) current-prefix-arg)))) (if (or (not (stringp name)) (string= name "")) - (error "(rolo-add): Invalid name: '%s'" name)) + (error "(rolo-add): Invalid name: `%s'" name)) (if (and (interactive-p) file) (setq file (completing-read "File to add to: " (mapcar 'list rolo-file-list)))) (if (null file) (setq file (car rolo-file-list))) (cond ((and file (or (not (stringp file)) (string= file ""))) - (error "(rolo-add): Invalid file: '%s'" file)) + (error "(rolo-add): Invalid file: `%s'" file)) ((and (file-exists-p file) (not (file-readable-p file))) - (error "(rolo-add): File not readable: '%s'" file)) + (error "(rolo-add): File not readable: `%s'" file)) ((not (file-writable-p file)) - (error "(rolo-add): File not writable: '%s'" file))) + (error "(rolo-add): File not writable: `%s'" file))) (set-buffer (or (get-file-buffer file) (find-file-noselect file))) - (if (interactive-p) (message "Locating insertion point for '%s'..." name)) + (if (interactive-p) (message "Locating insertion point for `%s'..." name)) (let ((parent "") (level "") end) (widen) (goto-char 1) (while (setq end (string-match "/" name)) @@ -313,7 +316,7 @@ (regexp-quote parent)) nil t) (setq level (buffer-substring (match-beginning 1) (match-end 1))) - (error "(rolo-add): '%s' category not found in \"%s\"." + (error "(rolo-add): `%s' category not found in \"%s\"." parent file))) (narrow-to-region (point) (progn (rolo-to-entry-end t level) (point))) @@ -356,13 +359,14 @@ (widen) (rolo-to-buffer (current-buffer)) (goto-char opoint)) + (run-hooks 'wrolo-add-hook) (if (interactive-p) (message "Edit entry at point."))))) ;;;###autoload (defun rolo-display-matches (&optional display-buf return-to-buffer) "Display optional DISPLAY-BUF buffer of previously found rolodex matches. -If DISPLAY-BUF is nil, use the value in 'rolo-display-buffer'. +If DISPLAY-BUF is nil, use the value in `rolo-display-buffer'. Second arg RETURN-TO-BUFFER is the buffer to leave point within after the display." (interactive) (or display-buf (setq display-buf (get-buffer rolo-display-buffer))) @@ -391,15 +395,15 @@ ;;;###autoload (defun rolo-edit (&optional name file) - "Edits a rolodex entry given by optional NAME within 'rolo-file-list'. + "Edits a rolodex entry given by optional NAME within `rolo-file-list'. With prefix argument, prompts for optional FILE to locate entry within. -With no NAME arg, simply displays FILE or first entry in 'rolo-file-list' in an +With no NAME arg, simply displays FILE or first entry in `rolo-file-list' in an editable mode. NAME may be of the form: parent/child to edit child below a parent entry which begins with the parent string." (interactive "sName to edit in rolo: \nP") (if (string-equal name "") (setq name nil)) (and name (not (stringp name)) - (error "(rolo-edit): Invalid name: '%s'" name)) + (error "(rolo-edit): Invalid name: `%s'" name)) (if (and (interactive-p) current-prefix-arg) (if (= (length rolo-file-list) 1) (setq file (car rolo-file-list)) @@ -409,7 +413,7 @@ (or file (setq file (car file-list))) (if (null name) (progn (if (not (file-writable-p file)) - (error "(rolo-edit): File not writable: '%s'" file)) + (error "(rolo-edit): File not writable: `%s'" file)) (find-file-other-window file) (setq buffer-read-only nil)) (if (setq found-point (rolo-to name file-list)) (progn @@ -417,10 +421,10 @@ (if (file-writable-p file) (setq buffer-read-only nil) (message - "(rolo-edit): Entry found but file not writable: '%s'" file) + "(rolo-edit): Entry found but file not writable: `%s'" file) (beep)) (rolo-to-buffer (current-buffer))) - (message "(rolo-edit): '%s' not found." name) + (message "(rolo-edit): `%s' not found." name) (beep) (rolo-to-buffer (or (get-file-buffer (car file-list)) (find-file-noselect (car file-list)))) @@ -428,7 +432,8 @@ (widen) ;; Rolo-to-buffer may have moved point from its desired location, so ;; restore it. - (if found-point (goto-char found-point))))) + (if found-point (goto-char found-point)) + (run-hooks 'wrolo-edit-hook)))) (defun rolo-edit-entry () "Edit the source entry of the rolodex match buffer entry at point. @@ -526,14 +531,14 @@ ;;;###autoload (defun rolo-kill (name &optional file) - "Kills a rolodex entry given by NAME within 'rolo-file-list'. + "Kills a rolodex entry given by NAME within `rolo-file-list'. With prefix argument, prompts for optional FILE to locate entry within. NAME may be of the form: parent/child to kill child below a parent entry which begins with the parent string. Returns t if entry is killed, nil otherwise." (interactive "sName to kill in rolo: \nP") (if (or (not (stringp name)) (string= name "")) - (error "(rolo-kill): Invalid name: '%s'" name)) + (error "(rolo-kill): Invalid name: `%s'" name)) (if (and (interactive-p) current-prefix-arg) (setq file (completing-read "Entry's File: " (mapcar 'list rolo-file-list)))) @@ -572,9 +577,9 @@ (message "Aborted"))) (funcall kill-op start level))) (message - "(rolo-kill): Entry found but file not writable: '%s'" file) + "(rolo-kill): Entry found but file not writable: `%s'" file) (beep))) - (message "(rolo-kill): '%s' not found." name) + (message "(rolo-kill): `%s' not found." name) (beep)) killed)) @@ -630,7 +635,7 @@ ;;;###autoload (defun rolo-sort (&optional rolo-file) "Sorts up to 14 levels of entries in ROLO-FILE (default is personal rolo). -Assumes entries are delimited by one or more '*'characters. +Assumes entries are delimited by one or more `*'characters. Returns list of number of groupings at each entry level." (interactive (list (let ((default "") @@ -682,6 +687,22 @@ level-regexp max-groupings))) +;;;###autoload +(defun rolo-toggle-datestamps (&optional arg) + "Toggle whether datestamps are updated when rolodex entries are modified. +With optional ARG, turn them on iff ARG is positive." + (interactive "P") + (if (or (and arg (<= (prefix-numeric-value arg) 0)) + (and (not (and arg (> (prefix-numeric-value arg) 0))) + (boundp 'wrolo-add-hook) (listp wrolo-add-hook) + (memq 'rolo-set-date wrolo-add-hook))) + (progn (remove-hook 'wrolo-add-hook 'rolo-set-date) + (remove-hook 'wrolo-edit-hook 'rolo-set-date) + (message "Rolodex date stamps are now turned off.")) + (add-hook 'wrolo-add-hook 'rolo-set-date) + (add-hook 'wrolo-edit-hook 'rolo-set-date) + (message "Rolodex date stamps are now turned on."))) + (defun rolo-toggle-narrow-to-entry () "Toggle between display of current entry and display of all matched entries. Useful when bound to a mouse key." @@ -783,7 +804,7 @@ (widen) (goto-char 1) ;; Ensure no entries in outline mode are hidden. - ;; Uses 'show-all' function from outline.el. + ;; Uses `show-all' function from outline.el. (and (search-forward "\C-m" nil t) (show-all)) (if (re-search-forward rolo-hdr-regexp nil t 2) @@ -846,7 +867,7 @@ (outline-regexp rolo-entry-regexp) (buffer-read-only) (level-len)) - ;; Load 'outline' library since its functions are used here. + ;; Load `outline' library since its functions are used here. (if (not (boundp 'outline-mode-map)) (load-library "outline")) (goto-char (point-min)) @@ -890,7 +911,7 @@ rolo-entry-regexp nil t) (progn (beginning-of-line) (point)) (point-max)))) - ;; Remember last expression in 'progn' + ;; Remember last expression in `progn' ;; must always return non-nil. (goto-char start))) (not grouping-end))) @@ -925,6 +946,14 @@ rolo-buf)) (buffer-list)))) +(defun rolo-current-date () + "Return the current date (a string) in a form used for rolodex entry insertion." + (let ((year-month-day (htz:date-parse (current-time-string)))) + (format "\t%02s/%02s/%s" + (aref year-month-day 1) + (aref year-month-day 2) + (aref year-month-day 0)))) + (defun rolo-display-to-entry-end () "Go to end of current entry, ignoring sub-entries." (if (re-search-forward (concat rolo-hdr-regexp "\\|" @@ -952,7 +981,7 @@ hproperty:highlight-face))))))) (defun rolo-kill-buffer (&optional rolo-buf) - "Kills optional ROLO-BUF if unchanged and 'rolo-kill-buffers-after-use' is t. + "Kills optional ROLO-BUF if unchanged and `rolo-kill-buffers-after-use' is t. Default is current buffer." (or rolo-buf (setq rolo-buf (current-buffer))) (and rolo-kill-buffers-after-use (not (buffer-modified-p rolo-buf)) @@ -960,7 +989,7 @@ (defun rolo-name-and-email () "If point is in a mail message, returns list of (name email-addr) of sender. -Name is returned as 'last, first-and-middle'." +Name is returned as `last, first-and-middle'." (let ((email) (name) (from)) (save-window-excursion (if (or (hmail:lister-p) (hnews:lister-p)) @@ -996,7 +1025,7 @@ (list name email)))) (defun rolo-name-at () - "If point is within an entry in 'rolo-display-buffer', returns entry, else nil." + "If point is within an entry in `rolo-display-buffer', returns entry, else nil." (if (string-equal (buffer-name) rolo-display-buffer) (save-excursion (if (or (looking-at rolo-entry-regexp) @@ -1013,12 +1042,28 @@ (or (/= (point-min) 1) (/= (1+ (buffer-size)) (point-max)))) (defun rolo-save-buffer (&optional rolo-buf) - "Saves optional ROLO-BUF if changed and 'rolo-save-buffers-after-use' is t. + "Saves optional ROLO-BUF if changed and `rolo-save-buffers-after-use' is t. Default is current buffer. Used, for example, after a rolo entry is killed." (or rolo-buf (setq rolo-buf (current-buffer))) (and rolo-save-buffers-after-use (buffer-modified-p rolo-buf) (set-buffer rolo-buf) (save-buffer))) +(defun rolo-set-date () + "Add a line with the current date at the end of the current rolodex entry. +Suitable for use as an entry in `wrolo-add-hook' and `wrolo-edit-hook'. +The default date format is MM/DD/YYYY. Rewrite `rolo-current-date' to +return a different format, if you prefer." + (save-excursion + (skip-chars-forward "*") + (rolo-to-entry-end) + (skip-chars-backward " \t\n\r\f") + (skip-chars-backward "^\n\r\f") + (if (looking-at "\\s-+[-0-9./]+\\s-*$") ;; a date + (progn (delete-region (point) (match-end 0)) + (insert (rolo-current-date))) + (end-of-line) + (insert "\n" (rolo-current-date))))) + (defun rolo-shrink-window () (let* ((lines (count-lines (point-min) (point-max))) (height (window-height)) @@ -1034,7 +1079,7 @@ (defun rolo-to (name &optional file-list) "Moves point to entry for NAME within optional FILE-LIST. -'rolo-file-list' is used as default when FILE-LIST is nil. +`rolo-file-list' is used as default when FILE-LIST is nil. Leaves point immediately after match for NAME within entry. Switches internal current buffer but does not alter the frame. Returns point where matching entry begins or nil if not found." @@ -1044,9 +1089,9 @@ (setq file (car file-list) file-list (cdr file-list)) (cond ((and file (or (not (stringp file)) (string= file ""))) - (error "(rolo-to): Invalid file: '%s'" file)) + (error "(rolo-to): Invalid file: `%s'" file)) ((and (file-exists-p file) (not (file-readable-p file))) - (error "(rolo-to): File not readable: '%s'" file))) + (error "(rolo-to): File not readable: `%s'" file))) (set-buffer (or (get-file-buffer file) (find-file-noselect file))) (let ((case-fold-search t) (real-name name) (parent "") (level) end) (widen) (goto-char 1) @@ -1068,7 +1113,7 @@ (t;; Found parent but not child (setq buffer-read-only nil) (rolo-to-buffer (current-buffer)) - (error "(rolo-to): '%s' part of name not found in \"%s\"." + (error "(rolo-to): `%s' part of name not found in \"%s\"." parent file))) (if level (narrow-to-region (point) diff -r 279432d5c479 -r c53a95d3c46d lisp/modes/cc-mode.el --- a/lisp/modes/cc-mode.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/modes/cc-mode.el Mon Aug 13 08:53:38 2007 +0200 @@ -6,8 +6,8 @@ ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Created: a long, long, time ago. adapted from the original c-mode.el -;; Version: 4.379 -;; Last Modified: 1997/03/10 00:59:10 +;; Version: 4.381 +;; Last Modified: 1997/03/18 16:43:13 ;; Keywords: c languages oop ;; NOTE: Read the commentary below for the right way to submit bug reports! @@ -1213,7 +1213,7 @@ (defconst c-inher-key (concat "\\(\\\\s +\\)?" c-C++-class-key "[ \t]+" c-symbol-key - "\\([ \t]*:[ \t]*\\)?\\s *[^;]") + "\\([ \t]*:[ \t]*\\)\\s *[^;]") "Regexp describing a class inheritance declaration.") (defconst c-switch-label-key "\\(\\(case[( \t]+\\S .*\\)\\|default[ \t]*\\):" @@ -2563,6 +2563,12 @@ (progn (beginning-of-line) (skip-chars-forward " \t*" (c-point 'eol)) + ;; kludge alert, watch out for */, in + ;; which case fill-prefix should *not* + ;; be "*"! + (if (and (= (following-char) ?/) + (= (preceding-char) ?*)) + (forward-char -1)) (point))) ;; If the comment is only one line followed @@ -5199,7 +5205,7 @@ ;; defuns for submitting bug reports -(defconst c-version "4.379" +(defconst c-version "4.381" "CC Mode version number.") (defconst c-mode-help-address "bug-gnu-emacs@prep.ai.mit.edu, cc-mode-help@python.org" diff -r 279432d5c479 -r c53a95d3c46d lisp/packages/balloon-help.el --- a/lisp/packages/balloon-help.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/packages/balloon-help.el Mon Aug 13 08:53:38 2007 +0200 @@ -57,7 +57,7 @@ (provide 'balloon-help) -(defvar balloon-help-version "1.04" +(defvar balloon-help-version "1.05" "Version string for Balloon Help.") (defvar balloon-help-mode t @@ -138,8 +138,6 @@ as the X server gets around to displaying it. Nil means it will be invisible as soon as the X server decides to hide it.") -(defvar balloon-help-bar-cursor nil) - (defun balloon-help-mode (&optional arg) "Toggle Balloon Help mode. With arg, turn Balloon Help mode on iff arg is positive. @@ -183,6 +181,16 @@ (let* ((buffer (event-buffer event)) (frame (event-frame event)) (point (and buffer (event-point event))) + (modeline-point (and buffer (event-modeline-position event))) + (modeline-extent (and modeline-point + (map-extents + (function (lambda (e ignored) e)) + (symbol-value-in-buffer + 'generated-modeline-string + buffer) + modeline-point modeline-point + nil nil + 'balloon-help))) (glyph-extent (event-glyph-extent event)) (glyph-extent (if (and glyph-extent (extent-property glyph-extent @@ -194,7 +202,7 @@ (button (if (and button (toolbar-button-help-string button)) button nil)) - (object (or glyph-extent extent button)) + (object (or modeline-extent glyph-extent extent button)) (id balloon-help-timeout-id)) (if (null object) (if (and balloon-help-frame @@ -278,7 +286,6 @@ (get-buffer-create " *balloon-help*"))) (if (not (frame-live-p balloon-help-frame)) (setq balloon-help-frame (balloon-help-make-help-frame))) - (setq bar-cursor t) (set-buffer balloon-help-buffer) (erase-buffer) (insert help) @@ -309,7 +316,6 @@ (balloon-help-expose-help-frame)))))) (defun balloon-help-undisplay-help () - (setq bar-cursor balloon-help-bar-cursor) (balloon-help-hide-help-frame)) (defun balloon-help-hide-help-frame () @@ -347,11 +353,14 @@ (defun balloon-help-make-junk-frame () (let ((window-min-height 1) (window-min-width 1)) - (make-frame '(minibuffer t initially-unmapped t width 1 height 1)))) + (save-excursion + (set-buffer (generate-new-buffer "*junk-frame-buffer*")) + (prog1 + (make-frame '(minibuffer t initially-unmapped t width 1 height 1)) + (rename-buffer " *junk-frame-buffer*" t))))) (defun balloon-help-make-help-frame () (save-excursion - (setq balloon-help-bar-cursor bar-cursor) (set-buffer balloon-help-buffer) (set-buffer-menubar nil) (let* ((x (balloon-help-compute-help-frame-x-location)) diff -r 279432d5c479 -r c53a95d3c46d lisp/packages/gnuserv.el --- a/lisp/packages/gnuserv.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/packages/gnuserv.el Mon Aug 13 08:53:38 2007 +0200 @@ -5,7 +5,7 @@ ; Copying is permitted under those conditions described by the GNU ; General Public License. ; -; Copyright (C) 1989-1994 Free Software Foundation, Inc. +; Copyright (C) 1989-1996 Free Software Foundation, Inc. ; ; Author: Andy Norman (ange@hplb.hpl.hp.com) based on ; 'lisp/server.el' from the 18.52 GNU Emacs distribution. @@ -53,6 +53,12 @@ ; ; Ben Wing May/1996 ; patch to get TTY terminal type correct. +; +; Jan Vroonhof July/1996 +; ported the server-temp-file-regexp feature from server.el +; ported server hooks from server.el +; ported kill-*-query functions from server.el (and made it optional) +; synced other behaviour with server.el @@ -74,11 +80,29 @@ (defvar server-done-function 'kill-buffer "*A function of one argument, a buffer, which removes the buffer after editing. -Functions such as 'kill-buffer' and 'bury-buffer' are good values.") +Functions such as 'kill-buffer' and 'bury-buffer' are good values. See also +`server-done-temp-file-function'") + +(defvar server-done-temp-file-function 'kill-buffer + "*A function of one argument, a buffer, which removes the buffer after editing a +temporary file. Functions such as 'kill-buffer' and 'bury-buffer' are +good values. See also `server-done-function'") (defvar server-program "gnuserv" "*The program to use as the edit server") + + (defvar server-visit-hook nil + "*List of hooks to call when visiting a file for the Emacs server.") + +;; defined by server.el but obsolete? +;; (defvar server-switch-hook nil +;; "*List of hooks to call when switching to a buffer for the Emacs server.") + +(defvar server-done-hook nil + "*List of hooks to call when done editing a buffer for the Emacs server.") + + (defvar server-process nil "The current server process") @@ -97,15 +121,39 @@ that can be given to the server process to identify a client. When a buffer is killed, it is removed from this list.") +(defvar server-kill-quietly nil + "If this variable is set then don't confirm kills of buffers with + clients attached") + + (defvar server-buffer-clients nil "List of client ids for clients requesting editing of the current buffer.") +(defvar server-temp-file-regexp "^/tmp/Re\\|/draft$" + "*Regexp which should match filenames of temporary files +which are deleted and reused after each edit +by the programs that invoke the emacs server.") + +(defvar server-make-temp-file-backup nil + "Non-nil makes the server backup temporary files also") + (make-variable-buffer-local 'server-buffer-clients) (setq-default server-buffer-clients nil) (or (assq 'server-buffer-clients minor-mode-alist) (setq minor-mode-alist (cons '(server-buffer-clients " Server") minor-mode-alist))) +(defun server-temp-file-p (buffer) + "Return non-nil if BUFFER contains a file considered temporary. +These are files whose names suggest they are repeatedly +reused to pass information to another program. + +The variable `server-temp-file-regexp' controls which filenames +are considered temporary." + (and (buffer-file-name buffer) + (string-match server-temp-file-regexp (buffer-file-name buffer)))) + + (defun server-log (string) "If a *server* buffer exists, write STRING to it for logging purposes." (if (get-buffer "*server*") @@ -200,7 +248,7 @@ ;; make gnuserv-start an alias to server-start, for backward compatibility (fset 'server-start (function gnuserv-start)) - +; Can gnuserv handle commands in close succesion? (See server.el line 283) JV (defun server-write-to-client (client form) "Write the given form to the given client via the server process." (if (and client @@ -249,7 +297,8 @@ (select-frame (make-frame nil device)) (if (not file) (switch-to-buffer (get-buffer-create "*scratch*")) - (find-file file)))) + (find-file file))) + (run-hooks 'server-visit-hook)) (defun server-find-file (file) "Edit file FILENAME. @@ -304,7 +353,8 @@ (find-file file)) (select-screen (create-screen (find-file-noselect file))))) - (t (find-file file))))) ;; emacs18+ + (t (find-file file)))) ;; emacs18+ + (run-hooks 'server-visit-hook)) (defun server-edit-files-quickly (list) @@ -414,6 +464,34 @@ (setq old-clients (cdr old-clients)))))))) +;; Ask before killing a server buffer. +;; It was suggested to release its client instead, +;; but I think that is dangerous--the client would proceed +;; using whatever is on disk in that file. -- rms. +(defun server-kill-buffer-query-function () + (or server-kill-quietly + (not server-buffer-clients) + (yes-or-no-p (format "Buffer `%s' still has clients; kill it? " + (buffer-name (current-buffer)))))) + +(add-hook 'kill-buffer-query-functions + 'server-kill-buffer-query-function) + +(defun server-kill-emacs-query-function () + (let (live-client + (tail server-clients)) + ;; See if any clients have any buffers that are still alive. + (while tail + (if (memq t (mapcar 'stringp (mapcar 'buffer-name (cdr (car tail))))) + (setq live-client t)) + (setq tail (cdr tail))) + (or server-kill-quietly + (not live-client) + (yes-or-no-p "Server buffers still have clients; exit anyway? ")))) + +(add-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function) + + (defun server-kill-all-local-variables () "Eliminate all the buffer-local variable values of the current buffer. This buffer will then see the default values of all variables. @@ -441,6 +519,7 @@ "Mark BUFFER as \"done\" for its client(s). Buries the buffer, and returns another server buffer as a suggestion for the new current buffer." + ; Note we do NOT return a list with a killed flag, doesn't seem usefull to me. JV (let ((next-buffer nil) (old-clients server-clients)) (while old-clients @@ -448,6 +527,13 @@ (or next-buffer (setq next-buffer (nth 1 (memq buffer client)))) (delq buffer client) + ;; Delete all dead buffers from CLIENT. (Why? JV , copyed from server.el) + (let ((tail client)) + (while tail + (and (bufferp (car tail)) + (null (buffer-name (car tail))) + (delq (car tail) client)) + (setq tail (cdr tail)))) ;; If client now has no pending buffers, ;; tell it that it is done, and forget it entirely. (if (cdr client) @@ -455,13 +541,16 @@ (if (buffer-name buffer) (save-excursion (set-buffer buffer) - (setq server-buffer-clients nil))) + (setq server-buffer-clients nil) + (run-hooks 'server-done-hook))) ; Order is important here -- ; server-kill-buffer tries to notify clients that ; they are done, too, but if we try and notify twice, ; we are h0zed -- Hunter Kelly 3/3/97 (setq server-clients (delq client server-clients)) - (funcall server-done-function buffer) + (if (server-temp-file-p buffer) + (funcall server-done-temp-file-function buffer) + (funcall server-done-function buffer)) (server-write-to-client (car client) nil))) (setq old-clients (cdr old-clients))) next-buffer)) @@ -480,22 +569,32 @@ (let ((buffer (current-buffer))) (if server-buffer-clients (progn - (if (mh-draft-p buffer) + (if (mh-draft-p buffer);; Does this comflict with temp-file ? JV (progn (save-buffer) (write-region (point-min) (point-max) (concat buffer-file-name "~")) (kill-buffer buffer)) - (if (and (buffer-modified-p) - (y-or-n-p (concat "Save file " buffer-file-name "? "))) - (save-buffer buffer))) + (if (server-temp-file-p buffer) + ;; For a temp file, save, and do NOT make a non-numeric backup + ;; Why does server.el explicitly back up temporary files? + (let ((version-control nil) + (buffer-backed-up (not server-make-temp-file-backup))) + (save-buffer)) + (if (and (buffer-modified-p) + (y-or-n-p (concat "Save file " buffer-file-name "? "))) + (save-buffer buffer)))) (server-buffer-done buffer))))) (defun server-edit (&optional arg) - "Switch to next server editing buffer and mark current one as \"done\". -If a server buffer is current, it is marked \"done\" and optionally saved. -MH files are always saved and backed up, no questions asked. -When all of a client's buffers are marked as \"done\", the client is notified. + "Switch to next server editing +buffer and mark current one as \"done\". If a server buffer is +current, it is marked \"done\" and optionally saved. MH files +are always saved and backed up, no questions asked. Files that match +server-temp-file-regexp are considered temporary and are saved +unconditionally and +backed up if server-make-temp-file-backup is non-nil. When all of a +client's buffers are marked as \"done\", the client is notified. If invoked with a prefix argument, or if there is no server process running, starts server process and that is all. Invoked by \\[server-edit]. @@ -507,7 +606,7 @@ (memq (process-status server-process) '(signal exit))) (server-start nil) (if server-buffer-clients - (progn (server-switch-buffer (server-done)) + (progn (server-done-and-switch) (cond ((fboundp 'console-type) ;; XEmacs 19.14+ (or (and (equal (console-type) 'x) gnuserv-frame @@ -534,10 +633,11 @@ "(server-edit): Use only on buffers created by external programs.") ))) -(defun server-switch-buffer (next-buffer) +(defun server-switch-buffer-internal (next-buffer always) "Switch to NEXT-BUFFER if a live buffer, otherwise switch to another buffer -with gnuserv clients. If no such buffer is available, simply choose another -one." +with gnuserv clients. If no such buffer is available, we switch to +another normal buffer if `always' is non-nil!" + ;; switching (if next-buffer (if (and (bufferp next-buffer) (buffer-name next-buffer)) @@ -545,11 +645,28 @@ ;; If NEXT-BUFFER is a dead buffer, ;; remove the server records for it ;; and try the next surviving server buffer. - (server-switch-buffer - (server-buffer-done next-buffer))) - (if server-clients - (server-switch-buffer (nth 1 (car server-clients))) - (switch-to-buffer (other-buffer))))) + (server-switch-buffer-internal + (server-buffer-done next-buffer) always)) + (if server-clients + (server-switch-buffer-internal (nth 1 (car server-clients)) always) + (if always + (switch-to-buffer (other-buffer)))))) + +;; For compatability +(defun server-switch-buffer (next-buffer) + (server-switch-buffer-internal next-buffer t)) + +;; The below function calles server-done and switches to the next +;; sensible buffer. This implementation works regardless of the values +;; of server-*-function and doens't need the tail recursion +;; variable passing of server.el. It is more transparant too. JV +(defun server-done-and-switch () + "Be done with the current buffer and switch to another server buffer + if there is one, otherwise just switch buffer" + (let ((old-current (current-buffer))) + (server-switch-buffer-internal (server-done) nil) + (if (eq old-current (current-buffer)) + (switch-to-buffer (other-buffer))))) (global-set-key "\C-x#" 'server-edit) diff -r 279432d5c479 -r c53a95d3c46d lisp/prim/auto-autoloads.el --- a/lisp/prim/auto-autoloads.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/prim/auto-autoloads.el Mon Aug 13 08:53:38 2007 +0200 @@ -2600,7 +2600,7 @@ ;;;*** -;;;### (autoloads (rolo-yank rolo-sort rolo-kill rolo-grep rolo-fgrep rolo-edit rolo-display-matches rolo-add) "wrolo" "hyperbole/wrolo.el") +;;;### (autoloads (rolo-yank rolo-toggle-datestamps rolo-sort rolo-kill rolo-grep rolo-fgrep rolo-edit rolo-display-matches rolo-add) "wrolo" "hyperbole/wrolo.el") (autoload 'rolo-add "wrolo" "\ Adds a new entry in personal rolodex for NAME. @@ -2611,13 +2611,13 @@ (autoload 'rolo-display-matches "wrolo" "\ Display optional DISPLAY-BUF buffer of previously found rolodex matches. -If DISPLAY-BUF is nil, use the value in 'rolo-display-buffer'. +If DISPLAY-BUF is nil, use the value in `rolo-display-buffer'. Second arg RETURN-TO-BUFFER is the buffer to leave point within after the display." t nil) (autoload 'rolo-edit "wrolo" "\ -Edits a rolodex entry given by optional NAME within 'rolo-file-list'. +Edits a rolodex entry given by optional NAME within `rolo-file-list'. With prefix argument, prompts for optional FILE to locate entry within. -With no NAME arg, simply displays FILE or first entry in 'rolo-file-list' in an +With no NAME arg, simply displays FILE or first entry in `rolo-file-list' in an editable mode. NAME may be of the form: parent/child to edit child below a parent entry which begins with the parent string." t nil) @@ -2652,7 +2652,7 @@ rolo-file-list." t nil) (autoload 'rolo-kill "wrolo" "\ -Kills a rolodex entry given by NAME within 'rolo-file-list'. +Kills a rolodex entry given by NAME within `rolo-file-list'. With prefix argument, prompts for optional FILE to locate entry within. NAME may be of the form: parent/child to kill child below a parent entry which begins with the parent string. @@ -2660,9 +2660,13 @@ (autoload 'rolo-sort "wrolo" "\ Sorts up to 14 levels of entries in ROLO-FILE (default is personal rolo). -Assumes entries are delimited by one or more '*'characters. +Assumes entries are delimited by one or more `*'characters. Returns list of number of groupings at each entry level." t nil) +(autoload 'rolo-toggle-datestamps "wrolo" "\ +Toggle whether datestamps are updated when rolodex entries are modified. +With optional ARG, turn them on iff ARG is positive." t nil) + (autoload 'rolo-yank "wrolo" "\ Inserts at point the first rolodex entry matching NAME. With optional prefix arg, REGEXP-P, treats NAME as a regular expression instead @@ -3674,7 +3678,7 @@ ;;;### (autoloads (ksh-mode) "ksh-mode" "modes/ksh-mode.el") (autoload 'ksh-mode "ksh-mode" "\ -ksh-mode $Revision: 1.14 $ - Major mode for editing (Bourne, Korn or Bourne again) +ksh-mode $Revision: 1.15 $ - Major mode for editing (Bourne, Korn or Bourne again) shell scripts. Special key bindings and commands: \\{ksh-mode-map} @@ -4946,7 +4950,7 @@ (autoload 'vhdl-mode "vhdl-mode" "\ Major mode for editing VHDL code. -vhdl-mode $Revision: 1.14 $ +vhdl-mode $Revision: 1.15 $ 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 diff -r 279432d5c479 -r c53a95d3c46d lisp/prim/custom-load.el --- a/lisp/prim/custom-load.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/prim/custom-load.el Mon Aug 13 08:53:38 2007 +0200 @@ -6,6 +6,7 @@ (put 'gnus-message 'custom-loads '("message")) (put 'gnus-summary-sort 'custom-loads '("gnus-sum")) (put 'nnmail-procmail 'custom-loads '("nnmail")) +(put 'ssl 'custom-loads '("ssl")) (put 'widgets 'custom-loads '("wid-browse" "wid-edit")) (put 'environment 'custom-loads '("cus-edit")) (put 'gnus-article-buttons 'custom-loads '("gnus-art")) @@ -20,7 +21,6 @@ (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-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")) @@ -28,7 +28,7 @@ (put 'message-headers 'custom-loads '("message")) (put 'gnus-group-select 'custom-loads '("gnus-sum")) (put 'display-time 'custom-loads '("time")) -(put 'hypermedia 'custom-loads '("wid-edit")) +(put 'hypermedia 'custom-loads '("wid-edit" "w3-cus")) (put 'w3-advanced 'custom-loads '("w3-cus")) (put 'w3-menus 'custom-loads '("w3-cus")) (put 'gnus-summary-mail 'custom-loads '("gnus-sum")) @@ -51,7 +51,7 @@ (put 'gnus-treading 'custom-loads '("gnus-sum")) (put 'nnmail 'custom-loads '("nnmail")) (put 'gnus-article-hiding 'custom-loads '("gnus-art" "gnus-sum")) -(put 'customize 'custom-loads '("wid-edit" "custom" "cus-face" "cus-edit")) +(put 'customize 'custom-loads '("wid-edit" "custom" "cus-edit" "cus-face")) (put 'w3-printing 'custom-loads '("w3-cus")) (put 'nnmail-duplicate 'custom-loads '("nnmail")) (put 'gnus-summary-visual 'custom-loads '("gnus-sum" "gnus")) @@ -89,12 +89,13 @@ (put 'faces 'custom-loads '("cus-edit" "wid-edit" "gnus" "message")) (put 'gnus-various 'custom-loads '("gnus-sum")) (put 'gnus-article-highlight 'custom-loads '("gnus-art")) -(put 'emacs 'custom-loads '("cus-edit" "dired-faces")) +(put 'emacs 'custom-loads '("cus-edit" "dired-faces" "ssl")) (put 'news 'custom-loads '("gnus" "message")) (put 'w3-hooks 'custom-loads '("w3-cus")) (put 'message-insertion 'custom-loads '("message")) (put 'wp 'custom-loads '("cus-edit")) (put 'message-faces 'custom-loads '("message")) +(put 'w3 'custom-loads '("w3-cus")) (put 'gnus-score-files 'custom-loads '("gnus-score")) (put 'gnus-summary-marks 'custom-loads '("gnus-sum")) (put 'picons 'custom-loads '("gnus-picon")) diff -r 279432d5c479 -r c53a95d3c46d lisp/prim/glyphs.el --- a/lisp/prim/glyphs.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/prim/glyphs.el Mon Aug 13 08:53:38 2007 +0200 @@ -465,7 +465,8 @@ (and (image-instance-p object) (eq 'pointer (image-instance-type object)))) (defun subwindow-image-instance-p (object) - "t if OBJECT is an image instance of type `subwindow'." + "t if OBJECT is an image instance of type `subwindow'. +Subwindows are not implemented in this version of XEmacs." (and (image-instance-p object) (eq 'subwindow (image-instance-type object)))) ;;;;;;;;;; the built-in glyphs diff -r 279432d5c479 -r c53a95d3c46d lisp/prim/help.el --- a/lisp/prim/help.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/prim/help.el Mon Aug 13 08:53:38 2007 +0200 @@ -349,7 +349,8 @@ the window.") (defvar help-window-config nil) - +(defvar help-window-max-height .5 + "*Proportion of frame to use for help windows.") ;; Use this function for displaying help when C-h something is pressed ;; or in similar situations. Do *not* use it when you are displaying ;; a help message and then prompting for input in the minibuffer -- @@ -384,6 +385,11 @@ (message (substitute-command-keys "Type \\[switch-to-buffer-other-window] to restore the other window, \\[scroll-other-window] to scroll the help.")))) (when temp-buffer-shrink-to-fit + (let* ((help-window-size (round (* help-window-max-height + (frame-height (window-frame helpwin))))) + (size (window-displayed-height helpwin))) + (if (< size help-window-size) + (enlarge-window (- help-window-size size) nil helpwin))) (shrink-window-if-larger-than-buffer helpwin)))))))) (defun describe-key (key) diff -r 279432d5c479 -r c53a95d3c46d lisp/prim/itimer.el --- a/lisp/prim/itimer.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/prim/itimer.el Mon Aug 13 08:53:38 2007 +0200 @@ -22,6 +22,7 @@ ;; `itimer' feature means Emacs-Lisp programmers get: ;; itimerp +;; itimer-live-p ;; itimer-value ;; itimer-restart ;; itimer-function @@ -45,7 +46,7 @@ ;; ;; See the doc strings of these functions for more information. -(defvar itimer-version "1.04" +(defvar itimer-version "1.05" "Version number of the itimer package.") (defvar itimer-list nil @@ -159,6 +160,13 @@ "Returns non-nil iff OBJ is an itimer." (and (consp obj) (eq (length obj) 8))) +(defun itimer-live-p (obj) + "Returns non-nil iff OBJ is an itimer and is active. +``Active'' means Emacs will run it when it expires. +`activate-timer' must be called on a itimer to make it active. +Itimers started with `start-itimer' are automatically active." + (and (itimerp obj) (memq obj itimer-list))) + (defun itimer-name (itimer) "Returns the name of ITIMER." (check-itimer itimer) @@ -268,7 +276,7 @@ (check-itimer itimer) (setcar (nthcdr 5 itimer) flag)) -(defun set-itimer-function-arguments (itimer &rest arguments) +(defun set-itimer-function-arguments (itimer &optional arguments) "Set the function arguments of ITIMER to be ARGUMENTS. The function of ITIMER will be called with ARGUMENTS when itimer expires. Returns ARGUMENTS." @@ -700,6 +708,9 @@ (let* ((current-itimer itimer) (quit-flag nil) (inhibit-quit nil) + ;; for FSF Emacs timer.el emulation under XEmacs. + ;; eldoc expect this to be done, apparently. + (this-command nil) itimer itimers time-elapsed) (if (itimer-uses-arguments current-itimer) (apply (itimer-function current-itimer) @@ -787,10 +798,10 @@ (defun itimer-timer-wakeup () (let ((inhibit-quit t)) - (cond ((fboundp 'cancel-timer) - (cancel-timer itimer-timer)) - ((fboundp 'disable-timeout) - (disable-timeout itimer-timer))) + (cond ((fboundp 'disable-timeout) + (disable-timeout itimer-timer)) + ((fboundp 'cancel-timer) + (cancel-timer itimer-timer))) (setq itimer-timer (add-timeout itimer-short-interval 'itimer-timer-driver nil nil)))) diff -r 279432d5c479 -r c53a95d3c46d lisp/utils/floating-toolbar.el --- a/lisp/utils/floating-toolbar.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/utils/floating-toolbar.el Mon Aug 13 08:53:38 2007 +0200 @@ -86,7 +86,7 @@ (require 'toolbar) (require 'x) -(defvar floating-toolbar-version "1.01" +(defvar floating-toolbar-version "1.02" "Version string for the floating-toolbar package.") (defvar floating-toolbar-use-sound nil @@ -312,7 +312,11 @@ (defun floating-toolbar-make-junk-frame () (let ((window-min-height 1) (window-min-width 1)) - (make-frame '(minibuffer t initially-unmapped t width 1 height 1)))) + (save-excursion + (set-buffer (generate-new-buffer "*junk-frame-buffer*")) + (prog1 + (make-frame '(minibuffer t initially-unmapped t width 1 height 1)) + (rename-buffer " *junk-frame-buffer*" t))))) (defun floating-toolbar-make-toolbar-frame (x y) (save-excursion diff -r 279432d5c479 -r c53a95d3c46d lisp/version.el --- a/lisp/version.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/version.el Mon Aug 13 08:53:38 2007 +0200 @@ -26,7 +26,7 @@ (defconst emacs-version "19.15" "\ Version numbers of this version of Emacs.") -(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta100)"))) +(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta101)"))) (defconst emacs-major-version (progn (or (string-match "^[0-9]+" emacs-version) diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-autoload.el --- a/lisp/vm/vm-autoload.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-autoload.el Mon Aug 13 08:53:38 2007 +0200 @@ -977,6 +977,8 @@ (autoload (quote vm-parent-of) "vm-message" nil nil (quote macro)) +(autoload (quote vm-references-of) "vm-message" nil nil (quote macro)) + (autoload (quote vm-mirror-data-of) "vm-message" nil nil (quote macro)) (autoload (quote vm-edit-buffer-of) "vm-message" nil nil (quote macro)) @@ -1089,6 +1091,8 @@ (autoload (quote vm-set-parent-of) "vm-message" nil nil (quote macro)) +(autoload (quote vm-set-references-of) "vm-message" nil nil (quote macro)) + (autoload (quote vm-set-mirror-data-of) "vm-message" nil nil (quote macro)) (autoload (quote vm-set-edit-buffer-of) "vm-message" nil nil (quote macro)) @@ -2043,7 +2047,7 @@ Prefix arg N means print the current message and the next N - 1 messages. Prefix arg -N means print the current message and the previous N - 1 messages. -The variables `vm-print-command' controls what command is run to +The variable `vm-print-command' controls what command is run to print the message, and `vm-print-command-switches' is a list of switches to pass to the command. @@ -2188,7 +2192,7 @@ (autoload (quote vm-mode) "vm-startup" "Major mode for reading mail. -This is VM 6.19. +This is VM 6.20. Commands: h - summarize folder contents @@ -2390,10 +2394,12 @@ vm-mime-digest-headers vm-mime-display-function vm-mime-external-content-types-alist + vm-mime-ignore-mime-version vm-mime-internal-content-types vm-mime-max-message-size vm-mode-hook vm-mosaic-program + vm-mosaic-program-switches vm-move-after-deleting vm-move-after-killing vm-move-after-undeleting @@ -2401,6 +2407,7 @@ vm-mutable-frames vm-mutable-windows vm-netscape-program + vm-netscape-program-switches vm-pop-bytes-per-session vm-pop-max-message-size vm-pop-md5-program @@ -2630,6 +2637,8 @@ (autoload (quote vm-unthread-message) "vm-thread" nil nil nil) +(autoload (quote vm-th-references) "vm-thread" nil nil nil) + (autoload (quote vm-th-parent) "vm-thread" nil nil nil) (autoload (quote vm-th-thread-indentation) "vm-thread" nil nil nil) diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-folder.el --- a/lisp/vm/vm-folder.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-folder.el Mon Aug 13 08:53:38 2007 +0200 @@ -2738,77 +2738,88 @@ (vm-pop-ok-to-ask interactive) crash in maildrop popdrop (got-mail nil)) - (while triples - (setq in (expand-file-name (nth 0 (car triples)) vm-folder-directory) - maildrop (nth 1 (car triples)) - crash (nth 2 (car triples))) - (if (eq (current-buffer) (vm-get-file-buffer in)) - (let (retrieval-function) - (if (file-exists-p crash) - (progn - (message "Recovering messages from %s..." crash) - (setq got-mail (or (vm-gobble-crash-box crash) got-mail)) - (message "Recovering messages from %s... done" crash))) - (setq popdrop (and vm-recognize-pop-maildrops - (string-match vm-recognize-pop-maildrops - maildrop) - ;; maildrop with password clipped - (vm-safe-popdrop-string maildrop))) - (if (or popdrop - (and (not (equal 0 (nth 7 (file-attributes maildrop)))) - (file-readable-p maildrop))) - (progn - (setq crash (expand-file-name crash vm-folder-directory)) - (if (not popdrop) - (setq maildrop (expand-file-name maildrop) - retrieval-function 'vm-spool-move-mail) - (setq retrieval-function 'vm-pop-move-mail)) - (if (if got-mail - ;; don't allow errors to be signaled unless no - ;; mail has been appended to the incore - ;; copy of the folder. otherwise the - ;; user will wonder where the mail is, - ;; since it is not in the crash box or - ;; the spool file and doesn't _appear_ to - ;; be in the folder either. - (condition-case error-data - (funcall retrieval-function maildrop crash) - (error (message "%s signaled: %s" - (if popdrop - 'vm-pop-move-mail - 'vm-spool-move-mail) - error-data) - (sleep-for 2) - ;; we don't know if mail was - ;; put into the crash box or - ;; not, so return t just to be - ;; safe. - t ) - (quit (message "quitting from %s..." - (if popdrop - 'vm-pop-move-mail - 'vm-spool-move-mail)) - (sleep-for 1) - ;; we don't know if mail was - ;; put into the crash box or - ;; not, so return t just to be - ;; safe. - t )) - (funcall retrieval-function maildrop crash)) - (if (vm-gobble-crash-box crash) - (progn - (setq got-mail t) - (message "Got mail from %s." - (or popdrop maildrop))))))))) - (setq triples (cdr triples))) - ;; not really correct, but it is what the user expects to see. - (if got-mail - (setq vm-spooled-mail-waiting nil)) - (intern (buffer-name) vm-buffers-needing-display-update) - (vm-update-summary-and-mode-line) - (if got-mail - (run-hooks 'vm-retrieved-spooled-mail-hook)) - got-mail )) + (if (and (not (verify-visited-file-modtime (current-buffer))) + (or (null interactive) + (not (yes-or-no-p + (format + "Folder %s changed on disk, discard those changes? " + (buffer-name (current-buffer))))))) + (progn + (message "Folder %s changed on disk, consider M-x revert-buffer" + (buffer-name (current-buffer))) + (sleep-for 1) + nil ) + (while triples + (setq in (expand-file-name (nth 0 (car triples)) vm-folder-directory) + maildrop (nth 1 (car triples)) + crash (nth 2 (car triples))) + (if (eq (current-buffer) (vm-get-file-buffer in)) + (let (retrieval-function) + (if (file-exists-p crash) + (progn + (message "Recovering messages from %s..." crash) + (setq got-mail (or (vm-gobble-crash-box crash) got-mail)) + (message "Recovering messages from %s... done" crash))) + (setq popdrop (and vm-recognize-pop-maildrops + (string-match vm-recognize-pop-maildrops + maildrop) + ;; maildrop with password clipped + (vm-safe-popdrop-string maildrop))) + (if (or popdrop + (and (not (equal 0 (nth 7 (file-attributes maildrop)))) + (file-readable-p maildrop))) + (progn + (setq crash (expand-file-name crash vm-folder-directory)) + (if (not popdrop) + (setq maildrop (expand-file-name maildrop) + retrieval-function 'vm-spool-move-mail) + (setq retrieval-function 'vm-pop-move-mail)) + (if (if got-mail + ;; don't allow errors to be signaled unless no + ;; mail has been appended to the incore + ;; copy of the folder. otherwise the + ;; user will wonder where the mail is, + ;; since it is not in the crash box or + ;; the spool file and doesn't _appear_ to + ;; be in the folder either. + (condition-case error-data + (funcall retrieval-function maildrop crash) + (error (message "%s signaled: %s" + (if popdrop + 'vm-pop-move-mail + 'vm-spool-move-mail) + error-data) + (sleep-for 2) + ;; we don't know if mail was + ;; put into the crash box or + ;; not, so return t just to be + ;; safe. + t ) + (quit (message "quitting from %s..." + (if popdrop + 'vm-pop-move-mail + 'vm-spool-move-mail)) + (sleep-for 1) + ;; we don't know if mail was + ;; put into the crash box or + ;; not, so return t just to be + ;; safe. + t )) + (funcall retrieval-function maildrop crash)) + (if (vm-gobble-crash-box crash) + (progn + (setq got-mail t) + (message "Got mail from %s." + (or popdrop maildrop))))))))) + (setq triples (cdr triples))) + ;; not really correct, but it is what the user expects to see. + (if got-mail + (setq vm-spooled-mail-waiting nil)) + (intern (buffer-name) vm-buffers-needing-display-update) + (vm-update-summary-and-mode-line) + (if got-mail + (run-hooks 'vm-retrieved-spooled-mail-hook)) + got-mail ))) (defun vm-safe-popdrop-string (drop) (or (and (string-match "^\\([^:]+\\):[^:]+:[^:]+:\\([^:]+\\):[^:]+" drop) diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-message.el --- a/lisp/vm/vm-message.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-message.el Mon Aug 13 08:53:38 2007 +0200 @@ -139,10 +139,15 @@ ;; sortable subject, re: garbage removed (defmacro vm-sortable-subject-of (message) (list 'aref (list 'aref message 3) 17)) +;; tokenized summary entry (defmacro vm-summary-of (message) (list 'aref (list 'aref message 3) 18)) +;; parent of this message, as determined by threading (defmacro vm-parent-of (message) (list 'aref (list 'aref message 3) 19)) +;; message IDs parsed from References header +(defmacro vm-references-of (message) + (list 'aref (list 'aref message 3) 20)) ;; extra data shared by virtual messages if vm-virtual-mirror is non-nil (defmacro vm-mirror-data-of (message) (list 'aref message 4)) ;; if message is being edited, this is the buffer being used. @@ -262,6 +267,8 @@ (list 'aset (list 'aref message 3) 18 val)) (defmacro vm-set-parent-of (message val) (list 'aset (list 'aref message 3) 19 val)) +(defmacro vm-set-references-of (message val) + (list 'aset (list 'aref message 3) 20 val)) (defmacro vm-set-mirror-data-of (message data) (list 'aset message 4 data)) (defmacro vm-set-edit-buffer-of (message buf) diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-mime.el --- a/lisp/vm/vm-mime.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-mime.el Mon Aug 13 08:53:38 2007 +0200 @@ -48,7 +48,7 @@ m (condition-case data (vm-mime-parse-entity m) - (vm-mime-error (apply 'message (cdr data))))) + (vm-mime-error (message "%s" (car (cdr data)))))) (vm-mime-layout-of m)))) (defun vm-mm-encoded-header (m) @@ -418,7 +418,6 @@ (defun vm-decode-mime-message-headers (m) (let ((case-fold-search t) (buffer-read-only nil) - (did-decode nil) charset encoding match-start match-end start end) (save-excursion (goto-char (vm-headers-of m)) @@ -433,7 +432,6 @@ ;; character set properly. (if (not (vm-mime-charset-internally-displayable-p charset)) nil - (setq did-decode t) (delete-region end match-end) (condition-case data (cond ((string-match "B" encoding) @@ -447,16 +445,7 @@ (insert "**invalid encoded word**") (delete-region (point) end))) (vm-mime-charset-decode-region charset start end) - (delete-region match-start start))) - ;; if we did some decoding, re-electrify the headers since - ;; some of the extents might have been wiped by the - ;; decoding process. - (if did-decode - (save-restriction - (narrow-to-region (vm-headers-of m) (vm-text-of m)) - (vm-energize-urls) - (vm-highlight-headers-maybe) - (vm-energize-headers-and-xfaces)))))) + (delete-region match-start start)))))) (defun vm-decode-mime-encoded-words () (let ((case-fold-search t) @@ -632,8 +621,6 @@ (let ((case-fold-search t) version type qtype encoding id description disposition qdisposition boundary boundary-regexp start multipart-list c-t c-t-e done p returnval) - (and m (message "Parsing MIME message...")) - (prog1 (catch 'return-value (save-excursion (if m @@ -701,7 +688,7 @@ (cond ((null m) t) ((null version) (throw 'return-value 'none)) - ((string= version "1.0") t) + ((or vm-mime-ignore-mime-version (string= version "1.0")) t) (t (vm-mime-error "Unsupported MIME version: %s" version))) (cond ((and m (null type)) (throw 'return-value @@ -814,9 +801,7 @@ (vm-marker (point)) (vm-marker (point-max)) (nreverse multipart-list) - nil ))))) - (and m (message "Parsing MIME message... done")) - ))) + nil ))))))) (defun vm-mime-parse-entity-safe (&optional m c-t c-t-e) (or c-t (setq c-t '("text/plain" "charset=us-ascii"))) @@ -930,7 +915,8 @@ (and (vm-toolbar-support-possible-p) vm-use-toolbar (vm-toolbar-install-toolbar)) (and (vm-menu-support-possible-p) - (vm-menu-install-menus))) + (vm-menu-install-menus)) + (run-hooks 'vm-presentation-mode-hook)) (setq vm-presentation-buffer-handle b))) (setq b vm-presentation-buffer-handle vm-presentation-buffer vm-presentation-buffer-handle @@ -1080,9 +1066,7 @@ (let ((charset (or (vm-mime-get-parameter layout "charset") "us-ascii"))) (vm-mime-charset-internally-displayable-p charset))) -;; commented out until I decide whether W3 is safe to use in -;; light of the porposed javascript extension and the possibility -;; of executing arbitrary Emacs-Lisp code embedded in a page. +;; commented out until w3-region behavior gets worked out ;; ;; ((vm-mime-types-match "text/html" type) ;; (condition-case () @@ -1276,7 +1260,10 @@ (if (vectorp layout) (progn (vm-decode-mime-layout layout) - (delete-region (point) (point-max))))) + (delete-region (point) (point-max)))) + (vm-energize-urls) + (vm-highlight-headers-maybe) + (vm-energize-headers-and-xfaces)) (set-buffer-modified-p modified)))) (save-excursion (set-buffer vm-mail-buffer) (setq vm-mime-decoded 'decoded)) @@ -1348,9 +1335,7 @@ (defun vm-mime-display-button-text (layout) (vm-mime-display-button-xxxx layout t)) -;; commented out until I decide whether W3 is safe to use in -;; light of the proposed javascript extension and the possibility -;; of executing arbitrary Emacs-Lisp code embedded in a page. +;; commented out until w3-region behavior is worked out ;; ;;(defun vm-mime-display-internal-text/html (layout) ;; (let ((buffer-read-only nil) @@ -1373,7 +1358,7 @@ ;; (message "Inlining text/html... done") ;; t )) -(defun vm-mime-display-internal-text/plain (layout &optional ignore-urls) +(defun vm-mime-display-internal-text/plain (layout &optional no-highlighting) (let ((start (point)) end old-size (buffer-read-only nil) (charset (or (vm-mime-get-parameter layout "charset") "us-ascii"))) @@ -1388,7 +1373,7 @@ (setq old-size (buffer-size)) (vm-mime-charset-decode-region charset start end) (set-marker end (+ end (- (buffer-size) old-size))) - (or ignore-urls (vm-energize-urls-in-message-region start end)) + (or no-highlighting (vm-energize-urls-in-message-region start end)) (goto-char end) t ))) @@ -1593,7 +1578,8 @@ (vm-mode)) ;; temp buffer, don't offer to save it. (setq buffer-offer-save nil) - (vm-display nil nil (list this-command) '(vm-mode startup))) + (vm-display (or vm-presentation-buffer (current-buffer)) t + (list this-command) '(vm-mode startup))) t ) (fset 'vm-mime-display-button-multipart/digest 'vm-mime-display-internal-multipart/digest) @@ -2894,7 +2880,7 @@ (vm-insert-region-from-buffer mail-buffer) (goto-char (point-min)) (or (vm-mail-mode-get-header-contents "From") - (insert "From: " (or user-mail-address (user-login-name)) "\n")) + (insert "From: " (user-login-name) "\n")) (or (vm-mail-mode-get-header-contents "Message-ID") (insert "Message-ID: \n")) (or (vm-mail-mode-get-header-contents "Date") diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-minibuf.el --- a/lisp/vm/vm-minibuf.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-minibuf.el Mon Aug 13 08:53:38 2007 +0200 @@ -181,8 +181,10 @@ (while keymaps (setq keymap (car keymaps)) (cond ((vm-mouse-xemacs-mouse-p) - (define-key keymap 'button1 command) - (define-key keymap 'button2 command)) + (define-key keymap 'button1 'ignore) + (define-key keymap 'button2 'ignore) + (define-key keymap 'button1up command) + (define-key keymap 'button2up command)) ((vm-mouse-fsfemacs-mouse-p) (define-key keymap [down-mouse-1] 'ignore) (define-key keymap [drag-mouse-1] 'ignore) diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-misc.el --- a/lisp/vm/vm-misc.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-misc.el Mon Aug 13 08:53:38 2007 +0200 @@ -376,6 +376,7 @@ (defun vm-menu-support-possible-p () (or (and (boundp 'window-system) (or (eq window-system 'x) + (eq window-system 'ns) ;; NextStep (eq window-system 'win32))) (and (fboundp 'device-type) (eq (device-type) 'x)))) diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-mouse.el --- a/lisp/vm/vm-mouse.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-mouse.el Mon Aug 13 08:53:38 2007 +0200 @@ -191,11 +191,13 @@ (defun vm-mouse-send-url-to-netscape (url &optional new-netscape new-window) (message "Sending URL to Netscape...") (if new-netscape - (vm-run-background-command vm-netscape-program url) - (or (equal 0 (vm-run-command vm-netscape-program "-remote" - (concat "openURL(" url - (if new-window ", new-window" "") - ")"))) + (apply 'vm-run-background-command vm-netscape-program + (append vm-netscape-program-switches (list url))) + (or (equal 0 (apply 'vm-run-command vm-netscape-program "-remote" + (append (list (concat "openURL(" url + (if new-window ", new-window" "") + ")")) + vm-netscape-program-switches))) (vm-mouse-send-url-to-netscape url t new-window))) (message "Sending URL to Netscape... done")) @@ -227,10 +229,10 @@ (not (equal 0 (vm-run-command "kill" "-USR1" pid)))) (setq new-mosaic t))))) (if new-mosaic - (vm-run-background-command vm-mosaic-program url)) + (apply 'vm-run-background-command vm-mosaic-program + (append vm-mosaic-program-switches (list url)))) (message "Sending URL to Mosaic... done")) - (defun vm-mouse-install-mouse () (cond ((vm-mouse-xemacs-mouse-p) (if (null (lookup-key vm-mode-map 'button2)) diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-page.el --- a/lisp/vm/vm-page.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-page.el Mon Aug 13 08:53:38 2007 +0200 @@ -164,7 +164,7 @@ ;; answer about where the end of the message is going to be ;; visible when redisplay finally does occur. (defun vm-howl-if-eom () - (let ((w (vm-get-visible-buffer-window (current-buffer)))) + (let ((w (get-buffer-window (current-buffer)))) (and w (save-excursion (save-window-excursion @@ -450,8 +450,7 @@ (if (or vm-highlight-url-face vm-url-browser) (save-restriction (widen) - (narrow-to-region start - end) + (narrow-to-region start end) (vm-energize-urls))))) (defun vm-highlight-headers-maybe () @@ -499,7 +498,8 @@ (defun vm-preview-current-message () (vm-save-buffer-excursion - (setq vm-system-state 'previewing) + (setq vm-system-state 'previewing + vm-mime-decoded nil) (if vm-real-buffers (vm-make-virtual-copy (car vm-message-pointer))) @@ -562,7 +562,11 @@ (not (vm-buffer-variable-value vm-mail-buffer 'vm-mime-decoded)) (not vm-mime-decoded)) (not (vm-mime-plain-message-p (car vm-message-pointer))) - (vm-decode-mime-message)) + (condition-case data + (vm-decode-mime-message) + (vm-mime-error (vm-set-mime-layout-of (car vm-message-pointer) + (car (cdr data))) + (message "%s" (car (cdr data)))))) (vm-save-buffer-excursion (save-excursion (save-excursion diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-reply.el --- a/lisp/vm/vm-reply.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-reply.el Mon Aug 13 08:53:38 2007 +0200 @@ -130,8 +130,10 @@ (concat "^" (regexp-quote mail-header-separator) "$") nil 0)) (forward-char 1) (while mlist - (vm-yank-message (car mlist)) - (goto-char (point-max)) + (save-restriction + (narrow-to-region (point) (point)) + (vm-yank-message (car mlist)) + (goto-char (point-max))) (setq mlist (cdr mlist))))) (run-hooks 'vm-reply-hook) (run-hooks 'vm-mail-mode-hook))) @@ -576,7 +578,15 @@ "Like vm-forward-message but always forwards all the headers." (interactive) (let ((vm-forwarded-headers nil) - (vm-unforwarded-header-regexp "only-drop-this-header")) + (vm-unforwarded-header-regexp "only-drop-this-header") + ;; set these because vm-forward-message calls vm-send-digest + ;; if there is more than one message to be forwarded. + (vm-rfc934-digest-headers nil) + (vm-rfc934-digest-discard-header-regexp "only-drop-this-header") + (vm-rfc1153-digest-headers nil) + (vm-rfc1153-digest-discard-header-regexp "only-drop-this-header") + (vm-mime-digest-headers nil) + (vm-mime-digest-discard-header-regexp "only-drop-this-header")) (vm-forward-message))) (defun vm-forward-message () @@ -991,6 +1001,9 @@ (and newsgroups (insert "Newsgroups: " newsgroups "\n")) (and in-reply-to (insert "In-Reply-To: " in-reply-to "\n")) (and references (insert "References: " references "\n")) + (insert "X-Mailer: VM " vm-version " under " + (if (vm-fsfemacs-19-p) "Emacs " "") + emacs-version "\n") ;; REPLYTO support for FSF Emacs v19.29 (and (eq mail-default-reply-to t) (setq mail-default-reply-to (getenv "REPLYTO"))) diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-save.el --- a/lisp/vm/vm-save.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-save.el Mon Aug 13 08:53:38 2007 +0200 @@ -501,7 +501,7 @@ Prefix arg N means print the current message and the next N - 1 messages. Prefix arg -N means print the current message and the previous N - 1 messages. -The variables `vm-print-command' controls what command is run to +The variable `vm-print-command' controls what command is run to print the message, and `vm-print-command-switches' is a list of switches to pass to the command. diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-startup.el --- a/lisp/vm/vm-startup.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-startup.el Mon Aug 13 08:53:38 2007 +0200 @@ -275,7 +275,7 @@ (defun vm-mode (&optional read-only) "Major mode for reading mail. -This is VM 6.19. +This is VM 6.20. Commands: h - summarize folder contents @@ -477,10 +477,12 @@ vm-mime-digest-headers vm-mime-display-function vm-mime-external-content-types-alist + vm-mime-ignore-mime-version vm-mime-internal-content-types vm-mime-max-message-size vm-mode-hook vm-mosaic-program + vm-mosaic-program-switches vm-move-after-deleting vm-move-after-killing vm-move-after-undeleting @@ -488,6 +490,7 @@ vm-mutable-frames vm-mutable-windows vm-netscape-program + vm-netscape-program-switches vm-pop-bytes-per-session vm-pop-max-message-size vm-pop-md5-program @@ -922,11 +925,13 @@ 'vm-mime-digest-headers 'vm-mime-display-function 'vm-mime-external-content-types-alist + 'vm-mime-ignore-mime-version 'vm-mime-internal-content-types 'vm-mime-max-message-size 'vm-mode-hook 'vm-mode-hooks 'vm-mosaic-program + 'vm-mosaic-program-switches 'vm-move-after-deleting 'vm-move-after-undeleting 'vm-move-messages-physically @@ -934,6 +939,7 @@ 'vm-mutable-frames 'vm-mutable-windows 'vm-netscape-program + 'vm-netscape-program-switches 'vm-pop-bytes-per-session 'vm-pop-max-message-size 'vm-pop-messages-per-session @@ -946,7 +952,8 @@ 'vm-quit-hook 'vm-recognize-pop-maildrops 'vm-reply-hook - 'vm-reply-ignored-addresses +;; don't feed the spammers or crackers +;; 'vm-reply-ignored-addresses 'vm-reply-ignored-reply-tos 'vm-reply-subject-prefix 'vm-resend-bounced-discard-header-regexp @@ -1059,6 +1066,10 @@ (or (vm-load-window-configurations vm-window-configuration-file) (setq vm-window-configurations vm-default-window-configuration))) (setq vm-buffers-needing-display-update (make-vector 29 0)) + ;; default value of vm-mime-button-face is 'gui-button-face + ;; this face doesn't exist by default in FSF Emacs 19.34. + ;; Create it. + (and (fboundp 'make-face) (make-face 'gui-button-face)) (and (vm-mouse-support-possible-p) (vm-mouse-install-mouse)) (and (vm-menu-support-possible-p) diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-thread.el --- a/lisp/vm/vm-thread.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-thread.el Mon Aug 13 08:53:38 2007 +0200 @@ -42,7 +42,7 @@ ;; no need to schedule reindents of reparented messages ;; unless there were already messages present. (schedule-reindents message-list) - parent parent-sym id id-sym date) + parent parent-sym id id-sym date refs old-parent-sym) (while mp (setq parent (vm-th-parent (car mp)) id (vm-su-message-id (car mp)) @@ -55,25 +55,69 @@ (if parent (progn (setq parent-sym (intern parent vm-thread-obarray)) - (if (not (boundp id-sym)) - (set id-sym parent-sym)) + (cond ((or (not (boundp id-sym)) + (null (symbol-value id-sym)) + (eq (symbol-value id-sym) parent-sym)) + (set id-sym parent-sym)) + (t + (setq old-parent-sym (symbol-value id-sym)) + (put old-parent-sym 'children + (let ((kids (get old-parent-sym 'children)) + (msgs (get id-sym 'messages))) + (while msgs + (setq kids (delq (car msgs) kids) + msgs (cdr msgs))) + kids )) + (set id-sym parent-sym) + (if schedule-reindents + (vm-thread-mark-for-summary-update + (get id-sym 'messages))))) (put parent-sym 'children (cons (car mp) (get parent-sym 'children)))) - (set id-sym nil)) - ;; we need to make sure the asets below are an atomic group. + (if (not (boundp id-sym)) + (set id-sym nil))) + ;; use the references header to set parenting information + ;; for ancestors of this message. This does not override + ;; a parent pointer for a message if it already exists. + (if (cdr (setq refs (vm-th-references (car mp)))) + (let (parent-sym id-sym msgs) + (setq parent-sym (intern (car refs) vm-thread-obarray) + refs (cdr refs)) + (while refs + (setq id-sym (intern (car refs) vm-thread-obarray)) + (if (and (boundp id-sym) (symbol-value id-sym)) + nil + (set id-sym parent-sym) + (if (setq msgs (get id-sym 'messages)) + (put parent-sym 'children + (append msgs (get parent-sym 'children)))) + (if schedule-reindents + (vm-thread-mark-for-summary-update msgs))) + (setq parent-sym id-sym + refs (cdr refs))))) (if vm-thread-using-subject + ;; inhibit-quit because we need to make sure the asets + ;; below are an atomic group. (let* ((inhibit-quit t) (subject (vm-so-sortable-subject (car mp))) (subject-sym (intern subject vm-thread-subject-obarray))) + ;; if this subject never seen before create the + ;; information vector. (if (not (boundp subject-sym)) (set subject-sym (vector id-sym (vm-so-sortable-datestring (car mp)) nil (list (car mp)))) + ;; this subject seen before (aset (symbol-value subject-sym) 3 (cons (car mp) (aref (symbol-value subject-sym) 3))) (if (string< date (aref (symbol-value subject-sym) 1)) (let* ((vect (symbol-value subject-sym)) (i-sym (aref vect 0))) + ;; optimization: if we know that this message + ;; already has a parent, then don't bother + ;; adding it to the list of child messages + ;; since we know that it will be threaded and + ;; unthreaded using the parent information. (if (or (not (boundp i-sym)) (null (symbol-value i-sym))) (aset vect 2 (append (get i-sym 'messages) @@ -88,6 +132,11 @@ (if schedule-reindents (let ((inhibit-quit nil)) (vm-thread-mark-for-summary-update (aref vect 2))))) + ;; optimization: if we know that this message + ;; already has a parent, then don't bother adding + ;; it to the list of child messages, since we + ;; know that it will be threaded and unthreaded + ;; using the parent information. (if (null parent) (aset (symbol-value subject-sym) 2 (cons (car mp) @@ -152,9 +201,9 @@ ;; remove message struct from thread data. ;; ;; optional second arg non-nil means forget information that -;; might be different if the mesage contents changed. +;; might be different if the message contents changed. ;; -;; message must be a real message +;; message must be a real (non-virtual) message (defun vm-unthread-message (message &optional message-changing) (save-excursion (let ((mp (cons message (vm-virtual-messages-of message))) @@ -206,15 +255,19 @@ (vm-thread-mark-for-summary-update children)))))))) (setq mp (cdr mp)))))) +(defun vm-th-references (m) + (or (vm-references-of m) + (vm-set-references-of + m + (let (references) + (setq references (vm-get-header-contents m "References:" " ")) + (and references (vm-parse references "[^<]*\\(<[^>]+>\\)")))))) + (defun vm-th-parent (m) (or (vm-parent-of m) (vm-set-parent-of m - (or (let (references) - (setq references (vm-get-header-contents m "References:" " ")) - (and references - (car (vm-last - (vm-parse references "[^<]*\\(<[^>]+>\\)"))))) + (or (car (vm-last (vm-th-references m))) (let (in-reply-to) (setq in-reply-to (vm-get-header-contents m "In-Reply-To:" " ")) (and in-reply-to diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-vars.el --- a/lisp/vm/vm-vars.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-vars.el Mon Aug 13 08:53:38 2007 +0200 @@ -381,7 +381,7 @@ MIME (Multipurpose Internet Mail Extensions) is a set of extensions to the standard Internet message format that allows reliable tranmission and reception of arbitrary data including -images, audio and video as well as traditional text. +images, audio and video as well as ordinary text. A non-nil value for this variable means that VM will recognize MIME encoded messages and display them as specified by the @@ -390,6 +390,14 @@ A nil value means VM will not display MIME messages any differently than any other message.") +(defvar vm-mime-ignore-mime-version nil + "*Non-nil value means ignore the version number in the MIME-Version +header. VM only knows how to decode and display MIME version 1.0 +messages. Some systems scramble the MIME-Version header, causing +VM to believe that it cannot display a message that it actually +can display. You can set vm-mime-ignore-mime-version non-nil if +you use such systems.") + ;; try to avoid bad interaction with TM (defvar vm-send-using-mime (not (featurep 'mime-setup)) "*Non-nil value means VM should support sending messages using MIME. @@ -576,7 +584,7 @@ (setq vm-mime-charset-font-alist '( - (\"iso-8859-7\" . \"-*-*-medium-r-normal--16-160-72-72-c-80-iso8859-7\") + (\"iso-8859-7\" . \"-*-*-medium-r-normal-*-16-160-72-72-c-80-iso8859-7\") ) ) @@ -589,14 +597,7 @@ Note that under FSF Emacs any fonts you use must be the same size as your default font. XEmacs does not have this limitation.") -(defvar vm-mime-button-face - (cond ((fboundp 'find-face) - (or (and (not (eq (device-type) 'tty)) (find-face 'gui-button-face) - 'gui-button-face) - (and (find-face 'bold-italic) 'bold-italic))) - ((fboundp 'facep) - (or (and (facep 'gui-button-face) 'gui-button-face) - (and (facep 'bold-italic) 'bold-italic)))) +(defvar vm-mime-button-face 'gui-button-face "*Face used for text in buttons that trigger the display of MIME objects.") (defvar vm-mime-8bit-composition-charset "iso-8859-1" @@ -1201,7 +1202,9 @@ (defvar vm-digest-identifier-header-format "X-Digest: %s\n" "*Header to insert into messages burst from a digest. -Value should be a format string of the same type as vm-summary-format that describes a header to be inserted into each message burst from a digest. The format string must end with a newline.") +Value should be a format string of the same type as vm-summary-format +that describes a header to be inserted into each message burst from a +digest. The format string must end with a newline.") (defvar vm-digest-burst-type "guess" "*Value specifies the default digest type offered by vm-burst-digest @@ -1219,7 +1222,7 @@ rfc934 digests separate messages on any line that begins with a few dashes, but doesn't require lines with only dashes or lines with a specific number of dashes. In the text of the message, any line -beginning with dashes is textually modified to be preceeded by a dash +beginning with dashes is textually modified to be preceded by a dash and a space to prevent confusion with message separators. MIME digests use whatever boundary that is specified by the @@ -2191,6 +2194,12 @@ "*List of hook functions to run when a VM virtual folder buffer is created. The current buffer will be that buffer when the hooks are run.") +(defvar vm-presentation-mode-hook nil + "*List of hook functions to run when a VM presentation buffer is created. +The current buffer will be that buffer when the hooks are run. +Presentation buffers are used to display messages when some type of decoding +must be done to the message to make it presentable. E.g. MIME decoding.") + (defvar vm-quit-hook nil "*List of hook functions to run when you quit VM. This applies to any VM quit command.") @@ -2288,10 +2297,16 @@ "*Name of program to use to run Netscape. vm-mouse-send-url-to-netscape uses this.") +(defvar vm-netscape-program-switches nil + "*List of command line switches to pass to Netscape.") + (defvar vm-mosaic-program "Mosaic" "*Name of program to use to run Mosaic. vm-mouse-send-url-to-mosaic uses this.") +(defvar vm-mosaic-program-switches nil + "*List of command line switches to pass to Mosaic.") + (defvar vm-temp-file-directory "/tmp" "*Name of a directory where VM can put temporary files. This name must not end with a slash.") @@ -2767,7 +2782,7 @@ "Non-nil value means that vm-minibuffer-complete-word should automatically append a space to words that complete unambiguously.") (defconst vm-attributes-vector-length 9) -(defconst vm-cache-vector-length 20) +(defconst vm-cache-vector-length 21) (defconst vm-softdata-vector-length 18) (defconst vm-location-data-vector-length 6) (defconst vm-mirror-data-vector-length 5) diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-version.el --- a/lisp/vm/vm-version.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-version.el Mon Aug 13 08:53:38 2007 +0200 @@ -2,7 +2,7 @@ (provide 'vm-version) -(defconst vm-version "6.19" +(defconst vm-version "6.20" "Version number of VM.") (defun vm-version () diff -r 279432d5c479 -r c53a95d3c46d lisp/vm/vm-virtual.el --- a/lisp/vm/vm-virtual.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/vm/vm-virtual.el Mon Aug 13 08:53:38 2007 +0200 @@ -509,7 +509,9 @@ ;; set the message pointer to a new value if it is ;; now invalid. (cond - ((equal "Q" (vm-message-id-number-of (car vm-message-pointer))) + ((and vm-message-pointer + (equal "Q" (vm-message-id-number-of + (car vm-message-pointer)))) (vm-garbage-collect-message) (setq vmp vm-message-pointer) (while (and vm-message-pointer diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/ChangeLog --- a/lisp/w3/ChangeLog Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/ChangeLog Mon Aug 13 08:53:38 2007 +0200 @@ -1,5 +1,60 @@ +Mon Mar 17 08:44:46 1997 William M. Perry + +* w3-sysdp.el (buffer-substring-no-properties): Added stub + +* url-gopher.el (url-gopher-retrieve): Ditto. + +* url.el: Ditto + +* w3-parse.el: Removed all sorts of fun (following-char) commands that can + cause ebola warnings under XEmacs 20.x + +* w3.el (w3-popup-info): Default to the URL under point instead of the + documents URL + +* w3-auto.el: updated autoloads - made sure everything was interactive if + appropriate. + +* w3-menu.el (w3-popup-menu): If w3-popup-menu-on-mouse-3 is nil, call + whatever button3 is bound to in global-map + +* w3-display.el: Added XEmacs version of frame-char-height and + frame-char-width + (w3-frames): If w3-display-frames is non-nil, then do a refresh with it + bound locally, so everything should just work. + +* url.el (url-do-setup): Global history file now defaults to ~/.w3/history + (url-do-setup): Cookie storage now defaults to ~/.w3/cookies + +Mon Mar 17 06:51:07 1997 Paul Stodghill + +* mm.el (mm-temporary-directory): Initialize variable from TMPDIR + environment variable + +Fri Mar 14 13:35:56 1997 William M. Perry + +* w3-forms.el (w3-form-create-custom): Fixed the 'custom' input type for + new filenames in the widget/custom package. + +* ssl.el (ssl-certificate-verification-depth): New variable to control how + far up a cert chain to look. + (ssl-view-certificate-program-name): New variable. + (ssl-view-certificate-program-arguments): New variable. + (ssl-certificate-directory-style): New variable. + (ssl-rehash-program-name): New variable. + (ssl-certificate-directory): New variable. + (ssl-program-arguments): Use some of them. + (ssl-accept-ca-certificate): Use the rest. + +* css.el (css-parse-args): Removed old code that could cause infinite loop + in stylesheet parsing on bad things like "foo=bar" instead of "foo:bar" + +* w3-cus.el: Added better groupings for the customization stuff. + Thu Mar 13 19:54:50 1997 William M. Perry +* Emacs-W3 3.0.68 released + * w3-cus.el: Added customization support for Emacs-W3 * w3.el (w3-mail-current-document): Use url-mail-command instead of diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/Makefile --- a/lisp/w3/Makefile Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/Makefile Mon Aug 13 08:53:38 2007 +0200 @@ -61,7 +61,7 @@ .el.elc: $(EMACS) $(BATCHFLAGS) $(DEPS) -f batch-byte-compile $< -w3: docomp.el $(OBJECTS) +w3: check-custom docomp.el $(OBJECTS) @echo Build of w3 complete... all: w3.info w3 @@ -80,6 +80,9 @@ clean: $(RM) $(OBJECTS) +check-custom: + @./custom-check $(EMACS) + w3.info: w3.txi @$(MAKEINFO) w3.txi diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/css.el --- a/lisp/w3/css.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/css.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ ;;; css.el -- Cascading Style Sheet parser ;; Author: wmperry -;; Created: 1997/03/07 01:12:31 -;; Version: 1.29 +;; Created: 1997/03/14 22:02:39 +;; Version: 1.30 ;; Keywords: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -621,7 +621,7 @@ (while (not (eobp)) (skip-chars-forward ";, \n\t") (setq name-pos (point)) - (skip-chars-forward "^ \n\t:=,;") + (skip-chars-forward "^ \n\t:,;") (downcase-region name-pos (point)) (setq name (intern (buffer-substring name-pos (point)))) (skip-chars-forward " \t\n") diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/custom-check --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/w3/custom-check Mon Aug 13 08:53:38 2007 +0200 @@ -0,0 +1,26 @@ +#!/bin/sh +EMACS=${1:-emacs} +if [ -z "$HOME" ]; then + HOME=`(cd ; pwd)` +fi + +if [ -n "$WIDGETDIR" ]; then + echo "WIDGETDIR environment variable set, good good" + exit 0 +fi + +WITH=`${EMACS} -batch -l ${HOME}/.emacs -eval '(princ (locate-library "custom"))' | cut -f3- |xargs dirname` +WITHOUT=`${EMACS} -batch -eval '(princ (locate-library "custom"))' | cut -f3- |xargs dirname` + +if [ "${WITH}" = "${WITHOUT}" ]; then + exit 0 +else + echo "WARNING -- WARNING -- WARNING" + echo "Found custom in different places with and without ${HOME}/.emacs" + echo + echo "This could cause potential problems. Please recompile with" + echo "the environment variable WIDGETDIR set correctly. Try this" + echo "command:" + echo "make WIDGETDIR=${WITH}" + exit 1 +fi diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/mm.el --- a/lisp/w3/mm.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/mm.el Mon Aug 13 08:53:38 2007 +0200 @@ -305,7 +305,7 @@ (defvar mm-download-directory nil "*Where downloaded files should go by default.") -(defvar mm-temporary-directory "/tmp" +(defvar mm-temporary-directory (or (getenv "TMPDIR") "/tmp") "*Where temporary files go.") diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/ssl.el --- a/lisp/w3/ssl.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/ssl.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ ;;; ssl.el,v --- ssl functions for emacsen without them builtin ;; Author: wmperry -;; Created: 1997/03/09 23:02:56 -;; Version: 1.8 +;; Created: 1997/03/15 00:29:34 +;; Version: 1.11 ;; Keywords: comm ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -26,16 +26,118 @@ ;;; Boston, MA 02111-1307, USA. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defvar ssl-program-name "ssl" - "*The program to run in a subprocess to open an SSL connection.") +(require 'cl) +(require 'base64) + +(eval-and-compile + (condition-case () + (require 'custom) + (error nil)) + (if (and (featurep 'custom) (fboundp 'custom-declare-variable)) + nil ;; We've got what we needed + ;; We have the old custom-library, hack around it! + (defmacro defgroup (&rest args) + nil) + (defmacro defcustom (var value doc &rest args) + (` (defvar (, var) (, value) (, doc)))))) + +(defgroup ssl nil + "Support for `Secure Sockets Layer' encryption." + :group 'emacs) + +(defcustom ssl-certificate-directory "~/.w3/certs/" + "*Directory to store CA certificates in" + :group 'ssl + :type 'directory) + +(defcustom ssl-rehash-program-name "c_rehash" + "*Program to run after adding a cert to a directory . +Run with one argument, the directory name." + :group 'ssl + :type 'string) -(defvar ssl-program-arguments '(host port) +(defcustom ssl-view-certificate-program-name "x509" + "*The program to run to provide a human-readable view of a certificate." + :group 'ssl + :type 'string) + +(defcustom ssl-view-certificate-program-arguments '("-text" "-inform" "DER") + "*Arguments that should be passed to the certificate viewing program. +The certificate is piped to it. +Maybe a way of passing a file should be implemented" + :group 'ssl + :type 'list) + +(defcustom ssl-certificate-directory-style 'ssleay + "*Style of cert database to use, the only valid value right now is `ssleay'. +This means a directory of pem encoded certificates with hash symlinks." + :group 'ssl + :type '(choice (const :tag "SSLeay" :value ssleay))) + +(defcustom ssl-certificate-verification-depth 0 + "*How far up the certificate chain we should verify." + :group 'ssl + :type 'integer) + +(defcustom ssl-program-name "s_client" + "*The program to run in a subprocess to open an SSL connection." + :group 'ssl + :type 'string) + +(defcustom ssl-program-arguments + '("-quiet" + "-host" host + "-port" service + "-verify" ssl-certificate-verification-depth + "-CApath" ssl-certificate-directory + ) "*Arguments that should be passed to the program `ssl-program-name'. This should be used if your SSL program needs command line switches to specify any behaviour (certificate file locations, etc). The special symbols 'host and 'port may be used in the list of arguments and will be replaced with the hostname and service/port that will be connected -to.") +to." + :group 'ssl + :type 'list) + +(defun ssl-accept-ca-certificate () + "Ask if the user is willing to accept a new CA certificate. The buffer-name +should be the intended name of the certificate, and the buffer should probably +be in DER encoding" + ;; TODO, check if it is really new or if we already know it + (let* ((process-connection-type nil) + (tmpbuf (generate-new-buffer "X509 CA Certificate Information")) + (response (save-excursion + (and (eq 0 + (apply 'call-process-region + (point-min) (point-max) + ssl-view-certificate-program-name + nil tmpbuf t + ssl-view-certificate-program-arguments)) + (switch-to-buffer tmpbuf) + (goto-char (point-min)) + (or (recenter) t) + (yes-or-no-p + "Accept this CA to vouch for secure server identities? ") + (kill-buffer tmpbuf))))) + (if (not response) + nil + (if (not (file-directory-p ssl-certificate-directory)) + (make-directory ssl-certificate-directory)) + (case ssl-certificate-directory-style + (ssleay + (base64-encode-region (point-min) (point-max)) + (goto-char (point-min)) + (insert "-----BEGIN CERTIFICATE-----\n") + (goto-char (point-max)) + (insert "-----END CERTIFICATE-----\n") + (let ((f (expand-file-name + (concat (file-name-sans-extension (buffer-name)) ".pem") + ssl-certificate-directory))) + (write-file f) + (call-process ssl-rehash-program-name + nil nil nil + (expand-file-name ssl-certificate-directory)))))))) (defun open-ssl-stream (name buffer host service) "Open a SSL connection for a service to a host. diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/url-gopher.el --- a/lisp/w3/url-gopher.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/url-gopher.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ ;;; url-gopher.el --- Gopher Uniform Resource Locator retrieval code ;; Author: wmperry -;; Created: 1997/02/18 23:34:30 -;; Version: 1.6 +;; Created: 1997/03/18 01:02:58 +;; Version: 1.7 ;; Keywords: comm, data, processes ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -456,8 +456,7 @@ (nth 1 descr)))) (if url-use-hypertext-gopher (url-do-gopher descr) - (gopher-dispatch-object (vector (if (= 0 - (string-to-char (nth 2 descr))) + (gopher-dispatch-object (vector (if (= 0 (length (nth 2 descr))) ?1 (string-to-char (nth 2 descr))) (nth 2 descr) (nth 2 descr) diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/url-vars.el --- a/lisp/w3/url-vars.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/url-vars.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ ;;; url-vars.el --- Variables for Uniform Resource Locator tool ;; Author: wmperry -;; Created: 1997/03/14 06:51:57 -;; Version: 1.35 +;; Created: 1997/03/18 01:10:34 +;; Version: 1.36 ;; Keywords: comm, data, processes, hypermedia ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -26,7 +26,7 @@ ;;; Boston, MA 02111-1307, USA. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defconst url-version (let ((x "p3.0.68")) +(defconst url-version (let ((x "p3.0.69")) (if (string-match "State: \\([^ \t\n]+\\)" x) (substring x (match-beginning 1) (match-end 1)) x)) diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/url.el --- a/lisp/w3/url.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/url.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,13 +1,13 @@ ;;; url.el --- Uniform Resource Locator retrieval tool ;; Author: wmperry -;; Created: 1997/03/09 06:19:51 -;; Version: 1.62 +;; Created: 1997/03/18 01:08:13 +;; Version: 1.65 ;; Keywords: comm, data, processes, hypermedia ;;; LCD Archive Entry: ;;; url|William M. Perry|wmperry@cs.indiana.edu| ;;; Functions for retrieving/manipulating URLs| -;;; 1997/03/09 06:19:51|1.62|Location Undetermined +;;; 1997/03/18 01:08:13|1.65|Location Undetermined ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -922,7 +922,7 @@ (setq url-cookie-file (or url-cookie-file - (expand-file-name "~/.w3cookies"))) + (expand-file-name "~/.w3/cookies"))) (setq url-global-history-file (or url-global-history-file @@ -931,7 +931,7 @@ (and (memq system-type '(axp-vms vax-vms)) (expand-file-name "~/mosaic.global-history")) (condition-case () - (expand-file-name "~/.mosaic-global-history") + (expand-file-name "~/.w3/history") (error nil)))) ;; Parse the global history file if it exists, so that it can be used @@ -1020,6 +1020,9 @@ (run-hooks 'url-load-hook) (setq url-setup-done t))) +(defvar url-get-url-filename-chars "%.?@a-zA-Z0-9---()_/:~=&" + "Valid characters in a URL") + ;;;###autoload (defun url-get-url-at-point (&optional pt) "Get the URL closest to point, but don't change your @@ -1028,7 +1031,7 @@ ;; Not at all perfect - point must be right in the name. (save-excursion (if pt (goto-char pt)) - (let ((filename-chars "%.?@a-zA-Z0-9---()_/:~=&") start url) + (let (start url) (save-excursion ;; first see if you're just past a filename (if (not (eobp)) @@ -1037,16 +1040,16 @@ (skip-chars-backward " \n\t\r({[]})") (if (not (bobp)) (backward-char 1))))) - (if (string-match (concat "[" filename-chars "]") - (char-to-string (following-char))) + (if (and (char-after (point)) + (string-match (eval-when-compile + (concat "[" url-get-url-filename-chars "]")) + (char-to-string (char-after (point))))) (progn - (skip-chars-backward filename-chars) + (skip-chars-backward url-get-url-filename-chars) (setq start (point)) - (skip-chars-forward filename-chars)) + (skip-chars-forward url-get-url-filename-chars)) (setq start (point))) - (setq url (if (fboundp 'buffer-substring-no-properties) - (buffer-substring-no-properties start (point)) - (buffer-substring start (point))))) + (setq url (buffer-substring-no-properties start (point)))) (if (string-match "^URL:" url) (setq url (substring url 4 nil))) (if (string-match "\\.$" url) diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/w3-auto.el --- a/lisp/w3/w3-auto.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/w3-auto.el Mon Aug 13 08:53:38 2007 +0200 @@ -4,26 +4,26 @@ (autoload 'w3-about "w3-about") ;; Hotlist handling -(autoload 'w3-read-html-bookmarks "w3-hot") -(autoload 'w3-hotlist-apropos "w3-hot") -(autoload 'w3-hotlist-refresh "w3-hot") -(autoload 'w3-hotlist-delete "w3-hot") -(autoload 'w3-hotlist-rename-entry "w3-hot") -(autoload 'w3-hotlist-append "w3-hot") +(autoload 'w3-read-html-bookmarks "w3-hot" nil t) +(autoload 'w3-hotlist-apropos "w3-hot" nil t) +(autoload 'w3-hotlist-refresh "w3-hot" nil t) +(autoload 'w3-hotlist-delete "w3-hot" nil t) +(autoload 'w3-hotlist-rename-entry "w3-hot" nil t) +(autoload 'w3-hotlist-append "w3-hot" nil t) (autoload 'w3-parse-hotlist "w3-hot") (autoload 'w3-use-hotlist "w3-hot" nil t) -(autoload 'w3-hotlist-add-document-at-point "w3-hot") -(autoload 'w3-hotlist-add-document "w3-hot") +(autoload 'w3-hotlist-add-document-at-point "w3-hot" nil t) +(autoload 'w3-hotlist-add-document "w3-hot" nil t) ;; Printing -(autoload 'w3-print-this-url "w3-print") -(autoload 'w3-print-url-under-point "w3-print") +(autoload 'w3-print-this-url "w3-print" nil t) +(autoload 'w3-print-url-under-point "w3-print" nil t) (autoload 'w3-parse-tree-to-latex "w3-latex") -(autoload 'w3-show-dvi "w3-latex") +(autoload 'w3-show-dvi "w3-latex" nil t) ;; Stylesheet stuff (autoload 'w3-handle-style "w3-style") -(autoload 'w3-display-stylesheet "w3-style" "" t) +(autoload 'w3-display-stylesheet "w3-style" nil t) ;; Setup stuff (autoload 'url-do-setup "url") @@ -46,7 +46,7 @@ (autoload 'widget-at "wid-edit") ;; Preferences -(autoload 'w3-preferences-edit "w3-prefs" "" t) +(autoload 'w3-preferences-edit "w3-prefs" nil t) (defvar widget-field-new nil) diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/w3-cus.el --- a/lisp/w3/w3-cus.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/w3-cus.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ ;;; w3-cus.el --- Customization support for Emacs-W3 ;; Author: wmperry -;; Created: 1997/03/14 06:51:36 -;; Version: 1.3 +;; Created: 1997/03/14 21:35:54 +;; Version: 1.4 ;; Keywords: comm, help, hypermedia ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -32,9 +32,43 @@ (if (and (featurep 'custom) (fboundp 'custom-declare-variable)) nil ;; We've got what we needed ;; We have the old custom-library, hack around it! + (defmacro defgroup (&rest args) + nil) (defmacro defcustom (var value doc &rest args) (` (defvar (, var) (, value) (, doc)))))) +(defgroup w3 nil + "Emacs-W3 - the web browser of choice." + :group 'hypermedia) + +(defgroup w3-files nil + "Emacs-W3 configuration files." + :group 'w3) + +(defgroup w3-images nil + "Controlling image handling." + :group 'w3) + +(defgroup w3-printing nil + "Various options for hardcopy from web pages." + :group 'w3) + +(defgroup w3-menus nil + "The look of menus in Emacs-W3" + :group 'w3) + +(defgroup w3-parsing nil + "Options relating to HTML parsing" + :group 'w3) + +(defgroup w3-display nil + "Variables relating to how web pages are displayed." + :group 'w3) + +(defgroup w3-hooks nil + "Hooks relating to Emacs-W3." + :group 'w3) + ;;; File related variables (defcustom w3-configuration-directory "~/.w3/" "*Directory where Emacs-w3 can find its configuration files" diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/w3-display.el --- a/lisp/w3/w3-display.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/w3-display.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ ;;; w3-display.el --- display engine v99999 ;; Author: wmperry -;; Created: 1997/03/14 06:33:15 -;; Version: 1.147 +;; Created: 1997/03/17 20:09:50 +;; Version: 1.148 ;; Keywords: faces, help, hypermedia ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -2124,6 +2124,9 @@ (defun w3-frames (&optional new-frame) "Set up and fetch W3 frames. With optional prefix, do so in a new frame." (interactive "P") + (if (not w3-display-frames) + (let ((w3-display-frames t)) + (w3-refresh-buffer))) (let* ((old-asynch url-be-asynchronous) (structure (reverse w3-frameset-structure)) (dims (or (reverse w3-frameset-dimensions) @@ -2204,6 +2207,20 @@ (setq stop t))) window-distances)) +(if (not (fboundp 'frame-char-height)) + (defun frame-char-height (&optional frame) + "Height in pixels of a line in the font in frame FRAME. +If FRAME is omitted, the selected frame is used. +For a terminal frame, the value is always 1." + (font-height (face-font 'default frame)))) + +(if (not (fboundp 'frame-char-width)) + (defun frame-char-width (&optional frame) + "Width in pixels of characters in the font in frame FRAME. +If FRAME is omitted, the selected frame is used. +For a terminal screen, the value is always 1." + (font-width (face-font 'default frame)))) + (defun w3-decode-frameset-dimensions (dims available-dimension) "Returns numbers of lines or columns in Emacs, computed from specified frameset dimensions" (let ((dimensions nil)) diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/w3-forms.el --- a/lisp/w3/w3-forms.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/w3-forms.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ ;;; w3-forms.el --- Emacs-w3 forms parsing code for new display engine ;; Author: wmperry -;; Created: 1997/03/07 14:26:02 -;; Version: 1.77 +;; Created: 1997/03/15 00:31:11 +;; Version: 1.78 ;; Keywords: faces, help, comm, data, languages ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -249,7 +249,9 @@ (make-variable-buffer-local 'w3-custom-options) (defun w3-form-create-custom (el face) - (require 'custom-edit) + (condition-case () + (require 'cus-edit) + (error (require 'custom-edit))) (let* ((name (w3-form-element-name el)) (var-name (w3-form-element-value el)) (type (plist-get (w3-form-element-plist el) 'custom-type)) diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/w3-menu.el --- a/lisp/w3/w3-menu.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/w3-menu.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ ;;; w3-menu.el --- Menu functions for emacs-w3 ;; Author: wmperry -;; Created: 1997/03/13 19:25:10 -;; Version: 1.32 +;; Created: 1997/03/18 00:45:01 +;; Version: 1.34 ;; Keywords: menu, hypermedia ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -27,6 +27,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'w3-vars) +(require 'w3-mouse) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Spiffy new menus (for both Emacs and XEmacs) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -676,47 +677,49 @@ (defun w3-popup-menu (e) "Pop up a menu of common w3 commands" (interactive "e") - (mouse-set-point e) - (let* ((glyph (event-glyph e)) - (widget (or (and glyph (glyph-property glyph 'widget)) - (widget-at (point)))) - (parent (and widget (widget-get widget :parent))) - (href (or (and widget (widget-get widget 'href)) - (and parent (widget-get parent 'href)))) - (imag (or (and widget (widget-get widget 'src)) - (and parent (widget-get parent 'src)))) - (menu (copy-tree w3-popup-menu)) - url val trunc-url) - (if href - (progn - (setq url href) - (if url (setq trunc-url (url-truncate-url-for-viewing - url - w3-max-menu-width))) + (if (not w3-popup-menu-on-mouse-3) + (call-interactively (lookup-key global-map (vector w3-mouse-button3))) + (mouse-set-point e) + (let* ((glyph (event-glyph e)) + (widget (or (and glyph (glyph-property glyph 'widget)) + (widget-at (point)))) + (parent (and widget (widget-get widget :parent))) + (href (or (and widget (widget-get widget 'href)) + (and parent (widget-get parent 'href)))) + (imag (or (and widget (widget-get widget 'src)) + (and parent (widget-get parent 'src)))) + (menu (copy-tree w3-popup-menu)) + url val trunc-url) + (if href + (progn + (setq url href) + (if url (setq trunc-url (url-truncate-url-for-viewing + url + w3-max-menu-width))) + (setcdr menu (append (cdr menu) + '("---") + (mapcar + (function + (lambda (x) + (vector (format (car x) trunc-url) + (list (cdr x) url) t))) + w3-hyperlink-menu))))) + (if imag + (progn + (setq url imag + trunc-url (url-truncate-url-for-viewing url + w3-max-menu-width)) + (setcdr menu (append (cdr menu) + '("---") + (mapcar + (function + (lambda (x) + (vector (format (car x) trunc-url) + (list (cdr x) url) t))) + w3-graphlink-menu))))) + (if (not (w3-menubar-active)) (setcdr menu (append (cdr menu) - '("---") - (mapcar - (function - (lambda (x) - (vector (format (car x) trunc-url) - (list (cdr x) url) t))) - w3-hyperlink-menu))))) - (if imag - (progn - (setq url imag - trunc-url (url-truncate-url-for-viewing url - w3-max-menu-width)) - (setcdr menu (append (cdr menu) - '("---") - (mapcar - (function - (lambda (x) - (vector (format (car x) trunc-url) - (list (cdr x) url) t))) - w3-graphlink-menu))))) - (if (not (w3-menubar-active)) - (setcdr menu (append (cdr menu) - '("---" ["Show Menubar" w3-toggle-menubar t])))) - (popup-menu menu))) + '("---" ["Show Menubar" w3-toggle-menubar t])))) + (popup-menu menu)))) (provide 'w3-menu) diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/w3-parse.el --- a/lisp/w3/w3-parse.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/w3-parse.el Mon Aug 13 08:53:38 2007 +0200 @@ -264,11 +264,11 @@ (while (progn (skip-chars-forward "^\"\\\t\n\r") (not (eobp))) - (insert "\\" (cdr (assq (following-char) '((?\" . "\"") - (?\\ . "\\") - (?\t . "t") - (?\n . "n") - (?\r . "r"))))) + (insert "\\" (cdr (assq (char-after (point)) '((?\" . "\"") + (?\\ . "\\") + (?\t . "t") + (?\n . "n") + (?\r . "r"))))) (delete-char 1)) (insert "\"") (buffer-string))) @@ -450,7 +450,7 @@ ;; is not a function character in the SGML declaration. ) - ((eq ?& (following-char)) + ((eq ?& (char-after (point))) ;; We are either looking at an undefined reference or a & that does ;; not start a reference (in which case we should not have been called). ;; Skip over the &. @@ -2116,7 +2116,7 @@ ;; character, or end of buffer. (cond - ((= ?< (following-char)) + ((= ?< (char-after (point))) ;; We are looking at a tag, comment, markup declaration, SGML marked ;; section, SGML processing instruction, or non-markup "<". @@ -2131,8 +2131,8 @@ (setq w3-p-d-tag-name (intern (buffer-substring (match-beginning 1) (match-end 1)))) - (setq w3-p-d-end-tag-p (= ?/ (following-char))) - (setq between-tags-end (1- (point))) + (setq w3-p-d-end-tag-p (eq ?/ (char-after (point))) + between-tags-end (1- (point))) (goto-char (match-end 0)) ;; Read the attributes from a start-tag. @@ -2244,7 +2244,7 @@ (buffer-substring (point-min) (point-max))))) (t (error "impossible attribute value")))) - ((memq (following-char) '(?\" ?')) + ((memq (char-after (point)) '(?\" ?')) ;; Missing terminating quote character. (narrow-to-region (point) (progn @@ -2348,15 +2348,15 @@ ;; Process the end of the tag. (skip-chars-forward " \t\n\r") - (cond ((= ?> (following-char)) + (cond ((eq ?> (char-after (point))) ;; Ordinary tag end. (forward-char 1)) - ((and (= ?/ (following-char)) + ((and (eq ?/ (char-after (point))) (not w3-p-d-end-tag-p)) ;; This is a NET-enabling start-tag. (setq net-tag-p t) (forward-char 1)) - ((= ?< (following-char)) + ((eq ?< (char-after (point))) ;; *** Strictly speaking, the following text has to ;; lexically be STAGO or ETAGO, which means that it ;; can't match some other lexical unit. @@ -2373,7 +2373,7 @@ ((looking-at "/?>") ;; We are looking at an empty tag (<>, ). - (setq w3-p-d-end-tag-p (= ?/ (following-char))) + (setq w3-p-d-end-tag-p (eq ?/ (char-after (point)))) (setq w3-p-d-tag-name (if w3-p-d-end-tag-p (w3-element-name w3-p-d-current-element) ;; *** Strictly speaking, if OMITTAG NO, then @@ -2435,7 +2435,7 @@ ;; declarations, a goal for the future. (w3-debug-html "Bad ") - (if (= ?> (following-char)) + (if (eq ?> (char-after (point))) (forward-char)))) (point)))) @@ -2462,7 +2462,7 @@ ((memq 'RCDATA keywords)) ((memq 'INCLUDE keywords)) ((memq 'TEMP keywords)))))) - (or (= ?\[ (following-char)) + (or (eq ?\[ (char-after (point))) ;; I probably shouldn't even check this, since it is so ;; impossible. (error "impossible ??")) @@ -2503,7 +2503,7 @@ (point) (progn (skip-chars-forward "^>") - (if (= ?> (following-char)) + (if (eq ?> (char-after (point))) (forward-char)) (point)))) (t @@ -2512,16 +2512,16 @@ ;; again. ))) - ((= ?& (following-char)) + ((eq ?& (char-after (point))) (w3-expand-entity-at-point-maybe)) - ((and (= ?\] (following-char)) + ((and (eq ?\] (char-after (point))) w3-p-d-in-parsed-marked-section (looking-at "]]>")) ;; *** handle the end of a parsed marked section. (error "***unimplemented***")) - ((and (= ?/ (following-char)) + ((and (eq ?/ (char-after (point))) w3-p-d-null-end-tag-enabled) ;; We are looking at a null end tag. (setq w3-p-d-end-tag-p t) @@ -2554,8 +2554,8 @@ ((looking-at (eval-when-compile (concat "[" (w3-invalid-sgml-chars) "]"))) (w3-debug-html - (format "Invalid SGML character: %c" (following-char))) - (insert (or (cdr-safe (assq (following-char) + (format "Invalid SGML character: %c" (char-after (point)))) + (insert (or (cdr-safe (assq (char-after (point)) ;; These characters are apparently ;; from a Windows character set. '((146 . "'") @@ -2739,7 +2739,7 @@ "]\\|&") nil 'move) (goto-char (match-beginning 0))) - (= ?& (following-char))) + (eq ?& (char-after (point)))) (w3-expand-entity-at-point-maybe))))))) (t ;; The element is illegal here. We'll just discard the start diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/w3-prefs.el --- a/lisp/w3/w3-prefs.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/w3-prefs.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ ;;; w3-prefs.el --- Preferences panels for Emacs-W3 ;; Author: wmperry -;; Created: 1997/03/14 06:31:17 -;; Version: 1.19 +;; Created: 1997/03/14 23:49:47 +;; Version: 1.20 ;; Keywords: hypermedia, preferences ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -219,7 +219,7 @@ (while todo (setq cur (car todo) todo (cdr todo) - doc (documentation-property cur 'variable-documentation)) ;; (get cur 'variable-documentation)) + doc (documentation-property cur 'variable-documentation)) (if (string-match "^\\*" doc) (setq doc (substring doc 1 nil))) (setq pt (point)) diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/w3-sysdp.el --- a/lisp/w3/w3-sysdp.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/w3-sysdp.el Mon Aug 13 08:53:38 2007 +0200 @@ -420,6 +420,12 @@ object) (setq start next)))) +(sysdep-defun buffer-substring-no-properties (st nd) + "Return the characters of part of the buffer, without the text properties. +The two arguments START and END are character positions; +they can be in either order." + (buffer-substring st nd)) + ;; Property list functions ;; (sysdep-defun plist-put (plist prop val) diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/w3-vars.el --- a/lisp/w3/w3-vars.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/w3-vars.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ ;;; w3-vars.el,v --- All variable definitions for emacs-w3 ;; Author: wmperry -;; Created: 1997/03/14 06:51:56 -;; Version: 1.108 +;; Created: 1997/03/18 01:10:33 +;; Version: 1.109 ;; Keywords: comm, help, hypermedia ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -33,7 +33,7 @@ (require 'w3-cus) ; Grab everything that is customized (defconst w3-version-number - (let ((x "p3.0.68")) + (let ((x "p3.0.69")) (if (string-match "State:[ \t\n]+.\\([^ \t\n]+\\)" x) (setq x (substring x (match-beginning 1) (match-end 1))) (setq x (substring x 1))) @@ -41,7 +41,7 @@ (function (lambda (x) (if (= x ?-) "." (char-to-string x)))) x "")) "Version # of w3-mode.") -(defconst w3-version-date (let ((x "1997/03/14 06:51:56")) +(defconst w3-version-date (let ((x "1997/03/18 01:10:33")) (if (string-match "Date: \\([^ \t\n]+\\)" x) (substring x (match-beginning 1) (match-end 1)) x)) diff -r 279432d5c479 -r c53a95d3c46d lisp/w3/w3.el --- a/lisp/w3/w3.el Mon Aug 13 08:53:21 2007 +0200 +++ b/lisp/w3/w3.el Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ ;;; w3.el --- Main functions for emacs-w3 on all platforms/versions ;; Author: wmperry -;; Created: 1997/03/14 06:39:41 -;; Version: 1.98 +;; Created: 1997/03/18 00:47:35 +;; Version: 1.99 ;; Keywords: faces, help, comm, news, mail, processes, mouse, hypermedia ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -1226,7 +1226,8 @@ (defun w3-popup-info (&optional url) "Show information about the link under point. (All SGML attributes)" - (interactive (list (w3-read-url-with-default))) + (interactive (list (or (w3-view-this-url t) + (w3-read-url-with-default)))) (let (dat widget) (if (interactive-p) nil diff -r 279432d5c479 -r c53a95d3c46d man/custom.texi --- a/man/custom.texi Mon Aug 13 08:53:21 2007 +0200 +++ b/man/custom.texi Mon Aug 13 08:53:38 2007 +0200 @@ -13,7 +13,7 @@ @comment node-name, next, previous, up @top The Customization Library -Version: 1.64 +Version: 1.65 @menu * Introduction:: diff -r 279432d5c479 -r c53a95d3c46d man/gnus.texi --- a/man/gnus.texi Mon Aug 13 08:53:21 2007 +0200 +++ b/man/gnus.texi Mon Aug 13 08:53:38 2007 +0200 @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Gnus 5.4.28 Manual +@settitle Gnus 5.4.30 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -287,7 +287,7 @@ @tex @titlepage -@title Gnus 5.4.28 Manual +@title Gnus 5.4.30 Manual @author by Lars Magne Ingebrigtsen @page @@ -323,7 +323,7 @@ spool or your mbox file. All at the same time, if you want to push your luck. -This manual corresponds to Gnus 5.4.28 +This manual corresponds to Gnus 5.4.30 @end ifinfo @@ -6030,6 +6030,12 @@ Do all the three commands above (@code{gnus-article-strip-blank-lines}). +@item W E s +@kindex W E s (Summary) +@findex gnus-article-strip-leading-space +Remove all white space from the beginning of all lines of the article +body (@code{gnus-article-strip-leading-space}). + @end table diff -r 279432d5c479 -r c53a95d3c46d man/hypb-mouse.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/man/hypb-mouse.txt Mon Aug 13 08:53:38 2007 +0200 @@ -0,0 +1,69 @@ +============================================================================== + Smart Keys +Context Action Key Assist Key +============================================================================== +Hyperbole + On a menu item Item is activated Item help + On an explicit button Button is activated Button help + Reading argument + 1st press at an arg value Value copied to minibuffer <- same + 2nd press at an arg value Value used as argument <- same + In minibuffer Minibuf arg is applied Completion help + On an implicit button Button is activated Button help + Within an outline cell Collapses and expands Shows tree props + Left of an outline cell Creates a klink Moves a tree + Wrolo Match Buffer Edits entries and mails to e-mail addresses + +Mouse or Keyboard Display Control + Line end, not end of buffer + smart-scroll-proportional + = t (default) Makes curr line top line Bottom line + = nil Scrolls up a windowful Scrolls down + End of Any Help buffer Screen restored to previous state + +Mouse-only Control + Modeline down & wind release Resize window height <- same + Drag from shared window side + or from left of scroll bar Resize window width <- same + Drag between windows Create/modify a link but Swap window buffers + Horizontal drag within window + Left to right Scroll to buffer end Split window across + Right to left Scroll to buffer begin Delete window + Vertical drag within window Split window sideways <- same + Diagonal drag within window Save ring screen-config Restore ring config + Click in modeline + Left window edge Bury buffer Unbury bottom buf + Right window edge Info Smart Key summary + Otherwise Action Key Hook Assist Key Hook + +Special Modes + C,C++,Objective-C,Java Modes Jumps to id/include def Jumps to next def + Java Cross-Reference Tag Jumps to identifier def Jumps to next def + Assembly Language Mode Jumps to id/include def Jumps to next def + Any Lisp or Fortran Mode Jumps to id def Jumps to next def + Emacs Lisp Compiler Error Jumps to def with error <- same + Grep or Occur Match Jumps to match source line <- same + Multi-buffer Occur Match Jumps to match source line <- same + Outline Major/Minor Modes Collapses, expands, and moves outline entries + Man Apropos Displays man page entry <- same + Man Pages Follows cross refs, file refs and C code refs + Buffer Menu Saves, deletes and displays buffers + +Emacs Info Reader + Menu Entry or Cross Ref Jumps to referent <- same + Up, Next or Prev Header Jumps to referent Jumps to prior node + File entry of Header Jumps to top node Jumps to (DIR) node + End of current node Jumps to next node Jumps to prev node + Anywhere else Scrolls up a windowful Scrolls down a wind + +Subsystems + Calendar Scrolls or shows appts Scrolls/marks dates + Dired Mode Views and deletes files from directory listing + GNUS News Reader Toggles group subscriptions, gets new news, + and browses articles + Mail reader and Summaries Browses, deletes and expunges messages + OO-Browser Browses classes and elements + Tar Mode Views and edits files from tar archive files + +Any other context (defaults) Hyperbole top menu Smart Key summary +============================================================================== diff -r 279432d5c479 -r c53a95d3c46d man/hyperbole.texi --- a/man/hyperbole.texi Mon Aug 13 08:53:21 2007 +0200 +++ b/man/hyperbole.texi Mon Aug 13 08:53:38 2007 +0200 @@ -12,7 +12,7 @@ @c Tel: +1 408-243-3300 @c @c ORIG-DATE: 6-Nov-91 at 11:18:03 -@c LAST-MOD: 20-Feb-97 at 12:36:16 by Bob Weiner +@c LAST-MOD: 17-Mar-97 at 21:36:15 by Bob Weiner @c %**start of header (This is for running Texinfo on a region.) @setfilename ../info/hyperbole.info @@ -35,9 +35,9 @@ @sp 1 @center E-mail: (This is a mailing list.) @sp 2 -@center Edition 4.02 +@center Edition 4.023 @sp 2 -@center February 19, 1997 +@center March 17, 1997 @page @vskip 0pt plus 1filll @@ -2222,8 +2222,9 @@ @item Cust/ Customizes Hyperbole by setting major options. This includes where Hyperbole link referents are displayed, where URLs -are displayed and whether to use proportional or windowful scrolling -when a Smart Key is pressed at the end of a line. @xref{Configuring}. +are displayed, whether the date stamps are added to rolodex entries, and +whether to use proportional or windowful scrolling when a Smart Key is +pressed at the end of a line. @xref{Configuring}. @cindex menu, EBut @item Ebut/ @@ -3378,17 +3379,19 @@ @end group @end example -We call rolodex records, @dfn{entries}. Entries begin with a delimiter, -some number of `*' characters at the beginning of a line. Entries may +We call rolodex records, @dfn{entries}. Entries begin with a delimiter +of one or more `*' characters at the beginning of a line. Entries may be arranged in a hierarchy, where child entries begin with one more `*' -characters than do their parents. Top level entries begin with a single +character than do their parents. Top level entries begin with a single `*'. Beyond this initial delimiter, entries are completely free-form text. It is best to use a "lastname, firstname" format, however, when adding contact entries into a rolodex. Then the rolodex system will automatically keep your entries alphabetized as you enter them. You'll -also be able to sort them whenever you desire. +also be able to sort them whenever you desire. This is what the +rolodex will use if you accept the default entry that it prompts you +with when adding a new entry. Any search done on the rolodex scans the full text of each entry. During a search, the rolodex file header separator lines and anything in @@ -3491,9 +3494,23 @@ @section Rolo Keys @kindex e -@cindex rolodex, editing an entry +@cindex rolodex, editing +@cindex datestamps +@cindex rolodex, datestamps +@cindex customization, rolodex datestamps +@cindex menu, Toggle-Rolo-Dates +@cindex customization, rolodex edits +@cindex customization, rolodex additions +@vindex wrolo-edit-hook +@vindex wrolo-add-hook Use the @{@kbd{e}@} key to edit the entry at point within the rolodex -source file. +source file. A datestamp will be automatically added or updated at the +end of the entry, unless this feature has been turned off via the +Cust/Toggle-Rolo-Dates menu item. The variable, @var{wrolo-edit-hook}, +is evaluated after the update of the entry datestamp. This allows +programmed modification of the way rolodex edits work. The variable, +@var{wrolo-add-hook}, works the same way but is evaluated when a new +entry is first added. @cindex wrolo menu @cindex rolodex keys @@ -3602,8 +3619,8 @@ setting: @code{(setq rolo-save-buffers-after-use nil)}. @vindex rolo-email-format -When adding an entry from within a buffer containing a mail message, the -rolodex add function will extract the sender's name and e-mail address +When adding an entry from within a buffer that contains a mail message, +the rolodex add function will extract the sender's name and e-mail address and prompt you with the name as a default. If you accept it, it will enter the name and the email address using the format given by the @var{rolo-email-format} variable. See its documentation if you want to diff -r 279432d5c479 -r c53a95d3c46d man/widget.texi --- a/man/widget.texi Mon Aug 13 08:53:21 2007 +0200 +++ b/man/widget.texi Mon Aug 13 08:53:38 2007 +0200 @@ -1,6 +1,6 @@ \input texinfo.tex -@c $Id: widget.texi,v 1.9 1997/03/18 04:23:28 steve Exp $ +@c $Id: widget.texi,v 1.10 1997/03/19 06:12:09 steve Exp $ @c %**start of header @setfilename widget @@ -15,7 +15,7 @@ @comment node-name, next, previous, up @top The Emacs Widget Library -Version: 1.64 +Version: 1.65 @menu * Introduction:: diff -r 279432d5c479 -r c53a95d3c46d src/Makefile.in.in --- a/src/Makefile.in.in Mon Aug 13 08:53:21 2007 +0200 +++ b/src/Makefile.in.in Mon Aug 13 08:53:38 2007 +0200 @@ -1070,6 +1070,9 @@ ${lispdir}eos/sun-eos-toolbar.elc \ ${lispdir}eos/sun-eos-menubar.elc \ ${lispdir}utils/annotations.elc \ + ${lispdir}modes/cc-mode.elc \ + ${lispdir}modes/imenu.elc \ + ${lispdir}utils/reporter.elc \ ${lispdir}prim/loaddefs.elc #else #define SUNPRO_LISP ${lispdir}prim/loaddefs.elc @@ -1264,7 +1267,7 @@ ${libsrc}DOC: ${libsrc}make-docfile ${obj_src} ${lisp} #endif rm -f ${libsrc}DOC - ${libsrc}make-docfile -d ${srcdir} -i ../site-packages \ + ${libsrc}make-docfile -d ${srcdir} -i ${libsrc}../site-packages \ ${obj_src} \ ${mallocdocsrc} ${rallocdocsrc} ${lispdir}version.el \ ${lisp} > ${libsrc}DOC diff -r 279432d5c479 -r c53a95d3c46d src/dgif_lib.c --- a/src/dgif_lib.c Mon Aug 13 08:53:21 2007 +0200 +++ b/src/dgif_lib.c Mon Aug 13 08:53:38 2007 +0200 @@ -915,6 +915,7 @@ SavedImage *sp; ExtensionBlock *ep; GifByteType *ExtData; + int ExtCode; /* Some versions of malloc dislike 0-length requests */ GifFile->SavedImages = (SavedImage *)xmalloc(sizeof(SavedImage)); @@ -941,7 +942,12 @@ break; case EXTENSION_RECORD_TYPE: - + /* This code fails if no image_desc record has been read + yet. I don't know if that's legal, but I've seen GIFs + that start with an extension record. XEmacs doesn't use + the extension records anyway, so we'll just ignore them. + - dkindred@cs.cmu.edu */ +#if 0 if (DGifGetExtension(GifFile,&sp->Function,&ExtData)==GIF_ERROR) return(GIF_ERROR); else @@ -965,6 +971,17 @@ memcpy(ep->Bytes,ExtData,ep->ByteCount * sizeof(char)); } } +#else + /* Skip any extension blocks in the file. */ + if (DGifGetExtension (GifFile, &ExtCode, &ExtData) + == GIF_ERROR) + return GIF_ERROR; + + while (ExtData != NULL) { + if (DGifGetExtensionNext (GifFile, &ExtData) == GIF_ERROR) + return GIF_ERROR; + } +#endif break; case TERMINATE_RECORD_TYPE: diff -r 279432d5c479 -r c53a95d3c46d src/glyphs-x.c --- a/src/glyphs-x.c Mon Aug 13 08:53:21 2007 +0200 +++ b/src/glyphs-x.c Mon Aug 13 08:53:38 2007 +0200 @@ -59,6 +59,9 @@ #include +/* Set to 1 if you wish to implement this feature */ +# define HAVE_SUBWINDOWS 0 + #define LISP_DEVICE_TO_X_SCREEN(dev) \ XDefaultScreenOfDisplay (DEVICE_X_DISPLAY (XDEVICE (dev))) @@ -140,8 +143,10 @@ } write_c_string (")", printcharfun); break; +#if HAVE_SUBWINDOWS case IMAGE_SUBWINDOW: /* #### implement me */ +#endif default: break; } @@ -202,8 +207,10 @@ if (IMAGE_INSTANCE_X_NPIXELS (p1) != IMAGE_INSTANCE_X_NPIXELS (p2)) return 0; break; +#if HAVE_SUBWINDOWS case IMAGE_SUBWINDOW: /* #### implement me */ +#endif break; default: break; @@ -221,8 +228,10 @@ case IMAGE_COLOR_PIXMAP: case IMAGE_POINTER: return IMAGE_INSTANCE_X_NPIXELS (p); +#if HAVE_SUBWINDOWS case IMAGE_SUBWINDOW: /* #### implement me */ +#endif return 0; default: return 0; @@ -1604,6 +1613,7 @@ return Qnil; } +#if 0 /* We provide our own version of DGifSlurp() because the standardly provided one doesn't handle interlaced GIFs. This is based on code in gif2x11.c. */ @@ -1710,6 +1720,7 @@ return GIF_OK; } +#endif static void gif_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, @@ -1759,10 +1770,12 @@ signal_simple_error ("Unable to decode GIF", build_string (EmacsPrintGifError ())); } -#if 1 +#if 0 if (our_own_dgif_slurp_from_gif2x11_c(unwind.giffile) != GIF_OK) #else - /* DGifSlurp() doesn't handle interlaced files. */ + /* DGifSlurp() doesn't handle interlaced files. */ + /* Actually, it does, sort of. It just sets the Interlace flag + and stores RasterBits in interlaced order. We handle that below. */ if (DGifSlurp (unwind.giffile) != GIF_OK) #endif goto gif_decode_error; @@ -1801,7 +1814,12 @@ int width = unwind.giffile->SWidth; int depth; int bitmap_pad; - int i, j; + int i, j, row, pass, interlace; + /* interlaced gifs have rows in this order: + 0, 8, 16, ..., 4, 12, 20, ..., 2, 6, 10, ..., 1, 3, 5, ... */ + static int InterlacedOffset[] = { 0, 4, 2, 1 }; + static int InterlacedJumps[] = { 8, 8, 4, 2 }; + depth = DefaultDepthOfScreen (scr); @@ -1834,14 +1852,35 @@ optimization routines from XPM (they're in turn mostly copied from the Xlib source code). */ + /* Note: We just use the first image in the file and ignore the rest. + We check here that that image covers the full "screen" size. + I don't know whether that's always the case. + -dkindred@cs.cmu.edu */ + if (unwind.giffile->SavedImages[0].ImageDesc.Height != height + || unwind.giffile->SavedImages[0].ImageDesc.Width != width + || unwind.giffile->SavedImages[0].ImageDesc.Left != 0 + || unwind.giffile->SavedImages[0].ImageDesc.Top != 0) + signal_simple_error ("First image in GIF file is not full size", + instantiator); + + interlace = unwind.giffile->SavedImages[0].ImageDesc.Interlace; + pass = 0; + row = interlace ? InterlacedOffset[pass] : 0; for (i = 0; i < height; i++) - for (j = 0; j < width; j++) - XPutPixel (unwind.ximage, j, i, - unwind.pixels[(unsigned char) - /* incorrect signed declaration - of RasterBits[] */ - (unwind.giffile->SavedImages-> - RasterBits[i * width + j])]); + { + if (interlace && row >= height) + row = InterlacedOffset[++pass]; + + for (j = 0; j < width; j++) + XPutPixel (unwind.ximage, j, row, + unwind.pixels[(unsigned char) + /* incorrect signed declaration + of RasterBits[] */ + (unwind.giffile->SavedImages[0]. + RasterBits[i * width + j])]); + + row += interlace ? InterlacedJumps[pass] : 1; + } } /* 4. Now create the pixmap and set up the image instance */ @@ -3432,6 +3471,7 @@ } +#if HAVE_SUBWINDOWS /************************************************************************/ /* subwindows */ /************************************************************************/ @@ -3707,7 +3747,7 @@ return subwindow; } - +#endif /************************************************************************/ /* initialization */ @@ -3716,6 +3756,7 @@ void syms_of_glyphs_x (void) { +#if HAVE_SUBWINDOWS defsymbol (&Qsubwindowp, "subwindowp"); DEFSUBR (Fmake_subwindow); @@ -3726,6 +3767,7 @@ DEFSUBR (Fsubwindow_xid); DEFSUBR (Fresize_subwindow); DEFSUBR (Fforce_subwindow_map); +#endif defkeyword (&Q_mask_file, ":mask-file"); defkeyword (&Q_mask_data, ":mask-data"); diff -r 279432d5c479 -r c53a95d3c46d src/process.c --- a/src/process.c Mon Aug 13 08:53:21 2007 +0200 +++ b/src/process.c Mon Aug 13 08:53:38 2007 +0200 @@ -2152,6 +2152,8 @@ int i; struct Lisp_Process *p; + if (exited_processes_index <= 0) + return; EMACS_BLOCK_SIGNAL (SIGCHLD); for (i = 0; i < exited_processes_index; i++) { @@ -2232,6 +2234,8 @@ static void record_exited_processes (int block_sigchld) { + if (!sigchld_happened) + return; if (block_sigchld) EMACS_BLOCK_SIGNAL (SIGCHLD);