Simplify several places. (file-relative-name): Handle directory names as well as file names. Don't get fooled by empty directory names, etc.
(widget-toggle-action): Likewise. (widget-choose): Use only digits, except for C-g. Allocate digits to disabled commands too. Don't use a keyboard menu; instead, display a buffer listing all the alternatives. Put cursor in echo area.
that are supposed to match imenu.el.
(view-exits-all-viewing-windows): Nev variable replaces view-exit-all-windows-at-exit. (view-exit-all-windows-at-exit): Variable deleted. (view-mode-enter): Doesn't set view-exit-action if argument exit-action is nil. (view-mode-exit): Only restored windows are removed from view-return-to-alist. Follow chains of old-windows. Do not call replace-buffer-in-windows. Call exit-action also when a window displays buffer. (View-exit-and-edit): Now sets read-only by binding view-old-buffer-read-only.
integers, since a replacement may invalidate integers.
need not actually search, update isearch-case-fold-search anyway. (isearch-mode-map): Define latin-iso8859-9 as self-searching.
(widget-choose): Alternative method to read one character from the keyboard. (widget-documentation-face): New variable. (widget-specify-doc): Use the variable. (widget-default-button-face-get): Try to get it from the parent. (widget-default-create): Use :tag-face for tags. (widget-edit-functions): Renamed from widget-edit-hook. (widget-field-action): Pass the widget as an arg when running hook. (character): Doc fix. (restricted-sexp): New widget type. (integer, number): Use restricted-sexp.