bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#65805: 30.0.50; quoted-insert doesn't work in zap-to-char


From: Juri Linkov
Subject: bug#65805: 30.0.50; quoted-insert doesn't work in zap-to-char
Date: Thu, 14 Sep 2023 09:45:05 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)

>> @@ -3499,7 +3499,7 @@ read-char-from-minibuffer-map
>>    (let ((map (make-sparse-keymap)))
>>      (set-keymap-parent map minibuffer-local-map)
>>
>> -    (define-key map [remap self-insert-command] 
>> #'read-char-from-minibuffer-insert-char)
>> +    ;; (define-key map [remap self-insert-command] 
>> #'read-char-from-minibuffer-insert-char)
>>      (define-key map [remap exit-minibuffer] 
>> #'read-char-from-minibuffer-insert-other)
>>
>> Maybe remapping exit-minibuffer is not needed anymore too?
>
> I think it's still needed (RET would otherwise cause exit with an empty
> minibuffer, and hence no "char").

Hmm, maybe then RET should be bound to a command that signals an error
since the behavior is undefined for the case when the minibuffer gets
more characters than one, or when the minibuffer is empty.

>> I see no way to override this.  So 'read-char-from-minibuffer-insert-char'
>> can't be replaced with 'self-insert-command'.
>
> Exactly.  We could use something like:
>
>     (defalias 'read-char-from-minibuffer-insert-char 'self-insert-command)

I have only one doubt how this will affect the users who already bind
this command in own configs.  Probably there should be no problems.

>> @@ -3589,7 +3593,15 @@ read-char-from-minibuffer
>> +         (result (minibuffer-with-setup-hook
>> +                 (lambda ()
>> +                   (add-hook 'post-command-hook
>> +                             (lambda ()
>> +                               ;; FIXME: Should we use `<='?
>> +                               (if (= (1+ (minibuffer-prompt-end))
>> +                                      (point-max))
>> +                                       (exit-minibuffer)))
>> +                             nil 'local))
>>
>> I think we should use `<=' to handle the case when a string with
>> more than 1 character is pasted with 'C-y'.
>
> Indeed, that's one option.  But I was thinking that maybe we should try
> and signal an error.  Do the users really expect that yanking a string
> into that prompt will end up picking just the first char of that string?

Picking just the first char looks like a random choice.  So indeed maybe
better to signal an error.





reply via email to

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