You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by Mark J Cox <mj...@hyperreal.com> on 1996/10/09 17:23:12 UTC
cvs commit: apache/src http_config.c http_config.h CHANGES
mjc 96/10/09 08:23:12
Modified: src http_config.c http_config.h CHANGES
Log:
Added additional TAKExx options for directives, to allow directives to
have a variable number of arguments between one and three.
Revision Changes Path
1.26 +50 -2 apache/src/http_config.c
Index: http_config.c
===================================================================
RCS file: /export/home/cvs/apache/src/http_config.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -C3 -r1.25 -r1.26
*** http_config.c 1996/10/08 22:19:20 1.25
--- http_config.c 1996/10/09 15:23:08 1.26
***************
*** 50,56 ****
*
*/
! /* $Id: http_config.c,v 1.25 1996/10/08 22:19:20 brian Exp $ */
/*
* http_config.c: once was auxillary functions for reading httpd's config
--- 50,56 ----
*
*/
! /* $Id: http_config.c,v 1.26 1996/10/09 15:23:08 mjc Exp $ */
/*
* http_config.c: once was auxillary functions for reading httpd's config
***************
*** 400,406 ****
char *invoke_cmd(command_rec *cmd, cmd_parms *parms, void *mconfig, char *args)
{
! char *w, *w2, *errmsg;
if ((parms->override & cmd->req_override) == 0)
return pstrcat (parms->pool, cmd->name, " not allowed here", NULL);
--- 400,406 ----
char *invoke_cmd(command_rec *cmd, cmd_parms *parms, void *mconfig, char *args)
{
! char *w, *w2, *w3, *errmsg;
if ((parms->override & cmd->req_override) == 0)
return pstrcat (parms->pool, cmd->name, " not allowed here", NULL);
***************
*** 449,454 ****
--- 449,502 ----
cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
return (*cmd->func) (parms, mconfig, w, *w2 ? w2 : NULL);
+
+ case TAKE3:
+
+ w = getword_conf (parms->pool, &args);
+ w2 = getword_conf (parms->pool, &args);
+ w3 = getword_conf (parms->pool, &args);
+
+ if (*w == '\0' || *w2 == '\0' || *w3 == '\0' || *args != 0)
+ return pstrcat (parms->pool, cmd->name, " takes three arguments",
+ cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
+
+ return (*cmd->func) (parms, mconfig, w, w2, w3);
+
+ case TAKE23:
+
+ w = getword_conf (parms->pool, &args);
+ w2 = getword_conf (parms->pool, &args);
+ w3 = *args ? getword_conf (parms->pool, &args) : NULL;
+
+ if (*w == '\0' || *w2 == '\0' || *args != 0)
+ return pstrcat (parms->pool, cmd->name, " takes two or three arguments",
+ cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
+
+ return (*cmd->func) (parms, mconfig, w, w2, w3);
+
+ case TAKE123:
+
+ w = getword_conf (parms->pool, &args);
+ w2 = *args ? getword_conf (parms->pool, &args) : NULL;
+ w3 = *args ? getword_conf (parms->pool, &args) : NULL;
+
+ if (*w == '\0' || *args != 0)
+ return pstrcat (parms->pool, cmd->name, " takes one, two or three arguments",
+ cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
+
+ return (*cmd->func) (parms, mconfig, w, w2, w3);
+
+ case TAKE13:
+
+ w = getword_conf (parms->pool, &args);
+ w2 = *args ? getword_conf (parms->pool, &args) : NULL;
+ w3 = *args ? getword_conf (parms->pool, &args) : NULL;
+
+ if (*w == '\0' || (*w2 && !w3) || *args != 0)
+ return pstrcat (parms->pool, cmd->name, " takes one or three arguments",
+ cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
+
+ return (*cmd->func) (parms, mconfig, w, w2, w3);
case ITERATE:
1.15 +6 -2 apache/src/http_config.h
Index: http_config.h
===================================================================
RCS file: /export/home/cvs/apache/src/http_config.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -C3 -r1.14 -r1.15
*** http_config.h 1996/10/08 22:19:21 1.14
--- http_config.h 1996/10/09 15:23:08 1.15
***************
*** 50,56 ****
*
*/
! /* $Id: http_config.h,v 1.14 1996/10/08 22:19:21 brian Exp $ */
/*
* The central data structures around here...
--- 50,56 ----
*
*/
! /* $Id: http_config.h,v 1.15 1996/10/09 15:23:08 mjc Exp $ */
/*
* The central data structures around here...
***************
*** 70,76 ****
*/
FLAG, /* One of 'On' or 'Off' */
NO_ARGS, /* No args at all, e.g. </Directory> */
! TAKE12 /* one or two arguments */
};
typedef struct command_struct {
--- 70,80 ----
*/
FLAG, /* One of 'On' or 'Off' */
NO_ARGS, /* No args at all, e.g. </Directory> */
! TAKE12, /* one or two arguments */
! TAKE3, /* three arguments only */
! TAKE23, /* two or three arguments */
! TAKE123, /* one, two or three arguments */
! TAKE13 /* one or three arguments */
};
typedef struct command_struct {
1.69 +4 -1 apache/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apache/src/CHANGES,v
retrieving revision 1.68
retrieving revision 1.69
diff -C3 -r1.68 -r1.69
*** CHANGES 1996/09/29 14:16:09 1.68
--- CHANGES 1996/10/09 15:23:09 1.69
***************
*** 1,6 ****
! $Id: CHANGES,v 1.68 1996/09/29 14:16:09 chuck Exp $
Changes with Apache 1.2b1:
*) Phase I proxy overhaul:
Added support for null form data set [Petr Lampa]
--- 1,9 ----
! $Id: CHANGES,v 1.69 1996/10/09 15:23:09 mjc Exp $
Changes with Apache 1.2b1:
+
+ *) Allow directives to have any number of arguments between one
+ and three, with TAKE12, TAKE23, TAKE123, TAKE13 and TAKE3.
*) Phase I proxy overhaul:
Added support for null form data set [Petr Lampa]