Skip to content

Releases: devinsmith/fox

v1.7.83

14 Jun 22:43
e9e7a15
Compare
Choose a tag to compare

Changes

  • FXThread::current() yields thread-id.
  • Updated icons in FXFileDialog, PathFinder, and Adie editor.
  • FXPath::enquote() should also engage escaping when embedded braces found in string.
  • FXPath::enquote() places quotes around empty file, because it is the only way to pass empty string parameter sometimes when passing arguments to sub process.
  • Updated help information in Adie editor.
  • Adie now gives warnings if (1) file being edited is changed by another program, (2) file being editor was removed by another program If warnings are turned off, you will still get prompted when you're about to save or close the window. This minimized unexpected loss of information.
  • X11 line width fix (needed for some broken GPU drivers).
  • Updated VC++ project files.
  • Ascii character classifications now inlined, potentially much faster. Important for Adie regex-based syntax coloring engine, where improvement is noticable.
  • Adie editor search/replace now supports whole-word search option.
  • Adie editor now has "New File" in addition to "New". The new option prompts user for filename immediately, and thus kicks syntax colorizer into the correct mode, if the mode is determined by file extension. This is normally the case.
  • Adie word-wrap toggle on menu bar is helpful to quickly reveal long lines running past right edge of the screen.
  • When you're in the middle of editing a large file, and scroll around to look at something (e.g. a declaration), you can now quickly jump back to the last location being edited. This is done by implicitly defined bookmark called the "Insert Point". Promise you will find this feature quite convenient.
  • FXPath::title() has been renamed to FXPath::stem(). This seems to be the apropriate name for what it does, which is to return the name less the extension and the directory-part.
  • Adie offers quick switching editing windows from right-mouse popup menu. Also added is "Open Selected" which opens the selected text as a filename.
  • Some internal streamlining in FXRex, the regular expression engine. Also, word-mode automatically generates begin-word, end-word around top-level match. This also works for verbatim mode.
  • FindInFiles dialog also supports whole-word search option.
  • Incremental search looks updated, and whole-word mode added.
  • Adie shell-command line and shell-command filter dialogs now have scroll-back through previously launched commands.
  • FXFileDialog can side-scroll using mouse wheel when in the horizontal mode.
  • FXScrollArea logic w.r.t. non-scrolling directions: mouse wheel is blocked from controlling scroll bar if scrolling is off in the horizontal (vertical) direction.
  • Relaxed interpretation of reserved word in JSON parser: only reserved when they appear as a "value", not when they appear as a "key". Important when e.g. loading as plain JSON but then saving as JSON5 may be something that could break a file from being loaded otherwise.
  • Checking for early end-of-file in JSON parser may yield more sensible warning messages.
  • Added FXPath::isRelative() API. This returns true if the path leading up to a filename can be determined to be relative. Operates similar to FXPath::isAbsolute(). Note that it is possible both FXPath::isRelative() and FXPath::isAbsolute() to return false. Sometimes, there just isn't enough information to decide.
  • Improved innards for FXPath::expand() to expand environment variables etc.
  • In FXRex regular expression matcher, when performing backward matching, back references must refer forwards as the later-occuring parts of a string are matched first.
  • API added to FXFontDialog to set sample text to font-display.

v1.7.82

14 Jun 20:40
e9e7a15
Compare
Choose a tag to compare

Changes

  • New FXINI, FXINIFile classes added to parse (and unparse) configuration (registry) file format into FXVariant datastructure.
  • Updated variant test program to load/save configuration (registry) file format.
  • Some minor issues parsing infinity and nan fixed in JSON parser.
  • Keyword recognition in JSON only when keyword expected. Now reserved words/keywords allowed in places where identifiers are expected (JSON5).
  • Some minor issues parsing infinity and nan fixed in JSON parser.
  • Shell-command dialog for Adie text editor now has command scrollback for previously executed commands.
  • New feature to executed highlighted line as command in Adie.
  • Fast conversion of FXColor (RGBA) pixel value to/from FXVec4f or FXVec4d using AVX2.
  • Fixed default parameter in FXString find_last_of(), find_last_not_of().
  • Quaternion normalize() will be replacing adjust(). A new fast incremental quaternion fastnormalize() API added to re-normalize almost- normalized quaternion. This technique is MUCH faster than normalize(), since only multiply-add used, no sqrt() or division.
  • FXJSON parser speedups.
  • FXFile, FXIODevice, FXIO updates.
  • FXMappedFile class for memory mapped files added.
  • New API FXThread::ticks() returns CPU tick counter; this replaces old fxgetticks().
  • Some internal improvements w.r.t. FILETIME on Windows in different places.
  • FXStat::stat() API added for getting permissions from open file by handle.

