1.0d5, added ::apache namespace for constants and commands, added checking for mmap

diff --git a/NEWS b/NEWS
index 1f3c773..2707afc 100644
--- a/NEWS
+++ b/NEWS
@@ -1 +1 @@
-1.0d4
+1.0d5
diff --git a/config.m4 b/config.m4
index c0fe7b4..28a20e3 100644
--- a/config.m4
+++ b/config.m4
@@ -5,8 +5,8 @@
 APACHE_MODULE(tcl, embedded tcl interpreter, tcl_core.lo tcl_cmds.lo tcl_misc.lo, , yes)
 
 if test "$enable_tcl" = "yes"; then
-	AC_CHECK_HEADERS(tcl.h inttypes.h int_types.h)
-	AC_CHECK_FUNCS(asprintf)
+	AC_CHECK_HEADERS(tcl.h inttypes.h int_types.h sys/mman.h)
+	AC_CHECK_FUNCS(asprintf mmap)
 
 	dirs="/usr/local/lib /usr/lib"
 
diff --git a/mod_tcl.h b/mod_tcl.h
index fcd2718..a30f72e 100644
--- a/mod_tcl.h
+++ b/mod_tcl.h
@@ -59,27 +59,6 @@
 #ifndef __MOD_TCL_H__
 #define __MOD_TCL_H__
 
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-
-#ifdef HAVE_INTTYPES_H
-#include <inttypes.h>
-#endif /* HAVE_INTTYPES_H */
-
-#ifdef HAVE_INT_TYPES_H
-#include <int_types.h>
-#endif /* HAVE_INT_TYPES_H */
-
 #include "apr.h"
 #include "apr_strings.h"
 #include "apr_lib.h"
@@ -97,6 +76,31 @@
 
 #include "ap_config_auto.h"
 
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+
+#ifdef HAVE_SYS_MMAN_H
+#include <sys/mman.h>
+#endif
+
+#include <fcntl.h>
+
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif /* HAVE_INTTYPES_H */
+
+#ifdef HAVE_INT_TYPES_H
+#include <int_types.h>
+#endif /* HAVE_INT_TYPES_H */
+
 #ifndef HAVE_TCL_H
 #error "uhh, no tcl.h found"
 #endif /* HAVE_TCL_H */
diff --git a/tcl_cmds.c b/tcl_cmds.c
index ea5c6a9..32d0663 100644
--- a/tcl_cmds.c
+++ b/tcl_cmds.c
@@ -261,7 +261,7 @@
 static int read_post_data(request_rec *r, Tcl_Interp *interp, char *boundary)
 {
 	int rc, lpos = 0, blen = strlen(boundary);
-	char *lbuf, *ptr;
+	char *lbuf, *ptr, *nm_var = apr_psprintf(r->pool, "%s::pram", r->filename);
 	long remaining;
 	
 	if ((rc = ap_setup_client_block(r, REQUEST_CHUNKED_ERROR)) != OK) {
@@ -362,7 +362,7 @@
 					
 					file_key = apr_psprintf(r->pool, "%s_filename", key);
 					
-					set_varb(interp, "::pram", file_key, file_val, i);
+					set_varb(interp, nm_var, file_key, file_val, i);
 				}
 				
 				break;
@@ -388,7 +388,7 @@
 			val[vlen] = '\0';
 		}
 
-		set_varb(interp, "::pram", key, val, vlen);
+		set_varb(interp, nm_var, key, val, vlen);
 		
 		free(val);
 		
@@ -403,6 +403,7 @@
 {
 	int rc;
 	const char *val, *key;
+	char *nm_var = apr_psprintf(r->pool, "%s::pram", r->filename);
 	char *rbuf;
 	
 	if ((rc = ap_setup_client_block(r, REQUEST_CHUNKED_ERROR)) != OK) {
@@ -448,7 +449,7 @@
 			break;
 		}
 		
-		set_var(interp, "::pram", (char*) key, (char*) val);
+		set_var(interp, nm_var, (char*) key, (char*) val);
 	}
 	
 	return OK;
@@ -1582,28 +1583,28 @@
 
 int cmd_ap_allow_options(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_allow_options(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_allow_options(_r)));
 	
 	return TCL_OK;
 }
 
 int cmd_ap_allow_overrides(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_allow_overrides(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_allow_overrides(_r)));
 	
 	return TCL_OK;
 }
 
 int cmd_ap_default_type(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_default_type(_r), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_default_type(_r), -1));
 	
 	return TCL_OK;
 }
 
 int cmd_ap_document_root(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_document_root(_r), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_document_root(_r), -1));
 	
 	return TCL_OK;
 }
@@ -1619,14 +1620,14 @@
 	}
 	
 	Tcl_GetIntFromObj(interp, objv[1], &i);
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_get_remote_host(_r->connection, _r->per_dir_config, i), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_get_remote_host(_r->connection, _r->per_dir_config, i), -1));
 	
 	return TCL_OK;
 }
 
 int cmd_ap_get_remote_logname(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_get_remote_logname(_r), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_get_remote_logname(_r), -1));
 	
 	return TCL_OK;
 }
@@ -1639,14 +1640,14 @@
 		return TCL_ERROR;
 	}
 	
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_construct_url(_r->pool, Tcl_GetString(objv[1]), _r), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_construct_url(_r->pool, Tcl_GetString(objv[1]), _r), -1));
 	
 	return TCL_OK;
 }
 
 int cmd_ap_get_server_name(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_get_server_name(_r), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_get_server_name(_r), -1));
 	
 	return TCL_OK;
 }
