diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2019-06-28 23:45:11 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2019-06-28 23:45:11 +0000 |
commit | cdf6e0151411d887fef61245cb303ef190b29335 (patch) | |
tree | 678c2212e125e66e0a868773e2b4ec460794da4e /converter/ppm/ppmtoarbtxt.c | |
parent | de1311e820dc892f1a3c5c9ae70dbc56868030d8 (diff) | |
download | netpbm-mirror-cdf6e0151411d887fef61245cb303ef190b29335.tar.gz netpbm-mirror-cdf6e0151411d887fef61245cb303ef190b29335.tar.xz netpbm-mirror-cdf6e0151411d887fef61245cb303ef190b29335.zip |
Promote Advanced to Stable
git-svn-id: http://svn.code.sf.net/p/netpbm/code/stable@3641 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'converter/ppm/ppmtoarbtxt.c')
-rw-r--r-- | converter/ppm/ppmtoarbtxt.c | 52 |
1 files changed, 35 insertions, 17 deletions
diff --git a/converter/ppm/ppmtoarbtxt.c b/converter/ppm/ppmtoarbtxt.c index fc8927ce..6d4ed04e 100644 --- a/converter/ppm/ppmtoarbtxt.c +++ b/converter/ppm/ppmtoarbtxt.c @@ -734,15 +734,20 @@ interpretObjType(const char * const typstr) { static SkeletonObject * -newIcSkelFromReplString(const char * const objstr, +newIcSkelFromReplString(const char * const icolorObjstr, SkeletonObjectType const objType) { - +/*---------------------------------------------------------------------------- + A new skeleton for an integer color substitution specifier (class + OBJTYP_ICOLOR) whose replacement string (the stuff between the parentheses + in #(...)) says substitution type 'objType' and the rest of the + replacement string is 'icolorObjstr'. +-----------------------------------------------------------------------------*/ SkeletonObject * retval; unsigned int icolmin, icolmax; char formstr[MAX_OBJ_BUF]; - unsigned int nOdata; + int nOdata; - nOdata = sscanf(objstr, "%*s%s%u%u", formstr, &icolmin, &icolmax); + nOdata = sscanf(icolorObjstr, "%s%u%u", formstr, &icolmin, &icolmax); if (nOdata == 3) retval = newIcolDataObj(objType, formstr, icolmin, icolmax); @@ -758,16 +763,20 @@ newIcSkelFromReplString(const char * const objstr, static SkeletonObject * -newFcSkelFromReplString(const char * const objstr, +newFcSkelFromReplString(const char * const fcolorObjstr, SkeletonObjectType const objType) { - +/*---------------------------------------------------------------------------- + A new skeleton for a floating point color substitution specifier (class + OBJTYP_FCOLOR) whose replacement string (the stuff between the parentheses + in #(...)) says substitution type 'objType' and the rest of the + replacement string is 'fcolorObjstr'. +-----------------------------------------------------------------------------*/ SkeletonObject * retval; double fcolmin, fcolmax; char formstr[MAX_OBJ_BUF]; - unsigned int nOdata; + int nOdata; - nOdata = sscanf(objstr, "%*s%s%lf%lf", formstr, - &fcolmin, &fcolmax); + nOdata = sscanf(fcolorObjstr, "%s%lf%lf", formstr, &fcolmin, &fcolmax); if (nOdata == 3) retval = newFcolDataObj(objType, formstr, fcolmin, fcolmax); @@ -783,12 +792,19 @@ newFcSkelFromReplString(const char * const objstr, static SkeletonObject * -newISkelFromReplString(const char * const objstr, +newISkelFromReplString(const char * const intObjstr, SkeletonObjectType const objType) { - +/*---------------------------------------------------------------------------- + A new skeleton for an integer substitution specifier (class OBJTYP_INT) + whose replacement string (the stuff between the parentheses in #(...)) + says substitution type 'objType' and the rest of the replacement string is + 'intObjstr'. +-----------------------------------------------------------------------------*/ SkeletonObject * retval; char formstr[MAX_OBJ_BUF]; - unsigned int const nOdata = sscanf(objstr, "%*s%s", formstr); + int nOdata; + + nOdata = sscanf(intObjstr, "%s", formstr); if (nOdata == 1) retval = newIdataObj(objType, formstr); @@ -806,7 +822,7 @@ newISkelFromReplString(const char * const objstr, static SkeletonObject * newSkeletonFromReplString(const char * const objstr) { /*---------------------------------------------------------------------------- - Create a skeleton from the replacement string 'objstr' (the stuff + A new skeleton created from the replacement string 'objstr' (the stuff between the parentheses in #(...) ). Return NULL if it isn't a valid replacement string. @@ -821,6 +837,7 @@ newSkeletonFromReplString(const char * const objstr) { SkeletonObject * retval; char typstr[MAX_OBJ_BUF]; + int typlen; SkeletonObjectType objType; int conversionCt; char s1[MAX_OBJ_BUF]; /* Dry read. */ @@ -829,7 +846,8 @@ newSkeletonFromReplString(const char * const objstr) { typstr[0] = '\0'; /* initial value */ - conversionCt = sscanf(objstr, "%s%s%f%f%s", typstr, s1, &f1, &f2, s2); + conversionCt = sscanf(objstr, "%s%n%s%f%f%s", + typstr, &typlen, s1, &f1, &f2, s2); switch (conversionCt) { case 1: case 2: case 4: objType = interpretObjType(typstr); @@ -840,13 +858,13 @@ newSkeletonFromReplString(const char * const objstr) { switch (objClass(objType)) { case OBJTYP_ICOLOR: - retval = newIcSkelFromReplString(objstr, objType); + retval = newIcSkelFromReplString(&objstr[typlen], objType); break; case OBJTYP_FCOLOR: - retval = newFcSkelFromReplString(objstr, objType); + retval = newFcSkelFromReplString(&objstr[typlen], objType); break; case OBJTYP_INT: - retval = newISkelFromReplString(objstr, objType); + retval = newISkelFromReplString(&objstr[typlen], objType); break; case OBJTYP_BDATA: retval = NULL; |