X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=common-src%2Futil.c;fp=common-src%2Futil.c;h=eed9d981bca4bc5283453f532e281412de548788;hb=949b8910a5e23c4285d0b1aedacfc82a14dc97a5;hp=b9172ca41950fa716235833f7e2b0c2853fbd957;hpb=c6f0a88c567f8536c498f554285aed1f8150da18;p=debian%2Famanda diff --git a/common-src/util.c b/common-src/util.c index b9172ca..eed9d98 100644 --- a/common-src/util.c +++ b/common-src/util.c @@ -960,6 +960,7 @@ expand_braced_alternates( char * source) { GPtrArray *rval = g_ptr_array_new(); + gpointer *pdata; g_ptr_array_add(rval, g_strdup("")); @@ -971,6 +972,8 @@ expand_braced_alternates( new_components = parse_braced_component(&source); if (!new_components) { /* parse error */ + for (i = 0, pdata = rval->pdata; i < rval->len; i++) + g_free(*pdata++); g_ptr_array_free(rval, TRUE); return NULL; } @@ -987,7 +990,11 @@ expand_braced_alternates( } } + for (i = 0, pdata = rval->pdata; i < rval->len; i++) + g_free(*pdata++); g_ptr_array_free(rval, TRUE); + for (i = 0, pdata = new_components->pdata; i < new_components->len; i++) + g_free(*pdata++); g_ptr_array_free(new_components, TRUE); rval = new_rval; } @@ -1139,6 +1146,11 @@ add_history( # error No readdir() or readdir64() available! #endif +#if (GLIB_MAJOR_VERSION > 2 || (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION >= 31)) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif + char * portable_readdir(DIR* handle) { #ifdef USE_DIRENT64 @@ -1168,6 +1180,9 @@ char * portable_readdir(DIR* handle) { sure what to do about that case. */ return strdup(entry_p->d_name); } +#if (GLIB_MAJOR_VERSION > 2 || (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION >= 31)) +# pragma GCC diagnostic pop +#endif int search_directory(DIR * handle, const char * regex, SearchDirectoryFunctor functor, gpointer user_data) {