commit e029ca465404cb089fe62b4d777d6768580f0da8
parent 7104451b6f7efff565ae755740627ba4b5af1e54
Author: Paweł Pękala <c0rn@gazeta.pl>
Date: Thu, 15 Apr 2010 17:33:26 +0000
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.
Diffstat:
4 files changed, 13 insertions(+), 7 deletions(-)
diff --git 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
diff --git a/PATCHSETS b/PATCHSETS
@@ -3987,3 +3987,4 @@
( 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
diff --git a/configure.ac b/configure.ac
@@ -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=
diff --git a/src/action.c b/src/action.c
@@ -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);
}