acme: fix off by one in editcmd, pointer comparison in getch, nextc

R=r
http://codereview.appspot.com/868046
This commit is contained in:
Russ Cox 2010-07-14 11:08:42 -07:00
parent efe48aa670
commit 75a851e927

View file

@ -164,7 +164,7 @@ editcmd(Text *ct, Rune *r, uint n)
free(cmdstartp);
cmdstartp = runemalloc(n+2);
runemove(cmdstartp, r, n);
if(r[n] != '\n')
if(r[n-1] != '\n')
cmdstartp[n++] = '\n';
cmdstartp[n] = '\0';
cmdendp = cmdstartp+n;
@ -195,7 +195,7 @@ editcmd(Text *ct, Rune *r, uint n)
int
getch(void)
{
if(*cmdp == *cmdendp)
if(cmdp == cmdendp)
return -1;
return *cmdp++;
}
@ -203,7 +203,7 @@ getch(void)
int
nextc(void)
{
if(*cmdp == *cmdendp)
if(cmdp == cmdendp)
return -1;
return *cmdp;
}