@@ -1654,7 +1655,7 @@
 int cmd_ap_get_server_port(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
 	/* int should suffice since ports are usually unsigned short */
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_get_server_port(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_get_server_port(_r)));
 	
 	return TCL_OK;
 }
@@ -1665,14 +1666,14 @@
 	   as it doesn't appear to have any unsigned support... it might be possible to assign it
 	   to a double?
 	*/
-	Tcl_SetObjResult(ixx, Tcl_NewLongObj(ap_get_limit_req_body(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewLongObj(ap_get_limit_req_body(_r)));
 	
 	return TCL_OK;
 }
 
 int cmd_ap_get_limit_xml_body(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_get_limit_xml_body(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_get_limit_xml_body(_r)));
 	
 	return TCL_OK;
 }
@@ -1701,28 +1702,28 @@
 		return TCL_ERROR;
 	}
 	
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_exists_config_define(Tcl_GetString(objv[1]))));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_exists_config_define(Tcl_GetString(objv[1]))));
 	
 	return TCL_OK;
 }
 
 int cmd_ap_auth_type(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_auth_type(_r), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_auth_type(_r), -1));
 	
 	return TCL_OK;
 }
 
 int cmd_ap_auth_name(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_auth_name(_r), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_auth_name(_r), -1));
 	
 	return TCL_OK;
 }
 
 int cmd_ap_satisfies(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_satisfies(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_satisfies(_r)));
 	
 	return TCL_OK;
 }
@@ -1737,13 +1738,13 @@
 	for (i = 0; i < a->nelts; i++) {
 		Tcl_Obj *xobj = Tcl_NewObj();
 		
-		Tcl_ListObjAppendElement(ixx, xobj, Tcl_NewIntObj(ra[i].method_mask));
-		Tcl_ListObjAppendElement(ixx, xobj, Tcl_NewStringObj(ra[i].requirement, -1));
+		Tcl_ListObjAppendElement(interp, xobj, Tcl_NewIntObj(ra[i].method_mask));
+		Tcl_ListObjAppendElement(interp, xobj, Tcl_NewStringObj(ra[i].requirement, -1));
 		
-		Tcl_ListObjAppendElement(ixx, obj, xobj);
+		Tcl_ListObjAppendElement(interp, obj, xobj);
 	}
 	
-	Tcl_SetObjResult(ixx, obj);
+	Tcl_SetObjResult(interp, obj);
 	
 	return TCL_OK;
 }
@@ -1774,7 +1775,7 @@
 {
 	Tcl_Obj *obj;
 	
-	obj = Tcl_GetVar2Ex(ixx, "content_type", NULL, 0);
+	obj = Tcl_GetVar2Ex(interp, "content_type", NULL, 0);
 	
 	if (obj) {
 		_r->content_type = Tcl_GetString(obj);
@@ -1787,14 +1788,14 @@
 
 int cmd_ap_send_http_trace(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {	
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_send_http_trace(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_send_http_trace(_r)));
 	
 	return TCL_OK;
 }
 
 int cmd_ap_send_http_options(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {	
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_send_http_options(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_send_http_options(_r)));
 	
 	return TCL_OK;
 }
@@ -1842,7 +1843,7 @@
 
 int cmd_ap_set_keepalive(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {	
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_set_keepalive(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_set_keepalive(_r)));
 	
 	return TCL_OK;
 }
@@ -1859,7 +1860,7 @@
 	
 	Tcl_GetIntFromObj(interp, objv[1], (int*) &mtime);
 	
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_rationalize_mtime(_r, mtime)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_rationalize_mtime(_r, mtime)));
 	
 	return TCL_OK;
 }
@@ -1876,7 +1877,7 @@
 	
 	Tcl_GetIntFromObj(interp, objv[1], &i);
 	
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_make_etag(_r, i), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_make_etag(_r, i), -1));
 	
 	return TCL_OK;
 }
@@ -1897,7 +1898,7 @@
 
 int cmd_ap_meets_conditions(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {	
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_meets_conditions(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_meets_conditions(_r)));
 	
 	return TCL_OK;
 }
@@ -1971,7 +1972,7 @@
 	
 	Tcl_GetIntFromObj(interp, objv[1], &status);
 	
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_get_status_line(status), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_get_status_line(status), -1));
 	
 	return TCL_OK;
 }
@@ -1988,7 +1989,7 @@
 	
 	Tcl_GetIntFromObj(interp, objv[1], &read_policy);
 	
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_setup_client_block(_r, read_policy)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_setup_client_block(_r, read_policy)));
 	
 	return TCL_OK;
 }
@@ -2010,7 +2011,7 @@
 	
 	bufsiz = ap_get_client_block(_r, buffer, bufsiz);
 	
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(bufsiz));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(bufsiz));
 	
 	if (bufsiz > 0) {
 		Tcl_SetVar2Ex(interp, "R", NULL, Tcl_NewByteArrayObj(buffer, bufsiz), TCL_LEAVE_ERR_MSG);
@@ -2021,7 +2022,7 @@
 
 int cmd_ap_discard_request_body(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {	
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_discard_request_body(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_discard_request_body(_r)));
 	
 	return TCL_OK;
 }
@@ -2054,7 +2055,7 @@
 	
 	xx = ap_get_basic_auth_pw(_r, &pw);
 	
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(xx));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(xx));
 
 	if (xx != 0) {
 		Tcl_SetVar2Ex(interp, "R", NULL, Tcl_NewStringObj(pw, -1), TCL_LEAVE_ERR_MSG);
@@ -2088,7 +2089,7 @@
 		return TCL_ERROR;
 	}
 	
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_method_number_of(Tcl_GetString(objv[1]))));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_method_number_of(Tcl_GetString(objv[1]))));
 	
 	return TCL_OK;
 }
