int values[100], /* Values */
num_values = 1; /* Number of values */
- values[0] = (int)strtol(token, &tokenptr, 10);
+ if (!isdigit(token[0] & 255) && token[0] != '-' && value == IPP_TAG_ENUM)
+ {
+ char *ptr; /* Pointer to next terminator */
+
+ if ((ptr = strchr(token, ',')) != NULL)
+ *ptr++ = '\0';
+ else
+ ptr = token + strlen(token);
+
+ if ((i = ippEnumValue(attr, token)) < 0)
+ tokenptr = NULL;
+ else
+ tokenptr = ptr;
+ }
+ else
+ i = (int)strtol(tokenptr, &tokenptr, 0);
+
+ values[0] = i;
+
while (tokenptr && *tokenptr &&
num_values < (int)(sizeof(values) / sizeof(values[0])))
{
if (!isdigit(*tokenptr & 255) && *tokenptr != '-')
{
- char *ptr, ch; /* Pointer to next terminator */
+ char *ptr; /* Pointer to next terminator */
if (value != IPP_TAG_ENUM)
break;
if ((ptr = strchr(tokenptr, ',')) != NULL)
- {
- ch = *ptr;
- *ptr = '\0';
- }
+ *ptr++ = '\0';
else
- {
- ch = '\0';
ptr = tokenptr + strlen(tokenptr);
- }
if ((i = ippEnumValue(attr, tokenptr)) < 0)
break;
+
+ tokenptr = ptr;
}
else
i = (int)strtol(tokenptr, &tokenptr, 0);