/* * MakeLink.c - Copyright © 1991 by Devil's child. * * Created: 26 Nov 1992 21:42:25 * Modified: 02 Oct 1994 11:09:30 * * Make>> sc .c * Make>> slink .o SC SD ND BATCH NOICONS TO */ #define ARG_FROM 0 #define ARG_TO 1 long _main(void) { struct ExecBase *SysBase = *((struct ExecBase **)4L); struct DosLibrary *DOSBase; APTR UtilityBase; char FromPath[256]; struct RDArgs *RA; char *Argv[] = { NULL, NULL, NULL }; BPTR FromDir, L; long rc=20; if (DOSBase = (struct DosLibrary *)OpenLibrary("dos.library", 37)) { UtilityBase = DOSBase->dl_UtilityBase; if (RA = ReadArgs("From/A,To/A", (long *)Argv, NULL)) { strcpy(FromPath, Argv[ARG_FROM]); *PathPart(FromPath) = '\0'; if (FromDir = Lock(FromPath, ACCESS_READ)) { if (L = Lock(Argv[ARG_TO], ACCESS_READ)) { if (SameLock(FromDir, L) == LOCK_DIFFERENT) { if (MakeLink(Argv[ARG_FROM], (long)Argv[ARG_TO], LINK_SOFT)) rc = 0; } else { if (MakeLink(Argv[ARG_FROM], L, LINK_HARD)) rc = 0; } UnLock(L); } UnLock(FromDir); } FreeArgs(RA); } if (rc) PrintFault(IoErr(), "MakeLink"); CloseLibrary((struct Library *)DOSBase); } return rc; } static const char Ver[] = "$VER:MakeLink 41.0 (01.10.94)";