@@ -2105,7 +2106,7 @@
 	
 	Tcl_GetIntFromObj(interp, objv[1], &methnum);
 	
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_method_name_of(methnum), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_method_name_of(methnum), -1));
 	
 	return TCL_OK;
 }
@@ -2142,7 +2143,7 @@
 
 int cmd_ap_some_auth_required(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewIntObj(ap_some_auth_required(_r)));
+	Tcl_SetObjResult(interp, Tcl_NewIntObj(ap_some_auth_required(_r)));
 	
 	return TCL_OK;
 }
@@ -2187,7 +2188,7 @@
 
 int cmd_ap_get_server_version(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_get_server_version(), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_get_server_version(), -1));
 	
 	return TCL_OK;
 }
@@ -2207,7 +2208,7 @@
 
 int cmd_ap_get_server_built(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	Tcl_SetObjResult(ixx, Tcl_NewStringObj(ap_get_server_built(), -1));
+	Tcl_SetObjResult(interp, Tcl_NewStringObj(ap_get_server_built(), -1));
 	
 	return TCL_OK;
 }
@@ -2216,9 +2217,11 @@
 
 int cmd_ap_create_environment(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
 {
-	char **env;
+	char **env, *nm_env;
 	int i;
 	
+	asprintf(&nm_env, "%s::env", _r->filename);
+	
 	ap_add_cgi_vars(_r);
 	ap_add_common_vars(_r);
 	
@@ -2228,9 +2231,11 @@
 		char *sptr = strchr(env[i], '=');
 		
 		*sptr = '\0';
-		set_var(ixx, "::env", env[i], sptr + 1);
+		set_var(interp, nm_env, env[i], sptr + 1);
 		*sptr = '=';
 	}
 	
+	free(nm_env);
+	
 	return TCL_OK;
 }
diff --git a/tcl_core.c b/tcl_core.c
index a3809e7..c7cdec9 100644
--- a/tcl_core.c
+++ b/tcl_core.c
@@ -345,6 +345,8 @@
 
 static void tcl_init(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp)
 {
+	char *buf;
+	
 	_pconf = pconf;
 	fcache = apr_make_array(pconf, 0, sizeof(file_cache));
 	
@@ -356,202 +358,207 @@
 	}
 	
 	apr_register_cleanup(pconf, NULL, tcl_cleanup, apr_null_cleanup);
