| 1517 | } |
| 1518 | |
| 1519 | static const char *unset_define(cmd_parms *cmd, void *dummy, |
| 1520 | const char *name) |
| 1521 | { |
| 1522 | int i; |
| 1523 | const char **defines; |
| 1524 | const char *err = ap_check_cmd_context(cmd, NOT_IN_HTACCESS); |
| 1525 | if (err) |
| 1526 | return err; |
| 1527 | if (ap_strchr_c(name, ':') != NULL) { |
| 1528 | return "Variable name must not contain ':'"; |
| 1529 | } |
| 1530 | |
| 1531 | if (!saved_server_config_defines) { |
| 1532 | init_config_defines(cmd->pool); |
| 1533 | } |
| 1534 | |
| 1535 | defines = (const char **)ap_server_config_defines->elts; |
| 1536 | for (i = 0; i < ap_server_config_defines->nelts; i++) { |
| 1537 | if (strcmp(defines[i], name) == 0) { |
| 1538 | defines[i] = *(const char **)apr_array_pop(ap_server_config_defines); |
| 1539 | break; |
| 1540 | } |
| 1541 | } |
| 1542 | |
| 1543 | if (server_config_defined_vars) { |
| 1544 | apr_table_unset(server_config_defined_vars, name); |
| 1545 | } |
| 1546 | |
| 1547 | return NULL; |
| 1548 | } |
| 1549 | |
| 1550 | static const char *generate_error(cmd_parms *cmd, void *dummy, |
| 1551 | const char *arg) |
nothing calls this directly
no test coverage detected