0.9.5 beta-test (r7021) ~~~~~~~~~~~~~~~~~~~~~~~ [backann] -Fix: off-by-one memory allocation on stack [build] -Del: no need to detect libs/sul/librnd-hid from ./configure, Makefile.conf has the prefix [doc] -Fix: copy&paste error: sch-rnd has symbols, not footprints, and no direct edakrill support yet -Update: mailing list subscription: gmail is not a "may not work" but a "does not work" -Add: document io_alien postproc config/scripting -Add: specify io_tedax pinnumber format -Add: link in route-rnd -Add: generate key tree [export_tedax] -Fix: emit pinname lines properly, using display/name -> name, splitting up multi-number pins -Cleanup: remove pcb dependency from export attribute names; export by current view -Cleanup: remove footprint, value, device attribute dependency on pcb/ [gui] -Fix: Save(): if there's no file name of current sheet (it's ), always invoke SaveAs() and append .rs -Fix: don't crash on revert when file is missing -Fix: sheetsel should be updated on file name change event -Add: indicate sheet changed state in sheetsel by a * mark after the file name -Add: sheetsel mark projects [e] when explicit project.lht exists and [i] when project is implied -Add: sheetsel mark sheets depending on how they are listed in their project file -Add: sheetsel indicates partially loaded projects -Add: sheetsel: tooltip explaining all the marks [io_geda] -Add: set alien fmt prefix -Add: call alien postproc -Add: default postproc configuration renames the refdes attribute to name -Add: postprocessor pattern+action config to replace refdes attribtue dyntext with name attribute dyntext -Add: configurable auto-normalzie for removing gschem's arbtirary, large coord offset -Add: recalc symbol connections so direct terminal-terminal connections work -Add: attempt to convert symbol net= attrib to connect= in postproc -Add: postproc attribute conversion: terminal pinnumber to name for connect attribute to work -Add: postproc rewrite of terminal name display -Add: append default lib search path for lepton -Add: postproc config: convert netname to name [io_tinycad] -Del: hardwired C code for attribute postprocessing -Fix: expect rectangle fill to be an integer, not a bool -Fix: symbol label placement in normal case: should always be 0;0 in loclib and moved during placement -Fix: tune symbol label placement when parent symbol is rotated -Fix: sort out sym label placement vs. all combinations of symbol direction -Fix: do not create text object for tinycad's hidden pin numbers (show=0) -Fix: in sheet postproc remove sym text objects that are not referenced from symbol instanced with show=1; this fixes dyntext objects introduced by one instance in symdef accidentally shown in all other instances (without show=1) -Fix: rectangle parser did not realize when it was parsing a symdef rectangle (and did not add symdef offsets) -Fix: symbol label placement in mirx=1 case -Fix: pin show is really a bitfield for showing the number and name; whether the pin is a power pin really depneds on which==4 -Cleanup: centralize text object mirx/rot calcualtion, it's the same for all three text object sources -Cleanup: the function for creating text in a parent object returns the text object (or NULL) so that it can be manipulated on the caller side -Add: set alien fmt prefix -Add: run sheet postproc after load -Add: create_net_label() respects the direction parameter and makes the necessary rotation when style != 0 -Add: support for parsing sheet rectangles -Add: create different sheet-decor pens as needed, for different pen thickness while drawing rectangles -Add: note_text is adjusted to be placed within the note box -Add: mark multiline note text TODO with a unique label so it's easier to search in the doc -Add: start documenting limitations and bugs -Add: create pin's in-body label -Add: place pin number dyntext -Add: remember if a pin is a power pin or is in a slot using a attributes on ther term group -Add: generalize sym_attr_hide() to sym_child_hide() - would be used to hide pins for slotting and power pins -Add: postprocessing step for removing excess pins from symbol instances -Add: support for slotting and power pins using pin removal -Add: remember offset to power-pin-visible dx;dy for symdef -Add: compensate for different sym reference point when power pins are visible -Add: support for the ellipse object, using line approximation -Add: plugin conf -Add: make coordinate factor (multiplier) configurable -Add: preparations for the configurable text autorot -Add: render all group refs and normalize the sheet if needed -Add: enable the code for optional text auto-rotation -Add: mark the naked-bbox bug in the code -Add: support for power 'which' field (all known values) -Add: compensate text placement for mirrored power -Add: heuristics for power text placement for all rotations -Add: support for pin 'shape' (decoration) [lib] -Fix: undoable attribute swap: when removing an attribute, use the key that's always available to avoid null pointer deref -Fix: don't undoable-del an attribute if it doesn't exist (avoids adding a no-op on the undo list) -Fix: when a whole group is moved and the group is a wirenet group, recalculate junctions (child lines are not going to be moved separately which may result in broken net) -Fix: freeze object redraw during compile postproc invalidate - the whole sheet would be rdrawn once, at the end -Fix: util_export default export file name generation: don't crash if there's no file name for the sheet -Fix: util_export default export file name generation: append "*" if replacing an existing knonw "extension" is not possible -Fix: util_export default export file name generation: make sure there's enough room to append the '*' -Fix: util_export default export file name generation: if no new "extension" can be appended, append at least a _ so we are not overwriting the input file -Fix: wire merging: when a wire is moved from one wirenet group to another, manage connection merging properly so no multiple connections between the destination wirenet group and the same terminal are created -Fix: util_wirenet left undo serial inc locked when bailing out for not drawing fully overlapping wires -Fix: compilation: don't stop adding conn's objects to an abstract net after the first object (fixes missing connections when more than one non-wirenet object is connected) -Fix: wirenet: don't create junction between overlapping same-direction lines, they should be merged -Fix: when merging a group into another, copy/merge attributes as well -Fix: recalc conn after group geometry change undo swap to avoid leaving stale conn graphics after a group move is undone -Fix: junction calculations shall be done in sheet coord system, not in (potentially transformed) wirenet coord system because bboxes are in the sheet coord system too -Fix: wirenet draw: disable wirenet split calculation when new line is added - drawing a new line will never split existing wirenets (fixes aron's merge bug by making sure line ptr is not modified) -Fix: auto attr placement should inverse-xform target coords because text placement coords are in the parent group's coord system (spec coords, not inst coords) -Fix: compile infinite loop: do not merge a network with itself -Fix: move emitting the sheet saved event from sch-rnd to lib to guarantee it always runs -Fix: update sheet full path after save, before the events are sent out for updating the file-change-notification system -Fix: when a sheet is saved under a different name, also update loadname (not only fullpath) -Fix: group-reverse transform second line endpoint as well when drawing a wire - fixes the bug of the second clicked wire endpoint going off randomly when wirenet it extends is transformed -Fix: csch_conn_recalc_coords() needs to remove and readd conn in the rtree because its bbox is changing -Fix: floater placement: when calculating floater coords, remain in group relative (spec coords); convert sheet coords to spect coords only where needed, on the hint coord input -Fix: project file not found is not a warning, just an info for implicit projects -Fix: when creating new wirenet groups while splitting wirenets copy the selected flag of the source wirenet to the newly created on; fixes the bug of losing selection when moving wirenets -Fix: recalc conn coords when objects are added or removed from a conn from undo/redo -Fix: when rotating text, invert rotation direction on single-mirror cases -Fix: don't crash on NULL fullpath at save-as -Fix: do not add indirect objects to the rtree - fixes io_tinycad bug of rendering local lib symbols as ghost symbols around 0;0 -Fix: don't crash when project-exporting implicit project (no project file): just use implicit-project for file name base -Fix: child xform: don't assert() when bumping into deleted transformation entries during apply, just skip -Add: undoable attribute rename call -Add: extra sheet field for making a bridge between query() and propset() for alien io configured attr edits -Add: extend attribute apply API so it can change the priority of the newly created attributes (will be needed by plugins when copying attribs) -Add: implement per sheet invalidation box mechanism for redraw freeze to minimize batched object redraws on sw rendering -Add: enable connection between two terminals directly (will always result in an anon net) -Add: implement array type attribute single string append/prepend API -Add: TODOs and error message on unhandled attr merge -Add: integrity check: make sure sheet's direct group is not transformed -Add: group helper function: inverse transformation of coords by parent group xform -Add: vararg based group coord inverse transformation API -Add: extend sheet type from aux/root to handle unlisted and unknown as well -Add: project util API to decide if a sheet is root ro aux or unlisted for a project -Add: project util function to figure if a project is partially loaded (not all root sheets are loaded) -Add: throw bold error message before compilation for partial projects -Add: mark sheet that's being saved so GUI indication can be inhibited -Add: util_path with API for calculating relative path from one file to another -Add: basename() utility call -Add: compiler: if there's a project file with explicit list of root sheets, do not compile unlisted sheets -Add: parser util for replacing the engine list in an existing view lihata conf node -Add: expose view engine renum function in public API -Add: csch_cobj_rtree_del() returns 0 on succesful object removal so the caller can figure in a cheap way whether the object was in the rtree -Add: argument to suppress error message on sheet fails to load -Add: dup2() API for pens: same as dup() but creates the new pen using a new name (useful when duplicating a pen within the same parent) -Add: temp fields in the text object for the app to use (needed while reading io_tinycad for marking text objects shown) -Add: apply the 'remove' child xform in group_refs [lib_alien] -Add: generic postprocessor API with a new format prefix field in the context struct -Add: generic sheet load postproc using optional user actions -Add: use query to execute configured actions in sheet postproc (for attribute translation) -Move: generalize sheet coord normalization function from io_geda so it can be reused with other alien formats -Move: generalize text rotate adjustment for 180 and 270 degree, io_tinycad will need it as well [propedit] -Fix: recurse into groups on collecting selected objects -Add: pressing enter in the value input of the "new attribute" dialog should be the same as clicking on ok -Add: propset(rename/a/key, new) will rename the key to new, keeping value and priority -Add: @ scope for propset() to be used in alien io attribute transformations [query] -Fix: text's string is really called "text" in the code and in propedit -Add: helper function to map and append all indirect objects to the query scope [sch-rnd] -Del: zoom-to-found menu (there's no concept of "found" in sch-rnd) -Del: the "beta testing" experimental warning - the code is getting stable -Fix: freeze junction recalculation while cutting multiple objects to buffer to avoid modifiation-while-copy -Fix: freeze junction recalculation on the buffer while copying multiple objects to buffer -Fix: move loadname overwrite from the GUI to the SaveTo action so it is always executed (even with CLI triggered save) and happens before the filename changed event is emitted -Fix: reload projet file on 'save as'; a change in the file name may cause a change in the project file -Fix: when save-as changes project file for a sheet, announce it in the message log and do all the project administration so that the sheet gets moved also in sheetsel -Fix: realpath project file name before hashing/comparing to avoid stray project.lht entries -Fix: exit if no sheet could be loaded for a project -Fix: default zoom menu constants for cschem coords -Fix: after saving to a different directory if a new project (implicit or explicit) had to be created, call project postproc so that views are loaded from the conf -Fix: do not throw an error when default sheet can not be loaded while going through a search path (it's normal that only a subsequent item is available) -Fix: don't update text pen on text edit operation if text is indirect (the indirect tree is never rendered) -Fix: don't make emergency backups of sheet (force the user to name the sheet) -Fix: set sheet fullpath to after reverting an unsaved sheet -Add: initialize new conf node rc.path.dotdir so users can refer to their own config easier -Add: project submenu in the file menu for managing current project -Add: action New() to create a new sheet (only in current project for now) -Add: project file creation API+impl -Add: ProjectNew() can create the project file and pair it up with an existing/open implicit project -Add: detect sheet type within the project when a sheet is loaded directly (not via the project file) -Add: set expected number of root sheets -Add: when a new aux sheet is created, set sheet type aux -Add: append relative path of new sheet to project file when root or aux sheet is created -Add: menu for creating aux and unlisted sheets -Add: New(): create new project file if it does not exist and a root or aux sheet is created -Add: ProjectSheetType() action to change the type of a sheet and update the project file accordingly -Add: ProjectSheetType(): unload target that first makes the sheet unlisted then unloads it -Add: action for loading rest of the sheets for a partial project (plus menu) -Add: SaveAll() action (for currprj, current project only for now) (plus menu) -Add: utility call for regenerating the engine list of a view in the project conf lihata (useful after an edit of project views) -Add: wrapper for sheet-removal-from-project so the case of project becoming empty can be handled -Add: remove project (from internal project hash) when last child sheet is unloaded -Add: throw an error when sheet gets too large [sch_dialogs] -Fix: take the coord field when setting pen size (and convert it from librnd coords to cschem coords); fixes pen dialog tip size set -Fix: when a new pen is created, select that pen and let the user edit it without needing to select it again -Fix: when a new pen is created, set sane initial values for its fields -Fix: abstract dialog restores cursor after recompile -Fix: force-update text bbox once text string is changed from the gui -Fix: make sure the drawing area is updated after a text string change from the GUI -Fix: library refresh button shouldn't crash with empty filter text -Change: use the lib's undoable attribute rename call instead of local implementation -Add: sort abstract dialog tree so it's easier to manually search -Add: abstract dialog: case insensitive regex filter -Add: abstract dialog: checkbox to filter out anon_ items -Add: project properties dialog frame (project dialog) -Add: view dialog: make engine list editable -Add: view dialog: make it clear that changes are saved in project file immediately [std_devmap] -Fix: use plugin's prio when setting symbol attributes from devmap, instead of using user prio 250 -Fix: typos in quick_att_portmap() action syntax description [std_tools] -Fix: mirror tool respects lock_floaters [symbol] -Fix: stock led should default to led5 for devmap and should have D?? for refdes 0.9.4 beta-test (r6370) ~~~~~~~~~~~~~~~~~~~~~~~ [build] -Cleanup: missing #includes (exposed by hid.h not always included) -Fix: make clean should remove objects in src_3rd/ -Fix: load_cache make clean shouldn't fail when there's nothign to clean -Fix: build minuid (the executable) because it is going to be installed (for boxsym) -Add: central make clean recurses into src_3rd as well [doc] -Fix: wrong path to the menu file for keys.html generation -Del: temporary multi-design support doc - read librnd's instead -Add: generate file format list -Add: explain the meaning of per-design and per-app events [export_abst] -Cleanup: don't depend on global csch_hidlib (design is passed as arg) -Add: calculate default export file name -Add: indicate the project's abstract model is exported (not the sheet's) [export_eps] -Fix: set expsoe context ->design before calling main expose [export_png] -Fix: set expsoe context ->design before calling main expose -Del: don't define set_crosshair, use hid_nogui fallback -Cleanup: don't depend on global csch_hidlib, design is passed on -Split: sheet export from do_export() in preparation of multi-sheet export -Add: calculate default export file name -Add: prepare for multi-file project export [export_ps] -Fix: set expsoe context ->design before calling main expose -Fix: don't crash on NULL xform when called from lpr -Del: no need to keep a separate "doing project" global when we have this info in appspec -Add: calculate default export file name -Add: support for project-export in ps and eps -Add: get multi-file exporter option to work in project export [export_svg] -Fix: set expose context ->design before calling main expose -Cleanup: don't depend on global csch_hidlib (design is passed as arg) -Add: calculate default export file name -Add: support for project-export [export_tedax] -Cleanup: don't depend on global csch_hidlib (design is passed as arg) -Add: calculate default export file name -Add: indicate the project's netlist is exported (not the sheet's) [gui] -Fix: pass on sheet to autocomp bar update so it doesn't have to query gui-current -Fix: don't crash if there's no view configured (when generating status bar) -Cleanup: use rnd_printf() with %rc for printing 'k' coords in status line (instead of local conversion macro) -Cleanup: get rid of csch_hidlib references -Add: update sheet hidlib dwg bbox when sheet bbox changes -Add: bind layer vis changed event to update layer visibility (in case the change happens outside of this module) [io_geda] -Fix: option to emulate no-upside-down-text of gschem [lib] -Fix: csch_printf: don't increment fmt, it's pointing at the last format char already -Fix: reset project's design list after freeing all sheets so that librnd won't iterate through already free'd sheets -Fix: don't crash when sheet can not be loaded (e.g. wrong file format) -Fix: csch_lib_load() should lock redraw: the backend may trigger multiple object updates and if the buffer tool is active (e.g. when placing from the lib), it leads to excess redraws -Fix: don't crash on revert if file name or load name is NULL -Fix: add missing "extern" keyword to cschem-unit bits global variables -Fix: wirenet junction recalculation lock (inhibit) should not be stuck after a paste-wirenet-from-buffer operation -Fix: don't crash when junction is copied to buffer -Fix: corner cases that could lead to a crash when copying a large wirenet into buffer -Fix: integrity: never start wirenet disjoint-test from a floater but do detect if a wirenet is consists only of floaters -Cleanup: remove CSCH_EVENT_LAYERS_CHANGED: layers are hardwired, they are not going to change -Cleanup: remove unused csch_project_export_sheets(), project export is done using appspec -Cleanup: merge export.[ch] content into util_export.[ch] to remove redundancy -Cleanup: don't include TODO.h where it's not needed -Change: csch_derive_default_filename() gets an int arg for generating project file name, instead of void *appspec: the lib has no idea what's in appspec -Add: update parent group's bbox when child object's bbox changes -Add: update sheet bbox when ->direct subtree bbox change -Add: bit in sheet struct to notify the GUI on sheet bbox change -Add: app-specific rnd_printf format plugin for rendering the 'k' suffix values as %rc -Add: introduce a "cschem" unit suffix and make that the default fallback unit for get_value -Add: publish cschem unit family and 'k' allow -Add: register empty-suffixed cschem base coord unit and publish k and base units -Add: %rr to local printf, to conert rnd_coord_t to csch_coord_t and print it with the 'k' suffix -Add: export helper: function that updates hid attrib file name (to be used in get_export_options()) -Add: emit RND_EVENT_SAVE_* and RND_EVENT_LOAD_* events -Add: cschem_export_filename() takes optional base file name prefix/suffix arguments to ease file name generation in mutli-sheet project exports -Add: when exporting multiple files as a project, use project file name for the generating the default export name -Add: event to communicate selection change [lib_alien] -Add: warn for coords too large [librnd4] -Update: follow librnd4 API changes [menu] -Add: property editor on {e p}, same as in pcb-rnd (edits selection) [multi] -Fix: don't rename sheet to project file name after fialed load from project file -Fix: make "view last conf rev" per project, in a multiple project setup there can be different views perproject -Fix: don't create views multiple times per project -Fix: when creating new empty sheet with filename specified, put new sheets in the right project (loading the project if needed) -Fix: run project postproc after creating new project for new sheet on startup -Fix: memory leak: free design role config when unloading sheet -Fix: infobar remembers last file change date per sheet so it can warn for sheets that changed in the background -Fix: don't remember file name when attempted to load a directory -Add: explain the usage of sheet "loadname" when loading all sheets for a project -Add: API convenience on NULL pointers -Add: get-current call -Change: pass file name to new_sheet() call so it will have a chance to enter the files in the right project [propedit] -Fix: terminology: board -> sheet -Add: print coord values with the 'k' prefix when possible -Add: use coord spinboxes instead of integer spins for coord input -Add: auto-refresh the dialog on selection change [query] -Del: remove $dwg_area_x and $dwg_area_y: compile-time constants are incompatible with multi-sheet support -Add: use cschem coord spin boxes for the advanded search dialog -Add: accept the 'k' unit as *1000 [sch-rnd] -Fix: CP2 and P2C should cast the result to csch_coord_t or rnd_coord_t; when used directly in printf that's how the right type is passed -Fix: System()'s env var name uses SHEET instead of BOARD for communicating current filename -Fix: backup/emergency-save all sheets really operates on all sheets, not only on current -Fix: load system config file from the configured CONFDIR, not from SHAREDIR -Fix: multi: create multiple new empty sheets if multiple file CLI names are not found on interactive invocation -Fix: when creating new sheets on startup delay sheet postproc until the config is merged so all library paths are known -Fix: don't initialize the crosshair before all the configs are merged at least once, for the initial design, else the GUI may try to draw the crosshair with unknown color during startup -Add: publish sheet_attr_crd() for the GUI -Add: DAD helper: csch_coord_t spin box -Add: appspec struct for exporting projects -Add: project export dialog with menu binding -Add: safe fallback on appspec with default values -Add: helper function to decide if an appspec is for project export -Add: when exporting from the command line with -x, if a project file is passed, do a project-export -Add: when called from CLI with -x and multiple files, do a project export -Add: extend --help invocation to indicate project-export on multiple sheets or project.lht -Add: generate selection change events -Change: switch over from pcb-rnd's inclib font engine to librnd4's font engine [sch_dialogs] -Cleanup: don't free const char * even if locally allocated -Cleanup: get rid of csch_hidlib references in infobar and in sheet preferences -Cleanup: rename pcb_dlg_pref_ to sch_dlg_pref_ to keep namespace clean -Fix: use the right config node path for setting CLI history size in preferences general tab -Fix: uninitialized cell terminator for DAD tree-table -Fix: tree window: invalid memory handling in some corner cases of updating the DAD tree - always have all columns strdup'd even if it's to empty string -Fix: pen dialog: when pen name is changed on the right side, update it on the left side -Fix: preferences lib tab: memleak on excess strdup() for 'path expanded' label -Fix: preferences dialog,library tab: used the wrong context pointer in the help button implementation -Fix: preferences color: don't crash on empty color list -Del: preferences dialog, library tab: no need to free tree-table cells, librnd4 will do that -Add: use cschem coord spinbox in the pen dialog for font height and pen size [symbol] -Fix: switch: style=relay: move the coil a bit up so it doesn't overlap with the switch(es) and terminal falls on the 4k grid -Fix: switch: style=relay: prefix coil terminal names with "coil" to avoid conflict with switch terminals -Fix: switch: style=relay: don't draw cap, only coil [util] -Del: deblist script (switched over to packager's doc) -Del: local implementation of awk_on_formats - use librnd's -Add: import sign/ from librnd, for release verification -Tune: boxsym-rnd text scale for aussiefont wide chars 0.9.3 beta-test (r6000) ~~~~~~~~~~~~~~~~~~~~~~~ [build] -Fix: install plugin files -Fix: every Makefile should recurse using $(MAKE) instead of make, so that the caller's preferred make flavor is used (instead of switching make implementation in the middle of the build) -Fix: append c89flags to CFLAGS for -Dinline when -ansi -pedantic is also added -Fix: use -L and -I to librnd when installed to non-standard path -Add: calculate man5dir in Makefile.conf -Add: LIBADIR for libarch based lib dir path for sorting out the lib64 problem later [devmap] -Fix: rename footprint from sot23 to SOT23 for compatibility with pcb-rnd stock lib -Fix: rename footprint from "led5" to "LED5" for compatibility with pcb-rnd stock lib [doc] -Fix: install (5) man to man5dir -Add: user manual index page -Add: sch-rnd(1) manual page -Add: comment on BSD make in INSTALL [export_ps] -Fix: don't export excess showpage on top of the file [gui] -Fix: update the status line when "board is changed" (switched to another sheet) -Add: Load() GUI file selection dialog filters for loading sheet or project [io_lihata] -Fix: read: throw an error on missing root subtrees instead of crashing -Fix: read: don't crash on missing attribute subtree, accept that as "no attributes" -Fix: read: don't crash on missing oid [io_tinycad] -Fix: poly bits and proper filling -Fix: poly fill implies closed -Split: label create to a separate function to make room for style code -Add: implement net label styles (arrows) -Add: implement net label rotations -Add: mirx and rot for plain text objects using "direction" -Add: Package -> footprint translation [lib] -Fix: don't hardwire lib path to puplug, use librnd's LIBARCHDIR so that lib64 doesn't break -Fix: util_wirenet: when extending a line (merge a newly drawn line in an existing line, making it longer), transform edit coords into wirenet's own coord system so the line doesn't jump away -Fix: compiler: when compiling a project, do not reset abstract model counters per sheet, only once per project; this fixes redundant anon-naming components and nets -Fix: don't mess up the abstract model after gui export when the same view is exported that we compiled for in the GUI -Fix: don't segfault on cnc object uninit when it's has no parent in the object hierarchy -Fix: util_wirenet: csch_wirenet_recalc_unfreeze() first unfreezes, then recalculates so that new wirenets created during the recalculation are not added the the unfreeze TODO list -Fix: undable management of connection adds/dels when merging wirenets - fixes a special case of wirenet merge undo -Fix: when figuring if a newly drawn or geo-edited line causes an endpoint-intersection, do check point-on-line using g2d - with diagonal lines matching up boxes is not enough -Add: implement CSCH_REM_DEL_EMPTY_PARENT for the remove operation -Add: remove-sheet-from-project function -Add: csch_cgrp_replace() for replace symbol low level -Add: expose attrib del call for alien IO [lib_alien] -Fix: fill in sheet uuid in sheet setup -Fix: remove tmp sheet (created for reading defaults) from the project after loading alien sheet setup - fixes the bug that a sheet was created on alien load [menu] -Cleanup: unify tool menu with the toolbar and make sure the same F-keys are assigned to the same tools as in pcb-rnd -Fix: ambiguous wording in menu about object mirroring [propedit] -Fix: use the action API to invoke the pen dialog instead of direct call, to avoid propedit module dependency on sch_dialogs module (which is bad for packaging) -Fix: use the action API for quickattr editing instead of direct dependency on sch_dialogs -Fix: integer constant overflow on 32 bit in coord entry min/max -Update: plugin does not depend on sch_dialogs anymore [sch-rnd] -Fix: sheet files listed in project files are loaded from relative path to the project file, not to sch-rnd CWD so that project files are portable -Fix: don't hardwire $(PREFIX)/lib for conf_core generation, use arch specific libdir so it works on /lib64 as well -Add: ReplaceSymbol() action - for replacing a single symbol for now [sch_dialogs] -Add: extend PenDialog() so it can be called to select a new pen; give control over flags like recursive, be able to return a pen name as string and accept optional input pen name for initial selection -Add: action api for querying if quick attr editor is accessible for an object/attrkey combo [std_devmap] -Fix: don't throw an error when parsing a dir as devmap for a lib refresh [symbol] -Fix: mosfet-p-1 S and D terminals were mixed up [tests] -Add: minimal automatic smoke tester comparing the abstract export of examples to saved refs -Fix: make sure to exit with error status if any test failed 0.9.2 beta-test (5816) ~~~~~~~~~~~~~~~~~~~~~~ [act_draw] -Add: accept object:oidpath scope for naming parent group [act_read] -Import: from pcb-rnd [boxsym-rnd] -Fix: use our standard file name ending, .ry, instead of .sym [doc] -Update: index page for beta and plans for the stable -Update: regroup and reorder state for the beta testing phase -Import: autostyle from pcb-rnd doc/; use unified headers on the page -Change: switch over to the unified Ringdove index.html layout on the main page -Cleanup: cschem vs. sch-rnd: keep cschem only on data model side -Cleanup: archive the nlnet roadmap: it's pretty much completed -Cleanup: move some of the old doc used for the design process to archive -Del: archive use cases - these were relevant for making the initial design -Del: obsolete style guide - we ended up with a slightly different one in practice -Del: plans/ -Move: libcschem doc in developer/, sch-rnd users won't need it -Import: packaging script from pcb-rnd -Import: rosetta html generator from pcb-rnd, for scripting examples -Add: irc page, mirrors page, help wanted page -Add: link (video) tutorial from the main page -Add: scripting: cross-link pcb-rnd's doc on generic scripting and different languages -Add: scripting example: working quick attr editor -Add: scripting example: voltage divider -Add: scripting example: text autorotate: object listing and careless rotation to tes tht new API -Add: scripting example: autolabel: figure wich groups need label, place labels at 0;0 for now -Add: scripting example: zillion (array copy) -Add: query: document .anylocked and .level -Add: lihata format doc links to the project file syntax tutorial [gui] -Fix: status: don't print uninitialized string on grid unit -Fix: edit act idpath arg converter: free idpath only if it was allocated by the conversion -Add: edit act: rotate90 accepts idpath specified object (for scripting) [io_geda] -Fix: read_path_xy() accepts comma as separator as well -Fix: instead of creating a custom group for path, create a polygon (so it can have a fill) -Add: minimal text alignment: halign should work, vertical align is approximated by move [io_tinycad] -Fix: error message is printed with file name, line and newline -Add: create symbol groups in indirect for symdef; parse symdefs -Add: place symbols from the local lib -Add: parse and place labels (wirenet name floater or sheet decoration text) -Add: support for objects (sheet decor text) -Add: support for with a custom group -Add: parse DETAILS subtree and extract and set administrative sheet attributes like author or page -Add: parse sheet size, set min height/width attributes -Add: flip y coords and translate by sheet height to get the same orientation -Add: parse and create symdef rectangles -Add: support by creating custom symbols; forge on rail symbols generated for -Add: parse sheet polygons -Add: capacitor pin: 'hidden' pin style: draw a 0-length terminal [lib] -Fix: csch_search_all_selected() always recurses to non-atomic groups; this fixes "selected wire can not be deleted using {s r}" -Fix: when creating a new abstract port (auto-alloc), set parent -Fix: missing graphical connection is not always an error, e.g. attribute conn of a non-graphical terminal in a symbol -Fix: sort out how to handle missing graphical connection with drc later on -Fix: typo caused wrong abstract id2name -Fix: util_wirenet: do not leave stray empty wirenet groups around after a new line merging existing groups -Fix: util_wirenet: when drawing a new wire segment attaching to an existing wirenet group, apply the group's transformations on the new line so it is placed properly -Fix: dup_into() should be able to transform source obj to match the reverse-transformations of destination group so that the final installed coords are not changed; implemented for lines only at the moment -Fix: more robust merge_into(): expect that source objects are deleted ahead -Fix: text vs. box intersection calculated properly for rotated text - not for the unrotated gross bbox but for the rotated net text meta rectangle -Fix: not only wirenet objects may be in a conn, when a line is removed, always remove it from its conn -Fix: disable wirenet side effects while merging a wirenet group into another wirenet group; this fixes the bug where the merge would remove a middle-object from the source wirenet breaking the source wirenet into new groups that are then not moved -Fix: when recalculating connections after an object move, if a connection is to keep, still update its coords because the parent object may have moved slightly -Fix: remove cgrp_inst2spec optimization: it's not enough to look at the group's own transformations, parent's matter too, it's safer to do all this once, with reverse xform -Fix: when a connection is recalculated, remove objects that are no longer connected -Fix: if a junction is "drawn" (e.g. in buffer copy), the line objet being drawn may be removed in the process, in wirenet optimization -Fix: do not update junctions in wirenet recalc freeze, proper recalc of junction after wirenet recalc unfreeze -Fix: don't crash if there's no objects in wirenet being recalculated -Fix: don't calculate crossing between wire line and wire non-line in wirenet merges (non-line is typically a label text) -Fix: when removing a whole wirenet group, remove connection of child objects -Fix: don't attempt to make a conenction that connects an object to itself -Fix: don't make connection between child objects of the same group -Fix: preserve connections in network merge -Fix: preserve original connections only in "group move into" -Fix: when finding conns for a terminal look for wires, when finding conns for a wire, look for terminals -Fix: insert idpath custom fungw type converter on init -Fix: revert should create a new sheet when reverting to the original sheet is not possible (file does not exist) -Fix: wirenet: when merging a wirenet into another, remove the leftover empty wirenet group -Add: refine invalid conn error message with type -Add: code for caclculating whether a point is within a triangle -Add: efficient code for calculating whether any of multiple points is in a triangle -Add: a pointer mark field in object header for temporary storage in sync code -Add: direct user to the config setting for merging multiple connections per port -Add: array attribute set API from C const string arrays -Add: publish attrib side effect function (some io plugins need it) -Add: all-attribute copy helper [lib_alien] -Cleanup: separate X and Y and non-axis-aligned coord transformations so the per axis offset and mirroring can be introduced later -Add: expose coord conversion for convenince -Add: helper functions for creating polygons and line based polygon contours -Add: option for flipping x and/or y coordinates -Add: optional x and y translation on coords -Add: arc-in-poly-contour helper -Add: helper function to approximate a bezier in a polygon contour [menu] -Add: ctrl+s saves [propedit] -Fix: return coords in long, not in rnd coord (makes no sense to convert to mm) -Add: propget() also accepts objbin as first arg (like propset); useful for scripting -Add: when geo is enabled, include bbox coords (also bbox center) -Add: accessor for reading inst rot, inst mirx and inst miry of text objects [query] -Fix: do not return pointer free'd -Fix: idpath requires clear memory for idpath target because of vectors -Fix: .selected returns any-parent-selection as well to be consistent with GUI behavior -Fix: scope name is "sheet", not "board" in sch-rnd context -Add: .anylocked: returns true if an object is locked in any way (e.g. group lock) -Add: .level is evaluated to the object's depth in the tree; 1 means directly on the sheet [scconfig] -Fix: reset all sphash config fields between compiling modules -Add: print which app required librnd to avoid possible confusion [sch-rnd] -Fix: when buffer-pasting wirenet groups, schedule merge-recalc so they get merged/connected properly -Fix: don't crash while cutting to buffer if selected object is already removed -Fix: select wirenet on second selection click on wire -Fix: when copying a wire into the buffer create the "same" wirenet parent as it had on the sheet (minus metadata) so that it behaves like a wire, not a plain decoration line on paste -Fix: {s r} (selected remove) deleting junctions won't cause an assert -Fix: partial wirenet {s r} bug: freeze wirenet recalcs while the remove loop is running so that existing wirenets are not split up -Fix: normalize wirenet line using inst2spec when put into a buffer-wirenet-group so it remains in position -Fix: when any dyntext of a wirenet is copied, also copy all attributes of the wirenet -Fix: buffer clean: use a low level object remove that doesn't have side effects: don't attempt to maintain undo or wirenet merges in buffer when everything is going to be removed anyway -Fix: do not try copy or paste conn objects, recalculate them instead -Cleanup: remove obsolete font related config nodes -Cleanup: move Revert() implementation from lib to sch-rnd: it depends on creating a new sheet which is app-specific -Add: place wirenet labels on the longest line -Add: BufferCopy(): optional x and y arguments to override crosshair (for scripting) -Add: BufferPaste() action for scripting -Add: API for creating new sheet in-place, in an existing (csch_sheet_t *) [sch_dialogs] -Fix: tree dialog: disable auto-expand because group nodes are of interest in themselves -Fix: abstract model dialog: do not crash if port's parent is NULL -Fix: missing has_coords attr from quick_attr to attrib dialog obj converter helper function -Fix: dlg_attrib #includes its own .h to avoid desync'd function proto -Fix: tree dialog should refresh preview after compilation finished -Fix: refresh preview when local lib entry is updated/refreshed -Fix: don't let the parametric library window open for non-parametric symbol -Cleanup: const correctness -Cleanup: remove unused var -Cleanup: incompatible pointers -Add: attr editor button in tree view [tutorial] -Add: getting started video -Add: devmap video -Add: heavy symbol video -Add: portmap video -Add: text video -Add: dyntext video [util] -Import: awk format helper from pcb-rnd (needed by packages.sh) 0.9.1 beta-test (r5277+bugfix) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [export_png] -Fix: librnd 3.2.0 does not yet have pixmap export API, disable pixmap exporting 0.9.0 beta-test (r5277) ~~~~~~~~~~~~~~~~~~~~~~~ [boxsym-rnd] -Cleanup: use http url for contact instead of email address (due to spam) [devmap library] -Add: 2n3904 - a real common NPN for the getting started tutorial -Add: led5 for the getting started tutorial -Add: polarized rcy, for the getting started video [diag] -Add: UndoSplit() to make undo of batched operations possible step-by-step for debug [doc] -Fix: design: halign values left and right replaced with start and end for clarity (mirroring affects this) -Fix: lihata native file format spec: wrong root types for sheet and devmap -Update: direct traffic to pcb-rnd@ instead of cschem@ (mailing list merger) -Rename: all examples from *.lht to *.rs (and *.rp) -Add: text mirx and miry in design doc: we had to deal with text mirrors because of inherited transformations anyway, adding an explicit field makes it easier to manage alignments -Add: lihata format doc: text object mirx and miry -Add: refine {des3:36} on the single line text case when halign is considered -Add: document what happens if forge tries to append/prepend array to scalar -Add: scripting example: quick attribute for tolerance [export_abst] -Add: plugin for exporting the abstract model to text [export_png] -Fix: uninitialized memory on xform -Fix: when exporting in monochrome, fill polygons with grey above a certain threshold of light colors -Fix: set fill-gray-threshold bounds to 0..100 (fixes the GUI entry) -Add: export pixmap objects [export_ps] -Fix: uninitialized memory on xform -Fix: when exporting in black-and-white, fill polygons with gray above a certain threshold of light colors -Fix: when exporting in monochrome, fill polygons with gray above a certain threshold of light colors -Fix: make it clear that gray threshold is considered only in monochrome mode export (both in ps and eps) -Fix: greyscale poly fill: more accurate approximation of the rgb color using an average of components -Fix: set fill-gray-threshold bounds to 0..100 (fixes the GUI entry) -Cleanup: remove some pcb reference leftovers -Change: make --fill-page default on -Add: automatic toc; hint on toc being automatically decided [export_svg] -Fix: help uses .rs instead of .sch for example -Fix: uninitialized xform [export_tedax] -Fix: help uses .rs instead of .sch for example [font] -Change: replace ttf font with pcb-rnd's font engine -Import: aussiefont from edakrill [gui] -Fix: update top window title only if currently shown sheet's data changes (but not if buffer changes) -Fix: trigger autocompile on the sheet that had the change (but do not start autocompile timer on buffers) -Fix: right click context menu respects only_floaters and lock_floaters -Change: switch over default file name endings to .rs and .ry [io_lihata] -Add: save and load text object mirx and miry -Change: switch over default file name endings to .rs and .ry [lib] -Fix: wrong sign when applying child xform rot on text -Fix: text mirror function sets mirror flags instead of rotating -Fix: text: invert child xform rotation angle on odd mirrors -Fix: halign enum values renamed from LEFT/RIGHT to START/END to match the spec -Fix: text mirror: if text is not bbox-specified, do not change spec2 coords (they should be calculated) -Fix: don't mirror spec2 of text objects - spec2 is really a width+height from spec1 -Fix: inst2spec on group: don't invert rotation direction -Fix: cgrp_inst2spec(): do not do inverse transformation, but replicate normal parent transformation, that's how we get the same coords as during render -Fix: get text rotation vs. mirror right (both for unrotated bbox and precalculated for rendering): rotate first, then mirror -Fix: remove rotation tweak in text mirror operation: it turned out to be a workaround for a rendering bug -Fix: rewrite floater_origin() to use raw matrix transformations so that it considers mirroring too -Fix: text_inst2spec() calculates new x2 and y2 using width and height to preserve orientation of bbox-specified text -Fix: text_inst2spec() preserves mirror bits -Fix: cgrp_inst2spec(): rotation angle should be inverted even if parent is not mirrored but target group is -Fix: integrity test shouldn't segfault (but report error) if connection parent is NULL -Fix: conn update shouldn't add deleted objects to connecions (but should still run the update to remove it from existing conns) -Fix: when calculating conn object coords ignore pairs of objects that have the same parent -Fix: conn object: when a referee is removed, check if remaining referees are from at least 2 different groups; if not, remove the connection -Fix: don't crash when attrib string val modified to NULL -Fix: terminology: when creating a new terminal, use "TERMNAME" for initial value instead of PINNAME -Fix: connection object graphics: don't draw connection mark between same-group objects -Fix: batch all remove side effects into a single undo slot -Fix: cnc_conn undo print: print full path of the object being added/removed in a conn -Fix: conn auto-add: do not (undoably) add an object to a connection if the object is already in the connection (adding it the second time would have no effect but then adding it to the undo list would confuse the system after undo) -Change: "place terminal" shouldn't mark the terminal name dyntext with the floater flag; the user should modify a name attribute -Add: remember raw inst_rot and inst_mir* when updating text to make text render's job easier -Add: text spec mirx and miry -Add: text_modify() can modify mirx and miry -Add: apply text mirx/miry when calculating bbox corners -Add: new layer for hosting text object meta (bbox and orientation) -Add: symbol-to-component name engine hook -Add: optimization: do not draw a new wire if it fully overlaps with an existing one -Add: search: first_gui object with an user specified filter callback -Add: csch_search_first_gui_inspect_filter() for user filetering on floaters -Add: comment that allows using the mark field for any sync plugin -Add: implement csch_attrib_setptr() - saves an strdup()/free() -Add: undo helper macro for placing marks on the undo list -Add: better floater placement: if hint coords available, place wire-net floater there [menu] -Add: {a v} changes the value attribute, {a f} changes the footprint attribute [place] -Fix: place terminal and place attrib: mark the sheet changed [propedit] -Add: expose text object mirx and miry [query] -Add: support for text mirx and miry -Fix: missing halign enum name "center" -Fix: advanced search tabs: we don't have refdes but name -Cleanup: pcb-rnd reference leftover in window title [renumber] -Add: plugin for automatically renumbering symbols (filling in the name attribute) [sch-rnd] -Fix: text alignment in mirrored bbox specified case -Fix: default file naming in buffer save is .sy for symbol -Fix: buffer: when picking up floater for copy, do a reverse transformation of parent transformations so that the coords in buffer are in the absolute coord system -Fix: don't hardwire .sch-rnd for dot path in menu paths,use config.h variant so it can be overridden -Fix: when clicking for selecting an object and there are overlapping objects, ignore the one already selected (lets you cycle through objects) -Cleanup: pcb references left over in config help -Change: when saving buffer to symbol, offer sym.rs as default file name, where sym is easy to replace (already selected) -Move: lock_floaters and only_floaters are handled in central gui search so that things like {a v} don't need to reimplement them -Add: implement start/end/center text alignment -Add: implement word and glyph justified rendering -Add: draw textbbox and origin controlled by text meta layer visibility -Add: sch_rnd_search_first_gui_inspect() that applies only_floaters and lock_floaters -Add: menu for listing unnamed symbols (hotkey: {s l u}); rename {s k} to {s l k} for consistency [sch_dialogs] -Fix: allow attribute dialog object search to pickup terminals (use the _inspect() search), e.g. in {a a} -Add: tree dialog: print connections oid-paths for a conn object -Add: tree dialog: preview for a conn object should zoom to the bbox of all calculated intersections ("green stuff") and hilight all objects participating in the connection -Add: apply hint coords for floater placement when attribute dialog invoked for object [std_cschem] -Add: rename components ending with ?? to oid based unique naming (to avoid collisions) and warn the user -Add: plugin configuration with fix_unnamed_syms (enabled by default) [std_forge] -Add: plugin for cschem standard attribute forging -Add: put the plugin on default views; run forge before std_cschem for the connect list to work from forge output [std_tools] -Fix: drag&drop move selected: don't ignore selected object when clicked -Cleanup: remove pcb_ prefix leftover -Cleanup: remove tool: no need to mark sheet changed, low level code does that -Add: double click while drawing lines or wires stops drawing [symbol] -Cleanup: rename symbols from *.sym to *.rs -Fix: opamp, comparator: V- transformation to keep text readable -Fix: use bbox-defined text for rail symbols with center alignment -Fix: common awk: terminals are created with all labels properly mirrored so they grow away from terminal origin in all four orientaitons terminals can be placed -Fix: ldo symbol term label directions -Change: term label shouldn't be floater but dyntext and the user should modify a name attribute -Change: common sym awk: term label shouldn't be floater but dyntext and the user should modify a name attribute 0.8.4 alpha5 (r4889) ~~~~~~~~~~~~~~~~~~~~ [act_draw] -Add: DrawLine(), DrawRelease(), DrawGroup action(), DrawCircle(), DrawArc(), DrawWire(), DrawText() [backann] -Add: back annotation plugin with bap import and GUI [boxsym-rnd] -Fix: strip whitepsace from pin field args -Fix: pin alignment corner case with only top and bottom pins -Add: generate group uuids -Add: don't overwrite input with monolith on file name match, print an error instead -Add: throw error on multiple definitions (terminal name non-uniq) -Add: pin label option -Add: let the user tweak text size estimation factor [build] -Fix: remove redundant broken map_plugins rule -Add: generate Makefile.conf to help install scripts later -Add: make install -Add: install minuid CLI tool into libdir - boxsymrnd depends on it [construct] -Fix: don't even start converting to poly below 3 objects [doc] -Fix: design: specify source format only for the case the data is saved - don't care how it is stored in-memory; clarify when the UID based source format needs to be used -Fix: pcb-rnd terminology change from element to subcircuit -Fix: design: components and nets are primarily identified by their name -Cleanup: unnecessary full path in example -Cleanup: rename cschem to sch-rnd in svn url -Change: design doc: uuid (and src_uuid) are not attributes but non-mandatory properties of groups -Import: action doc scripts from pcb-rnd -Add: uuid and src_uuid in lihata format doc -Add: backann example: name nets because anon net name is not stable -Add: design: project file terminology with the root sheets -Add: design: {6:29} explains the relation between hierarchy and the optional project file [examples] -Fix: use a.name instead of A.name in dyntext -Fix: use a.devmap instead of A.devmap -Add: (instance) uuid in all groups -Add: full back annotation example [export_png] -Add: screen-colors export option that keeps selection and hilight colors -Add: --view parameter [export_ps] -Fix: restore view on error -Add: screen-colors export option that keeps selection and hilight colors -Add: --view parameter for ps and eps [export_svg] -Add: screen-colors export option that keeps selection and hilight colors -Add: --view parameter [gui] -Add: autocompile: GUI and implementation -Add: sheetsel: mark non-root sheets with parenthesis [io_lihata] -Fix: test parse accepts file only if it is of the requested type -Add: load and preserve project file lihata doc in memory, in the project structure -Add: save/load grp/grp_ref uuid and src_uuid [lib] -Fix: text update: optimization gone bad: can't skip detailed angle transformation if text is mirrored in any direction, even if input rotation is zero -Fix: don't crash if group ref target is NULL in csch_cgrp_ref_get_attr() -Fix: csch_grp_ref_get_top() shouldn't crash when sheet->direct or sheet->indirect is queried -Fix: sheet revert should also trigger sheet post-load event at the end, it's really a load -Fix: sheet uninit frees the undo list; sheet init resets/initializes the undo list -Fix: wrong order of local lib uninit when sheet is uninited may cause broken hash table in symlib_local -Fix: when converting a group ref to group, copy any attribute of the referee that's not set in the group -Fix: grp_ref embed to grp changes the sheet so should call sheet_changed -Fix: compile net merge should copy sources into the new net -Fix: compile net merge: remove sources from the source group which shall be empty by now -Fix: don't crash in "find sheet by load name" in case load name of a sheet is NULL - it just shouldn't match -Fix: integrity check: don't complain about object disjoint from a wirenet if object is a floater (typically it's the netname) -Fix: attr undo list free: don't crash on swapped attr being NULL (normal case) -Fix: wirenet draw: group all operations in a single undo slot when a new wire segment merges existing wires -Fix: default export file name for unknown page is unknown.EXT, not sch-rnd..EXT -Change: make plug io types a bitfield so multiple types can be probed -Add: upgrade project struct for remembering the lihata document (for now) and mark that it will be an extension of the librnd project struct at librnd 4.0.0 -Add: bit to mark if a sheet is not a root in a project -Add: when compiling a project, start compilation only from root sheets, aux sheets should be reached through root sheets -Add: generate new (instance) UUID for groups as they are allocated -Add: copy group source uuid on alloc and dup -Add: undoable group uuid modify calls -Add: assert() on group ref being NULL in csch_cgrp_ref_get_attr(): it's usually indication of a bug, reveal it ASAP in debug mode -Add: extend the object hash API with a more flexible, bitfield ignore -Add: object hash can ignore floater geo and grp placement (useful for loclib symbols) -Add: integrity check: every group object shall have an instance uuid -Add: loclib edit callback in backend API -Add: utility call that figures if a concrete group is a source of an abstract object -Add: mark wirenet merge source as ghost so it can be omitted from output -Add: wirenet util: count junctions on a line object -Add: wirenet util: function to determine if a new wire line would hit the endpoint of an existing wireline with its middle -Add: publish attr source append API so that failed writes can be logged -Add: compile: log failed attribute writes -Add: attribute source parse: also parse type bits -Add: publish csch_conn_text2ptr() -Add: integrity checks on connection objects so strange/invalid cases are caught earlier -Add: export util: helper functions to compile and restore abstract model around export to handle --view [library] -Fix: use a.devmap instead of A.devmap so that compilation can change the printout -Fix: excess group in coil-var-3 -Change: use a.value instead of A.value for display value so it can be calculated during compilation -Cleanup: use for initial value for all stock librayr symbol - it's dangerous to use a valid-looking value, the user may forget to modify that after placement [propedit] -Add: handle UUIDs -Add: help text for the most common fields [query] -Fix: remove PCB from query help -Fix: remove ctx from linked list when dialog is closed -Add: support for grp .uuid and .src_uuid -Add: close all the sheet's search dialogs when sheet is unloaded -Add: close all search dialogs when plugin is unloaded [sch-rnd] -Fix: poly arc fill for negative delta shoudl result in positive steps -Fix: poly fill approximation assumes 600 DPI on exporters that don't set coord-per-px -Fix: font rendering compensation for x-mirrored text (180 deg rotation before render) -Fix: menu: use 'k' for grid units now that librnd supports it -Fix: don't list 32k and 64k for default grid units, they are out of range -Fix: wrong uninit sequence: free paths only after hidlib uninit, else saving config to user file (e.g. saving window geometry on exit) will break -Fix: menu: connection attr quick change is really about symbols not a generic groups, move it in the right submenu -Change: rename conf node prj.sheets to prj.root_sheets to prepare for hierarchic designs -Change: crosshair color in default config to make wires more visible -Change: enable autocompile by default -Add: draw: xform bits to disable rendering selection and hilight colors -Add: also list aux sheets in project file for hierarchic designs to be fully specified -Add: multi: load all sheets of a project file when the project file is loaded directly -Add: mark non-root (aux) sheets when loading all sheets of a project file -Add: UUIDs in the default sheet -Add: when creating a new sheet, make new UUIDs for sheet->direct -Add: lock floaters, only floaters config & menu -Add: menu: {a s} for slot change shorthand [sch_dialogs] -Fix: tree preview renders the sheet of the object, not the currently gui-visible sheet -Fix: library dialog refresh: get the name of the root lib entry and use that to decide if it's the subtree and to log what got refreshed -Fix: refresh preferences dialog general and lib tabs on board change -Fix: close open library window when sheet is closed -Fix: undo dialog shall be global and shall always display data for the current sheet -Fix: tree dialog has one root per sheet (matters when showing a multi-sheet project) -Change: disable showing hidlib-name of the sheet - this concept should be moved from librnd to pcb-rnd as legacy -Change: tree dialog is really per project local, not per sheet local -Add: need to refresh any open library window in sheet postproc: revert may remove local lib -Add: library dialog: optional button for loclib edit -Add: do not display ghost abstract objects -Add: update tree (but with a shorter timeout) when sheets in a project change [std_tools] -Add: arrow tool repsects only-floater and lock-floater config [symbol] -Change: switch over common_sym awk to rely on externally supplied minuid seed to guarantee unique UUIDs -Add: license banner for common awk -Add: uuids in all lib symbols -Add: common_sym awk: generate uuid field for each group if minuid is initialized -Add: common sym awk: sym_term() has a label option that overrides the terminal name printout with whatever user requested label [symlib_local] -Fix: print string attribute for name in error log instead of binary garbage -Fix: symlib_local_free() gets a lib ptr but sh and shna contain groups; look up the group -Fix: loc_replace(): need to remove from hash/lib first, only then can the group be free'd, else hash removal would fail -Fix: parsed the wrong string in "object:oidpath" addressing -Fix: grp -> grp_ref loclib conversion: always keep the role attribute explicitly - it's too important to lose trying to rely on lib refs -Fix: set board changed after converting grp to loclib grp_ref -Add: loclib edit callback, invokes attribute editor -Add: preserve attributes that differ from the loclib version when converting a group to group-ref [util] -Import: deblist and keylist from pcb-rnd for doc to generate -Import: list_dialogs (devhelper) from pcb-rnd, adapt to sch-rnd 0.8.3 alpha4 (r4400) ~~~~~~~~~~~~~~~~~~~~ [boxsym-rnd] -Fix: monolithic symbol: avoid overlapping terminals if multiple slots use the same side -Fix: remember multi-slot coords and insert separator only when side got incremented -Fix: when generating monolith, prefix slotted pin names with slot number to make them unique [build] -Add: generate, compile, link and use embedded version of default config instead of depending on ./ -Add: embedded default sheet fallback -Add: embedded version of the menu file [construct] -Change: allow arc in poly while converting objects to poly [doc] -Add: developer doc on how local symlib copy&paste works (especially in multi-sheet setup) -Add: lihata file format versions -Add: lihata format doc [export_tedax] -Add: --view argument for selecting which view to export [gui] -Fix: sheetsel: use the basename of the parent directory of the project file for project name -Fix: off-by-one bug in sheetsel project basename calculation when there's no '/' in project path -Del: redundant Unselect() implementation -Cleanup: get rid of infobar's global sheet dependency where easily possible [io_lihata] -Fix: do not save or load conf subtree in buffer save/load -Fix: do not save editor/mode in sheet conf subtree (to reduce noise) -Add: buffer load/save hooks and test-parse [lib] -Fix: remember template name for new sheets so revert-sheet can load the template even tho loadname and hidlib name are NULL (for enforcing save-as) -Fix: const correctness: csch_cfg_multiport_net_merge is not modified by the lib -Fix: group dup shouldn't crash if dst allocation (with enforced ID) fails but return NULL -Fix: project export name: when deduced from sheet, truncate "extension" of the sheet load name and append both view name and a * -Fix: split up disjoint wirenets after a delayed/inhibited wirenet update -Cleanup: rename export_netlist to export_project because the real difference is operating on the abstract model exporting the whole project, what the exporter does with it is its own business -Del: project->symlibs (was in use before project switched to coraleda-standard config approach) -Add: sheet post unload event -Add: Unload() action (works for sheets for now) -Add: event for copy-to-buffer so that local lib can take over -Add: API for buffer load/save -Add: csch_cgrp_ref_ptr2text() -Add: integrity check: grp_ref object must have a referee and if it's a pointer, it must be within the same sheet -Add: pass on the sheet that triggered project export to figure output name, just in case project does not have a name -Add: project compilation gets a viewid arg so it doesn't necessarily rely on project's default view (allows reentrant export on a different view) -Add: get-view-idx-by-name API -Add: CompileProject() has an optional arrgument for naming a view to use -Add: "deleted" concept in group ref's child_xform; do not export deleted items -Add: function to clear the cache portion of child_xforms of a grp ref -Add: assert() on trying to use removed child xform -Add: throw an error for "grp-ref with child xform within grp-ref" for now -Add: integrity check: detect disjoint wirenet groups -Add: helper macro that converts object[=oidpath] into a keyword (F_Object) and an object pointer resolving the oidpath [propedit] -Fix: don't use int for enum: unsafe when passed as pointer -Fix: passing incompatible pointer to modify() on polygons -Fix: remove pcb-rnd-specific scope hints from help -Add: implement toggle for polygon has_fill and has_stroke -Add: Propset() -Add: Proptoggle() -Add: Propget() action -Add: Propprint() action [scconfig] -Add: detect system font dir (testing dir existence from a list) and include it in generated config.h -Add: --fontdir to override autodetection [sch-rnd] -Fix: multi: calculating the wrong project file name (dir, not file) -Fix: move generating sheet post-load event from lib to sch-rnd's multi so that project config is already loaded by the time the event is emitted -Fix: multi: properly restore config state after a failed load -Fix: run group update on pasted object only if it's really a group -Fix: do not accept rc/font_dirs on project or design role (that's too late for the font engine) -Fix: print all GUI plugins available (not only the ones loaded) -Fix: refuse to copy grp_ref objects to buffer - they would break on paste later if the sheet changes or if pasted on another sheet -Fix: do not export each sheet of a project from project export -Fix: select the arrow tool after loading a new sheet so that a sheet saved 'mode' wouldn't cause problems -Fix: typo in the menu file: saving buffer group should work on any group, not just symbols -Cleanup: remove global project dependency from -x exporting -Cleanup: remove dumping the abstract model from project netlist export call - there are better ways looking at the abstract model by now -Change: SaveBuffer() and LoadBuffer() argument for saving whole buffer is "All", not "Sheet" as the save format has a different header -Add: make font mapping code substitute $() in font dirs so scconfig detected font dirs can be fed in and use scconfig detected font dir by default -Add: multi: support for sheet unload -Add: multi: helper for finding next/prev sheet from a given sheet (for fallback after an unload) -Add: sheet unload menu -Add: be more explicit about which operations are on sheets in the file menu -Add: fill in rc.path.design using the sheet's file name -Add: --show-paths prints library search paths and font dirs -Add: emit event BUFFER_COPY_CUSTOM and perform the copy only if no plugin did it -Add: BufferSave() and BufferLoad() works on whole buffers (op is "All") -Add: fail with an error message when pasting a group-ref (must be handled by plugins, e.g. symlib_local) -Add: generic project export call gets optional explicit name from the export plugin -Add: implement RemoveSelected() for {s r} -Add: UnSelect(All) action with a menu binding -Add: Select(All) action with menu binding -Add: Select(Invert) inverts selection -Add: draw code for arc-in-poly -Add: remember file name when sch-rnd was started with a file name pointing to a non-existent file and a new sheet had to be created so save won't ask for the file name [sch_dialogs] -Fix: quick attr: accept non-native-action fungw functions for quick_attr callback so that scripts can implement quick_attr as well -Fix: update (global) undo dialog content after switching sheets -Add: about box -Add: attribute dialog: when creating a new attribute, also ask for the value for quicker edit -Add: attribute dialog: set value on existing attribute in 'new' if both key and value are specified -Add: EditText() first arg object=oidpath works -Add: PenDialog() accepts object=oidpath as first arg [std_devmap] -Fix: compiler error message prints devmap name string (not the devmap attribute struct) [std_tools] -Fix: batch undo operations of line endpoing move: in case of wire lines this may be a series of operations to break wirenets -Fix: reset movecopy endpoint when a new move starts so it doesn't accidentally inherit previous endpoint state [symlib_local] -Fix: copy loclib ref to buffer should create a "purpose=symbol" grp within buffer's indirect where the local symlib is grown -Fix: don't require keeping the original OID when creating indirect symbol loclib entry - pasting from buffer will oftne have collisions in OIDs -Add: when loclib grp_ref is copied to buffer, also copy the referee into the indirect subtree of the buffer -Add: when copying to buffer, rebind ref so it doesn't point to the sheet's indirect -Add: sanity checks for loclib grp_ref paste -Add: paste grp_ref with also pasting inderect referee and fixing up the reference 0.8.2 alpha3 (r4136) ~~~~~~~~~~~~~~~~~~~~ [boxsym-rnd] -Update: use attribute -symbol-generator instead of symbol_generator to avoid collisoin (and dash for consistency) [build] -Fix: explicit rule for building load_cache object -Fix: explicit rule for building src_3rd ttf_bbox's mapper [doc] -Fix: do not hardwire UID as means of reference from abstract to concrete model, leave the decision to the implementor -Change: rewrite attribute source syntax to make the GUI be able to trace back sources -Add: release procedure imported from pcb-rnd, tuned for sch-rnd alpha state -Add: explain that the indirect subtree hosts different group types, including devmap -Add: explain the first level of groups within the indirect subtree -Add: document how --layers works -Add: computer readable tables of query fields for concrete objects; generated html version -Add: query: copy relevant parts for functions from pcb-rnd doc -Add: portmap & devmap & display name document -Add: document loclib_name field for groups -Add: attribute key prefix '-' and '+' to control merging -Add: devmap file format -Add: document child_xform [examples] -Del: old project file example - we've switched to config-tree-based project files -Fix: portmap example slot2.lht: specify the portmap only once -Fix: remove redundant copies of the titlebox -Update: switch over from slot to -slot attrib avoiding attrib collision -Add: include devmap loclib in devmap example (devmap loclib is mandatory) [export_lpr] -Add: print (using generic lpr implementation from librnd) [export_png] -Change: switch over from local copy of draw_png to using librnd 3.2.0's pixmap draw plugin -Add: --layers [export_ps] -Change: switch over from local copy of ps/eps draw code to librnd's lib_exp_text -Add: depend on lib_exp_text -Add: --layers for ps and eps [export_svg] -Change: switch over from local copy of ps/eps draw code to librnd's lib_exp_text -Add: depend on lib_exp_text -Add: --layers [gui] -Fix: potential NULL pointer deref on load -Fix: overwrite sheet's loadname on save as to keep it in sync (not on plain save) -Fix: invalidate_all() after compile - a lot of dyntext has changed -Fix: compile button invokes the action not with the project that was active at setting up GUI but the project that's active at the moment (the user may have switched in multi-sheet setup) -Import: title.c from pcb-rnd to set app top window title -Add: action for relative-switching sheets -Add: adapt title.c for sch-rnd -Add: sheet selector (multi-sheet support) [io_geda] -Fix: more detailed error messages in path parsing -Fix: separator in H path xy coords is not comma but space [io_lihata] -Fix: project file header to match pcb-rnd's -Del: remove old project file loading - switched to librnd -Cleanup: switch over from csch_message() to rnd_message() -Add: save/load conf subtree to/from sheet file -Add: load and save group ->loclib_name -Add: accept coraleda project in test-parse [lib] -Fix: export util: determine default export file name using loadname of the sheet, not realname (makes a difference if sheet is a symlink) -Fix: when creating dummy project file, make sure the the proper dummy lihata doc is created for it -Fix: reverse prio levels of plugins - order should be from lower prio (larger integer) to higher prio (smaller integer) according to the spec -Fix: attrib source type is not a single char but a string (to match the spec) -Fix: uninitialized stack var caused wrong net name for comparison/log in wirenet merge -Fix: segf when compiling on unsaved page -Fix: compile: when a group ref overwrites an attribute of the referee with the same prio, that's not a compilation error, simple skip the write -Del: local implementation of project file name calculation (csch_project_name_by_sheet_name()) -> use librnd's -Del: get rid of local message.[ch] implementation in favor of librnd's -Change: high level attrib code always gets source as pointer, so that allocation can be simplified in a subsequent commit -Change: make struct csch_source_arg_s opaque, making the allocation scheme an internal business of the attrib code -Change: make connections layer visible by default -Optimize: simplify temp attrib source allocation, save two malloc()s -Move: local lib support, remember loclib_name, centrally allocate loclibs -Add: library changed event -Add: layer visibility table for default exports -Add: temporary workaround until librnd4.0.0: LoadFrom() uses multi.h API to load multiple sheets instead of replacing current sheet -Add: csch_lib_clear_sheet_lib() - will be useful for cleaning the library before a global rehash -Add: preview_text hook for library backends, so non-symlib implementations can get something displayed in the library window -Add: unset dummy bit on project file when it's written out by librnd -Add: compiler: implement attribute collision rules, introducing the '-' prefix for omitting attribute promotion -Add: run standard attribute compilation on ports -Add: API for attribute source decompile -Add: utility function for embedding a group_ref (converting it into a group) - floater transformation not yet done -Add: function to remove a lib entry from the tree -Add: new drawing layer for symbol meta (bbox & status) [library] -Update: prefix all the misc attributes with the a minus sign so they are not promoted to the component [propedit] -Fix: don't let group ref child objects changed [query] -Fix: clean up user functions before compilation instead of expecting the previous compilation succeeded -Fix: throw error message if there's user function in expression -Fix: report compilation errors using rnd_message() instead of --debug-only trace -Fix: reset lex buffer before parsing a new script (matters after a compilation error) -Add: include last seen line number in compilation error report [scconfig] -Fix: use configure .sch-rnd dot dir (under $HOME) instead of hardwired string -Cleanup: switch over to use /local/csch instead of /local/pcb in the db tree [sch-rnd] -Fix: uninit gui support plugin before unloading all plugins so that it won't hold its deps back with refco and every plugin is properly uninited and unloaded -Fix: typo in buffer code: when buffer place event took over creating the target object, take the right object for result -Fix: set rnd_render in expose_main() so that gui exporting works -Fix: buffer paste at 0;0 should call group update with xform (there's no move that would do that) -Fix: arrow tool shift-click on selected object should unselect it -Cleanup: remove code dups with pcb-rnd, using librnd's new exec prefix helper -Cleanup: move export helper function from sch-rnd.c to export.c -Change: use our own app's config prefix in the default conf for clarity -Add: explicit rule for compiling src_3rd/libuundo objects -Add: print runtime librnd version as well -Add: make it possible to render (draw) using local layer visibility instead of the current GUI's (required for reliable exports) -Add: export helper: interpret a layer visibility description string and set xform visibility accordingly -Add: export menu -Add: print menu -Add: multisheet: temporary code for switching sheets by saving/loading config states (before librnd 4.0.0) -Add: SymlibRehash() action -Add: prj/ conf subtree with list of sheets, allowed to load only from the project file -Add: refuse to load view conf from the sheet file or cli, scope should be at least project -Add: emit LOAD_POST event after loading a sheet -Add: object right click context menu for symbol vs. local library handling (embed/unembed) -Add: draw dashed bbox on the symbol meta layer -Add: symbol meta layer: draw an L or E in the top left corner depending on whether the symbol is loclib grp-ref or embedded grp [sch_dialogs] -Fix: missing return value on library dialog error exits -Fix: library: remember the full path of cursor so it can be restored after extending the local lib -Fix: don't let {e t} edit group ref child objects -Fix: tree dialog: track of what object was last shown in preview and do not change zoom/pan, only redraw on status changes as long as object selection did not change -Fix: generate file name change event on changing sheet name to get the titlebar updated -Fix: attr dialog: prefix group ref referee keys with a space so they are not found for most context (and cursor is not set to them when a target key is requested) -Fix: attribute dialog: disable the floater button for group refs (grp refs can't host new objects) -Fix: attribute dialog: allow limited edit of referenced group attributes -Fix: attribute dialog: don't let the user change priority value on referenced group's attributes -Fix: don't crash on library selection if nothing is selected when "use selected" is clicked, take it as a cancel -Add: update all library GUIs open for the related sheet upon a library changed event -Add: attribute dialog displays referenced grp's attributes as well -Add: dyntext edit: when invoked on a grp_ref direct dyntext child refering to the group_ref's attribute, invoke the attribute editor, that's the only way to change the text -Add: dyntext edit: throw error if grp_ref child was a dyntext but could not be edited -Add: dyntext edit: widgets to directly access/edit attribute value in the simplest and most common cases -Add: print error messages when the attr edit button can't figure which attribute to edit -Add: create the PrintGUI() action using librnd's implementation -Add: attribute dialog: set the name of the left-right pane for testing save/restore -Add: tree dialog preview: show original sheet, not current GUI sheet (it is a local dialog) -Add: if lib backend preview_text() is available, use that for generating the preview instead of trying to draw a symbol (useful for non-symbol libs) -Add: button for following attribute history row -Add: AbstractDialog() takes optional abst_id and attr_name to navigate cursors to an existing attribute -Add: cross-call from abstract attribute history to attr source abstract object (opening the right attribute dialog) -Add: abstract attribute source traceback button: when concrete object attribute is clicked, open the attribute editor with the object's oidpath and attr name to get the cursor right -Add: abstract attribute side: when presenting attribute history, auto-select highest prio line, that's the one that determined the final value -Add: include libmaster's name and sheet name because multiple instances may be open -Add: special buttons for local lib handling [std_devmap] -Fix: do not modify portmap attribute values while parsing for assisted edit -Fix: assisted portmap edit: return 'changed' state after modification -Fix: port map quick edit: memory management bug on initial pcb/pinnum fillin -Update: prefer -slot over slot for the slot attribute -Add: more detailed error messages on invalid devmap attributes -Add: figure which symbol(s) contributed the devmap attribute -Add: local lib support - automatically save any devmap used on the sheet in the local lib -Add: implement loclib refresh-from-external-lib -Add: count/list devmap usage from local lib [symlib_fs] -Fix: when loading a parametric symbol from the rendered temp file, replace group file name with the original parametric symbol file name - nobody is interested in the temp file name [symlib_local] -Add: when enabled, create local lib reference for buffer pasted symbol groups [target_pcb] -Del: no need to manually derive port attributes, they are all compiled centrally -Fix: when display name is set, description should include where it was copied from -Fix: typo in attrib source plugin name [util] -Update: example boxsym has "-slot" attr so it doesn't propagate 0.8.1 alpha2 (r3606) ~~~~~~~~~~~~~~~~~~~~ [boxsym-rnd] -Fix: do not emit excess, zero sized box -Fix: swap order of pins from bottom->top to top->bottom on the left and right side to match the order in the file [build] -Fix: replace "fp" plugin class with "symlib" class as sch-rnd has symbol libraries, not footprints -Fix: classification of std_* plugins (they are feature, not io) -Add: ./configure: --enable-bison and --enable-byaccic -Add: define sphash so that plugins can use it -Add: new plugin class "engine" to separate them from more generic features [doc] -Add: generated doc on stock parametric symbols -Add: devmap: specify how non-slotted portmap entries look like -Add: describe how does the display/name attribute work, explain heavy symbols -Add: explain portmap and devmap [examples] -Add: a real LDO example circuit (using the stock lib and portmap) -Add: a working devmap example with 2 of the same n mosfet symbols with different pinouts -Add: devmap example conn1 gnd and vcc connections -Add: slotting example with devmap -Add: inhomogeneous slotting example (clocked SR latch built of 4 NAND gates) -Del: project file special subtree for symlibs (project file becoming config based) [export_png] -Add: disabled-by-default until draw_png is moved to librnd [export_ps] -Add: export ps (ps and eps) [export_svg] -Add: standard svg export; low level draw copied from pcb-rnd [export_tedax] -Add: register an export HID as well so the standard librnd export mechamism works -Add: call the generic exporter from the export plugin -Add: more details in error messages on pin number/refdes -Fix: use abstract net's ->netname for the final fallback if there's no better attribute based name -Fix: do not export components with no name; such component is meant to be graphical by definition -Fix: no parent refdes is not an error, it only means parent component (and all pins) should be omitted from the netlist -Fix: prefer display/* attributes over pcb/* attributes (do not hardwire workflow) [gui] -Fix: use gui_inspect search for right click so that terminals are picked up over symbols, wirenets and floaters -Add: compile box in the top status bar -Add: view button invokes ViewDialog() [io_geda] -Add: plugin main to read gschem sheets and symbols [io_lihata] -Fix: reverse ordering of negative OIDs to preserve object order on a load-save round trip (new negative OIDs are assigned in decreasing order) -Del: don't load symlib dirs from a special subtree from project file, it'll be part of the normal config tree -Add: test parse callback -Add: support for group ref child xform load and save [lib] -Fix: avoid excess object redraws in text update -Fix: wrong ordering of io plugins by priority: higher value is better -Fix: if test parse returned okay, rewind() f once again because the real parser may also depend on it; also rewind after test parse when loading group -Fix: inhibit redraws during load, just in case the loader triggers some -Fix: wirenet util: don't print warning on ignored text object in wirenet mapping; such text object is typically the netname -Fix: search all selected: recurse into non-selected groups so that partial selection is found -Fix: if a new wirenet group is created during recalc freeze, add it to the recalc list (to be recalced after unfreeze) -Fix: wirenet unfreeze merge: recalc connections as well; calculate final net name on unfreeze merge, communicate renames using error messages so that the user gets notified -Fix: batch undo ops for drawing a wirenet segment as it often breaks down to multiple junction and conn operations -Fix: recalc connections on wirenet line move -Fix: do not add the same library root twice even if it got two map requests -Fix: reverting before save should get back to the default sheet -Fix: invalid free(): on sheet uninit remove comm_str only after removing all pens because pen hash depends on comm_str -Add: fully working net/component compilation that considers engines and views -Add: API: csch_oidpath_list_clear(), csch_text_invalid_chars() -Add: API: abstract type name resolver -Add: pointer domain for object arrays (vtp0 of csch_chdr_t *) -Add: recursive wirenet recalc freeze/unfreeze with a single recalc at the end -Add: wirenet: group merges after recalc unfreeze -Add: i/o API: call for backup sheet save (no side effects like resetting the changed flag) -Add: remember if a project is dummy (not loaded or saved, just created from scratch) -Add: abstract objects shall remember their abstract model parent for easier callbacks -Add: throw an error on port trying to connect to two different nets (except when it is being merged) -Add: project should remember last compilation abstract model so it can be displayed -Add: new search flavor, gui_inspect() that allows some of the non-movable/non-selectable objects to be picked up too (symbol lock bypass on terminals) -Add: project view accessors: return current view or view by name -Add: helper function to get the abstract object for a concrete object -Add: dyntext resolves abstract model's attributes using a.key references -Add: API: introduce an extra argument in project loading to tell if all sheets need to be loaded recursively as well -Add: API: project util: clear view list -Add: API: helper function to decide if any parent of an object is selected -Add: API: object hash functions -Add: API: group bit for preferring local lib -Add: group ref child transformations (experimental) -Change: use \001 instead of for dyntext rendering: should render as an empty box and it takes much less space and likely fits where the non-empty printout would -Change: auto terminal placement creates a floater for display/pinnum instead of concrete model's name to let filter plugins decide what to print -Del: lib_find API: always use cached lib -Move: realpath resolved from symlib_fs to core lib - will be needed by any fs based library -Move: fs lib mapping call from symlib_fs to core lib - will be used by any lib implementation -Cleanup: rename library.[ch] to util_lib_fs.[ch] for naming consistency and code repurpose -Cleanup: remove ->netname of abstract net, keep ->name only (consistent field naming) -Cleanup: in the concrete model only groups have attributes, remove attr hash from chdr -Cleanup: unreg actions on unload; related memory leaks [lib_alien] -Split: move read_helper out from io_geda to a reusable lib (multiple io plugins are going to depend on it) [library] -Fix: remove excess, zero sized box from the LDO sym -Fix: common awk: do not move name2 (pin name) by str length, it's good in its left aligned state -Fix: gnd symbol connects to net called GND not gnd, more widespread -Add: common awk: generate pin number with display/pinnum -Add: devmap for IRF510 in TO220 - perfect for example as the pinout differs from 2n7002 -Add: switch() --help: make style a proper enum and explain each possible value -Add: style=rotary support in switch() -Add: default titlebox symbol -Change: symbol lib terminal floaters: switch over from concrete model's pin name to display/pinnum [propedit] -Fix: integer overflow on coord entry maximums [query] -Add: concrete model query(), code based on pcb-rnd's quert() [sch-rnd] -Fix: font rendering: font rotation was determined too early, before a potential text_update that would calculate hte final transformed rotation angle -Fix: timed backup save uses the backup save i/o API so that the changed flag of the sheet is not lost -Fix: don't redraw while exporting -Fix: don't postproc sheet twice -Fix: draw code sets layer group to 1 to comply with HID API requirements -Fix: do not render sheet if set_layer returns 0 (respect the HID API) -Fix: invalid memory handling on exit: reset current sheet and project to NULL after freeing them so that emergency save is not done -Fix: overlapping strncpy() in librnd due to wrong handling of conf file name -Fix: use librnd's pixmap free instead of a plain free() so all internal fields of the pixmap are free'd too -Fix: do not call csch_init() twice, it leads to memory leaks -Fix: don't postprocess the sheet twice after loading from command line -Cleanup: rename default sheet file for naming consistency (with default project file) -Cleanup: unregister central resources (events, actions) on exit; memory leak cleanup -Add: advanced search menu (same as in pcb-rnd) -Add: menu for listing locked objects using query() -Add: menu for portmap quick attr -Add: menu: devmap library browser in window menu -Add: make multi-port net merge configurable from the conf system -Add: default views read from the config when creating a dummy project -Add: project file helpers: create new view, save project file; when creating a new project file, create the first overwrite subtree so it becomes a valid project file -Add: API: project util function for deleting the nth view -Add: API: buffer paste: generate event for hooking in and replace direct object dup -Add: conf node editor/paste_to_local_lib to control whether paste should be using the local lib [sch_dialogs] -Add: upgrade TreeDialog() to handle object arrays for pcb-rnd "view list" equivalent for now -Add: view dialog -Add: attr edit: fill in right side abstract attributes -Add: abstract model browser -Add: library dialog: optional modal version that returns the full path of the selected row -Add: parametric lib dialog (using rnd_inclib's) -Add: extend tree dialog to handle a whole project (multiple sheets) -Fix: quick attr connect: always enable the 'del' button, because del can be done by text input as well; instead of disabling, when clicked: check if key exists, throw error if not -Fix: attr dialog: if a new str attr is created, e.g. after {a a}, select the attr row for quicker floater button access -Fix: attr dialog floater creation: use the wire pen for wirenet name attr with {a a} -Fix: handle cancel on dyntext attribute picker -Fix: tree dialog: refresh preview after select/unselect/del on object -Cleanup: tree dialog: do not depend on ctx->sheet where object is available (switching over to project based operation) -Cleanup: use frame instead of separator in attribute dialog common buttons now that the related expfill bug is fixed in librnd [std_cschem] -Add: new plugin for handling standard cschem attribute mechanisms (such as component "connect" attrib) -Move: quick attr edit for symbol connect attribute moved to std_cschem, because that's the plugin processing this attribute by default [std_devmap] -Add: portmap engine -Add: devmap engine using cached fs lib [std_tools] -Add: copy/move all selected objects if there's selection [symlib_fs] -Add: set the sym_prefer_loclib bit in newly loaded groups -Add: test-parse files for group-type before adding them in the library (add symbols only) [symlib_local] -Add: prepare for one more layer of groups in indirect so that different backends can easily sotre their data without interference -Add: create a with-attributes and a no-attributes hash of the local lib while mapping -Add: event handler for buffer paste symbols, decides if ref needs to be created -Split: code that finds the local symlib into a reusable function (buffer place will need it as well) -Add: sort out what to do on symbol paste, fetch local lib root when needed -Add: look up the root dir and hash table for paste ref placement [target_none] -Add: dummy target that displays original names [target_pcb] -Add: target plugin for the PCB workflow; sets port display/pinnumber 0.8.0 alpha1 (r2889) ~~~~~~~~~~~~~~~~~~~~ Initial release.