Hi,

one user found regression in ksh. It was introduced with this bugfix:

> 12-07-02  A bug in the edit modes which <tab> after a directory
> did not refresh the input line has been fixed.

with the change in emacs.c:escape(...):

        i = '\\';
case '*':               /* filename expansion */
case '=':       /* escape = - list all matching file names */
        ep->mark = cur;
        if(ed_expand(ep->ed,(char*)out,&cur,&eol,i,count) < 0)
        {
                if(ep->ed->e_tabcount==1)
                {
                        ep->ed->e_tabcount=2;
                        ed_ungetchar(ep->ed,cntl('\t'));
                        return(-1);
                }
                beep();
        }
-       else if(i=='=')
+       else if(i=='=' || (i=='\\' && out[cur-1]=='/'))
        {
                draw(ep,REFRESH);
                if(count>0)
                        ep->ed->e_tabcount=0;
                else
                {
                        i=ed_getchar(ep->ed,0);
                        ed_ungetchar(ep->ed,i);
                        if(isdigit(i))
                                ed_ungetchar(ep->ed,ESC);
                }
        }

after directory completion, it falls through the new if condition and because next input is digit, it's not used.

Reproducer
mkdir -p test/123abc
set -o emacs
cd tes[tab]/123abc

results in
cd test/abc

I guess isdigit check should be done only if (original)i=='=', but I do not know what exactly that fix was supposed to fix, so I was not able to test it.

Michal
_______________________________________________
ast-developers mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-developers

Reply via email to