From: divverent Date: Sat, 28 Jul 2007 18:52:26 +0000 (+0000) Subject: fix and simplify strpad so that it actually works X-Git-Tag: xonotic-v0.1.0preview~2966 X-Git-Url: https://git.xonotic.org/?a=commitdiff_plain;h=6d6d58848fff87265ba4b74328d5902f36631ff6;p=xonotic%2Fdarkplaces.git fix and simplify strpad so that it actually works git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7499 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/prvm_cmds.c b/prvm_cmds.c index f5021549..fcf3d8ba 100644 --- a/prvm_cmds.c +++ b/prvm_cmds.c @@ -3953,42 +3953,14 @@ void VM_strpad (void) { char src[VM_STRINGTEMP_LENGTH]; char destbuf[VM_STRINGTEMP_LENGTH]; - char *dest = destbuf; int pad; VM_SAFEPARMCOUNTRANGE(1, 8, VM_strpad); pad = PRVM_G_FLOAT(OFS_PARM0); VM_VarString(1, src, sizeof(src)); - if (pad < 0) - { //pad left - pad = -pad - strlen(src); - if (pad>=VM_STRINGTEMP_LENGTH) - pad = VM_STRINGTEMP_LENGTH-1; - if (pad < 0) - pad = 0; - - strlcpy(dest+pad, src, VM_STRINGTEMP_LENGTH-pad); - while(pad--) - { - pad--; - dest[pad] = ' '; - } - } - else - { //pad right - if (pad>=VM_STRINGTEMP_LENGTH) - pad = VM_STRINGTEMP_LENGTH-1; - pad -= strlen(src); - if (pad < 0) - pad = 0; - - strlcpy(dest, src, VM_STRINGTEMP_LENGTH); - dest+=strlen(dest); - - while(pad-->0) - *dest++ = ' '; - *dest = '\0'; - } + // note: < 0 = left padding, > 0 = right padding, + // this is reverse logic of printf! + dpsnprintf(destbuf, sizeof(destbuf), "%*s", -pad, src); PRVM_G_INT(OFS_RETURN) = PRVM_SetTempString(destbuf); }