all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Command timeclock-out
@ 2014-01-16 15:14 Miguel Guedes
  2014-01-16 17:07 ` completing-read does not accept spaces (was: Command timeclock-out) Óscar Fuentes
  0 siblings, 1 reply; 9+ messages in thread
From: Miguel Guedes @ 2014-01-16 15:14 UTC (permalink / raw)
  To: help-gnu-emacs

I've just noticed that when executing `timeclock-out' and inputting a 
reason it does not accept spaces.  This command makes use of the 
function `completing-read'.

Is not accepting spaces when entering a reason for clocking out the 
intended behaviour?


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

* completing-read does not accept spaces (was: Command timeclock-out)
  2014-01-16 15:14 Command timeclock-out Miguel Guedes
@ 2014-01-16 17:07 ` Óscar Fuentes
  2014-01-16 18:13   ` Drew Adams
  0 siblings, 1 reply; 9+ messages in thread
From: Óscar Fuentes @ 2014-01-16 17:07 UTC (permalink / raw)
  To: Miguel Guedes; +Cc: help-gnu-emacs

Miguel Guedes <miguel.a.guedes@gmail.com> writes:

> I've just noticed that when executing `timeclock-out' and inputting a
> reason it does not accept spaces.  This command makes use of the
> function `completing-read'.
>
> Is not accepting spaces when entering a reason for clocking out the
> intended behaviour?

Reading the docstring of completing-read I see no reason why it should
not accept spaces. So either the docstring is at fault or there is a bug
on completing-read. Curiously, the function will complete the user's
input to a string containing spaces if there is one on the collection of
candidates:

(completing-read "say: " (list "hello there"))

Please submit a bug report (M-x report-emacs-bug) against completing-read.



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

* RE: completing-read does not accept spaces (was: Command timeclock-out)
  2014-01-16 17:07 ` completing-read does not accept spaces (was: Command timeclock-out) Óscar Fuentes
@ 2014-01-16 18:13   ` Drew Adams
  2014-01-16 18:36     ` completing-read does not accept spaces Óscar Fuentes
                       ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Drew Adams @ 2014-01-16 18:13 UTC (permalink / raw)
  To: Óscar Fuentes, Miguel Guedes; +Cc: help-gnu-emacs

> > I've just noticed that when executing `timeclock-out' and inputting a
> > reason it does not accept spaces.  This command makes use of the
> > function `completing-read'.
> >
> > Is not accepting spaces when entering a reason for clocking out the
> > intended behaviour?
> 
> Reading the docstring of completing-read I see no reason why it should
> not accept spaces. So either the docstring is at fault or there is a bug
> on completing-read. 

No.  The doc to read is (elisp) `Completion Commands', in particular,
about the variables named `minibuffer-local-*-map'.

> Curiously, the function will complete the user's input to a string
> containing spaces if there is one on the collection of candidates:
> (completing-read "say: " (list "hello there"))

Irrelevant here.  As the doc I mentioned says, `SPC' is bound to
`minibuffer-complete-word', and that is what you are seeing.  `SPC' is
not bound to `self-insert-command' here - it is not inserting itself.
It is just completing a "word" at a time.

> Please submit a bug report (M-x report-emacs-bug) against completing-read.

No.  There is no bug here.  This is the behavior by design, like
it or not.

Do I personally think that `SPC' should generally be self-inserting
during completion?  You bet I do.  And so should `?'.  And so should
`C-j' (newline).  (And this is the case in Icicle mode, for instance.)

But that is not the opinion of Emacs Dev.  It took decades to finally
get `SPC' to be self-inserting for file-name completion (see variable
`minibuffer-local-filename-completion-map', in the same Elisp manual
node).  Patience. ;-)



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

