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. | +----------------------------------------------------------------------------+ |