first element in the array that is matched by match(item, cdata)==True.
- added WMArrayFirst(), WMArrayLast(), WMArrayNext() and WMArrayPrevious()
functions and also WM_ITERATE_ARRAY() and WM_ETARETI_ARRAY() macros, to make
interfaces to WMBag and WMArray similar and to make life a little simpler
when iterating through all elements of an array.
- replaced bags with arrays wherever appropriate. This will improve
performance a bit.
- replaced some recursive code with iterative code in WINGs/selection.c
- some code cleanup is src/
correct switch to it, depending on the value of the DisableDithering option.
- Replaced some functions with macros in WINGs (wmkpoint(), wmksize() and
wmkrange()). They're less expensive to call this way.
- Fixed a memleak in the info panel.
WMConnection code. do call by yourself wsyserrorwithcode() passing
WCErrorCode, whenever a call don't return the expected value, and
WCErrorCode > 0. If WCErrorCode==0 that is not an system error,
condition, so don't call wsyserrorwithcode() in that case.
- added some assertions where appropriate
connection survives or not an exec* family call. By default all
connections created by WINGs, set the socket to be closed on an exec*
call. Use the function if you need the reverse.
old one (the one renamed to wstrconcat). The new wstrappend(dst, src)
will modify and return dst, without creating a new string to hold the
result, except if dst==NULL, in which case its equivalent to calling
wstrdup(src)
be sure to replace wstrappend() with wstrconcat() anywhere in your code
because a new wstrappend() function will be implemented that will have
different semantics and if your code will use the new one instead of
the old will break.
minor work and cleanup.
- made some bag and array functions to return void instead of int.
- a few new array functions.
- better handling of mouse wheel.
!!! make clean after this update before you rebuild. some enums changed.