common.c   common.c 
skipping to change at line 129 skipping to change at line 129
{ {
switch (state) switch (state)
{ {
case 0: case 0:
/*** Skip spaces ***/ /*** Skip spaces ***/
while (isspace((unsigned char)*p)) while (isspace((unsigned char)*p))
{ {
p++; p++;
} }
state = 1;
case 1:
/*** Start segment ***/ /*** Start segment ***/
result[cnt] = w; result[cnt] = w;
cnt++; cnt++;
state = 2; state = 1;
case 2: /*** fall through **/
case 1:
/*** Unquoted segment ***/ /*** Unquoted segment ***/
while (*p) while (*p)
{ {
if (isspace((unsigned char)*p)) if (isspace((unsigned char)*p))
{ {
*w++ = '\0'; *w++ = '\0';
p++; p++;
state = 0; state = 0;
break; break;
} }
else if (*p == '\'') else if (*p == '\'')
{ {
/*** Start quotation ***/ /*** Start quotation ***/
p++; p++;
state = 3; state = 2;
break; break;
} }
else if (*p == '\\' && p[1]) else if (*p == '\\' && p[1])
{ {
/*** Escape ***/ /*** Escape ***/
p++; p++;
*w++ = *p++; *w++ = *p++;
} }
else else
{ {
*w++ = *p++; *w++ = *p++;
} }
} }
break; break;
case 3: case 2:
/*** Inside quotes ***/ /*** Inside quotes ***/
while (*p) while (*p)
{ {
if (*p == '\'') if (*p == '\'')
{ {
p++; p++;
break; break;
} }
else if (*p == '\\' && p[1]) else if (*p == '\\' && p[1])
{ {
/*** Escape ***/ /*** Escape ***/
p++; p++;
*w++ = *p++; *w++ = *p++;
} }
else else
{ {
*w++ = *p++; *w++ = *p++;
} }
} }
state = 2; state = 1;
break; break;
} }
} }
if (!*p) if (!*p)
{ {
*w = '\0'; *w = '\0';
return cnt; return cnt;
} }
 End of changes. 7 change blocks. 
7 lines changed or deleted 7 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/