/*
**    GMI (GetModeInfo)
**
**        © 1996 by Timo C. Nentwig
**        All Rights Reserved !
**
**        Tcn@oxygen.in-berlin.de
**
**
*/

/// #include

#include "GST.h"
#include "Protos.h"

///
/// proto

proto  BOOL    EvalArgs     (VOID);
proto  VOID    InitSettings (VOID);

///

/// InitSetting ()

    /*
     *    FUNCTION    Initialize settings structure.
     *
     *    EXAMPLE     InitSettings ();
     *
     */


VOID
InitSettings (VOID)
{

    Set -> Info . Dimension = FALSE;
    Set -> Info . Monitor   = FALSE;
    Set -> Info . Display   = FALSE;

}

///
/// EvalArgs ()

    /*
     *    FUNCTION    Evaluate given shell arguments
     *
     *    EXAMPLE     Success = EvalArgs ();
     *
     */

BOOL
EvalArgs (VOID)
{

    BOOL    Result = FALSE;

    #define TEMPLATE "DI=DIMENSIONINFO/S,MI=MONITORINFO/S,DII=DISPLAYINFO/S"

    enum
    {

        DIMENSIONINFO,
        MONITORINFO,
        DISPLAYINFO,

        ARG_COUNT

    };

    STRPTR   *ArgArray;

    if (ArgArray = (STRPTR *) AllocVec (sizeof (STRPTR) * (ARG_COUNT), MEMF_ANY | MEMF_CLEAR))
    {

        struct    RDArgs   *ArgsPtr;

        if (ArgsPtr = (struct RDArgs *) AllocDosObject (DOS_RDARGS, TAG_END))
        {

            ArgsPtr -> RDA_ExtHelp = "[2m" PRG_TITLE " " PRG_VERSION "\n"
                                     "Copyright © " PRG_YEAR " by " PRG_AUTHOR "[0m\n"
                                     "All Rights Reserved !\n\n"
                                      PRG_EMAIL "\n";

            if (ReadArgs (TEMPLATE, (LONG *) ArgArray, ArgsPtr))
            {

                if (ArgArray [DIMENSIONINFO])    Set -> Info . Dimension = TRUE;
                if (ArgArray [MONITORINFO])      Set -> Info . Monitor   = TRUE;
                if (ArgArray [DISPLAYINFO])      Set -> Info . Display   = TRUE;

                Result = TRUE;

                FreeArgs (ArgsPtr);

            }

            FreeDosObject (DOS_RDARGS, ArgsPtr);

        }

        FreeVec (ArgArray);

    }

    return (Result);

}

///

