[PTRun][Calc]Improve handling of non-base 10 numbers (#36700)

This commit is contained in:
PesBandi
2025-01-08 11:49:26 +01:00
committed by GitHub
parent 308c4b817e
commit cd2a88704d
4 changed files with 9 additions and 4 deletions

View File

@@ -37,8 +37,8 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator
}
// check for division by zero
// We check if the string contains a slash followed by space (optional) and zero. Whereas the zero must not be followed by a dot, comma, or 'x'/'X' as these indicate a number with decimal digits or a hexadecimal value respectively. The zero must also not be followed by other digits.
if (new Regex("\\/\\s*0(?![,\\.0-9xX])").Match(input).Success)
// We check if the string contains a slash followed by space (optional) and zero. Whereas the zero must not be followed by a dot, comma, 'b', 'o' or 'x' as these indicate a number with decimal digits or a binary/octal/hexadecimal value respectively. The zero must also not be followed by other digits.
if (new Regex("\\/\\s*0(?!(?:[,\\.0-9]|[box]0*[1-9a-f]))", RegexOptions.IgnoreCase).Match(input).Success)
{
error = Properties.Resources.wox_plugin_calculator_division_by_zero;
return default;

View File

@@ -21,7 +21,7 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator
@"pi|" +
@"==|~=|&&|\|\||" +
@"((-?(\d+(\.\d*)?)|-?(\.\d+))[Ee](-?\d+))|" + /* expression from CheckScientificNotation between parenthesis */
@"e|[0-9]|0x[0-9a-fA-F]+|0b[01]+|[\+\-\*\/\^\., ""]|[\(\)\|\!\[\]]" +
@"e|[0-9]|0[xX][0-9a-fA-F]+|0[bB][01]+|0[oO][0-7]+|[\+\-\*\/\^\., ""]|[\(\)\|\!\[\]]" +
@")+$",
RegexOptions.Compiled);