summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/hyperwave/hg_comm.c23
-rw-r--r--ext/hyperwave/hw.c6
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://<hwname>.
- 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://<hwname>. 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,7 +617,8 @@ 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;
@@ -612,6 +626,7 @@ char *fnInsAnchorsIntoText(char *text, DLIST *pAnchorList, char **bodytag, char
#else
scriptname = getenv("SCRIPT_FILENAME");
#endif
+#endif
}
newtext = text;
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;
}