Diverting IDL Output
When using a tty-based interface (available only on UNIX platforms), IDL sends its output to the screen for the user to see. When using a GUI-based interface (any platform), the output goes to the IDL log window. The default output function is automatically installed by IDL at startup. To divert IDL output to a function of your own design, use IDL_ToutPush() and IDL_ToutPop() to change the output function called by IDL.
Internally, IDL maintains a stack of output functions, and provides two functions (IDL_ToutPush() and IDL_ToutPop()) to manage them. The most recently pushed output function is called to output each line of text. Output functions of your own design should have the following type definition:
The arguments to an output function are:
flags
A bitmask of flag values that specify how the text should be output. The allowed bit values are:
IDL_TOUT_F_STDERR
Send the text to stderr rather than stdout, if that distinction means anything to your output device.
IDL_TOUT_F_NLPOST
After outputting the text, start a new output line. On a tty, this is equivalent to sending a newline ('\n') character.
buf
The text to be output. There may or may not be a NULL termination, so the character count provided by n must be used to move only the specified number of characters.
n
The number of characters in buf to be output.
IDL_ToutPush()
Use IDL_ToutPush() to push a new output function onto the stack. The most recently pushed function is the one used by IDL for output.
IDL_ToutPop()
IDL_ToutPop() removes the most recently pushed output function. The removed function pointer is returned.
Warning
Do not pop an output function you did not push. It is an error to attempt to remove the last remaining function.