echo ; /*
lc -Lcr -O -rr wild
quit
*/

/*
 * wild.c
 *
 * Wildstar-Flag-Switcher
 *
 * Dirk Farin
 * Kapellenweg 15
 * 72070 Tübingen
 * farindk@trick.informatik.uni-stuttgart.de
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dos/dosextens.h>

struct DosLibrary *DOSBase;

char *version="$VER: wild 1.0 (6.3.94) "
              "© Dirk Farin (farindk@trick.informatik.uni-stuttgart.de)";

void helpexit(char *prgname)
{
  printf("Usage: %s [on|off]\n",prgname);
  exit(5);
}

int main(int argc,char **argv)
{
  LONG *flagptr;
  BOOL  flagstatus;
  BOOL  toset;

  if (DOSBase->dl_lib.lib_Version < 37)
  {
    printf("Sorry, need at least DOS-Version 2.04\n");
    exit(10);
  }

  flagptr = &(((struct RootNode *)DOSBase->dl_Root)->rn_Flags);
  flagstatus = ((*flagptr) & RNF_WILDSTAR) ? TRUE:FALSE;

  printf("Dirk Farin's wildstar-switcher\n"
         "------------------------------\n");

  if (argc>2) helpexit(argv[0]);

  if (argc==1) toset = !flagstatus;
  else
  {
         if (stricmp(argv[1],"on" ) == 0) toset=TRUE;
    else if (stricmp(argv[1],"off") == 0) toset=FALSE;
    else helpexit(argv[0]);
  }

  printf("Switching wildstar %s!\n",toset ? "on" : "off" );

  if (toset) (*flagptr) |=  RNF_WILDSTAR;
  else       (*flagptr) &= ~RNF_WILDSTAR;

  return 0;
}

