You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(15) |
Jun
(9) |
Jul
(6) |
Aug
(6) |
Sep
(4) |
Oct
(16) |
Nov
(11) |
Dec
(4) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(9) |
Feb
(19) |
Mar
(17) |
Apr
(8) |
May
(8) |
Jun
(9) |
Jul
(6) |
Aug
(13) |
Sep
(6) |
Oct
(11) |
Nov
(8) |
Dec
(8) |
2002 |
Jan
(16) |
Feb
(9) |
Mar
(22) |
Apr
(15) |
May
(7) |
Jun
(3) |
Jul
(5) |
Aug
(9) |
Sep
(2) |
Oct
(11) |
Nov
(5) |
Dec
(2) |
2003 |
Jan
(7) |
Feb
(7) |
Mar
(4) |
Apr
(7) |
May
(4) |
Jun
(9) |
Jul
(5) |
Aug
(5) |
Sep
(4) |
Oct
(6) |
Nov
(6) |
Dec
(4) |
2004 |
Jan
(7) |
Feb
(5) |
Mar
(7) |
Apr
(3) |
May
(4) |
Jun
(6) |
Jul
(2) |
Aug
(3) |
Sep
(5) |
Oct
(5) |
Nov
(3) |
Dec
(5) |
2005 |
Jan
(6) |
Feb
(10) |
Mar
(10) |
Apr
(2) |
May
(1) |
Jun
(4) |
Jul
(2) |
Aug
(3) |
Sep
(4) |
Oct
(2) |
Nov
(3) |
Dec
(2) |
2006 |
Jan
(3) |
Feb
(2) |
Mar
(1) |
Apr
(6) |
May
(5) |
Jun
(1) |
Jul
(4) |
Aug
(1) |
Sep
(1) |
Oct
(3) |
Nov
(2) |
Dec
(2) |
2007 |
Jan
(1) |
Feb
(1) |
Mar
(6) |
Apr
(5) |
May
|
Jun
(1) |
Jul
(1) |
Aug
(2) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2008 |
Jan
(2) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
(2) |
Aug
|
Sep
(2) |
Oct
(3) |
Nov
(1) |
Dec
|
2009 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(1) |
Nov
(2) |
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(1) |
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2016 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2021 |
Jan
|
Feb
|
Mar
(1) |
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Jeroen v. d. Z. <je...@fo...> - 2024-08-16 04:43:34
|
FOX DEVELOPMENT 1.7.85 New PNG image support. First, its faster! Also, it no longer requires libpng; the PNG format support is now built-in, although the libz compression library is still required [for now...]. fxsavePNG() supports some fine-control via new save-flags. You can analyze the image, and shrink output by taking advantage of image features; for example, saving opaque image means alpha-channel may be dropped. If the image is gray-levels only, the RGB may be dropped to plain gray only. Also, shrinking further by emitting colormapped [indexed-color] image is possible if only a few colors are used. Finally, pre-compression filtering, as well as desired compression level can be selected. PNG I/O is optimized with when target ISA x86-64-v2 or higher are selected. FXStat::isSame() checks if two files are the same (same inode). FOX Desktop Calculator augmented with Unicode button labels (please select a font that has the math symbols!), also now supports additional functions, common physics constants, and other features. The fxCPUFeatures now can detect AVX512 presence. New FXPerformanceCounter and associated macros may be used to count clockcyles of critical code segments. FXAtomic.h APIs now mostly inlined for lower overhead. Read processor ticks on AARCH64. Adie text editor undo buffer size and undo buffer items can now be configured. New QOIF (Quite OK Image Format) now supported for either images (FXQOIFImage) or icons (FXQOIFIcon). FXColor to/from FXVec3d, FXVec3f, FXVec4d, FXVec4f now using SSE if compiled for x86-64-v2 or higher. Updated byte swap APIs in fxendian.h. New APIs in FXMat3f, FXMat3d, etc. classes to set up mirror-matrix. Moved new hash32() etc. functions into fxendian.h. Bug fix in FXIODevice reading > 1GB files in one readBlock(), writeBlock() call. Markdown syntax coloring in Adie. Per-syntax mode setting for removing trailing spaces in Adie saving a text file. Subtle change in operation of FXPath::relative(). Support for CRC32 calculations added. Additional conversion options in FXString::fromFloat() and FXString::fromDouble(): thousands groupings, force decimal point, and hexadecimal float output. FXJSON JSON loader now may report duplicate key warning reading json file. FXMappedFile improvements. FXString uncode escapes bug fix. Cheers, -- JVZ |
From: Jeroen v. d. Z. <je...@fo...> - 2023-06-14 05:07:34
|
New in this release: 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. Enjoy, -- JVZ |
From: Jeroen v. d. Z. <je...@fo...> - 2022-10-11 05:17:57
|
October 10 - FOX DEVELOPMENT 1.7.80 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. Enjoy, and please send feedback! -- JVZ -- +----------------------------------------------------------------------------+ | Copyright (C) 00:10 10/11/2022 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2022-02-16 03:42:29
|
Its been a while [reasons!] but here it is: February 15 - FOX DEVELOPMENT 1.7.78 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. As always, enjoy! -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 21:41 02/15/2022 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2021-04-21 01:00:28
|
A quick turnaround for some fixes for annoying bugs discovered recently. 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. Most of these things are quite subtle; please give feedback if you run into anything else! -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 13:30 03/25/2021 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2021-04-02 01:11:29
|
April 1 - FOX DEVELOPMENT 1.7.76 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. Enjoy! -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 13:30 03/25/2021 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2021-03-02 14:50:15
|
New in this release: FXSystem::getUserDirectory() had bug on Windows with non-unicode build. Configure scripts allows specification of freetype2 install locations. Adie rules for C# language updated with current set of keywords. Added TypeScript coloring rules to Adie syntax file. FXDir::createDirectories() now insists on absolute path as input. FXPath::upLevel() now works for relative paths as well. FXPath::enquote() bug fix: enquoting string containing '#' was flawed. Building using VC++ now keys on DEBUG not _DEBUG. Adie syntax rule fix for CMake. Some small fixes to FXPath::simplify() for path separators. Set DPI Awareness upon launch on Windows. Dropped unnecessary asserts in FXCursor (Windows). Updated FXTRACE() implementation. Trace topics in addition to levels. You can change the set of topics to trace using new -tracetopics command line parameter. The old -tracelevel is still there, it sets a range of topics. New APIs are added to set topics programmatically: setTraceTopic(), setTraceLevel(), setTraceTopics(). The trace topics allow dumping reduced amounts of information when debugging a particular aspect of your program. Removed fxstrhash() in favor of FXString::hash(). Support convert to/from Modified Rodrigues Parameter in quaternion classes. Orthogonalize 2x2, 3x3, 4x4 matrices using Gram-Schmidt orthogonalization added. Some further work in FXReactor, FXDispatcher. Fix address sanitizer issues in FXDictionary, FXHash, FXReverseDictionary, FXSettings, FXStringDictionary, FXVariantMap. Leaked icon resource fix in Adie, ControlPanel, PathFinder Preference panel. Fix to SUNRAS image loader loading 1-bit per pixel images. Potential NULL cursor pointer issue during create() fixed. Miscellaneous compiler warnings fixed here and there. Enjoy! -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 08:40 03/ 2/2021 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2020-07-14 19:58:02
|
New for today: Added math function Math::pow10i(). Performs integer power of 10. NOTE: function Math::pow10() will go away as this has been deprecated; use Math::exp10() instead! String to double conversion routines accuracy improvement fix implemented; approximately 16th digit accuracy now. Added %a and %A handling in fxscanf.cpp. Hex float support parsing to be switched in soon; not yet 100% working at this time. When parsing exponent-part of floating point number fails, properly rewind input to the part before it; this will leave the rest of the string for another conversion specifier if there is one. When parsing number-separator, don't allow consecutive number separators. Future implementations may be more strict still. FXThread thread naming update for MacOSX and other operating systems. The math.cpp test program now implements testing functions when they are missing from the operating system. Cheers, -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 14:50 07/14/2020 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2020-06-28 22:06:10
|
June 28 - FOX DEVELOPMENT 1.7.70 - Changed order of paramter in FXSystem::systemTimeParse(); new order allows default parameter for time parsing format, "%m/%d/%Y %H:%M:%S", which is very convenient . - Added localTimeZoneName() API. - Changed parameter order and implementation of universalTime() and localTime(); the new order now allows default parameter ("%m/%d/%Y %H:%M:%S") for time formatting and parsing. New implementation using recently added routines also allows adjustment for time zone offset if time zone offset is parsed from time string (%Z or %z option). - FXSystem::systemTimeParse() does not initialize FXSystem::Time struct anymore; thus, should be zeroed out prior to being called. However, FXSystem::systemTimeParse() will assign as much as it can based on the time- and date-components being parsed. Also note, FXSystem::systemTimeParse() can properly parse ISO week number and day, and compute proper date from that. -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 16:40 06/28/2020 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2020-06-24 19:58:47
|
"Knee deep" in development... June 24 - FOX DEVELOPMENT 1.7.69 More FXSystem time related API changes. FXString 16-bit character conversion fix. Military time zone parse. FXFileSelector onCmdDirectoryUp() selects directory we were in before, for quick downward navigation. FXFileList sets both current and anchor item when entering directory. The fxprintf.cpp used in string formatting now supports %a and %A for floating point printout. Enjoy, -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 14:30 06/24/2020 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2020-04-29 20:04:59
|
New version released today, A long list of things that have been building up over the last few months, and should probably have been made available earlier. Here it goes: - Added FXSystem::Time struct, system-independent time in parts. This comes with (at the moment) two routines, FXSystem::systemTimeFromTime() which converts FXTime to FXSystem::Time, and FXSystem::timeFromSystemTime() which converts time in parts to FXTime (in nanoseconds). - New routine FXSystem::systemTimeFormat() formats FXSystem::Time to a string, similar to strftime(), with a few extensions. - New routine FXSystem::systemTimeParse() parses FXSystem::Time from a string, similar to strptime(), with a few (more) extensions. - New routine FXSystem::daysFromCivil() converts year, month, day to days since Unix Epoch in days. - New routine FXSystem::civilFromDays() converts Unix Epoch in days to year, month, day. - New routine FXSystem::timeFromNTPTime() Converts NTP time (64-bit ssss:ffff) to FXTime, nanoseconds since Unix Epoch). - New routine FXSystem::ntpTimeFromTime() Converts FXTime time to NTP time (64-bit ssss:ffff). - New routine FXSystem::leapSeconds() returns number of leap seconds since FXTime. It can be used to compute UT1 time (plus or minus fraction of a second). - The sysctl.h is now obsolete on Linux [still checked as not obsolete on *BSD]. - Blending on in FXGLShape. - WM_ERASEBKGND message handler (on Windows) should return 1. - Small default width/height size calculation bug in FXTable fixed. - Some fixes in FXMat3d, FXMat3f with some SSE/AVX code. - Additional routines in fxendian.h: pop64(), pop32(). - New routines in FXElement. - Some more missing math functions added in fxmath.h. - Fix in FXDate for pre-1970 time values (rounding wrong way). - FXTRACE in FXMetaClass constructors/destructors. - Some progress on new FXEventLoop/FXDispatcher/FXReactor classes. - FXThread naming. - Initialize FXQuatf/FXQuatd with Rodrigues angles, other APIs for Rodrigues angles added. - FXJSON parser exponent parsing bug fix. - FXCallback bug fixes. - FXText bug fixes/improvements. Enjoy, and please give feedback about problems, -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 15:00 04/29/2020 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2019-05-04 03:49:07
|
New development release out today! FXJSON now has JSON5 JSON5 support; line-comments, multi-line comments, unquoted key names, etc. Experimental block-selection in FXText widget. Fixed fxscanf.cpp to be able to read NaN and Infinity/Inf. Fixed strtod() to recognize Infinity. The escape() of empty string returns "", not empty string. The unescape() supports line-continuations. Additions to Math namespace. Additions to FXQuatd and FXQuatf. Some missing functions added to FXExpression. FXPath::convert() transforms foreign operating system-style paths to local conventions (path separator, path list separator, environment variable syntax). Improved FXPath::expand(). FXThread::wakeat() now using absolute time on Windows (using undocumented API). FXReverseDictionary class added. FXDirWatch class added. Lots of new goodies, so Enjoy! -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 22:20 05/ 3/2019 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2017-05-18 02:07:22
|
A new development release with some bug fixes, compiler warnings, and speedups. May 17 - FOX DEVELOPMENT 1.7.60 Context back-up changed in incremental syntax recolorizer (Adie). Some typos fixed here and there. Configure script and makefile updates. Many updates being worked on inside FXText. Compiler warnings fixes for GCC 6.3.1, which seems to flag a few new things. Some FXText widget speedups. Bug fixes in FXString. Added visiting() API to FXDirVisitor. Disable and enable buttons in FindInFiles dialog in Adie editor when starting/stopping searches. Brace-matching change: matching brace can now stay visible as long as cursor on a brace (if enabled). Enabling permanent highlighting also makes the match search outside of the visible part of the text buffer, in case the matching brace is scrolled into view later. Thus, people with slow machines may notice brace- match could take slightly more time, when working with really large files. Enjoy!! -- JVZ -- +----------------------------------------------------------------------------+ | Copyright (C) 21:00 05/17/2017 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2017-04-14 18:50:01
|
A new release today: Changed the way bookmarks are done in Adie; you can delete them one by one. A fair number of changes and bug-fixes in FXText widget. Cursor doesn't blink during movement in FXText and FXTextField. Limit accumulation of repaint-areas yields less visible flicker in some case. Redraw of line numbers in FXText now with less flicker during resizing. Adie text editor now supports adie, emacs, and vim modeline parsing; you can set language (syntax) mode, tab width, wrapping, and a few other things. Dropped jump-scroll mode support in Adie: never used by anyone. Some extra options added to Adie Preferences Dialog. Syntax file for Adie can now force hard-tabs, autoindent, and other attributes. This means editing 'Makefile' will automatically switch hard-tabs on!!. Adie on-line help updated with description of syntax for 'Adie.stx' syntax description file. Documentation in FXAccelTable.h expanded to include syntax for accelerator keys. Option for brace-matching added to FXText. Also, added option to keep brace highlighted forever, or until cursor moves or a selection is made. Show 'indeterminate' state for checkbuttons in Preferences panel, if default settings for tab-mode, wrap-mode, auto-indent have been superceeded by attributes from the syntax-file or a parsed modeline. Added 'SaveTo' option in File Menu of Adie text editor. Enjoy! -- JVZ |
From: JVZ <je...@fo...> - 2017-03-14 04:50:50
|
A new development drop has been released, many changes to file dialog widgets, predominantly; here's a list: Adie improvement: don't clear bookmark selecting it 2nd time; now, remove bookmark by invoking "Delete Bookmark" with the cursor on the bookmark to be deleted. Bookmarks now at start of line; thus, only one per line. Use __buildin_bswapXX() only for GCC 4.8 and newer; older versions buggy, apparently. Added SaveTo option in Adie text editor. FXText and FXTextField cursor blink fix; don't blink while moving (so user doesn't lose track of where it is!). When multi-file mode in FXFileSelector, enquote files only when needed; and escape quotes and backslashes if they appear. FXFileSelector now returns filenames as typed into the box in all modes, including multi-file mode. Now allow relative search paths in Adie file search paths. This means you can list places to look for files in your project directory subtree, regardless of where the project subtree is referenced from; for example, "../include:../lib" will let you open a file from "../include" when you're in "lib", and vice-versa. FXFileList properly hops back to original directory when dragging over directories. Major speedup in FXIconList lasso-selection mode. Much, much faster when lassoing items in very large folders. FXFileSelector's getFilename() returns first of many, if box contains multiple names. FXFileSelector scans for first non-wildcard extension when substituting extensions when filter is changed. FXTreeList and FXFoldingList should issue SEL_EXPANDED message as side effect of makeItemVisible expanding a subtree. Missing setPattern(), getPattern() API's added for FXDirDialog and FXDirSelector. Added syntax pattern for hexadecimal floating point numbers. Please, if you encounter any issues, let us know! -- JVZ |
From: JVZ <je...@fo...> - 2016-12-03 17:34:05
|
A new update ((yes, it was too long!) has been dropped; a short list of the updates: Use _InterlockedExchange() in FXSpinLock instead of non-inlined version. Emulation code added for atomicBoolDCas(() if no built-in version available. Some bug fixes in FXXML parser. Check for decode error in XML parser. Encode non-ascii string in FXURL. Return original user-data pointer in addTimeout() and addDeadline(), addChore(), and removeChore(). This allows one to delete user-objects that may be referenced by those callbacks. Added non-wrap mode as output format in reswrap. Split off OpenGL objects from FOX library placed into separate glviewer subdirectory. Use nanosecond-accurate stat() output, if available, in FXStat. In FXText and FXTextField, can now use wide-character delimiters. Only escape left and right quotes in FXString escape() if non-zero. Fixed a problem in FXSpinner and FXRealSpinner. Factory function on abstract classes (FXIMPLEMENT_ABSTRACT) now yields NULL object instead of cratering program. FXApp runWhileEvents(() blocks for just a little bit, allowing for roundtrip in case last commands caused events. Removed FXFile::rename() and FXDir::rename() in favor of FXFile::move(). Some improvements to PathFinder file manager. Disallow assignment to FXObjectListOf and FXPtrListOf from rvalues not type-compatible with lvalue. Added peek() API to FXPtrQueue. Namespace prefix needed in FXIMPLEMENT_ABSTRACT macro. In FXDirVisitor, check both file index (inode number) and volume id, as file indexes may be same on different volumes. In FXDirVisitor, drastically reduce number of system-calls by passing FXStat results when recursing. Fixes to selection-tracking variables in PathFinder. Improvements in fxscanf.cpp scanning digit groupings; not perfect yet however. Added API in FXDirVisitor to allow access to FXStat result while in callback; this can further reduce system calls. Some corner cases in FXPath::absolute() fixed. Bug fixes in FXFile::copy(). Updates to Adie.stx default language syntax file. Compiler warning fixes. Enjoy! -- JVZ |
From: JVZ <je...@fo...> - 2016-05-24 02:23:17
|
A number of small items were reported, and have been fixed in this release: - Removed quoted string length limitation in XML parser. - Removed comment length limitation in XMP parser. - Pass all text of processing instruction in one single callback from XML parser. - XML declaration now only recognized if followed by whitespace. - Updated Visual Studio 2008 project files to add enable intrinsics flags. This was causing problems compiling FXAtomic file. - In FXAtomic, favor inlined x86 or x86-64 assembly over GCC builtins, due to spotty implementation of these primitives. - Quoted string in XML could have newlines or blanks; adjusted parsing routine to not lose track of line and column numbers while parsing over strings. Enjoy! -- JVZ |
From: JVZ <je...@fo...> - 2016-05-20 18:40:41
|
New in this release: Added XML Parser capability. This is a SAX parser, which generates callbacks for each XML element encountered. There are two new classes, FXXML which is the core parser class, and FXXMLFile which parses files or inputs from devices. The FXXML class may also be used to parse from memory buffers. FXWSQueue implements a work-stealing queue. A Work-Stealing queue supports a single thread adding or removing jobs from the front end, and multiple threads removing jobs from the backend. PathFinder now has new ways to select files quickly: by means of wild-card patterns. The new selection method is based on the list of file-patterns available from the normal filter drop-down box (which may be configured from the Settings Panel). It can be invoked from Edit/Select Files menu. New fxmath function fclamp() added; usually, this is implemented in terms of fmax() and fmin() which are branch-free on many machines. Using new Math functions in most places inside library itself. Added line to box (2D) functions to FXExtent. FXText shows block-cursor when in overstrike mode. Fix in case clearElms() is used with volatile pointers. More work done on FXDispatcher. Dont add accelerators for strings on Bookmarks menu in Adie editor. Escape & in FXRecentFiles to avoid accidentally installing accelerator. Fix index type in FXGLObject. Added new classes for generic callback infrastructure, FXCallback. To support older compilers, the current implementation does not yet use varyadic templates (maybe at some future time, it will). The new FXCallback mechanisms are already in use in FXXML and will soon be used in FXDispacher as well. Some bug fixes in FXJSON. Missing va_end() fixed in fxprintf() and fxcanf(). Not serious on most compilers, however. Updated syntax patterns for Adie editor. In fxscanf(), a %n does NOT increase return count. Thousands grouping in fxprintf(). FXVariant (and other collection classes) indexed with FXival instead of FXint. Allowing for 64-bit very large data structures. More convenience APIs added to FXVariant. FXVec4d and FXVec4f: lerp in two fma's when compiled with AVX2 and FMA (nice trick!). Rare out-of-bounds memory read fixed in FXText. Renamed clashing math functions in fxmath.h; isnan(), etc. renamed to fpNan(), etc. Problem was these functions were sometimes macros on some operating systems; new ones are good C++ inside Math namespace. No other clashes have been reported so far. When going up one directory-level in PathFinder, select recent directory. Thus, keyboard directory navigation is greatly improved. File Dialog widgets also improved as above. This is a major keyboard navigation improvement. Added memory fence APIs to FXAtomic. Needed for lock-free programming paradigms. Byte swap stuff in fxendian.h. Enjoy! And please give feedback on any problems you may encounter in this code; Cheers, -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 13:30 05/20/2016 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2016-01-07 02:03:10
|
January 6 - FOX DEVELOPMENT 1.7.54 New namespace Math collects most math library calls in C++ namespace; also on Windows, implements missing math functions where needed. This includes single-precision math functions, and thus old macros for these have been removed. Help-file in Adie now regenerated during build from plain-text source. Block-cursor in FXText when in overstrike mode. Join-lines operation added to Adie. Removed deprecated API's from FXComplexd and FXComplexf. Updated VC++ project files. Handle NaN and Inf on floating point string input (fxstrtod). FXPath::isHidden() should work on Windows. Warnings in fxstrtoll() and fxstrtoull() fixed. Added at() API's to FXVariant, like FXDictionary and FXArray have (syntactical convenience). Use FXival for FXVariant which allows large sizes on 64-bit machines. Enjoy, & Happy 2016!! -- JVZ |
From: JVZ <je...@fo...> - 2015-11-25 05:39:20
|
Today a new version is available: FXFontDialog initialized to sensible size when first-ran. FXPath::match() algorithm major correctness improvements for nested patterns, and better error detection for broken patterns. Fixed some layout issues in PathFinder when choosing large fonts, menubar icons were not centered vertically. Dialog to search files for regular expression in Adie now fully functional. Invalidated bookmark locations could cause trouble when bookmark menu popped up; now fixed. Some functions refactored in Adie. Minor problem in groupbox example application fixed. Added facility to change scroll bar width in ControlPanel. Added checkbutton to search only for first occurrence of pattern in file in FindInFiles dialog. Pass base directory of search to FindInFiles visitor so we can relativize paths to it when recording search matches. Zero array in FXIcon to shut up valgrind. FXComplexf and FXComplexd APIs more compatible to standard C++ library: added norm(), abs(), arg(), exp(), log(), and conj(). The old names conjugate(), logarithm() and exponent() will probably be deprecated. Some improvements to Adie's incremental search capability. FXDirVisitor recursion limit added. FXDirVisitor now has skip as well as early-out return mode. Included paper reference motivating FXRandom shift-xor counts changes. Change file mode improvement in PathFinder. FXPath::isValidPath() API added. Some fixes to PathFinder directory handling. Expand environment variables when switching directories in PathFinder. Some compiler warnings fixed. FXThread priority issue fixed. FXSettings parser issues fixed. Incremental search history now being saved in Adie. Backward search issue fixed in Adie. Search and Replace Dialog fixes. Enjoy, feedback welcome! -- JVZ -- +----------------------------------------------------------------------------+ | Copyright (C) 23:30 11/24/2015 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2015-07-01 16:04:20
|
New in this release: Squeeze out useless instruction from fxgetticks(). Add adopt() of FXVariantArray API to FXVariant. Fixes in Adie syntax parser. Problem in FXIODevice fixed. CMYK color conversion in JPEG image support fixed. Improved FXRandom implementation. Escape key to close dialogs now handled via FXAccelTable instead of hard-wired. FXReplaceDialog search history implementation improvement. Improvements to FXDirVisitor, and added early-out option. Fix Adie text editor core-dumping issue with backward searches. FXPath::match implementation improvements; more to come. and more... Enjoy! -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 11:00 07/ 1/2015 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2015-03-15 16:10:51
|
New in today's drop: Syntax-colors in Adie can now be language-specific. Language families like C/C++/C#/Java share common syntax-colors. Syntax-colors in Adie now have initial (default) foreground color value in Adie.stx file. End-user can change, however. Fixed syntax-file parser in Adie: token hash incorrectly calculated. Fixed uninitialized value issue in FXFileSelector, flagged by Valgrind. Use thread-safe time functions on Windows, when available. Fixed potential endless loop in FXText::findText(). Some fixes for VS2008. Removed deprecated FXMutexLock in favor of FXScopedMutex. Many standard clipboard types pre-registered now. Charset conversions moved into FXWindow getDNDData(), setDNDData(). UTF8, UTF16, and ASCII support, for FXString. Off-by-one error fixed in fxscanf() when scanning character-sets. Template FXHashOf added. New class FXDispatcher being implemented (experimental). Insertion of command output into Adie text buffer is now undo-able. Log-window added to Adie; pops up when executing command outputs to stderr. Implement Larsson, Moeller, Lengyel sphere-box overlap algorithm; use branch-free fmax, fmin, fmaxf, fminf where possible. Fix warning in fxendian.h. Added encode/decode URL feature to Adie. Equality operator in FXVariant has been removed. Inherit handle option works on Windows. Added return codes to FXIO, FXIODevice. Added setMode() API to FXIO, FXIODevice. Early-out in dictionary classes. Improved speed of failed search in dictionary classes. Better docs on FXExpression. Execute shell commands feature added to Adie. Scrolling Syntax menu in Adie; list of supported languages getting too big. Added some protection to FXMessageChannel. Enjoy! -- JVZ |
From: JVZ <je...@fo...> - 2014-11-11 01:07:00
|
November 10 - FOX DEVELOPMENT 1.7.50 Major changes in the regular expression engine. New API amatch() for anchored match, and new API search which replaces match(). More sensible parameter order and moved some flags from run-time to compile time. Internals of FXRex are now ready for UTF8 matching; however parsing part will need to follow before these new capabilities can be put to use. FXRex::substitute() now interprets the usual escape sequences when creating replacement pattern from regular expression match captures. Speedup in FXText getByte(), getChar(), etc. by introduction of branch-free handling of gapped- buffer accesses. Moved hard-wired search and replace dialogs out of FXText and into Adie text editor; this is part of the FXText widget slim-down program. Adie text editor search and replace improvements. Basically, stream-lines mouse-free usability. Adie incremental search bar now pops up at bottom of window. This is much less disruptive as text does not get "pushed down" when this toolbar pops up. The FXHash find() routine now returns the slot index, or -1 if not found. If you use FXHash you should be aware that simply replacing find() by at() will fix your code to the new system. This was done based on request from a user who noted the find() API in FXHash behaved differently from the find() in FXDictionary. Strip leading and trailing space from display in Adie's bookmark menu. Added ParallelMax constant declaration for FXParallelFor. Change to FXText findText() API. The new version can perform not only forward and backward search, but also anchored match. The anchored match is performed if neither SEARCH_FORWARD or SEARCH_BACKWARD flags are passed. Goto Line dialog moved from FXText to Adie text editor proper (also part of FXText widget slimdown program). Adie Replace Dialog now has Search button. Adie Replace Dialog Replace function now first checks if current highlighted text is the one being searched for, and only searches further if it isn't. This logic will therefore replace already highlighted selection, and make it less likely you accidentally "skip" the first item in a search-and-replace session. Also, Search and Replace dialogs stay up until explicitly closed. It was often the case that the first search is not always the desired one, and one had to bring up the dialog a second time. Note that Escape hides the dialog, so no mouse interaction is required for "Power Users". Search and Replace dialog can now replace within selected text only. Some language pattern updates in Adie syntax coloring file. CMake coloring patterns added to syntax file. New match modes added to FXRex: Exact, and NotEmpty. The Exact mode succeeds only if a successful match eats the entire string. The NotEmpty mode succeeds only if the match eats at least one character. Note these are compile time flags, and implemented through special asserts in the matching engine. Thus, the engine will potentially backtrack earlier matches to try other possibilities! Regular expression match engine speeded up by streamlining matcher-setup internally; this particularly affects search(). Fixed bug in FXHash::at(). Eliminated recursion in simple possessive match in FXRex. Added handy isNull(), isBool(), etc. APIs to FXVariant. Made selection-changing APIs virtual in FXText, for subclassing. Enjoy!! -- JVZ -- +----------------------------------------------------------------------------+ | Copyright (C) 19:00 11/10/2014 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2013-12-05 19:21:27
|
New in the "Sinterklaas Editie" FOX development release: Updated FXJSON JavaScript Object Notation I/O class:- removed limits to token size in both input and output operations (formerly limited to buffer size). Minor changes to FXVariant:- added some missing API's, removed toChar() as its useless. Added has() to determine if key is present in case FXVariant is a map. Simplified FXFile and other FXIO subclasses a bit to remove redundant implementations. Added FXIOBuffer, an FXIO device that serializes to/from a memory buffer. FXRanged, FXRangef: now check intersect() results a bit differently. Ray to FXSpheref, FXSphered intersection test changed to allow origin inside sphere possibility. Fixed small bug in wc2nc(). Possible buffer overrun in FXDir fixed. Added class FXStringMap. Changed some API's in FXDictionary. Added erase() API to allow removal of slot already located. This is faster, and needed for successful subclassing. FXStat problem fixed on Windows. Comments welcome! -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 16:10 06/28/2013 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: JVZ <je...@fo...> - 2013-10-24 21:12:54
|
October 24 - FOX DEVELOPMENT 1.7.43 Added FXJSON JavaScript Object Notation I/O class. FXJSON loads and saves JSON, and has a great number of options, extensive error reporting, and great degree of control over output. Line segment to box and line segment to sphere intersection routines added; also computes intersection point. FXString escape() and unescape() now do \uXXXX unicode escaping. Old functions for these, fromAscii() and toAscii() have been removed. The new implementation properly handles surrogate pairs. Added some API's to FXGLGroup. FXListBox current item fix. Added new functions to FXElement.h. Particularly, bulk-comparison function. Use new fxstrlcpy() and fxstrlcat() where appropriate; these will always produce null-terminated strings. Passed wrong handle for error FD in FXProcess under Windows. Fix introduced bugs in FXHash and FXDict. Some extra checks added in GIF loader header detection. Typo fix in lock-free queue class FXLFQueue. Fast accessors added to FXVariant; they can be used if type already known. Fixed minor issues with FXVariant implementation. Missing FXAPI declaration in FXArrayBase added. Added area() and volume() calculation to FXRange and FXSphere classes; added area() to FXExtent classes. Added new FXDictionary class; this will replace FXDict at some point in the future. Enjoy, -- JVZ +----------------------------------------------------------------------------+ | Copyright (C) 16:10 06/28/2013 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |