4 * ROX-Filer, filer for the ROX desktop project
5 * By Thomas Leonard, <tal197@ecs.soton.ac.uk>.
14 #include <collection.h>
16 #include "gui_support.h"
22 /* XXX: Maybe we shouldn't do so much work in a signal handler? */
23 static void child_died(int signum
)
27 FilerWindow
*filer_window
;
29 /* Find out which children exited. This also has the effect of
30 * allowing the children to die.
34 child
= waitpid(-1, &status
, WNOHANG
| WUNTRACED
);
36 if (child
== 0 || child
== -1)
39 filer_window
= g_hash_table_lookup(child_to_filer
,
42 scan_dir(filer_window
);
44 if (!WIFSTOPPED(status
))
45 g_hash_table_remove(child_to_filer
,
51 int main(int argc
, char **argv
)
53 gtk_init(&argc
, &argv
);
61 signal(SIGCHLD
, child_died
);
64 filer_opendir(getenv("HOME"), FALSE
, BOTTOM
);
68 gboolean panel
= FALSE
;
73 if (argv
[i
][0] == '-')
75 switch (argv
[i
][1] + (argv
[i
][2] << 8))
77 case 't': side
= TOP
; break;
78 case 'b': side
= BOTTOM
; break;
79 case 'l': side
= LEFT
; break;
80 case 'r': side
= RIGHT
; break;
90 filer_opendir(argv
[i
], panel
, side
);