Hello Ralph, Ralph Corderoy wrote in <20190227185909.a7d8b20...@orac.inputplus.co.uk>: |> \if [ $s == 42 ] |> \echo 'Second 42, sleeping a second' |> \sleep 1 |> \xcall on-compose-leave |> \end |> \if [ $m == 42 ] |> \vput vexpr res - 10#$s 60 |> \vput vexpr res - 0 $res |> \echo 'Minute 42, sleeping '$res' seconds' |> \sleep $res |> \xcall on-compose-leave |> \end | |Strictly speaking, these need to loop as the sleep may last longer than |planned. Even then, there's a race condition between the test and the |execution.
Sigh. The xcall recursion after waiting is pointless. Fixed. It was left from testing when i did one second steps (i did after running in an octal problem which resulted in the "10#$s" you can see above, and i have an on-paper TODO for a "decimal" modifier for `if' and `vexpr' because the above would fail if "$s" has leading whitespace). (Btw. i also fixed "vexpr trim" which does not trim at the end in the current release because we allow shorthands like "trim-e" to mean trim-end, and at some time i messed that up since of course "trim" is a valid shorthand for "trim-xy", is it. Lots of sighs here.) |I think some timezones can be 30 minutes off the hour so it may still be |42 minutes from the recipient's point of view? Is avoiding the 42nd |ordinal day of the year left as an exercise for the reader? :-) That :42:42 was _really_ strange. But no, that long i won't wait. Cheerio. --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)