0. old, still waiting for ack
+ FEATURE: optional: when clicked (or pressed a button on) multiple overlapping objects, offer a view about which one to operate on [report: keantoken]
+ BUG: parametric fp: qf() gui edit -> silk marks don't work [report: Piotr]

1. For the upcoming release ===============================================================================

2. For later releases ===============================================================================
- CLEANUP: move layer_parse_group_str() from core to io_pcb, probably together with the default stackup setup code [report: Igor2]
- CLEANUP: TODO27: undo's removed list shouldn't depend on pobject IDs but probably remove list index because IDs are not unique if we want our operations to retrain IDs. Repro: shift-click subc replace twice, then undo; or drag&drop move selected object and undo [report: Igor2]
- CLEANUP/BUG: undo operation while drawing a multiple segment line doesn't change segment attached to the crosshair [report:wojciechk8]
	- tool_line.c depends on pcb_undo()'s return value; can be fixed only when the old undo system is removed
- CLEANUP/BUG: bug_files/pstk_offs.lht - most of the code gets confused if a padstack's shape is far away from the padstack origin; try {c r} or {c f} on R8-1; need to cache hole vs. shape overlap (1 bit per shape in the proto) [report: igor2]
- CLEANUP/BUG: find.c: unplated padtsacks shall not connect layers; bug_files/unplated1.lht; problem: a padstack is either found or not, this affects all layers, there's no info about which layer is found; padstack update should check the hole/slot geo and update a bit for each shape telling whether it's connected or not
- CLEANUP: (TT) propedit revamp:
	- switch over to new dialogs in lesstif, remove brave for tree-table
	- CLEANUP: remove Attrbute() and pcb_act_Attributes -> remove; this should be handled by the property editor when lesstif already supports it.
	- CLEANUP: after the attribute dialog, remove the label argument from the DAD API [report: igor2]
	- CLEANUP: remove attrib.o from the hidlib objects
