/* utillib (c) 1996 DN Bertollo, All rights reserved */ /* File related system functions */ dcl GetDefaultDrive external entry returns(char(1)); /* out: Drive letter */ dcl GetDefaultPath external entry( char(1)) /* in: Drive Letter */ returns(char(256) varying); /* out: Path name */ dcl SetDefaultDrive external entry( char(1)) /* in: Drive letter */ returns(optional bit(1)); /* out: T if set OK */ dcl SetDefaultPath external entry( char(*) varying) /* in: Path name */ returns(optional bit(1)); /* out: T if set OK */ /* Routines for parsing file names */ dcl HasExtension external Entry(char(*) varying, /* in: Full file name */ fixed bin(15)) /* out: position of '.' */ returns(optional bit(1)); /* True = has extension */ dcl DefaultExtension external Entry(char(*) varying, /* in: Full file name */ char(*) varying) /* in: def extension (no .)*/ returns(char(256) varying); /* out: Full file name */ dcl ForceExtension external Entry(char(*) varying, /* in: Full file name */ char(*) varying) /* in: New extension */ returns(char(256) varying); /* out: Full file name */ dcl JustExtension external Entry(char(*) varying) /* in: Full file name */ returns(char(256) varying); /* out: File extension */ dcl JustFileName external Entry(char(*) varying) /* in: Full file name */ returns(char(256) varying); /* out: File name & extens */ dcl JustName external Entry(char(*) varying) /* in: Full fine name */ returns(char(256) varying); /* out: File name only */ dcl JustPathName external Entry(char(*) varying) /* in: Full file name */ returns(char(256) varying); /* out: Drive & Path */ dcl JustDriveLetter external Entry(char(*) varying) /* in: Full file name */ returns(char(1)); /* out: Drive letter */ dcl DriveNumber external Entry(char(1)) /* in: Drive letter */ returns(fixed bin(15)); /* out: Drive number */ dcl DriveLetter external Entry(fixed bin(15)) /* in: Drive Number */ returns(char(1)); /* out: Drive Letter */ dcl AddBackSlash external Entry(char(*) varying) /* in: Full file name */ returns(char(256) varying); /* out: Full file name */ /* Command line parsing routines */ /* general usage is: dcl CLP pointer; /= anchor pointer =/ call CLP_Init(CLP,'0'b); /= allocate tables =/ call CLP_Process(CLP, CommandString); call CLP_Get... as many times as required .... call CLP_Done(CLP); /= free tables =/ */ dcl CLP_Init external Entry(pointer, /* out: CLP Pointer */ bit(1)); /* in: T=respect sw case */ dcl CLP_Process external entry(pointer, /* in: CLP Pointer */ char(*) varying) /* in: Command string */ returns(optional fixed bin(15)); /* total param count */ dcl CLP_ParameterCount external entry(pointer) /* in: CLP Pointer */ returns(fixed bin(15)); /* out: total param count */ dcl CLP_PositionalCount external entry(pointer) /* in: CLP Pointer */ returns(fixed bin(15)); /* out: # of positionals */ dcl CLP_SwitchCount external entry(pointer) /* in: CLP Pointer */ returns(fixed bin(15)); /* out: # of switches */ dcl CLP_GetPositional external entry(pointer, /* in: CLP Pointer */ fixed bin(15), /* in: Positional # */ char(*) varying) /* out: Parameter */ returns(optional bit(1)); /* out: True if # found */ dcl CLP_GetSwitch external entry(pointer, /* in: CLP Pointer */ fixed bin(15), /* in: Switch # */ char(1), /* out: Switch name */ char(*) varying) /* out: Switch args */ returns(optional bit(1)); /* out: True if # found */ dcl CLP_GetSwitchByName external entry(pointer, /* in: CLP Pointer */ char(1), /* in: Switch name */ char(*) varying) /* out: Switch args */ returns(bit(1)); /* out: True if SW found */ dcl CLP_Done external entry(pointer); /* in: CLP Pointer */ dcl CLP_Dump external Entry(pointer, /* in: CLP Pointer */ char(*) varying); /* in: Dump Heading */