2 -----===============-----
3 *** This is not a new version of Calculator, just some modifications made
4 *** by another author. All copyrights of the code, except the new modifications
5 *** belong to the original author (Cail Lomecb).
8 * Support Windows 2000 and WindowsXP added
13 * Fixed: slow redraw in dialogs
14 * Fixed: settings didn`t save
15 * Now plugin on https://github.com/FarPlugins/Calculator
24 * Update to current Far3 version (stable build 2927+)
25 * Update of ttmath library with some fixes
26 * Fixed: cursor moved in file panel after the Calculator was closed by pressing ESC
31 * Update to current Far3 version (dev.build 2728+)
32 * Fixed work with large console buffer (far /W)
33 * Fixed: cursor disapeared after pressing Enter
34 * Fixed: error text "expression error" is now cleared correctly after pressing Enter
35 * Fixed: plugin crashed on _numer(NaN) or _denom(NaN)
36 * Fixed: arith. precision problems in some cases ("30000-6649.23-23350.77")
37 * Fixed command line and editor expression insertion for Far3
38 * Fixed: minor fixes for English names and translations
39 + If all conversion units removed, the starting menu doesn't appear any more
44 File calcset.csr is heavily modified in this version!
45 Please save all your changes from this file before updating plugin version!
46 Now all user changes are recommended to place in user.csr file (one should be created)
48 * Fixed: minimal required Far version is corrected; some users of early versions had problems.
49 * Fixed: empty or erroneous functions (<func syntax="f"/>) are no longer cause faults and are simply not used.
50 * Fixed: for Russian language, menu title "Dialogs" is translated.
51 * Fixed: units conversion dialog wasn't shown correctly for certain console window size.
52 * Fixed: the last digit of exponent part wasn't visible in some cases.
53 * Fixed: unary operators didn't work sometimes.
54 * Fixed: call of a binary operator from the same unary one (<op syntax="/" mean="1 / op1"/>).
55 * Fixed: symbol _char(38) wasn't displayed.
56 * Fixed: integer calculation overflow ("factor(1e145)").
57 * Fixed: non-argument functions behavior ("rnd()").
58 * Fixed: plugin crashed when an addon was added in between the plugin calls.
59 * All results are cleared now when the edit box is empty.
60 * Symbol "=" at the end of expression for calculation in editor is now processed correctly.
61 * Calculator language is now taken from FAR settings (but it can be overridden by <lang id=""/> in user.csr);
62 also other languages are supported by creating language files (.lng) with 2-letter language codes inside.
63 * User modifiers Kb,Mb,Gb,Tb are now case-insensitive.
64 * Functions kelv() and sec() corrected, user functions lb(), gtg(), gctg(), gsec(), gcosec() added.
65 * Functions arcsin() and arccos() corrected, built-in function _cos() added.
66 * Function _rnd() corrected, now it returns the real pseudo-random number.
67 + Function curt() added for cubic root (with sign).
68 + Added date/time functions (jd, jdf, jdg, jdgf, utc, ansid, ratadie).
69 + Added built-in functions for float/double conversion to binary IEEE-754 format and vice-versa,
70 and also for 'Inf' and 'NaN' numbers: _f2b(), _d2b(), _b2f(), _b2d(), _finf(), _fnan().
71 + Basic arithmetic operations for float and double types is now supported and Inf/NaN is displayed.
72 * Overflow errors are displayed when converting too large(small) numbers to float/double.
73 * For numerals, 'format' parameter is now used instead of 'radix', with unified syntax for numerals and addons.
74 + "Lazy" arguments can be used in regular expressions for numerals ("/([0-9])([0-9])?/").
75 * Big numbers library (ttmath) version updated with some bugfixes, assembler optimization enabled (for x86)
76 * Code refactoring caused by Far API (compatible with both FAR 2.0 and FAR 3.0).
77 + Added file user-examples.csr with examples of some additional addons, operators, numerals etc.
79 + Calculator settings dialog added.
80 + Option "Show results during the input" which can be turned off.
81 + Case-sensitive input option.
82 + Pad zeroes for fixed-size numbers option (_char,_short,_int, etc.).
83 + Autocomplete input option (turned off by default).
84 + Delimiter symbols definition:
85 + decimal point (dot/comma);
86 + function arguments delimiter (comma, semicolon);
87 + digit group delimiter (for main calculator mode only);
88 + regional settings usage option for point/comma/digit groups (turned off by default).
90 + Built-in addons (dec/hex/oct/bin/exp) moved to calcset.csr, and can be managed (disable, change order).
91 + New parameter 'format' is added to addons, to set conversion base (radix) and addon format
92 (see examples in calcset.csr and user-examples.csr).
93 + Addon math errors are now displayed in their output fields.
94 - Units converter and CSR files structure:
95 + Other CSR-files inclusion support added to calcset.csr (format: <xi:include href="file.scr"/>).
96 + All unit conversion dialogs removed from calcset.csr and moved to separate files in 'bin/units/' folder.
97 + All conversion units revised and supplemented according to suggestions from users.
98 + New conversion dialogs added for temperature, dates and information measure
99 (units/temperature.csr, units/date.csr and units/info.csr).
100 + Conversion dialogs/sets redefinition is now possible (for standard sets correction from the user files).
101 + Constant math expression can be now specified as a multiplier ('scale').
102 + Complex math expressions can be used instead of multipliers (using output="" and input=""),
103 see examples in the files units/temper.csr and units/date.csr.
104 + Addon formatting rules are used for expressions in the output="" (curly brackets).
105 + Column width selection method improved for conversion dialogs.
106 - Fractions support: (EXPERIMENTAL! rational numbers approximations used; see examples in user-examples.csr)
107 + Repeating decimals with ellipsis (new format="rep" for addon and numeral).
108 + Finite continued fractions in canonical form of [a,b,c,d] (new format="con" for addon and numeral).
109 + New built-in functions _numer(op0),_denom(op0) added for vulgar mixed fractions.
110 + Built-in function _gcd(op0,op1) added for the greatest common divisor.
111 + User functions added: 'gcd' (greatest common divisor) and 'lcm' (least common multiple).
115 - Numbers and expressions:
116 + New expression parser implemented - no more bugs like "0x1e+0x2e",
117 but the calc is more slow on extra-large expressions.
118 + New numbers parser with regular expressions (regexps) and numeral systems implemented - numbers format is now set
119 with <numeral> tag in the file calcset.csr (see examples there). Considering that, postfix operators
120 aren't supported no more.
121 + 'Priority' parameter added for operators.
122 + New unified operator list in the file calcset.csr
123 + Basic bit operations shifted to BigNumbers (to do like this: 1<<100)
124 * Rotation bit shift operator (_ror, _rol) are now used only with fixed-length types (_byte,_ushort,_uint,...)
125 * Fixed-length numbers (_byte,_ushort,_uint,...) in bin/oct/hex format are displayed padded with zeroes by default
126 (can be disabled in the calculator properties in the registry: padZeroes).
127 * Fixed large _int64 numbers
129 + A spesial tag <addon> is now used for addons in the file calcset.csr
130 + Addon output formatting added - all calculations are done only for braces {} contents,
131 the rest is shown in dialog's field. Examples are in calcset.csr (including format 'hh:mm:ss').
132 * Fixed: if erroneous message entered, the addon field names were erased.
133 - Units converter dialog:
134 + Units conversion precision increased (not not less then Converber utility has).
135 + When switching input fields, the corresponding numbers are selected (highlighted) for easy input of new numbers.
136 * Light of speed multiplier value corrected; precision of some multipliers and constants increased.
138 + Window size changes on-the-fly when console size changes (the larger the window, the more digits shown).
139 + When Enter is pressed on an error, the resulting string is now selected for easy input of new expression.
140 + When Enter is pressed on the large expressions, the result is shown from the first digit, if possible.
141 + Expression limit is now set explicitly - 1024 characters (was 512 chars implicitly).
142 + "Gray Enter" on numerical keypad now works the same as an ordinary Enter.
143 + Default type name "double" replaced by "big number", and '_double' can be used again for type conversion.
144 + For '_char' type the corresponding character symbol is now displayed
145 + Factorial has become a _factor() function, not operator.
146 + Hyperbolic sine and cosine functions renamed to 'sinh' and 'cosh' (instead of 'sh' and 'ch')
147 in order to avoid collisions with hex number 'ch'
148 * Fixed: current selected radio-button was not shown when dialog was called in sequence.
149 + Added VERSION_INFO.
153 *** This is not a new version of Calculator, just some modifications made
154 *** by another author. All copyrights of the code, except the new modifications
155 *** belong to the original author (Cail Lomecb).
156 Compatibility with FAR 2.0 and higher only (UNICODE version).
157 Big numbers support added (192 bits for mantissa and 32 bits for exponent)
158 for all math operations and numeral conversions.
159 Addons supported - user-defined expressions are now added to the list -
160 See 'Addons' section in calcset.csr (now in UNICODE format).
167 Compatibility with FAR 1.70b3 and higher only.
168 In b1 and b2 works with bugs.
169 All dialogs support codes are removed - now far
170 draw all dialogs himself.
171 Convertation dialogs now support multilanguage settings.
172 Pressing Ctrl-Enter in convertation dialog moves current value
173 from editline into calculator's editline. Pressing it in
174 calculator moves result into command line in far shell.
175 Calcset.csr fixed with XML standard, has DTD now.
176 Some constants names changed:
180 New combinatorial function CNK.
185 Now you can use dialogs for convertations of values (in
186 russian language). You can call them from main menu or
187 directory from calculator with F2 key.
188 New parser. now you can use different number types,
190 Functions Integral and Derived were removed.
191 Some bugs in codes and defines are fixed.
196 Changed Parser Structure. Now you can define, redefine syntax
197 and meaning of any operator, constant or function in
199 Moving Calc's window.
201 Increased calculations precision.
206 With yours requests was changed work in Far's Editor.
207 Now it works a little different: You must use
208 macroses Alt=, AltH, AltO, AltB - of course, you can
210 Also shortcut keys was added.
215 Added work with user Functions/Constants.
216 Changed Expression Parser.
221 History is available now - Ctrl-Down.
223 Suffix output while pressing Enter.
224 Syffixes Kb Mb Gb Tb - Translation to Kilo, Mega,
226 Added Far 1.6 support. You can use Calc in Editor window.
227 Cels and Fahr functions.
232 Functions with multiple arguments.
234 Now 19 operators "||","&&","|","^","&","!=","==",">>","<<",
235 ">","<","+","-","*","/","%","pow","~","!"
236 18 functions "Sin","Cos","Tg","Ctg","ArcTg","ArcSin",
237 "ArcCos","Sqrt","Sqr","Ln","Lg","Log","Rad",
238 "Grad","Sum","Avr","Integral","Derived"
241 Nice-looking Error messages.
246 Now Calc uses Far's colors.
248 Normal Screen Saving.
249 Tested in Far 1.51 и 1.52.