summaryrefslogtreecommitdiffstats
path: root/src/portable.cpp
diff options
context:
space:
mode:
authoralbert-github <albert.tests@gmail.com>2016-09-01 13:55:33 (GMT)
committeralbert-github <albert.tests@gmail.com>2016-09-01 13:55:33 (GMT)
commit752523cd122d6ffdd72c89955005d77819740675 (patch)
treee42a42cb8da231faf52bd16b3c8723f4e46b60e7 /src/portable.cpp
parent8fb2578917109778a7c589e68545d6be3ca7b104 (diff)
downloadDoxygen-752523cd122d6ffdd72c89955005d77819740675.zip
Doxygen-752523cd122d6ffdd72c89955005d77819740675.tar.gz
Doxygen-752523cd122d6ffdd72c89955005d77819740675.tar.bz2
Bug 766059 - DOT_PATH not expanded
The original problem in this bug request was that forward slashes were used in the PATH instead of backslashes. In the command shell this does not result in problems, but when calling a program from within doxygen this leads to the problem that the executable cannot be found. In this patch the PATH variable is, just for the process, changed in such a way that ther are back slashes instead of forward slashes (Windows only, not on Cygwin).
Diffstat (limited to 'src/portable.cpp')
-rw-r--r--src/portable.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/portable.cpp b/src/portable.cpp
index 5886793..46adccf 100644
--- a/src/portable.cpp
+++ b/src/portable.cpp
@@ -448,4 +448,26 @@ bool portable_isAbsolutePath(const char *fileName)
return false;
}
-
+/**
+ * Correct a possible wrong PATH variable
+ *
+ * This routine was inspired by the cause for bug 766059 was that in the Windows path there were forward slahes.
+ */
+void portable_correct_path(void)
+{
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ const char *p = portable_getenv("PATH");
+ char *q = (char *)malloc(strlen(p) + 1);
+ strcpy(q, p);
+ bool found = false;
+ for (int i = 0 ; i < strlen(q); i++)
+ {
+ if (q[i] == '/')
+ {
+ q[i] = '\\';
+ found = true;
+ }
+ }
+ if (found) portable_setenv("PATH",q);
+#endif
+}