[type-html2
strick**20120326051531
Ignore-this: b4c84c99d05db584b3f48af7f608b515
] hunk ./terse-a1/res/raw/prelude.txt 396
+
hunk ./terse-a1/res/raw/prelude.txt 399
- 'value', '
- ';
- )
+ 'value', '
+
+ - Test.
+
- hello
+
- world
+
- Go Home
+ ' ap:
+ FOR(i:100)MAP(
+ VEC('
- ', i) jam
+ ) implode
+ )
hunk ./terse-a1/src/terse/a1/TerseActivity.java 13
+import java.net.URI;
hunk ./terse-a1/src/terse/a1/TerseActivity.java 32
+import terse.vm.Pro.Blk;
hunk ./terse-a1/src/terse/a1/TerseActivity.java 64
+import android.webkit.WebViewClient;
hunk ./terse-a1/src/terse/a1/TerseActivity.java 499
+ webview.setWebViewClient(new WebViewClient(){
+ public boolean shouldOverrideUrlLoading (WebView view, String url) {
+ URI uri = URI.create(url);
+ startTerseActivity(uri.getPath(), uri.getQuery());
+ return true;
+ }
+ });
+ ScrollView scrollv = new ScrollView(this);
+ scrollv.addView(webview);
+ setContentView(scrollv);
+ return;
+ } else if (type.str.equals("live") && value instanceof Blk) {
+ WebView webview = new WebView(this);
+ webview.loadData(value.toString(), "text/html", null);
hunk ./terse-vm/src/terse/vm/Pro.java 2002
+ public static class Ht extends Static { // For XSS Safety.
+ private StringBuffer sb;
+
+ public Ht() {
+ this.sb = new StringBuffer();
+ }
+
+ public Ht(Ht that) {
+ this.sb = new StringBuffer(that.sb.toString());
+ }
+
+ public Ht(String s) {
+ this.sb = new StringBuffer(Static.htmlEscape(s));
+ }
+
+ public String toString() {
+ return sb.toString();
+ }
+
+ public Ht append(String s) {
+ sb.append(htmlEscape(s));
+ return this;
+ }
+
+ public Ht append(Ht that) {
+ sb.append(that.toString());
+ return this;
+ }
+
+ public Ht appendLink(String link, String label) {
+ Ht.tag(this, "a", strs("href", link), label);
+ return this;
+ }
+
+ public Ht append(Pro that) {
+ sb.append(htmlEscape(that.toString()));
+ return this;
+ }
+
+ static public Ht entity(String name) {
+ Ht ht = new Ht();
+ ht.sb.append(fmt("&%s;", name));
+ return ht;
+ }
+
+ static public Ht tag(Ht appendMe, String type, String[] args,
+ String body) {
+ return tag(appendMe, type, args, new Ht(body));
+ }
+
+ static public Ht tag(Ht appendMe, String type, String[] args, Ht body) {
+ Ht z = appendMe == null ? new Ht() : appendMe;
+ assert htmlTagP.matcher(type).matches();
+ z.sb.append(fmt("<%s ", type));
+ if (args != null) {
+ for (int i = 0; i < args.length; i += 2) {
+ assert htmlTagP.matcher(args[i]).matches();
+ z.sb.append(fmt("%s=\"%s\" ", args[i],
+ htmlEscape(args[i + 1])));
+ }
+ }
+ z.sb.append(fmt(">%s%s>", body, type));
+ return z;
+ }
+
+ static public Ht tag(Ht appendMe, String type, String[] args) {
+ Ht z = appendMe == null ? new Ht() : appendMe;
+ assert htmlTagP.matcher(type).matches();
+ z.sb.append(fmt("<%s ", type));
+ if (args != null) {
+ for (int i = 0; i < args.length; i += 2) {
+ assert htmlTagP.matcher(args[i]).matches();
+ z.sb.append(fmt("%s=\"%s\" ", args[i],
+ htmlEscape(args[i + 1])));
+ }
+ }
+ z.sb.append(" />");
+ return z;
+ }
+ }
+
hunk ./terse-web/src/terse/web/WebServer.java 20
+import terse.vm.Pro.Ht;
hunk ./terse-web/src/terse/web/WebServer.java 62
- public static class Ht extends Static { // For XSS Safety.
- private StringBuffer sb;
-
- public Ht() {
- this.sb = new StringBuffer();
- }
-
- public Ht(Ht that) {
- this.sb = new StringBuffer(that.sb.toString());
- }
-
- public Ht(String s) {
- this.sb = new StringBuffer(Static.htmlEscape(s));
- }
-
- public String toString() {
- return sb.toString();
- }
-
- public Ht append(String s) {
- sb.append(htmlEscape(s));
- return this;
- }
-
- public Ht append(Ht that) {
- sb.append(that.toString());
- return this;
- }
-
- public Ht appendLink(String link, String label) {
- Ht.tag(this, "a", strs("href", link), label);
- return this;
- }
-
- public Ht append(Pro that) {
- sb.append(htmlEscape(that.toString()));
- return this;
- }
-
- static public Ht entity(String name) {
- Ht ht = new Ht();
- ht.sb.append(fmt("&%s;", name));
- return ht;
- }
-
- static public Ht tag(Ht appendMe, String type, String[] args,
- String body) {
- return tag(appendMe, type, args, new Ht(body));
- }
-
- static public Ht tag(Ht appendMe, String type, String[] args, Ht body) {
- Ht z = appendMe == null ? new Ht() : appendMe;
- assert htmlTagP.matcher(type).matches();
- z.sb.append(fmt("<%s ", type));
- if (args != null) {
- for (int i = 0; i < args.length; i += 2) {
- assert htmlTagP.matcher(args[i]).matches();
- z.sb.append(fmt("%s=\"%s\" ", args[i],
- htmlEscape(args[i + 1])));
- }
- }
- z.sb.append(fmt(">%s%s>", body, type));
- return z;
- }
-
- static public Ht tag(Ht appendMe, String type, String[] args) {
- Ht z = appendMe == null ? new Ht() : appendMe;
- assert htmlTagP.matcher(type).matches();
- z.sb.append(fmt("<%s ", type));
- if (args != null) {
- for (int i = 0; i < args.length; i += 2) {
- assert htmlTagP.matcher(args[i]).matches();
- z.sb.append(fmt("%s=\"%s\" ", args[i],
- htmlEscape(args[i + 1])));
- }
- }
- z.sb.append(" />");
- return z;
- }
- }
-