gawk ' function flush () { system("/bin/true"); } BEGIN { print "\ %form top topLevel \n\ %asciiText input top editType edit width 200 \n\ %action input override {Return: exec(echo [gV input string])} \n\ %label result top label {} width 200 fromVert input \n\ %command quit top fromVert result callback quit \n\ %label info top fromVert result fromHoriz quit label {} borderWidth 0 width 150 \n\ %realize\n" ; flush(); } $1 ~ /^[0-9]+$/ { print "%sV info label {thinking ...}" ; flush(); starttime = systime(); result = ""; number = $1; for (d=2; d <= number; ) { if ( number % d == 0 ) { if (result == "") result = d; else result = d "*" result; number = number / d; } else { d++; } } print "%sV result label {" result "}" ; print "%sV info label {" systime()-starttime " seconds}" ; flush(); } $1 !~ /^[0-9]+$/ { print "%sV info label {invalid input}"; flush(); }