XEmacs 21.5 (beta24) "dandelion" [Lucid] (i686-pc-linux, Mule) of Thu Dec 29
2005 on vilya
Fixes a bug in completion buffers that prevented me from using the keyboard
to move between completions. Almost everything ended up putting point at the
end of the last completion (and at point-max) It seems that something rather
fundamental has changed. Completion mode is derived from list-mode.
list-mode uses properties to track/locate list items (it seems, I don't fully
understand the code.) The next and previous functions worked by moving point
until the properties changed. The properties put on the items were not text
properties but the functions used to move over properties were ones that only
worked with text properties. I changed the functions called to ones that
work with non-text properties.
As a point of information for me: this is dumped lisp code for a beta
version. Should this be posted here or to xemacs-beta?
regards,
--
/ Default, n.:
davep (|) The hardware's, of course.
/
$
--- list-mode.el.ORIG 2005-12-29 17:02:58.000000000 -0500
+++ list-mode.el 2005-12-29 17:06:04.000000000 -0500
@@ -174,8 +174,8 @@
(if extent (goto-char (extent-end-position extent)))
;; Move to start of next one.
(or (extent-at (point) (current-buffer) 'list-mode-item)
- (goto-char (next-single-property-change (point) 'list-mode-item
- nil end))))
+ (goto-char (next-single-char-property-change (point) 'list-mode-item
+ nil end))))
(setq n (1- n)))
(while (and (< n 0) (not (bobp)))
(let ((extent (extent-at (point) (current-buffer) 'list-mode-item))
@@ -186,7 +186,7 @@
(if (setq extent (extent-at (point) (current-buffer) 'list-mode-item
nil 'before))
(goto-char (extent-start-position extent))
- (goto-char (previous-single-property-change
+ (goto-char (previous-single-char-property-change
(point) 'list-mode-item nil end))
(if (setq extent (extent-at (point) (current-buffer) 'list-mode-item
nil 'before))
@@ -648,7 +648,7 @@
(if (not (get-buffer-window "*Completions*"))
nil
(select-window (get-buffer-window "*Completions*"))
- (goto-char (next-single-property-change (point-min) 'list-mode-item nil
- (point-max)))))
+ (goto-char (next-single-char-property-change
+ (point-min) 'list-mode-item nil (point-max)))))
;;; list-mode.el ends here
2005-12-29 David A. Panariti <davep.xemacs(a)meduseld.net>
* list-mode.el (next-list-mode-item):
Changed calls to {next|previous}-single-property-change to
{next|previous}-single-char-property-change. The previous and next
list item commands were not working: they always sent you to the
end of the buffer since the properties on the list items were not
text properties, and {next|previous}-single-property-change only
look for changes in text properties.