struct WBStartupNode
{
  struct Node node;
  struct DiskObject *diskobj;
  unsigned long   StackSize;
  long   toolpri;
  unsigned long   wait;
};

struct WBStartupPrefs
{
  char ExecutePath[200];
  char StoragePath[200];
  BOOL ShowWindow;
  UBYTE BackgroundType;
  char BackgroundFilename[201];
  BOOL Interactive;
  char PrefsPath[200];
  char PubScreenName[200];
};

/* Types for BackgroundType */
#define NONE       0
#define WORKBENCH  (WBP_ROOT+1)
#define WINDOWS    (WBP_DRAWER+1)
#define SCREEN     (WBP_SCREEN+1)
#define USERDEFINED ((unsigned char)(~0))

void GetFilenames(struct List *filenamequeue, APTR memPool, char *directory, BOOL ShowWindow);
void RunPrograms(struct List *filenamequeue, struct WBStartupPrefs *prefs);
void GetArguments(int argc, char **argv, struct WBStartupPrefs *prefs);
void ShowRequester(STRPTR RequesterText);
void DisplayVars(void);
void FreeIcons(struct List *list);
void RunPrefs(struct WBStartupPrefs *prefs);
struct Node *FindNameNoCase(struct List *list, char *name);
BOOL CheckSemaphore(void);

