unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): Bind `non-essential' to `t'.
       [not found] <E1SgKyP-0002jR-81@vcs.savannah.gnu.org>
@ 2012-06-18  2:15 ` Stefan Monnier
  2012-06-18  9:00   ` Michael Albinus
  0 siblings, 1 reply; 17+ messages in thread
From: Stefan Monnier @ 2012-06-18  2:15 UTC (permalink / raw)
  To: Michael Albinus; +Cc: emacs-devel

>   * minibuffer.el (read-file-name-default): Bind `non-essential' to `t'.
  
This is wrong.  At the time it happens, it is the main focus of the
user's interaction, so it is very much essential.


        Stefan



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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): Bind `non-essential' to `t'.
  2012-06-18  2:15 ` [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): Bind `non-essential' to `t' Stefan Monnier
@ 2012-06-18  9:00   ` Michael Albinus
  2012-06-18 14:03     ` Stefan Monnier
  0 siblings, 1 reply; 17+ messages in thread
From: Michael Albinus @ 2012-06-18  9:00 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

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

>>   * minibuffer.el (read-file-name-default): Bind `non-essential' to `t'.
>
> This is wrong.  At the time it happens, it is the main focus of the
> user's interaction, so it is very much essential.

`non-essential' is meant to protect user interaction from undesired
events like connection establishing, including password request
etc. Usually, it is the task of the several file name completion
packages to care. Ido and icomplete, for example, behave like this.

However, without the patch in minibuffer, it still happens. This is due
to a `file-exists-p' call somewhere in the completion.

