|
|
@@ -70,11 +70,12 @@ SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen
|
|
|
const SQChar *format;
|
|
|
SQChar *dest;
|
|
|
SQChar fmt[MAX_FORMAT_LEN];
|
|
|
- sq_getstring(v,nformatstringidx,&format);
|
|
|
- SQInteger allocated = (sq_getsize(v,nformatstringidx)+2)*sizeof(SQChar);
|
|
|
+ sq_getstring(v,nformatstringidx,&format);
|
|
|
+ SQInteger format_size = sq_getsize(v,nformatstringidx);
|
|
|
+ SQInteger allocated = (format_size+2)*sizeof(SQChar);
|
|
|
dest = sq_getscratchpad(v,allocated);
|
|
|
SQInteger n = 0,i = 0, nparam = nformatstringidx+1, w = 0;
|
|
|
- while(format[n] != '\0') {
|
|
|
+ while(n < format_size) {
|
|
|
if(format[n] != '%') {
|
|
|
assert(i < allocated);
|
|
|
dest[i++] = format[n];
|