librnd 4.2.0 (r36857) ~~~~~~~~~~~~~~~~~~~~~ [build] -Cleanup: move scconfig distclean file list into a make variable to make it easier to handle (the list is getting long) -Fix: make clean removes src/*.so.4 -Fix: make clean shall remove alternative API objs (old font and new polybool) -Fix: make distclean should remove all files generated by scconfig during ./configure, including aru, lib_hid_gl headers and poly conf -Fix: make clean removes test-rnd.o -Fix: make distrclean should remove generated conf header in polybool [core] -Add: editor.min_zoom config node to make gtk's minimum zoom coord-per-pix (max zoom level) configurable -Add: config node for unlimited pan (for osm-rnd) -Add: config node editor.hide_hid_crosshair so that the crosshair is not drawn (useful in osm-rnd) [doc] -Fix: missing conf tree doc from svn: editor/global_grid and editor/local_grid -Update: conf node list for hide_hid_crosshair -Import: support page from pcb-rnd [gtk] -Add: support for config node editor.hide_hid_crosshair [lesstif] -Add: implement unlimited pan option (for osm-rnd) -Add: support for config node editor.hide_hid_crosshair -Fix: initial view setup still executes under unlimited pan -Fix: implicit declarations [lib_exp_pixmap] -Add: pixmap object export option in the API (not yet implemented) [lib_exp_text] -Fix: memory leak on lpr options -Add: colorspace option in draw_svg (so that non-color svg can be exported) -Add: pixmap object export option in the API (not yet implemented) [lib_gtk_common] -Add: use editor.min_zoom config node to make gtk's minimum zoom coord-per-pix (max zoom level) configurable -Add: implement unlimited pan option: remove scrollbars (for osm-rnd) [lib_hid_common] -Fix: don't print log messages to the log window once the main loop has exited (the GUI is defunct already) -Fix: close the export dialog if the design is switched away; stale dialog states may cause problems [lib_hid_gl] -Fix: GLfloat related precision issues when rendering large coordinates (e.g. 64 bit coords in pcb-rnd, very large sheets of sch-rnd or pretty much anything in osm-rnd); the fix is to do the translation on CPU side with rnd_coord_t, not on GPU side with GLfloat -Fix: solder mask cover triangles should be translated on CPU side as well [polybool] -Fix: various fixes on corner cases -Add: dicer: rewrite the dicer (more efficient algroithm, new API) librnd 4.1.1 (r36382) ~~~~~~~~~~~~~~~~~~~~~ [build] -Fix: soname for polybool so [doc] -Change: use mibbit for web irc client [hid_remote] -Fix: old event name [lib_hid_common] -Fix: FSD: 'save as dialog ok button bug': if neither edit nor selection is available but the 'ok' button was clicked, do return with the file name built from entry (if that's not NULL) [polybool] -Fix: various fixes on corner cases librnd 4.1.0 (r35983) ~~~~~~~~~~~~~~~~~~~~~ [core] -Move: xform_mx from font to core - these are generic 2x matrix transformations -Add: generic temp dir create/remove (imported from sch-rnd) -Add: basename(), parent_dir_name() and relative path calculator imported from libcschem -Add: rnd_printf allows applications to override human coord conversion via an optional rnd_app hook (useful for sch-rnd so that %mH prints in k) [dad] -Add: tree widget multisel flag -Add: wrapper/helper inline rnd_dad_tree_get_selected_multi(); when HID backend doesn't implement multiple selections, it uses the single-selection API and builds a list-of-1 so the caller doesn't need to deal with this [doc] -Add: anatomy of font v2 with field names -Add: polybool: figures for documenting the self-intersection cases [font] -Import: matrix reverse transformations from camv-rnd [font2] -Add: new font engine with support for baseline, kerning, multiline text, horizontal and vertical alignment, tabs, &entity; [fsd] -Add: enum bit for multi-select [gtk] -Fix: typo: widget hide shouldn't call widget focus on composite -Add: implement widget focus hid call -Add: fill in preview expose coord-per-pix field -Add: set expose ctx coord_per_pix for main draw -Add: xflip and yflip poke calls on preview widgets -Add: make minimum zoom level configurable for the preview widget (using the widget poke API) -Add: multisel tree: enable multiple selection in gtk, return cursor as the first selection -Add: implement multi-select support for tree tables [hid] -Fix: ambigous naming of the first argument of RND_DAD_STRING_SELECT_REGION() - it's a hid_ctx, not a table -Add: rnd_hid_export_using() - direct export plugin execution (imported from sch-rnd) -Add: export action (imported from pcb-rnd) so other apps (e.g. sch-rnd) can have the same code -Add: rnd_hid_expose_ctx_t has a coord_per_pix field so that preview callbacks canfigure zoom level in a reentrant way [irc] -Fix: set focus to the input widget after connection established and input widget is enabled [lesstif] -Add: implement widget focus hid call -Add: fill in preview expose coord-per-pix field -Add: set expose ctx coord_per_pix for main draw -Add: xflip and yflip poke calls on preview widgets [lib_hid_common] -Fix: dlg_fileselect: text entered in the file name edit line always has precedence over tree selection when pressing enter or clicking "ok" -Add: generic timed change helper inlines for implementing dialog boxes (imported from sch-rnd) -Add: dlg_fileselect supports multiple path selection for read (optional) [poly] -Add: rnd_poly_from_contour_nochk(): same as rnd_poly_from_contour() but doesn't assert on invalid poly (useful if the caller is goign to clean it up or throw it away) [polybool] -Add: new API, largely compatible with the original poly API, for the new polygon library that features high precision coords and proper handling of self intersections [tests] -Workaround: printf test: linking static libs is just too advanced for OSX's linker - work it around by dropping the hid .a and manually doing the init sequence librnd 4.0.3 (r35593) ~~~~~~~~~~~~~~~~~~~~~ [core] -Fix: human coord print: if coordinate ends in .99999999 to the last digit, that means rounding error in conversion; detect and correct it -Fix: action registration: NULL pointer deref when a redundant action is refused to register [font] -Fix: memory overrun on font glyph rendering for simplepoly; verify number of points and fall back to thin draw mode if polygon is too large -Fix: off-by-one error in thin poly rendering "last point index" in simplepoly -Fix: simplepoly "numpts" is really number of coords in the array, so allow twice as many while keeping compatibility [gtk] -Fix: when closing all dialogs at quit, prepare for the case of a dialog closing subsequent dialogs automatically [lesstif] -Fix: when closing all dialogs at quit, prepare for the case of a dialog closing subsequent dialogs automatically [lib_hid_common] -Add: pressing enter on the string for conf tree value edit should accept new value and close the dialog librnd 4.0.2 (r35546) ~~~~~~~~~~~~~~~~~~~~~ [build] -Fix: use $(MAKE) instead of make from central Makefile -Fix: separate static and dynamic cflags/ldflags so that app executables compiled with a specific librnd configuration won't have stale -l's with a different librnd later [core] -Cleanup: use portable RND_INLINE instead of inline -Add: ConfGet() action to provide access to the native conf nodes for user scripts -Add: SafeFs actions for: system, rename, unlink, remove and mkdir (for scripting) -Add: SafeFs actions for querying file stat()s, mirroring discrete calls of safe_fs.h -Add: SafeFsPathSep() action for returning system-dependent path separator char (e.g. slash) -Add: SafeFsRealPath() action for exposing librnd's lrealpath() implementation -Add: SafeFsReadFile() action -Add: SafeFs actions: fopen, fgets, fclose, fread, feof, fputs for scripting -Add: SafeFs binding for fseek, ftell and rewind -Add: SafeFs helper action to read a file from separator to separator -Add: SafeFs bindings for ferror() and clearerr() (for scripting) [doc] -Fix: packager's doc: main description did not have gtk4 support -Add: recommend --debug when compilation fails of mac, because of -Dinline -Add: refine dependencies in INSTALL: mention glu for opengl; mention libepoxy for gtk4 [gtk] -Fix: sign flip on pixmap rotated bbox calculation -Fix: enfroce rnd_render point to gtk when rendering from callbacks -Add: make gtk text markup foreground colors configurable for , and (may be useful on the dark theme) [hid_gtk2_gdk] -Optimize: draw a single point instead of an arc when radius is smaller than a pixel [lesstif] -Fix: sign flip on pixmap rotated bbox calculation -Fix: enfroce rnd_render point to lesstif when rendering from callbacks -Cleanup: use portable RND_INLINE instead of inline [lib_hid_common] -Add: extend the tooltip for auto_place to mention it enables window placement in the first place -Add: FsdSimple(): simplified API to the file selection dialog (for scripting) -Add: dad() iterate subcommand -Add: dad() raise subcommand -Add: dad() close subcommand [lib_hid_gl] -Cleanup: use portable RND_INLINE instead of inline [poly] -Cleanup: use portable RND_INLINE instead of inline [tests] -Fix: printf cli testers shall init/uninit rnd units else some rnd_printf internals may crash librnd 4.0.1 (r35417) ~~~~~~~~~~~~~~~~~~~~~ [build] -Add: unsigned coord type generated from scconfig (would be part of the 4.1.0 API later on) [conf] -Fix: conf_del on list, which sets the list value to NULL, should get the list removed [core] -Fix: refine project file creatioin failure error messages so it's more clear what's happening and why -Cleanup: internal vairable naming terminology: use design instead of pcb -Add: API comment to clarify that design->loadname shall be overwritten by the app on save-as [font] -Fix: matrix transformation macros should wrap mx in parenthesis because it is a macro argument [gtk] -Fix: when top window is resized while zoomed out a lot make sure 32 bit coords won't overflow; if they would, zoom in enough to avoid that [hid] -Fix: do not leave registered temporary tools after switching on the busy-cursor (unreg that tool during uninit) -Add: if enum values are available, "--help plugin" prints them [hid_lesstif] -Fix: update current design pointers within subdialogs of top window when design changes [lib_exp_text] -Fix: reset transformation matrix for every single page in ps so that ps files can be cat'd together [lib_gtk_common] -Fix: generalize the zoom overflow detection and clamping code and apply it after any zoom change -Fix: update current design pointers within subdialogs of top window when design changes [lib_hid_common] -Fix: "remove selected" in the preferences config tab right side should be able to remove a whole list/array and update the dialog -Add: preferences dialog: explain "save window geometry in design file" limitations in a tooltip [util] -Add: awk_on_formats: allow plugin type detection override awk script injection so the script is less pcb-rnd-specific -Add: accept -i for import and -e for export in awk_on_formats when picking up features from pups librnd 4.0.0 (r34958) ~~~~~~~~~~~~~~~~~~~~~ [build] -Change: rename librnd3 to librnd4 in all paths -Change: rename incldue path to librnd4/librnd (e.g. /usr/include/librnd4/librnd) to avoid clash with librnd3 and future versions -Cleanup: clarify the c89/c99 split in .c->.o compile makefile templates -Move: rnd_long64_t from central config to the poly lib - only the poly lib needs this type and nothing else should start depending on it -Fix: LIBRND_LIBDIR in installed librnd.mak should include the /librnd4 suffix (where non-so binaries are installed) -Fix: make sure detected/configure cflags, including -NDEBUG are used when compiling tests -Fix: install all headers of libualloc -Add: LIBRND_SODIR in installed librnd.mak that points to the libdir that has the .so files -Add: installed librnd.mak declares SPHASH and CQUOTE so apps don't need to -Add: installed librnd.mak should set GENCONF -Add: comment to explain while librnd.mak doesn't need to have LIBRND_SHAREDIR -Add: LIBRND_PLUGDIR in installed librnd.mak -Add: scconfig template for cdep offers an option to change outpit file name (sch-rnd needs that) -Add: define FONT2C in librnd.mak -Add: install build_ps.sh and include it in librnd.mak -Add: install util/keylist.sh and publish it in librnd.mak -Add: install util/menu2svg.sh and publish it in librnd.mak for the apps [core] -Fix: uninitialized local vars on Log(export) -Fix: rnd_printf: refuse more formats when RND_SAFEPRINT_COORD_ONLY is active and the format is not strictly a single coord -Fix: rnd_printf: potential memory leak: goto error label instead of returning -1 directly on any error condition -Fix: rnd_printf: don't choose between imperial and metric if target unit is outside of these -Fix: need to set current desing in GUI before executing any other design-switch event (some parts of the GUI, like the menu system, will use GUI's current) -Fix: make rnd_conf_list_foreach_path_first() safe to call with a callback that changes the conf -Cleanup: rename RND_EVENT_BOARD_CHANGED to RND_EVENT_BOARD_REPLACED because it's not really a change in the board but the whole board replaced -Cleanup: rename RND_EVENT_BOARD_ to RND_EVENT_DESIGN_ to make terminolofy portable accross apps -Cleanup: rename DAD redraw-with-board concept to redraw-with-design (app agnostic terminology) -Cleanup: rename event names from board to design -Cleanup: rename pcbev_ to rndev_ in event names -Cleanup: reorder enum rnd_hid_attr_type_t and add spare values for later binary compatibility -Cleanup: remove suppress_duplicate_action() - it was a workaround for a librnd 3.x.x transition -Cleanup: fix up field ordering of the struct and restore rnd_hid_t spares -Cleanup: struct field ordering in rnd_app_t, restore spares -Cleanup: rename HID_SC_ to RND_SC_ to keep namespace clean -Cleanup: move RND_SC_ from amcros to enum for code clarity -Cleanup: rename rnd_hid_cfg_keys_input2*() to rnd_hid_cfg_keys_input*() - this is the new and only official API for input key handling now -Cleanup: rename conf_board_ignore to reflect it also operates on project level (and board is design) -Cleanup: remove unused context pointer from the hid struct -Cleanup: move hid-specific call get_coords from actions to hid -Cleanup: actions.h shouldn't include hid.h: actions are generic (core) -Cleanup: move hid initialization internals from hidlib.h to hid_init -Cleanup: do not include hid_init.h where not needed -Cleanup: rename rnd_hidlib_t to rnd_design_t to reflect the real purpose of the struct -Cleanup: rename RND_ACT_HIDLIB to RND_ACT_DESIGN to better reflect the purpose -Cleanup: rename hidlib_conf.[ch] to rnd_conf.[ch] for clarity -Cleanup: rename hidlib argument names to design in public API, for clarity -Cleanup: rename path API struct field from ->hidlib to ->design for consistency -Cleanup: rename rnd_pcbhl_conf_postproc to rnd_conf_postproc - the pcbhl prefix is legacy from the hidlib times -Cleanup: unit: rename unit allow/family/suffix prefixes to rnd_unit -Cleanup: unit: create typedefs for the unit enums using unsigned long int to guarantee extra bits for dynamic registration -Cleanup: rename unit get functions to have rnd_ prefix -Cleanup: remove cschem-specific units (libcschem should register them runtime) -Cleanup: rename design ->filename to ->loadname (file name as specified by the user) and introduce ->fullpath for the resolved file name -Cleanup: rename project ->filename to ->fullpath for clarity and uniformity with rnd_design_t -Cleanup: finalize the new multi-conf support, keep global var copying because of plugin confs, rename the implementation to remove the _temp suffix from the file name -Cleanup: remove/fix pcb references in code comments -Cleanup: remove pcb-rnd-specific constants from globalconst.h, these should be #defined in pcb-rnd -Del: obsolete API rnd_hid_cfg_keys_input() -Del: RND_MF_FONT, RND_MF_ACTIVE, RND_MF_BACKGROUND and RND_MF_FOREGROUND from menu system to simplify HID implementation -Del: RND_EVENT_DESIGN_META_CHANGED_LIB in favor of RND_EVENT_DESIGN_META_CHANGED - it wasn't called only for lib and there's no library path list on librnd level anyway -Change: design struct (rnd_hidlib_t, rnd_design_t): store the bbox of drawing area instead of width and height, to allow editing at negative coords -Move: rnd_hidcore_crosshair_move_to() to gui_act.c in preparation of moving gui_act.c out to the hid helper plugin -Move: gui_act to lib_hid_common: not needed in non-gui setup -Move: Help() back to core, useful in cli -Move: rnd_hid_in_main_loop to hidlib.[ch] as it should remain in core among with anyload -Split: move hid-specific actions out from conf_act into hid_act for a hid split -Split: anyload action to a separate file because it depends on hid -Split: librnd-hid.so is only the hid part, librnd-core.so is the core (conf, unit, utils, helpers) without any HID infra -Split: code that frees a config role lihata doc from reset() into rnd_conf_free() as it'd be reused in project conf binding -Add: rnd_conf_hid_callbacks_t callbacks get a void *user_data argument coming from a rnd_conf_hid_callbacks_t field optionally set at registration; this lets the registrar pass on context to the callbacks -Add: better section comments for the long switch in rnd_printf format string processor -Add: rnd_printf: optional hook for apps to render %r format strings -Add: comment to explain unit suffix print options -Add: unit: prepare unit families for dynamic extension -Add: explicit field for indicating if a unit is an alias so aliasing can be decoupled from order of units in the vector later on -Add: unit: dynamic registration of units and unit families -Add: make rnd_get_value()'s fallback unit configurable -Add: project support infra -Add: project free() -Add: project remove_design() call -Add: import rnd_project_update_filename() from libcschem -Add: API call to append a design to a project's list safely -Add: rnd_design_t links back to parent project using a ->project field maintained by project.c -Add: import multi-design support from sch-rnd -Add: mark each event as [a] or [d] (for per-app or per-design) -Add: central hash of projects -Add: rnd_app API comment: example when conf dont_mege is used -Add: prepare the conf system for checking its own conf error ignores for the gtk grid conf transition -Add: extend conf ignores table with a custom error message option -Change: rnd_get_n_units() doesn't have arguments anymore: there's only one "number of units", aliases are marked explicitly -Change: rnd_units is a vector instead of a static table, to make room for dynamic unit allocation -Optimize: rnd_printf() should use static allocation buffer on stack for printf spec strings to save on malloc()/free() calls - no spec string should be longer than 128 [dad] -Cleanup: remove obsolete usage of RND_HID_FSD_* bits -Cleanup: simplify enum spares, not forcing switch cases to list them -Change: mandate naming HPANE and VPANE widgets on creation (insteadof providing an optional post-creation pane name macro) so any pane position can be remembered -Add: API for creating preview widget tied to a specific rnd_design_t [doc] -Cleanup: switch over pcb-rnd referneces -Cleanup: replace the [hidlib] marking with [librnd] marking in conf tree doc -Del: pcb-rnd-specific subtrees from the conf doc -Del: there's no such config type "CFN_INCREMENTS" (was an old leftover from geda/pcb) -Add: final mutli-conf support -Update: conf tree for pcb-removal -Update: made contact info more librnd-specific -Update: fungw action doc for the current API [font] -Add: import pcb-rnd's font rendering engine [gkt4] -Fix: missing #include after the API renames [gtk] -Fix: proper drawing area scrollbar limitats with negative drawing area coords -Add: multi design: save and restore zoom+pan when switching between designs -Update: "special color" handing for invocation from ->set_design() -Move: local_grid and global_grid config subtrees from under the gtk plugin conf tree to editor/ to be shared with other plugins [hid] -Cleanup: use unit index instead of offset within rnd_units -Cleanup: switch over to using rnd_unit_get_idx() instead of direct addressing of rnd_units -Cleanup: dad_spin: rename custom integer coord type to reflect it uses the .crd field -Cleanup: rename rnd_hidlib_set_grid and rnd_hidlib_set_unit, replacing "hidlib" with "hid" -Cleanup: do not call hid ->set_design directly, use multi for that -Cleanup: terminology in API comments: we are librnd, not pcb-rnd -Cleanup: remove/fix pcb references in code comments -Del: per HID ->fileselect in favor of centralized API and implementation, either served lib_hid_common or hid_batch (for CLI) -Del: rnd_hid_enable_per_dialog_hidlib (assume it's always 1) -Del: ->heavy_term_layer_ind (was pcb-rnd specific) -Del: beep() from the hid API - nothing uses it anymore -Del: clipboard formats: clipboard is always set and retrieved as a (char *) string -Del: ->point_cursor API; replaced by centralized mouse cursor override API -Del: ->busy() from the HID API and HID implementations: handled centrally -Del: API for faded drawing; this should be done by app's draw code by simply setting lighter colors -Del: HID ->get_design API in favor of multi's rnd_multi_get_current() -Fix: remember exec prefix after conf internal is loaded -Fix: make exec_prefix avialable even before the first real config merge -Fix: don't crash if preferred GUI is NULL -Fix: hid->attr_dlg_new should set hid_ctx as soon as possible; HID gui operations may trigger callbacks during dialog creation which already depend on hid_ctx -Fix: call HID's crosshair notification only if the current render HID wants that (avoids calling crosshair functions while export) -Fix: reset tool states when switching designs so tool logic doesn't get confused -Rename: "hidlib" args to "design" for clarity -Add: ->do_export() should pass on a pointer to the design (so that simple exporters don't need to implement ->set_design) and an optional app-specific config void * -Add: hid->set_layer_group() passes on (rnd_design_t *) as well so exporters don't need to remember current design -Add: expose_main()'s rnd_hid_expose_ctx_t has an (rnd_design_t *) field to remember which design is being exposed (usefule in multi-design apps, like sch-rnd) -Add: explain the gui-printer-exporter flag set better -Add: spare fields in DAD structures for binary compatibility -Add: generalize dad_spin: introduce a new unit type for custom integer coords -Add: hidlib_init1() gets exec_prefix as arg and sets it in the config -Add: more detailed explanation on the mouse cursor reg/set API -Add: centralized mouse cursor set and override calls -Add: all hids should declare a mouse curosr named "busy" for the centralized handlong of busy state -Add: centralize rnd_hid_busy() - per HID implementation is removed -Add: extend the get_export_options() API so it gets the design and the same app-specific context ptr the actual export gets, so it can calculate field defualts with all export info known -Add: keep mainloop_interactive()'s dsg param, mark it "the design we initially switch to" -Add: more explanation to HID->set_design() -Add: optional API to ask an exporter whether a given design with a given appspec cookie can be exported -Add: comments to clarify the new policy on DAD TREE cell[] allocation -Change: preview expose callback can't have expose context const, callee needs to fill in ->design -Change: tree-table cells need to be malloc'd (strdup'd) on caller's side and are free'd by the lib [hid_batch] -Cleanup: terminology (hidlib->design) -Cleanup: code formatting [hid_lesstif] -Del: long disabled Xaw-compatible pan mode -Fix: don't crash in tree-table widget click event handler if there's no dialog box ptr (happens in subdialog) -Add: support for sparse global grid [lib_exp_pixmap] -Fix: page fit bug with negative coords [lib_exp_text] -Cleanup: decouple draw_ps from HID API's global faded call, use a hackish global variable specific to the ps export and pcb-rnd (as this is a legacy special case and we are not going to support HID-operated faded draw in any other exporter or for any other app) -Fix: ps: wrong centering of negative coords -Fix: eps: wrong centering with negative coords -Fix: svg bbox calculation with negative coord drawing areas -Fix: svg bbox on negative dwg area coords when used with --true-size -Change: lpr API: export-to-file gets rnd_design_t * as argument -Add: pass on appsepc to the ps exportplugin from the lpr exporter [lib_gtk_common] -Cleanup: terminology in zoompan: hidlib -> design -Fix: allow scrolling/panning to negative coords if drawing area extends to negative -Fix: a preview that is neither locally nor globally flipped should be set to local flip with flips kept 0 so it's always displayd in neutral -Fix: always update all "special" colors on ->set_design(), the config may have changed and may bring new color -Add: set initial preview design depending on preview widget locality -Tune: allow zooming out a lot more (sch-rnd may have large sheets) [lib_hid_common] -Cleanup: rename preferences board-changed concept to design-replaced to follow event rename -Cleanup: use unit index instead of offset within rnd_units -Cleanup: switch over to using rnd_unit_get_idx() instead of direct addressing of rnd_units -Fix: preferences conf tab: update nat's pointer on design switch because in a multi-design setup each design will have a different set of natives -Fix: export dialog passes on appspec pointer to the plugin -Fix: preferences, key tab: uninitialized ram on table row termination -Fix: plugin dialog tree table handling: uninitialized row terminator -Add: publish rnd_dlg_export() so non-standard export dialogs can be implemented (e.g. project export in sch-rnd) -Add: preferences dialog hook callbacks get current design as argument (provision: just in case we won't operate the preferences dialog for the current design in the far future) -Add: preferences dialog tab open callback: pass on optional tab data request from the user to direct initial state when a specific tab is requested to open -Add: implement UNIT spin box creation in dad() action [lib_hid_gl] -Cleanup: passing the wrong string type to standard calls -Add: hidgl_expose_init() doesn't assume starting coords at 0;0 but gets them in arguments to make the API more flexible (hid_mbtk may need this) [multi] -Del: remove RND_EVENT_DESIGN_REPLACED in favor of RND_EVENT_DESIGN_SET_CURRENT (better terminology for multi-design) -Fix: most conf lihata docs are shared and shouldn't be copied per design; exceptions are CRF_DESIGN and CFR_PROJECT -Add: API to support multiple designs (mostly imported from sch-rnd) -Add: refine event comments on which event is called when (meta change vs. fn change) [scconfig] -Cleanup: rename /local/pcb to /local/rnd in public templates -Cleanup: get rid of hidlib leftover in public templates -Cleanup: rename _PCB_DEP_ to _RND_DEP_in public templates -Cleanup: get rid of unused /local/pcb/fungw_system from public API; fungw is detected and used only in librnd, apps rely on script plugin provided with librnd -Fix: error messages used in apps don't hardwire "pcb-rnd" -Change: host applications must define APP in their scconfig hooks.c; not defining APP is an #error [script] -Fix: perma script conf loader: accept root node if it's either pcb-rnd-perma-script-v1 or librnd-perma-script-v1 (typo caused every root look invalid) [tests] -Add: include fontlib in the testing [util] -Del: devhelpers/subst - mainline-to-pcb-rnd converter; keep a copy in pcb-rnd only, just in case some hidden gem plugin pops up -Del: deblist.sh - not used by anything anymore -Fix: 404.sh: exclude releases, can't fix past doc broken links -Fix: gen_formats prints $APP instead of hardwired pcb-rnd -Add: 404.sh crawls all Ringdove projects not only pcb-rnd -Add: install devhelper awk_on_formats.sh, apps need it for packager's doc and datasheet -Add: import pcb-rnd's list_dialogs that features reusable shell functions and the html generator -Add: install list_dialogs.sh -Add: import font2c from pcb-rnd (now that the font engine is in librnd) -Add: import action compiler from pcb-rnd (all Ringdove apps need this for their doc) -Add: convert action_compiler.sh into a shell lib so the configuration can be provided from a per project wrapper -Add: import dump_actions_to_html from pcb-rnd -Add: convert dump_actions_to_html.sh to a reusable, app-agnostic shell lib -Add: import file format list generator from pcb-rnd -Add: missing copyright header in gen_formats; explain the API -Add: install gen_formats -Add: devhelper: gimp-exported xmc to C source converter (for mouse cursors) -Change: generalize list_dialogs more: function for generating table header but do not close html (caller may embed the table in some more complex page) -Change: keylist.sh: we do not have per HID menus anymore but plugin supplied menu extras; instead of listing them in columns, have a single "source" column