# HG changeset patch # User Adam Chlipala # Date 1262368086 18000 # Node ID 631a3597c065b0d09109e7ff5d32f7527fcaf70c # Parent 82ac88b4e0a7eef9cff655cdbf2263f6f52ca18b Proper [un]urlification of unit diff -r 82ac88b4e0a7 -r 631a3597c065 include/urweb.h --- a/include/urweb.h Fri Jan 01 10:49:36 2010 -0500 +++ b/include/urweb.h Fri Jan 01 12:48:06 2010 -0500 @@ -117,6 +117,7 @@ uw_unit uw_Basis_urlifyBool_w(uw_context, uw_Basis_bool); uw_unit uw_Basis_urlifyChannel_w(uw_context, uw_Basis_channel); +uw_Basis_unit uw_Basis_unurlifyUnit(uw_context ctx, char **s); uw_Basis_int uw_Basis_unurlifyInt(uw_context, char **); uw_Basis_float uw_Basis_unurlifyFloat(uw_context, char **); uw_Basis_string uw_Basis_unurlifyString(uw_context, char **); diff -r 82ac88b4e0a7 -r 631a3597c065 src/c/urweb.c --- a/src/c/urweb.c Fri Jan 01 10:49:36 2010 -0500 +++ b/src/c/urweb.c Fri Jan 01 12:48:06 2010 -0500 @@ -1793,6 +1793,11 @@ return r; } +uw_Basis_unit uw_Basis_unurlifyUnit(uw_context ctx, char **s) { + *s = uw_unurlify_advance(*s); + return uw_unit_v; +} + uw_Basis_string uw_Basis_unurlifyString_fromClient(uw_context ctx, char **s) { char *new_s = uw_unurlify_advance(*s); char *r, *s1, *s2; diff -r 82ac88b4e0a7 -r 631a3597c065 src/cjr_print.sml --- a/src/cjr_print.sml Fri Jan 01 10:49:36 2010 -0500 +++ b/src/cjr_print.sml Fri Jan 01 12:48:06 2010 -0500 @@ -565,14 +565,14 @@ let fun unurlify' rf t = case t of - TFfi ("Basis", "unit") => string "uw_unit_v" + TFfi ("Basis", "unit") => string "uw_Basis_unurlifyUnit(ctx, &request)" | TFfi ("Basis", "string") => string (if fromClient then "uw_Basis_unurlifyString_fromClient(ctx, &request)" else "uw_Basis_unurlifyString(ctx, &request)") | TFfi (m, t) => string ("uw_" ^ ident m ^ "_unurlify" ^ capitalize t ^ "(ctx, &request)") - | TRecord 0 => string "uw_unit_v" + | TRecord 0 => string "uw_Basis_unurlifyUnit(ctx, &request)" | TRecord i => let val xts = E.lookupStruct env i diff -r 82ac88b4e0a7 -r 631a3597c065 src/monoize.sml --- a/src/monoize.sml Fri Jan 01 10:49:36 2010 -0500 +++ b/src/monoize.sml Fri Jan 01 12:48:06 2010 -0500 @@ -433,7 +433,8 @@ end | _ => case t of - L'.TFfi (m, x) => ((L'.EFfiApp (m, fk2s fk ^ "ify" ^ capitalize x, [e]), loc), fm) + L'.TFfi ("Basis", "unit") => ((L'.EPrim (Prim.String ""), loc), fm) + | L'.TFfi (m, x) => ((L'.EFfiApp (m, fk2s fk ^ "ify" ^ capitalize x, [e]), loc), fm) | L'.TRecord [] => ((L'.EPrim (Prim.String ""), loc), fm) | L'.TRecord ((x, t) :: xts) =>