This commit reverts 38e0ec379f81ba1e and 55c36576 which attempted
to fix the capitalisation of array names used with L/UBOUND, and
introduced the code-eating bug. It is replaced with an alternative
solution to the capitalisation issue.
- maintain search and recent files histories in buffers
- histories keep the last 100 entries used
- buffers are saved to disk at exit and are restored on next IDE session
- Select All (CTRL-A) in the help text actually didn't select ALL after text was selected manually once before, because Help_cx1/_cy1 were not reset (bug goes back to the SDL versions)
- help text width is a known value, no need to set millions of chars
- fixed Definition lists eating the first char, if list introducer is followed by space
- added further pages to the core pages queue
- added handling for new {{PageReferences}} wiki template
- added more name substitutes for the breadcrumb links
The FocusIn/FocusOut X11 events are more reflective of active
foreground window that Enter/Leave, which only relates to mouse
movement. In particular, FocusOut fires when Alt-Tabbing away
so the alt key is correctly released.
Also re-enable IDE defocus processing on Linux so the Alt key no
longer keeps the menus selected when Alt-Tabbing.
Very simple change here, to basically take:
a$ = b$ + c$ + d$ + e$ + f$
And make it:
a$ = b$ + (c$ + d$ + e$) + f$
....
This speeds up the IDE due to (c$ + d$ + e$) being small strings, while a$ and f$ are larger strings... It's more efficient to move and add those small strings first, than it is to add them to the large strings, making them larger, at each step.
This allows simplifying how the size of UDT arrays are calculated,
and thus not leave memory uninitialised when doing a redim that
expands the array size.
Instead of being disabled by default after certain actions (those which affected the recent files list and so forced a rebuild of the "File" menu), now the current state of the "Export As" item is passed through to the rebuild procedure.
The regular division symbol always converts its arguments to floating
point before dividing, similar to how integer division converts its
arguments to integers before dividing.