unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* call-interactively 'query-replace and 'isearch-forward
@ 2013-03-11 15:54 Thorsten Jolitz
  2013-03-11 16:08 ` Drew Adams
  0 siblings, 1 reply; 5+ messages in thread
From: Thorsten Jolitz @ 2013-03-11 15:54 UTC (permalink / raw)
  To: help-gnu-emacs


Hi List, 

I call-interactively 'query-replace and 'isearch-forward in a program,
and the former works as expected (ask me for input), the latter not
(just make the window blink). 

Trying the same calls in *scratch* buffer shows only a tiny difference:

,------------------------------------
| (call-interactively 'query-replace)
`------------------------------------

asks for input and moves point to mini-buffer, while 

,--------------------------------------
| (call-interactively 'isearch-forward)
`--------------------------------------

returns t, asks for input (I-search: ) - but leaves point in the
scratch-buffer behind the returned t. 

Is there a known problem with calling 'isearch-forward' interactively?
How can I make that work?

-- 
cheers,
Thorsten





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

* RE: call-interactively 'query-replace and 'isearch-forward
  2013-03-11 15:54 call-interactively 'query-replace and 'isearch-forward Thorsten Jolitz
@ 2013-03-11 16:08 ` Drew Adams
  2013-03-11 16:21   ` Thorsten Jolitz
  0 siblings, 1 reply; 5+ messages in thread
From: Drew Adams @ 2013-03-11 16:08 UTC (permalink / raw)
  To: 'Thorsten Jolitz', help-gnu-emacs

> I call-interactively 'query-replace and 'isearch-forward in a program,
> and the former works as expected (ask me for input), the latter not
> (just make the window blink). 
>
> Is there a known problem with calling 'isearch-forward' interactively?
> How can I make that work?

No such problem known to me, at least.

If you want help, please try to provide a specific recipe, starting from emacs
-Q.  Indicate what happens at each place where something you do not expect
happens, and state what behavior you expected instead.

This works as I would expect:

emacs -Q

(defun foo ()
  (interactive)
  (call-interactively #'isearch-forward))

M-x foo

Does that not do what you expect?





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

* Re: call-interactively 'query-replace and 'isearch-forward
  2013-03-11 16:08 ` Drew Adams
@ 2013-03-11 16:21   ` Thorsten Jolitz
  2013-03-11 16:46     ` Drew Adams
  0 siblings, 1 reply; 5+ messages in thread
From: Thorsten Jolitz @ 2013-03-11 16:21 UTC (permalink / raw)
  To: help-gnu-emacs

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

> This works as I would expect:
>
> emacs -Q
>
> (defun foo ()
>   (interactive)
>   (call-interactively #'isearch-forward))
>
> M-x foo
>
> Does that not do what you expect?

Try:

,------------------------------------------
| emacs -Q
| 
| (defun foo ()
|   (interactive)
|   (call-interactively #'isearch-forward)
|   (call-interactively #'query-replace))
| 
| (defun bar ()
|   (interactive)
|   (call-interactively #'query-replace)
|   (call-interactively #'isearch-forward))
| 
| M-x foo
| M-x bar
`------------------------------------------

Both do the same thing: ask for input for 'query-replace'.

'isearch-forward' is simply skipped when calling 'foo'.

-- 
cheers,
Thorsten




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

* RE: call-interactively 'query-replace and 'isearch-forward
  2013-03-11 16:21   ` Thorsten Jolitz
@ 2013-03-11 16:46     ` Drew Adams
  2013-03-11 17:10       ` Thorsten Jolitz
  0 siblings, 1 reply; 5+ messages in thread
From: Drew Adams @ 2013-03-11 16:46 UTC (permalink / raw)
  To: 'Thorsten Jolitz', help-gnu-emacs

> ,------------------------------------------
> | emacs -Q
> | 
> | (defun foo ()
> |   (interactive)
> |   (call-interactively #'isearch-forward)
> |   (call-interactively #'query-replace))
> | 
> | (defun bar ()
> |   (interactive)
> |   (call-interactively #'query-replace)
> |   (call-interactively #'isearch-forward))
> | 
> | M-x foo
> | M-x bar
> `------------------------------------------
> 
> Both do the same thing: ask for input for 'query-replace'.
> 'isearch-forward' is simply skipped when calling 'foo'.

Actually, `isearch-forward' is not skipped in either case.

In the case of `bar', there is no problem: just follow through with
query-replacing (ending it when you are done), and you will see that you enter
Isearch normally. 

The problem is that in the case of `foo', Isearch is entered but more or less
immediately ends.  I did not bother to step through the debugger or study the
code to see why.  Perhaps someone will do that and reply.

But here is something that works for `foo':

(defun foo ()
  (interactive)
  (isearch-mode t nil nil t nil)
  (call-interactively #'query-replace))




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

* Re: call-interactively 'query-replace and 'isearch-forward
  2013-03-11 16:46     ` Drew Adams
@ 2013-03-11 17:10       ` Thorsten Jolitz
  0 siblings, 0 replies; 5+ messages in thread
From: Thorsten Jolitz @ 2013-03-11 17:10 UTC (permalink / raw)
  To: help-gnu-emacs

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

>> ,------------------------------------------
>> | emacs -Q
>> | 
>> | (defun foo ()
>> |   (interactive)
>> |   (call-interactively #'isearch-forward)
>> |   (call-interactively #'query-replace))
>> | 
>> | (defun bar ()
>> |   (interactive)
>> |   (call-interactively #'query-replace)
>> |   (call-interactively #'isearch-forward))
>> | 
>> | M-x foo
>> | M-x bar
>> `------------------------------------------
>> 
>> Both do the same thing: ask for input for 'query-replace'.
>> 'isearch-forward' is simply skipped when calling 'foo'.
>
> Actually, `isearch-forward' is not skipped in either case.
>
> In the case of `bar', there is no problem: just follow through with
> query-replacing (ending it when you are done), and you will see that
> you enter Isearch normally.
>
> The problem is that in the case of `foo', Isearch is entered but more
> or less immediately ends. I did not bother to step through the
> debugger or study the code to see why. Perhaps someone will do that
> and reply.

Thats what I noticed as a quick window blink. I'm not so much interested
in the deep root cause of the problem, but rather in a working solution. 

> But here is something that works for `foo':
>
> (defun foo ()
>   (interactive)
>   (isearch-mode t nil nil t nil)
>   (call-interactively #'query-replace))

And this is a working solution - thanks a lot. 

-- 
cheers,
Thorsten




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

end of thread, other threads:[~2013-03-11 17:10 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-11 15:54 call-interactively 'query-replace and 'isearch-forward Thorsten Jolitz
2013-03-11 16:08 ` Drew Adams
2013-03-11 16:21   ` Thorsten Jolitz
2013-03-11 16:46     ` Drew Adams
2013-03-11 17:10       ` Thorsten Jolitz

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