an issue: $echo '."\\\\l ~","/nonexisting.k"' >/tmp/f.k $q /tmp/f.k -try to exit with ctrl-d (bunch of parentheses gets printed and terminal gets unresponsive) -or seg faults (i haven't been able to tell, will update when i can distinguish) -this happens because of "~" character in the path i don't expect it to understand HOME or anything but it should fail properly. another issue: builtin repl would be better if -cb:left -cf:right -cp:up -cn:down -md:delete-next-word another issue(this is fixed, ignore): \c 0N 0N doesnt work. suggestion: maybe use something like this for updating termR and termC: void update\c(){ struct winsize w;int f[]={1,0,2},i,t; for(i=0;i<3;i++)if(isatty(f[i])&&!ioctl(f[i],TIOCGWINSZ,&w)&&w.ws_row&&w.ws_col){termR=w.ws_row;termC=w.ws_col;return;} t=open("/dev/tty",O_RDONLY);if(t>=0&&!ioctl(t,TIOCGWINSZ,&w)&&w.ws_row&&w.ws_col){close(t);termR=w.ws_row;termC=w.ws_col;return;}if(t>=0)close(t); char*l=getenv("LINES"),*c=getenv("COLUMNS");if(l&&c){termR=atoi(l);termC=atoi(c);return;} termR=12;termC=57;}