From 3a98eb757871e7d02db3bf7f5473d1e9aad91929 Mon Sep 17 00:00:00 2001 From: toddouska Date: Wed, 12 Dec 2012 10:57:05 -0800 Subject: [PATCH] fix for current working directory, relative path instead of absolute, suggestion from SpamapS --- cyassl/test.h | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/cyassl/test.h b/cyassl/test.h index 774adcc3d..3e01edf69 100644 --- a/cyassl/test.h +++ b/cyassl/test.h @@ -821,10 +821,18 @@ static INLINE void ChangeDirBack(int x) /* does current dir contain str */ static INLINE int CurrentDir(const char* str) { - char path[MAX_PATH]; + char path[MAX_PATH]; + char* baseName; GetCurrentDirectoryA(sizeof(path), path); - if (strstr(path, str)) + + baseName = strrchr(path, '\\'); + if (baseName) + baseName++; + else + baseName = path; + + if (strstr(baseName, str)) return 1; return 0; @@ -859,13 +867,21 @@ static INLINE void ChangeDirBack(int x) /* does current dir contain str */ static INLINE int CurrentDir(const char* str) { - char path[MAX_PATH]; + char path[MAX_PATH]; + char* baseName; if (getcwd(path, sizeof(path)) == NULL) { printf("no current dir?\n"); return 0; } - if (strstr(path, str)) + + baseName = strrchr(path, '/'); + if (baseName) + baseName++; + else + baseName = path; + + if (strstr(baseName, str)) return 1; return 0;