I appreciate not everyone is as verbose as I can be, but your initial
email was very terse.  For example, when you say:

> in emacs search-history mode, abort if ^@ is encountered

is that the desired behaviour or the problem behaviour?

>From testing, it seems like the current behaviour is that it's
aborting, and from reading only your diff, it looks like you want it
not to abort but ignore an accidentally typed U+0000 character.  But
it also looks like this could relate to another ksh/emacs.c
history-related issue I've previously observed but STILL not offered
up a diff for.

I think if you elaborated a little, that might make your email more
accessible.  Don't assume people know what you know.  The less
work--even thinking--people need to do to see where you're coming from
the better.  Thus, what are your exact steps, etc.?  Also, what
exactly do zsh and bash do?

I tried to test a little to obtain a better understanding of what's
bugging you (and arguably ksh), and I got somewhat inconsistent
results -- with ksh's behaviour depending on whether I'd already typed
something else.  Sometimes I got a "phantom abort" where it looked
like I was back to the regular prompt but actually wasn't.  I even got
ksh to dump core once, but that was oksh on a Linux box, so YMMV.
In short, I'm not sure I'm really doing and seeing what you're seeing.
I suspect if you described things more comprehensively, that might
help not just little old me understand.

Thanks and regards,
Ian

On 18/09/2021, Alexander Hall <alexan...@beard.se> wrote:
> Ping. Please don't be discouraged or scared just because it's a diff to
> ksh(1). It really is rather simple.
>
> Noone else ever ran into this ksh command line history search bug?
>
> /Alexander
>
> On September 14, 2021 12:17:22 AM GMT+02:00, Alexander Hall
> <alexan...@beard.se> wrote:
>>in emacs search-history mode, abort if ^@ is encountered
>>
>>This has been bugging me for ages, and I finally realized it was me
>>accidentally pressing Ctrl+<space>, rendering ^@ (a.k.a '\0' or NUL)
>>
>>Easily tested with: Ctrl+R Ctrl+<space> ...
>>
>>Minimal investigation, for reference:
>>  bash: misbehaves in a slightly different manner
>>  zsh:  behaviour matches this fix
>>
>>OK?
>>
>>Index: emacs.c
>>===================================================================
>>RCS file: /cvs/src/bin/ksh/emacs.c,v
>>retrieving revision 1.88
>>diff -u -p -r1.88 emacs.c
>>--- emacs.c   27 Jun 2021 15:53:33 -0000      1.88
>>+++ emacs.c   13 Sep 2021 21:42:37 -0000
>>@@ -897,7 +897,7 @@ x_search_hist(int c)
>>              if ((c = x_e_getc()) < 0)
>>                      return KSTD;
>>              f = kb_find_hist_func(c);
>>-             if (c == CTRL('[')) {
>>+             if (c == CTRL('[') || c == CTRL('@')) {
>>                      x_e_ungetc(c);
>>                      break;
>>              } else if (f == x_search_hist)
>>
>
>

Reply via email to