view tests/channelThief.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 a671e5258a2c
children
line wrap: on
line source
table t : { Ch : channel string }

fun go () =
    let
        fun overwrite () =
            dml (DELETE FROM t WHERE TRUE);
            ch <- channel;
            dml (INSERT INTO t (Ch) VALUES ({[ch]}));
            return ch

        fun retrieve () =
            oneRowE1 (SELECT (t.Ch) FROM t)

        fun transmit () =
            ch <- retrieve ();
            send ch "Test"

        fun listenOn ch =
            s <- recv ch;
            alert s
    in
        ch <- overwrite ();
        return <xml><body onload={listenOn ch}>
          <button value="overwrite" onclick={fn _ => ch <- rpc (overwrite ()); listenOn ch}/>
          <button value="retrieve" onclick={fn _ => ch <- rpc (retrieve ()); listenOn ch}/>
          <button value="transmit" onclick={fn _ => rpc (transmit ())}/>
        </body></xml>
    end

fun main () = return <xml><body>
  <form><submit action={go}/></form>
</body></xml>