SYNOPSIS
	void input_to(string fun)
	void input_to(string fun, int flag, ...)

DESCRIPTION
	Enable next line of user input to be sent to the local
	function fun as an argument. The input line will not be
	parsed, only when it starts with a "!" (like a kind of shell
	escape) (this feature may be disabled).
	The function <fun> may be static, but must not be private (or
	it won't be found).
	
	Note that fun is not called immediately but after pressing the
	RETURN key.
	
	If input_to() is called more than once in the same execution,
	only the first call has any effect.
	
	The optional argument <flag> may be a binary-OR ('|') of the
	following option values:

	    1 'noecho': 
	      The line given by the player will not be echoed, and is
	      not seen if snooped.

	    2 'charmode': 
	      The connection is switched from line- into charmode to
	      retrieve a single character(!) from the player; newlines
	      read as two characters, "\r" followed by "\n".
	      After execution of <fun>, the connection is switched
	      back into linemode unless a subsequent input_to( , 2)
	      has been issued.
	      Note that the players frontend is free to stay in
	      linemode all the time: even if you request a single
	      character, the player might be forced to type (and send)
	      that character plus the return key.

          128 'ignore bang': 
	      Input lines starting with '!' will _not_ be parsed as
	      commands, but are given to the function as well. Usage
	      of this option is privileged.

	The optional 3rd and following args will be passed as second and
	subsequent args to the function fun. (This feature is was
	added only recently, to avoid the need for global variables)

	IMPORTANT: If you use the message kernel-functions you _need_ to
	           | the message-class with MMSG_DIRECT, or the output
	           will get buffered and not be shown to the player at
	           the time you want it to be shown. (see example below)

EXAMPLE
	(using the message kernel-functions)

	#include <msgclass.h>

	void func() {
	   ...
	   msg_write( CMSG_GENERIC, "Please enter your name:" );
	   input_to("enter_name");
	   ...
	}
	enter_name(string str) {
	   msg_write( CMSG_GENERIC|MMSG_DIRECT,
	              "Is '"+str+"' really your name?? *giggle*\n");
	   ...
	}
	
	When reaching the input_to() statement the driver
	continues the function func() but also asks the user for
	input. If you entered whatever is asked and press RETURN the
	driver will invoke the enter_name() function with the
	string you entered as argument to it.

	Important is that you always | MMSG_DIRECT for msg_write's
	(and of cause for all other msg_xxx kernel-functions), because
	those messages need to be processed directly. If you do not 
	specify that message modifier, it would get buffered and the 
	user would see it all after he left the input_to.

HISTORY
	The meaning of the flag parameter was extended in 3.2.1@93.

SEE ALSO
	call_other(E), sscanf(E), privilege_violation(M)