v1.7.81

11 Feb 22:13
e9e7a15
Compare
Choose a tag to compare

Changes

  • Using _InterlockedExchangeAdd64 and other FXAtomic issues (Windows).
  • FXApp should never write FOX-wide settings; only per-app settings. This rule was violated for a few types of settings.
  • Horizontal and vertical scrollbar multi-line scrolling can now be individually controlled.
  • Added a couple nice color themes in ControlPanal to choose from.
  • Adie Syntax class API class leads to somewhat simpler code. Possibly faster.
  • Tentative alias_cast() template may be used for shutting up GCC alias warnings. This means type-punning related warnings are now properly suppressed.
  • Additional math-functions added to FXExpression mathematical expression evaluator.
  • Some internal branch-avoiding optimizations in FXRex, the regular expression matcher.
  • Subtle off-by-one bug fix in fxprintf, when very small, denormalized floating point numbers were printed.
  • Added orthogonal() API for 3D vector classes: it returns vector orthogonal to given vector.
  • More forgiving and simpler implementation of quaternion arc() implementation.

v1.7.80

03 Nov 00:24
Compare
Choose a tag to compare

Changes

  • New Visual C++ 2015 build project files for FOX distribution; you should be able to import them to any post-2015 version of Visual Studio.
  • Conversions to smaller integer sizes in FXVariant now saturate to maximum (unsigned) values; success-flag will be set false if saturation happens.
  • ControlPanel has new section for configuring "sub-pixel rendering" feature for Linux font system.
  • New feature in JSON parser/unparser is to allow saving in JSON5 mode; default is still regular JSON mode.
  • JSON unparser allow setting preferred quote type.
  • JSON unparser allows unicode identifiers for keys.
  • Minor bug in JSON parser when parsing and unescaping string: ensure we're using the correct quote type (JSON5 allows two quote types).
  • Improved matrix to quaternion code.
  • In FXVariantMap, space reserved for 32-bit machines was updated.
  • FXVariant now has some API's to remove item from map (if map type), or array (if array type).
  • Allow for a few more items in Adie's window list and recent file list.
  • Minor updates to Adie man page for new commands format.
  • Adie FindInFiles now remembers previous search directory when scrolling back to prior search commands.
  • Can start Adie with given window size now.
  • Slightly simpler syntax is possible to open file onto given line number (and column).
  • Allow ascii mode when reading registry on Windows; is command line parameter in FXApp.
  • Silenced numerous warnings introduced enabling new compiler flags.
  • Small layout problem fixed in PathFinder.
  • Updated VC++ Studio project files: 64-bit build now default..
  • Some bug fixes in fxendian bit manipulation APIs.
  • API added to find system directory.
  • Also __snprintf() and __vsnprintf() now handle denormal floats even when library was compiled for release (with FTZ/DAZ).
  • Bug fixes in FXText.
  • Minor warning fixes.
  • More user-friendly type-names in FXVariant.
  • Fixes in FXReadWriteLock for MacOS.
  • Calling adopt() on FXSettings sets both instances to modified, as it should have.
  • FXColorDialog remembers its size from last time it was used.
  • FXFileSelector/FXFileDialog change: in SELECTFILE_MULTIPLE and SELECTFILE_MULTIPLE_ALL more user-friendly encoding of multiple filenames in text box using commas ','.
  • Adie editor Find In Files remembers search-folder as well as previous search-parameters in search-history scrollback.
  • Launching Adie with not just file, but optionally line and column number as well. Handy for compiler warnings.
  • Also, can pass geometry specification on command-line to bring up Adie with given window size and location.
  • FOX applications can now load registry settings from text file on windows, thanks to new command-option parsed by FXApp.
  • Use some intrinsic x86-64 (or x86) instructions for bit-manipulations where possible.
  • Backward scanning UTF8 API, plus many other UTF8 APIs now inlined; some macroes replaced by inlines.