- CLEANUP: think over how to handle subc selection: selecting all parts automatically is bad for propedit; bug_files/subcsel.bug [report: Wojciech]
	- BUG: propedit adding/deleting attributes inconsistency; search depth problem (see TODO#28)  bug_files/subcsel.bug [report: Ade]
- CLEANUP: lesstif DAD support for top window docks [report: Igor2]
- CLEANUP: layer order from data
	- central code for building a list of layer groups ordered by draw from front to back (omit disabled/invisible layers)
	- rewrite both the draw_everything() and pcb_search_obj_by_location_() layer loop to use this list
	- FEATURE: holes should be drawn below silk and mask - this could be a config setting
- FEATURE: new breadboard
	- FEATURE: gfx rotated pixmap scale adjustment: missing in lesstif, partly done (buggy on corner resize) in gtk ghid_draw_pixmap()
	- FEATURE: hidlib: render pixmap: test in gl
	- DOC: pool node on how to use pixmap for breadboading
- FEATURE: library window: allow long tags and long location text to split: rich text widget
- FEATURE: (TT) route style upgrade to prototypes:
	- BUG: set same {e s s} doesn't work on padstacks [report: Igor2]
	- BUG: padstack doesn't show drc xor shape while moving - because the whole drawing is a cheat for old vias [report: igor2]
	- replace the route style dialog box's via part
	- proto copy to buffer - a buffer with a single padstack should also serve as a prototype copy vehicle? or just import by a list from the buffer
	- load/import from buffer and file
	- CLEANUP: remove PCB_MIN_PINORVIA* PCB_DEFAULT_DRILLINGHOLE macros - nothing should use them anymore
	- add text font, update the pool node text_edit [report: Igor2]
- FEATURE: orthogonal move of polygon edge (or angle-keeping move of corner?) for rectangle enlarge [report: Majenko]
- FEATURE: finish drill/slot export in export_stl [report: Majenko]
- FEATURE: fontsel: ttf import?
- FEATURE: DOC: new examples
	- blinking led with parametric footprints
	- example of nonetlist: 1206 jumpers and logos
- export_dsn/new io_dsn (with King Kevin and celem) (NGI0):
	- missing global padstack (via) export:
		- FEATURE: need to think over and check the spec for how to do this with no-hole padstacks
		- RTT tests: thermal_layer.dsn, comp1.dsn, padstack.dsn
	- BUG: elem_pads_ds: do not export line shape in padstacks as polygons, that kills round cap lines
- FEATURE: preview widget: allow to handle keys both in gtk and lesstif
- res/menu (NGI0):
	- FEATURE: load/swap menus (TODO#1)
	- CLEANUP: search for vendor in the hid plugins, there should be no trace of it (vendor should register its in submenus with anchors)
	- FEATURE: fungw: auto-remove menus by cookie (TODO#2)
	- FEATURE: load new res on the fly (replace the menu system):
		- low level reload code (re-add the dynamic menus too!)
		- action to reload if file name is known
		- gui load dialog with tags listed
	- FEATURE: project specific menus from extra lihata files - maybe from project.lht
- BUG: Lihata persistent save:
	- flag compatibility: save unknown, string-flags as loaded by io_pcb
	- ind: FONTS: second font indents incorrectly
	- ind: indentation bug in inline struct therm: closing } is preceded by indentation whitespace for some reason
	- keep numeric format: test all
	- keep unknown subtrees
	- doc/user/02_model/src/obj_arc.lht: Open/Save : Font section is embedded. Once manually removed, the file shows many diffs w.r.t original. Lihata V1 file.
	- BUG: lhtpers indentation: bug_files/lhtpers_ins/; breakpoint in pers_table.c:34 and debug why the newline is getting in [report: Igor2]
- BUG: I/O bugs:
	- eagle:
		- BUG: xml: eagle XML import fails on polygon import reported by miloh, test file pcb-rnd-aux poly_selfi/eagle_polygon_crash.brd [report: erich], due to input file containing an invalid polygon: a self intersecting poly in line 156 - consider handling "width"?
		- bin: eagle binary format v3 and libraries do not have a DRC block specifying restring or minimum feature widths. Binary loader should add a DRC block in these cases to the tree with the minimum settings needed for padstacks and features to load sensibly. [erich].
		- bin: padstack clearances for element pins will rely on connectivity to other polygons layer by layer defined in the netlist 
		- bin: need to add support for non top silk (tPlace), tDocu and top copper text in read.c
	- revise all I/O plugins for:
		- upgrade autotrax with standard text for rotation, scale_x, scale_y anbd mirror_x (need test cases)
		- padstacks
		- new outline/mech layers and slots
		- new doc layers
		- polygon side clearance (e.g. CUCP#38 provided by Karl)
- BUG: padstack editor top/bottom gets mixed up on other-side on display (but not in data!) ml=4221 [report: Majenko]
- BUG: locally debian packaged version: run ./pcb-rnd from src with no X, exit -> tons of warnings
- BUG: autorouter broke on polygons: bug_files/ara.lht, {a r a}, bisect; broke before r14572 [report: Igor2]
- BUG: bug_files/rubberx.lht: move the horizontal line upward, rubber band breaks the traces (ortho mode) [report: aron]
- BUG: Rubberband move line endpoints ignores connected arc endpoints. [Fixing:Ade]
- BUG: bug_files/lines - remove zero length objects if they are created as the result of rubber banding [report: Evan]

3. Long term ===============================================================================
- version 3.0.0:
	- maybe rename pcblib? dir rename trunk/pcblib/tru-hole should handle make correctly and not walk on existing web services or user installs
	- ./configure --config should default to /etc
- BUG: gtk2_gl: RTT/arc_sizes.lht - elliptical arc corner case render bug [report: Wed]
- BUG: in poly lib rewrite: bug_files/polyclpoly.lht: excess clearing into the corner of the outer poly; move the line a bit and it tends to disappear ml=3493 [report: gpaubert]
- BUG: in poly lib rewrite: bug_files/phatch.lht: maybe {m d t} and PolyHatch(0, c) -> poly offseting bug on sharp corners ml=4159 [report: Majenko]
- FEATURE: "thermal recipe" so a padstack thermal can be put in a padstack or subc and it is changed with the layer binding [report: jg]
- FEATURE: a {c f}-like feature that doesn't flag the network but prints the net name on objects large enough ; alternative: net name caching and display when zoomed in [report: Majenko]
- FEATURE: netlist2: bug_files/ratside.txt optional rats constraints [report: Vuokko]
- FEATURE: drc preview: follow board flips (should be a DAD preview flag) [report: Igor2]
- FEATURE: draw on move: 'Crosshair shows DRC clearance' should show the clearance also when moving a ... (not only when placing it) [report: wojciechk8]
	- need to precalculate and cache clearance shape in crosshair (polyarea!) because recalculating these for padstacks would be expensive (also rewrite lines and arcs)
	- padstack
	- clearing polygon
	- text
- FEATURE: padstack bbox:
	- per layer: keep a bbox per transformed shape per prototype, then getting the bbox of a padstack ref on a specific layer is looking up the shape, then 4 integer additions [report: Wojciech]
	- when calculating overall padstack bbox, ignore layers that are not present? but then a layer change would require a recalc (but this is true for subcs too!) [report: Wojciech]
- FEATURE: depth controlled mech layers (routed) for internal cavities: http://www.saturnelectronics.com/products_capabilities/internal-cavity_boards.html -> user script, similar to on_every_layer: convert lines into bbvia slot padstacks; only when we already export bbvia in excellon; alternative: layer attribute on mech layers
- FEATURE: key rewrite: (base key swap bug (q<->a, y<->z))
	- for <char> (punctuation): learn key for non-US users
	- lesstif code upgrade for the new API
	- menu file fixup on punctuation in lesstif
- XOR rendering upgrade:
		- experiment with 'emboss' kind of drawing instead of xor so rendering can stay 'direct'
		- if worked: allow padstack xor draw to draw all shapes on all layers
- CLEANUP: layer group rewrite: remove PCB_MAX_LAYERGRP and PCB_MAX_LAYER and make them dynamic
- CLEANUP: reduce: get rid of autorouter/vector.[ch]
- vendor drill plugin:
	- CLEANUP: check if we want to keep vendor name
	- CLEANUP: search for /units, replace it with pcb-printf something
	- CLEANUP: replace ignore_refdes, ignore_value and ignore_descr with genvector
	- FEATURE: vendor: be able to load multiple vendor files (project spec for skips, central for vendor) [report: celem]
	- FEATURE: add round down
- FEATURE: lesstif: implement/enable local grid in lesstif (menu option is disabled)
- FEATURE: lihata v8
	- deprecate saving rats [report: Igor2]
	- make saving selected, found and warn flags optional to reduce VCS noise [report: Igor2]
	- remove netlist net ->style, should be a plain attribute (but keep the dedicated field in old versions)
	- remove via geometry from route style
	- manual layer binding (to LID)

4. Low prio ===============================================================================
- FEATURE: footprint in-place replacement should match up floaters to keep their coords, as documented in ML/2304; also keep thermals per term ID [report: gpaubert]
- BUG?: Far-side silk text can be selected and moved when the mouse is over front-side subcircuit. (but this is what we had with elements too! -> rewrite search.c to be a 'script' config) bug_files/farsilk.lht [report: Ade]
- BUG: RTT/arc_sizes.lht - unable to move arcs which have different width and height [report: Ade] - rewrite pcb_is_point_on_arc() elliptical case at the bottom
- FEATURE: padstack label smarter print: in case of full overlap of a bottom and top "pad", arrange other-side labels to avoid overlaps [report: al3x]
- improve locking:
	- FEATURE: consider a move-only lock?
	- BUG: when thermal and some other operations are applied on a locked element, indicate it
- FEATURE: DRC should warn for thin poly hair
- FEATURE: io_pcb: new, optional "layer tag" field in mainline's file format
- FEATURE: scconfig: menuconfig and a config file for scconfig: requires a more declarative dependency handling system
- lesstif blockers:
	- BUG: lesstif hbox/vbox allocation issues: test with bug_files/ltf_fillbox/ patches applied, with the fontsel action; opening it multiple times will randomly show or hide the button
		- hvbox: fontsel, about dialog: resize to smaller doesn't re-layout
		- tabbed: redisplay bug in the about box (box opens broken, first tab switch fixes it)
		- re-enable HPANE: pstklib(), netlistdialog(), propedit(), BrowseScripts, preferences dialog config tab
		- tree-table bugs; see TOTO.tt; preferences dialog: only when tree table is enabled: library, layers tabs are unusable
		- BUG: { s s } doesn't hide unused expressions, issues 94 lines to stderr Warning: Null child found in argument list to unmanage [report: Miloh]
	- FEATURE: lesstif DAD support for toggle pushbuttons (with label or picture, see existing infra) -> motif does not support this!
