/*** Copyright 1992 by D.W.Reisig. ***/ unsigned char Version[] = "$VER: XNote 1.0 04-May-92 © 1992 D.W.Reisig\n"; #include #include #include #include #include #include #define COMMENTSIZE 80 #define XBUFSIZE 512 extern VOID Quit(LONG ReturnValue, LONG Result2); ULONG StdOut; UBYTE *ErrMsg, *PrgName; /*---------------------------------------------------------------------------*/ VOID main(LONG argc, UBYTE *argv[]) { // static UWORD Pad; // Align FileInfoBlocks if necessary static struct FileInfoBlock InfoBlock; static UBYTE Usage0[] = "Syntax: "; static UBYTE Usage1[] = " \nFunction: Execute a filenote replacing '@' by \n"; static UBYTE NoAccess[] = ": Could not access file\n"; static UBYTE XBuf[XBUFSIZE]; UBYTE *FileNameChar=&Usage1[48]; //*** Make it easy to change the keychar (@) ULONG FileLock; UBYTE *FileName; LONG ci, ni, di; UBYTE c; if (argc == 0) _exit(RETURN_FAIL); PrgName = argv[0]; StdOut = Output(); //*** Check command if ((argc<2) || ((argc>1)&&(*argv[1]=='?'))){ Write(StdOut, Usage0, sizeof(Usage0)-1); Write(StdOut, PrgName, strlen(PrgName)); Write(StdOut, Usage1, sizeof(Usage1)-1); Quit(RETURN_ERROR, ERROR_REQUIRED_ARG_MISSING); } FileName = argv[1]; //*** Get access to file FileLock = Lock(FileName, ACCESS_READ); if (!FileLock){ ErrMsg = NoAccess; Quit(RETURN_FAIL, IoErr()); } if (!Examine(FileLock, &InfoBlock)){ UnLock(FileLock); ErrMsg = NoAccess; Quit(RETURN_FAIL, IoErr()); } UnLock(FileLock); //*** Copy Comment to execute buffer, replacing each keychar by the filename for (ci=0, di=0; (c=InfoBlock.fib_Comment[ci]) && (cipr_Result2 = Result2; _exit(ReturnValue); } /*---------------------------------------------------------------------------*/ Nop() { return(0); }