29 #define DISABLE_DEBUGLOG
32 #include "pathmanager_p.h"
33 #include <gwenhywfar/db.h>
34 #include <gwenhywfar/debug.h>
35 #include <gwenhywfar/directory.h>
70 const char *pathName) {
81 "Path \"%s/%s\" already exists",
94 const char *pathName) {
119 const char *pathName,
120 const char *pathValue) {
160 const char *pathName,
161 const char *pathValue,
169 pcwd=getcwd(cwd,
sizeof(cwd)-1);
224 "Could not determine HOME directory (%d)",
250 const char *pathName,
251 const char *pathValue) {
287 const char *pathName,
288 const char *pathValue,
296 pcwd=getcwd(cwd,
sizeof(cwd)-1);
351 "Could not determine HOME directory (%d)",
376 const char *pathName,
377 const char *pathValue) {
400 (!callingLib && !s) ||
401 (callingLib && s && strcasecmp(s, callingLib)==0)
403 strcasecmp(p, pathValue)==0
444 if (s && strcasecmp(s, callingLib)==0) {
461 const char *pathName) {
484 const char *pathName) {
530 const char *pathName,
531 const char *fileName,
568 "File \"%s\" found in folder \"%s\"",
592 const char *pathName,
593 const char *subFolderName,
621 if (subFolderName && *subFolderName) {
649 const char *pathName,
651 const char *varname) {
660 snprintf(nbuffer,
sizeof(nbuffer), keypath);
663 if (RegOpenKey(HKEY_LOCAL_MACHINE, nbuffer, &hkey)) {
670 nsize=
sizeof(nbuffer);
671 vsize=
sizeof(vbuffer);
672 if (ERROR_SUCCESS!=RegEnumValue(hkey,
681 if (strcasecmp(nbuffer, varname)==0 && typ==REG_SZ) {
693 "In RegKey \"%s\" the variable \"%s\" does not exist",
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
GWENHYWFAR_API int GWEN_Directory_OsifyPath(const char *path, GWEN_BUFFER *pbuf, int transformDriveElement)
struct GWEN_DB_NODE GWEN_DB_NODE
#define GWEN_DB_FLAGS_INSERT
void GWEN_DB_Group_free(GWEN_DB_NODE *n)
#define GWEN_ERROR_INVALID
#define GWEN_DIR_SEPARATOR_S
GWENHYWFAR_API int GWEN_Directory_GetPrefixDirectory(char *buffer, unsigned int size)
int GWEN_PathManager_AddPath(const char *callingLib, const char *destLib, const char *pathName, const char *pathValue)
uint32_t GWEN_DB_GetNodeFlags(const GWEN_DB_NODE *n)
#define GWEN_PATH_FLAGS_CREATE_GROUP
static GWEN_DB_NODE * gwen__paths
int GWEN_PathManager_UndefinePath(const char *destLib, const char *pathName)
int GWEN_PathManager_InsertRelPath(const char *callingLib, const char *destLib, const char *pathName, const char *pathValue, GWEN_PATHMANAGER_RELMODE rm)
GWENHYWFAR_API int GWEN_Directory_GetMatchingFilesRecursively(const char *folder, GWEN_STRINGLIST *sl, const char *mask)
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
GWENHYWFAR_API int GWEN_Directory_GetHomeDirectory(char *buffer, unsigned int size)
int GWEN_PathManager_RemovePaths(const char *callingLib)
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
int GWEN_PathManager_ModuleInit(void)
int GWEN_StringList_AppendString(GWEN_STRINGLIST *sl, const char *s, int take, int checkDouble)
#define DBG_DEBUG(dbg_logger, format, args...)
int GWEN_Buffer_AppendBuffer(GWEN_BUFFER *bf, GWEN_BUFFER *sf)
int GWEN_DB_DeleteGroup(GWEN_DB_NODE *n, const char *path)
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
GWEN_DB_NODE * GWEN_DB_GetNextGroup(GWEN_DB_NODE *n)
const char * GWEN_DB_GetCharValue(GWEN_DB_NODE *n, const char *path, int idx, const char *defVal)
GWEN_STRINGLIST * GWEN_PathManager_GetPaths(const char *destLib, const char *pathName)
GWEN_DB_NODE * GWEN_DB_GetGroup(GWEN_DB_NODE *n, uint32_t flags, const char *path)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
#define GWEN_DB_NODE_FLAGS_DIRTY
unsigned int GWEN_StringList_Count(const GWEN_STRINGLIST *sl)
#define DBG_ERROR(dbg_logger, format, args...)
int GWEN_PathManager_PathChanged(const char *destLib, const char *pathName)
int GWEN_PathManager_ModuleFini(void)
int GWEN_DB_SetCharValue(GWEN_DB_NODE *n, uint32_t flags, const char *path, const char *val)
#define GWEN_DIR_SEPARATOR
int GWEN_PathManager_AddRelPath(const char *callingLib, const char *destLib, const char *pathName, const char *pathValue, GWEN_PATHMANAGER_RELMODE rm)
#define GWEN_ERROR_NOT_FOUND
#define DBG_INFO(dbg_logger, format, args...)
int GWEN_PathManager_AddPathFromWinReg(GWEN_UNUSED const char *callingLib, GWEN_UNUSED const char *destLib, GWEN_UNUSED const char *pathName, GWEN_UNUSED const char *keypath, GWEN_UNUSED const char *varname)
void GWEN_DB_UnlinkGroup(GWEN_DB_NODE *n)
int GWEN_PathManager_RemovePath(const char *callingLib, const char *destLib, const char *pathName, const char *pathValue)
GWEN_DB_NODE * GWEN_DB_FindFirstGroup(GWEN_DB_NODE *n, const char *name)
GWEN_DB_NODE * GWEN_DB_Group_new(const char *name)
GWEN_DB_NODE * GWEN_DB_GetFirstGroup(GWEN_DB_NODE *n)
int GWEN_PathManager_InsertPath(const char *callingLib, const char *destLib, const char *pathName, const char *pathValue)
int GWEN_PathManager_FindFile(const char *destLib, const char *pathName, const char *fileName, GWEN_BUFFER *fbuf)
GWEN_STRINGLIST * GWEN_StringList_new(void)
#define GWEN_PATH_FLAGS_NAMEMUSTEXIST
GWEN_DB_NODE * GWEN_DB_FindNextGroup(GWEN_DB_NODE *n, const char *name)
int GWEN_PathManager_GetMatchingFilesRecursively(const char *destLib, const char *pathName, const char *subFolderName, GWEN_STRINGLIST *sl, const char *mask)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
#define GWEN_DB_FLAGS_DEFAULT
int GWEN_PathManager_DefinePath(const char *destLib, const char *pathName)