* Re: completing-read does not accept spaces
  2014-01-16 18:13   ` Drew Adams
@ 2014-01-16 18:36     ` Óscar Fuentes
  2014-01-16 18:50       ` Drew Adams
  2014-01-16 19:01     ` Stefan Monnier
  2014-01-23 12:29     ` Miguel Guedes
  2 siblings, 1 reply; 9+ messages in thread
From: Óscar Fuentes @ 2014-01-16 18:36 UTC (permalink / raw)
  To: help-gnu-emacs

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

>> Reading the docstring of completing-read I see no reason why it should
>> not accept spaces. So either the docstring is at fault or there is a bug
>> on completing-read. 
>
> No.  The doc to read is (elisp) `Completion Commands', in particular,
> about the variables named `minibuffer-local-*-map'.

This is terrible. completing-read docstring says

   Read a string in the minibuffer, with completion.

A string is a string is a string. It doesn't say "a word", or "a
symbol", or "a string without spaces". It says "a string".

>> Curiously, the function will complete the user's input to a string
>> containing spaces if there is one on the collection of candidates:
>> (completing-read "say: " (list "hello there"))
>
> Irrelevant here.  As the doc I mentioned says, `SPC' is bound to
> `minibuffer-complete-word', and that is what you are seeing.  `SPC' is
> not bound to `self-insert-command' here - it is not inserting itself.

So by not binding SPC to self-insert-command they are breaking
completing-read stated purpose.

> It is just completing a "word" at a time.
>
>> Please submit a bug report (M-x report-emacs-bug) against completing-read.
>
> No.  There is no bug here.  This is the behavior by design, like
> it or not.

The docstring is wrong when it says "Read a string". That's a bug, IMO.

> Do I personally think that `SPC' should generally be self-inserting
> during completion?  You bet I do.  And so should `?'.  And so should
> `C-j' (newline).  (And this is the case in Icicle mode, for instance.)
>
> But that is not the opinion of Emacs Dev.  It took decades to finally
> get `SPC' to be self-inserting for file-name completion (see variable
> `minibuffer-local-filename-completion-map', in the same Elisp manual
> node).  Patience. ;-)

Sigh. I know what you mean.




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

* RE: completing-read does not accept spaces
  2014-01-16 18:36     ` completing-read does not accept spaces Óscar Fuentes
@ 2014-01-16 18:50       ` Drew Adams
  0 siblings, 0 replies; 9+ messages in thread
From: Drew Adams @ 2014-01-16 18:50 UTC (permalink / raw)
  To: Óscar Fuentes, help-gnu-emacs

> >> Reading the docstring of completing-read I see no reason why it should
> >> not accept spaces. So either the docstring is at fault or there is a bug
> >> on completing-read.
> >
> > No.  The doc to read is (elisp) `Completion Commands', in particular,
> > about the variables named `minibuffer-local-*-map'.
> 
> This is terrible. completing-read docstring says
>
>    Read a string in the minibuffer, with completion.
> 
> A string is a string is a string. It doesn't say "a word", or "a
> symbol", or "a string without spaces". It says "a string".

It should perhaps say something like "Read your input in the minibuffer
with completion, and return a string."

It says "a string" because that is what `completing-read' returns.

But if you find that doc string confusing, then by all means, consider
filing a doc bug.  

> >> Curiously, the function will complete the user's input to a string
> >> containing spaces if there is one on the collection of candidates:
> >> (completing-read "say: " (list "hello there"))
> >
> > Irrelevant here.  As the doc I mentioned says, `SPC' is bound to
> > `minibuffer-complete-word', and that is what you are seeing.  `SPC' is
> > not bound to `self-insert-command' here - it is not inserting itself.
> 
> So by not binding SPC to self-insert-command they are breaking
> completing-read stated purpose.

The purpose as stated does not say anything about what keys you can type
to produce the minibuffer content that gets read.

> > It is just completing a "word" at a time.
> >
> >> Please submit a bug report (M-x report-emacs-bug) against completing-
> >> read.
> >
> > No.  There is no bug here.  This is the behavior by design, like
> > it or not.
> 
> The docstring is wrong when it says "Read a string". That's a bug, IMO.

See above.  The input part of the minibuffer (i.e., after the prompt)
can be said to be read as a string.  But even that is not necessarily
accurate.  It is certainly not simply read as a Lisp string, in the
sense of what function `read' does.

But really, I believe what is intended by "Read a string" here is that
the minibufer content is possibly completed and then is accepted and
interpreted.  IOW, this use of "read" is in the general sense of
_reading input_.

The "as a string" really refers to the fact that what is produced by
the act of reading (i.e., what is returned by the function) is a string.

But again, if the doc is not clear to you, consider letting Emacs Dev
know, by filing a bug report.  Perhaps they can improve it to remove
the perceived ambiguity.

