Index: dmake/dag.c =================================================================== RCS file: /cvs/tools/dmake/dag.c,v retrieving revision 1.7.2.3 diff -u -r1.7.2.3 dag.c --- dmake/dag.c 7 Oct 2006 18:34:49 -0000 1.7.2.3 +++ dmake/dag.c 11 Nov 2006 05:02:42 -0000 @@ -607,12 +607,12 @@ { t_attr flag = A_DEFAULT; int done = FALSE; + int atcount = 0; while( !done ) switch( *rp++ ) { - case '@' : if( !(Verbose & V_FORCEECHO) ) flag |= A_SILENT; - break; + case '@' : ++atcount; break; case '-' : flag |= A_IGNORE; break; case '+' : flag |= A_SHELL; break; case '%' : flag |= A_SWAP; break; @@ -623,6 +623,13 @@ default: done = TRUE; break; } + if( !(Verbose & V_FORCEECHO) && atcount-- ) { + flag |= A_SILENT; + /* hide output if more than one @ are encountered. */ + if( atcount ) + flag |= A_MUTE; + } + return(flag); } Index: dmake/dmake.c =================================================================== RCS file: /cvs/tools/dmake/dmake.c,v retrieving revision 1.8.2.1 diff -u -r1.8.2.1 dmake.c --- dmake/dmake.c 1 Oct 2006 19:18:26 -0000 1.8.2.1 +++ dmake/dmake.c 11 Nov 2006 05:02:42 -0000 @@ -179,6 +179,10 @@ Shell_exec_target = NIL(CELL); stdout_redir = NIL(FILE); + /* Get fd for for @@-recipe silencing. */ + if( (zerofd = open(NULLDEV, O_WRONLY)) == -1 ) + Fatal( "Error opening %s !", NULLDEV ); + Verbose = V_NOFLAG; Measure = M_NOFLAG; Transitive = TRUE; @@ -433,6 +437,10 @@ ex_val = Make_targets(); Clear_signals(); + + /* Close fd for for @@-recipe silencing. */ + if( close(zerofd) ) + Fatal( "Error closing %s !", NULLDEV ); Epilog(ex_val); /* Does not return -- EVER */ return 0; } Index: dmake/dmake.h =================================================================== RCS file: /cvs/tools/dmake/dmake.h,v retrieving revision 1.5 diff -u -r1.5 dmake.h --- dmake/dmake.h 25 Sep 2006 09:39:18 -0000 1.5 +++ dmake/dmake.h 11 Nov 2006 05:02:42 -0000 @@ -70,7 +70,7 @@ /* Global and target attribute flag definitions. * If you change the values of these or re-order them make appropriate changes - * in dump.c so that the output of dmake -p matches the attribute info for a + * in dmdump.c so that the output of dmake -p matches the attribute info for a * target. */ #define A_DEFAULT 0x00000 /* default flag value */ @@ -106,6 +106,7 @@ #define A_ERROR 0x10000000 /* used to halt construction */ #define A_FIRST 0x20000000 /* used for .INCLUDE termination*/ #define A_SHELLESC 0x40000000 /* used for shell escape target */ +#define A_MUTE 0x80000000 /* silence a recipe line */ /* Global and target bit flag definitions */ Index: dmake/extern.h =================================================================== RCS file: /cvs/tools/dmake/extern.h,v retrieving revision 1.9.12.3 diff -u -r1.9.12.3 extern.h --- dmake/extern.h 1 Oct 2006 19:18:27 -0000 1.9.12.3 +++ dmake/extern.h 11 Nov 2006 05:02:42 -0000 @@ -117,6 +117,12 @@ # define HAVE_DRIVE_LETTERS 1 #endif +#if defined(_WIN32) || defined(MSDOS) || defined(OS2) && !defined(__CYGWIN__) +# define NULLDEV "NUL" +#else +# define NULLDEV "/dev/null" +#endif + /* Work around some of the functions that may or may not exist */ #if ! HAVE_TZSET Index: dmake/getinp.c =================================================================== RCS file: /cvs/tools/dmake/getinp.c,v retrieving revision 1.7 diff -u -r1.7 getinp.c --- dmake/getinp.c 29 Jun 2006 11:23:35 -0000 1.7 +++ dmake/getinp.c 11 Nov 2006 05:02:42 -0000 @@ -307,7 +307,7 @@ Current_target = Root; Swap_on_exec = TRUE; Wait_for_completion = TRUE; - Do_cmnd(cmnd, FALSE, TRUE, Current_target, FALSE, FALSE, TRUE); + Do_cmnd(cmnd, FALSE, TRUE, Current_target, A_DEFAULT, TRUE); Wait_for_completion = FALSE; } Index: dmake/make.c =================================================================== RCS file: /cvs/tools/dmake/make.c,v retrieving revision 1.7.2.9 diff -u -r1.7.2.9 make.c --- dmake/make.c 9 Nov 2006 22:33:22 -0000 1.7.2.9 +++ dmake/make.c 11 Nov 2006 05:02:42 -0000 @@ -1227,7 +1227,7 @@ /* Print command and remove continuation sequence from cmnd. */ Print_cmnd(cmnd, !(do_it && (l_attr & A_SILENT)), 0); } - rval=Do_cmnd(cmnd,FALSE,do_it,cp,(l_attr&A_IGNORE)!=0, shell, + rval=Do_cmnd(cmnd,FALSE,do_it,cp,l_attr, rp->st_next == NIL(STRING) ); } } @@ -1249,8 +1249,7 @@ chmod(groupfile,0700); #endif } - rval = Do_cmnd(groupfile, TRUE, do_it, cp, (attr & A_IGNORE)!=0, - TRUE, TRUE); + rval = Do_cmnd(groupfile, TRUE, do_it, cp, attr | A_SHELL, TRUE); } _recipes[ RP_RECIPE ] = orp; Index: dmake/rulparse.c =================================================================== RCS file: /cvs/tools/dmake/rulparse.c,v retrieving revision 1.9.2.1 diff -u -r1.9.2.1 rulparse.c --- dmake/rulparse.c 8 Oct 2006 22:49:03 -0000 1.9.2.1 +++ dmake/rulparse.c 11 Nov 2006 05:02:43 -0000 @@ -532,7 +532,8 @@ PUBLIC int Set_group_attributes( list )/* ============================== - Scan list looking for the standard @ and - (as in recipe line defs) + Scan list looking for the standard @,-,% and + (as in recipe line + defs) (+ is set but ignored for group recipes) and set the flags accordingly so that they apply when we bind the rules to the appropriate targets. Return TRUE if group recipe start '[' was found, otherwise FALSE. */ Index: dmake/sysintf.c =================================================================== RCS file: /cvs/tools/dmake/sysintf.c,v retrieving revision 1.8.2.2 diff -u -r1.8.2.2 sysintf.c --- dmake/sysintf.c 4 Oct 2006 03:17:02 -0000 1.8.2.2 +++ dmake/sysintf.c 11 Nov 2006 05:02:44 -0000 @@ -236,7 +236,7 @@ PUBLIC int -Do_cmnd(cmd, group, do_it, target, ignore, shell, last)/* +Do_cmnd(cmd, group, do_it, target, cmnd_attr, last)/* ========================================================= Execute the string passed in as a command and return the return code. The command line arguments are @@ -251,8 +251,7 @@ int group; /* if set cmd contains the filename of a (group-)shell script. */ int do_it; /* Only execute cmd if not set to null. */ CELLPTR target; -int ignore; /* Ignore errors ('-'). */ -int shell; /* Use shell when executing cmd. */ +t_attr cmnd_attr; /* Attributes for current cmnd. */ int last; /* Last recipe line in target. */ { int i; @@ -278,10 +277,10 @@ if( Max_proc == 1 ) Wait_for_completion = TRUE; /* set shell if shell metas are found */ - if( shell || group || (*DmStrPbrk(cmd, Shell_metas)!='\0') ) - shell = TRUE; /* If group is TRUE this doesn't hurt. */ + if( (cmnd_attr & A_SHELL) || group || (*DmStrPbrk(cmd, Shell_metas)!='\0') ) + cmnd_attr |= A_SHELL; /* If group is TRUE this doesn't hurt. */ - if( (i = runargv(target, ignore, group, last, shell, cmd)) == -1 ) + if( (i = runargv(target, group, last, cmnd_attr, cmd)) == -1 ) /* runargv() failed. */ Quit(0); Index: dmake/vextern.h =================================================================== RCS file: /cvs/tools/dmake/vextern.h,v retrieving revision 1.3.6.1 diff -u -r1.3.6.1 vextern.h --- dmake/vextern.h 8 Oct 2006 22:49:03 -0000 1.3.6.1 +++ dmake/vextern.h 11 Nov 2006 05:02:44 -0000 @@ -79,6 +79,7 @@ EXTERN int Is_exec_shell; /* Indicate shell escape */ EXTERN CELLPTR Shell_exec_target; /* Keep Current_target for _exec__shell */ EXTERN FILE* stdout_redir; /* For _exec_shell client redirects */ +EXTERN int zerofd; /* File descriptor for /dev/null */ EXTERN int Doing_bang; /* TRUE if target timestamp needs not to be * updated immediately. */ EXTERN int Packed_shell; /* TRUE if packed args to use a shell */ Index: dmake/mac/public.h =================================================================== RCS file: /cvs/tools/dmake/mac/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/mac/public.h 25 Sep 2006 09:41:16 -0000 1.7 +++ dmake/mac/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); Index: dmake/msdos/runargv.c =================================================================== RCS file: /cvs/tools/dmake/msdos/runargv.c,v retrieving revision 1.3 diff -u -r1.3 runargv.c --- dmake/msdos/runargv.c 25 Sep 2006 09:41:53 -0000 1.3 +++ dmake/msdos/runargv.c 11 Nov 2006 05:02:44 -0000 @@ -33,14 +33,16 @@ static void _finished_child ANSI((int)); PUBLIC int -runargv(target, ignore, group, last, shell, cmd) +runargv(target, group, last, cmnd_attr, cmd) CELLPTR target; -int ignore; int group; int last; -int shell; +t_attr cmnd_attr; /* Attributes for current cmnd. */ char *cmd; { + int ignore = (cmnd_attr & A_IGNORE)!= 0; /* Ignore errors ('-'). */ + int shell = (cmnd_attr & A_SHELL) != 0; /* Use shell ('+'). */ + int mute = (cmnd_attr & A_MUTE) != 0; /* Mute output ('@@'). */ #if ! defined(_MSC_VER) #if defined(__BORLANDC__) && __BORLANDC__ >= 0x500 extern char ** _RTLENTRY _EXPDATA environ; @@ -50,6 +52,8 @@ #endif int status; char **argv; + int old_stdout; /* For redirecting shell escapes */ + int old_stderr; /* and silencing @@-recipes */ if( Measure & M_RECIPE ) Do_profile_output( "s", M_RECIPE, target ); @@ -59,6 +63,13 @@ /* remove leading whitespace */ while( iswhite(*cmd) ) ++cmd; + if( mute ) { + old_stdout = dup(1); + old_stderr = dup(2); + dup2( zerofd, 1 ); + dup2( zerofd, 2 ); + } + /* Return immediately for empty line or noop command. */ if ( !*cmd || /* empty line */ ( strncmp(cmd, "noop", 4) == 0 && /* noop command */ @@ -85,9 +96,16 @@ argv = Pack_argv( group, shell, cmd ); Packed_shell = shell||group; + /* The last two arguments would need (const char *const *) casts + * to silence the warning when building with MinGW. */ status = spawnvpe(P_WAIT, *argv, argv, environ); } + if( mute ) { + dup2(old_stdout, 1); + dup2(old_stderr, 2); + } + if( status == -1 ) Error("%s: %s", argv[0], strerror(errno)); if( Measure & M_RECIPE ) Index: dmake/msdos/borland/bcc30/public.h =================================================================== RCS file: /cvs/tools/dmake/msdos/borland/bcc30/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/msdos/borland/bcc30/public.h 25 Sep 2006 09:42:21 -0000 1.7 +++ dmake/msdos/borland/bcc30/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -155,7 +155,7 @@ void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); time_t seek_arch ANSI((char*, char*)); Index: dmake/msdos/borland/bcc40/public.h =================================================================== RCS file: /cvs/tools/dmake/msdos/borland/bcc40/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/msdos/borland/bcc40/public.h 25 Sep 2006 09:42:33 -0000 1.7 +++ dmake/msdos/borland/bcc40/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -155,7 +155,7 @@ void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); time_t seek_arch ANSI((char*, char*)); Index: dmake/msdos/borland/bcc45/public.h =================================================================== RCS file: /cvs/tools/dmake/msdos/borland/bcc45/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/msdos/borland/bcc45/public.h 25 Sep 2006 09:42:47 -0000 1.7 +++ dmake/msdos/borland/bcc45/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -155,7 +155,7 @@ void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); time_t seek_arch ANSI((char*, char*)); Index: dmake/msdos/borland/bcc50/public.h =================================================================== RCS file: /cvs/tools/dmake/msdos/borland/bcc50/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/msdos/borland/bcc50/public.h 25 Sep 2006 09:43:00 -0000 1.7 +++ dmake/msdos/borland/bcc50/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -155,7 +155,7 @@ void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); time_t seek_arch ANSI((char*, char*)); Index: dmake/msdos/borland/tcc20/public.h =================================================================== RCS file: /cvs/tools/dmake/msdos/borland/tcc20/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/msdos/borland/tcc20/public.h 25 Sep 2006 09:43:14 -0000 1.7 +++ dmake/msdos/borland/tcc20/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -155,7 +155,7 @@ void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); time_t seek_arch ANSI((char*, char*)); Index: dmake/msdos/microsft/msc51/public.h =================================================================== RCS file: /cvs/tools/dmake/msdos/microsft/msc51/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/msdos/microsft/msc51/public.h 25 Sep 2006 09:43:27 -0000 1.7 +++ dmake/msdos/microsft/msc51/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -155,7 +155,7 @@ void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); time_t seek_arch ANSI((char*, char*)); Index: dmake/msdos/microsft/msc60/public.h =================================================================== RCS file: /cvs/tools/dmake/msdos/microsft/msc60/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/msdos/microsft/msc60/public.h 25 Sep 2006 09:43:47 -0000 1.7 +++ dmake/msdos/microsft/msc60/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -155,7 +155,7 @@ void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); time_t seek_arch ANSI((char*, char*)); Index: dmake/msdos/zortech/public.h =================================================================== RCS file: /cvs/tools/dmake/msdos/zortech/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/msdos/zortech/public.h 25 Sep 2006 09:43:59 -0000 1.7 +++ dmake/msdos/zortech/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -155,7 +155,7 @@ void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); time_t seek_arch ANSI((char*, char*)); Index: dmake/os2/ibm/icc/public.h =================================================================== RCS file: /cvs/tools/dmake/os2/ibm/icc/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/os2/ibm/icc/public.h 25 Sep 2006 09:44:14 -0000 1.7 +++ dmake/os2/ibm/icc/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -155,7 +155,7 @@ void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); int _dchdir ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void SetSessionTitle ANSI((char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); Index: dmake/os2/ibm/icc3/public.h =================================================================== RCS file: /cvs/tools/dmake/os2/ibm/icc3/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/os2/ibm/icc3/public.h 25 Sep 2006 09:44:27 -0000 1.7 +++ dmake/os2/ibm/icc3/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -155,7 +155,7 @@ void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); int _dchdir ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void SetSessionTitle ANSI((char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); Index: dmake/qssl/public.h =================================================================== RCS file: /cvs/tools/dmake/qssl/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/qssl/public.h 25 Sep 2006 09:44:40 -0000 1.7 +++ dmake/qssl/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -154,7 +154,7 @@ void Check_circle_dfa ANSI(()); void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/tos/public.h =================================================================== RCS file: /cvs/tools/dmake/tos/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/tos/public.h 25 Sep 2006 09:47:31 -0000 1.7 +++ dmake/tos/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -155,7 +155,7 @@ void Add_nfa ANSI((char *)); char *Exec_function ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); int If_root_path ANSI((char *)); Index: dmake/unix/runargv.c =================================================================== RCS file: /cvs/tools/dmake/unix/runargv.c,v retrieving revision 1.10 diff -u -r1.10 runargv.c --- dmake/unix/runargv.c 25 Sep 2006 09:47:57 -0000 1.10 +++ dmake/unix/runargv.c 11 Nov 2006 05:02:44 -0000 @@ -97,9 +97,8 @@ typedef struct prp { char *prp_cmd; int prp_group; - int prp_ignore; + t_attr prp_attr; int prp_last; - int prp_shell; struct prp *prp_next; } RCP, *RCPPTR; @@ -120,7 +119,7 @@ static int _use_i = -1; static int _add_child ANSI((int, CELLPTR, int, int)); -static void _attach_cmd ANSI((char *, int, int, CELLPTR, int, int)); +static void _attach_cmd ANSI((char *, int, CELLPTR, t_attr, int)); static void _finished_child ANSI((int, int)); static int _running ANSI((CELLPTR)); @@ -150,21 +149,25 @@ #endif /* HAVE_STRERROR */ PUBLIC int -runargv(target, ignore, group, last, shell, cmd)/* -================================================== +runargv(target, group, last, cmnd_attr, cmd)/* +============================================== Execute the command given by cmd. */ CELLPTR target; -int ignore; int group; int last; -int shell; +t_attr cmnd_attr; /* Attributes for current cmnd. */ char *cmd; { + int ignore = (cmnd_attr & A_IGNORE)!= 0; /* Ignore errors ('-'). */ + int shell = (cmnd_attr & A_SHELL) != 0; /* Use shell ('+'). */ + int mute = (cmnd_attr & A_MUTE) != 0; /* Mute output ('@@'). */ + int pid; int st_pq = 0; /* Current _exec_shell target process index */ char **argv; - int old_stdout; /* For internal echo and spawn. */ + int old_stdout; /* For shell escapes and */ + int old_stderr; /* @@-recipe silencing. */ int internal = 0; /* Used to indicate internal command. */ /* Special handling for the shell function macro is required. If the currend @@ -178,7 +181,7 @@ if( _running(target) != -1 /*&& Max_proc != 1*/ ) { /* The command will be executed when the previous recipe * line completes. */ - _attach_cmd( cmd, group, ignore, target, last, shell ); + _attach_cmd( cmd, group, target, cmnd_attr, last ); return(1); } } @@ -219,16 +222,26 @@ while( iswhite(*cmd) ) ++cmd; } - if( Is_exec_shell ) { + if( mute ) { + /* This superceeds shell redirection. */ + old_stdout = dup(1); + old_stderr = dup(2); + dup2( zerofd, 1 ); + dup2( zerofd, 2 ); + } + else if( Is_exec_shell ) { old_stdout = dup(1); - close(1); - dup( fileno(stdout_redir) ); + dup2( fileno(stdout_redir), 1 ); } printf("%s%s", cmd, nl ? "\n" : ""); fflush(stdout); - if( Is_exec_shell ) { - close(1); - dup(old_stdout); + if( mute ) { + /* This superceeds shell redirection. */ + dup2(old_stdout, 1); + dup2(old_stderr, 2); + } + else if( Is_exec_shell ) { + dup2(old_stdout, 2); } internal = 1; @@ -247,10 +260,16 @@ #if ENABLE_SPAWN && ( HAVE_SPAWN_H || __CYGWIN__ ) /* As no other childs are started while the output is redirected this * is save. */ - if( Is_exec_shell ) { + if( mute ) { + /* This superceeds shell redirection. */ + old_stdout = dup(1); + old_stderr = dup(2); + dup2( zerofd, 1 ); + dup2( zerofd, 2 ); + } + else if( Is_exec_shell ) { old_stdout = dup(1); - close(1); - dup( fileno(stdout_redir) ); + dup2( fileno(stdout_redir), 1 ); } #if __CYGWIN__ pid = spawnvp(_P_NOWAIT, argv[0], (const char**) argv); @@ -258,9 +277,13 @@ if (posix_spawnp (&pid, argv[0], NULL, NULL, argv, (char *)NULL)) pid = -1; /* posix_spawn failed */ #endif /* __CYGWIN__ */ - if( Is_exec_shell ) { - close(1); - dup(old_stdout); + if( mute ) { + /* This superceeds shell redirection. */ + dup2(old_stdout, 1); + dup2(old_stderr, 2); + } + else if( Is_exec_shell ) { + dup2(old_stdout, 1); } if(pid == -1) { /* spawn failed */ @@ -282,13 +305,28 @@ case 0: /* child */ /* redirect stdout for _exec_shell */ - if( Is_exec_shell ) { - /* old_stdout = dup(1); */ + if( mute ) { + /* This superceeds shell redirection. */ + old_stdout = dup(1); + old_stderr = dup(2); + dup2( zerofd, 1 ); + dup2( zerofd, 2 ); + } + else if( Is_exec_shell ) { + old_stdout = dup(1); close(1); dup( fileno(stdout_redir) ); } execvp(argv[0], argv); - /* restoring stdout is not needed */ + /* restoring output to catch potential error output. */ + if( mute ) { + /* This superceeds shell redirection. */ + dup2(old_stdout, 1); + dup2(old_stderr, 2); + } + else if( Is_exec_shell ) { + dup2(old_stdout, 1); + } Continue = TRUE; /* survive error message */ Error("%s: %s", argv[0], strerror( errno )); kill(getpid(), SIGTERM); @@ -481,8 +519,8 @@ _use_i = i; /* Run next recipe line. */ - runargv( _procs[i].pr_target, rp->prp_ignore, rp->prp_group, - rp->prp_last, rp->prp_shell, rp->prp_cmd ); + runargv( _procs[i].pr_target, rp->prp_group, + rp->prp_last, rp->prp_attr, rp->prp_cmd ); _use_i = -1; FREE( rp->prp_cmd ); @@ -529,13 +567,12 @@ static void -_attach_cmd( cmd, group, ignore, cp, last, shell ) +_attach_cmd( cmd, group, cp, cmnd_attr, last ) char *cmd; int group; -int ignore; CELLPTR cp; +t_attr cmnd_attr; int last; -int shell; { register int i; RCPPTR rp; @@ -547,10 +584,9 @@ TALLOC( rp, 1, RCP ); rp->prp_cmd = DmStrDup(cmd); + rp->prp_attr = cmnd_attr; rp->prp_group = group; - rp->prp_ignore= ignore; rp->prp_last = last; - rp->prp_shell = shell; if( _procs[i].pr_recipe == NIL(RCP) ) _procs[i].pr_recipe = _procs[i].pr_recipe_end = rp; Index: dmake/unix/386ix/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/386ix/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/386ix/public.h 25 Sep 2006 09:48:08 -0000 1.7 +++ dmake/unix/386ix/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/bsd43/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/bsd43/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/bsd43/public.h 25 Sep 2006 09:48:22 -0000 1.7 +++ dmake/unix/bsd43/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/bsd43/uw/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/bsd43/uw/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/bsd43/uw/public.h 25 Sep 2006 09:48:36 -0000 1.7 +++ dmake/unix/bsd43/uw/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/bsd43/vf/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/bsd43/vf/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/bsd43/vf/public.h 25 Sep 2006 09:48:48 -0000 1.7 +++ dmake/unix/bsd43/vf/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/bsdarm32/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/bsdarm32/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/bsdarm32/public.h 25 Sep 2006 09:49:01 -0000 1.7 +++ dmake/unix/bsdarm32/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/coherent/ver40/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/coherent/ver40/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/coherent/ver40/public.h 25 Sep 2006 09:49:14 -0000 1.7 +++ dmake/unix/coherent/ver40/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/coherent/ver42/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/coherent/ver42/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/coherent/ver42/public.h 25 Sep 2006 09:49:26 -0000 1.7 +++ dmake/unix/coherent/ver42/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/cygwin/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/cygwin/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/cygwin/public.h 25 Sep 2006 09:49:51 -0000 1.7 +++ dmake/unix/cygwin/public.h 11 Nov 2006 05:02:44 -0000 @@ -115,7 +115,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -163,7 +163,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/linux/gnu/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/linux/gnu/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/linux/gnu/public.h 25 Sep 2006 09:50:05 -0000 1.7 +++ dmake/unix/linux/gnu/public.h 11 Nov 2006 05:02:44 -0000 @@ -115,7 +115,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -163,7 +163,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/macosx/gnu/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/macosx/gnu/public.h,v retrieving revision 1.6 diff -u -r1.6 public.h --- dmake/unix/macosx/gnu/public.h 25 Sep 2006 09:50:19 -0000 1.6 +++ dmake/unix/macosx/gnu/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/solaris/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/solaris/public.h,v retrieving revision 1.5 diff -u -r1.5 public.h --- dmake/unix/solaris/public.h 25 Sep 2006 09:50:33 -0000 1.5 +++ dmake/unix/solaris/public.h 11 Nov 2006 05:02:44 -0000 @@ -111,7 +111,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -158,7 +158,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/solaris/gnu/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/solaris/gnu/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/solaris/gnu/public.h 25 Sep 2006 09:50:52 -0000 1.7 +++ dmake/unix/solaris/gnu/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/sysvr1/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/sysvr1/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/sysvr1/public.h 25 Sep 2006 09:51:06 -0000 1.7 +++ dmake/unix/sysvr1/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/sysvr3/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/sysvr3/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/sysvr3/public.h 25 Sep 2006 09:51:20 -0000 1.7 +++ dmake/unix/sysvr3/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/sysvr3/gnu/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/sysvr3/gnu/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/sysvr3/gnu/public.h 25 Sep 2006 09:51:33 -0000 1.7 +++ dmake/unix/sysvr3/gnu/public.h 11 Nov 2006 05:02:44 -0000 @@ -110,7 +110,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -157,7 +157,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/sysvr3/pwd/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/sysvr3/pwd/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/sysvr3/pwd/public.h 25 Sep 2006 09:51:47 -0000 1.7 +++ dmake/unix/sysvr3/pwd/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/sysvr4/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/sysvr4/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/sysvr4/public.h 25 Sep 2006 09:51:59 -0000 1.7 +++ dmake/unix/sysvr4/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/xenix/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/xenix/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/xenix/public.h 25 Sep 2006 09:52:11 -0000 1.7 +++ dmake/unix/xenix/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/unix/xenix/pwd/public.h =================================================================== RCS file: /cvs/tools/dmake/unix/xenix/pwd/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/unix/xenix/pwd/public.h 25 Sep 2006 09:52:25 -0000 1.7 +++ dmake/unix/xenix/pwd/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ void void_lcache ANSI(( char *, char *)); int If_root_path ANSI((char *)); void Remove_prq ANSI((CELLPTR)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/win95/borland/bcc50/public.h =================================================================== RCS file: /cvs/tools/dmake/win95/borland/bcc50/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/win95/borland/bcc50/public.h 25 Sep 2006 09:52:37 -0000 1.7 +++ dmake/win95/borland/bcc50/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ time_t seek_arch ANSI((char*, char*)); int touch_arch ANSI((char*, char*)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/win95/microsft/vpp40/public.h =================================================================== RCS file: /cvs/tools/dmake/win95/microsft/vpp40/public.h,v retrieving revision 1.6 diff -u -r1.6 public.h --- dmake/win95/microsft/vpp40/public.h 25 Sep 2006 09:53:00 -0000 1.6 +++ dmake/win95/microsft/vpp40/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ time_t seek_arch ANSI((char*, char*)); int touch_arch ANSI((char*, char*)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); void Remove_prq ANSI((CELLPTR)); Index: dmake/winnt/borland/bcc50/public.h =================================================================== RCS file: /cvs/tools/dmake/winnt/borland/bcc50/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/winnt/borland/bcc50/public.h 25 Sep 2006 09:53:14 -0000 1.7 +++ dmake/winnt/borland/bcc50/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ time_t seek_arch ANSI((char*, char*)); int touch_arch ANSI((char*, char*)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); int Wait_for_child ANSI((int, int)); void Clean_up_processes ANSI(()); time_t CacheStat ANSI((char *, int)); Index: dmake/winnt/microsft/vpp40/public.h =================================================================== RCS file: /cvs/tools/dmake/winnt/microsft/vpp40/public.h,v retrieving revision 1.7 diff -u -r1.7 public.h --- dmake/winnt/microsft/vpp40/public.h 25 Sep 2006 09:53:36 -0000 1.7 +++ dmake/winnt/microsft/vpp40/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ time_t seek_arch ANSI((char*, char*)); int touch_arch ANSI((char*, char*)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); void Remove_prq ANSI((CELLPTR)); Index: dmake/winnt/mingw/public.h =================================================================== RCS file: /cvs/tools/dmake/winnt/mingw/public.h,v retrieving revision 1.5 diff -u -r1.5 public.h --- dmake/winnt/mingw/public.h 25 Sep 2006 09:53:48 -0000 1.5 +++ dmake/winnt/mingw/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ time_t seek_arch ANSI((char*, char*)); int touch_arch ANSI((char*, char*)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); void Remove_prq ANSI((CELLPTR)); Index: dmake/winnt/msvc6/public.h =================================================================== RCS file: /cvs/tools/dmake/winnt/msvc6/public.h,v retrieving revision 1.5 diff -u -r1.5 public.h --- dmake/winnt/msvc6/public.h 25 Sep 2006 09:54:01 -0000 1.5 +++ dmake/winnt/msvc6/public.h 11 Nov 2006 05:02:44 -0000 @@ -112,7 +112,7 @@ void Void_lib_cache ANSI((char *, char *)); time_t Do_time ANSI(()); void Do_profile_output ANSI((char *, uint16, CELLPTR)); -int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int)); +int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int)); char ** Pack_argv ANSI((int, int, char *)); char *Read_env_string ANSI((char *)); int Write_env_string ANSI((char *, char *)); @@ -159,7 +159,7 @@ time_t seek_arch ANSI((char*, char*)); int touch_arch ANSI((char*, char*)); int If_root_path ANSI((char *)); -int runargv ANSI((CELLPTR, int, int, int, int, char *)); +int runargv ANSI((CELLPTR, int, int, t_attr, char *)); void Clean_up_processes ANSI(()); int Wait_for_child ANSI((int, int)); void Remove_prq ANSI((CELLPTR));