diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index 93ac6e1e9b4b2c2a3aa4798119bbde51994bd45a..5e59f94afc070d67d528e214b668c37447a25bcb 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -442,8 +442,8 @@ js_lfexpand(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) static JSBool js_word_wrap(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - int32 len=79; - ulong i,k,l; + int32 l,len=79; + ulong i,k; int col=1; uchar* inbuf; char* outbuf; @@ -464,14 +464,17 @@ js_word_wrap(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) outbuf[0]=0; for(i=l=0;inbuf[i];) { - if(inbuf[i]=='\r' || inbuf[i]==FF) + if(inbuf[i]=='\r' || inbuf[i]==FF) { + strncat(outbuf,linebuf,l); + l=0; col=1; + } else if(inbuf[i]=='\t') col+=8; else if(inbuf[i]>=' ') col++; linebuf[l]=inbuf[i++]; - if(col<len) { + if(col<len && l<len) { l++; continue; }