unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* iswitchb
@ 2008-03-19 21:44 Richard Stallman
  2008-03-19 22:31 ` iswitchb paul r
  0 siblings, 1 reply; 22+ messages in thread
From: Richard Stallman @ 2008-03-19 21:44 UTC (permalink / raw)
  To: emacs-devel

After trying iswitchb for several days, I concluded it was not very
helpful, and was occasionally a pain in the neck.

It is not very helpful for me because I know what buffer I want to go
to and I start typing the beginning of it without looking at anything.
The only way iswitchb could help me is if I were to look at its
display to try to find a shorter string that would work.  But that
would slow me down.

iswitchb was a pain in the neck when I wanted to go to buffer inout
and it kept taking me to 4inout and 5inout instead.  I did not at first
even see what was happening.  When I did see, I still didn't know
a way to prevent it.  I suppose there is some iswitchb feature I
could use, but rather than learn it, I turned off iswitchb.

I don't think this feature should be enabled by default.





^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2008-03-19 21:44 iswitchb Richard Stallman
@ 2008-03-19 22:31 ` paul r
  2008-03-20  2:51   ` iswitchb Don Armstrong
  0 siblings, 1 reply; 22+ messages in thread
From: paul r @ 2008-03-19 22:31 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

2008/3/19, Richard Stallman <rms@gnu.org>:
> After trying iswitchb for several days

Thanks for that.

>  It is not very helpful for me because I know what buffer I want to go
>  to and I start typing the beginning of it without looking at anything.
>  The only way iswitchb could help me is if I were to look at its
>  display to try to find a shorter string that would work.  But that
>  would slow me down.

In some cases, I think it can help, especially for buffers you did not
open yourself but were opened automatically by emacs or by some mode.

>  iswitchb was a pain in the neck when I wanted to go to buffer inout
>  and it kept taking me to 4inout and 5inout instead.  I did not at first
>  even see what was happening.  When I did see, I still didn't know
>  a way to prevent it.  I suppose there is some iswitchb feature I
>  could use, but rather than learn it, I turned off iswitchb.

I warned about this eventuality when you asked how does iswitchb
behave, last week.
IIRC, in this thread, some people agreed that :
  - what is really helpful in iswitchb in the possibility to enter any
substring of the buffer name to find it, but this could be implemented
into current default switch-to-buffer.
  - occasionaly, real-time display of matching buffer can help, but if
you think it clutters, that could be disabled by default. Or at least
it could be let to the user to disable it as an option.
  - C-s and C-r to cycle through matches are not intuitive enought,
some better idea about how to disambiguate buffer names should be
proposed.




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2008-03-19 22:31 ` iswitchb paul r
@ 2008-03-20  2:51   ` Don Armstrong
  2008-03-20  3:08     ` iswitchb Daniel Colascione
                       ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Don Armstrong @ 2008-03-20  2:51 UTC (permalink / raw)
  To: emacs-devel

On Wed, 19 Mar 2008, paul r wrote:
>   - what is really helpful in iswitchb in the possibility to enter
> any substring of the buffer name to find it, but this could be
> implemented into current default switch-to-buffer.

What probably should be adjusted here is the ordering when you've
typed in the exact name of a buffer; that buffer should just come to
the front of the list (with possible exceptions for foo<1> et al?).
That way iswitchb will get out of the way of people who expect the old
behavoir, but allow people to gradually learn the new behavoir.

>   - C-s and C-r to cycle through matches are not intuitive enought,
> some better idea about how to disambiguate buffer names should be
> proposed.

This is how most everything does forward and reverse searching, so
it's not that unintuitive.


Don Armstrong

-- 
"I'm a rational being--of a sort--rational enough, at least, to see the
symptoms of insanity around me. And I'm human, the same as the people
I think of as victims when my guard drops. It's at least possible I'm
even crazier than my fellows, whom I'm tempted to pity.
"There seems only one thing to do, and that's get drunk"
 -- Chad C. Mulligan (John Brunner _Stand On Zanzibar_ p390)

http://www.donarmstrong.com              http://rzlab.ucr.edu




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2008-03-20  2:51   ` iswitchb Don Armstrong
@ 2008-03-20  3:08     ` Daniel Colascione
  2008-03-20  8:43     ` iswitchb paul r
  2008-03-20 18:37     ` iswitchb Richard Stallman
  2 siblings, 0 replies; 22+ messages in thread
From: Daniel Colascione @ 2008-03-20  3:08 UTC (permalink / raw)
  To: emacs-devel

On Wednesday 19 March 2008 10:51:28 pm Don Armstrong wrote:
> >   - C-s and C-r to cycle through matches are not intuitive enought,
> > some better idea about how to disambiguate buffer names should be
> > proposed.
>
> This is how most everything does forward and reverse searching, so
> it's not that unintuitive.

What about this?

