librnd 2.3.1 (r32522)
~~~~~~~~~~~~~~~~~~~~~
	[build]
		-Fix: scconfig template include path for compiling dynamic link plugins
		-Fix: don't uninstall core/config.h twice
		-Fix: make clean should remove locally installed pup files
		-Fix: make clean and distclean shall remove generated files
		-Fix: make distclean should remove src/plugins/
		-Fix: make clean should recurse to genht because of version.h
		-Fix: make -ldl optional, some systems (e.g. windows) don't have it
		-Fix: set the default value of disable_so to false so the variable always exists
		-Fix: hidlib plugins with internal menu file need a different path reference for building the file
		-Fix: gen_conf.sh shouldn't try to keep all html files open for the whole time of generating them - some systems will have a lower limit on open fds
		-Fix: wrong order of args in svn:externals
		-Fix: wrong include path for the main config.h with installation paths
		-Fix: don't install non-existing (pcb-rnd) utils
		-Fix: make libporty_net optional as some old systems won't have FIONBIO
		-Fix: run ranlib on the static .a files
		-Fix: use the same ldflags for all 3 .so files
		-Cleanup: remove libuundo from src_3rd: not used directly in librnd
		-Cleanup: rename and fix up path of installation prefix and lib/share dirs (decoupling them from pcb-rnd)
		-Change: plugin search path should always include librnd install dir - any ringdove app will load HIDs from there
		-Change: better handling of missing dynamic linking; explicit disbale also disable puplug -ldl detection
		-Change: compile ureglex plugins with shared common exec
		-Add: compile and install sphash - the build infra provided by librnd depends on it
		-Add: --disable-so ./configure option - especially for windows, where .dll is not comparable to .so, and the cross-compilatio uses static linking with librnd anyway
		-Add: hidlib install plugins
		-Add: require fungw pup installation path to present (required for proper script plugin loading in case of system installed fungw)
		-Add: print TODO messages only in debug compilation
		-Tune: skip a level of unnecessary indirection when compiling host puplug

	[core]
		-Fix: hid uninit sequence: keep hid structs until after pup unload so plugin uninit cals won't address into already free'd memory
		-Fix: do not attempt to load plugins from installation libdir if installation path is not available compile time (e.g. on windows)
		-Fix: do not register empty path in puplug plugin search path
		-Fix: rnd_printf() on %mw shouldn't read an extra coord before fgw_arg
		-Fix: do not include non-standard <memory.h>
		-Fix: rnd_setenv() implementation in case of only putenv is available caches all the sets and makes sure each variable is stored in memory only once
		-Del: do not auto-load all fungw scripting engine plugins - the script plugin will pick the ones needed
		-Cleanup: remove useless comment
		-Add: HID API: option to initialize export option values and load those with the command line args, instead of overwriting the default value
		-Add: HID API: extended export plugin options registration that remembers the hid so that the command line arg parser uses the right backup memory per HID
		-Add: init stage 3: automatically load all plugins from all plugin directories available (optional)
		-Add: add fungw pupdir to the pup search path so scripting plugins can be loaded

	[DAD]
		-Fix: spinboxes respect min/max values set by the DAD macros

	[doc]
		-Cleanup: remove pcb-rnd leftover from doc installation

	[HID]
		-Add: editor/cross_grid setting to draw 3x3 pixel crosses instead if single pixels for the grid (accessibility)
		-Add: cross_grid option in gl local grid

	[hid_gtk2_gl]
		-Fix: skip color setting only if xor mode also matches - fixes subc bbox blinks on editopoint highlight

	[lib_gtk_common]
		-Fix: zoom-win call updates gtk scales so the view doesn't jump away e.g. in the first zoom after a zoom extent

	[lib_hid_common]
		-Add: action API for toolbar init so lib_hid_common doesn't need to be static linked
		-Add: rnd_zoom() action to expose the internal zoom mechanism - so that ringdove apps don't need to link lib_hid_common directly
		-Add: publish window placement save utility functions that are used by pcb-rnd preferences window

	[libporty_net]
		-Fix: try a differen AIX <string.h> workaround to avoid warnings on Linux
		-Cleanup: comment out #warnings, they are not portable
		-Workaround: AIX select problem

	[libuirc]
		-Fix: pick up actual nickname from the server from the 001 message (this may be different from the nick we wanted to set, due to nick name length constraints)

	[poly]
		-Change: increase rtree stack max size for real complex polygons

	[script]
		-Change: move the plugin to librnd so other ringdove apps have the same scripting (moved at pcb-rnd r33401)
		-Fix: remove local engine name guessing, search fungw engines to figure
		-Fix: language listing: strip whitespace from language name
		-Fix: script load logic depends on the ext/lang/eng cache instead of all plugins already loaded
		-Fix: load fungw language binding plugin from the dir fungw got installed to
		-Fix: live scripting language listing works from only fungw pup install dir
		-Fix: live scripting: get language list from the $script-ext field of the pup files, not from the $desc (as the desription is not intended to be parsed)
		-Fix: pass proper hidlib context to live_run() so that script reload from the GUI doesn't crash
		-Fix: use librnd's globalconst instead of pcb-rnd's so the plugin can be moved to librnd later
		-Del: pcb_script_pup_paths - librnd places fungw pup install dir on search path
		-Del: remove local pup map/parse function from live_script, use puplug's
		-Cleanup: c "scripting" API decoupled from pcb symbolism (while keeping backward compatibility for now)
		-Cleanup: namespace: switch from pcb_ to rnd_ where possible, to prepare the transition from pcb-rnd to librnd
		-Cleanup: const correctness
		-Cleanup: publish guess_lang(), it's used from multiple parts of the code
		-Cleanup: use the right vector type for the engine cache
		-Cleanup: remove unused var
		-Update: fungw API change on pup_list_parse_pups() callbacks
		-Split: undo calls (used in live script) to a separate glue .c so it will be easier to replace them with action calls plus it will show what actions the host app needs to deliver
		-Change: use pup's readdir calls in the language map code as it would be moved to puplug
		-Add: when language is unspecified for a script, use fungw engine based guessing
		-Add: determine default script file name extension by calling the fungw engine for the currently selected language
		-Add: debug action for printing the language list
		-Add: guess_lang: parse pup files for the $script-ext lines and prepare for building hashes of those
		-Add: guess_lang uses the extension/language/engine cache built from the pup files
		-Add: pass on hidlib to script to more calls, especially script loading calls, in preparation of setting "script user call context" during script initialization
		-Add: set up "script user call context" during script load/initialization so the action calls made by the script have the right context
		-Add: use the action API for arranging undo with the host app instead of hardwiring pcb-rnd undo calls
		-Add: more details on script parse failure (which fungw plugin reported the problem)
		-Add: corner case: if a lang name is really a fungw engine name (without the fungw_ prefix), accept that too (for cli)
		-Add: live scripting: list language aliases too, so bash is found for cli

	[tests]
		-Fix: librnd make clean removes all empty dirs and temp fiels generated
		-Cleanup: rename pcb-printf/ to rnd_printf/ because that's the name of the call and the API we are testing
		-Update: pcb-printf test should link the whole lib instead of cherry picking objects

	[ureglex]
		-Import: exec part of r267
		-Add: README with the original url and mention of public domain


