diff options
| author | Miles Bader | 2000-11-27 09:49:29 +0000 |
|---|---|---|
| committer | Miles Bader | 2000-11-27 09:49:29 +0000 |
| commit | ec7251660f25010ae772a337cc0fbdcd3d7b6595 (patch) | |
| tree | db3d177eb239b5642279df456a13af4fd9740b14 | |
| parent | a2e6f42617d5ec5927a096d016fe65b7ed0991f0 (diff) | |
| download | emacs-ec7251660f25010ae772a337cc0fbdcd3d7b6595.tar.gz emacs-ec7251660f25010ae772a337cc0fbdcd3d7b6595.zip | |
(widget-field-buffer, widget-field-start)
(widget-field-end): Handle widget field `pseudo-overlays'.
(widget-field-value-delete): Delete WIDGET from `widget-field-new'
if it's there instead of in `widget-field-list'.
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/wid-edit.el | 29 |
2 files changed, 23 insertions, 11 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f5683ff19e2..755b7ca1301 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,5 +1,10 @@ | |||
| 1 | 2000-11-27 Miles Bader <miles@gnu.org> | 1 | 2000-11-27 Miles Bader <miles@gnu.org> |
| 2 | 2 | ||
| 3 | * wid-edit.el (widget-field-buffer, widget-field-start) | ||
| 4 | (widget-field-end): Handle widget field `pseudo-overlays'. | ||
| 5 | (widget-field-value-delete): Delete WIDGET from `widget-field-new' | ||
| 6 | if it's there instead of in `widget-field-list'. | ||
| 7 | |||
| 3 | * help.el (help-manyarg-func-alist): Correct entry for `vconcat'. | 8 | * help.el (help-manyarg-func-alist): Correct entry for `vconcat'. |
| 4 | (help-make-xrefs): Delete extraneous newlines at the end of the | 9 | (help-make-xrefs): Delete extraneous newlines at the end of the |
| 5 | docstring. | 10 | docstring. |
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 37454280445..6b5c1fbd99f 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el | |||
| @@ -1093,12 +1093,17 @@ When not inside a field, move to the previous button or field." | |||
| 1093 | (defun widget-field-buffer (widget) | 1093 | (defun widget-field-buffer (widget) |
| 1094 | "Return the start of WIDGET's editing field." | 1094 | "Return the start of WIDGET's editing field." |
| 1095 | (let ((overlay (widget-get widget :field-overlay))) | 1095 | (let ((overlay (widget-get widget :field-overlay))) |
| 1096 | (and overlay (overlay-buffer overlay)))) | 1096 | (cond ((overlayp overlay) |
| 1097 | (overlay-buffer overlay)) | ||
| 1098 | ((consp overlay) | ||
| 1099 | (marker-buffer (car overlay)))))) | ||
| 1097 | 1100 | ||
| 1098 | (defun widget-field-start (widget) | 1101 | (defun widget-field-start (widget) |
| 1099 | "Return the start of WIDGET's editing field." | 1102 | "Return the start of WIDGET's editing field." |
| 1100 | (let ((overlay (widget-get widget :field-overlay))) | 1103 | (let ((overlay (widget-get widget :field-overlay))) |
| 1101 | (and overlay (overlay-start overlay)))) | 1104 | (if (overlayp overlay) |
| 1105 | (overlay-start overlay) | ||
| 1106 | (car overlay)))) | ||
| 1102 | 1107 | ||
| 1103 | (defun widget-field-end (widget) | 1108 | (defun widget-field-end (widget) |
| 1104 | "Return the end of WIDGET's editing field." | 1109 | "Return the end of WIDGET's editing field." |
| @@ -1106,15 +1111,16 @@ When not inside a field, move to the previous button or field." | |||
| 1106 | ;; Don't subtract one if local-map works at the end of the overlay, | 1111 | ;; Don't subtract one if local-map works at the end of the overlay, |
| 1107 | ;; or if a special `boundary' field has been added after the widget | 1112 | ;; or if a special `boundary' field has been added after the widget |
| 1108 | ;; field. | 1113 | ;; field. |
| 1109 | (and overlay | 1114 | (if (overlayp overlay) |
| 1110 | (if (and (not (eq (get-char-property (overlay-end overlay) | 1115 | (if (and (not (eq (get-char-property (overlay-end overlay) |
| 1111 | 'field | 1116 | 'field |
| 1112 | (widget-field-buffer widget)) | 1117 | (widget-field-buffer widget)) |
| 1113 | 'boundary)) | 1118 | 'boundary)) |
| 1114 | (or widget-field-add-space | 1119 | (or widget-field-add-space |
| 1115 | (null (widget-get widget :size)))) | 1120 | (null (widget-get widget :size)))) |
| 1116 | (1- (overlay-end overlay)) | 1121 | (1- (overlay-end overlay)) |
| 1117 | (overlay-end overlay))))) | 1122 | (overlay-end overlay)) |
| 1123 | (cdr overlay)))) | ||
| 1118 | 1124 | ||
| 1119 | (defun widget-field-find (pos) | 1125 | (defun widget-field-find (pos) |
| 1120 | "Return the field at POS. | 1126 | "Return the field at POS. |
| @@ -1745,6 +1751,7 @@ the earlier input." | |||
| 1745 | (defun widget-field-value-delete (widget) | 1751 | (defun widget-field-value-delete (widget) |
| 1746 | "Remove the widget from the list of active editing fields." | 1752 | "Remove the widget from the list of active editing fields." |
| 1747 | (setq widget-field-list (delq widget widget-field-list)) | 1753 | (setq widget-field-list (delq widget widget-field-list)) |
| 1754 | (setq widget-field-new (delq widget widget-field-new)) | ||
| 1748 | ;; These are nil if the :format string doesn't contain `%v'. | 1755 | ;; These are nil if the :format string doesn't contain `%v'. |
| 1749 | (let ((overlay (widget-get widget :field-overlay))) | 1756 | (let ((overlay (widget-get widget :field-overlay))) |
| 1750 | (when (overlayp overlay) | 1757 | (when (overlayp overlay) |