Index: ChangeLog =================================================================== RCS file: /project/slime/cvsroot/slime/ChangeLog,v retrieving revision 1.426 diff -u -F^( -r1.426 ChangeLog --- ChangeLog 24 Jun 2004 04:32:17 -0000 1.426 +++ ChangeLog 24 Jun 2004 11:02:48 -0000 @@ -1,3 +1,13 @@ +2004-06-24 Christophe Rhodes + + * slime.el (sldb-format-reference-node): fix for when `what' is a + list. + (sldb-lookup-reference,sldb-reference-properties): support + :ansi-cl :section reference types. + + * hyperspec.el (common-lisp-hyperspec-6.0): generalize to work + with section numbers lower than 10. + 2004-06-24 Brian Downing * slime.el (slime-repl-send-input): Fixed a subtle difference in Index: hyperspec.el =================================================================== RCS file: /project/slime/cvsroot/slime/hyperspec.el,v retrieving revision 1.2 diff -u -F^( -r1.2 hyperspec.el --- hyperspec.el 4 Dec 2003 16:42:53 -0000 1.2 +++ hyperspec.el 24 Jun 2004 11:02:48 -0000 @@ -1124,7 +1124,10 @@ (defvar common-lisp-hyperspec-format-cha (defun common-lisp-hyperspec-section-6.0 (indices) (let ((string (format "%sBody/%s_" common-lisp-hyperspec-root - (pop indices)))) + (let ((base (pop indices))) + (if (< base 10) + (format "0%s" base) + base))))) (concat string (mapconcat (lambda (n) (make-string 1 (+ ?a (- n 1)))) Index: slime.el =================================================================== RCS file: /project/slime/cvsroot/slime/slime.el,v retrieving revision 1.335 diff -u -F^( -r1.335 slime.el --- slime.el 24 Jun 2004 04:32:17 -0000 1.335 +++ slime.el 24 Jun 2004 11:02:48 -0000 @@ -5435,7 +5435,7 @@ (defun sldb-reference-properties (where (and (eq where :ansi-cl) (symbolp type) (member (slime-cl-symbol-name type) - '("function" "special-operator" "macro")))) + '("function" "special-operator" "macro" "section")))) `(sldb-default-action sldb-lookup-reference sldb-reference ,ref face sldb-reference-face @@ -5450,7 +5450,9 @@ (defun sldb-format-reference-source (whe (defun sldb-format-reference-node (what) (if (symbolp what) (upcase (slime-cl-symbol-name what)) - what)) + (if (listp what) + (mapconcat (lambda (x) (format "%S" x)) what ".") + what))) (defun sldb-lookup-reference () "Browse the documentation reference at point." @@ -5458,9 +5460,13 @@ (defun sldb-lookup-reference () (get-text-property (point) 'sldb-reference) (case where (:ansi-cl - (hyperspec-lookup (if (symbolp what) - (slime-cl-symbol-name what) - what))) + (case type + (:section + (browse-url (funcall common-lisp-hyperspec-section-fun what))) + (t + (hyperspec-lookup (if (symbolp what) + (slime-cl-symbol-name what) + what))))) (t (let ((url (format "%s%s.html" slime-sbcl-manual-root (downcase what)))) (browse-url url))))))