librnd 2.3.0 (r32453)
~~~~~~~~~~~~~~~~~~~~~

	[build]
		-Del: tests left over from pcb-rnd
		-Del: remove pcb-rnd leftovers from Makefiles
		-Move: scconfig lib from scconfig/ to src/ so it is part of the single install subtree for reuse by apps
		-Move: gen_conf.sh to scconfig (with installation) so apps can reuse it
		-Move: scconfig templates from scconfig to src/scconfig as it's becoming installable for apps to reuse
		-Cleanup: detach building the plugins from $(PLUDGID) so the temporary in-pcb-rnd build still works
		-Cleanup: move src_plugins to src/plugins for easier svn externs and consistency with the installation later
		-Cleanup: plugin headers should be #included as <plugins/*.h> for portabilirty
		-Fix: make sure make dep generates the dependencies with full relative path (requires an extra step of 'sed' to work around gcc's shortcomings)
		-Fix: broken installation of buildin.hidlib.h
		-Fix: missing dependency on test-rnd executable to buildin.hidlib.h
		-Fix: use the same path notation for buildin.hidlib.h dep as for the build rule
		-Fix: mark all plugins part of $hidlib
		-Change: install doc and data in /librnd, not in /pcb-rnd
		-Add: #define LIBRND_ROOT so configure compiles
		-Add: install minimal libfungw headers and genht headers (apps will need these)
		-Add: make map_plugins.sh more generic so ringdove apps can reuse it without having to copy it
		-Add: install map_plugins.sh so apps don't need to copy it
		-Add: temporary branch in the internal conf generator template for pcb-rnd, as long as it needs to compile librnd locally
		-Add: set librnd plugin root from the Makefile so plugins are found

	[core]
		-Cleanup: dedoxygen comments
		-Cleanup: code formatting
		-Del: RND_BOX_ROTATE_CW() - no user
		-Del: box direction flags and macros - required by pcb-rnd autorouter only
		-Del: pcb-rnd related docs
		-Del: rnd_r_end() - useless dummy
		-Del: remove vcs comment mentioning multiple crosshair shapes from the copyright banner - that piece of code got removed
		-Fix: RND_ACT_CALL_C() needs to get hidlib as first argument and set up the call properly because action code depend on the hidlib context pointer
		-Fix: can't pass function pointer in low level C action call because there's no place the temporary func wrapper could be allocated
		-Fix: indicate error on action not found in parse action also in the case of action with arguments
		-Fix: str2coord for action arg conversion: do not crash on empty coord
		-Fix: don't crash if menu file did not parse
		-Fix: hid uninit sequence: keep hid structs until after pup unload so plugin uninit cals won't address into already free'd memory
		-Fix: don't crash if rnd_tool_get() is called before tool init
		-Fix: DAD: coord spin: accept 0.00 as legal value even without unit (special case)
		-Add: global var indicating if librnd is running the main loop
		-Add: generate an event when main loop state changes
		-Add: rnd_printf %mw prints an fgw_arg_t; prints coord with units
		-Add: MenuDebug() action with a command to save the menu
		-Add: MenuDebug(force-enable) for menu debugging with the batch HID

	[hid_gtk2_gdk]
		-Fix: limit poly draw coords to 32767, gdk seems to misbehave with larger coordinates

	[loghid]
		-Fix: mark plugin a hidlib plugin
		-Fix: preserve override_render bit after setting up the delegation
		-Add: set HID bit 'override render' to capture rendering calls
