I noticed in ctwm 3.6 that m4 was not used in a portable manner. Not all
m4s know about -s. I propose something like the following patch:

--- parse.c.dist        Tue Dec 11 16:38:52 2001
+++ parse.c     Sat Mar  8 04:48:39 2003
@@ -2089,6 +2089,7 @@
                 extern Display *dpy;
                 extern char *display_name;
                 char *tmp_file;
+               char command[128];
 
                 /* Child */
                 close(0);                       /* stdin */
@@ -2097,7 +2098,10 @@
                 dup2(fids[1], 1);       /* stdout = pipe to parent */
                 /* get_defs("m4", dpy, display_name) */
                 tmp_file = m4_defs(dpy, display_name);
-                execlp("m4", "m4", "-s", tmp_file, "-", NULL);
+                /* execlp("m4", "m4", "-s", tmp_file, "-", NULL); */
+               /* Not all m4s know about -s -Rhialto */
+               snprintf(command, sizeof(command), "cat '%s' - | m4", tmp_file);
+                execlp("/bin/sh", "sh", "-c", command, NULL);
                 /* If we get here we are screwed... */
                 perror("Can't execlp() m4");
                 exit(124);

-Olaf.
-- 
___ Olaf 'Rhialto' Seibert      -- The evil eye is caused by the black
\X/ rhialto/at/xs4all.nl        -- tongue - Tom Poes, "Het boze oog", 4456.

Reply via email to