changeset 1386:64724ef86149

Basis.currentUrlHasPost
author Adam Chlipala <adam@chlipala.net>
date Thu, 06 Jan 2011 14:45:52 -0500
parents 449a12b82db7
children dd99e1702432
files include/urweb.h lib/ur/basis.urs src/c/request.c src/c/urweb.c
diffstat 4 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/include/urweb.h	Thu Jan 06 14:25:42 2011 -0500
+++ b/include/urweb.h	Thu Jan 06 14:45:52 2011 -0500
@@ -322,4 +322,7 @@
 
 uw_Basis_time *uw_Basis_readUtc(uw_context, uw_Basis_string);
 
+void uw_isPost(uw_context);
+uw_Basis_bool uw_Basis_currentUrlHasPost(uw_context);
+
 #endif
--- a/lib/ur/basis.urs	Thu Jan 06 14:25:42 2011 -0500
+++ b/lib/ur/basis.urs	Thu Jan 06 14:45:52 2011 -0500
@@ -634,6 +634,7 @@
 val bless : string -> url
 val checkUrl : string -> option url
 val currentUrl : transaction url
+val currentUrlHasPost : transaction bool
 val url : transaction page -> url
 val effectfulUrl : (option queryString -> transaction page) -> url
 val redirect : t ::: Type -> url -> transaction t
--- a/src/c/request.c	Thu Jan 06 14:25:42 2011 -0500
+++ b/src/c/request.c	Thu Jan 06 14:45:52 2011 -0500
@@ -230,6 +230,7 @@
     }
 
     is_post = 1;
+    uw_isPost(ctx);
 
     clen_s = uw_Basis_requestHeader(ctx, "Content-type");
     if (clen_s && !strncasecmp(clen_s, "multipart/form-data", 19)) {
--- a/src/c/urweb.c	Thu Jan 06 14:25:42 2011 -0500
+++ b/src/c/urweb.c	Thu Jan 06 14:45:52 2011 -0500
@@ -442,7 +442,7 @@
   void *logger_data;
   uw_logger log_debug;
 
-  int hasPostBody;
+  int isPost, hasPostBody;
   uw_Basis_postBody postBody;
   uw_Basis_string queryString;
 
@@ -508,7 +508,7 @@
   ctx->logger_data = logger_data;
   ctx->log_debug = log_debug;
 
-  ctx->hasPostBody = 0;
+  ctx->isPost = ctx->hasPostBody = 0;
 
   ctx->queryString = NULL;
 
@@ -588,7 +588,7 @@
   ctx->cur_container = NULL;
   ctx->used_transactionals = 0;
   ctx->script_header = "";
-  ctx->hasPostBody = 0;
+  ctx->isPost = ctx->hasPostBody = 0;
   ctx->queryString = NULL;
 }
 
@@ -3603,6 +3603,14 @@
   return ctx->hasPostBody;
 }
 
+void uw_isPost(uw_context ctx) {
+  ctx->isPost = 1;
+}
+
+uw_Basis_bool uw_Basis_currentUrlHasPost(uw_context ctx) {
+  return ctx->isPost;
+}
+
 void uw_setQueryString(uw_context ctx, uw_Basis_string s) {
   ctx->queryString = s;
 }