2010-04-15 [pawel] 3.7.5cvs47
authorPaweł Pękala <c0rn@gazeta.pl>
Thu, 15 Apr 2010 17:33:26 +0000 (17:33 +0000)
committerPaweł Pękala <c0rn@gazeta.pl>
Thu, 15 Apr 2010 17:33:26 +0000 (17:33 +0000)
* src/action.c
Fix crasher in actions using '%f' argument
on multiple files with external scripts which
don't return any output.

ChangeLog
PATCHSETS
configure.ac
src/action.c

index 6610a6c..4107c62 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-04-15 [pawel]     3.7.5cvs47
+
+       * src/action.c
+               Fix crasher in actions using '%f' argument
+               on multiple files with external scripts which
+               don't return any output.
+
 2010-04-14 [colin]     3.7.5cvs46
 
        * src/mainwindow.c
index d7c6690..b336cf0 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.1.2.3 -r 1.1.2.4 manual/de/glossary.xml;  ) > 3.7.5cvs44.patchset
 ( cvs diff -u -r 1.654.2.4057 -r 1.654.2.4058 configure.ac;  ) > 3.7.5cvs45.patchset
 ( cvs diff -u -r 1.274.2.309 -r 1.274.2.310 src/mainwindow.c;  ) > 3.7.5cvs46.patchset
+( cvs diff -u -r 1.12.2.58 -r 1.12.2.59 src/action.c;  ) > 3.7.5cvs47.patchset
index 48df0fb..709721b 100644 (file)
@@ -12,7 +12,7 @@ MINOR_VERSION=7
 MICRO_VERSION=5
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=46
+EXTRA_VERSION=47
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 42b5c5d..81e28fa 100644 (file)
@@ -1108,23 +1108,18 @@ static gint wait_for_children(Children *children)
        gboolean new_output;
        ChildInfo *child_info;
        GSList *cur;
-       gint nb = children->nb;
-
-       children->nb = 0;
 
        cur = children->list;
        new_output = FALSE;
        while (cur) {
                child_info = (ChildInfo *)cur->data;
-               if (child_info->pid)
-                       children->nb++;
                new_output |= child_info->new_out;
                cur = cur->next;
        }
 
        children->output |= new_output;
 
-       if (new_output || (children->dialog && (nb != children->nb)))
+       if (new_output || (children->dialog && (children->initial_nb != children->nb)))
                update_io_dialog(children);
 
        if (children->nb)
@@ -1493,6 +1488,9 @@ static void catch_status(gpointer data, gint source, GdkInputCondition cond)
                child_info->msginfo_list = NULL;
        }
 
+       if (!child_info->pid)
+               child_info->children->nb--;
+
        wait_for_children(child_info->children);
 }