\ J-LAN Communicator \ Forth CODE \ \ Away script (put this code into $HOME/.jlanc.fth) \ by Juan J. Martinez reidrac*at*usebox*dot*net : ON.INIT (called when interpreter starts) C"AWAY" C"Away" ADD.USER.COMMAND VARIABLE AWAY.STATUS VARIABLE AWAY.MSG FALSE AWAY.STATUS ! (we're not away) C"dummy" AWAY.MSG ! (must be init) ; : ON.NICK (someone called me) AWAY.STATUS @ TRUE = IF FALSE AWAY.STATUS ! (avoid ON.SEND) 1 JLANC.BUFFER ! (enable buffering) ."I'm away, reason: " 0 JLANC.BUFFER ! (disable buffering) MSG AWAY.MSG @ COUNT TYPE TRUE AWAY.STATUS ! (away again) THEN DROP ; : ON.SEND (send something when you're back) AWAY.STATUS @ TRUE = IF ."You're back!" CR FALSE AWAY.STATUS ! THEN DROP ; : AWAY (set me away) AWAY.MSG @ FREE.STRING (delete old string) C"Enter your away message:" READ.STRING AWAY.MSG ! (save new message) TRUE AWAY.STATUS ! (I'm away) ."You're away" CR ; \ EOF