2 * CALL.C - call internal batch command.
7 * 16 Jul 1998 (Hans B Pufal)
10 * 16 Jul 1998 (John P Price)
11 * Seperated commands into individual files.
13 * 27-Jul-1998 (John P Price <linux-guru@gcfl.net>)
14 * added config.h include
16 * 04-Aug-1998 (Hans B Pufal)
17 * added lines to initialize for pointers (HBP004) This fixed the
18 * lock-up that happened sometimes when calling a batch file from
21 * 07-Jan-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>)
22 * Added help text ("call /?") and cleaned up.
24 * 20-Jan-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>)
25 * Unicode and redirection safe!
41 * Perform CALL command.
43 * Allocate a new batch context and add it to the current chain.
44 * Call parsecommandline passing in our param string
45 * If No batch file was opened then remove our newly allocted
49 INT
cmd_call (LPTSTR cmd
, LPTSTR param
)
51 LPBATCH_CONTEXT n
= NULL
;
54 DebugPrintf ("cmd_call: (\'%s\',\'%s\')\n", cmd
, param
);
56 if (!_tcsncmp (param
, _T("/?"), 2))
58 ConOutPuts (_T("Calls one batch program from another.\n\n"
59 "CALL [drive:][path]filename [batch-parameter]\n\n"
60 " batch-parameter Specifies any command-line information required by the\n"
65 n
= (LPBATCH_CONTEXT
)malloc (sizeof (BATCH_CONTEXT
));
69 error_out_of_memory ();
76 bc
->hBatchFile
= INVALID_HANDLE_VALUE
;
79 bc
->forvar
= 0; /* HBP004 */
80 bc
->forproto
= NULL
; /* HBP004 */
82 ParseCommandLine (param
);
84 /* Wasn't a batch file so remove conext */
85 if (bc
->hBatchFile
== INVALID_HANDLE_VALUE
)