{
{   A utility dialog manager is a procedure called by the SCL interpreter on
{ behalf of a command utility that does not supply its own "interactive include
{ processor" for screen or desktop style interactions.
{
{   The first time a utility dialog manager is called within a utility it is
{ expected to establish tables of commands and functions to allow for user
{ customization of the screen/desktop environment for the utility.  These
{ commands and functions are in addition to those provided by the utility
{ itself.  It may obtain any additional information it needs about the utility
{ via the clp$get_utility_attributes request.  It should behave as if it were
{ an "interactive include processor" (see CLH$UTILITY_INTERACTIVE_INCLUDE for
{ more information).
{
{   It is possible for a utility dialog manager to called more than once within
{ a single utility session.  To support this situation and the ability of the
{ utility dialog manager to support activate_screen/deactivate_screen commands,
{ as well as providing a structured mechanism for cleaning up, the support
{ requests for a utility dialog manager provide for creation and deletion of a
{ scratrch segment for use by the utility dialog manager.
{
{       utility_dialog_manager (UTILITY, DIALOG_INFO, STATUS)
{
{ UTILITY: (input)  This parameter specifies the name of the utility for which
{       the utility dialog manager is called.
{
{ DIALOG_INFO: (input)  This parameter specifies the information established
{       for the utility dialog.  It includes a pointer to a table of commands,
{       a pointer to a table of functions, and a pointer to a SEQuence
{       designating a scratch segment.  If a pointer is NIL, the corresponding
{       item has not been established for the dialog manager, hence all of the
{       pointers are NIL on the first call to the utility dialog manager within
{       a utility session.
{
{ STATUS: (output)  This parameter specifies the request status.
{
