From 6d93705ca5a01a72f7aea6f7bc9fb31921758386 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Mon, 24 Jun 2002 11:05:01 +0000 Subject: [PATCH] Fixed bug in replace_text() method when called with empty string (""). --- src/sbbs3/js_bbs.cpp | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/src/sbbs3/js_bbs.cpp b/src/sbbs3/js_bbs.cpp index b92794892d..8e43b096cd 100644 --- a/src/sbbs3/js_bbs.cpp +++ b/src/sbbs3/js_bbs.cpp @@ -872,41 +872,38 @@ js_replace_text(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rv JSString* js_str; sbbs_t* sbbs; + *rval = JSVAL_FALSE; + if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) return(JS_FALSE); i=JSVAL_TO_INT(argv[0]); i--; - if(i<0 || i>=TOTAL_TEXT) { - *rval = BOOLEAN_TO_JSVAL(JS_FALSE); + if(i<0 || i>=TOTAL_TEXT) return(JS_TRUE); - } if(sbbs->text[i]!=sbbs->text_sav[i] && sbbs->text[i]!=nulstr) FREE(sbbs->text[i]); - if((js_str=JS_ValueToString(cx, argv[1]))==NULL) { - *rval = BOOLEAN_TO_JSVAL(JS_FALSE); + if((js_str=JS_ValueToString(cx, argv[1]))==NULL) return(JS_TRUE); - } - if((p=JS_GetStringBytes(js_str))==NULL) { - *rval = BOOLEAN_TO_JSVAL(JS_FALSE); + if((p=JS_GetStringBytes(js_str))==NULL) return(JS_TRUE); - } len=strlen(p); - if(!len) + if(!len) { sbbs->text[i]=nulstr; - else - sbbs->text[i]=(char *)MALLOC(len+1); - if(sbbs->text[i]==NULL) { - sbbs->text[i]=sbbs->text_sav[i]; - *rval = BOOLEAN_TO_JSVAL(JS_FALSE); - } else { - strcpy(sbbs->text[i],p); *rval = BOOLEAN_TO_JSVAL(JS_TRUE); + } else { + sbbs->text[i]=(char *)MALLOC(len+1); + if(sbbs->text[i]==NULL) { + sbbs->text[i]=sbbs->text_sav[i]; + } else { + strcpy(sbbs->text[i],p); + *rval = BOOLEAN_TO_JSVAL(JS_TRUE); + } } return(JS_TRUE); -- GitLab