-
-	set_vari(interp, "DECLINED", NULL, DECLINED);
-	set_vari(interp, "DONE", NULL, DONE);
-	set_vari(interp, "OK", NULL, OK);
-	
-	/* legacy */
-	set_vari(interp, "BAD_REQUEST", NULL, HTTP_BAD_REQUEST);
-	set_vari(interp, "REDIRECT", NULL, HTTP_MOVED_TEMPORARILY);
-	set_vari(interp, "SERVER_ERROR", NULL, HTTP_INTERNAL_SERVER_ERROR);
-	set_vari(interp, "NOT_FOUND", NULL, HTTP_NOT_FOUND);
-	
-	set_vari(interp, "M_POST", NULL, M_POST);
-	set_vari(interp, "M_GET", NULL, M_GET);
-	set_vari(interp, "M_PUT", NULL, M_PUT);
-	set_vari(interp, "M_DELETE", NULL, M_DELETE);
-	set_vari(interp, "M_CONNECT", NULL, M_CONNECT);
-	set_vari(interp, "M_OPTIONS", NULL, M_OPTIONS);
-	set_vari(interp, "M_TRACE", NULL, M_TRACE);
-	set_vari(interp, "M_PATCH", NULL, M_PATCH);
-	set_vari(interp, "M_PROPFIND", NULL, M_PROPFIND);
-	set_vari(interp, "M_PROPPATCH", NULL, M_PROPPATCH);
-	set_vari(interp, "M_MKCOL", NULL, M_MKCOL);
-	set_vari(interp, "M_COPY", NULL, M_COPY);
-	set_vari(interp, "M_MOVE", NULL, M_MOVE);
-	set_vari(interp, "M_LOCK", NULL, M_LOCK);
-	set_vari(interp, "M_UNLOCK", NULL, M_UNLOCK);
-	set_vari(interp, "M_INVALID", NULL, M_INVALID);
-	
-	set_vari(interp, "HTTP_CONTINUE", NULL, HTTP_CONTINUE);
-	set_vari(interp, "HTTP_SWITCHING_PROTOCOLS", NULL, HTTP_SWITCHING_PROTOCOLS);
-	set_vari(interp, "HTTP_PROCESSING", NULL, HTTP_PROCESSING);
-	set_vari(interp, "HTTP_OK", NULL, HTTP_OK);
-	set_vari(interp, "HTTP_CREATED", NULL, HTTP_CREATED);
-	set_vari(interp, "HTTP_ACCEPTED", NULL, HTTP_ACCEPTED);
-	set_vari(interp, "HTTP_NON_AUTHORITATIVE", NULL, HTTP_NON_AUTHORITATIVE);
-	set_vari(interp, "HTTP_NO_CONTENT", NULL, HTTP_NO_CONTENT);
-	set_vari(interp, "HTTP_RESET_CONTENT", NULL, HTTP_RESET_CONTENT);
-	set_vari(interp, "HTTP_PARTIAL_CONTENT", NULL, HTTP_PARTIAL_CONTENT);
-	set_vari(interp, "HTTP_MULTI_STATUS", NULL, HTTP_MULTI_STATUS);
-	set_vari(interp, "HTTP_MULTIPLE_CHOICES", NULL, HTTP_MULTIPLE_CHOICES);
-	set_vari(interp, "HTTP_MOVED_PERMANENTLY", NULL, HTTP_MOVED_PERMANENTLY);
-	set_vari(interp, "HTTP_MOVED_TEMPORARILY", NULL, HTTP_MOVED_TEMPORARILY);
-	set_vari(interp, "HTTP_SEE_OTHER", NULL, HTTP_SEE_OTHER);
-	set_vari(interp, "HTTP_NOT_MODIFIED", NULL, HTTP_NOT_MODIFIED);
-	set_vari(interp, "HTTP_USE_PROXY", NULL, HTTP_USE_PROXY);
-	set_vari(interp, "HTTP_TEMPORARY_REDIRECT", NULL, HTTP_TEMPORARY_REDIRECT);
-	set_vari(interp, "HTTP_BAD_REQUEST", NULL, HTTP_BAD_REQUEST);
-	set_vari(interp, "HTTP_UNAUTHORIZED", NULL, HTTP_UNAUTHORIZED);
-	set_vari(interp, "HTTP_PAYMENT_REQUIRED", NULL, HTTP_PAYMENT_REQUIRED);
-	set_vari(interp, "HTTP_FORBIDDEN", NULL, HTTP_FORBIDDEN);
-	set_vari(interp, "HTTP_NOT_FOUND", NULL, HTTP_NOT_FOUND);
-	set_vari(interp, "HTTP_METHOD_NOT_ALLOWED", NULL, HTTP_METHOD_NOT_ALLOWED);
-	set_vari(interp, "HTTP_NOT_ACCEPTABLE", NULL, HTTP_NOT_ACCEPTABLE);
-	set_vari(interp, "HTTP_PROXY_AUTHENTICATION_REQUIRED", NULL, HTTP_PROXY_AUTHENTICATION_REQUIRED);
-	set_vari(interp, "HTTP_REQUEST_TIME_OUT", NULL, HTTP_REQUEST_TIME_OUT);
-	set_vari(interp, "HTTP_CONFLICT", NULL, HTTP_CONFLICT);
-	set_vari(interp, "HTTP_GONE", NULL, HTTP_GONE);
-	set_vari(interp, "HTTP_LENGTH_REQUIRED", NULL, HTTP_LENGTH_REQUIRED);
-	set_vari(interp, "HTTP_PRECONDITION_FAILED", NULL, HTTP_PRECONDITION_FAILED);
-	set_vari(interp, "HTTP_REQUEST_ENTITY_TOO_LARGE", NULL, HTTP_REQUEST_ENTITY_TOO_LARGE);
-	set_vari(interp, "HTTP_REQUEST_URI_TOO_LARGE", NULL, HTTP_REQUEST_URI_TOO_LARGE);
-	set_vari(interp, "HTTP_UNSUPPORTED_MEDIA_TYPE", NULL, HTTP_UNSUPPORTED_MEDIA_TYPE);
-	set_vari(interp, "HTTP_RANGE_NOT_SATISFIABLE", NULL, HTTP_RANGE_NOT_SATISFIABLE);
-	set_vari(interp, "HTTP_EXPECTATION_FAILED", NULL, HTTP_EXPECTATION_FAILED);
-	set_vari(interp, "HTTP_UNPROCESSABLE_ENTITY", NULL, HTTP_UNPROCESSABLE_ENTITY);
-	set_vari(interp, "HTTP_LOCKED", NULL, HTTP_LOCKED);
-	set_vari(interp, "HTTP_FAILED_DEPENDENCY", NULL, HTTP_FAILED_DEPENDENCY);
-	set_vari(interp, "HTTP_INTERNAL_SERVER_ERROR", NULL, HTTP_INTERNAL_SERVER_ERROR);
-	set_vari(interp, "HTTP_NOT_IMPLEMENTED", NULL, HTTP_NOT_IMPLEMENTED);
-	set_vari(interp, "HTTP_BAD_GATEWAY", NULL, HTTP_BAD_GATEWAY);
-	set_vari(interp, "HTTP_SERVICE_UNAVAILABLE", NULL, HTTP_SERVICE_UNAVAILABLE);
-	set_vari(interp, "HTTP_GATEWAY_TIME_OUT", NULL, HTTP_GATEWAY_TIME_OUT);
-	set_vari(interp, "HTTP_VERSION_NOT_SUPPORTED", NULL, HTTP_VERSION_NOT_SUPPORTED);
-	set_vari(interp, "HTTP_VARIANT_ALSO_VARIES", NULL, HTTP_VARIANT_ALSO_VARIES);
-	set_vari(interp, "HTTP_INSUFFICIENT_STORAGE", NULL, HTTP_INSUFFICIENT_STORAGE);
-	set_vari(interp, "HTTP_NOT_EXTENDED", NULL, HTTP_NOT_EXTENDED);
-	
-	set_vari(interp, "REMOTE_HOST", NULL, REMOTE_HOST);
-	set_vari(interp, "REMOTE_NAME", NULL, REMOTE_NAME);
-	set_vari(interp, "REMOTE_NOLOOKUP", NULL, REMOTE_NOLOOKUP);
-	set_vari(interp, "REMOTE_DOUBLE_REV", NULL, REMOTE_DOUBLE_REV);
-	
-	set_vari(interp, "APLOG_EMERG", NULL, APLOG_EMERG);
-	set_vari(interp, "APLOG_ALERT", NULL, APLOG_ALERT);
-	set_vari(interp, "APLOG_CRIT", NULL, APLOG_CRIT);
-	set_vari(interp, "APLOG_ERR", NULL, APLOG_ERR);
-	set_vari(interp, "APLOG_WARNING", NULL, APLOG_WARNING);
-	set_vari(interp, "APLOG_NOTICE", NULL, APLOG_NOTICE);
-	set_vari(interp, "APLOG_INFO", NULL, APLOG_INFO);
-	set_vari(interp, "APLOG_DEBUG", NULL, APLOG_DEBUG);
-	set_vari(interp, "APLOG_NOERRNO", NULL, APLOG_NOERRNO);
-
-	set_vari(interp, "REQUEST_NO_BODY", NULL, REQUEST_NO_BODY);
-	set_vari(interp, "REQUEST_CHUNKED_ERROR", NULL, REQUEST_CHUNKED_ERROR);
-	set_vari(interp, "REQUEST_CHUNKED_DECHUNK", NULL, REQUEST_CHUNKED_DECHUNK);
 	
 	/* misc util */
