$line returns a full copy of the current line instead of truncated at NSTRING.

This commit is contained in:
Renaud 2015-09-18 17:53:58 +08:00
parent c3f4666ff3
commit e0550db4d1
1 changed files with 13 additions and 3 deletions

16
line.c
View File

@ -619,14 +619,24 @@ char *getctext(void)
int size; /* length of line to return */
char *sp; /* string pointer into line */
char *dp; /* string pointer into returned line */
static char rline[NSTRING]; /* line to return */
static int rsize = 0 ;
static char *rline ; /* line to return */
/* find the contents of the current line and its length */
lp = curwp->w_dotp;
sp = lp->l_text;
size = lp->l_used;
if (size >= NSTRING)
size = NSTRING - 1;
if( size >= rsize) {
if( rsize)
free( rline) ;
rsize = size + 1 ;
rline = malloc( rsize) ;
if( rline == NULL) {
rsize = 0 ;
return "" ;
}
}
/* copy it across */
dp = rline;