Subject: RE: bug#5849: 23.1.95; completion-auto-help blocks icomplete-mode

From: "Drew Adams" <[email-masked]>
Date: Sat, 10 Apr 2010 12:32:16 -0700

> > If your suggestion were to just not show the message
> > [Next char not unique] when icomplete-mode is on
> 
> Yes, obviously this is what I meant.  Like this:
> 
> (if (cond (icomplete-mode t)
>           ((eq completion-auto-help 'lazy)
>            (eq this-command last-command))
>           (t completion-auto-help))
>     (minibuffer-completion-help)
>   (minibuffer-message "Next char not unique")))

Yes, that's OK by me.
But either of these (equivalent) forms is clearer, IMO:

(if (or icomplete-mode
        (and completion-auto-help
             (or (not (eq completion-auto-help 'lazy))
                 (eq this-command last-command))))
    (minibuffer-completion-help)
  (minibuffer-message "Next char not unique"))

(if (or icomplete-mode
        (if (eq completion-auto-help 'lazy)
            (eq this-command last-command)
          completion-auto-help))
    (minibuffer-completion-help)
  (minibuffer-message "Next char not unique"))

---

And if we didn't care whether a non-t, non-`lazy', non-nil value calls
`minibuffer-completion-help', then this (not equivalent) would be OK too:

(if (or icomplete-mode
        (eq t completion-auto-help)
        (and (eq completion-auto-help 'lazy)
             (eq this-command last-command)))
    (minibuffer-completion-help)
  (minibuffer-message "Next char not unique"))