From fc1bc7102f5ca562d510ca07cc119b7c9add587c Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 10 Mar 2000 11:36:27 +0000 Subject: [PATCH] - replaced some old code to access server variables --- ext/hyperwave/hg_comm.c | 23 +++++++++++++++++++---- ext/hyperwave/hw.c | 6 +++--- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/ext/hyperwave/hg_comm.c b/ext/hyperwave/hg_comm.c index a3fe28265d..aab3d3f7c9 100644 --- a/ext/hyperwave/hg_comm.c +++ b/ext/hyperwave/hg_comm.c @@ -590,13 +590,26 @@ char *fnInsAnchorsIntoText(char *text, DLIST *pAnchorList, char **bodytag, char int laststart=0; /* The following is very tricky and depends on how rewriting is setup on your webserver. - If you skip the scriptname in the url you will have to map each hyperwave name to http://. - This may not always be a good idea. The best solution is probably to provide a prefix for such - a case which is an optional parameter to hw_gettext hw_pipedocument. + If you skip the scriptname in the url you will have to map each hyperwave name + to http://. This may not always be a good idea. The best solution is + probably to provide a prefix for such + a case which is an optional parameter to hw_gettext() or hw_pipedocument(). + FIXME: Currently, the variable SCRIPT_NAME is empty thouht SCRIPT_URL is + not. In our case this is OK, since as mentioned above it is better to have no + SCRIPT_NAME than to have if rewriting is on. */ if(urlprefix) { scriptname = urlprefix; } else { + zval **script_name; + if (zend_hash_find(&EG(symbol_table), "SCRIPT_NAME", sizeof("SCRIPT_NAME"), (void **) &script_name)==FAILURE) + scriptname = NULL; + else { + convert_to_string_ex(script_name); + scriptname = (*script_name)->value.str.val; + } + +#if 0 #if APACHE { int j; @@ -604,13 +617,15 @@ char *fnInsAnchorsIntoText(char *text, DLIST *pAnchorList, char **bodytag, char table_entry *elts = (table_entry *)arr->elts; for (j=0; j < arr->nelts; j++) { - if(0 == strcmp(elts[j].key, "SCRIPT_NAME")) + if((0 == strcmp(elts[j].key, "SCRIPT_NAME")) || + (0 == strcmp(elts[j].key, "SCRIPT_URL"))) break; } scriptname = elts[j].val; } #else scriptname = getenv("SCRIPT_FILENAME"); +#endif #endif } diff --git a/ext/hyperwave/hw.c b/ext/hyperwave/hw.c index 1e6013c09a..45016d47e6 100644 --- a/ext/hyperwave/hw.c +++ b/ext/hyperwave/hw.c @@ -205,9 +205,9 @@ PHP_MINIT_FUNCTION(hw) { HwSG(le_document) = register_list_destructors(_free_hw_document,NULL); hw_module_entry.type = type; -// REGISTER_LONG_CONSTANT("HW_ATTR_LANG", HW_ATTR_LANG, CONST_CS | CONST_PERSISTENT); -// REGISTER_LONG_CONSTANT("HW_ATTR_NR", HW_ATTR_NR, CONST_CS | CONST_PERSISTENT); -// REGISTER_LONG_CONSTANT("HW_ATTR_NONE", HW_ATTR_NONE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("HW_ATTR_LANG", HW_ATTR_LANG, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("HW_ATTR_NR", HW_ATTR_NR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("HW_ATTR_NONE", HW_ATTR_NONE, CONST_CS | CONST_PERSISTENT); return SUCCESS; } -- 2.40.0