From 968c5dc1fc5308d9bddd7d453287c9878bace289 Mon Sep 17 00:00:00 2001 From: "Mirar (Pontus Hagland)" <pike@sort.mirar.org> Date: Mon, 1 Nov 1999 14:58:46 +0100 Subject: [PATCH] added "%-4c" again (negative argument to %c Rev: src/modules/sprintf/sprintf.c:1.58 --- src/modules/sprintf/sprintf.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/modules/sprintf/sprintf.c b/src/modules/sprintf/sprintf.c index b1b603e3fa..0c3bdbc4a5 100644 --- a/src/modules/sprintf/sprintf.c +++ b/src/modules/sprintf/sprintf.c @@ -102,7 +102,7 @@ */ #include "global.h" -RCSID("$Id: sprintf.c,v 1.57 1999/10/30 23:35:53 noring Exp $"); +RCSID("$Id: sprintf.c,v 1.58 1999/11/01 13:58:46 mirar Exp $"); #include "error.h" #include "array.h" #include "svalue.h" @@ -1044,7 +1044,7 @@ static void low_pike_sprintf(struct format_stack *fs, case 'c': { - INT32 l,tmp; + INT32 l,tmp,n; char *x; DO_OP(); CHECK_OBJECT_SPRINTF() @@ -1057,7 +1057,24 @@ static void low_pike_sprintf(struct format_stack *fs, else fs->fsp->b=MKPCHARP(x,2); SET_INDEX_PCHARP(fs->fsp->b,0,tmp); fs->fsp->len=1; - }else{ + } + else if ( (fs->fsp->flags&FIELD_LEFT) ) + { + l=1; + if(fs->fsp->width > 0) l=fs->fsp->width; + x=(char *)alloca(l); + fs->fsp->b=MKPCHARP(x,0); + fs->fsp->len=l; + GET_INT(tmp); + n=0; + while(n<l) + { + x[n++]=tmp & 0xff; + tmp>>=8; + } + } + else + { l=1; if(fs->fsp->width > 0) l=fs->fsp->width; x=(char *)alloca(l); -- GitLab