diff --git a/interrobang.c b/interrobang.c index 6e6ac91..69af17f 100644 --- a/interrobang.c +++ b/interrobang.c @@ -389,20 +389,22 @@ static int main_loop() { } pclose(compgen); if (complist) compcheck = True; - compcur = -1; + compcur = 0; } if ( compcheck && key == XK_Tab || key == XK_ISO_Left_Tab || key == XK_Down || key == XK_Up) { -// if ( (key==XK_Tab||key==XK_ISO_Left_Tab)&&compcount ) { -// if (compcur == -1) compcur = 0; -// strcpy(line,complist[compcur]); -// pos = strlen(line); -// } - /*else*/ if ( key==XK_ISO_Left_Tab || key == XK_Up ) { + if (compcur || pos == strlen(complist[compcur])) { +// if ( (key==XK_Tab||key==XK_ISO_Left_Tab)&&compcount ) { +// if (compcur == -1) compcur = 0; +// strcpy(line,complist[compcur]); +// pos = strlen(line); +// } + /*else*/ if ( key==XK_ISO_Left_Tab || key == XK_Up ) { if ((--compcur) < 0 ) compcur = compcount - 1; - } - else if ( (++compcur) >= compcount ) { - compcur = 0; + } + else if ( (++compcur) >= compcount ) { + compcur = 0; + } } strcpy(line,complist[compcur]); pos = strlen(line);