v1.7.79

02 Nov 23:38
Compare
Choose a tag to compare

Changes

  • FXJSON parser fix identifier recognition issue.
  • Added Adie syntax colorizer for data tables.
  • New rule type in Adie syntax colorizer: span rule.
  • Changed keywords in Adie syntax colorizer: more succint.
  • Syntax colorizer now UTF8 aware.
  • Some speed-ups in FXRex.
  • Adie syntax patterns for C++ have been sped up with use of possessive match where possible.
  • More checks in Syntax Parser.
  • Math implementation updates: faster pow10i(), fpMantissa().
  • The function fpExponent() in Math has been fixed to return correct exponent for denormal floats.
  • Internal number formatting routine __snprintf() and __vsnprintf() bug fixes for hexadecimal float conversion.
  • Also __snprintf() and __vsnprintf() now handle denormal floats even when library was compiled for release (with FTZ/DAZ).
  • In addition __snprintf() and __vsnprintf() more spiffy formatting options for "engineering mode" with exponent mode enabled, and nice columnar formatting also supported.
  • The __snprintf() and __vsnprintf() now use substantially less stack space for conversion.
  • The __snprintf() and __vsnprintf() properly handle zero-precision case for integer conversions.

v1.7.78

24 Feb 22:11
Compare
Choose a tag to compare

Changes

  • Major rewrite of FXJSON parser. Faster, stricter, better UTF8 support.
  • Bug fixes in FXString.
  • New functions added to math APIs.
  • Minor fixes to FXPtrList.
  • Better HotKey processing in FXAccelTable.
  • Now use nullptr in lieu of NULL (C++ compiler feature).
  • Julia syntax highlighting added to Adie text editor.
  • Drop conversion check in FXJSON parser.
  • FXPath::expand() recursive environment expension [up to some limit].
  • FXCondition can use FXScopedMutex and FXReverseMutex.
  • Use of static_assert() conditional upon compiler support.
  • URL encode should also encode @ and :.
  • Off-by-one bug fix in FXText.
  • Warning fixes.

v1.7.77

23 Apr 22:45
Compare
Choose a tag to compare

Fixes

  • Subtle FXString::format() numeric rounding bugs fixed.
  • Adie text editor rare crash bug fixed.
  • FXString unicode conversion bug fixes.
  • Additional checking ensuring FXString::substitute() called properly.
  • Subtle FXString manipulation bug fixes.
  • Copyright dates bumped to 2021.

v1.7.76

09 Apr 21:11
Compare
Choose a tag to compare

Fixes

  • Add handy icon button to Adie file list widget to hide/show hidden files.
  • FXText widget parameter verification improved for content-modification APIs.
  • FXText widget block mode replace, block insert, and other block operation regressions fixed.
  • FXText widget block selection issues fixed.
  • FXRex grammar depiction fix.
  • In FXJSON parser, a single bad-utf8 prefix case label was missing.
  • Not all systems have pthread_rwlock_setkind_np(), causing compile to fail on those systems.
  • New FXASSERT_STATIC macro added; it is defined for C++ language > 2011.
  • Scoped FXReverseSpinLock class added, similar to FXReverseMutex scoped lock.
  • The unixToDos() API would potentially add a second CR if input was already DOS format; now fixed.
  • Adie text buffer loading and saving updated.
  • Adie extract range selection to file, and extract block selection to file option added.
  • Adie replace text range from file, or replace text block from file option added.
  • FXString::length() now returns boolean instead of throwing exception when out of space; internals of FXString somewhat fortified against low-memory situations (you're unlikely to run into memory issues on FXString on modern machines, unless you're dealing with truly gigantic strings).
  • A number of places are now defining specific trace topics using the new topic-tracing implementation.

v1.7.75

27 Mar 00:05
398c51f
Compare
Choose a tag to compare

FOX Toolkit 1.7.75

v1.6.57

21 Mar 16:24
Compare
Choose a tag to compare
Fix invocation of reswrap

While here, also remove icons.cpp and icons.h