> > Do I personally think that `SPC' should generally be self-inserting
> > during completion?  You bet I do.  And so should `?'.  And so should
> > `C-j' (newline).  (And this is the case in Icicle mode, for instance.)
> >
> > But that is not the opinion of Emacs Dev.  It took decades to finally
> > get `SPC' to be self-inserting for file-name completion (see variable
> > `minibuffer-local-filename-completion-map', in the same Elisp manual
> > node).  Patience. ;-)
> 
> Sigh. I know what you mean.

Hang in there, Oscar.



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

* Re: completing-read does not accept spaces
  2014-01-16 18:13   ` Drew Adams
  2014-01-16 18:36     ` completing-read does not accept spaces Óscar Fuentes
@ 2014-01-16 19:01     ` Stefan Monnier
  2014-01-23 12:29     ` Miguel Guedes
  2 siblings, 0 replies; 9+ messages in thread
From: Stefan Monnier @ 2014-01-16 19:01 UTC (permalink / raw)
  To: help-gnu-emacs

> Patience. ;-)

Bug reports can help, too,


        Stefan




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

* Re: completing-read does not accept spaces
  2014-01-16 18:13   ` Drew Adams
  2014-01-16 18:36     ` completing-read does not accept spaces Óscar Fuentes
  2014-01-16 19:01     ` Stefan Monnier
@ 2014-01-23 12:29     ` Miguel Guedes
  2014-01-23 14:20       ` Óscar Fuentes
  2014-01-23 17:20       ` Drew Adams
  2 siblings, 2 replies; 9+ messages in thread
From: Miguel Guedes @ 2014-01-23 12:29 UTC (permalink / raw)
  To: Drew Adams, Óscar Fuentes; +Cc: help-gnu-emacs

On 16/01/14 18:13, Drew Adams wrote:
<snip>
> No.  There is no bug here.  This is the behavior by design, like
> it or not.
>
> Do I personally think that `SPC' should generally be self-inserting
> during completion?  You bet I do.  And so should `?'.  And so should
> `C-j' (newline).  (And this is the case in Icicle mode, for instance.)
>
> But that is not the opinion of Emacs Dev.  It took decades to finally
> get `SPC' to be self-inserting for file-name completion (see variable
> `minibuffer-local-filename-completion-map', in the same Elisp manual
> node).  Patience. ;-)
>

But would it be fair to say that the command `timeclock-out' shouldn't 
be making use of `completing-read' for entering a reason (to clock out) 
and thus a bug should be filed?

Many thanks for your replies.



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

* Re: completing-read does not accept spaces
  2014-01-23 12:29     ` Miguel Guedes
@ 2014-01-23 14:20       ` Óscar Fuentes
  2014-01-23 17:20       ` Drew Adams
  1 sibling, 0 replies; 9+ messages in thread
From: Óscar Fuentes @ 2014-01-23 14:20 UTC (permalink / raw)
  To: Miguel Guedes; +Cc: help-gnu-emacs

Miguel Guedes <miguel.a.guedes@gmail.com> writes:

> But would it be fair to say that the command `timeclock-out' shouldn't
> be making use of `completing-read' for entering a reason (to clock
> out) and thus a bug should be filed?

I'm not sure about the intent of the timeclock author about that. The
same as `project', `reason' could be expected to be a keyword
("finished", "pause", "lunch".) You can use non-blank separators to
cheat ("walk-dog").

Anyways, if the author's plans was to allow full strings, there is a bug
related to completing-read usage; if not, the documentation of timeclock
should be expanded to explain how `reason' should look like.

So I'll go ahead and file a bug (M-x report-emacs-bug)



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

* RE: completing-read does not accept spaces
  2014-01-23 12:29     ` Miguel Guedes
  2014-01-23 14:20       ` Óscar Fuentes
@ 2014-01-23 17:20       ` Drew Adams
  1 sibling, 0 replies; 9+ messages in thread
From: Drew Adams @ 2014-01-23 17:20 UTC (permalink / raw)
  To: Miguel Guedes, Óscar Fuentes; +Cc: help-gnu-emacs

> But would it be fair to say that the command `timeclock-out' shouldn't
> be making use of `completing-read' for entering a reason (to clock out)
> and thus a bug should be filed?

Sorry, I know nothing about Timeclock - what it does, or why, or how.

I never time anything.  And I haven't punched a timeclock since
doing factory work when young - many moon ago.

You can probably judge yourself whether it has a bug.  And you need
not be sure, to file a bug report.  Emacs Dev will tell you whether
they agree that what you reported is a bug.  `M-x report-emacs-bug'.



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

end of thread, other threads:[~2014-01-23 17:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-16 15:14 Command timeclock-out Miguel Guedes
2014-01-16 17:07 ` completing-read does not accept spaces (was: Command timeclock-out) Óscar Fuentes
2014-01-16 18:13   ` Drew Adams
2014-01-16 18:36     ` completing-read does not accept spaces Óscar Fuentes
2014-01-16 18:50       ` Drew Adams
2014-01-16 19:01     ` Stefan Monnier
2014-01-23 12:29     ` Miguel Guedes
2014-01-23 14:20       ` Óscar Fuentes
2014-01-23 17:20       ` Drew Adams

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.