(define-key iswitchb-mode-map [(left)] #'iswitchb-prev-match)
(define-key iswitchb-mode-map [(right)] #'iswitchb-next-match)

I think of buffer switching as a funny kind of isearch.




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2008-03-20  2:51   ` iswitchb Don Armstrong
  2008-03-20  3:08     ` iswitchb Daniel Colascione
@ 2008-03-20  8:43     ` paul r
  2008-03-20 14:22       ` iswitchb Stefan Monnier
  2008-03-20 18:37     ` iswitchb Richard Stallman
  2 siblings, 1 reply; 22+ messages in thread
From: paul r @ 2008-03-20  8:43 UTC (permalink / raw)
  To: emacs-devel

> What probably should be adjusted here is the ordering when you've
>  typed in the exact name of a buffer; that buffer should just come to
>  the front of the list (with possible exceptions for foo<1> et al?).
>  That way iswitchb will get out of the way of people who expect the old
>  behavoir, but allow people to gradually learn the new behavoir.

Yes, that what I thought later, reading again RMS case. In any case,
*exact match* should alway take you to this buffer, with the exception
of when you already are in this buffer.
More generaly, I agree iswitchb should behave like switch-to-buffer
for features they share.




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2008-03-20  8:43     ` iswitchb paul r
@ 2008-03-20 14:22       ` Stefan Monnier
  2008-03-20 14:44         ` iswitchb paul r
  0 siblings, 1 reply; 22+ messages in thread
From: Stefan Monnier @ 2008-03-20 14:22 UTC (permalink / raw)
  To: paul r; +Cc: emacs-devel

>> What probably should be adjusted here is the ordering when you've
>> typed in the exact name of a buffer; that buffer should just come to
>> the front of the list (with possible exceptions for foo<1> et al?).
>> That way iswitchb will get out of the way of people who expect the old
>> behavoir, but allow people to gradually learn the new behavoir.

> Yes, that what I thought later, reading again RMS case. In any case,
> *exact match* should alway take you to this buffer, with the exception
> of when you already are in this buffer.
> More generaly, I agree iswitchb should behave like switch-to-buffer
> for features they share.

The completion package that I use (and that I ultimately would like to
install as the default, tho it needs a lot of work or a rewrite) does
the following:
1 - first try completion the old way.
2 - if that fails, try completion the partial-completion-mode way.
3 - if that fails, try it with a substring search.

So compared to the current default completion, the behavior should be
different only if the default completion finds no completion.

Combined with icomplete-mode, it is reminiscent of ido and iswitchb.


        Stefan




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2008-03-20 14:22       ` iswitchb Stefan Monnier
@ 2008-03-20 14:44         ` paul r
  0 siblings, 0 replies; 22+ messages in thread
From: paul r @ 2008-03-20 14:44 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

2008/3/20, Stefan Monnier <monnier@iro.umontreal.ca>:

> The completion package that I use (and that I ultimately would like to
>  install as the default, tho it needs a lot of work or a rewrite) does
>  the following:
>  1 - first try completion the old way.
>  2 - if that fails, try completion the partial-completion-mode way.
>  3 - if that fails, try it with a substring search.
>
>  So compared to the current default completion, the behavior should be
>  different only if the default completion finds no completion.
>
>  Combined with icomplete-mode, it is reminiscent of ido and iswitchb.

Sounds good. Is there somewhere we can find this package ?




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2008-03-20  2:51   ` iswitchb Don Armstrong
  2008-03-20  3:08     ` iswitchb Daniel Colascione
  2008-03-20  8:43     ` iswitchb paul r
@ 2008-03-20 18:37     ` Richard Stallman
  2008-03-20 20:17       ` iswitchb Don Armstrong
  2 siblings, 1 reply; 22+ messages in thread
From: Richard Stallman @ 2008-03-20 18:37 UTC (permalink / raw)
  To: Don Armstrong; +Cc: emacs-devel

I am not trying to propose any change in iswitchb.
If the people who use it like it, why change it?
However, I object to making it the default.




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2008-03-20 18:37     ` iswitchb Richard Stallman
@ 2008-03-20 20:17       ` Don Armstrong
  2008-03-22  3:24         ` iswitchb Richard Stallman
  0 siblings, 1 reply; 22+ messages in thread
From: Don Armstrong @ 2008-03-20 20:17 UTC (permalink / raw)
  To: emacs-devel

On Thu, 20 Mar 2008, Richard Stallman wrote:
> I am not trying to propose any change in iswitchb.

Sure, but I did.

> If the people who use it like it, why change it?
> However, I object to making it the default.

The suggestion was a change that would overcome (from what I saw) the
major problem that you and others like you who are used to the current
behavoir had, hopefully allowing it to become the default.

I know I personally wish I had known about iswitchb far earlier than I
learned about it, and I suspect that I'm not the only one.

Don Armstrong

-- 
Do not handicap your children by making their lives easy.
 -- Robert Heinlein _Time Enough For Love_ p251

http://www.donarmstrong.com              http://rzlab.ucr.edu




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2008-03-20 20:17       ` iswitchb Don Armstrong
@ 2008-03-22  3:24         ` Richard Stallman
  0 siblings, 0 replies; 22+ messages in thread
From: Richard Stallman @ 2008-03-22  3:24 UTC (permalink / raw)
  To: Don Armstrong; +Cc: emacs-devel

    The suggestion was a change that would overcome (from what I saw) the
    major problem that you and others like you who are used to the current
    behavoir had, hopefully allowing it to become the default.

Thanks but no thanks.




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Emacs-diffs] master f1c48b0: Remove many items obsolete since Emacs 22.1
       [not found] ` <20180311031649.A9FBF20F52@vcs0.savannah.gnu.org>
@ 2018-03-11  3:21   ` Daniel Colascione
  2018-03-11  3:40     ` iswitchb (was: [Emacs-diffs] master f1c48b0: Remove many items obsolete since Emacs 22.1) Stefan Monnier
  0 siblings, 1 reply; 22+ messages in thread
From: Daniel Colascione @ 2018-03-11  3:21 UTC (permalink / raw)
  To: emacs-devel, Glenn Morris

I don't think iswitchb is obsolete.

On 03/10/2018 07:16 PM, Glenn Morris wrote:
> branch: master
> commit f1c48b0ec521744826ed43ae27eed0e152c472bf
> Author: Glenn Morris <rgm@gnu.org>
> Commit: Glenn Morris <rgm@gnu.org>
> 
>      Remove many items obsolete since Emacs 22.1
>      
>      Emacs 22.1 was five major releases and over decade ago.
>      In bug reporting statistics, it's been absent for around 5 years.
>      Ref: https://debbugs.gnu.org/stats/emacs.html
>      This list can be reviewed before to the next release, but for
>      now hopefully this motivates any needed external updates.
>      * lisp/arc-mode.el (archive-mouse-extract):
>      * lisp/bookmark.el (bookmark-exit-hooks):
>      * lisp/comint.el (comint-use-prompt-regexp-instead-of-fields):
>      * lisp/cus-edit.el (custom-face-save-command):
>      * lisp/descr-text.el (describe-char-after):
>      * lisp/desktop.el (desktop-enable, desktop-basefilename)
>      (desktop-buffer-modes-to-save, desktop-buffer-misc-functions)
>      (desktop-buffer-handlers, desktop-load-default):
>      * lisp/dired-x.el (dired-omit-files-p):
>      * lisp/frame.el (new-frame, set-default-font, delete-frame-hook)
>      (blink-cursor):
>      * lisp/generic-x.el (generic-define-mswindows-modes)
>      (generic-define-unix-modes):
>      * lisp/help.el (describe-project, view-todo):
>      * lisp/hilit-chg.el (highlight-changes-colours):
>      * lisp/ibuffer.el (ibuffer-elide-long-columns, ibuffer-hooks)
>      (ibuffer-mode-hooks):
>      * lisp/imenu.el (imenu-always-use-completion-buffer-p):
>      * lisp/isearch.el (isearch-lazy-highlight-cleanup)
>      (isearch-lazy-highlight-initial-delay)
>      (isearch-lazy-highlight-interval)
>      (isearch-lazy-highlight-max-at-a-time)
>      (isearch-lazy-highlight-cleanup):
>      * lisp/mwheel.el (mouse-wheel-down-button)
>      (mouse-wheel-up-button, mouse-wheel-click-button):
>      * lisp/novice.el (disabled-command-hook):
>      * lisp/recentf.el (recentf-menu-append-commands-p):
>      * lisp/savehist.el (savehist-load):
>      * lisp/speedbar.el (speedbar-ignored-path-expressions)
>      (speedbar-ignored-path-regexp, speedbar-add-ignored-path-regexp)
>      (speedbar-line-path, speedbar-buffers-line-path, speedbar-path-line):
>      * lisp/subr.el (assoc-ignore-case, assoc-ignore-representation)
>      (x-lost-selection-hooks, x-sent-selection-hooks)
>      (process-kill-without-query):
>      * lisp/calendar/icalendar.el (icalendar-convert-diary-to-ical)
>      (icalendar-extract-ical-from-buffer):
>      * lisp/emacs-lisp/autoload.el (update-autoloads-from-directories):
>      * lisp/emacs-lisp/derived.el (derived-mode-class):
>      * lisp/emacs-lisp/generic.el (generic-font-lock-defaults):
>      * lisp/emacs-lisp/timer.el (timer-set-time-with-usecs):
>      * lisp/gnus/spam.el (spam-list-of-processors):
>      * lisp/international/latin1-disp.el (latin1-char-displayable-p):
>      * lisp/mail/rmail.el (rmail-pop-password, rmail-pop-password-required):
>      * lisp/net/goto-addr.el (goto-address-at-mouse):
>      * lisp/net/net-utils.el (ipconfig-program, ipconfig-program-options):
>      * lisp/obsolete/iswitchb.el (iswitchb-use-fonts):
>      * lisp/play/dunnet.el (dungeon-mode-map):
>      * lisp/progmodes/compile.el (compilation-finish-function)
>      * lisp/progmodes/cperl-mode.el (cperl-vc-header-alist)
>      * lisp/progmodes/gud.el (tooltip-gud-modes, tooltip-gud-display)
>      (tooltip-gud-toggle-dereference):
>      * lisp/progmodes/pascal.el (pascal-outline):
>      * lisp/progmodes/perl-mode.el (electric-perl-terminator):
>      * lisp/textmodes/nroff-mode.el (count-text-lines)
>      (forward-text-line, backward-text-line, electric-nroff-newline)
>      (electric-nroff-mode):
>      * lisp/vc/log-edit.el (vc-comment-ring, vc-comment-ring-index)
>      (vc-previous-comment, vc-next-comment)
>      (vc-comment-search-reverse, vc-comment-search-forward)
>      (vc-comment-to-change-log):
>      * lisp/vc/pcvs-info.el (cvs-display-full-path)
>      (cvs-fileinfo->full-path):
>      * lisp/vc/vc.el (vc-diff-switches-list):
>      Remove items, obsolete since Emacs 22.1.
>      * lisp/ibuffer.el (ibuffer-cached-elide-long-columns):
>      Remove internal variable.
>      (ibuffer-compile-make-eliding-form, ibuffer-check-formats):
>      (ibuffer-mode): Remove support for ibuffer-elide-long-columns.
>      * lisp/cedet/semantic/sb.el (semantic-sb-token-jump):
>      Remove support for speedbar-line-path.
>      * lisp/emacs-lisp/unsafep.el (assoc-ignore-case):
>      Stop marking as side-effect-free.
>      * lisp/gnus/spam.el (spam-group-processor-p):
>      Remove support for spam-list-of-processors.
>      * lisp/progmodes/compile.el (define-compilation-mode)
>      (compilation-handle-exit):
>      Remove support for compilation-finish-function.
>      * lisp/progmodes/cperl-mode.el (cperl-mode):
>      Remove support for cperl-vc-header-alist.
>      ; * lisp/files.el: Comments.
>      ; * etc/NEWS: List removed items.
> ---
>   etc/NEWS                          | 35 +++++++++++++++
>   lisp/arc-mode.el                  |  2 -
>   lisp/bookmark.el                  |  2 -
>   lisp/calendar/icalendar.el        | 10 +----
>   lisp/cedet/semantic/sb.el         |  6 +--
>   lisp/comint.el                    |  3 --
>   lisp/cus-edit.el                  |  4 --
>   lisp/descr-text.el                |  2 -
>   lisp/desktop.el                   | 22 ----------
>   lisp/dired-x.el                   |  2 -
>   lisp/emacs-lisp/autoload.el       |  3 --
>   lisp/emacs-lisp/derived.el        | 13 ------
>   lisp/emacs-lisp/generic.el        |  2 -
>   lisp/emacs-lisp/timer.el          | 14 ------
>   lisp/emacs-lisp/unsafep.el        |  2 +-
>   lisp/files.el                     |  7 ++-
>   lisp/frame.el                     | 11 -----
>   lisp/generic-x.el                 | 25 ++---------
>   lisp/gnus/spam.el                 | 91 +++++++++++++--------------------------
>   lisp/help.el                      |  5 ---
>   lisp/hilit-chg.el                 |  3 --
>   lisp/ibuffer.el                   | 22 +---------
>   lisp/imenu.el                     | 12 +-----
>   lisp/international/latin1-disp.el |  4 --
>   lisp/isearch.el                   | 20 ---------
>   lisp/mail/rmail.el                |  6 ---
>   lisp/mwheel.el                    | 19 ++------
>   lisp/net/goto-addr.el             |  4 --
>   lisp/net/net-utils.el             |  5 ---
>   lisp/novice.el                    |  3 --
>   lisp/obsolete/iswitchb.el         |  2 -
>   lisp/play/dunnet.el               |  1 -
>   lisp/progmodes/compile.el         | 14 ------
>   lisp/progmodes/cperl-mode.el      | 12 +-----
>   lisp/progmodes/gud.el             |  8 ----
>   lisp/progmodes/pascal.el          |  1 -
>   lisp/progmodes/perl-mode.el       |  2 -
>   lisp/recentf.el                   |  4 --
>   lisp/savehist.el                  | 23 ----------
>   lisp/speedbar.el                  | 23 ----------
>   lisp/subr.el                      | 32 --------------
>   lisp/textmodes/nroff-mode.el      |  7 ---
>   lisp/vc/log-edit.el               | 10 -----
>   lisp/vc/pcvs-info.el              |  5 ---
>   lisp/vc/vc.el                     |  5 ---
>   45 files changed, 85 insertions(+), 423 deletions(-)
> 
> diff --git a/etc/NEWS b/etc/NEWS
> index 8d69dc6..f35a513 100644
> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -290,6 +290,41 @@ This feature uses Tramp and works only on systems which support GVFS,
>   i.e. GNU/Linux, roughly spoken.  See the chapter "(tramp) Archive file
>   names" in the Tramp manual for full documentation of these facilities.
>   
> +** Some functions and variables obsolete since 22.1 have been removed:
> +archive-mouse-extract, assoc-ignore-case, assoc-ignore-representation,
> +backward-text-line, blink-cursor, bookmark-exit-hooks,
> +comint-use-prompt-regexp-instead-of-fields, compilation-finish-function,
> +count-text-lines, cperl-vc-header-alist, custom-face-save-command,
> +cvs-display-full-path, cvs-fileinfo->full-path, delete-frame-hook,
> +derived-mode-class, describe-char-after, describe-project,
> +desktop-basefilename, desktop-buffer-handlers,
> +desktop-buffer-misc-functions, desktop-buffer-modes-to-save,
> +desktop-enable, desktop-load-default, dired-omit-files-p,
> +disabled-command-hook, dungeon-mode-map, electric-nroff-mode,
> +electric-nroff-newline, electric-perl-terminator, forward-text-line,
> +generic-define-mswindows-modes, generic-define-unix-modes,
> +generic-font-lock-defaults, goto-address-at-mouse,
> +highlight-changes-colours, ibuffer-elide-long-columns, ibuffer-hooks,
> +ibuffer-mode-hooks, icalendar-convert-diary-to-ical,
> +icalendar-extract-ical-from-buffer, imenu-always-use-completion-buffer-p,
> +ipconfig-program, ipconfig-program-options, isearch-lazy-highlight-cleanup,
> +isearch-lazy-highlight-cleanup, isearch-lazy-highlight-initial-delay,
> +isearch-lazy-highlight-interval, isearch-lazy-highlight-max-at-a-time,
> +iswitchb-use-fonts, latin1-char-displayable-p, mouse-wheel-click-button,
> +mouse-wheel-down-button, mouse-wheel-up-button, new-frame, pascal-outline,
> +process-kill-without-query, recentf-menu-append-commands-p,
> +rmail-pop-password, rmail-pop-password-required, savehist-load,
> +set-default-font, spam-list-of-processors,
> +speedbar-add-ignored-path-regexp, speedbar-buffers-line-path,
> +speedbar-buffers-line-path, speedbar-ignored-path-expressions,
> +speedbar-ignored-path-regexp, speedbar-line-path, speedbar-path-line,
> +timer-set-time-with-usecs, tooltip-gud-display, tooltip-gud-modes,
> +tooltip-gud-toggle-dereference, update-autoloads-from-directories,
> +vc-comment-ring, vc-comment-ring-index, vc-comment-search-forward,
> +vc-comment-search-reverse, vc-comment-to-change-log, vc-diff-switches-list,
> +vc-next-comment, vc-previous-comment, view-todo, x-lost-selection-hooks,
> +x-sent-selection-hooks
> +
>   \f
>   * Incompatible Lisp Changes in Emacs 27.1
>   
> diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
> index ce3ec09..4ddb29d 100644
> --- a/lisp/arc-mode.el
> +++ b/lisp/arc-mode.el
> @@ -1010,8 +1010,6 @@ using `make-temp-file', and the generated name is returned."
>         (kill-local-variable 'buffer-file-coding-system)
>         (after-insert-file-set-coding (- (point-max) (point-min))))))
>   
> -(define-obsolete-function-alias 'archive-mouse-extract 'archive-extract "22.1")
> -
>   (defun archive-extract (&optional other-window-p event)
>     "In archive mode, extract this entry of the archive into its own buffer."
>     (interactive (list nil last-input-event))
> diff --git a/lisp/bookmark.el b/lisp/bookmark.el
> index 70b63a2..a454ccb 100644
> --- a/lisp/bookmark.el
> +++ b/lisp/bookmark.el
> @@ -2251,8 +2251,6 @@ strings returned are not."
>     "Hook run at the end of loading library `bookmark.el'.")
>   
>   ;; Exit Hook, called from kill-emacs-hook
> -(define-obsolete-variable-alias 'bookmark-exit-hooks
> -  'bookmark-exit-hook "22.1")
>   (defvar bookmark-exit-hook nil
>     "Hook run when Emacs exits.")
>   
> diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
> index ca3adfa..c1a3e0a 100644
> --- a/lisp/calendar/icalendar.el
> +++ b/lisp/calendar/icalendar.el
> @@ -43,13 +43,13 @@
>   
>   ;;  0.06:  (2004-10-06)
>   ;;  - Bugfixes regarding icalendar-import-format-*.
> -;;  - Fix in icalendar-convert-diary-to-ical -- thanks to Philipp Grau.
> +;;  - Fix in icalendar-export-file -- thanks to Philipp Grau.
>   
>   ;;  0.05: (2003-06-19)
>   ;;  - New import format scheme: Replaced icalendar-import-prefix-*,
>   ;;    icalendar-import-ignored-properties, and
>   ;;    icalendar-import-separator with icalendar-import-format(-*).
> -;;  - icalendar-import-file and icalendar-convert-diary-to-ical
> +;;  - icalendar-import-file and icalendar-export-file
>   ;;    have an extra parameter which should prevent them from
>   ;;    erasing their target files (untested!).
>   ;;  - Tested with Emacs 21.3.2
> @@ -996,9 +996,6 @@ Finto iCalendar file: ")
>       (set-buffer (find-file diary-filename))
>       (icalendar-export-region (point-min) (point-max) ical-filename)))
>   
> -(define-obsolete-function-alias 'icalendar-convert-diary-to-ical
> -  'icalendar-export-file "22.1")
> -
>   (defvar icalendar--uid-count 0
>     "Auxiliary counter for creating unique ids.")
>   
> @@ -2027,9 +2024,6 @@ buffer `*icalendar-errors*'."
>         ;; return nil, i.e. import did not work
>         nil)))
>   
> -(define-obsolete-function-alias 'icalendar-extract-ical-from-buffer
> -  'icalendar-import-buffer "22.1")
> -
>   (defun icalendar--format-ical-event (event)
>     "Create a string representation of an iCalendar EVENT."
>     (if (functionp icalendar-import-format)
> diff --git a/lisp/cedet/semantic/sb.el b/lisp/cedet/semantic/sb.el
> index 739f674..443c383 100644
> --- a/lisp/cedet/semantic/sb.el
> +++ b/lisp/cedet/semantic/sb.el
> @@ -298,11 +298,7 @@ TEXT TOKEN and INDENT are the details."
>     "Jump to the location specified in token.
>   TEXT TOKEN and INDENT are the details."
>     (let ((file
> -	 (or
> -	  (cond ((fboundp 'speedbar-line-path)
> -		 (speedbar-line-directory indent))
> -		((fboundp 'speedbar-line-directory)
> -		 (speedbar-line-directory indent)))
> +	 (or (speedbar-line-directory indent)
>   	  ;; If speedbar cannot figure this out, extract the filename from
>   	  ;; the token.  True for Analysis mode.
>   	  (semantic-tag-file-name token)))
> diff --git a/lisp/comint.el b/lisp/comint.el
> index 838662a..3182cba 100644
> --- a/lisp/comint.el
> +++ b/lisp/comint.el
> @@ -429,9 +429,6 @@ See `comint-send-input'."
>     :type 'boolean
>     :group 'comint)
>   
> -(define-obsolete-variable-alias 'comint-use-prompt-regexp-instead-of-fields
> -  'comint-use-prompt-regexp "22.1")
> -
>   ;; Note: If it is decided to purge comint-prompt-regexp from the source
>   ;; entirely, searching for uses of this variable will help to identify
>   ;; places that need attention.
> diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
> index 816c7f7..a12897e 100644
> --- a/lisp/cus-edit.el
> +++ b/lisp/cus-edit.el
> @@ -3790,10 +3790,6 @@ Optional EVENT is the location for the menu."
>     (custom-save-all)
>     (custom-face-state-set-and-redraw widget))
>   
> -;; For backward compatibility.
> -(define-obsolete-function-alias 'custom-face-save-command 'custom-face-save
> -  "22.1")
> -
>   (defun custom-face-reset-saved (widget)
>     "Restore WIDGET to the face's default attributes.
>   If there is a saved face, restore it; otherwise reset to the
> diff --git a/lisp/descr-text.el b/lisp/descr-text.el
> index ddd7d80..d8f8188 100644
> --- a/lisp/descr-text.el
> +++ b/lisp/descr-text.el
> @@ -835,8 +835,6 @@ relevant to POS."
>             (if text-props-desc (insert text-props-desc))
>             (setq buffer-read-only t))))))
>   
> -(define-obsolete-function-alias 'describe-char-after 'describe-char "22.1")
> -
>   ;;; Describe-Char-ElDoc
>   
>   (defun describe-char-eldoc--truncate (name width)
> diff --git a/lisp/desktop.el b/lisp/desktop.el
> index 8bd4465..0a1a4d5 100644
> --- a/lisp/desktop.el
> +++ b/lisp/desktop.el
> @@ -158,8 +158,6 @@ Used at desktop read to provide backward compatibility.")
>     "Save status of Emacs when you exit."
>     :group 'frames)
>   
> -;; Maintained for backward compatibility
> -(define-obsolete-variable-alias 'desktop-enable 'desktop-save-mode "22.1")
>   ;;;###autoload
>   (define-minor-mode desktop-save-mode
>     "Toggle desktop saving (Desktop Save mode).
> @@ -248,9 +246,6 @@ the normal hook `desktop-not-loaded-hook' is run."
>     :group 'desktop
>     :version "22.2")
>   
> -(define-obsolete-variable-alias 'desktop-basefilename
> -                                'desktop-base-file-name "22.1")
> -
>   (defcustom desktop-base-file-name
>     (convert-standard-filename ".emacs.desktop")
>     "Name of file for Emacs desktop, excluding the directory part."
> @@ -494,10 +489,6 @@ When file names are returned, they should be formatted using the call
>   Later, when `desktop-read' evaluates the desktop file, auxiliary information
>   is passed as the argument DESKTOP-BUFFER-MISC to functions in
>   `desktop-buffer-mode-handlers'.")
> -(make-obsolete-variable 'desktop-buffer-modes-to-save
> -                        'desktop-save-buffer "22.1")
> -(make-obsolete-variable 'desktop-buffer-misc-functions
> -                        'desktop-save-buffer "22.1")
>   
>   ;;;###autoload
>   (defvar desktop-buffer-mode-handlers nil
> @@ -541,8 +532,6 @@ can guess how to load the mode's definition.")
>   
>   ;;;###autoload
>   (put 'desktop-buffer-mode-handlers 'risky-local-variable t)
> -(make-obsolete-variable 'desktop-buffer-handlers
> -                        'desktop-buffer-mode-handlers "22.1")
>   
>   (defcustom desktop-minor-mode-table
>     '((auto-fill-function auto-fill-mode)
> @@ -1310,17 +1299,6 @@ Using it may cause conflicts.  Use it anyway? " owner)))))
>         nil)))
>   
>   ;; ----------------------------------------------------------------------------
> -;; Maintained for backward compatibility
> -;;;###autoload
> -(defun desktop-load-default ()
> -  "Load the `default' start-up library manually.
> -Also inhibit further loading of it."
> -  (declare (obsolete desktop-save-mode "22.1"))
> -  (unless inhibit-default-init	        ; safety check
> -    (load "default" t t)
> -    (setq inhibit-default-init t)))
> -
> -;; ----------------------------------------------------------------------------
>   ;;;###autoload
>   (defun desktop-change-dir (dirname)
>     "Change to desktop saved in DIRNAME.
> diff --git a/lisp/dired-x.el b/lisp/dired-x.el
> index fa36083..a1c2f44 100644
> --- a/lisp/dired-x.el
> +++ b/lisp/dired-x.el
> @@ -137,8 +137,6 @@ folding to be used on case-insensitive filesystems only."
>         (file-name-case-insensitive-p dir)
>       dired-omit-case-fold))
>   
> -;; For backward compatibility
> -(define-obsolete-variable-alias 'dired-omit-files-p 'dired-omit-mode "22.1")
>   (define-minor-mode dired-omit-mode
>     "Toggle omission of uninteresting files in Dired (Dired-Omit mode).
>   With a prefix argument ARG, enable Dired-Omit mode if ARG is
> diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
> index 7b4a7d0..5274ec8 100644
> --- a/lisp/emacs-lisp/autoload.el
> +++ b/lisp/emacs-lisp/autoload.el
> @@ -1145,9 +1145,6 @@ write its autoloads into the specified file instead."
>         ;; file-local autoload-generated-file settings.
>         (autoload-save-buffers))))
>   
> -(define-obsolete-function-alias 'update-autoloads-from-directories
> -    'update-directory-autoloads "22.1")
> -
>   ;;;###autoload
>   (defun batch-update-autoloads ()
>     "Update loaddefs.el autoloads in batch mode.
> diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el
> index 547f5cd..6b47ffe 100644
> --- a/lisp/emacs-lisp/derived.el
> +++ b/lisp/emacs-lisp/derived.el
> @@ -286,19 +286,6 @@ No problems result if this variable is not bound.
>   	 ;; Run the hooks (and delayed-after-hook-functions), if any.
>   	 (run-mode-hooks ',hook)))))
>   
> -;; PUBLIC: find the ultimate class of a derived mode.
> -
> -(defun derived-mode-class (mode)
> -  "Find the class of a major MODE.
> -A mode's class is the first ancestor which is NOT a derived mode.
> -Use the `derived-mode-parent' property of the symbol to trace backwards.
> -Since major-modes might all derive from `fundamental-mode', this function
> -is not very useful."
> -  (declare (obsolete derived-mode-p "22.1"))
> -  (while (get mode 'derived-mode-parent)
> -    (setq mode (get mode 'derived-mode-parent)))
> -  mode)
> -
>   \f
>   ;;; PRIVATE
>   
> diff --git a/lisp/emacs-lisp/generic.el b/lisp/emacs-lisp/generic.el
> index e2009bf..194fa1e 100644
> --- a/lisp/emacs-lisp/generic.el
> +++ b/lisp/emacs-lisp/generic.el
> @@ -96,8 +96,6 @@
>   ;; Internal Variables
>   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>   
> -(define-obsolete-variable-alias 'generic-font-lock-defaults
> -  'generic-font-lock-keywords "22.1")
>   (defvar generic-font-lock-keywords nil
>     "Keywords for `font-lock-defaults' in a generic mode.")
>   (make-variable-buffer-local 'generic-font-lock-keywords)
> diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el
> index b1e12b1..795554f 100644
> --- a/lisp/emacs-lisp/timer.el
> +++ b/lisp/emacs-lisp/timer.el
> @@ -141,20 +141,6 @@ omitted, they are treated as zero."
>     (setf (timer--time timer)
>           (timer-relative-time (timer--time timer) secs usecs psecs)))
>   
> -(defun timer-set-time-with-usecs (timer time usecs &optional delta)
> -  "Set the trigger time of TIMER to TIME plus USECS.
> -TIME must be in the internal format returned by, e.g., `current-time'.
> -The microsecond count from TIME is ignored, and USECS is used instead.
> -If optional fourth argument DELTA is a positive number, make the timer
> -fire repeatedly that many seconds apart."
> -  (declare (obsolete "use `timer-set-time' and `timer-inc-time' instead."
> -		     "22.1"))
> -  (setf (timer--time timer) time)
> -  (setf (timer--usecs timer) usecs)
> -  (setf (timer--psecs timer) 0)
> -  (setf (timer--repeat-delay timer) (and (numberp delta) (> delta 0) delta))
> -  timer)
> -
>   (defun timer-set-function (timer function &optional args)
>     "Make TIMER call FUNCTION with optional ARGS when triggering."
>     (timer--check timer)
> diff --git a/lisp/emacs-lisp/unsafep.el b/lisp/emacs-lisp/unsafep.el
> index f6b569b..03f22eb 100644
> --- a/lisp/emacs-lisp/unsafep.el
> +++ b/lisp/emacs-lisp/unsafep.el
> @@ -93,7 +93,7 @@ in the parse.")
>   (put 'unsafep-vars 'risky-local-variable t)
>   
>   ;;Side-effect-free functions from subr.el
> -(dolist (x '(assoc-default assoc-ignore-case butlast last match-string
> +(dolist (x '(assoc-default butlast last match-string
>   	     match-string-no-properties member-ignore-case remove remq))
>     (put x 'side-effect-free t))
>   
> diff --git a/lisp/files.el b/lisp/files.el
> index 4b67b02..b887a34 100644
> --- a/lisp/files.el
> +++ b/lisp/files.el
> @@ -473,7 +473,7 @@ location of point in the current buffer."
>     :group 'find-file)
>   
>   ;;;It is not useful to make this a local variable.
> -;;;(put 'find-file-not-found-hooks 'permanent-local t)
> +;;;(put 'find-file-not-found-functions 'permanent-local t)
>   (define-obsolete-variable-alias 'find-file-not-found-hooks
>       'find-file-not-found-functions "22.1")
>   (defvar find-file-not-found-functions nil
> @@ -483,7 +483,8 @@ Variable `buffer-file-name' is already set up.
>   The functions are called in the order given until one of them returns non-nil.")
>   
>   ;;;It is not useful to make this a local variable.
> -;;;(put 'find-file-hooks 'permanent-local t)
> +;;;(put 'find-file-hook 'permanent-local t)
> +;; I found some external files still using the obsolete form in 2018.
>   (define-obsolete-variable-alias 'find-file-hooks 'find-file-hook "22.1")
>   (defcustom find-file-hook nil
>     "List of functions to be called after a buffer is loaded from a file.
> @@ -494,6 +495,7 @@ functions are called."
>     :options '(auto-insert)
>     :version "22.1")
>   
> +;; I found some external files still using the obsolete form in 2018.
>   (define-obsolete-variable-alias 'write-file-hooks 'write-file-functions "22.1")
>   (defvar write-file-functions nil
>     "List of functions to be called before saving a buffer to a file.
> @@ -513,6 +515,7 @@ node `(elisp)Saving Buffers'.)  To perform various checks or
>   updates before the buffer is saved, use `before-save-hook'.")
>   (put 'write-file-functions 'permanent-local t)
>   
> +;; I found some files still using the obsolete form in 2018.
>   (defvar local-write-file-hooks nil)
>   (make-variable-buffer-local 'local-write-file-hooks)
>   (put 'local-write-file-hooks 'permanent-local t)
> diff --git a/lisp/frame.el b/lisp/frame.el
> index 0cf502d..fbf2f6e 100644
> --- a/lisp/frame.el
> +++ b/lisp/frame.el
> @@ -614,9 +614,6 @@ frame.")
>   (defvar after-setting-font-hook nil
>     "Functions to run after a frame's font has been changed.")
>   
> -;; Alias, kept temporarily.
> -(define-obsolete-function-alias 'new-frame 'make-frame "22.1")
> -
>   (defvar frame-inherited-parameters '()
>     "Parameters `make-frame' copies from the selected to the new frame.")
>   
> @@ -1147,8 +1144,6 @@ FRAME defaults to the selected frame."
>   (declare-function x-list-fonts "xfaces.c"
>                     (pattern &optional face frame maximum width))
>   
> -(define-obsolete-function-alias 'set-default-font 'set-frame-font "23.1")
> -
>   (defun set-frame-font (font &optional keep-size frames)
>     "Set the default font to FONT.
>   When called interactively, prompt for the name of a font, and use
> @@ -2113,10 +2108,6 @@ a live frame and defaults to the selected one."
>           (delete-frame this))
>         (setq this next))))
>   
> -;; miscellaneous obsolescence declarations
> -(define-obsolete-variable-alias 'delete-frame-hook
> -    'delete-frame-functions "22.1")
> -
>   \f
>   ;;; Window dividers.
>   (defgroup window-divider nil
> @@ -2352,8 +2343,6 @@ This is done when a frame gets focus.  Blink timers may be stopped by
>       (remove-hook 'post-command-hook 'blink-cursor-check)
>       (blink-cursor--start-idle-timer)))
>   
> -(define-obsolete-variable-alias 'blink-cursor 'blink-cursor-mode "22.1")
> -
>   (define-minor-mode blink-cursor-mode
>     "Toggle cursor blinking (Blink Cursor mode).
>   With a prefix argument ARG, enable Blink Cursor mode if ARG is
> diff --git a/lisp/generic-x.el b/lisp/generic-x.el
> index 3e3ddc5..d8a7fe3 100644
> --- a/lisp/generic-x.el
> +++ b/lisp/generic-x.el
> @@ -241,30 +241,11 @@ This hook will be installed if the variable
>       spice-generic-mode)
>     "List of generic modes that are not defined by default.")
>   
> -(defcustom generic-define-mswindows-modes
> -  (memq system-type '(windows-nt ms-dos))
> -  "Non-nil means the modes in `generic-mswindows-modes' will be defined.
> -This is a list of MS-Windows specific generic modes.  This variable
> -only affects the default value of `generic-extras-enable-list'."
> -  :group 'generic-x
> -  :type 'boolean
> -  :version "22.1")
> -(make-obsolete-variable 'generic-define-mswindows-modes 'generic-extras-enable-list "22.1")
> -
> -(defcustom generic-define-unix-modes
> -  (not (memq system-type '(windows-nt ms-dos)))
> -  "Non-nil means the modes in `generic-unix-modes' will be defined.
> -This is a list of Unix specific generic modes.  This variable only
> -affects the default value of `generic-extras-enable-list'."
> -  :group 'generic-x
> -  :type 'boolean
> -  :version "22.1")
> -(make-obsolete-variable 'generic-define-unix-modes 'generic-extras-enable-list "22.1")
> -
>   (defcustom generic-extras-enable-list
>     (append generic-default-modes
> -	  (if generic-define-mswindows-modes generic-mswindows-modes)
> -	  (if generic-define-unix-modes generic-unix-modes)
> +          (if (memq system-type '(windows-nt ms-dos))
> +              generic-mswindows-modes
> +            generic-unix-modes)
>   	  nil)
>     "List of generic modes to define.
>   Each entry in the list should be a symbol.  If you set this variable
> diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el
> index 71a69cb..97e6340 100644
> --- a/lisp/gnus/spam.el
> +++ b/lisp/gnus/spam.el
> @@ -1244,73 +1244,40 @@ Will not return a nil score."
>           (setq found backend)))
>       found))
>   
> -(defvar spam-list-of-processors
> -  ;; note the nil processors are not defined in gnus.el
> -  '((gnus-group-spam-exit-processor-bogofilter   spam spam-use-bogofilter)
> -    (gnus-group-spam-exit-processor-bsfilter     spam spam-use-bsfilter)
> -    (gnus-group-spam-exit-processor-blacklist    spam spam-use-blacklist)
> -    (gnus-group-spam-exit-processor-ifile        spam spam-use-ifile)
> -    (gnus-group-spam-exit-processor-stat         spam spam-use-stat)
> -    (gnus-group-spam-exit-processor-spamoracle   spam spam-use-spamoracle)
> -    (gnus-group-spam-exit-processor-spamassassin spam spam-use-spamassassin)
> -    (gnus-group-spam-exit-processor-report-gmane spam spam-use-gmane) ;; Buggy?
> -    (gnus-group-ham-exit-processor-ifile         ham spam-use-ifile)
> -    (gnus-group-ham-exit-processor-bogofilter    ham spam-use-bogofilter)
> -    (gnus-group-ham-exit-processor-bsfilter      ham spam-use-bsfilter)
> -    (gnus-group-ham-exit-processor-stat          ham spam-use-stat)
> -    (gnus-group-ham-exit-processor-whitelist     ham spam-use-whitelist)
> -    (gnus-group-ham-exit-processor-BBDB          ham spam-use-BBDB)
> -    (gnus-group-ham-exit-processor-copy          ham spam-use-ham-copy)
> -    (gnus-group-ham-exit-processor-spamassassin  ham spam-use-spamassassin)
> -    (gnus-group-ham-exit-processor-spamoracle    ham spam-use-spamoracle))
> -  "The OBSOLETE `spam-list-of-processors' list.
> -This list contains pairs associating the obsolete ham/spam exit
> -processor variables with a classification and a spam-use-*
> -variable.  When the processor variable is nil, just the
> -classification and spam-use-* check variable are used.  This is
> -superseded by the new spam backend code, so it's only consulted
> -for backwards compatibility.")
> -(make-obsolete-variable 'spam-list-of-processors nil "22.1")
> -
>   (defun spam-group-processor-p (group backend &optional classification)
>     "Checks if GROUP has a BACKEND with CLASSIFICATION registered.
> -Also accepts the obsolete processors, which can be found in
> -gnus.el and in spam-list-of-processors.  In the case of mover
> -backends, checks the setting of `spam-summary-exit-behavior' in
> -addition to the set values for the group."
> +In the case of mover backends, checks the setting of
> +`spam-summary-exit-behavior' in addition to the set values for the group."
>     (if (and (stringp group)
>              (symbolp backend))
> -      (let ((old-style (assq backend spam-list-of-processors))
> -            (parameters (nth 0 (gnus-parameter-spam-process group)))
> +      (let ((parameters (nth 0 (gnus-parameter-spam-process group)))
>               found)
> -        (if old-style  ; old-style processor
> -            (spam-group-processor-p group (nth 2 old-style) (nth 1 old-style))
> -          ;; now search for the parameter
> -          (dolist (parameter parameters)
> -            (when (and (null found)
> -                       (listp parameter)
> -                       (eq classification (nth 0 parameter))
> -                       (eq backend (nth 1 parameter)))
> -              (setq found t)))
> -
> -          ;; now, if the parameter was not found, do the
> -          ;; spam-summary-exit-behavior-logic for mover backends
> -          (unless found
> -            (when (spam-backend-mover-p backend)
> -              (setq
> -               found
> -               (cond
> -                ((eq spam-summary-exit-behavior 'move-all) t)
> -                ((eq spam-summary-exit-behavior 'move-none) nil)
> -                ((eq spam-summary-exit-behavior 'default)
> -                 (or (eq classification 'spam) ;move spam out of all groups
> -                     ;; move ham out of spam groups
> -                     (and (eq classification 'ham)
> -                          (spam-group-spam-contents-p group))))
> -                (t (gnus-error 5 "Unknown spam-summary-exit-behavior: %s"
> -                               spam-summary-exit-behavior))))))
> -
> -          found))
> +        ;; now search for the parameter
> +        (dolist (parameter parameters)
> +          (when (and (null found)
> +                     (listp parameter)
> +                     (eq classification (nth 0 parameter))
> +                     (eq backend (nth 1 parameter)))
> +            (setq found t)))
> +
> +        ;; now, if the parameter was not found, do the
> +        ;; spam-summary-exit-behavior-logic for mover backends
> +        (unless found
> +          (when (spam-backend-mover-p backend)
> +            (setq
> +             found
> +             (cond
> +              ((eq spam-summary-exit-behavior 'move-all) t)
> +              ((eq spam-summary-exit-behavior 'move-none) nil)
> +              ((eq spam-summary-exit-behavior 'default)
> +               (or (eq classification 'spam) ;move spam out of all groups
> +                   ;; move ham out of spam groups
> +                   (and (eq classification 'ham)
> +                        (spam-group-spam-contents-p group))))
> +              (t (gnus-error 5 "Unknown spam-summary-exit-behavior: %s"
> +                             spam-summary-exit-behavior))))))
> +
> +        found)
>       nil))
>   
>   ;;}}}
> diff --git a/lisp/help.el b/lisp/help.el
> index e923546..0830dc5 100644
> --- a/lisp/help.el
> +++ b/lisp/help.el
> @@ -308,8 +308,6 @@ If that doesn't give a function, return nil."
>     (interactive)
>     (browse-url "https://www.gnu.org/gnu/thegnuproject.html"))
>   
> -(define-obsolete-function-alias 'describe-project 'describe-gnu-project "22.2")
> -
>   (defun describe-no-warranty ()
>     "Display info on all the kinds of warranty Emacs does NOT have."
>     (interactive)
> @@ -413,9 +411,6 @@ With argument, display info only for the selected version."
>     (interactive "P")
>     (view-help-file "TODO"))
>   
> -(define-obsolete-function-alias 'view-todo 'view-emacs-todo "22.2")
> -
> -
>   (defun view-echo-area-messages ()
>     "View the log of recent echo-area messages: the `*Messages*' buffer.
>   The number of messages retained in that buffer
> diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el
> index de1ae0d..7c5294f 100644
> --- a/lisp/hilit-chg.el
> +++ b/lisp/hilit-chg.el
> @@ -204,9 +204,6 @@
>     :group 'highlight-changes)
>   
>   ;; A (not very good) default list of colors to rotate through.
> -(define-obsolete-variable-alias 'highlight-changes-colours
> -                                'highlight-changes-colors "22.1")
> -
>   (defcustom highlight-changes-colors
>     (if (eq (frame-parameter nil 'background-mode) 'light)
>         ;; defaults for light background:
> diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
> index 38fffcb..0fd2971 100644
> --- a/lisp/ibuffer.el
> +++ b/lisp/ibuffer.el
> @@ -224,14 +224,6 @@ view of the buffers."
>     :group 'ibuffer)
>   (defvar ibuffer-sorting-reversep nil)
>   
> -(defcustom ibuffer-elide-long-columns nil
> -  "If non-nil, then elide column entries which exceed their max length."
> -  :type 'boolean
> -  :group 'ibuffer)
> -(make-obsolete-variable 'ibuffer-elide-long-columns
> -                        "use the :elide argument of `ibuffer-formats'."
> -                        "22.1")
> -
>   (defcustom ibuffer-eliding-string "..."
>     "The string to use for eliding long columns."
>     :type 'string
> @@ -349,15 +341,11 @@ directory, like `default-directory'."
>     :type 'regexp
>     :group 'ibuffer)
>   
> -(define-obsolete-variable-alias 'ibuffer-hooks 'ibuffer-hook "22.1")
> -
>   (defcustom ibuffer-hook nil
>     "Hook run when `ibuffer' is called."
>     :type 'hook
>     :group 'ibuffer)
>   
> -(define-obsolete-variable-alias 'ibuffer-mode-hooks 'ibuffer-mode-hook "22.1")
> -
>   (defcustom ibuffer-mode-hook nil
>     "Hook run upon entry into `ibuffer-mode'."
>     :type 'hook
> @@ -952,7 +940,6 @@ directory, like `default-directory'."
>   (defvar ibuffer-compiled-formats nil)
>   (defvar ibuffer-cached-formats nil)
>   (defvar ibuffer-cached-eliding-string nil)
> -(defvar ibuffer-cached-elide-long-columns 0)
>   
>   (defvar ibuffer-sorting-functions-alist nil
>     "An alist of functions which describe how to sort buffers.
> @@ -1589,7 +1576,7 @@ If point is on a group name, this function operates on that group."
>   
>   (defun ibuffer-compile-make-eliding-form (strvar elide from-end-p)
>     (let ((ellipsis (propertize ibuffer-eliding-string 'font-lock-face 'bold)))
> -    (if (or elide (with-no-warnings ibuffer-elide-long-columns))
> +    (if elide
>   	`(if (> strlen 5)
>   	     ,(if from-end-p
>                     ;; FIXME: this should probably also be using
> @@ -1789,9 +1776,6 @@ If point is on a group name, this function operates on that group."
>   	      (not (eq ibuffer-cached-formats ibuffer-formats))
>   	      (null ibuffer-cached-eliding-string)
>   	      (not (equal ibuffer-cached-eliding-string ibuffer-eliding-string))
> -	      (eql 0 ibuffer-cached-elide-long-columns)
> -	      (not (eql ibuffer-cached-elide-long-columns
> -			(with-no-warnings ibuffer-elide-long-columns)))
>   	      (and ext-loaded
>   		   (not (eq ibuffer-cached-filter-formats
>   			    ibuffer-filter-format-alist))
> @@ -1800,8 +1784,7 @@ If point is on a group name, this function operates on that group."
>         (message "Formats have changed, recompiling...")
>         (ibuffer-recompile-formats)
>         (setq ibuffer-cached-formats ibuffer-formats
> -	    ibuffer-cached-eliding-string ibuffer-eliding-string
> -	    ibuffer-cached-elide-long-columns (with-no-warnings ibuffer-elide-long-columns))
> +	    ibuffer-cached-eliding-string ibuffer-eliding-string)
>         (when ext-loaded
>   	(setq ibuffer-cached-filter-formats ibuffer-filter-format-alist))
>         (message "Formats have changed, recompiling...done"))))
> @@ -2746,7 +2729,6 @@ will be inserted before the group at point."
>     (set (make-local-variable 'ibuffer-compiled-formats) nil)
>     (set (make-local-variable 'ibuffer-cached-formats) nil)
>     (set (make-local-variable 'ibuffer-cached-eliding-string) nil)
> -  (set (make-local-variable 'ibuffer-cached-elide-long-columns) nil)
>     (set (make-local-variable 'ibuffer-current-format) nil)
>     (set (make-local-variable 'ibuffer-did-modification) nil)
>     (set (make-local-variable 'ibuffer-tmp-hide-regexps) nil)
> diff --git a/lisp/imenu.el b/lisp/imenu.el
> index f56e7b5..b4d7d90 100644
> --- a/lisp/imenu.el
> +++ b/lisp/imenu.el
> @@ -102,14 +102,7 @@ This variable is buffer-local."
>     :type 'integer
>     :group 'imenu)
>   
> -(defvar imenu-always-use-completion-buffer-p nil)
> -(make-obsolete-variable 'imenu-always-use-completion-buffer-p
> -			'imenu-use-popup-menu "22.1")
> -
> -(defcustom imenu-use-popup-menu
> -  (if imenu-always-use-completion-buffer-p
> -      (not (eq imenu-always-use-completion-buffer-p 'never))
> -    'on-mouse)
> +(defcustom imenu-use-popup-menu 'on-mouse
>     "Use a popup menu rather than a minibuffer prompt.
>   If nil, always use a minibuffer prompt.
>   If t, always use a popup menu,
> @@ -119,8 +112,7 @@ If `on-mouse' use a popup menu when `imenu' was invoked with the mouse."
>   		 (other :tag "Always" t))
>     :group 'imenu)
>   
> -(defcustom imenu-eager-completion-buffer
> -  (not (eq imenu-always-use-completion-buffer-p 'never))
> +(defcustom imenu-eager-completion-buffer t
>     "If non-nil, eagerly popup the completion buffer."
>     :type 'boolean
>     :group 'imenu
> diff --git a/lisp/international/latin1-disp.el b/lisp/international/latin1-disp.el
> index 657f790..df2c1dc 100644
> --- a/lisp/international/latin1-disp.el
> +++ b/lisp/international/latin1-disp.el
> @@ -201,10 +201,6 @@ character set: `latin-2', `hebrew' etc."
>   	 (char (and info (decode-char (car (remq 'ascii info)) ?\ ))))
>       (and char (char-displayable-p char))))
>   
> -;; Backwards compatibility.
> -(define-obsolete-function-alias 'latin1-char-displayable-p
> -  'char-displayable-p "22.1")
> -
>   (defun latin1-display-setup (set &optional force)
>     "Set up Latin-1 display for characters in the given SET.
>   SET must be a member of `latin1-display-sets'.  Normally, check
> diff --git a/lisp/isearch.el b/lisp/isearch.el
> index 4f5f494..84b121a 100644
> --- a/lisp/isearch.el
> +++ b/lisp/isearch.el
> @@ -323,10 +323,6 @@ this variable is set to the symbol `all-windows'."
>     :group 'isearch
>     :group 'matching)
>   
> -(define-obsolete-variable-alias 'isearch-lazy-highlight-cleanup
> -                                'lazy-highlight-cleanup
> -                                "22.1")
> -
>   (defcustom lazy-highlight-cleanup t
>     "Controls whether to remove extra highlighting after a search.
>   If this is nil, extra highlighting can be \"manually\" removed with
> @@ -334,28 +330,16 @@ If this is nil, extra highlighting can be \"manually\" removed with
>     :type 'boolean
>     :group 'lazy-highlight)
>   
> -(define-obsolete-variable-alias 'isearch-lazy-highlight-initial-delay
> -                                'lazy-highlight-initial-delay
> -                                "22.1")
> -
>   (defcustom lazy-highlight-initial-delay 0.25
>     "Seconds to wait before beginning to lazily highlight all matches."
>     :type 'number
>     :group 'lazy-highlight)
>   
> -(define-obsolete-variable-alias 'isearch-lazy-highlight-interval
> -                                'lazy-highlight-interval
> -                                "22.1")
> -
>   (defcustom lazy-highlight-interval 0 ; 0.0625
>     "Seconds between lazily highlighting successive matches."
>     :type 'number
>     :group 'lazy-highlight)
>   
> -(define-obsolete-variable-alias 'isearch-lazy-highlight-max-at-a-time
> -                                'lazy-highlight-max-at-a-time
> -                                "22.1")
> -
>   (defcustom lazy-highlight-max-at-a-time nil ; 20 (bug#25751)
>     "Maximum matches to highlight at a time (for `lazy-highlight').
>   Larger values may reduce Isearch's responsiveness to user input;
> @@ -3202,10 +3186,6 @@ This function is called when exiting an incremental search if
>       (cancel-timer isearch-lazy-highlight-timer)
>       (setq isearch-lazy-highlight-timer nil)))
>   
> -(define-obsolete-function-alias 'isearch-lazy-highlight-cleanup
> -                                'lazy-highlight-cleanup
> -                                "22.1")
> -
>   (defun isearch-lazy-highlight-new-loop (&optional beg end)
>     "Cleanup any previous `lazy-highlight' loop and begin a new one.
>   BEG and END specify the bounds within which highlighting should occur.
> diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
> index 4e5873c..f2fdcb6 100644
> --- a/lisp/mail/rmail.el
> +++ b/lisp/mail/rmail.el
> @@ -191,9 +191,6 @@ Its name should end with a slash."
>     :group 'rmail-retrieve
>     :type '(choice (const nil) string))
>   
> -(define-obsolete-variable-alias 'rmail-pop-password
> -  'rmail-remote-password "22.1")
> -
>   (defcustom rmail-remote-password nil
>     "Password to use when reading mail from a remote server.
>   This setting is ignored for mailboxes whose URL already contains a password."
> @@ -202,9 +199,6 @@ This setting is ignored for mailboxes whose URL already contains a password."
>     :group 'rmail-retrieve
>     :version "22.1")
>   
> -(define-obsolete-variable-alias 'rmail-pop-password-required
> -  'rmail-remote-password-required "22.1")
> -
>   (defcustom rmail-remote-password-required nil
>     "Non-nil if a password is required when reading mail from a remote server."
>     :type 'boolean
> diff --git a/lisp/mwheel.el b/lisp/mwheel.el
> index 44c4989..f055df9 100644
> --- a/lisp/mwheel.el
> +++ b/lisp/mwheel.el
> @@ -52,38 +52,25 @@
>     ;; Sync the bindings.
>     (when (bound-and-true-p mouse-wheel-mode) (mouse-wheel-mode 1)))
>   
> -(defvar mouse-wheel-down-button 4)
> -(make-obsolete-variable 'mouse-wheel-down-button
> -                        'mouse-wheel-down-event
> -			"22.1")
>   (defcustom mouse-wheel-down-event
>     (if (or (featurep 'w32-win) (featurep 'ns-win))
>         'wheel-up
> -    (intern (format "mouse-%s" mouse-wheel-down-button)))
> +    'mouse-4)
>     "Event used for scrolling down."
>     :group 'mouse
>     :type 'symbol
>     :set 'mouse-wheel-change-button)
>   
> -(defvar mouse-wheel-up-button 5)
> -(make-obsolete-variable 'mouse-wheel-up-button
> -                        'mouse-wheel-up-event
> -			"22.1")
>   (defcustom mouse-wheel-up-event
>     (if (or (featurep 'w32-win) (featurep 'ns-win))
>         'wheel-down
> -    (intern (format "mouse-%s" mouse-wheel-up-button)))
> +    'mouse-5)
>     "Event used for scrolling up."
>     :group 'mouse
>     :type 'symbol
>     :set 'mouse-wheel-change-button)
>   
> -(defvar mouse-wheel-click-button 2)
> -(make-obsolete-variable 'mouse-wheel-click-button
> -                        'mouse-wheel-click-event
> -			"22.1")
> -(defcustom mouse-wheel-click-event
> -  (intern (format "mouse-%s" mouse-wheel-click-button))
> +(defcustom mouse-wheel-click-event 'mouse-2
>     "Event that should be temporarily inhibited after mouse scrolling.
>   The mouse wheel is typically on the mouse-2 button, so it may easily
>   happen that text is accidentally yanked into the buffer when
> diff --git a/lisp/net/goto-addr.el b/lisp/net/goto-addr.el
> index ed615d1..cc1cdd1 100644
> --- a/lisp/net/goto-addr.el
> +++ b/lisp/net/goto-addr.el
> @@ -221,10 +221,6 @@ and `goto-address-fontify-p'."
>   ;; snarfed from browse-url.el
>   
>   ;;;###autoload
> -(define-obsolete-function-alias
> -  'goto-address-at-mouse 'goto-address-at-point "22.1")
> -
> -;;;###autoload
>   (defun goto-address-at-point (&optional event)
>     "Send to the e-mail address or load the URL at point.
>   Send mail to address at point.  See documentation for
> diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el
> index 9edd42b..c9e8080 100644
> --- a/lisp/net/net-utils.el
> +++ b/lisp/net/net-utils.el
> @@ -86,8 +86,6 @@ These options can be used to limit how many ICMP packets are emitted."
>     :group 'net-utils
>     :type  '(repeat string))
>   
> -(define-obsolete-variable-alias 'ipconfig-program 'ifconfig-program "22.2")
> -
>   (defcustom ifconfig-program
>     (cond ((eq system-type 'windows-nt) "ipconfig")
>           ((executable-find "ifconfig") "ifconfig")
> @@ -99,9 +97,6 @@ These options can be used to limit how many ICMP packets are emitted."
>     :group 'net-utils
>     :type  'string)
>   
> -(define-obsolete-variable-alias 'ipconfig-program-options
> -  'ifconfig-program-options "22.2")
> -
>   (defcustom ifconfig-program-options
>     (cond ((string-match "ipconfig\\'" ifconfig-program) '("/all"))
>           ((string-match "ifconfig\\'" ifconfig-program) '("-a"))
> diff --git a/lisp/novice.el b/lisp/novice.el
> index b9cd568..aaad4fa 100644
> --- a/lisp/novice.el
> +++ b/lisp/novice.el
> @@ -35,9 +35,6 @@
>   ;; and the keys are returned by (this-command-keys).
>   
>   ;;;###autoload
> -(define-obsolete-variable-alias 'disabled-command-hook
> -  'disabled-command-function "22.1")
> -;;;###autoload
>   (defvar disabled-command-function 'disabled-command-function
>     "Function to call to handle disabled commands.
>   If nil, the feature is disabled, i.e., all commands work normally.")
> diff --git a/lisp/obsolete/iswitchb.el b/lisp/obsolete/iswitchb.el
> index 55e81d0..d03621d 100644
> --- a/lisp/obsolete/iswitchb.el
> +++ b/lisp/obsolete/iswitchb.el
> @@ -353,8 +353,6 @@ See also `iswitchb-newbuffer'."
>     :type 'boolean
>     :group 'iswitchb)
>   
> -(define-obsolete-variable-alias 'iswitchb-use-fonts 'iswitchb-use-faces "22.1")
> -
>   (defcustom iswitchb-use-faces t
>     "Non-nil means use font-lock faces for showing first match."
>     :type 'boolean
> diff --git a/lisp/play/dunnet.el b/lisp/play/dunnet.el
> index f22cc24..2b8bd9d 100644
> --- a/lisp/play/dunnet.el
> +++ b/lisp/play/dunnet.el
> @@ -2349,7 +2349,6 @@ for a moment, then straighten yourself up.\n")
>   ;;;; This section sets up the keymaps for interactive and batch dunnet.
>   ;;;;
>   
> -(define-obsolete-variable-alias 'dungeon-mode-map 'dun-mode-map "22.1")
>   (define-key dun-mode-map "\r" 'dun-parse)
>   (defvar dungeon-batch-map (make-keymap))
>   (if (string= (substring emacs-version 0 2) "18")
> diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
> index 4229743..15503ee 100644
> --- a/lisp/progmodes/compile.el
> +++ b/lisp/progmodes/compile.el
> @@ -100,16 +100,6 @@ compilation buffer.  It should return a string.
>   If nil, compute the name with `(concat \"*\" (downcase major-mode) \"*\")'.")
>   
>   ;;;###autoload
> -(defvar compilation-finish-function nil
> -  "Function to call when a compilation process finishes.
> -It is called with two arguments: the compilation buffer, and a string
> -describing how the process finished.")
> -
> -(make-obsolete-variable 'compilation-finish-function
> -  "use `compilation-finish-functions', but it works a little differently."
> -  "22.1")
> -
> -;;;###autoload
>   (defvar compilation-finish-functions nil
>     "Functions to call when a compilation process finishes.
>   Each function is called with two arguments: the compilation buffer,
> @@ -2101,7 +2091,6 @@ by replacing the first word, e.g., `compilation-scroll-output' from
>   		   compilation-error-regexp-alist
>   		   compilation-error-regexp-alist-alist
>   		   compilation-error-screen-columns
> -		   compilation-finish-function
>   		   compilation-finish-functions
>   		   compilation-first-column
>   		   compilation-mode-font-lock-keywords
> @@ -2245,9 +2234,6 @@ commands of Compilation major mode are available.  See
>       (force-mode-line-update)
>       (if (and opoint (< opoint omax))
>   	(goto-char opoint))
> -    (with-no-warnings
> -      (if compilation-finish-function
> -	  (funcall compilation-finish-function cur-buffer msg)))
>       (run-hook-with-args 'compilation-finish-functions cur-buffer msg)))
>   
>   ;; Called when compilation process changes state.
> diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
> index 8c0682a..09a26dd 100644
> --- a/lisp/progmodes/cperl-mode.el
> +++ b/lisp/progmodes/cperl-mode.el
> @@ -390,13 +390,6 @@ Affects: `cperl-font-lock', `cperl-electric-lbrace-space',
>     :type '(repeat string)
>        :group 'cperl)
>   
> -;; This became obsolete...
> -(defvar cperl-vc-header-alist nil)
> -(make-obsolete-variable
> - 'cperl-vc-header-alist
> - "use cperl-vc-rcs-header or cperl-vc-sccs-header instead."
> - "22.1")
> -
>   ;; (defcustom cperl-clobber-mode-lists
>   ;;   (not
>   ;;    (and
> @@ -1727,9 +1720,8 @@ or as help on variables `cperl-tips', `cperl-problems',
>     (when (featurep 'xemacs)
>       ;; This one is obsolete...
>       (set (make-local-variable 'vc-header-alist)
> -         (or cperl-vc-header-alist      ; Avoid warning
> -	     `((SCCS ,(car cperl-vc-sccs-header))
> -	       (RCS ,(car cperl-vc-rcs-header))))))
> +	 `((SCCS ,(car cperl-vc-sccs-header))
> +	   (RCS ,(car cperl-vc-rcs-header)))))
>     (cond ((boundp 'compilation-error-regexp-alist-alist);; xemacs 20.x
>   	 (set (make-local-variable 'compilation-error-regexp-alist-alist)
>   	      (cons (cons 'cperl (car cperl-compilation-error-regexp-alist))
> diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
> index 6aa9a7e..2664d03 100644
> --- a/lisp/progmodes/gud.el
> +++ b/lisp/progmodes/gud.el
> @@ -3397,9 +3397,6 @@ it if ARG is omitted or nil."
>   	(kill-local-variable 'gdb-define-alist)
>   	(remove-hook 'after-save-hook 'gdb-create-define-alist t))))
>   
> -(define-obsolete-variable-alias 'tooltip-gud-modes
> -                                'gud-tooltip-modes "22.1")
> -
>   (defcustom gud-tooltip-modes '(gud-mode c-mode c++-mode fortran-mode
>   					python-mode)
>     "List of modes for which to enable GUD tooltips."
> @@ -3407,9 +3404,6 @@ it if ARG is omitted or nil."
>     :group 'gud
>     :group 'tooltip)
>   
> -(define-obsolete-variable-alias 'tooltip-gud-display
> -                                'gud-tooltip-display "22.1")
> -
>   (defcustom gud-tooltip-display
>     '((eq (tooltip-event-buffer gud-tooltip-event)
>   	(marker-buffer gud-overlay-arrow-position)))
> @@ -3501,8 +3495,6 @@ With arg, dereference expr if ARG is positive, otherwise do not dereference."
>     (message "Dereferencing is now %s."
>   	   (if gud-tooltip-dereference "on" "off")))
>   
> -(define-obsolete-function-alias 'tooltip-gud-toggle-dereference
> -                                'gud-tooltip-dereference "22.1")
>   (defvar tooltip-use-echo-area)
>   (declare-function tooltip-show "tooltip" (text &optional use-echo-area))
>   (declare-function tooltip-strip-prompt "tooltip" (process output))
> diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
> index 737dd9e..58dc213 100644
> --- a/lisp/progmodes/pascal.el
> +++ b/lisp/progmodes/pascal.el
> @@ -1403,7 +1403,6 @@ The default is a name found in the buffer around point."
>       map)
>     "Keymap used in Pascal Outline mode.")
>   
> -(define-obsolete-function-alias 'pascal-outline 'pascal-outline-mode "22.1")
>   (define-minor-mode pascal-outline-mode
>     "Outline-line minor mode for Pascal mode.
>   With a prefix argument ARG, enable the mode if ARG is positive,
> diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
> index c1d94ac..e667a97 100644
> --- a/lisp/progmodes/perl-mode.el
> +++ b/lisp/progmodes/perl-mode.el
> @@ -745,8 +745,6 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'."
>         0					;Existing comment at bol stays there.
>       comment-column))
>   
> -(define-obsolete-function-alias 'electric-perl-terminator
> -  'perl-electric-terminator "22.1")
>   (defun perl-electric-noindent-p (_char)
>     ;; To reproduce the old behavior, ;, {, }, and : are made electric, but
>     ;; we only want them to be electric at EOL.
> diff --git a/lisp/recentf.el b/lisp/recentf.el
> index b33f22d..c3c4e45 100644
> --- a/lisp/recentf.el
> +++ b/lisp/recentf.el
> @@ -228,10 +228,6 @@ This item will replace the \"More...\" item."
>     :group 'recentf
>     :type 'boolean)
>   
> -(define-obsolete-variable-alias 'recentf-menu-append-commands-p
> -                                'recentf-menu-append-commands-flag
> -                                "22.1")
> -
>   (defcustom recentf-menu-append-commands-flag t
>     "Non-nil means to append command items to the menu."
>     :group 'recentf
> diff --git a/lisp/savehist.el b/lisp/savehist.el
> index fbb5f53..0a261b0 100644
> --- a/lisp/savehist.el
> +++ b/lisp/savehist.el
> @@ -204,29 +204,6 @@ histories, which is probably undesirable."
>   	 (signal (car errvar) (cdr errvar)))))
>       (savehist-install)))
>   
> -(defun savehist-load ()
> -  "Load the variables stored in `savehist-file' and turn on Savehist mode.
> -If `savehist-file' is in the old format that doesn't record
> -the value of `savehist-minibuffer-history-variables', that
> -value is deducted from the contents of the file."
> -  (declare (obsolete savehist-mode "22.1"))
> -  (savehist-mode 1)
> -  ;; Old versions of savehist distributed with XEmacs didn't save
> -  ;; savehist-minibuffer-history-variables.  If that variable is nil
> -  ;; after loading the file, try to intuit the intended value.
> -  (when (null savehist-minibuffer-history-variables)
> -    (setq savehist-minibuffer-history-variables
> -          (with-temp-buffer
> -	    (ignore-errors
> -	      (insert-file-contents savehist-file))
> -            (let ((vars ()) form)
> -              (while (setq form (condition-case nil
> -				    (read (current-buffer)) (error nil)))
> -		;; Each form read is of the form (setq VAR VALUE).
> -		;; Collect VAR, i.e. (nth form 1).
> -                (push (nth 1 form) vars))
> -              vars)))))
> -
>   (defun savehist-install ()
>     "Hook Savehist into Emacs.
>   Normally invoked by calling `savehist-mode' to set the minor mode.
> diff --git a/lisp/speedbar.el b/lisp/speedbar.el
> index 7915a52..a231163 100644
> --- a/lisp/speedbar.el
> +++ b/lisp/speedbar.el
> @@ -637,9 +637,6 @@ Created from `speedbar-ignored-directory-expressions' with the function
>   Use the function `speedbar-add-ignored-directory-regexp', or customize the
>   variable `speedbar-ignored-directory-expressions' to modify this variable.")
>   
> -(define-obsolete-variable-alias 'speedbar-ignored-path-expressions
> -  'speedbar-ignored-directory-expressions "22.1")
> -
>   (defcustom speedbar-ignored-directory-expressions
>     '("[/\\]logs?[/\\]\\'")
>     "List of regular expressions matching directories speedbar will ignore.
> @@ -4077,26 +4074,6 @@ TEXT is the buffer's name, TOKEN and INDENT are unused."
>   	 (setq font-lock-global-modes (delq 'speedbar-mode
>   					    font-lock-global-modes)))))
>   \f
> -;;; Obsolete variables and functions
> -
> -(define-obsolete-variable-alias
> -  'speedbar-ignored-path-regexp 'speedbar-ignored-directory-regexp "22.1")
> -
> -(define-obsolete-function-alias 'speedbar-add-ignored-path-regexp
> -  'speedbar-add-ignored-directory-regexp "22.1")
> -
> -(define-obsolete-function-alias 'speedbar-line-path
> -  'speedbar-line-directory "22.1")
> -
> -(define-obsolete-function-alias 'speedbar-buffers-line-path
> -  'speedbar-buffers-line-directory "22.1")
> -
> -(define-obsolete-function-alias 'speedbar-path-line
> -  'speedbar-directory-line "22.1")
> -
> -(define-obsolete-function-alias 'speedbar-buffers-line-path
> -  'speedbar-buffers-line-directory "22.1")
> -
>   (provide 'speedbar)
>   
>   ;; run load-time hooks
> diff --git a/lisp/subr.el b/lisp/subr.el
> index 056392a..b621042 100644
> --- a/lisp/subr.el
> +++ b/lisp/subr.el
> @@ -680,20 +680,6 @@ If TEST is omitted or nil, `equal' is used."
>         (setq tail (cdr tail)))
>       value))
>   
> -(defun assoc-ignore-case (key alist)
> -  "Like `assoc', but ignores differences in case and text representation.
> -KEY must be a string.  Upper-case and lower-case letters are treated as equal.
> -Unibyte strings are converted to multibyte for comparison."
> -  (declare (obsolete assoc-string "22.1"))
> -  (assoc-string key alist t))
> -
> -(defun assoc-ignore-representation (key alist)
> -  "Like `assoc', but ignores differences in text representation.
> -KEY must be a string.
> -Unibyte strings are converted to multibyte for comparison."
> -  (declare (obsolete assoc-string "22.1"))
> -  (assoc-string key alist nil))
> -
>   (defun member-ignore-case (elt list)
>     "Like `member', but ignore differences in case and text representation.
>   ELT must be a string.  Upper-case and lower-case letters are treated as equal.
> @@ -1491,11 +1477,6 @@ be a list of the form returned by `event-start' and `event-end'."
>   (make-obsolete-variable 'command-debug-status
>                           "expect it to be removed in a future version." "25.2")
>   
> -(define-obsolete-variable-alias 'x-lost-selection-hooks
> -  'x-lost-selection-functions "22.1")
> -(define-obsolete-variable-alias 'x-sent-selection-hooks
> -  'x-sent-selection-functions "22.1")
> -
>   ;; This was introduced in 21.4 for pre-unicode unification.  That
>   ;; usage was rendered obsolete in 23.1 which uses Unicode internally.
>   ;; Other uses are possible, so this variable is not _really_ obsolete,
> @@ -2173,19 +2154,6 @@ process."
>          (memq (process-status process)
>   	     '(run open listen connect stop))))
>   
> -;; compatibility
> -
> -(defun process-kill-without-query (process &optional _flag)
> -  "Say no query needed if PROCESS is running when Emacs is exited.
> -Optional second argument if non-nil says to require a query.
> -Value is t if a query was formerly required."
> -  (declare (obsolete
> -            "use `process-query-on-exit-flag' or `set-process-query-on-exit-flag'."
> -            "22.1"))
> -  (let ((old (process-query-on-exit-flag process)))
> -    (set-process-query-on-exit-flag process nil)
> -    old))
> -
>   (defun process-kill-buffer-query-function ()
>     "Ask before killing a buffer that has a running process."
>     (let ((process (get-buffer-process (current-buffer))))
> diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el
> index 9c84629..6955ed2 100644
> --- a/lisp/textmodes/nroff-mode.el
> +++ b/lisp/textmodes/nroff-mode.el
> @@ -328,13 +328,6 @@ otherwise off."
>   	(kill-buffer viewbuf))
>       (Man-getpage-in-background file)))
>   
> -;; Old names that were not namespace clean.
> -(define-obsolete-function-alias 'count-text-lines 'nroff-count-text-lines "22.1")
> -(define-obsolete-function-alias 'forward-text-line 'nroff-forward-text-line "22.1")
> -(define-obsolete-function-alias 'backward-text-line 'nroff-backward-text-line "22.1")
> -(define-obsolete-function-alias 'electric-nroff-newline 'nroff-electric-newline "22.1")
> -(define-obsolete-function-alias 'electric-nroff-mode 'nroff-electric-mode "22.1")
> -
>   (provide 'nroff-mode)
>   
>   ;;; nroff-mode.el ends here
> diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el
> index 89b6201..6ff782a 100644
> --- a/lisp/vc/log-edit.el
> +++ b/lisp/vc/log-edit.el
> @@ -203,10 +203,7 @@ when this variable is set to nil.")
>   
>   (defconst log-edit-maximum-comment-ring-size 32
>     "Maximum number of saved comments in the comment ring.")
> -(define-obsolete-variable-alias 'vc-comment-ring 'log-edit-comment-ring "22.1")
>   (defvar log-edit-comment-ring (make-ring log-edit-maximum-comment-ring-size))
> -(define-obsolete-variable-alias 'vc-comment-ring-index
> -  'log-edit-comment-ring-index "22.1")
>   (defvar log-edit-comment-ring-index nil)
>   (defvar log-edit-last-comment-match "")
>   
> @@ -311,13 +308,6 @@ automatically."
>       (or (eobp) (looking-at "\n\n")
>   	(insert "\n"))))
>   
> -;; Compatibility with old names.
> -(define-obsolete-function-alias 'vc-previous-comment 'log-edit-previous-comment "22.1")
> -(define-obsolete-function-alias 'vc-next-comment 'log-edit-next-comment "22.1")
> -(define-obsolete-function-alias 'vc-comment-search-reverse 'log-edit-comment-search-backward "22.1")
> -(define-obsolete-function-alias 'vc-comment-search-forward 'log-edit-comment-search-forward "22.1")
> -(define-obsolete-function-alias 'vc-comment-to-change-log 'log-edit-comment-to-change-log "22.1")
> -
>   ;;;
>   ;;; Actual code
>   ;;;
> diff --git a/lisp/vc/pcvs-info.el b/lisp/vc/pcvs-info.el
> index 7e72767..edcfc6e 100644
> --- a/lisp/vc/pcvs-info.el
> +++ b/lisp/vc/pcvs-info.el
> @@ -39,9 +39,6 @@
>   ;;;; config variables
>   ;;;;
>   
> -(define-obsolete-variable-alias 'cvs-display-full-path
> -    'cvs-display-full-name "22.1")
> -
>   (defcustom cvs-display-full-name t
>     "Specifies how the filenames should be displayed in the listing.
>   If non-nil, their full filename name will be displayed, else only the
> @@ -211,8 +208,6 @@ to confuse some users sometimes."
>         ;; Here, I use `concat' rather than `expand-file-name' because I want
>         ;; the resulting path to stay relative if `dir' is relative.
>         (concat dir (cvs-fileinfo->file fileinfo)))))
> -(define-obsolete-function-alias 'cvs-fileinfo->full-path
> -    'cvs-fileinfo->full-name "22.1")
>   
>   (defun cvs-fileinfo->pp-name (fi)
>     "Return the filename of FI as it should be displayed."
> diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
> index 01dc47e..7646af0 100644
> --- a/lisp/vc/vc.el
> +++ b/lisp/vc/vc.el
> @@ -1649,11 +1649,6 @@ to override the value of `vc-diff-switches' and `diff-switches'."
>         ;; any switches in diff-switches.
>         (when (listp switches) switches))))
>   
> -;; Old def for compatibility with Emacs-21.[123].
> -(defmacro vc-diff-switches-list (backend)
> -  (declare (obsolete vc-switches "22.1"))
> -  `(vc-switches ',backend 'diff))
> -
>   (defun vc-diff-finish (buffer messages)
>     ;; The empty sync output case has already been handled, so the only
>     ;; possibility of an empty output is for an async process.
> 
> _______________________________________________
> Emacs-diffs mailing list
> Emacs-diffs@gnu.org
> https://lists.gnu.org/mailman/listinfo/emacs-diffs
> 



^ permalink raw reply	[flat|nested] 22+ messages in thread

* iswitchb (was: [Emacs-diffs] master f1c48b0: Remove many items obsolete since Emacs 22.1)
  2018-03-11  3:21   ` [Emacs-diffs] master f1c48b0: Remove many items obsolete since Emacs 22.1 Daniel Colascione
@ 2018-03-11  3:40     ` Stefan Monnier
  2018-03-12 10:22       ` iswitchb Robert Pluim
  0 siblings, 1 reply; 22+ messages in thread
From: Stefan Monnier @ 2018-03-11  3:40 UTC (permalink / raw)
  To: emacs-devel

> I don't think iswitchb is obsolete.

The patch you quote doesn't seem relevant: it just removes
the iswitchb-use-fonts part of iswitchb, which was marked as obsolete in
Emacs-22.1.

For reference, iswitchb itself was declared obsolete in Emacs-24.4
(superseded by the default use of substring completion in C-x b,
combined with changes to icomplete-mode which provide commands
covering most of the featureset of iswitchb).


        Stefan




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2018-03-11  3:40     ` iswitchb (was: [Emacs-diffs] master f1c48b0: Remove many items obsolete since Emacs 22.1) Stefan Monnier
@ 2018-03-12 10:22       ` Robert Pluim
  2018-03-12 11:21         ` iswitchb Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Robert Pluim @ 2018-03-12 10:22 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> (superseded by the default use of substring completion in C-x b,

If that's documented somewhere, I've not been able to find it in the
docstring for `switch-to-buffer'. etc/NEWS.24 just says:

*** New completion style `substring'.

*** Completion of buffer names uses `substring' completion by default.

without explaining what substring means. It certainly has surprising
behaviour (with emacs-26):

src/emacs -Q
C-x C-f src/xdisp.c
C-x b di
C-x b sc TAB => *scratch*
C-x b di TAB => di [sole completion] ; I expected xdisp.c as well.

Is the actual behaviour substring-unless-exact-match or something?

Robert



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2018-03-12 10:22       ` iswitchb Robert Pluim
@ 2018-03-12 11:21         ` Eli Zaretskii
  2018-03-12 11:44           ` iswitchb Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2018-03-12 11:21 UTC (permalink / raw)
  To: emacs-devel, Robert Pluim, Stefan Monnier

On March 12, 2018 12:22:58 PM GMT+02:00, Robert Pluim <rpluim@gmail.com> wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
> 
> > (superseded by the default use of substring completion in C-x b,
> 
> If that's documented somewhere, I've not been able to find it in the
> docstring for `switch-to-buffer'. etc/NEWS.24 just says:
> 
> *** New completion style `substring'.
> 
> *** Completion of buffer names uses `substring' completion by default.
> 
> without explaining what substring means. It certainly has surprising
> behaviour (with emacs-26):
> 
> src/emacs -Q
> C-x C-f src/xdisp.c
> C-x b di
> C-x b sc TAB => *scratch*
> C-x b di TAB => di [sole completion] ; I expected xdisp.c as well.
> 
> Is the actual behaviour substring-unless-exact-match or something?
> 
> Robert

The completion styles are documented in the Emacs user manual, node
"Completion Styles".



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2018-03-12 11:21         ` iswitchb Eli Zaretskii
@ 2018-03-12 11:44           ` Eli Zaretskii
  2018-03-12 13:57             ` iswitchb Robert Pluim
  0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2018-03-12 11:44 UTC (permalink / raw)
  To: emacs-devel, Robert Pluim, Stefan Monnier

On March 12, 2018 1:21:44 PM GMT+02:00, Eli Zaretskii <eliz@gnu.org> wrote:
> On March 12, 2018 12:22:58 PM GMT+02:00, Robert Pluim
> <rpluim@gmail.com> wrote:
> > Stefan Monnier <monnier@iro.umontreal.ca> writes:
> > 
> > > (superseded by the default use of substring completion in C-x b,
> > 
> > If that's documented somewhere, I've not been able to find it in the
> > docstring for `switch-to-buffer'. etc/NEWS.24 just says:
> > 
> > *** New completion style `substring'.
> > 
> > *** Completion of buffer names uses `substring' completion by
> default.
> > 
> > without explaining what substring means. It certainly has surprising
> > behaviour (with emacs-26):
> > 
> > src/emacs -Q
> > C-x C-f src/xdisp.c
> > C-x b di
> > C-x b sc TAB => *scratch*
> > C-x b di TAB => di [sole completion] ; I expected xdisp.c as well.
> > 
> > Is the actual behaviour substring-unless-exact-match or something?
> > 
> > Robert
> 
> The completion styles are documented in the Emacs user manual, node
> "Completion Styles".

Btw, completion of buffer names uses '(basic substring), which is why you see
what you see.  See minibuffer.el.



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2018-03-12 11:44           ` iswitchb Eli Zaretskii
@ 2018-03-12 13:57             ` Robert Pluim
  2018-03-12 14:41               ` iswitchb Noam Postavsky
  0 siblings, 1 reply; 22+ messages in thread
From: Robert Pluim @ 2018-03-12 13:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Stefan Monnier, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> 
>> The completion styles are documented in the Emacs user manual, node
>> "Completion Styles".

Ah, I'd missed the very last sentence of that node.

> Btw, completion of buffer names uses '(basic substring), which is why you see
> what you see.  See minibuffer.el.

I don't think I should have to read minibuffer.el to discover that. I
can get the information from the user manual, but the docstring of
switch-to-buffer doesn't help me get there. It says:

 See `read-buffer' for features related to input and completion
 of buffer names.

read-buffer's docstring then leads to completing-read, which in turn
points at the Emacs Lisp Reference Manual.[1]

In short: there's a missing link, and I'm not sure where to put it.

Robert

Footnotes: 
[1]  Info-goto-node only works if you're in an *info* file.  Should it
be taught to work from *Help* buffers as well? Or perhaps
"(filename)Node name" strings should be clickable?



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2018-03-12 13:57             ` iswitchb Robert Pluim
@ 2018-03-12 14:41               ` Noam Postavsky
  2018-03-12 16:56                 ` iswitchb Robert Pluim
  0 siblings, 1 reply; 22+ messages in thread
From: Noam Postavsky @ 2018-03-12 14:41 UTC (permalink / raw)
  To: Emacs developers; +Cc: Eli Zaretskii, Stefan Monnier

On Mon, Mar 12, 2018 at 9:57 AM, Robert Pluim <rpluim@gmail.com> wrote:

> [1]  Info-goto-node only works if you're in an *info* file.  Should it
> be taught to work from *Help* buffers as well? Or perhaps
> "(filename)Node name" strings should be clickable?

It works if you say "Info node `(filename) Node name'" (not if you say
"Info nodeS `(filename) Node name' etc"), so completing-read docstring
could be changed to

See also Info node `(elisp) Basic Completion' for the details
about completion, and Info node `(elisp) Programmed Completion'
for expectations from COLLECTION when it’s a function.

(The linking is done in help-make-xrefs.)



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2018-03-12 14:41               ` iswitchb Noam Postavsky
@ 2018-03-12 16:56                 ` Robert Pluim
  2018-03-12 17:36                   ` iswitchb Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Robert Pluim @ 2018-03-12 16:56 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: Eli Zaretskii, Stefan Monnier, Emacs developers

[-- Attachment #1: Type: text/plain, Size: 1144 bytes --]

Noam Postavsky <npostavs@gmail.com> writes:

> On Mon, Mar 12, 2018 at 9:57 AM, Robert Pluim <rpluim@gmail.com> wrote:
>
>> [1]  Info-goto-node only works if you're in an *info* file.  Should it
>> be taught to work from *Help* buffers as well? Or perhaps
>> "(filename)Node name" strings should be clickable?
>
> It works if you say "Info node `(filename) Node name'" (not if you say
> "Info nodeS `(filename) Node name' etc"), so completing-read docstring
> could be changed to
>
> See also Info node `(elisp) Basic Completion' for the details
> about completion, and Info node `(elisp) Programmed Completion'
> for expectations from COLLECTION when it’s a function.

Indeed, that works, as does

Info node `(elisp)Basic Completion'

(without the space after the right paren)

Patch for this and one other instance of the same issue attached. I've
also attached a proposed patch for hiding the 'Info node' and 'URL'
prefixes in *Help* buffers, since I find they just get in the way.

First one could go to either emacs-26 or master. Second one I think is
master-only (does it require a NEWS entry?).

Robert


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Correct-Info-link-markup.patch --]
[-- Type: text/x-diff, Size: 1864 bytes --]

From a59d3fc1a7059064518f3842140f0df2e19799a1 Mon Sep 17 00:00:00 2001
From: Robert Pluim <rpluim@gmail.com>
Date: Mon, 12 Mar 2018 17:43:23 +0100
Subject: [PATCH 1/2] Correct Info link markup

* lisp/gnus/gnus-agent.el (gnus-agent-auto-agentize-methods):
Correct markup for Info link.
* src/minibuf.c (Fcompleting_read): Likewise.
---
 lisp/gnus/gnus-agent.el | 2 +-
 src/minibuf.c           | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
index ada148d20b..628c9430c9 100644
--- a/lisp/gnus/gnus-agent.el
+++ b/lisp/gnus/gnus-agent.el
@@ -172,7 +172,7 @@ gnus-agent-expire-unagentized-dirs
 (defcustom gnus-agent-auto-agentize-methods nil
   "Initially, all servers from these methods are agentized.
 The user may remove or add servers using the Server buffer.
-See Info nodes `(gnus)Server Buffer', `(gnus)Agent Variables'."
+See Info node `(gnus)Server Buffer' and Info node `(gnus)Agent Variables'."
   :version "22.1"
   :type '(repeat symbol)
   :group 'gnus-agent)
diff --git a/src/minibuf.c b/src/minibuf.c
index 95e62cedda..d4484efb04 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -1626,8 +1626,8 @@ COLLECTION can also be a function to do the completion itself.
 PREDICATE limits completion to a subset of COLLECTION.
 See `try-completion', `all-completions', `test-completion',
 and `completion-boundaries', for more details on completion,
-COLLECTION, and PREDICATE.  See also Info nodes `(elisp)Basic Completion'
-for the details about completion, and `(elisp)Programmed Completion' for
+COLLECTION, and PREDICATE.  See also Info node `(elisp)Basic Completion'
+for the details about completion, and Info node `(elisp)Programmed Completion' for
 expectations from COLLECTION when it's a function.
 
 REQUIRE-MATCH can take the following values:
-- 
2.16.1.72.g5be1f00a9


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-Hide-URL-and-Info-node-markup-in-help-buffers.patch --]
[-- Type: text/x-diff, Size: 2012 bytes --]

From de6c4f2ba6defa8dca15e13d64c6371f3f23e6af Mon Sep 17 00:00:00 2001
From: Robert Pluim <rpluim@gmail.com>
Date: Mon, 12 Mar 2018 17:50:08 +0100
Subject: [PATCH 2/2] Hide URL and Info node markup in help buffers

* lisp/help-mode.el (help-make-xrefs): Make URL and Info node
markup invisible.
---
 lisp/help-mode.el | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index 4fb3fb85c9..f64915e541 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -470,17 +470,23 @@ help-make-xrefs
                 ;; Info references
                 (save-excursion
                   (while (re-search-forward help-xref-info-regexp nil t)
-                    (let ((data (match-string 2)))
+                    (let ((data (match-string 2))
+                          (beg (match-beginning 0))
+                          (end (match-beginning 2)))
                       (save-match-data
                         (unless (string-match "^([^)]+)" data)
                           (setq data (concat "(emacs)" data)))
 			(setq data ;; possible newlines if para filled
-			      (replace-regexp-in-string "[ \t\n]+" " " data t t)))
+			      (replace-regexp-in-string "[ \t\n]+" " " data t t))
+                        (put-text-property beg end 'invisible t))
                       (help-xref-button 2 'help-info data))))
                 ;; URLs
                 (save-excursion
                   (while (re-search-forward help-xref-url-regexp nil t)
-                    (let ((data (match-string 1)))
+                    (let ((data (match-string 1))
+                          (beg (match-beginning 0))
+                          (end (match-beginning 1)))
+                      (put-text-property beg end 'invisible t)
                       (help-xref-button 1 'help-url data))))
                 ;; Mule related keywords.  Do this before trying
                 ;; `help-xref-symbol-regexp' because some of Mule
-- 
2.16.1.72.g5be1f00a9


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2018-03-12 16:56                 ` iswitchb Robert Pluim
@ 2018-03-12 17:36                   ` Eli Zaretskii
  2018-03-12 17:56                     ` iswitchb Robert Pluim
  0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2018-03-12 17:36 UTC (permalink / raw)
  To: Robert Pluim; +Cc: emacs-devel

> From: Robert Pluim <rpluim@gmail.com>
> Cc: Emacs developers <emacs-devel@gnu.org>,  Eli Zaretskii <eliz@gnu.org>,  Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Mon, 12 Mar 2018 17:56:59 +0100
> 
> Patch for this and one other instance of the same issue attached. I've
> also attached a proposed patch for hiding the 'Info node' and 'URL'
> prefixes in *Help* buffers, since I find they just get in the way.
> 
> First one could go to either emacs-26 or master.

Documentation changes should go to emacs-26.

> Second one I think is master-only (does it require a NEWS entry?).

Not unless you provide an option to get back old behavior (which I
think you should, if we accept this change).  Personally, I'm not so
sure it's a good idea to install that, as having Info called out
explicitly has its merits.



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2018-03-12 17:36                   ` iswitchb Eli Zaretskii
@ 2018-03-12 17:56                     ` Robert Pluim
  2018-03-13 16:42                       ` iswitchb Robert Pluim
  0 siblings, 1 reply; 22+ messages in thread
From: Robert Pluim @ 2018-03-12 17:56 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Robert Pluim <rpluim@gmail.com>
>> Cc: Emacs developers <emacs-devel@gnu.org>,  Eli Zaretskii <eliz@gnu.org>,  Stefan Monnier <monnier@iro.umontreal.ca>
>> Date: Mon, 12 Mar 2018 17:56:59 +0100
>> 
>> Patch for this and one other instance of the same issue attached. I've
>> also attached a proposed patch for hiding the 'Info node' and 'URL'
>> prefixes in *Help* buffers, since I find they just get in the way.
>> 
>> First one could go to either emacs-26 or master.
>
> Documentation changes should go to emacs-26.
>

OK. That means someone has to install it on my behalf, since I don't
have commit privileges. Unless I could have those?

>> Second one I think is master-only (does it require a NEWS entry?).
>
> Not unless you provide an option to get back old behavior (which I
> think you should, if we accept this change).  Personally, I'm not so
> sure it's a good idea to install that, as having Info called out
> explicitly has its merits.

I just find it's visual noise, since I don't really care whether it's
an URL or an Info link that I'm looking at, but I appreciate some
people might not like the markup disappearing. Version with option +
NEWS update some time tomorrow.

Robert



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2018-03-12 17:56                     ` iswitchb Robert Pluim
@ 2018-03-13 16:42                       ` Robert Pluim
  2018-03-14 15:54                         ` iswitchb Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Robert Pluim @ 2018-03-13 16:42 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 518 bytes --]

Robert Pluim <rpluim@gmail.com> writes:

>>
>> Not unless you provide an option to get back old behavior (which I
>> think you should, if we accept this change).  Personally, I'm not so
>> sure it's a good idea to install that, as having Info called out
>> explicitly has its merits.

Proposed patch attached. I've boldly defaulted the functionality to
enabled, but we can flip that if people feel strongly about it. I
documented it in the lisp reference manual, but we can put it in the
user manual as well.

Robert


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Hide-URL-and-Info-node-markup-in-help-buffers.patch --]
[-- Type: text/x-diff, Size: 3923 bytes --]

From b374d99ae7e9d16a99ce6a178ab06ab3d5634044 Mon Sep 17 00:00:00 2001
From: Robert Pluim <rpluim@gmail.com>
Date: Tue, 13 Mar 2018 17:03:11 +0100
Subject: [PATCH] Hide URL and Info node markup in help buffers

* lisp/help-mode.el (help-mode-hide-markup): New custom variable.
(help-make-xrefs): Make URL and Info node markup invisible.
* etc/NEWS: Describe help markup hiding changes.
* doc/lispref/tips.texi (Documentation Tips): Document
  'help-mode-hide-markup'
---
 doc/lispref/tips.texi |  7 +++++++
 etc/NEWS              |  5 +++++
 lisp/help-mode.el     | 22 +++++++++++++++++++---
 3 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi
index c62cfcfa8f..3a623541e5 100644
--- a/doc/lispref/tips.texi
+++ b/doc/lispref/tips.texi
@@ -756,6 +756,13 @@ Documentation Tips
 `https://www.gnu.org/').
 @end smallexample
 
+@vindex help-mode-hide-markup
+By default, the prefixes that are used to indicate Info and URL
+hyperlinks (such as @samp{Info node} and @samp{URL}) are hidden when
+the documentation string is displayed.  This behavior can be changed
+by customizing  @code{help-mode-hide-markup} to
+@code{nil}.
+
 @item
 Don't write key sequences directly in documentation strings.  Instead,
 use the @samp{\\[@dots{}]} construct to stand for them.  For example,
diff --git a/etc/NEWS b/etc/NEWS
index 57236b52f0..bdefc0970c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -202,6 +202,11 @@ and commands in the same format as the edit buffer of
 the buffer generated by 'view-lossage' to the "*Edit Macro*" buffer
 created by 'edit-last-kbd-macro', and to save the macro by 'C-c C-c'.
 
++++
+*** New variable 'help-mode-hide-markup'.
+When non-nil, help-mode buffers will not display the 'Info node' and
+'URL' prefixes to hyperlinks.  Default is t.
+
 ** Ibuffer
 
 ---
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index 4fb3fb85c9..bca160a7d2 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -98,6 +98,14 @@ help-mode-hook
   "Hook run by `help-mode'."
   :type 'hook
   :group 'help)
+
+(defcustom help-mode-hide-markup t
+  "If non-nil, hide markup used for Info and URL links.
+Otherwise, show explicit 'Info node' and 'URL' markup in help
+buffers."
+  :version "27.1"
+  :type 'boolean
+  :group 'help)
 \f
 ;; Button types used by help
 
@@ -470,17 +478,25 @@ help-make-xrefs
                 ;; Info references
                 (save-excursion
                   (while (re-search-forward help-xref-info-regexp nil t)
-                    (let ((data (match-string 2)))
+                    (let ((data (match-string 2))
+                          (beg (match-beginning 0))
+                          (end (match-beginning 2)))
                       (save-match-data
                         (unless (string-match "^([^)]+)" data)
                           (setq data (concat "(emacs)" data)))
 			(setq data ;; possible newlines if para filled
-			      (replace-regexp-in-string "[ \t\n]+" " " data t t)))
+			      (replace-regexp-in-string "[ \t\n]+" " " data t t))
+                        (when help-mode-hide-markup
+                          (put-text-property beg end 'invisible t)))
                       (help-xref-button 2 'help-info data))))
                 ;; URLs
                 (save-excursion
                   (while (re-search-forward help-xref-url-regexp nil t)
-                    (let ((data (match-string 1)))
+                    (let ((data (match-string 1))
+                          (beg (match-beginning 0))
+                          (end (match-beginning 1)))
+                      (when help-mode-hide-markup
+                        (put-text-property beg end 'invisible t))
                       (help-xref-button 1 'help-url data))))
                 ;; Mule related keywords.  Do this before trying
                 ;; `help-xref-symbol-regexp' because some of Mule
-- 
2.16.1.72.g5be1f00a9


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: iswitchb
  2018-03-13 16:42                       ` iswitchb Robert Pluim
@ 2018-03-14 15:54                         ` Eli Zaretskii
  0 siblings, 0 replies; 22+ messages in thread
From: Eli Zaretskii @ 2018-03-14 15:54 UTC (permalink / raw)
  To: Robert Pluim; +Cc: emacs-devel

> From: Robert Pluim <rpluim@gmail.com>
> Date: Tue, 13 Mar 2018 17:42:35 +0100
> 
> Proposed patch attached. I've boldly defaulted the functionality to
> enabled, but we can flip that if people feel strongly about it. I
> documented it in the lisp reference manual, but we can put it in the
> user manual as well.

Thanks.  A few comments below:

> --- a/doc/lispref/tips.texi
> +++ b/doc/lispref/tips.texi
> @@ -756,6 +756,13 @@ Documentation Tips
>  `https://www.gnu.org/').
>  @end smallexample
>  
> +@vindex help-mode-hide-markup
> +By default, the prefixes that are used to indicate Info and URL
> +hyperlinks (such as @samp{Info node} and @samp{URL}) are hidden when
> +the documentation string is displayed.  This behavior can be changed
> +by customizing  @code{help-mode-hide-markup} to
> +@code{nil}.

I think this is the wrong place to put this text.  This is a user
option of no particular importance to Lisp programmers, so it should
be in the user manual, not in the ELisp manual.

> ++++
> +*** New variable 'help-mode-hide-markup'.
> +When non-nil, help-mode buffers will not display the 'Info node' and
> +'URL' prefixes to hyperlinks.  Default is t.

I think if we change the default behavior, this entry should be
reworded to describe the changed behavior.  Like this:

  *** The "Info node" and "URL" prefixes to hyperlinks are now hidden.
  Help mode buffers no longer display these prefixes when they show
  links to Info manuals and Web pages.  Customize 'help-mode-hide-markup'
  to nil to get previous behavior.

> +(defcustom help-mode-hide-markup t

I'd prefer a more specific name for the variable, like
help-mode-hide-info-and-url-prefix.  Yes, that's a mouthful, but if we
don't expect to many people changing that, I think it's OK.



^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2018-03-14 15:54 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20180311031648.8003.90161@vcs0.savannah.gnu.org>
     [not found] ` <20180311031649.A9FBF20F52@vcs0.savannah.gnu.org>
2018-03-11  3:21   ` [Emacs-diffs] master f1c48b0: Remove many items obsolete since Emacs 22.1 Daniel Colascione
2018-03-11  3:40     ` iswitchb (was: [Emacs-diffs] master f1c48b0: Remove many items obsolete since Emacs 22.1) Stefan Monnier
2018-03-12 10:22       ` iswitchb Robert Pluim
2018-03-12 11:21         ` iswitchb Eli Zaretskii
2018-03-12 11:44           ` iswitchb Eli Zaretskii
2018-03-12 13:57             ` iswitchb Robert Pluim
2018-03-12 14:41               ` iswitchb Noam Postavsky
2018-03-12 16:56                 ` iswitchb Robert Pluim
2018-03-12 17:36                   ` iswitchb Eli Zaretskii
2018-03-12 17:56                     ` iswitchb Robert Pluim
2018-03-13 16:42                       ` iswitchb Robert Pluim
2018-03-14 15:54                         ` iswitchb Eli Zaretskii
2008-03-19 21:44 iswitchb Richard Stallman
2008-03-19 22:31 ` iswitchb paul r
2008-03-20  2:51   ` iswitchb Don Armstrong
2008-03-20  3:08     ` iswitchb Daniel Colascione
2008-03-20  8:43     ` iswitchb paul r
2008-03-20 14:22       ` iswitchb Stefan Monnier
2008-03-20 14:44         ` iswitchb paul r
2008-03-20 18:37     ` iswitchb Richard Stallman
2008-03-20 20:17       ` iswitchb Don Armstrong
2008-03-22  3:24         ` iswitchb Richard Stallman

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).