Ann and Jason Edmeades jason@edmeades.me.uk writes:
Parse the options you can provide with for /f to control the subsequent parsing, and add support for the simplest (skip). @@ -1546,6 +1545,13 @@ void WCMD_for (WCHAR *p, CMD_LIST **cmdList) { int itemNum; CMD_LIST *thisCmdStart; int parameterNo = 0;
- WCHAR forf_eol=0;
- int forf_skip=0;
- WCHAR forf_delims[256];
- WCHAR forf_tokens[MAXSTRING];
- BOOL forf_usebackq = FALSE;
- static const WCHAR forf_defaultdelims[] = {' ', '\t'};
- static const WCHAR forf_defaulttokens[] = {'1'};
It's clearly time to start splitting WCMD_for into several helper functions.
It's clearly time to start splitting WCMD_for into several
helper functions.
I completely agree, and it was definitely on my radar to do... its really ugly code in there (I take responsibility for a lot of that!) as it has been a slow incremental increase in what we actually supported... I was aiming to get a set of working /f tests before I did such a reshuffle as that is the last of the functionality that for was missing (ie I could ensure I keep it all working), but will prioritize it if you want it before that.
Jason