-	Tcl_CreateObjCommand(interp, "abort", cmd_abort, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "read_post", cmd_read_post, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::abort", cmd_abort, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::read_post", cmd_read_post, NULL, NULL);
 	
-	Tcl_CreateObjCommand(interp, "random", cmd_random, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "srandom", cmd_srandom, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::random", cmd_random, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::srandom", cmd_srandom, NULL, NULL);
 	
-	Tcl_CreateObjCommand(interp, "base64_encode", cmd_base64_encode, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "base64_decode", cmd_base64_decode, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::base64_encode", cmd_base64_encode, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::base64_decode", cmd_base64_decode, NULL, NULL);
 	
 	/* read and set stuff from request_rec */
-	Tcl_CreateObjCommand(interp, "r", cmd_r, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "r_set", cmd_r_set, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::r", cmd_r, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::r_set", cmd_r_set, NULL, NULL);
 	
 	/* http_core.h */
-	Tcl_CreateObjCommand(interp, "ap_allow_options", cmd_ap_allow_options, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_allow_overrides", cmd_ap_allow_overrides, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_default_type", cmd_ap_default_type, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_document_root", cmd_ap_document_root, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_get_remote_host", cmd_ap_get_remote_host, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_get_remote_logname", cmd_ap_get_remote_logname, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_construct_url", cmd_ap_construct_url, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_get_server_name", cmd_ap_get_server_name, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_get_server_port", cmd_ap_get_server_port, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_get_limit_req_body", cmd_ap_get_limit_req_body, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_get_limit_xml_body", cmd_ap_get_limit_xml_body, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_custom_response", cmd_ap_custom_response, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_exists_config_define", cmd_ap_exists_config_define, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_auth_type", cmd_ap_auth_type, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_auth_name", cmd_ap_auth_name, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_satisfies", cmd_ap_satisfies, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_requires", cmd_ap_requires, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_allow_options", cmd_ap_allow_options, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_allow_overrides", cmd_ap_allow_overrides, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_default_type", cmd_ap_default_type, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_document_root", cmd_ap_document_root, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_get_remote_host", cmd_ap_get_remote_host, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_get_remote_logname", cmd_ap_get_remote_logname, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_construct_url", cmd_ap_construct_url, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_get_server_name", cmd_ap_get_server_name, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_get_server_port", cmd_ap_get_server_port, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_get_limit_req_body", cmd_ap_get_limit_req_body, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_get_limit_xml_body", cmd_ap_get_limit_xml_body, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_custom_response", cmd_ap_custom_response, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_exists_config_define", cmd_ap_exists_config_define, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_auth_type", cmd_ap_auth_type, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_auth_name", cmd_ap_auth_name, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_satisfies", cmd_ap_satisfies, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_requires", cmd_ap_requires, NULL, NULL);
 	
 	/* http_log.h */
-	Tcl_CreateObjCommand(interp, "ap_log_error", cmd_ap_log_error, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_log_error", cmd_ap_log_error, NULL, NULL);
 	
 	/* http_protocol.h */
-	Tcl_CreateObjCommand(interp, "ap_send_http_header", cmd_ap_send_http_header, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_send_http_trace", cmd_ap_send_http_trace, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_send_http_options", cmd_ap_send_http_options, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_finalize_request_protocol", cmd_ap_finalize_request_protocol, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_send_error_response", cmd_ap_send_error_response, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_set_content_length", cmd_ap_set_content_length, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_set_keepalive", cmd_ap_set_keepalive, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_rationalize_mtime", cmd_ap_rationalize_mtime, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_make_etag", cmd_ap_make_etag, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_set_etag", cmd_ap_set_etag, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_set_last_modified", cmd_ap_set_last_modified, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_meets_conditions", cmd_ap_meets_conditions, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_send_http_header", cmd_ap_send_http_header, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_send_http_trace", cmd_ap_send_http_trace, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_send_http_options", cmd_ap_send_http_options, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_finalize_request_protocol", cmd_ap_finalize_request_protocol, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_send_error_response", cmd_ap_send_error_response, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_set_content_length", cmd_ap_set_content_length, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_set_keepalive", cmd_ap_set_keepalive, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_rationalize_mtime", cmd_ap_rationalize_mtime, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_make_etag", cmd_ap_make_etag, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_set_etag", cmd_ap_set_etag, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_set_last_modified", cmd_ap_set_last_modified, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_meets_conditions", cmd_ap_meets_conditions, NULL, NULL);
 	/**/
-	Tcl_CreateObjCommand(interp, "rputs", cmd_rputs, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "rwrite", cmd_rwrite, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::rputs", cmd_rputs, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::rwrite", cmd_rwrite, NULL, NULL);
 	/**/
-	Tcl_CreateObjCommand(interp, "ap_rputs", cmd_rputs, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_rwrite", cmd_rwrite, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_rputs", cmd_rputs, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_rwrite", cmd_rwrite, NULL, NULL);
 	/**/
-	Tcl_CreateObjCommand(interp, "ap_rflush", cmd_ap_rflush, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_get_status_line", cmd_ap_get_status_line, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_setup_client_block", cmd_ap_setup_client_block, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_get_client_block", cmd_ap_get_client_block, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_discard_request_body", cmd_ap_discard_request_body, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_note_auth_failure", cmd_ap_note_auth_failure, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_note_basic_auth_failure", cmd_ap_note_basic_auth_failure, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_note_digest_auth_failure", cmd_ap_note_digest_auth_failure, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_get_basic_auth_pw", cmd_ap_get_basic_auth_pw, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_parse_uri", cmd_ap_parse_uri, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_method_number_of", cmd_ap_method_number_of, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_method_name_of", cmd_ap_method_name_of, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_rflush", cmd_ap_rflush, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_get_status_line", cmd_ap_get_status_line, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_setup_client_block", cmd_ap_setup_client_block, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_get_client_block", cmd_ap_get_client_block, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_discard_request_body", cmd_ap_discard_request_body, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_note_auth_failure", cmd_ap_note_auth_failure, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_note_basic_auth_failure", cmd_ap_note_basic_auth_failure, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_note_digest_auth_failure", cmd_ap_note_digest_auth_failure, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_get_basic_auth_pw", cmd_ap_get_basic_auth_pw, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_parse_uri", cmd_ap_parse_uri, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_method_number_of", cmd_ap_method_number_of, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_method_name_of", cmd_ap_method_name_of, NULL, NULL);
 
 	/* http_request.h */
-	Tcl_CreateObjCommand(interp, "ap_internal_redirect", cmd_ap_internal_redirect, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_internal_redirect_handler", cmd_ap_internal_redirect_handler, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_some_auth_required", cmd_ap_some_auth_required, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_update_mtime", cmd_ap_update_mtime, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_allow_methods", cmd_ap_allow_methods, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_internal_redirect", cmd_ap_internal_redirect, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_internal_redirect_handler", cmd_ap_internal_redirect_handler, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_some_auth_required", cmd_ap_some_auth_required, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_update_mtime", cmd_ap_update_mtime, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_allow_methods", cmd_ap_allow_methods, NULL, NULL);
 
 	/* httpd.h */
-	Tcl_CreateObjCommand(interp, "ap_get_server_version", cmd_ap_get_server_version, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_add_version_component", cmd_ap_add_version_component, NULL, NULL);
-	Tcl_CreateObjCommand(interp, "ap_get_server_built", cmd_ap_get_server_built, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_get_server_version", cmd_ap_get_server_version, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_add_version_component", cmd_ap_add_version_component, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_get_server_built", cmd_ap_get_server_built, NULL, NULL);
 	
 	/* util_script.h */
-	Tcl_CreateObjCommand(interp, "ap_create_environment", cmd_ap_create_environment, NULL, NULL);
+	Tcl_CreateObjCommand(interp, "apache::ap_create_environment", cmd_ap_create_environment, NULL, NULL);
 	
-	// provided
-	{
-		char output_proc[] = "\
-		proc output { script } {\n\
-			set script [split $script \\n]\n\
-			\n\
-			foreach i $script {\n\
-				if { $i != \"\" } {\n\
-					regsub -all {\\\"} $i {\\\"} i\n\
-					uplevel 1 rputs \\\"$i\\\"\n\
-				}\n\
+	// provided nasty
+	buf = "\
+	proc apache::output { script } {\n\
+		set script [split $script \\n]\n\
+		\n\
+		foreach i $script {\n\
+			if { $i != \"\" } {\n\
+				regsub -all {\\\"} $i {\\\"} i\n\
+				uplevel 1 rputs \\\"$i\\\"\n\
 			}\n\
-		}";
-							
-		run_script(interp, output_proc);
-	}
+		}\n\
+	}";
+						
+	run_script(interp, buf);
+
+	set_vari(interp, "apache::DECLINED", NULL, DECLINED);
+	set_vari(interp, "apache::DONE", NULL, DONE);
+	set_vari(interp, "apache::OK", NULL, OK);
+	
+	/* legacy */
+	set_vari(interp, "apache::BAD_REQUEST", NULL, HTTP_BAD_REQUEST);
+	set_vari(interp, "apache::REDIRECT", NULL, HTTP_MOVED_TEMPORARILY);
+	set_vari(interp, "apache::SERVER_ERROR", NULL, HTTP_INTERNAL_SERVER_ERROR);
+	set_vari(interp, "apache::NOT_FOUND", NULL, HTTP_NOT_FOUND);
+	
+	set_vari(interp, "apache::M_POST", NULL, M_POST);
+	set_vari(interp, "apache::M_GET", NULL, M_GET);
+	set_vari(interp, "apache::M_PUT", NULL, M_PUT);
+	set_vari(interp, "apache::M_DELETE", NULL, M_DELETE);
+	set_vari(interp, "apache::M_CONNECT", NULL, M_CONNECT);
+	set_vari(interp, "apache::M_OPTIONS", NULL, M_OPTIONS);
+	set_vari(interp, "apache::M_TRACE", NULL, M_TRACE);
+	set_vari(interp, "apache::M_PATCH", NULL, M_PATCH);
+	set_vari(interp, "apache::M_PROPFIND", NULL, M_PROPFIND);
+	set_vari(interp, "apache::M_PROPPATCH", NULL, M_PROPPATCH);
+	set_vari(interp, "apache::M_MKCOL", NULL, M_MKCOL);
+	set_vari(interp, "apache::M_COPY", NULL, M_COPY);
+	set_vari(interp, "apache::M_MOVE", NULL, M_MOVE);
+	set_vari(interp, "apache::M_LOCK", NULL, M_LOCK);
+	set_vari(interp, "apache::M_UNLOCK", NULL, M_UNLOCK);
+	set_vari(interp, "apache::M_INVALID", NULL, M_INVALID);
+	
+	set_vari(interp, "apache::HTTP_CONTINUE", NULL, HTTP_CONTINUE);
+	set_vari(interp, "apache::HTTP_SWITCHING_PROTOCOLS", NULL, HTTP_SWITCHING_PROTOCOLS);
+	set_vari(interp, "apache::HTTP_PROCESSING", NULL, HTTP_PROCESSING);
+	set_vari(interp, "apache::HTTP_OK", NULL, HTTP_OK);
+	set_vari(interp, "apache::HTTP_CREATED", NULL, HTTP_CREATED);
+	set_vari(interp, "apache::HTTP_ACCEPTED", NULL, HTTP_ACCEPTED);
+	set_vari(interp, "apache::HTTP_NON_AUTHORITATIVE", NULL, HTTP_NON_AUTHORITATIVE);
+	set_vari(interp, "apache::HTTP_NO_CONTENT", NULL, HTTP_NO_CONTENT);
+	set_vari(interp, "apache::HTTP_RESET_CONTENT", NULL, HTTP_RESET_CONTENT);
+	set_vari(interp, "apache::HTTP_PARTIAL_CONTENT", NULL, HTTP_PARTIAL_CONTENT);
+	set_vari(interp, "apache::HTTP_MULTI_STATUS", NULL, HTTP_MULTI_STATUS);
+	set_vari(interp, "apache::HTTP_MULTIPLE_CHOICES", NULL, HTTP_MULTIPLE_CHOICES);
+	set_vari(interp, "apache::HTTP_MOVED_PERMANENTLY", NULL, HTTP_MOVED_PERMANENTLY);
+	set_vari(interp, "apache::HTTP_MOVED_TEMPORARILY", NULL, HTTP_MOVED_TEMPORARILY);
+	set_vari(interp, "apache::HTTP_SEE_OTHER", NULL, HTTP_SEE_OTHER);
+	set_vari(interp, "apache::HTTP_NOT_MODIFIED", NULL, HTTP_NOT_MODIFIED);
+	set_vari(interp, "apache::HTTP_USE_PROXY", NULL, HTTP_USE_PROXY);
+	set_vari(interp, "apache::HTTP_TEMPORARY_REDIRECT", NULL, HTTP_TEMPORARY_REDIRECT);
+	set_vari(interp, "apache::HTTP_BAD_REQUEST", NULL, HTTP_BAD_REQUEST);
+	set_vari(interp, "apache::HTTP_UNAUTHORIZED", NULL, HTTP_UNAUTHORIZED);
+	set_vari(interp, "apache::HTTP_PAYMENT_REQUIRED", NULL, HTTP_PAYMENT_REQUIRED);
+	set_vari(interp, "apache::HTTP_FORBIDDEN", NULL, HTTP_FORBIDDEN);
+	set_vari(interp, "apache::HTTP_NOT_FOUND", NULL, HTTP_NOT_FOUND);
+	set_vari(interp, "apache::HTTP_METHOD_NOT_ALLOWED", NULL, HTTP_METHOD_NOT_ALLOWED);
+	set_vari(interp, "apache::HTTP_NOT_ACCEPTABLE", NULL, HTTP_NOT_ACCEPTABLE);
+	set_vari(interp, "apache::HTTP_PROXY_AUTHENTICATION_REQUIRED", NULL, HTTP_PROXY_AUTHENTICATION_REQUIRED);
+	set_vari(interp, "apache::HTTP_REQUEST_TIME_OUT", NULL, HTTP_REQUEST_TIME_OUT);
+	set_vari(interp, "apache::HTTP_CONFLICT", NULL, HTTP_CONFLICT);
+	set_vari(interp, "apache::HTTP_GONE", NULL, HTTP_GONE);
+	set_vari(interp, "apache::HTTP_LENGTH_REQUIRED", NULL, HTTP_LENGTH_REQUIRED);
+	set_vari(interp, "apache::HTTP_PRECONDITION_FAILED", NULL, HTTP_PRECONDITION_FAILED);
+	set_vari(interp, "apache::HTTP_REQUEST_ENTITY_TOO_LARGE", NULL, HTTP_REQUEST_ENTITY_TOO_LARGE);
+	set_vari(interp, "apache::HTTP_REQUEST_URI_TOO_LARGE", NULL, HTTP_REQUEST_URI_TOO_LARGE);
+	set_vari(interp, "apache::HTTP_UNSUPPORTED_MEDIA_TYPE", NULL, HTTP_UNSUPPORTED_MEDIA_TYPE);
+	set_vari(interp, "apache::HTTP_RANGE_NOT_SATISFIABLE", NULL, HTTP_RANGE_NOT_SATISFIABLE);
+	set_vari(interp, "apache::HTTP_EXPECTATION_FAILED", NULL, HTTP_EXPECTATION_FAILED);
+	set_vari(interp, "apache::HTTP_UNPROCESSABLE_ENTITY", NULL, HTTP_UNPROCESSABLE_ENTITY);
+	set_vari(interp, "apache::HTTP_LOCKED", NULL, HTTP_LOCKED);
+	set_vari(interp, "apache::HTTP_FAILED_DEPENDENCY", NULL, HTTP_FAILED_DEPENDENCY);
+	set_vari(interp, "apache::HTTP_INTERNAL_SERVER_ERROR", NULL, HTTP_INTERNAL_SERVER_ERROR);
+	set_vari(interp, "apache::HTTP_NOT_IMPLEMENTED", NULL, HTTP_NOT_IMPLEMENTED);
+	set_vari(interp, "apache::HTTP_BAD_GATEWAY", NULL, HTTP_BAD_GATEWAY);
+	set_vari(interp, "apache::HTTP_SERVICE_UNAVAILABLE", NULL, HTTP_SERVICE_UNAVAILABLE);
+	set_vari(interp, "apache::HTTP_GATEWAY_TIME_OUT", NULL, HTTP_GATEWAY_TIME_OUT);
+	set_vari(interp, "apache::HTTP_VERSION_NOT_SUPPORTED", NULL, HTTP_VERSION_NOT_SUPPORTED);
+	set_vari(interp, "apache::HTTP_VARIANT_ALSO_VARIES", NULL, HTTP_VARIANT_ALSO_VARIES);
+	set_vari(interp, "apache::HTTP_INSUFFICIENT_STORAGE", NULL, HTTP_INSUFFICIENT_STORAGE);
+	set_vari(interp, "apache::HTTP_NOT_EXTENDED", NULL, HTTP_NOT_EXTENDED);
+	
+	set_vari(interp, "apache::REMOTE_HOST", NULL, REMOTE_HOST);
+	set_vari(interp, "apache::REMOTE_NAME", NULL, REMOTE_NAME);
+	set_vari(interp, "apache::REMOTE_NOLOOKUP", NULL, REMOTE_NOLOOKUP);
+	set_vari(interp, "apache::REMOTE_DOUBLE_REV", NULL, REMOTE_DOUBLE_REV);
+	
+	set_vari(interp, "apache::APLOG_EMERG", NULL, APLOG_EMERG);
+	set_vari(interp, "apache::APLOG_ALERT", NULL, APLOG_ALERT);
+	set_vari(interp, "apache::APLOG_CRIT", NULL, APLOG_CRIT);
+	set_vari(interp, "apache::APLOG_ERR", NULL, APLOG_ERR);
+	set_vari(interp, "apache::APLOG_WARNING", NULL, APLOG_WARNING);
+	set_vari(interp, "apache::APLOG_NOTICE", NULL, APLOG_NOTICE);
+	set_vari(interp, "apache::APLOG_INFO", NULL, APLOG_INFO);
+	set_vari(interp, "apache::APLOG_DEBUG", NULL, APLOG_DEBUG);
+	set_vari(interp, "apache::APLOG_NOERRNO", NULL, APLOG_NOERRNO);
+
+	set_vari(interp, "apache::REQUEST_NO_BODY", NULL, REQUEST_NO_BODY);
+	set_vari(interp, "apache::REQUEST_CHUNKED_ERROR", NULL, REQUEST_CHUNKED_ERROR);
+	set_vari(interp, "apache::REQUEST_CHUNKED_DECHUNK", NULL, REQUEST_CHUNKED_DECHUNK);
+	
+	buf = "\
+	namespace eval apache {\
+		namespace export *\
+	}";
+	
+	run_script(interp, buf);
 }
 
 static apr_status_t tcl_cleanup(void *data)
@@ -566,7 +573,7 @@
 
 static void tcl_init_handler(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
 {
-	ap_add_version_component(pconf, "mod_tcl/1.0d4");
+	ap_add_version_component(pconf, "mod_tcl/1.0d5");
 }
 
 static int run_handler(request_rec *r, int hh)
@@ -609,8 +616,14 @@
 			
 			return HTTP_NOT_FOUND;
 		}
-		
+
+#ifdef HAVE_MMAP
 		mptr = mmap((caddr_t) 0, r->finfo.size, PROT_READ, MAP_SHARED, fd, 0);
+#else
+		mptr = malloc(r->finfo.size);
+		read(fd, mptr, r->finfo.size);
+#endif /* HAVE_MMAP */
+
 		bptr = (char*) malloc(r->finfo.size + flen + 21);
 		
 		memcpy(bptr, "namespace eval ", 15);		pos += 15;
@@ -619,7 +632,12 @@
 		memcpy(bptr + pos, mptr, r->finfo.size);	pos += r->finfo.size;
 		memcpy(bptr + pos, "\n}\0", 3);
 		
+#ifdef HAVE_MMAP
 		munmap((char*) mptr, r->finfo.size);
+#else
+		free(mptr);
+#endif /* HAVE_MMAP */
+
 		close(fd);
 		
 		fptr = (file_cache*) apr_push_array(fcache);
@@ -686,7 +704,13 @@
 			return HTTP_INTERNAL_SERVER_ERROR;
 		}
 		
+#ifdef HAVE_MMAP
 		mptr = mmap((caddr_t) 0, r->finfo.size, PROT_READ, MAP_SHARED, fd, 0);
+#else
+		mptr = malloc(r->finfo.size);
+		read(fd, mptr, f->finfo.size);
+#endif /* HAVE_MMAP */
+
 		bptr = malloc(r->finfo.size + flen + 21);
 		
 		memcpy(bptr, "namespace eval ", 15);		pos += 15;
@@ -695,7 +719,12 @@
 		memcpy(bptr + pos, mptr, r->finfo.size);	pos += r->finfo.size;
 		memcpy(bptr + pos, "\n}\0", 3);
 		
+#ifdef HAVE_MMAP
 		munmap((char*) mptr, r->finfo.size);
+#else
+		free(mptr);
+#endif /* HAVE_MMAP */
+
 		close(fd);
 		
 		fptr = (file_cache*) apr_push_array(fcache);