Mercurial > urweb
view demo/nested.ur @ 2142:3288e3c9948b
Fix XML indentation in Emacs mode
The return value of MATCH-STRING is a string. At least on Emacs 25,
the comparisons between string and character with EQUAL could never
succeed, and so the cases for matching braces were never triggered.
GET-TEXT-PROPERTY may return a list rather than an atom (for example,
on long lines with whitespace-mode turned on), and this broke the
heuristic of looking for the tag face in previous text.
author | Julian Squires <julian@cipht.net> |
---|---|
date | Mon, 04 May 2015 14:35:07 -0400 |
parents | d4a81273d4b1 |
children |
line wrap: on
line source
fun pageA () = return <xml> <head> <title>A</title> </head> <body> <form> <table> <tr> <td>Forename:</td> <td><textbox{#Forename}/></td> </tr> <tr> <td>Enter a Surname?</td> <td><checkbox{#EnterSurname}/></td> </tr> </table> <submit action={fromA} /> </form> </body> </xml> and fromA r = let val forename = r.Forename fun pageB () = return <xml> <head> <title>B</title> </head> <body> <form> Surname: <textbox{#Surname}/> <submit action={pageC'} /> </form> <a link={pageA ()}>Previous</a> </body> </xml> and pageC' r = pageC (Some r.Surname) and pageC surname = return <xml> <head> <title>C</title> </head> <body> <p>Hello {[forename]}{case surname of None => <xml/> | Some s => <xml> {[s]}</xml>}</p> {case surname of None => <xml><a link={pageA ()}>Previous</a></xml> | Some _ => <xml><a link={pageB ()}>Previous</a></xml>} </body> </xml> in if r.EnterSurname then pageB () else pageC None end val main = pageA