mirror of
https://github.com/reactos/reactos.git
synced 2024-11-09 16:20:37 +00:00
3f892a8d6b
Adapted from a patch by Jacob S. Preciado. Bring also the code suggestions emitted during review.
54 lines
1.4 KiB
C
54 lines
1.4 KiB
C
/*
|
|
* BATCH.H - A structure to preserve the context of a batch file
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
typedef struct tagBATCHCONTEXT
|
|
{
|
|
struct tagBATCHCONTEXT *prev;
|
|
char *mem; /* batchfile content in memory */
|
|
DWORD memsize; /* size of batchfile */
|
|
DWORD mempos; /* current position to read from */
|
|
BOOL memfree; /* true if it need to be freed when exitbatch is called */
|
|
TCHAR BatchFilePath[MAX_PATH];
|
|
LPTSTR params;
|
|
LPTSTR raw_params; /* Holds the raw params given by the input */
|
|
INT shiftlevel[10];
|
|
BOOL bEcho; /* Preserve echo flag across batch calls */
|
|
REDIRECTION *RedirList;
|
|
PARSED_COMMAND *current;
|
|
struct _SETLOCAL *setlocal;
|
|
} BATCH_CONTEXT, *LPBATCH_CONTEXT;
|
|
|
|
typedef struct tagFORCONTEXT
|
|
{
|
|
struct tagFORCONTEXT *prev;
|
|
TCHAR firstvar;
|
|
UINT varcount;
|
|
LPTSTR *values;
|
|
} FOR_CONTEXT, *LPFOR_CONTEXT;
|
|
|
|
|
|
/*
|
|
* The stack of current batch contexts.
|
|
* NULL when no batch is active
|
|
*/
|
|
extern LPBATCH_CONTEXT bc;
|
|
|
|
extern LPFOR_CONTEXT fc;
|
|
|
|
extern BOOL bEcho; /* The echo flag */
|
|
|
|
#define BATCH_BUFFSIZE 8192
|
|
|
|
extern TCHAR textline[BATCH_BUFFSIZE]; /* Buffer for reading Batch file lines */
|
|
|
|
|
|
LPTSTR FindArg(TCHAR, BOOL *);
|
|
LPTSTR BatchParams(LPTSTR, LPTSTR);
|
|
VOID ExitBatch(VOID);
|
|
INT Batch(LPTSTR, LPTSTR, LPTSTR, PARSED_COMMAND *);
|
|
BOOL BatchGetString(LPTSTR lpBuffer, INT nBufferLength);
|
|
LPTSTR ReadBatchLine(VOID);
|
|
VOID AddBatchRedirection(REDIRECTION **);
|