Maybe there is a better place to bind `non-essential'. But I still don't
understand all the completion code :-(

Here's a recipe to reproduce the problem (revert the patch in
minibuffer.el first):

emacs -Q -l icomplete -f icomplete-mode
C-x C-f /ssh:localhost:/ <TAB>

When quitting the password request, there's the backtrace

Debugger entered--Lisp error: (quit)
  signal(quit nil)
  byte-code("\302^H!\210\303    @       A\"\207" [vec err tramp-cleanup signal] 3)
  byte-code("\306^H!\307^H\310\311#\312 !r\313^H!q\210`)^Z^Y^[\211^\\203)^@\314\f!\203)^@\315\f!\316>\204E^@\317\320^H\311\"!^M@\232\203E^@\321\322 ^MA\"\32$
  tramp-maybe-open-connection(["ssh" nil "localhost" "/" nil])
  tramp-send-command(["ssh" nil "localhost" "/" nil] "echo \\\"`getconf PATH 2>/dev/null`\\\" 2>/dev/null; echo tramp_exit_status $?")
  tramp-send-command-and-check(["ssh" nil "localhost" "/" nil] "echo \\\"`getconf PATH 2>/dev/null`\\\"")
  tramp-send-command-and-read(["ssh" nil "localhost" "/" nil] "echo \\\"`getconf PATH 2>/dev/null`\\\"" noerror)
  tramp-get-remote-path(["ssh" nil "localhost" "/" nil])
  tramp-get-remote-perl(["ssh" nil "localhost" "/" nil])
  tramp-sh-handle-file-name-all-completions("" "/ssh:localhost:/")
  apply(tramp-sh-handle-file-name-all-completions ("" "/ssh:localhost:/"))
  tramp-sh-file-name-handler(file-name-all-completions "" "/ssh:localhost:/")
  apply(tramp-sh-file-name-handler file-name-all-completions ("" "/ssh:localhost:/"))
  byte-code("\300\301\215\207" [suppress (apply foreign operation args)] 2)
  #[nil "^HK\306^Y\211^Z<\203\240^@\n@\307=\203\240^@\306^[\310\311!\203\"^@\312\311\313N@!\202\221^@\314\315!\2039^@\316\315!\2044^@\317\315!\205\221^@\315$
  funcall(#[nil "^HK\306^Y\211^Z<\203\240^@\n@\307=\203\240^@\306^[\310\311!\203\"^@\312\311\313N@!\202\221^@\314\315!\2039^@\316\315!\2044^@\317\315!\205\2$
  tramp-file-name-handler(file-name-all-completions "" "/ssh:localhost:/")
  file-name-all-completions("" "/ssh:localhost:/")
  tramp-handle-file-name-completion("" "/ssh:localhost:/" file-exists-p)
  apply(tramp-handle-file-name-completion ("" "/ssh:localhost:/" file-exists-p))
  tramp-sh-file-name-handler(file-name-completion "" "/ssh:localhost:/" file-exists-p)
  apply(tramp-sh-file-name-handler file-name-completion ("" "/ssh:localhost:/" file-exists-p))
  byte-code("\300\301\215\207" [suppress (apply foreign operation args)] 2)
  #[nil "^HK\306^Y\211^Z<\203\240^@\n@\307=\203\240^@\306^[\310\311!\203\"^@\312\311\313N@!\202\221^@\314\315!\2039^@\316\315!\2044^@\317\315!\205\221^@\315$
  funcall(#[nil "^HK\306^Y\211^Z<\203\240^@\n@\307=\203\240^@\306^[\310\311!\203\"^@\312\311\313N@!\202\221^@\314\315!\2039^@\316\315!\2044^@\317\315!\205\2$
  tramp-file-name-handler(file-name-completion "" "/ssh:localhost:/" file-exists-p)
  file-name-completion("" "/ssh:localhost:/" file-exists-p)
  #[0 "\302\306=\203^H^@\307\207\310\300\311^[^\^]\312^^^_\313^M\f^K#,\203)^@\314\315\316\317\320 \"\300\321\311O\301\302%\207\302\242\322=\203M^@\323\300!G$
  funcall(#[0 "\302\306=\203^H^@\307\207\310\300\311^[^\^]\312^^^_\313^M\f^K#,\203)^@\314\315\316\317\320 \"\300\321\311O\301\302%\207\302\242\322=\203M^@\3$
  completion-file-name-table("/ssh:localhost:/" file-exists-p nil)
  try-completion("/ssh:localhost:/" completion-file-name-table file-exists-p)
  completion-basic-try-completion("/ssh:localhost:/" completion-file-name-table file-exists-p 16)
  #[257 "\300^A^M\2368\301@\302@\303\304@$\207" [1 ("/ssh:localhost:/") (completion-file-name-table) file-exists-p (16) completion-styles-alist] 6 "\n\n(fn $
  #[0 "\302\300\301@\301\211@A\240\210@!\240\207" [#[257 "\300^A^M\2368\301@\302@\303\304@$\207" [1 ("/ssh:localhost:/") (completion-file-name-table) file-e$
  funcall(#[0 "\302\300\301@\301\211@A\240\210@!\240\207" [#[257 "\300^A^M\2368\301@\302@\303\304@$\207" [1 ("/ssh:localhost:/") (completion-file-name-table$
  completion--some(#[257 "\300^A^M\2368\301@\302@\303\304@$\207" [1 ("/ssh:localhost:/") (completion-file-name-table) file-exists-p (16) completion-styles-a$
  completion--nth-completion(1 "/ssh:localhost:/" read-file-name-internal file-exists-p 16 (metadata (category . file) (completion--unquote-requote . t)))
  completion-try-completion("/ssh:localhost:/" read-file-name-internal file-exists-p 16 (metadata (category . file) (completion--unquote-requote . t)))
  completion--do-completion()
  minibuffer-complete()
  call-interactively(minibuffer-complete nil nil)
  read-from-minibuffer("Find file: " "~/src/emacs/" (keymap (keymap (32)) keymap (10 . minibuffer-complete-and-exit) (13 . minibuffer-complete-and-exit) key$
  completing-read-default("Find file: " read-file-name-internal file-exists-p confirm-after-completion "~/src/emacs/" file-name-history "~/src/emacs/" nil)
  completing-read("Find file: " read-file-name-internal file-exists-p confirm-after-completion "~/src/emacs/" file-name-history "~/src/emacs/")
  read-file-name-default("Find file: " nil "~/src/emacs/" confirm-after-completion nil nil)
  read-file-name("Find file: " nil "~/src/emacs/" confirm-after-completion)
  find-file-read-args("Find file: " confirm-after-completion)
  byte-code("\300\301\302 \"\207" [find-file-read-args "Find file: " confirm-nonexistent-file-or-buffer] 3)
  call-interactively(find-file nil nil)

>         Stefan

Best regards, Michael.



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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): Bind `non-essential' to `t'.
  2012-06-18  9:00   ` Michael Albinus
@ 2012-06-18 14:03     ` Stefan Monnier
  2012-06-18 14:58       ` [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): " Drew Adams
  2012-06-18 16:47       ` [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): " Michael Albinus
  0 siblings, 2 replies; 17+ messages in thread
From: Stefan Monnier @ 2012-06-18 14:03 UTC (permalink / raw)
  To: Michael Albinus; +Cc: emacs-devel

> Here's a recipe to reproduce the problem (revert the patch in
> minibuffer.el first):
> emacs -Q -l icomplete -f icomplete-mode
> C-x C-f /ssh:localhost:/ <TAB>

I don't see any problem here.  Tramp requests a password, as expected
and as it should (since the user hit TAB, she clearly wants completion).


        Stefan



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

* RE: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): Bind `non-essential' to `t'.
  2012-06-18 14:03     ` Stefan Monnier
@ 2012-06-18 14:58       ` Drew Adams
  2012-06-18 15:59         ` Stefan Monnier
  2012-06-18 16:47       ` [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): " Michael Albinus
  1 sibling, 1 reply; 17+ messages in thread
From: Drew Adams @ 2012-06-18 14:58 UTC (permalink / raw)
  To: 'Stefan Monnier', 'Michael Albinus'; +Cc: emacs-devel

> > Here's a recipe to reproduce the problem (revert the patch in
> > minibuffer.el first):
> > emacs -Q -l icomplete -f icomplete-mode
> > C-x C-f /ssh:localhost:/ <TAB>
> 
> I don't see any problem here.  Tramp requests a password, as expected
> and as it should (since the user hit TAB, she clearly wants 
> completion).

If I can chime in about the use case, though not about the implementation/fix -

I think that for most users most of the time, the completions shown by Icomplete
act mainly as background help.  They are not "essential", and most users (or at
least some users) would not want to be interrupted when entering a file name
just to provide some password because their minibuffer input so far was
recognized by Tramp/ange-ftp as possibly corresponding to a remote file.

A user who does want Tramp to prompt for a password need only hit TAB to cause
that.  IOW, I think there is a difference in how much a user is actively
requesting completion between hitting TAB and just letting Icomplete precomplete
the current input.

This is only about Icomplete preventing _its_ preparation of completion
suggestions from prompting the user to access a remote file system.

And if we think that some users do want Tramp to kick in during Icomplete, then
we can provide a user option (e.g. in icomplete.el) to control the behavior.

In sum, I think that most of the time an Icomplete user does not want Icomplete
to be so eager/assertive/aggressive.  (It is a bit like Eldoc.)

Again, I am not speaking about the implementation or about things other than
Icomplete.

If I had to guess about Ido, for instance, it would be that users of Ido might
typically want Tramp to interrupt for a password.

But users should in general be able to ignore Icomplete's suggestions - it
should be possible to treat Icomplete as background noise.  It would be OK for
that to be controlled by a user option.




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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): Bind `non-essential' to `t'.
  2012-06-18 14:58       ` [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): " Drew Adams
@ 2012-06-18 15:59         ` Stefan Monnier
  2012-06-18 19:58           ` Drew Adams
  0 siblings, 1 reply; 17+ messages in thread
From: Stefan Monnier @ 2012-06-18 15:59 UTC (permalink / raw)
  To: Drew Adams; +Cc: 'Michael Albinus', emacs-devel

> I think that for most users most of the time, the completions shown by
> Icomplete act mainly as background help.  They are not "essential",
> and most users (or at

AFAICT, the behavior in the test-case is the same with or
without icomplete, so this is not about icomplete (and icomplete
already sets non-essential, which indeed is the right thing to do).


        Stefan



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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): Bind `non-essential' to `t'.
  2012-06-18 14:03     ` Stefan Monnier
  2012-06-18 14:58       ` [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): " Drew Adams
@ 2012-06-18 16:47       ` Michael Albinus
  2012-06-18 20:35         ` Stefan Monnier
  1 sibling, 1 reply; 17+ messages in thread
From: Michael Albinus @ 2012-06-18 16:47 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

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

>> Here's a recipe to reproduce the problem (revert the patch in
>> minibuffer.el first):
>> emacs -Q -l icomplete -f icomplete-mode
>> C-x C-f /ssh:localhost:/ <TAB>
>
> I don't see any problem here.  Tramp requests a password, as expected
> and as it should (since the user hit TAB, she clearly wants completion).

As Drew said, it might disturb users. It wouldn't be necessary, if the
default check wouldn't be `file-exsists-p', which provokes the password
request. Something like

(or (file-remote-p fn) (file-exists-p fn))

should be better (again, I don't know where to change).

Or we spend a customer option for this, which will be the bound value
of `non-essential' in `read-file-name-default'.

>         Stefan

Best regards, Michael.



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

* RE: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): Bind `non-essential' to `t'.
  2012-06-18 15:59         ` Stefan Monnier
@ 2012-06-18 19:58           ` Drew Adams
  2012-06-18 21:20             ` Stefan Monnier
  0 siblings, 1 reply; 17+ messages in thread
From: Drew Adams @ 2012-06-18 19:58 UTC (permalink / raw)
  To: 'Stefan Monnier'; +Cc: 'Michael Albinus', emacs-devel

> > I think that for most users most of the time, the 
> > completions shown by Icomplete act mainly as background help.
> > They are not "essential",
> 
> AFAICT, the behavior in the test-case is the same with or
> without icomplete, so this is not about icomplete (and icomplete
> already sets non-essential, which indeed is the right thing to do).

Right.  Actually, it was I who reported the problem to Michael, which was this:

Without my hitting TAB to ask for completion, Icomplete was prompting for a
password as soon as I typed the `:' here:

 Find file in other window: /foo.bar.com:
                                        ^ This provoked prompt

It is normal and desirable for Tramp to ask for a password if the user hits TAB
and a connection has not yet been opened to the given host.  But not when the
user just types self-inserting chars such as `:'.  That was the point.

(Dunno whether it is relevant, but I am also using FTP as my default Tramp
method.)

Again, if some users do want Icomplete to be more eager and try to also provide
remote matches for connections that have not yet been opened, then let's add a
user option for this.




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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): Bind `non-essential' to `t'.
  2012-06-18 16:47       ` [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): " Michael Albinus
@ 2012-06-18 20:35         ` Stefan Monnier
  2012-06-18 20:41           ` Michael Albinus
  0 siblings, 1 reply; 17+ messages in thread
From: Stefan Monnier @ 2012-06-18 20:35 UTC (permalink / raw)
  To: Michael Albinus; +Cc: emacs-devel

>>> Here's a recipe to reproduce the problem (revert the patch in
>>> minibuffer.el first):
>>> emacs -Q -l icomplete -f icomplete-mode
>>> C-x C-f /ssh:localhost:/ <TAB>
>> I don't see any problem here.  Tramp requests a password, as expected
>> and as it should (since the user hit TAB, she clearly wants completion).
> As Drew said, it might disturb users. It wouldn't be necessary, if the
> default check wouldn't be `file-exsists-p', which provokes the password
> request. Something like

> (or (file-remote-p fn) (file-exists-p fn))

> should be better (again, I don't know where to change).

Why?  The user wants to get the list of completions (that's why she hit
TAB), so she really wants to connect.  Not connecting (as we currently
do) is a bug.


        Stefan



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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): Bind `non-essential' to `t'.
  2012-06-18 20:35         ` Stefan Monnier
@ 2012-06-18 20:41           ` Michael Albinus
  0 siblings, 0 replies; 17+ messages in thread
From: Michael Albinus @ 2012-06-18 20:41 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

> Why?  The user wants to get the list of completions (that's why she hit
> TAB), so she really wants to connect.  Not connecting (as we currently
> do) is a bug.

Well, after reading Drew's use case again, I've reverted that patch.

>         Stefan

Best regards, Michael.



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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): Bind `non-essential' to `t'.
  2012-06-18 19:58           ` Drew Adams
@ 2012-06-18 21:20             ` Stefan Monnier
  2012-06-19 12:36               ` Michael Albinus
  0 siblings, 1 reply; 17+ messages in thread
From: Stefan Monnier @ 2012-06-18 21:20 UTC (permalink / raw)
  To: Drew Adams; +Cc: 'Michael Albinus', emacs-devel

>  Find file in other window: /foo.bar.com:
>                                         ^ This provoked prompt

Yes, this is a bug, indeed.

> It is normal and desirable for Tramp to ask for a password if the user
> hits TAB and a connection has not yet been opened to the given host.

Agreed.  I still don't understand why this would require changing the
non-icomplete code to fix.


        Stefan



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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): Bind `non-essential' to `t'.
  2012-06-18 21:20             ` Stefan Monnier
@ 2012-06-19 12:36               ` Michael Albinus
  2012-06-19 13:16                 ` Drew Adams
  0 siblings, 1 reply; 17+ messages in thread
From: Michael Albinus @ 2012-06-19 12:36 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Drew Adams, emacs-devel

Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>>  Find file in other window: /foo.bar.com:
>>                                         ^ This provoked prompt
>
> Yes, this is a bug, indeed.

It looks like a bug. But I cannot reproduce it. Scenario:

emacs -Q

(require 'icomplete)
(setq icomplete-with-completion-tables
      (append icomplete-with-completion-tables
      '(read-file-name-internal)))
(icomplete-mode 1)

C-x C-f /ssh:localhost:
                      ^ no problem

                       <TAB>
                       ^ a new connection is established

That's expected. Drew, could you, please, check again when the recent
Windows binaries arrive?

>         Stefan

Best regards, Michael.



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

* RE: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): Bind `non-essential' to `t'.
  2012-06-19 12:36               ` Michael Albinus
@ 2012-06-19 13:16                 ` Drew Adams
  2012-06-19 13:35                   ` Michael Albinus
  0 siblings, 1 reply; 17+ messages in thread
From: Drew Adams @ 2012-06-19 13:16 UTC (permalink / raw)
  To: 'Michael Albinus', 'Stefan Monnier'; +Cc: emacs-devel

> It looks like a bug. But I cannot reproduce it. Scenario:
> 
> emacs -Q
> (require 'icomplete)
> (setq icomplete-with-completion-tables
>       (append icomplete-with-completion-tables
>       '(read-file-name-internal)))
> (icomplete-mode 1)
> 
> C-x C-f /ssh:localhost:
>                       ^ no problem
>                        <TAB>
>                        ^ a new connection is established
> That's expected.

Yes, that's what I would expect.

1. I'm on Windows.  This is missing at the beginning of the recipe:

M-x load-file c:/path/to/cygwin-mount.el
M-x load-file c:/path/to/setup-cygwin.el

2. And you left this out, Michael:

(setq tramp-default-method "ftp")

3. And the last step is this (no ssh):

C-x C-f /foobar.baztoto.com:
                           ^ Tramp asks for the password

(At that point, even C-g won't exit the minibuffer, presumably because Icomplete
does its thing again on post-command-hook (?).  I need to do C-] to exit.)

That's using 24.1 (the release).

> Drew, could you, please, check again when the recent
> Windows binaries arrive?

Will do.  Hopefully that will be in a week or so.  Thanks for working on this.

In the latest version I have, nothing at all happens when I type `:' or when I
then type TAB after the `:' - GNU Emacs 24.1.50.1 (i386-mingw-nt5.1.2600) of
2012-06-18 on MARVIN.




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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): Bind `non-essential' to `t'.
  2012-06-19 13:16                 ` Drew Adams
@ 2012-06-19 13:35                   ` Michael Albinus
  2012-06-19 16:29                     ` Stefan Monnier
  0 siblings, 1 reply; 17+ messages in thread
From: Michael Albinus @ 2012-06-19 13:35 UTC (permalink / raw)
  To: Drew Adams; +Cc: 'Stefan Monnier', emacs-devel

"Drew Adams" <drew.adams@oracle.com> writes:

> 1. I'm on Windows.  This is missing at the beginning of the recipe:
>
> M-x load-file c:/path/to/cygwin-mount.el
> M-x load-file c:/path/to/setup-cygwin.el

Nothing I could reproduce, I'm not on Windows.

> 2. And you left this out, Michael:
>
> (setq tramp-default-method "ftp")
>
> 3. And the last step is this (no ssh):
>
> C-x C-f /foobar.baztoto.com:
>                            ^ Tramp asks for the password
>

OK, again on Ubuntu:

src/emacs -Q

(require 'icomplete)
(setq icomplete-with-completion-tables
      (append icomplete-with-completion-tables
      '(read-file-name-internal)))
(icomplete-mode 1)
(setq tramp-default-method "ftp")

C-x C-f /foobar.baztoto.com:
                           ^ no problem so far              

                            <TAB>
                            ^ nothing happens

                            / 
                            ^ I get an error:

Error in post-command-hook (#[nil \300\301!\207 [run-hooks
icomplete-post-command-hook] 2]): (error "Command attempted to use
minibuffer while in minibuffer")

But that's another story. Problem in icomplete?

> In the latest version I have, nothing at all happens when I type `:' or when I
> then type TAB after the `:' - GNU Emacs 24.1.50.1 (i386-mingw-nt5.1.2600) of
> 2012-06-18 on MARVIN.

Yes, that's due to the patch to minibuffer.el, which I have reverted
meanwhile.

Best regards, Michael.



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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): Bind `non-essential' to `t'.
  2012-06-19 13:35                   ` Michael Albinus
@ 2012-06-19 16:29                     ` Stefan Monnier
  2012-06-19 19:03                       ` Michael Albinus
  0 siblings, 1 reply; 17+ messages in thread
From: Stefan Monnier @ 2012-06-19 16:29 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Drew Adams, emacs-devel

>> 1. I'm on Windows.  This is missing at the beginning of the recipe:
>> 
>> M-x load-file c:/path/to/cygwin-mount.el
>> M-x load-file c:/path/to/setup-cygwin.el

> Nothing I could reproduce, I'm not on Windows.

>> 2. And you left this out, Michael:
>> 
>> (setq tramp-default-method "ftp")
>> 
>> 3. And the last step is this (no ssh):
>> 
>> C-x C-f /foobar.baztoto.com:
>> ^ Tramp asks for the password
>> 

> OK, again on Ubuntu:

> src/emacs -Q

> (require 'icomplete)
> (setq icomplete-with-completion-tables
>       (append icomplete-with-completion-tables
>       '(read-file-name-internal)))
> (icomplete-mode 1)
> (setq tramp-default-method "ftp")

> C-x C-f /foobar.baztoto.com:
>                            ^ no problem so far              

>                             <TAB>
>                             ^ nothing happens

>                             / 
>                             ^ I get an error:

> Error in post-command-hook (#[nil \300\301!\207 [run-hooks
> icomplete-post-command-hook] 2]): (error "Command attempted to use
> minibuffer while in minibuffer")

> But that's another story. Problem in icomplete?

That "Command attempted to use minibuffer while in minibuffer" is
because icomplete triggered a Tramp connection which tried to use
the minibuffer to get a password.
So if you add (setq enable-recursive-minibuffers t) to the above recipe
you can reproduce the problem.

I don't think Tramp should attempt a connection in that case since
(according to M-x trace-function RET icomplete-completions) the password
prompt happens during the call to icomplete-completions which binds
non-essential to t.


        Stefan



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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): Bind `non-essential' to `t'.
  2012-06-19 16:29                     ` Stefan Monnier
@ 2012-06-19 19:03                       ` Michael Albinus
  2012-06-20  6:57                         ` Michael Albinus
  0 siblings, 1 reply; 17+ messages in thread
From: Michael Albinus @ 2012-06-19 19:03 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Drew Adams, emacs-devel

Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>> C-x C-f /foobar.baztoto.com:
>>                            ^ no problem so far              
>
>>                             <TAB>
>>                             ^ nothing happens
>
>>                             / 
>>                             ^ I get an error:
>
>> Error in post-command-hook (#[nil \300\301!\207 [run-hooks
>> icomplete-post-command-hook] 2]): (error "Command attempted to use
>> minibuffer while in minibuffer")
>
>> But that's another story. Problem in icomplete?
>
> That "Command attempted to use minibuffer while in minibuffer" is
> because icomplete triggered a Tramp connection which tried to use
> the minibuffer to get a password.
> So if you add (setq enable-recursive-minibuffers t) to the above recipe
> you can reproduce the problem.
>
> I don't think Tramp should attempt a connection in that case since
> (according to M-x trace-function RET icomplete-completions) the password
> prompt happens during the call to icomplete-completions which binds
> non-essential to t.

Seems that `ange-ftp-get-passwd' should also care `non-essential'. I'll
work on it, tomorrow. A first attempt with a trivial patch did not
succeed :-(

>         Stefan

Best regards, Michael.



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

* Re: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): Bind `non-essential' to `t'.
  2012-06-19 19:03                       ` Michael Albinus
@ 2012-06-20  6:57                         ` Michael Albinus
  2012-06-20 13:29                           ` Drew Adams
  0 siblings, 1 reply; 17+ messages in thread
From: Michael Albinus @ 2012-06-20  6:57 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Drew Adams, emacs-devel

Michael Albinus <michael.albinus@gmx.de> writes:

> Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>> I don't think Tramp should attempt a connection in that case since
>> (according to M-x trace-function RET icomplete-completions) the password
>> prompt happens during the call to icomplete-completions which binds
>> non-essential to t.
>
> Seems that `ange-ftp-get-passwd' should also care `non-essential'. I'll
> work on it, tomorrow. A first attempt with a trivial patch did not
> succeed :-(

Should be fixed now, as rev 108665. Drew, could you please check on
Windows with the next binaries?

>>         Stefan

Best regards, Michael.



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

* RE: [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): Bind `non-essential' to `t'.
  2012-06-20  6:57                         ` Michael Albinus
@ 2012-06-20 13:29                           ` Drew Adams
  0 siblings, 0 replies; 17+ messages in thread
From: Drew Adams @ 2012-06-20 13:29 UTC (permalink / raw)
  To: 'Michael Albinus', 'Stefan Monnier'; +Cc: emacs-devel

> Should be fixed now, as rev 108665. Drew, could you please check on
> Windows with the next binaries?

Will do.  Thanks.




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

end of thread, other threads:[~2012-06-20 13:29 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <E1SgKyP-0002jR-81@vcs.savannah.gnu.org>
2012-06-18  2:15 ` [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): Bind `non-essential' to `t' Stefan Monnier
2012-06-18  9:00   ` Michael Albinus
2012-06-18 14:03     ` Stefan Monnier
2012-06-18 14:58       ` [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el(read-file-name-default): " Drew Adams
2012-06-18 15:59         ` Stefan Monnier
2012-06-18 19:58           ` Drew Adams
2012-06-18 21:20             ` Stefan Monnier
2012-06-19 12:36               ` Michael Albinus
2012-06-19 13:16                 ` Drew Adams
2012-06-19 13:35                   ` Michael Albinus
2012-06-19 16:29                     ` Stefan Monnier
2012-06-19 19:03                       ` Michael Albinus
2012-06-20  6:57                         ` Michael Albinus
2012-06-20 13:29                           ` Drew Adams
2012-06-18 16:47       ` [Emacs-diffs] /srv/bzr/emacs/trunk r108646: * minibuffer.el (read-file-name-default): " Michael Albinus
2012-06-18 20:35         ` Stefan Monnier
2012-06-18 20:41           ` Michael Albinus

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).