# HG changeset patch # User Adam Chlipala # Date 1331901771 14400 # Node ID 6f2f74cc4eadb7261363bf9f8e7809a267dfe437 # Parent 06791667937ecd928dc034c6491db27b4b5a26f2 Change ID generation scheme to conform to HTML standards (thanks to Edward Yang for the catch) diff -r 06791667937e -r 6f2f74cc4ead lib/js/urweb.js --- a/lib/js/urweb.js Wed Mar 14 10:10:56 2012 -0400 +++ b/lib/js/urweb.js Fri Mar 16 08:42:51 2012 -0400 @@ -1731,7 +1731,7 @@ var nextId = 0; function fresh() { - return (--nextId).toString(); + return "uw" + (--nextId); } diff -r 06791667937e -r 6f2f74cc4ead src/c/urweb.c --- a/src/c/urweb.c Wed Mar 14 10:10:56 2012 -0400 +++ b/src/c/urweb.c Fri Mar 16 08:42:51 2012 -0400 @@ -3962,7 +3962,14 @@ } uw_Basis_string uw_Basis_fresh(uw_context ctx) { - return uw_Basis_htmlifyInt(ctx, ctx->nextId++); + int len; + char *r; + + uw_check_heap(ctx, 2+INTS_MAX); + r = ctx->heap.front; + sprintf(r, "uw%u%n", ctx->nextId++, &len); + ctx->heap.front += len+1; + return r; } uw_Basis_float uw_Basis_floatFromInt(uw_context ctx, uw_Basis_int n) { diff -r 06791667937e -r 6f2f74cc4ead tests/id.ur --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/id.ur Fri Mar 16 08:42:51 2012 -0400 @@ -0,0 +1,11 @@ +fun main () : transaction page = + id1 <- fresh; + id2 <- fresh; + x <- source ; + return + Hi! + Ho! + +