From f0630a910675bfbbb432e222b9de6c7a84a3458f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 3 Jan 2005 19:57:20 +0000 Subject: [PATCH] Don't return directories. (#160738, Tommi Komulainen) 2005-01-03 Matthias Clasen * glib/gutils.c (g_find_program_in_path): Don't return directories. (#160738, Tommi Komulainen) --- ChangeLog | 3 +++ ChangeLog.pre-2-10 | 3 +++ ChangeLog.pre-2-12 | 3 +++ ChangeLog.pre-2-6 | 3 +++ ChangeLog.pre-2-8 | 3 +++ glib/gutils.c | 22 ++++++++++++---------- 6 files changed, 27 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 716f92ae..697439ff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2005-01-03 Matthias Clasen + * glib/gutils.c (g_find_program_in_path): Don't return + directories. (#160738, Tommi Komulainen) + * glib/gfileutils.c (g_file_get_contents): Clarify the documentation. (#162251, Mariano Suárez-Alvarez) diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 716f92ae..697439ff 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,8 @@ 2005-01-03 Matthias Clasen + * glib/gutils.c (g_find_program_in_path): Don't return + directories. (#160738, Tommi Komulainen) + * glib/gfileutils.c (g_file_get_contents): Clarify the documentation. (#162251, Mariano Suárez-Alvarez) diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 716f92ae..697439ff 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,5 +1,8 @@ 2005-01-03 Matthias Clasen + * glib/gutils.c (g_find_program_in_path): Don't return + directories. (#160738, Tommi Komulainen) + * glib/gfileutils.c (g_file_get_contents): Clarify the documentation. (#162251, Mariano Suárez-Alvarez) diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 716f92ae..697439ff 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,5 +1,8 @@ 2005-01-03 Matthias Clasen + * glib/gutils.c (g_find_program_in_path): Don't return + directories. (#160738, Tommi Komulainen) + * glib/gfileutils.c (g_file_get_contents): Clarify the documentation. (#162251, Mariano Suárez-Alvarez) diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 716f92ae..697439ff 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,8 @@ 2005-01-03 Matthias Clasen + * glib/gutils.c (g_find_program_in_path): Don't return + directories. (#160738, Tommi Komulainen) + * glib/gfileutils.c (g_file_get_contents): Clarify the documentation. (#162251, Mariano Suárez-Alvarez) diff --git a/glib/gutils.c b/glib/gutils.c index f717c0de..ac6431db 100644 --- a/glib/gutils.c +++ b/glib/gutils.c @@ -284,23 +284,23 @@ g_find_program_in_path (const gchar *program) * * Locates the first executable named @program in the user's path, in the * same way that execvp() would locate it. Returns an allocated string - * with the absolute path name, or NULL if the program is not found in + * with the absolute path name, or %NULL if the program is not found in * the path. If @program is already an absolute path, returns a copy of - * @program if @program exists and is executable, and NULL otherwise. - * + * @program if @program exists and is executable, and %NULL otherwise. + * * On Windows, if @program does not have a file type suffix, tries * with the suffixes .exe, .cmd, .bat and .com, and the suffixes in - * the PATHEXT environment variable. + * the PATHEXT environment variable. * * It looks for the file in the same way as CreateProcess() * would. This means first in the directory where the executing * program was loaded from, then in the current directory, then in the * Windows 32-bit system directory, then in the Windows directory, and - * finally in the directories in the PATH environment variable. If the - * program is found, the return value contains the full name including - * the type suffix. + * finally in the directories in the PATH environment + * variable. If the program is found, the return value contains the + * full name including the type suffix. * - * Return value: absolute path, or NULL + * Return value: absolute path, or %NULL **/ #ifdef G_OS_WIN32 static gchar * @@ -332,7 +332,8 @@ g_find_program_in_path (const gchar *program) #endif ) { - if (g_file_test (program, G_FILE_TEST_IS_EXECUTABLE)) + if (g_file_test (program, G_FILE_TEST_IS_EXECUTABLE) && + !g_file_test (program, G_FILE_TEST_IS_DIR)) return g_strdup (program); else return NULL; @@ -459,7 +460,8 @@ g_find_program_in_path (const gchar *program) else startp = memcpy (name - (p - path), path, p - path); - if (g_file_test (startp, G_FILE_TEST_IS_EXECUTABLE)) + if (g_file_test (startp, G_FILE_TEST_IS_EXECUTABLE) && + !g_file_test (startp, G_FILE_TEST_IS_DIR)) { gchar *ret; ret = g_strdup (startp); -- 2.34.1