reactos/base
Hermès Bélusca-Maïto 17e094cd34
[CMD] SET: Diverse fixes for the arithmetic-expression parser (/A option).
- Detect whether a division by zero is done, and fail if so.

- Detect whether an invalid number is provided:
  * If _tcstol() fails with errno == ERANGE, we've got an overflow or
    underflow.
  * If the next character where _tcstol() is not a whitespace but is a
    character compatible with the first character of an identifier, the
    number is invalid.

- Add + to the list of existing unary operators (!,~,-), and parse them
  where many of these are present. Indeed, expressions like: +3, -+-+3,
  !!-+3 (or with other unary ops, etc.) are valid.

- Operators constituted of more than one characters, can contain
  whitespace separating their constituting characters.
  Thus, "a + = 3" is equivalent to "a += 3" (and the same for -=, *=,
  /=, %=, &=, |= and ^=), and "a < < 3" is equivalent to "a << 3" (and
  the same for >>, <<= and >>=).

- After evaluating everything, if unparsed data remains, fail and bail out.

- Return Windows' CMD-compatible errorlevels.

See https://ss64.com/nt/set.html for more details.

Fixes some cmd_winetests.
2020-09-23 00:22:48 +02:00
..
applications [RAPPS] Use RegDeleteKeyExW for deleting the apps strings from registry only if it is available in advapi32 2020-09-20 19:23:06 +02:00
services [REACTOS] Fix GetTokenInformation() usage (#2997) 2020-07-21 15:39:11 +03:00
setup [SETUP] French translation of missing elements (#3111) 2020-09-03 21:20:54 +02:00
shell [CMD] SET: Diverse fixes for the arithmetic-expression parser (/A option). 2020-09-23 00:22:48 +02:00
system [TRANSLATION] Chinese Traditional translation improvements (#3085) 2020-09-18 00:50:27 +02:00
CMakeLists.txt