- README: described the X/Y translation commands
- lang.y: print an error if the lower bound if larger than the upper bount
in an "align" command
- lang.y: mention that "array" doesn't work as expected if in imperial mode
- README, lang.y: changed depth parameter of "z" command to position
(sign changes)
- lang.l: defer FILENAME after "gerber" and "gnuplot", so that we don't
mis-read the number
- lang.l, lang.y: return the reference point after "align" as new token
REF, not as NUMEBER, so that we can catch syntax errors that would
cause scanner and parser to become unsynchronized
- lang.l: accept negative numbers
- lang.l: added support for comments beginning with #
- Makefile (OBJS): added gerber.o
- cameo.c (usage, main): new option -g to process input a KiCad Gerber
- gerber.h, gerber.c (gerber_read): parse Gerber files as generated by KiCad
- path.h, path.c (path_reverse_inplace, points_eq, attr_eq, path_connect):
merge sets of paths with equal endpoints into single paths
- cameo/cameo.c (main): use getopt
- cameo/cameo.c (main, usage, process_path): option -d to enable dog-bone
notches (they're now disabled by default)
- cameo/path.h (struct path), cameo/path.c (path_new, path_from): added
attribute "notch" to enable notches for a path
- cameo/gnuplot.c (gnuplot_read, gnuplot_do_write): read and write the
#%notch hint
- cameo/cameo.c (process_paths): explain the inside/outside path detection
heuristics
- cameo/path.h (struct path), cameo/path.c (path_new): added attribute
"outside" to explicitly mark paths as outside edges
- cameo/path.c (path_from): new function to make a path that takes the
attributes of another path
- cameo/path.c (path_reverse, path_offset): use path_from instead of
path_new
- cameo/gnuplot.c (gnuplot_read, gnuplot_do_write): read and write the
#%outside hint
- cameo/path.h, cameo/path.c (path_replace): replace a path in a list of
paths with a different path
- cameo/path.h, cameo/path.c (path_find_leftmost): find the leftmost path
in a list of paths
- cameo/path.h, cameo/path.c (path_free): move freeing of points to separate
function free_points, for sharing with path_replace
- cameo/cameo.c (main): move path processing to new function process_paths
- cameo/cameo.c (process_paths): treat the leftmost path a outside path and
process it last. Treat all others as inside paths.
- cameo/Makefile (CFLAGS): added more warning flags
- cameo/path.h (path_direction): removed unused prototype
- cameo/path.c (angle): renamed to angle_3 to keep it from getting shadowed
by local variable
- cameo/path.h, cameo/path.c (offset_point, path_offset): added "left"
argument to indicate the handedness
- cameo/path.h, cameo/path.c (path_tool_is_left): new function to determine
which way the path turns
- cameo/cameo.c: auto-detect handedness and instruct path_offset accordingly