aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2014-12-13 03:26:32 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2014-12-15 07:49:38 +0100
commit67bfd59360a8b5dbbd65767e1179c1631f8e6789 (patch)
tree261627219c33efa26bb2c6dd033d2810b6755e67
parentce1fda98589215772da3bf85e76020a6d56b75a0 (diff)
downloadsciteco-67bfd59360a8b5dbbd65767e1179c1631f8e6789.tar.gz
fixed globbing of non-existing directories
* for non-existing directories, NULL was passed to g_dir_read_name(). This resulted in Glib errors being printed to stdout/stderr. * this was broken in commit 427c9d
-rw-r--r--src/glob.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/glob.cpp b/src/glob.cpp
index 71100b7..486fbce 100644
--- a/src/glob.cpp
+++ b/src/glob.cpp
@@ -41,6 +41,7 @@ Globber::Globber(const gchar *_pattern)
dirname = g_path_get_dirname(_pattern);
dir = g_dir_open(dirname, 0, NULL);
+ /* if dirname does not exist, dir may be NULL */
basename = g_path_get_basename(_pattern);
pattern = g_pattern_spec_new(basename);
@@ -52,6 +53,9 @@ Globber::next(void)
{
const gchar *basename;
+ if (!dir)
+ return NULL;
+
while ((basename = g_dir_read_name(dir)))
if (g_pattern_match_string(pattern, basename))
return g_build_filename(dirname, basename, NIL);