version 1.98, 2006/02/16 17:44:53 |
version 1.99, 2006/02/16 18:05:47 |
|
|
{ |
{ |
char *tokens[10], *p, *datestring; |
char *tokens[10], *p, *datestring; |
size_t len = 0; |
size_t len = 0; |
u_int k; |
int i = 0; |
/* Parse data out of the expanded keyword */ |
/* Parse data out of the expanded keyword */ |
switch (checkin_keywordtype(keystring)) { |
switch (checkin_keywordtype(keystring)) { |
case KW_TYPE_ID: |
case KW_TYPE_ID: |
k = 0; |
|
for ((p =strtok(keystring, " ")); p; |
for ((p =strtok(keystring, " ")); p; |
(p = strtok(NULL, " "))) { |
(p = strtok(NULL, " "))) { |
if (k < KW_NUMTOKS_ID - 1) |
if (i < KW_NUMTOKS_ID - 1) |
tokens[k++] = p; |
tokens[i++] = p; |
} |
} |
tokens[k] = NULL; |
tokens[i] = NULL; |
if (*author != NULL) |
if (*author != NULL) |
xfree(*author); |
xfree(*author); |
if (*state != NULL) |
if (*state != NULL) |
|
|
xfree(datestring); |
xfree(datestring); |
break; |
break; |
case KW_TYPE_AUTHOR: |
case KW_TYPE_AUTHOR: |
k = 0; |
|
for ((p =strtok(keystring, " ")); p; |
for ((p =strtok(keystring, " ")); p; |
(p = strtok(NULL, " "))) { |
(p = strtok(NULL, " "))) { |
if (k < KW_NUMTOKS_AUTHOR - 1) |
if (i < KW_NUMTOKS_AUTHOR - 1) |
tokens[k++] = p; |
tokens[i++] = p; |
} |
} |
if (*author != NULL) |
if (*author != NULL) |
xfree(*author); |
xfree(*author); |
|
|
strlcpy(*author, tokens[1], len); |
strlcpy(*author, tokens[1], len); |
break; |
break; |
case KW_TYPE_DATE: |
case KW_TYPE_DATE: |
k = 0; |
|
for ((p =strtok(keystring, " ")); p; |
for ((p =strtok(keystring, " ")); p; |
(p = strtok(NULL, " "))) { |
(p = strtok(NULL, " "))) { |
if (k < KW_NUMTOKS_DATE - 1) |
if (i < KW_NUMTOKS_DATE - 1) |
tokens[k++] = p; |
tokens[i++] = p; |
} |
} |
len = strlen(tokens[1]) + strlen(tokens[2]) + 2; |
len = strlen(tokens[1]) + strlen(tokens[2]) + 2; |
datestring = xmalloc(len); |
datestring = xmalloc(len); |
|
|
xfree(datestring); |
xfree(datestring); |
break; |
break; |
case KW_TYPE_STATE: |
case KW_TYPE_STATE: |
k = 0; |
|
for ((p =strtok(keystring, " ")); p; |
for ((p =strtok(keystring, " ")); p; |
(p = strtok(NULL, " "))) { |
(p = strtok(NULL, " "))) { |
if (k < KW_NUMTOKS_STATE - 1) |
if (i < KW_NUMTOKS_STATE - 1) |
tokens[k++] = p; |
tokens[i++] = p; |
} |
} |
if (*state != NULL) |
if (*state != NULL) |
xfree(*state); |
xfree(*state); |
|
|
/* only parse revision if one is not already set */ |
/* only parse revision if one is not already set */ |
if (*rev != NULL) |
if (*rev != NULL) |
break; |
break; |
k = 0; |
|
for ((p =strtok(keystring, " ")); p; |
for ((p =strtok(keystring, " ")); p; |
(p = strtok(NULL, " "))) { |
(p = strtok(NULL, " "))) { |
if (k < KW_NUMTOKS_REVISION - 1) |
if (i < KW_NUMTOKS_REVISION - 1) |
tokens[k++] = p; |
tokens[i++] = p; |
} |
} |
if ((*rev = rcsnum_parse(tokens[1])) == NULL) |
if ((*rev = rcsnum_parse(tokens[1])) == NULL) |
fatal("could not parse rcsnum"); |
fatal("could not parse rcsnum"); |