Don't return directories. (#160738, Tommi Komulainen)

2005-01-03  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (g_find_program_in_path): Don't return
	directories.  (#160738, Tommi Komulainen)
This commit is contained in:
Matthias Clasen 2005-01-03 19:57:20 +00:00 committed by Matthias Clasen
parent 30425906b5
commit f0630a9106
6 changed files with 27 additions and 10 deletions

View File

@ -1,5 +1,8 @@
2005-01-03 Matthias Clasen <mclasen@redhat.com> 2005-01-03 Matthias Clasen <mclasen@redhat.com>
* glib/gutils.c (g_find_program_in_path): Don't return
directories. (#160738, Tommi Komulainen)
* glib/gfileutils.c (g_file_get_contents): Clarify the * glib/gfileutils.c (g_file_get_contents): Clarify the
documentation. (#162251, Mariano Suárez-Alvarez) documentation. (#162251, Mariano Suárez-Alvarez)

View File

@ -1,5 +1,8 @@
2005-01-03 Matthias Clasen <mclasen@redhat.com> 2005-01-03 Matthias Clasen <mclasen@redhat.com>
* glib/gutils.c (g_find_program_in_path): Don't return
directories. (#160738, Tommi Komulainen)
* glib/gfileutils.c (g_file_get_contents): Clarify the * glib/gfileutils.c (g_file_get_contents): Clarify the
documentation. (#162251, Mariano Suárez-Alvarez) documentation. (#162251, Mariano Suárez-Alvarez)

View File

@ -1,5 +1,8 @@
2005-01-03 Matthias Clasen <mclasen@redhat.com> 2005-01-03 Matthias Clasen <mclasen@redhat.com>
* glib/gutils.c (g_find_program_in_path): Don't return
directories. (#160738, Tommi Komulainen)
* glib/gfileutils.c (g_file_get_contents): Clarify the * glib/gfileutils.c (g_file_get_contents): Clarify the
documentation. (#162251, Mariano Suárez-Alvarez) documentation. (#162251, Mariano Suárez-Alvarez)

View File

@ -1,5 +1,8 @@
2005-01-03 Matthias Clasen <mclasen@redhat.com> 2005-01-03 Matthias Clasen <mclasen@redhat.com>
* glib/gutils.c (g_find_program_in_path): Don't return
directories. (#160738, Tommi Komulainen)
* glib/gfileutils.c (g_file_get_contents): Clarify the * glib/gfileutils.c (g_file_get_contents): Clarify the
documentation. (#162251, Mariano Suárez-Alvarez) documentation. (#162251, Mariano Suárez-Alvarez)

View File

@ -1,5 +1,8 @@
2005-01-03 Matthias Clasen <mclasen@redhat.com> 2005-01-03 Matthias Clasen <mclasen@redhat.com>
* glib/gutils.c (g_find_program_in_path): Don't return
directories. (#160738, Tommi Komulainen)
* glib/gfileutils.c (g_file_get_contents): Clarify the * glib/gfileutils.c (g_file_get_contents): Clarify the
documentation. (#162251, Mariano Suárez-Alvarez) documentation. (#162251, Mariano Suárez-Alvarez)

View File

@ -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 * Locates the first executable named @program in the user's path, in the
* same way that execvp() would locate it. Returns an allocated string * 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 * 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 * On Windows, if @program does not have a file type suffix, tries
* with the suffixes .exe, .cmd, .bat and .com, and the suffixes in * with the suffixes .exe, .cmd, .bat and .com, and the suffixes in
* the PATHEXT environment variable. * the <envar>PATHEXT</envar> environment variable.
* *
* It looks for the file in the same way as CreateProcess() * It looks for the file in the same way as CreateProcess()
* would. This means first in the directory where the executing * would. This means first in the directory where the executing
* program was loaded from, then in the current directory, then in the * program was loaded from, then in the current directory, then in the
* Windows 32-bit system directory, then in the Windows directory, and * Windows 32-bit system directory, then in the Windows directory, and
* finally in the directories in the PATH environment variable. If the * finally in the directories in the <envar>PATH</envar> environment
* program is found, the return value contains the full name including * variable. If the program is found, the return value contains the
* the type suffix. * full name including the type suffix.
* *
* Return value: absolute path, or NULL * Return value: absolute path, or %NULL
**/ **/
#ifdef G_OS_WIN32 #ifdef G_OS_WIN32
static gchar * static gchar *
@ -332,7 +332,8 @@ g_find_program_in_path (const gchar *program)
#endif #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); return g_strdup (program);
else else
return NULL; return NULL;
@ -459,7 +460,8 @@ g_find_program_in_path (const gchar *program)
else else
startp = memcpy (name - (p - path), path, p - path); 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; gchar *ret;
ret = g_strdup (startp); ret = g_strdup (startp);