version 1.8, 2008/06/10 04:01:41 |
version 1.9, 2008/06/10 04:38:46 |
|
|
{ |
{ |
int expanded = 0; |
int expanded = 0; |
char argbuf[2] = { '\0', '\0' }; |
char argbuf[2] = { '\0', '\0' }; |
char *allowed_args, *default_args, *args, *p, *q = NULL; |
char *allowed_args, *default_args, *args, *file, *p, *q = NULL; |
size_t pos; |
size_t pos; |
BUF *buf; |
BUF *buf; |
|
|
|
|
case CVS_TRIGGER_COMMITINFO: |
case CVS_TRIGGER_COMMITINFO: |
allowed_args = "prsS{}"; |
allowed_args = "prsS{}"; |
default_args = " %p/%r %S"; |
default_args = " %p/%r %S"; |
|
file = CVS_PATH_COMMITINFO; |
break; |
break; |
case CVS_TRIGGER_LOGINFO: |
case CVS_TRIGGER_LOGINFO: |
allowed_args = "prsSvVt{}"; |
allowed_args = "prsSvVt{}"; |
default_args = NULL; |
default_args = NULL; |
|
file = CVS_PATH_LOGINFO; |
break; |
break; |
case CVS_TRIGGER_VERIFYMSG: |
case CVS_TRIGGER_VERIFYMSG: |
allowed_args = "l"; |
allowed_args = "l"; |
default_args = " %l"; |
default_args = " %l"; |
|
file = CVS_PATH_VERIFYMSG; |
break; |
break; |
case CVS_TRIGGER_TAGINFO: |
case CVS_TRIGGER_TAGINFO: |
allowed_args = "btoprsSvV{}"; |
allowed_args = "btoprsSvV{}"; |
default_args = " %t %o %p/%r %{sv}"; |
default_args = " %t %o %p/%r %{sv}"; |
|
file = CVS_PATH_TAGINFO; |
break; |
break; |
default: |
default: |
return (NULL); |
return (NULL); |
|
|
case '\0': |
case '\0': |
goto bad; |
goto bad; |
case '{': |
case '{': |
/* XXX do we realy have to check for { in there? */ |
|
if (strchr(allowed_args, '{') == NULL) |
if (strchr(allowed_args, '{') == NULL) |
goto bad; |
goto bad; |
pos = strcspn(++p, "}"); |
pos = strcspn(++p, "}"); |
|
|
bad: |
bad: |
if (q != NULL) |
if (q != NULL) |
xfree(q); |
xfree(q); |
cvs_log(LP_NOTICE, "CVSROOT: malformed line %s", cmd); |
cvs_log(LP_NOTICE, "%s contains malformed command '%s'", file, cmd); |
cvs_buf_free(buf); |
cvs_buf_free(buf); |
return (NULL); |
return (NULL); |
} |
} |