[CMAKE]
[reactos.git] / base / shell / cmd / batch.h
1 /*
2 * BATCH.H - A structure to preserve the context of a batch file
3 *
4 *
5 */
6
7 #pragma once
8
9 typedef struct tagBATCHCONTEXT
10 {
11 struct tagBATCHCONTEXT *prev;
12 HANDLE hBatchFile;
13 TCHAR BatchFilePath[MAX_PATH];
14 LPTSTR params;
15 LPTSTR raw_params; /* Holds the raw params given by the input */
16 INT shiftlevel[10];
17 BOOL bEcho; /* Preserve echo flag across batch calls */
18 REDIRECTION *RedirList;
19 PARSED_COMMAND *current;
20 struct _SETLOCAL *setlocal;
21 } BATCH_CONTEXT, *LPBATCH_CONTEXT;
22
23 typedef struct tagFORCONTEXT
24 {
25 struct tagFORCONTEXT *prev;
26 TCHAR firstvar;
27 UINT varcount;
28 LPTSTR *values;
29 } FOR_CONTEXT, *LPFOR_CONTEXT;
30
31
32 /* The stack of current batch contexts.
33 * NULL when no batch is active
34 */
35 extern LPBATCH_CONTEXT bc;
36
37 extern LPFOR_CONTEXT fc;
38
39 extern BOOL bEcho; /* The echo flag */
40
41 #define BATCH_BUFFSIZE 8192
42
43 extern TCHAR textline[BATCH_BUFFSIZE]; /* Buffer for reading Batch file lines */
44
45
46 LPTSTR FindArg (TCHAR, BOOL *);
47 LPTSTR BatchParams (LPTSTR, LPTSTR);
48 VOID ExitBatch ();
49 INT Batch (LPTSTR, LPTSTR, LPTSTR, PARSED_COMMAND *);
50 LPTSTR ReadBatchLine();
51 VOID AddBatchRedirection(REDIRECTION **);