diff -u srcunx/gvxdll.c u:gsview-4.6/srcunx/gvxdll.c --- srcunx/gvxdll.c Mon Feb 10 10:00:32 2003 +++ u:gsview-4.6/srcunx/gvxdll.c Mon Jan 12 11:45:33 2004 @@ -410,13 +410,13 @@ int pstotext_pid = 0; -gint check_pstotext(gpointer data) +static void pstotext_sighandler(int num) { int rc = 0; int status = 0; if (pstotext_pid == 0) - return FALSE; /* pstotext not running, remove timer */ + return; /* pstotext not running */ /* check if pstotext has exited */ if ( (rc = waitpid(pstotext_pid, &status, WNOHANG)) > 0 ) { @@ -450,9 +450,10 @@ unlink(psfile.text_name); psfile.text_name[0] = '\0'; } - return FALSE; /* remove timer */ + return; } - return TRUE; /* keep checking */ + if (rc) + perror("pstotext_sighandler: waitpid error, "); } /* start pstotext and wait for it to terminate */ @@ -547,6 +548,8 @@ } pstotext_pid = fork(); + + signal(SIGCHLD, pstotext_sighandler); if (pstotext_pid == 0) { /* replace child process with prog */ if (execvp(nargv[0], nargv) == -1) { @@ -558,8 +561,7 @@ } else { /* parent */ - /* Check every second if pstotext has finished */ - gtk_timeout_add(1000, check_pstotext, (gpointer)pstotext_pid); + /* pstotext_sighandler will tell us when it finishes */ } return 0; /* all is well */ } diff -u en/gvxlang.c u:gsview-4.6/en/gvxlang.c --- en/gvxlang.c Sat Aug 16 08:37:30 2003 +++ u:gsview-4.6/en/gvxlang.c Mon Jan 12 11:46:58 2004 @@ -19,7 +19,7 @@ #include "gvx.h" #include "gvxres.h" #include "gvxlang.h" -#include "en/gvclang.h" +#include "gvclang.h" /* string table ids must be in order since we use a binary search */ STRING_ENTRY string_en[] = { diff -u ct/gvxlang.c u:gsview-4.6/ct/gvxlang.c --- ct/gvxlang.c Tue Apr 01 12:29:44 2003 +++ u:gsview-4.6/ct/gvxlang.c Mon Jan 12 11:46:46 2004 @@ -19,7 +19,7 @@ #include "gvx.h" #include "gvxres.h" #include "gvxlang.h" -#include "ct/gvclang.h" +#include "gvclang.h" /* string table ids must be in order since we use a binary search */ STRING_ENTRY string_ct[] = { diff -u de/gvxlang.c u:gsview-4.6/de/gvxlang.c --- de/gvxlang.c Sat Mar 08 06:30:12 2003 +++ u:gsview-4.6/de/gvxlang.c Mon Jan 12 11:46:52 2004 @@ -19,7 +19,7 @@ #include "gvx.h" #include "gvxres.h" #include "gvxlang.h" -#include "de/gvclang.h" +#include "gvclang.h" /* string table ids must be in order since we use a binary search */ STRING_ENTRY string_de[] = { diff -u es/gvxlang.c u:gsview-4.6/es/gvxlang.c --- es/gvxlang.c Sat Mar 08 06:29:50 2003 +++ u:gsview-4.6/es/gvxlang.c Mon Jan 12 11:47:04 2004 @@ -19,7 +19,7 @@ #include "gvx.h" #include "gvxres.h" #include "gvxlang.h" -#include "es/gvclang.h" +#include "gvclang.h" /* string table ids must be in order since we use a binary search */ STRING_ENTRY string_es[] = { diff -u fr/gvxlang.c u:gsview-4.6/fr/gvxlang.c --- fr/gvxlang.c Sat Mar 08 06:29:38 2003 +++ u:gsview-4.6/fr/gvxlang.c Mon Jan 12 11:47:08 2004 @@ -19,7 +19,7 @@ #include "gvx.h" #include "gvxres.h" #include "gvxlang.h" -#include "fr/gvclang.h" +#include "gvclang.h" /* string table ids must be in order since we use a binary search */ STRING_ENTRY string_fr[] = { diff -u it/gvxlang.c u:gsview-4.6/it/gvxlang.c --- it/gvxlang.c Sat Mar 08 06:29:00 2003 +++ u:gsview-4.6/it/gvxlang.c Mon Jan 12 11:47:17 2004 @@ -19,7 +19,7 @@ #include "gvx.h" #include "gvxres.h" #include "gvxlang.h" -#include "it/gvclang.h" +#include "gvclang.h" /* string table ids must be in order since we use a binary search */ STRING_ENTRY string_it[] = { diff -u nl/gvxlang.c u:gsview-4.6/nl/gvxlang.c --- nl/gvxlang.c Sat Mar 08 06:28:30 2003 +++ u:gsview-4.6/nl/gvxlang.c Mon Jan 12 11:47:20 2004 @@ -19,7 +19,7 @@ #include "gvx.h" #include "gvxres.h" #include "gvxlang.h" -#include "nl/gvclang.h" +#include "gvclang.h" /* string table ids must be in order since we use a binary search */ STRING_ENTRY string_nl[] = { diff -u ru/gvxlang.c u:gsview-4.6/ru/gvxlang.c --- ru/gvxlang.c Fri Mar 14 03:49:16 2003 +++ u:gsview-4.6/ru/gvxlang.c Mon Jan 12 11:47:28 2004 @@ -19,7 +19,7 @@ #include "gvx.h" #include "gvxres.h" #include "gvxlang.h" -#include "ru/gvclang.h" +#include "gvclang.h" /* string table ids must be in order since we use a binary search */ STRING_ENTRY string_ru[] = { diff -u se/gvxlang.c u:gsview-4.6/se/gvxlang.c --- se/gvxlang.c Sat Mar 08 06:28:16 2003 +++ u:gsview-4.6/se/gvxlang.c Mon Jan 12 11:47:32 2004 @@ -19,7 +19,7 @@ #include "gvx.h" #include "gvxres.h" #include "gvxlang.h" -#include "se/gvclang.h" +#include "gvclang.h" /* string table ids must be in order since we use a binary search */ STRING_ENTRY string_se[] = { diff -u sk/gvxlang.c u:gsview-4.6/sk/gvxlang.c --- sk/gvxlang.c Sat Mar 08 06:30:42 2003 +++ u:gsview-4.6/sk/gvxlang.c Mon Jan 12 11:47:35 2004 @@ -19,7 +19,7 @@ #include "gvx.h" #include "gvxres.h" #include "gvxlang.h" -#include "sk/gvclang.h" +#include "gvclang.h" /* string table ids must be in order since we use a binary search */ STRING_ENTRY string_sk[] = {