Latest Changes: - Added function SubStr(), which retrieves the specified number of characters at the specified position in a string - Added assignment operators //=, .=, |=, &=, ^=, >>=, and <<=, which can be used anywhere in expressions. For example, Var .= "abc" appends the string "abc" to the end of Var's current contents - Added full support in expressions for the operators ++, --, +=, -=, *=, and /= (formerly, they could be used only as the leftmost operator on a line). All assignment operators (especially ++ and --) behave in a C-like way when their result is used by some - Added the ternary operator (?: ), which is a shorthand replacement for the if-else statement. For example, var := x>y ? 2 : 3 assigns the value 2 if x is greater than y; otherwise it assigns 3 - Added support for comma-separated expressions, which allow a single line to contain multiple assignments, function calls, and other expressions - Improved variable declarations to support initialization on the same line. Note: A static variable's initialization occurs only once, before the script begins executing - Improved line continuation to support all expression operators. For example, a line that starts with "?" or "+" is automatically merged with the line above it - Improved performance of operators "." and ".=" to be as fast as the percent-sign method of appending a string - Improved expressions to allow more types of consecutive unary operators such as !!Var - Changed Critical to check messages less often (20 vs. 10ms), which improves the reliability of frequently-called OnMessage functions - Changed: A variable named simply "?" is no longer valid in expressions due to the new ternary operator - Fixed hotkeys to support ":::" (colon as a hotkey) and ": & x" (colon as a hotkey prefix) - Fixed the installer to remove psapi.dll from the AutoHotkey folder (except on Windows NT4). This avoids a conflict with Internet Explorer 7 - NOTE: Although this release has been extensively tested and is not expected to break any existing scripts, several low-level enhancements were made. If you have any mission-critical scripts, it is recommended that you retest them and/or wait a few weeks f |