#include #include #include #if defined(PROFYLER) #include #endif #include "amigaos4.h" static BOOL getFullPath(const char *path, char *result) { BPTR pathLock = Lock(path, SHARED_LOCK); if (pathLock) { NameFromLock(pathLock, result, sizeof(char) * MAX_DOS_NAME); UnLock(pathLock); return TRUE; } return FALSE; } static BOOL getCurrentPath(char *result) { BPTR pathLock = GetCurrentDir(); if (pathLock) { NameFromLock(pathLock, result, sizeof(char) * MAX_DOS_NAME); return TRUE; } return FALSE; } char *_fullpath(const char *path) { static char prvPath[MAX_DOS_NAME]; static char result[MAX_DOS_NAME]; if (!strcmp(path, prvPath)) { return result; } strcpy(prvPath, path); if (!strcmp(path, "./lite-xl")) { // TODO: Add code to get the name of the executable if (getFullPath("PROGDIR:lite-xl", result)) { return result; } } if (!strcmp(path, ".")) { if(getCurrentPath(result)) { return result; } } if (getFullPath(path, result)) { return result; } return NULL; } void getFullPathFromLock(BPTR lock, char *result) { if (lock) { DevNameFromLock(lock, result, MAX_DOS_PATH, DN_FULLPATH); return; } }