[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

change to try-completion behavior

From: Johan Bockgård
Subject: change to try-completion behavior
Date: Thu, 22 Feb 2007 19:33:08 +0100
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.93 (gnu/linux)

There was an old thread in gnu.emacs.help (see below) about the change
in behavior of try-completion in CVS.

This code

  (let ((completion-ignore-case t))
       (try-completion "w" '(("W") ("Write") ("w"))))

returns "W" in Emacs 22. In Emacs 21 is used to return "w", that is
the best match _including_ case.

I should have said in that discussion that I think that this is a
bug/regression. Ftry_completion contains this comment:

  /* If there is more than one exact match ignoring case, and one of
     them is exact including case, prefer that one. */

The new short-circuiting behavior means that this note is not true in


From: Johan Bockgård <bojohan+news <at> dd.chalmers.se>
Subject: Re: change to try-completion behavior in 21.3?
Newsgroups: gmane.emacs.help
Date: 2005-12-17 06:49:54 GMT

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

>> Why should it ever return the capital letter W?
> Because in your completion table, you have "W".

"w" was also in the table.

This change

  revision 1.237
  date: 2002-04-09 19:28:42 +0000;  author: monnier;  state: Exp; lines: +89 
-47 [...]
  (Ftry_completion): Allow lambda forms and lists of strings for
  Short-circuit the search as soon as it "failed". [...]

added this piece of code (approximately)

  if (matchsize <= SCHARS (string)
      && matchcount > 1)
    /* No need to look any further.  */

When completion-ignore-case is t this doesn't necessarily find the
best match _including case_ (AFAICS).

Johan Bockgård

reply via email to

[Prev in Thread] Current Thread [Next in Thread]