You can subscribe to this list here.
| 2003 |
Jan
|
Feb
(4) |
Mar
(5) |
Apr
|
May
(5) |
Jun
(30) |
Jul
(2) |
Aug
(18) |
Sep
(14) |
Oct
(7) |
Nov
(21) |
Dec
(44) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(63) |
Feb
(94) |
Mar
(54) |
Apr
(39) |
May
(34) |
Jun
(25) |
Jul
(10) |
Aug
(33) |
Sep
(16) |
Oct
(62) |
Nov
(12) |
Dec
(2) |
| 2005 |
Jan
(71) |
Feb
(8) |
Mar
(50) |
Apr
|
May
(2) |
Jun
(12) |
Jul
(19) |
Aug
(8) |
Sep
(3) |
Oct
(2) |
Nov
|
Dec
(8) |
| 2006 |
Jan
(10) |
Feb
(1) |
Mar
(301) |
Apr
(232) |
May
(26) |
Jun
(20) |
Jul
(26) |
Aug
(79) |
Sep
(92) |
Oct
(174) |
Nov
(17) |
Dec
(93) |
| 2007 |
Jan
(27) |
Feb
(179) |
Mar
(37) |
Apr
(81) |
May
(20) |
Jun
(5) |
Jul
|
Aug
(40) |
Sep
(68) |
Oct
(8) |
Nov
(47) |
Dec
(34) |
| 2008 |
Jan
(154) |
Feb
(15) |
Mar
(5) |
Apr
(21) |
May
(4) |
Jun
(1) |
Jul
(4) |
Aug
(6) |
Sep
(8) |
Oct
(9) |
Nov
(35) |
Dec
(50) |
| 2009 |
Jan
(8) |
Feb
(10) |
Mar
(6) |
Apr
(9) |
May
(7) |
Jun
(40) |
Jul
(7) |
Aug
(5) |
Sep
(2) |
Oct
(16) |
Nov
(42) |
Dec
(5) |
| 2010 |
Jan
(3) |
Feb
(15) |
Mar
(32) |
Apr
(18) |
May
(6) |
Jun
(9) |
Jul
|
Aug
(11) |
Sep
(16) |
Oct
|
Nov
(4) |
Dec
(35) |
| 2011 |
Jan
(24) |
Feb
(6) |
Mar
(27) |
Apr
(119) |
May
(72) |
Jun
(20) |
Jul
(31) |
Aug
(88) |
Sep
(86) |
Oct
(14) |
Nov
(11) |
Dec
(30) |
| 2012 |
Jan
(4) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <gi...@gp...> - 2009-11-03 23:01:56
|
The annotated tag, pcb-20091103-RELEASE has been created
at 326e66e923b66dfc52b91e9a90da505604e78405 (tag)
tagging e0977ee60a28e95eb28ca3b80ccf72350a7e8f34 (commit)
tagged by Dan McMahill
on Tue Nov 3 18:01:12 2009 -0500
Tag for 20091103 release.
Anthony Blake (3):
Added topological autorouter
GTS build script changes
gts.h fix
Ben Jackson (48):
Fix [ 1751578 ] 'move to current layer' doesn't re-plow polygon correctly
Fix bugs 1751572 and 1743534 by allowing a remove on an endpoint to delete
Fix the crash from [ 1724453 ] PCB Crashes with bad footprint (in its library)
Apply [ 1751580 ] polys should not be selectable/considered when thin-drawn
Fix [ 1751566 ] When 'far side' hidden, hidden elements don't deselect
Search for rat-end connections using 3x3 "fat" ends to avoid having
Fix [ 1751574 ] undoing rotation that put an elt inside a poly didn't fix plow
Fix [ 1751568 ] shorted nets stay orange after fixing and re-opt netlist
Fix bugs with undoing "group" moves of objects over a polygon. The group
Add (under ifdef) code I used to debug a report of
Change rendering of rounded corners used when clearing polygons. This
The correct point on a line now moves with a polygon (fix cut'n'paste typo)
Make DRC dialog next/continue to clarify its function.
Ratlist generation is changed to favor connecting to polygons when they
Fix printf format warnings.
Treat VIAFLAG rats (displayed as donuts) as round targets, not as the
Plumb the NetlistShow() hid action in lesstif. Takes a pin name or
Shift-click with the via tool to connect it to the current layer as you
Add support for clearing text from polygons. Text with the clearline
Fix bugs intoduced by revision 1.41 while preserving the fixes in 1.41.
LIST_LOOP works on circular lists, but at least some code will produce
Apply patch [ 1835365 ] Fix for [ 1820385 ] Can't close the preference dialog
Change all the GetXY prompts for greater clarity.
Remove obsolete (generated, even!) file
Apply [ 1726201 ] SaveTo(PasteBuffer.file) for footprint creation
Add some prototypes for global functions returning double that will
Fix two bugs in my via-rats patch:
In case 'biggest()' polygon is 0 area, init size = -1 instead of 0.
Fix a typo.
Missed a spot when adding 'clearlineflag' support to Text.
Fix [ 1836172 ] shift-create two vias, undo twice, internal error
Fix [ 1836169 ] undo of shift-paste element replacement broken
Fix [ 1820398 ] Inconsistant vias with move-to-layer
Partial fix? [ 1775101 ] Undo with the line tool sometimes switches to wrong node
Data->LayerN should generally be avoided. It's not initialized for buffers.
Don't create empty text objects.
Avoid moving elements snapping to their own pins or pads.
ignore paste layers
Rebuild with 2.61
Add XRENDER support to the Lesstif HID. Rat lines and soldermasks are now
Add gross hack to avoid using mask in DrawRats() for othet than lesstif
Make 'outline' layer test case-insensitive to match other instances.
Add Zoom(Toggle) and bind it to ` (backtick).
Temporarily change PCB=yyPCB while InitClip after load
Fix crash with 'ben-mode' if your layer stack is the reverse of DJ's.
Add initial gitignore files covering autogen files and GTK HID build
GTK HID: Background color can be set live from config dialog
Add *.backup to gitignore (in case you test run PCB in the tree)
Bert Timmerman (4):
Apply filters to load filechooser dialogs. [1988982] [2686963]
Correction of the pcb homepage url in the about dialog window.
gEDA-dev: pcb [PATCH] Correction of the geda homepage url and wiki url in the about dialog window.
gEDA-dev: [pcb patch] Correction of the pcb homepage url in the batch HID
Bill Wilson (21):
Fix a zoom glitch.
ghid_invalidate_all() when colors change.
Fix gtk magenta color messages -> initialize all new hidGC colornames to
Fix draw arc when flipped.
Set netlist nodes enabled by default when NetlistChanged.
Turn of Disable all nets button when NetlistChanged.
Pan to a netlist window selected node if it's not visible.
I wrapped too much into the verbose option so the file
Fix netlist window to scroll to net/node when user lookups connection.
mode_button_toggled_cb() didn't sync ghidgui->settings_mode
Support --bg-image in the Gtk HID. Images can be jpg, png, gif, etc. as
Make ghid_get_coords() x value account for side viewed (when using TAB).
Fix soldermask draw while TAB view from solder side.
For the Gtk HID, add an alternate vertical window layout mode to help
Fix route style "Save as default" bug.
Remove Gtk HID specific build_route_string() function.
Clean out FIXMEs specific to the Gtk HID.
Clean out Gtk HID related FIXMEs. Also old background image code which
Clean out Gtk HID related FIXMEs
Couple of small typo bugs: a missing "break" and needed -1 arg to size request.
Update status line after menu Save layout and Save layout as.
DJ Delorie (359):
Add trace optimizer.
Add Thindraw
Add orthogonal move feature
Regenerate with djopt.c
Automatically set CLEARLINEFLAG if the user modifies the clearance.
The minimum size of a board should never be more than the current
Fix off-by-one bug in handling bloat.
Sort drill report by hole size, list total hole count.
Properly scale outline and alignment. Add segment to alignment
Solder mask layers are reliefs and normally are positive prints.
polygon fills must have a defined aperture also
Dummy commit to test log messages
second dummy commit
Support however many layers are configured.
Add FAB drawing page.
Use the layer groups to determine which layers are solder and
Don't assume that an all-ones pixel is white.
* Detect re_comp(), regcomp(), and <regex.h> (select.c doesn't use the
* Detect re_comp(), regcomp(), and <regex.h> (select.c doesn't use the
Regenerate.
Provide our own yywrap(), just in case.
add ylwrap
add file-driven menus
add version.texi for non-maintainers
Remove gcc-isms
Fix bug wrt intersecting layer groups in miter
Don't use local var for widget name.
Add flag to default to optimizing only autorouted nets, plus menu option to
Be even more picky about which line is chosen as an example.
Run gather-actions only if maintainer-mode
Add support for menu accelerators. Replace hotkey translations with menu
Cut and Copy from the popup menu now wait for a click before acting (bug 978406)
Change size of selected objects, fix enlarge options to actually enlarge
Add limited support for a behind-the-board background image.
Add command history to : widget.
Avoid checking pin numbers for unnumbered pins.
Print plated and unplated hole counts on separate lines.
Check for numberless pins.
add non-gcc definition of ATTRIBUTE_UNUSED
Oops, overzealous patching ;-)
Add FlagHaveRegex (have_regex) so that the SelectByName menu entries work.
Regenerated
Sort actions by modifier so that both Ctrl<Key>x and <Key>x work.
Document resource file comments
Add support for comments. Comments begin with '#' and extend
Add -action command line, to execute one action string at startup
Quote "$@" to keep args whole
Support multiple actions per line for -action and -script
Move right-click popup menu to pcb-menu.res also.
Oops, take out test entry
Allow FAB author name to be set by .Xdefaults
Put parens around computed macros. Use ~0 instead of -1 for "all bits".
When saving files, convert flags to symbolic format instead of
Minor bugfixes related to error handling
Fix the "all pads are ovals" bug.
Avoid name conflict with abs/min/max
Update sources to support more than 8 layers.
Fab author fixes from Karel.
Add "join" to SetFlag, ClrFlag, and ChangeFlag actions.
Inline documentation.
New file, for extracting inline documentation.
Document ElementArc, ElementLine, and Mark.
HID merge.
regenerate everything with FC4.
Update to automake 1.9 files.
New file, from automake 1.9.
Remove UpdateSettingsOnScreen. Call InitCrosshair only for GUIs.
Remove a debug printf.
Call lpr, don't just save the file.
Don't try to run the idle proc until the GUI is created.
MyCalloc, MyRealloc, MyStrdup: make final parameter (tag string) const,
Misc bugfixes and changes, to silence compiler warnings.
Use explicit void** pointers to avoid aliasing problems.
Use void * pointers to avoid aliasing problems.
Avoid aliasing problems.
Round drill sizes to nearest mil for fab drawings and gerber drill file.
Change the way we handle built include files.
Also look for ~/.pcb/pcb-menu.res. Actually use the path we found ;-)
Add File->Revert.
hid actions: remove needs_coords, use need_coord_msg to determine when
hid_actionl must be terminated with NULL, not a plain 0, in case integers
Fix eps->pdf rule to set size and resolution right. Limit pcb->* to visible areas.
Initial chunk of inline action docs.
Document the rest of the registered actions in action.c.
Print correct symbol counts for drills on fab drawing.
Document actions in command.c.
Document actions in netlist.c
Determine when we need to use the complex erase logic, and when we can just
Add --bg-image option to lesstif hid to load a background image.
Make sure the Message and return are in the same scope.
Document the puller action.
Document actions in report.c.
Include sys/types.h so that regex compiles on more hosts.
Remove all the prev-next-up links, reformat all the texi files to allow
Add --psfade option.
Document lesstif hid actions.
Define on-board objects in terms of base types.
Comment tweak.
Use locale-independent strtod and dtostr functions.
Add support for drawing/exporting paste layers.
Fix drawing of box around text items in buffer.
Add batch-mode HID.
Fix test for interactiveness.
Fig typo in ChangeDrillSize menu.
Ignore locked objects unless LOCKED_TYPE is passed (lock tool).
Change gerber names to be compatible with pre-hid.
Name internal gerber layers sanely.
Split plated and unplated drills in gerber output.
Reset layer value cache before we shortcut for counting apertures.
Report on locked objects if there are no unlocked objects under the cursor.
Adjust endpoints of lines that don't quite reach adjoining lines.
Add Flip action, both vertical and horizontal.
Remove lesstif board flipping item.
Syntax fix for DisperseElements()
Fix logic a bit, don't try to move pins.
Fix rounding bug when collecting drill sizes.
Compensate for board flipping in the panning code.
flexible max_layers
Print actions called when verbose.
Merge lesstif's Flip() action into SwapSides to avoid conflict with core Flip().
Remove obsolete ActionSwapSides()
Account for board flipping when zooming.
MoveLayers cleanup tasks - thermals, pips, undo
Don't delete vias with thermals. Try to split diagonal lines at pins and vias.
Fix layer group parsing code. Avoid trailing colon in group string.
Fix minor rounding bug in c_dtostr().
Minor patches from Larry.
Fix draw_rect vs board flipping bug.
use "top" and "bottom" to describe the side flags, instead of using
Add support for multi-key hotkeys, via <Keys>abc syntax for a/b/c sequence.
Add the ability to user-configure mouse actions.
Enable loaded netlists by default.
Allow extended selections.
When the drill list fits "naturally", no offset is added, which makes
spelling fixes from Larry.
When deleting a layer, make sure to zero out the now-unused slot at the end.
Allow New() to take a name, so that the user need not be prompted during
Use the old style (mil) syntax when saving font info, if the values permit it,
Add font editing mode (FontEdit() and FontSave())
Add X_CFLAGS to CFLAGS so that Xm/Xm.h can be found.
Draw via annulii on assembly drawings.
Don't let search find backsilk if invisible objects are off.
Let right-mouse do "rotate" for now.
post-initialize PCBs loaded from files.
Add default colors for layers 9..16
If a pad/via's clearance is zero, don't attempt to draw a zero-width clear.
Allow via clearance to be reduced to zero.
fill_rect needs the same point-ordering as draw_rect
Special case: allow vias with exactly zero clearance.
Don't print invisible silk.
Don't consider off layers for fast mask. Don't print paste.
When printing as-shown, mirror the image if we're viewing the solder side.
Fix rats enable/disable code.
Constrain arc start angles to -180..180 degrees.
Remove obsolete comment.
Add arbitrary attributes to PCB and Element types. Ignore optional flags
Copy attributes when copying element data.
Doc typo.
Regenerate to add attributes
Shift-click replaces element on pcb with element in buffer.
[pc...@ca...] Patch to fix bug #1553558, Stack corruption PCB bug in
Draw the elements' marks.
Break out layer->filename code. Fix bug in top/bottom detection.
Add multi-file output option.
Add MinMaskGap() action.
Fix undo for MinMaskGap()
Avoid attempts to realloc to zero bytes.
Allow rectangular polygons when converting a buffer to an element.
Fix bug in poly point sorting for element conversion.
Note pixel slop in gtk hid. Increase slop to 10 pixels.
Display remaining rats in status bar.
If Settings.RatThickness is less than 20, it's a pixel size, not a pcb size.
Add a --verbose option to list gerber files as they're printed.
A layer group containing only an "outline" or "route" layer will be named
A layer group that only contains a layer named "outline" or "route"
I did the one about separate ps files.
Add -rdynamic when it's available.
Fix off-by-one error.
Dynamically load plug-ins (hids, actions, etc) at runtime.
Fix plugin init function logic.
Remove debugging printf.
Load settings from ./pcb.settings and ~/.pcb/settings. Add :savesettings
Add global "exporter" option.
Minor bug fix for exporter.
Add RTLD_GLOBAL.
Keep ElemenOn and *SILK->On in sync.
If we're converting a buffer to an element and the buffer has no associated
Report units in mm or mils as selected by user.
Move layer ID text outside of the "board" area. Print board name,
Move thermals when we move layers.
Handle edge conditions when adding/removing layers wrt thermals.
Allow attributes in old-style elements too.
Add SDIP20. Fix comment.
Add automatic busy cursor. Add (disabled) debug code for arc thindraw.
Add progress() hook to HID structure. No actual implementation yet.
Fix progress prototypes.
... and return 0 for progress hooks.
Remove completed projects, add some new ones.
Increase default size of main window.
Add support for HID_Enum in attribute dialogs.
Take "enums" off the lesstif list.
Cast away const-ness.
Don't draw plated holes on outline gerber.
From: Hans Nieuwenhuis <vz...@xs...>
Keep canonicalizing lines until they're all canonicalized.
Update from ../src
Don't call popen() if we don't need to.
Use a global aperture list instead of per-layer lists.
Make sure we have a current mark when we convert selection to an element.
Add more functionality to netlist dialog.
Draw plated holes when exporting.
Fix gtk grid when board flipped.
Fix logic for adding new rat lines to the netlist.
Round drill sizes before reporting them.
Add command line option for setting DrawGrid
Always initialize default layer names.
Add "C" for Center() action. Provide examples for zooming-with-centering
Change the way the busy cursor is done. Called for autoplace, autoroute,
Call busy before applying the vendor map.
Properly deal with quoted characters in both string reading and string writing.
Cache vendor lookups. Use binary search instead of linear.
Add printer calibration code for lesstif HID.
Compensate for rotated boards. Allow the print step to be skipped.
Keep track of the minimum line size for text depending on which layer
Move declarations before statements (patch by Ben Jackson <be...@be...>)
Don't use the crosshair's position to keep track of whether it's in the window
Attach status bar widgets to the correct siblings.
Don't print the scale if we're filling the page. Don't print (null)
Silence some compiler warnings.
Report on pads as rectangles, not lines, so we get width and height for
Allow the user to load a footprint as a pcb; create a suitably-sized pcb
Add calibration values to the attribute list so they can be stored
Avoid segfaults when loading elements, fixes bug in load-element-as-pcb patch.
Made flags type big enough to hold PCB flags.
Add basic line clipping to both GUIs.
Allow :s without filename to use current filename.
Use polygons to draw square ended diagonal lines.
Permit the existence of diagonal pads.
Use ".fp" when loading element data.
Allow for diagonal pads.
Add FreeRotatebuffer(Angle) (angle can be any angle)
Preserve width *and* height when manipulating arcs.
Draw non-circular arcs manually.
Add Delete() action. No arguments: delete selected ELSE object, but options
Don't free home_pcbmenu until after it's used.
Gerber, PS, and EPS ignore the thindraw settings. Fix bug in PS
Swap the direction of scroll bars when the board is swapped.
When swapping board sides, swap top/bot layers even if both layers
When the layer stack is reset, bring the component layer to the front
Add missing variable.
When a board is loaded, the first route style is automatically
Fix references to RouteStyleChanged (should be RouteStylesChanged).
Fixed a bug in flags_to_string where the LOCALREF pcb flag would
Protect against empty :command string.
Don't allow LayersChanged if there's no GUI yet.
More paranoid check for "gui is up"
Tracker 1753084 - fixes 1751589, merged soldermask has larger than expected
Apply bloat to drawn rectangles.
Don't limit keepaway size to minimum *line* size.
Adds an export in mm to the BOM export dialog [1742399]
patch 1738364: flag for non-clipped polygons.
Ben: Avoid duplicate passes through pad clearances.
More empty :command checks [1751582]
Fix the have_regex flag in pcb-menu.res [1751564]
Match whole names with regex's, when possible. [1741650]
[ 1751567 ] with thin-draw-poly on, soldermask display is messed up
Make sure loaded buffers have a proper pcb backpointer.
Give data->pcb a real type.
Add missing else.
Make sure the leftmost end of the line is visible in the log window.
Don't draw pins/holes on the outline layer. Include commented-out code
Fixes for DRC of slanted pads. Tracker bug 1791388 and patch 1791392.
Properly thin-draw slanted pads.
Move silk away from pads. Fix notch in SO footprints.
Reduce silk width of connector/header/jumpers (some fabs clip it to the pads)
Don't complain about checking the shift key when exporting pngs from
Snap to pin/pads whenever we're within the pin/pad copper, unless shift is
Fix pin bound calculations based on new thermal calculations.
Expand min/max values.
Add annulus and mask gap to pin/via report.
Update the status line even when we don't have a styles dialog.
Additional slanted-pad patch for missed DRC
lesstif_show_library: Don't reset the dialog when we're just re-displaying it.
Don't crash if a scanned element has no text.
Don't just clean out RemoveList, free it, so it's created properly later.
Draw outline layer on all other copper layers when "draw outline" is
Export DrawLayer() for the ps exporter.
Draw arc start/end radii in separate colors, and dotted, if enabled.
Add global puller.
Attach the show soldermask layer button to its flag.
Add 50 mil grid setting. Add global puller submenu.
Fix printer calibration.
Check for Xrender library.
Fix enter/leave logic to avoid leaving obsolete crosshair-attached
Various changes from Kai; cut-copy swap for lesstif.
Add TSSOP14 and TSSOP16
Resolve some const-cast issues.
Cast parameters to right type.
Fix some off-by-one bugs.
Re-initialize num so that multiple actions will be parsed properly.
Strict aliasing patch from Larry Doolittle.
Allow negative bloats
Ignore zero-radius filled circles.
If a layer selected through --layer-stack isn't found, let the user know
When drawing zero-length lines, draw a square or circle according to the
Fix off-by-one bug drawing pads.
Don't say ,TZ as we're not omitting trailing zeros.
Add ELEMENTARC_LOOP
Allow outline layers that have nothing but arcs.
Do not require a second paramter for SaveTo(Layout)
Oops, fix bug from previous patch.
Add "Ben Mode". Fix export of thindrawn polygons.
Add --ben-flip-x and --ben-flip-y options to produce "ben mode" images
Bump up font size and aperture count.
Add missing parameter name
Fix lesstif crosshair color - joel silvestre
Fix poly clearance around rotated pads - Robert Fitzsimons and Ineiev
Put exploded pads on the correct layer
Don't merge two lines if the join flag differs.
Move splitlines even earlier, to avoid unwanted changes.
Fix the foo.ps.type.ps bug
Test the two lines, not the line vs the current pcb, for compatible
Merge thermals from old flags, not overwrite them.
Add MinClearGap() action.
Add flags for whether various layers are shown.
Add support for suffixes on numbers, like "mm", "um", "in", or "mil". No suffix
Increase resolution of gerbers to 0.01 mil; drills remain at 0.1 mil
append '-' on all parameter names to prevent mis-interpretation of such.
Add initial "getting started" guide.
add texi2dvi check and doc/gs subdir
missed files
More missing files
Set home from homedir.
Fix via annulus calculations, from Jasper
Avoid checking memory before short-named files.
Make sure we clean up if dlopen fails.
Typo.
Add an option for undocumented attributes.
Rename ben-mode to photo-mode.
Add "empty layer" hint to HID. Add option --all-layers to gerber export
sf patch 2162834 from d.ineiev - count apertures for diagonal pads
Add min-drill and min-ring to the saved config list, and save the config
Make sure the user has specified an element for the pinout window.
Include explicit text/lines/etc on silk layers in assembly drawings.
fix parsing of old-syntax arcs.
Fix flipping of arcs.
Add "hide names" option to hide all refdes on the board temporarily.
Add description of how polygon data works from Ben, and debug routines
Handle wrap-around when searching the string hash table.
Add outline mode for photo-mode, from Mark Rages
Add only-visible support to photo-mode, check for more outline fill spots.
Don't show undocumented options.
Skip undocumented options.
bugfix: avoid NULL pin names with Report(NetLength)
single-action register/deregister
Add "report all net lengths" option
Oops, re-comment-out a debug statement.
Add bloat to PNG hid
Fix "Design Rule Checker moves elements and traces off grid"
Dan McMahill (1000):
Initial revision
remove unneeded output files
remove obsolete files
remove obsolete files
remove obsolete file (the contents live in pcb/newlib/ now
these don't really belong in CVS. The sources are in the doc/ directory
remove obsolete files
- add section on checking out via anoncvs and updating via anoncvs.
coding style fixes to allow this to be compiled with the SunPRO c compiler.
change c++ style comments to c style and remove the use of non-static
bump to 1.99o since a 1.99n version was posted to the geda list.
when checking for a NULL pointer compare to NULL rather than 0 for
add check for strerror()
move the strerror test up in the configure process so we don't need to
if strerror() is present on our system then use it instead of trying
remove spurious file which should not have been imported.
remove spurious file which should not have been imported. Noted by
add missing bga.inc and resistor_adjust.inc included. The latter addresses
change yy_current_buffer to YY_CURRENT_BUFFER. This addresses the build \
add 2 more levels of zooming to the menu. Inspired by an email from
add missing rules.inc
Fix a bug in the way the current working directory is found. This caused
Allow '=' at the beginning of the zoom exponent to indicate an absolute
remove unused varargs.h header which breaks gcc-3.3 compilation
only declare sys_nerr if we're using the sys_errlist interface. This
add the automake/conf generated files to make building from CVS sources
add automake/conf output to make it easier for users to build
note that autoconf 2.13 is not new enough and mention how to get the version
fix parse errors on DS1225 and DS1230. Patch provided in bug report
fix parse errors in TL083 and ua747. Patch provided in bug report
fix parse error on uA7952C. Patch provided in bug report
Remove extra space in one of the pin names in AT90S2313_dil
add DJ and myself
add a note on creating snapshots
Makefile.am is not a library component so do not install it as one
regen
add info-dir entry
Add 20,28,32 pin PLCC footprints, both unsocketed and socketed (through hole).
add scripts which autogenerate geda.m4 and geda.list from geda.inc.
when given a -I flag, look both there and the current directory for .list
add qfpdj.inc to the include list
rework the QFP packages fixing several bugs and greatly expanding the
these files are autogenerated now
remove the lines which tried to copy the source file RCS Id to the generated
change 'Square' to 'Rectangular' to the comment for the rectangular QFP
add brief section about the trace optimizer.
add a --with-xaw= option that lets you select an alternative to Xaw. For
regen
don't hardcode -lXaw in the FUNCPROTO and related tests.
regen
Add two new chapters to the manual. The first attempts to provide some
add example/libraries/Makefile
regen after example/libraries addition
update copyright for last changes
add a figure to help with describing the pads. Also add an Xresources file needed to convert the tgif drawing to png
add 60 members of the Quad Flat No-lead (QFN) package family. Based on
regen after qfn.inc additions
remove some output files which should have never been in CVS.
show pad names in object report. patch supplied in bug report 787711 by
correct the reporting of soldermask relief for pads and via's. Patch
fix two bugs related to gerber file generation. The first bug is triggered
add a few more variants of wish (wish83, cygwish80, etc) to search for
search for libXpm which is needed on cygwin libXaw
move the pcb script to a subdirectory to avoid name conflicts with the Pcb
regen after moving the pcb script to a subdirectory.
use AC_PATH_PROGS to search through a list of candidates for wish
Change how the polarity of the soldermask relief layer is handled. The
regen after adding Xpm check
add rules for creating postscript and png from a tgif drawing. Needed for improved docs.
regen
When trying out the various -R, --rpath, etc. compiler flags, actually
regen after -R fix
add footprints for Johnstech Evaluation Socket for QFN packages
add -*- m4 -*-
add MTA100 connectors
Add amphenol connectors. Start out with the ARFX1229 SMA connector.
regen after adding amphenol library
remove extra whitespace at end of ARFX1229 line
correct capitalization for amphenol_ARFX1229
add note about the dangers of whitespace in .list files
add bourns 3224G, 3224J, 3224W, and 3224X trim pots
add some more SMA connectors
include the bourns library
add through hole test point footprint.
- add a handful of 3 pin SMT EMI filter footprints
regen after adding bourns library
add several minicircuits packages
regen after adding minicircuits
add an extra argument to COMMON_SMT_DIL_MIL and COMMON_SMT_DIL_MM to
deal with SMT DIL packages with an odd number of pads per side
Add the panasonic EXB series of chip resistor arrays.
regen after adding panasonic library
rename the SOT23 and SOT323 footprints here to SOT23_CEL and SOT323_CEL
add SC70_3, SC70_4, SC70_5, and SC70_6 footprints (the 3,4,5, and 6 pin
fix typo in a comment
with reverse order numbering in COMMON_SMT_DIL_MIL and COMMON_SMT_DIL_MM,
add Amp connector library. Currently its populated with the 767054 series
regen after adding amp library
add a features wish list. not sure if this is the best place for such
add element versioning and database of good elements
properly pass down the arguments to the underlying macro for the PKG_AMPHENOL_ARFX123{0,1,2} packages
bump copyright date
fix some quoting
- modify the 2 pad smt base definition to put the origin of the footprint
add missing RCS Id
add missing RCS Id
correct the aperture definition output lines and the drill tool definition
Convert to a high resolution footprint. Pads are a little more accurate
fix a couple of other bugs related to the high res changes. In particular,
fix generation of fab drawing with the high resolution changes
partially undo the last change with respect to quoting. Only
One more hi-res buglet. Correct parsing of 'Arc'. Thanks to Bill Wilson
note harry's hi-res changes.
#/bin/sh -> #!/bin/sh to make these execute correctly.
add Merge_dimPCBPS
regen after adding Merge_dimPCBPS
correct the drill diameter in the drill report after the hi-res changes
add a way to control the scale factor associated with thermals. This is
add checks for logf and expf
regen after adding logf and expf checks
install MergePCBPS and Merge_dimPBPS
add a place for putting our own implementation of missing/broken functions.
regen after adding compat.c/h
remove extra whitespace in generic208_lqfp
add a PKG_CONNECTOR_DIL for 2 column headers with DIL pin numbering.
whitespace fix
clarify the pad creation a little
a HEADER60_2 should have 60 pins not 50 as noted in bug report 900231
enable the regex select stuff. A trial of a regex select of some components
Added a new action which will toggle the visibility of
document the ToggleVisibility action
one more regex bug fix noted by Matt Ettus
100 pin QFP packages have 100 pins not 72
revert last change. Some compilers including gcc-2.95.3 do not like it.
increase soldermask relief on mounting pads
test commit
test commit #2
test commit #3
hires-ify the COMMON_SMT_DIL_MIL macro. The macro already took input
Correct the spacing between the rows of pads. Also fix one of the pad
Fix SDIP (shrink DIP) footprints. Patch from Wojciech Kazubski in
fix refdes silk size
add cts library containing CTS series 742/3/4/5/6 resistor packs
fix the EXTRACT_END flag
put variable declarations at the beginning of functions. Avoids syntax
RCS Id police
RCS Id police
fix some 64-bit bugs to get this working on my alpha. Of prime importance,
When printing to RS-274-X also generate a centroid data file (X-Y data)
RCS Id and config.h police
add a note about the centroid and bill of materials output. While here
minor fixes to get the distcheck target working again.
regen
RCS Id police
put a string which is repeated several times into a #define and use that
Add some DRC checking of silkscreen layers. Currently this check looks for
clarify a comment
adjust spacing between the 2 rows of pins to better match the datasheet
protect the inclusion of string.h with HAVE_STRING_H
fix typo
fix typo in comment
correct the pin/pad bounding box calculation. Bug noted by David Koski.
add a comment
unset XUSERFILESEARCHPATH which causes a conflict with XAPPLRESDIR
add missing string.h (for strcmp). Noted by Dave McGuire
fix a hi-res bug in the polarity arc silk for some SMT DIL pkgs
add SOJ packages (lots of them)
make sure we get the preamble in all EPS output files. Bug noted by David Koski
update the COMMON_SMT_2PAD_MIL macro to the newer element format. With this
add INFO-DIR-SECTION Miscellaneous per bug #957369 submitted by Mike Frysinger
bump date
add test for rint()
regen after adding rint() test
Fix the segfault bug noted in bug report #959073 by Bob Paddock. While
Add SetFlag, ClrFlag, and ChangeFlag actions. These currently let you
For the pcb wrapper script, if the first argument is "-gdb", pick off that
correct location for Pcb appdefaults file
document the SetFlag(), ClrFlag(), and ChangeFlag() actions
set MASKFRAME to be 3 (mils) instead of 0. This way the soldermask
add missing prototype
add some release notes for the upcoming 20040530 snapshot
bump updated date to match snapshot date
update changelog with cvs2cl.pl. This file previously was empty.
remove duplicated line
add a note to remember to do something better with versions on the next snapshot
fail configuration if Xaw is not found
regen (fail configuration if Xaw is not found)
add a GetXY() to the 'copy selection to buffer' menu. Needed to have
add @ character. Absence noted by Dave McGuire.
Add usage output if the input arguments are not quite right for several
add usage output for several more actions
If --enable-dmalloc is given but dmalloc is not found then error out instead of disabling dmalloc
regen (If --enable-dmalloc is given but dmalloc is not found then error out instead of disabling dmalloc
change the order in the list of rpath flags which are tried out. This
regen after rpath flag order change
Save layerstack settings prior to running DRC and restore them afterwards
Add 0.5 and 0.1 mil grid selections. Requested in RFE #876549 by
Do not arbitrarily change the zoom setting whenever running DRC. Especially
fix the function name strings passed to MyCalloc().
make sure we define all aperture codes used by arcs. Fixes the bug reported
add a few more 400mil width DIP packages (DIPxM)
make 'str' static so that the memory allocated by MyStrdup() can
when running under gdb set XAPPLRESDIR and unset XUSERFILESEARCHPATH
fix some errors where the diameter was used where the radius should
Fix a bug related to checking for the intersection of a circular region
improve the decision on adding or not adding a silk arc on the COMMON_SMT_DIL_MIL macro
update the 150 and 300 mil width SOIC packages per the IPC recommendations
use foo?foo:bar instead of foo?:bar as the latter is a gcc extension.
avoid 'inline' unless we're using gcc.
add a man page which says where to look for the manual
regen after adding pcb.1
In the Usage() function be sure to restore stderr at the beginning since
allow --version, --help, and --copyright to also work since those are
add one more Usage message. this time for the RemoveSelected() action
add a brief comment about what M4 is and where to find more info
exclude Makefile, Makefile.am, and Makefile.in as valid element names as these may reside in a lib directory
use "Reference Designator" instead of "Name on PCB" as the former is more standard
update the table of the output files generated by PCB
Fix a minor memory leak bug which allocated space for 10 more pointers
add an ExecuteFile(file) action which executes the actions contained
document the ExecuteFile() action and the -script command line option
add pcb.1 to EXTRA_DIST
regen (add pcb.1 to EXTRA_DIST)
bump updated date
remove an unused variable
add a missing header
remove some unused variables
use long int in some places to avoid assigning a long int to an int
add missing header (for isdigit)
if we are using gcc then add -Wall
regen (if we are using gcc then add -Wall)
add actionlist.c for non-maintainers
update this to more closely match the current reality
fix a "=" instead of "==" bug
rework the lines which have
get rid of a bunch of format string compiler warnings along with some unused variable warnings
clean up a few more compiler warnings
add missing prototype
remove unused variable
add missing prototype
add missing headers
add more detailed snapshot instructions
update to get ready for next snapshot
update with pcb-20040903 news items
mention the background image in 20040903
add an extra digit to the display of metric measurements.
minor tweaks to instructions
add missing #else clause in defining ATTRIBUTE_UNUSED on non-gcc or older
Apply several improvements from Bob Paddock including:
minor fixup in the newlib element creation guide.
improve the quoting so that aclocal-1.9.2 is happier
check for ps2pdf which is used for building the refcard
regen
- override the mostlyclean-aminfo target to avoid deleting the .dvi, .html,
regen
update to texinfoversion 2004-09-06.16
minor fixups to make this happy again with the new texinfo.tex
update date on manual since there have been additions
regen so that all Makefile.in files came from the same version of automake
Fix one more (last one maybe?) hires bug where when converting a selection
Add date and compile time to the About dialog. Patch provided as
remove unused variable, make sure return returns a value on a non-void fn
Add support for a loadable vendor resource. The primary purpose is to import
regen after adding vendor resource/mapping code
document vendor drill mapping
add missing vendor.h
Quote "$@" to keep args whole
Modify the LoadVendor() action so if the file name is not give, the user
Allow the use of regular expressions in the resources which specify
clarify the units used by PCB a bit
add support for ElectricFence debugging. --enable-efence
regen [add support for ElectricFence debugging. --enable-efence]
Fix the <Key>. binding to toggle 45 degree mode. Addresses bug #1022800
Restore translation table for the mode buttons. This seems to fix
add <Key>. as the hotkey for toggling 45 degree line mode.
revert previous. Seems to have snuck in by mistake in the strcmp()
adjust Pcb.masterForm*cursorPosition.width to match the app-defaults file value
add metric output to the location display. Based on patches provided
remove a compiler warning
move the regfree() call _before_ the return from the function that calls it
change "Location" to "LocationType". Avoids some confusion with some
cast some pointers to (void *) when printing debug output. reduces the # of compiler warnings
remove duplicated files and fix some out of date info
add a DisperseElements() action which will disperse all elemnents in
remove some more compiler warnings
add DisperseElements() to menu
udate data
regen
increase quoting of $2 in PKG_CRYSTAL to avoid the refdes from
add docs for ChangeClearSize() action. Also apply some other fixes
Increase Pcb.masterForm*cursorPosition.width to make room for metric display.
in the message log produced when a via size has to be increased to
use LAYOUT_BOTTOM to always put the status line at the bottom of the
add a --disable-rpath flag to disable hardcoding of the X11
regen
avoid having text overlaying text in the fab drawing when a very
Add "Selected" and "All" arguments to DisperseElements so you have
for the .test/Pcb apps-default file (the one used when running before
regen
- break the status line into 2 lines as it was getting rather long
do not complain about MIN_PINORVIACOPPER on a mounting hole
bump date
increase the padsize and drill size for through-hole PLCC sockets
fix the LED3 and LED5 footprints for T-1 and T-1 3/4 (3mm and 5mm)
change pcb to Pcb in a commented out resource
update to latest automake
update to get ready for next snapshot
add news for snapshot 20050127
add an appendix with a big list of drill sizes. Included are American
regen
fix typo in target for creating texi files from the ascii list of drills
regen
add flag to keep building the html manual as a single page.
regen
add TQFP packages provided by Walter Fetter Lages in patch #1108881.
fix drill size for PKG_BNC_LAY. Provided by Walter Fetter Lages in patch #1108881
fix drill size for ZIP packages. Noted by Walter Fetter Lages in patch #1108881
Add DIP44. Provided by Walter Fetter Lages in patch #1108881
change units to 1/100 mil for pinout window offset
fix a segfault bug on the pinout window (no null pointer dereference)
fix a segfault bug when using <Key>Up and <Key>Down to try and adjust
add --enable-gtk and --disable-xaw configure flags which will turn
regen after adding --enable-gtk and --disable-xaw
regen
add a few missing prototypes
add MULTIWATT and friends. Fix drill size for several versions
use ACLOCAL_FLAGS if set
regen after adding gtk configure.ac stuff
update with latest changes
add a few missing files to EXTRA_DIST
regen
Import Bill Wilson's port of pcb to gtk. Things seem to compile and
add some config file patches from Bill Wilson
add some files missed in the gtk-pcb checkin
error out if m4 is not found
regen [error out if m4 not found]
convert several c++ style comments to c comments. not all compilers like //
make sure we still set the X library rpath (yes, it is still
regen
add missing strflags.h
regen [add missing strflags.h]
reduce minimum board size from 1.2 to 0.6 inches
add changes for 20050609
add news for 20050609
apply the patches provided by Wim Lewis in patch #1189989 to allow
apply patches provided by Bill Wilson in patch #1215935
apply patches provided by Bill Wilson in patch #1227205
apply patches provided by Bill Wilson in patch #1227292
apply patches provided by Bill Wilson in patch #1230704
apply patches provided by Bill Wilson in patch #1230708.
remove the inclusion of menu.h. We don't use that file anymore
hires-ify the QFN packages. While here make sure we use an appropriate
add a check for sys/types.h and then if found, include in vendor.c.
regen
fix typo
remove some redundant code to make things more clear
add appendix describing the centroid file format along with the
regen (fix botched commit which was missing some M4 paths)
fix the pin order.
add 1008 package
- change the Print action to PrintDialog since it causes the print
add script to make it easier to print from the command line
fix -auto-place for the library window
fix a bug in the --add-alignment option. Noted by David Baird
add pcb-print to the list of distributed files
check for gtk+ >= 2.4.0 instead of 2.2.0 since we need >= 2.4.0
regen
make sure to check for -lX11 even when we're using the gtk gui.
regen
make this script a bit more verbose and also abort on errors
add a PKG_SMT_2PAD_MM100 which directly takes dimensions for the pads,
redo the 0201, 0402, etc passives to bring them in line with the IPC
Be sure to set the library path to the source tree. Patch supplied by
fix duplicate PKG_SME4 which should have been called SME5. Reported by
fix a bug which prevented disabling nets from the ratsnest
- added the pad drawing showing how a pad is drawn with an aperture.
cause the missing ) in PKG_SMT_2PAD_MM100 to appear
bump date last touched
put the html manual in 1 file. Its a bit easier to manage
regen [put the html manual in 1 file]
add a ChangePinName() action which lets you change the name of a pin/pad
document ChangePinName action
format cleanup of ActionChangePinName() to bring more in line with
apply some fixes for DragonFly BSD
Add a pad drawing showing how a pad is drawn with a rectangular
When manually adding nets, make sure we actually pick a unique name
add DRC checks for minimum drill diameter and minimum annular ring.
- clarify that the manual does not currently document the very latest pcb
Fix reduce-reduce conflicts (patch from DJ).
eat blank lines of which there can be many in the element output
put the correct gschem footprint= attribute in [] at the end of each description
garbage collect some footprints that were not at all conforming to the
regen
Remove the abuse of the value field as a way of passing in multiple
add an optional -fp argument which will display the correct footprint=
add drawing of soldermask opening around a pad
- replace obsolete AC_ERROR with AC_MSG_ERROR
regen
Minor updates to fix the 'distcheck' target. Adds a missing file
regen
bump updated date
regen
update with changes for 20060321 snapshot.
update authors a bit
add news for the 20060321 snapshot
regen
add a few more notes about the snapshot process
note what some of the branches are
Use log() instead of logv(). Fixes compilation on NetBSD/alpha, gcc-3.3.3
improve this drawing a bit
include the tgif output here until I replace the drawings with pcb drawings
detect when tgif is not found and give a warning instead of crashing the build
regen
correctly identify the poly clearance
Replace the tgif drawing with a pcb drawing. The suffix rules are
add missing RCS Id
add $srcdir in a couple of places for configuring outside of the
regen
add the generated headers to DISTCLEANFILES and add a bunch of missing
add missing header
remove a compiler warning
remove compiler warning and add config.h, dmalloc.h, and RCS Id
add config.h, dmalloc.h, and RCS Id
add RCS Id
add dmalloc.h
add config.h, dmalloc.h, and RCS Id
add RCS Id
remove a duplicate header and Id
remove unused variable
remove a spurious ";"
add RCSID and dmalloc.h
add missing draw.h header
add a couple of missing headers
format string fix
remove unused variable
remove compiler warning
remove an unused variable
add missing header
remove unused variable
add missing member to the lpr_hid initialization
remove more compiler warnings
fix several more compiler warnings by removing some unused variables
Take the ";" out of the REGISTER_* defines and put them in the invocations.
indent
indent
Revert the ";" thing. The REGISTER_* macros now contain ";"
quote the regexp passed to grep to keep solaris-2.9 happy
fix the ChangeFlag action (compiler warning pointed to the bug)
don't include the full path for the default value of the LibraryCommand
add some missing arguments when running in gdb
avoid some complier warnings on solaris-2.9/sparc (gcc-3.3.5)
avoid some compiler warnings on solaris-2.9/sparc (gcc-3.3.5)
avoid some compiler warnings on solaris-2.9/sparc (gcc-3.3.5)
check the result of the --install options _after_ the options have
avoid some compiler warnings on solaris-2.9/sparc (gcc-3.3.5)
fix a couple of paths when building outside the source directory
also set the font path
fix a bug when specifying the output file name
add missing lesstif header to get it in the distfile
move ListLibraryContents.sh to being something created at configure time
correctly find the font file
Rework the dependencies on the various generated files a bit to hopefully
put the generated files in the build directory instead of the source
don't automatically run ./configure. Simplifies things a bit when
regen after configure.ac changes
Fix the calculation of the names of the generated .texi tables for
note the DISTCHECK_CONFIGURE_FLAGS variable
- when not in maintainer mode, do not list all the dependencies for the
regen
List the available HID's in the ./configure --help output.
minor cleanup of status output
add a help string for --lib-newlib
Fix a bug in options parsing where the loop looking for matches continued
add a --listen option which causes pcb to listen on the standard input
fix a segfault when printing a board with no drill holes at all.
use fileno(stdin) instead of 1 to get the stdin file descriptor.
add some of the generated files to see if that will help with those
add cast to avoid compiler warnings
add a --listen option for the lesstif HID too (works the same as the gtk
- remove a debug printf which was trying to print a NULL string. Fixes
- Remove a debug printf which tried to print a NULL string. Avoids
bump the rev letter to help identify this as the HID version if someone
Make sure we initialize some variables before using them. Fixes a segfault
add back in the --enable-efence and --enable-dmalloc configure flags
in a function which is supposed to return a string but is commented out
Fix an off by one overflow of a malloc'ed buffer. Found with ElectricFence.
No need to use strdup(Concat()) as Concat already gives us allocated memory
fix a typo in a comment
avoid allocating 0 bytes
Fix a bug where actions using SelectedPads did nothing and SelectedPins picked
- When changing selected line size from the menu, do it to the selected
add a missing typecase
fix prototype for an action. kills one more compiler warning
access djopt_set_auto_only() via the associated action instead of directly
put back dmalloc support
do not redefine malloc if we are using dmalloc
Check to make sure a pointer is not NULL before dereferencing it.
move variable declarations to the beginning of blocks to make gcc-2.95
fix a prototype
check to see which graphic file formats are supported by the installed
Be a bit more careful with rouding issues when converting to pcb units.
remove the pcb-print script. It is obsolete now that the HID
fix a bug which prevented the File->Export menu from working more than
add pointer to the geda homepage and wiki as well as the pcb home page in the about dialog
- make the ESC key return you to the arrow tool if you are in via, thermal,
add a MyMalloc to go along with MyCalloc
revert the previous, this part wasn't quite right.
add some missing const-s
declare dump_actions() right before using it
move some initializations inside a loop so they don't get missed
When building docs, look for a perl to use. This will let the user set
Fix bug [ 1462380 ] saving buffer elemnts to file does nothing.
garbage collect some printf output
- for the Select(*ByName) action, allow a 2nd argument to specify the
regen (after checking for perl)
- add a missing description and move some footprints from the wrong .list
Add a "ToLayout" option for the PasteBuffer() action. You can now do things
add two documents in progress describing a plan for future work
add support for units and relative coordinates in PasteBuffer(ToLayout)
move these to an ideas subdirectory to hopefully more clearly indicate
add a drawing showing what a thermal relief looks like
change name of board
add thermal drawing
increase resolution of PDFs of drawings. 72dpi looked pretty bad on the thermal drawing
add thermal to the glossary
add thermals to glossary
use AFAIL() when an action fails due to a syntax error
add the About action
const-ify the log message functions
Add some stuff to help build under win32. Note: win32 support is not finished
Add a couple more configure checks for functions (gethostname
add stuff to compile in icons for win32
add some new configure related files
one more header check
add windres file for win32 icons
check for getcwd()
add a few more checks to let this build under cygwin/mingw
check for a few tools used to regenerate windows icons
replace wcalc icons with placeholder pcb icons
add a tgif Xdefaults file needed for generating the correct XPM version
add win32 to SUBDIRS
add generated icon file
add missing file
add a dependency on the icon resource object if this is win32
add a win32 README file
add compat.h header for missing system functions
add a (lame) random() replacement
add missing return value
on win32, figure out the path to the installed package so
fix a distcheck problem
regen
update the instructions a bit
update for 20060414 snapshot
20060414 release notes
bump rev after 20060414 branch
make sure we set the default icon _before_ any windows are created
switch the output scaling to default to 100 dpi instead of fixing the
get this to properly link when --disable-gif is used and the installed
- add checks for sys/param.h and compiler understanding of 'inline'.
rely on the autoconf test for inline instead of using our own based
comment out with #if 0 the code related to lesstif_options and lesstif_resources
change from NONE_PRESSED to NO_BUTTON_PRESSED since the former is not
protect some GNU C specific stuff with #ifdef __GNUC__
Comment out locale.h since the code which needed that was also commented
update for 20060422 snapshot
update for 20060422
add 20060422 release notes
update newlib creation section for the latest GTK HID. Addresses bug
when smashing the pastebuffer, don't set the pure hole flag on the
remove a debugging printf
do not crash if the input pipe terminates when using --listen
complain if the png HID has been requested but all formats disabled
remove obsolete README file
bring the install docs up to date
remove obsolete README file
if gdlib-config is not found, try and just check for -lgd on the off chance
minor updates, mention gd-2.0.23 as having been used
regen
prevent segfaults when trying to undo in the middle of drawing ratlines.
fix a bug where mirroring a buffer with only traces triggered the
add Message() action
add the batch HID to the list of gui HIDs in the help output
add a comment about needing the png HID for building docs from cvs
Apply a patch from Larry Doolittle that switches from the MyFree() function
Apply a patch from Larry Doolittle.
remove some redundant and out of date notes
fix a typo
summarize the dependencies for building pcb
remove circular dependency which breaks non-GNU make programs.
- Note that automake-1.7 and older are too old.
After running PATH_XTRA and checking for various X libs (Xpm, etc), we
Remove extra calls to Draw(). This greatly speeds up copy operations.
Add 01005 footprints.
add hid/batch/batch_lists.h to DISTCLEANFILES
Fix bug [ 1534098 ] Segmentation fault in GTK print dialog reported by
use 0.01 mm instead of 0.05 mm for the roundoff for 01005 footprints because
when pkg-config fails to find the desired version of gtk or glib, then
Apply patch from patch
add header for a missing prototype
add a Renumber() action which renumbers reference designators and
regen
update for 20060822 snapshot
add a note about how I test the distcheck target for the lesstif HID
bump rev after 20060822 branch
bump rev after 20060822 branch
error out if yacc or lex could not be found
regen after the lex/yacc configure.ac change
add the start of a m4lib to newlib conversion script
- put both the index.html file and the broken.html file in the output directory.
remove unused PKG_DUMMY which did not do anything anyway
Rather than putting a huge list of footprints into one index file, break
expand the PKG_AXIAL_LAY and PKG_RADIAL_CAN macros to take an extra
- remove the BRE* footprints. The required PKG_RECTANGULAR macro doesn't
increase PKG_CONNECTOR and PKG_CONNECTOR_DIL hole size to something more reasonable.
ensure that derive_default_filename() always comes back with a valid
improve the drill sizes for several footprints. Changes provided by
Fix up the pads and drill sizes on the TO* packages. Based on patch
Go ahead and let configure process the m4lib_to_newlib script. Also
remove a ' in an output comment line which threw off a closing ) that
quote the refdes parameter (name on board parameter) on the PKG_* macros.
If the output file(s) can't be opened for writing then spit out an
remove some unused variables
add missing return value
When optimizing rats, if there are > 0 of them, display a message indicating
Improve the gtk "about" dialog box output to explicitly list the HID's which
const-ify DSAddString
use the unified "about" string.
We don't directly need X stuff anymore unless we're using the lesstif
make this script more robust with respect to the formatting of the
Move the gcc flags that cause builds under cygwin to produce non-cygwin
It should be "-mms-bitfields" instead of "--mms-bitfields".
Check for popen(). So far nothing is done as a result of this.
extract the version from configure.ac instead of hard coding it.
add missing hid_{load,save}_settings prototypes
add missing header for Mes...
[truncated message content] |
|
From: <gi...@gp...> - 2009-11-03 22:59:57
|
The branch, master has been updated
via 4250e30238ab77475715cda5ae648b19470afa4d (commit)
from 5cff31a8d90984494d944ea42002bece5059c083 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
configure.ac | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
=================
Commit Messages
=================
commit 4250e30238ab77475715cda5ae648b19470afa4d
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Welcome to pcb-1.99z (decision time is looming)
:100644 100644 8104fc1... 49d7714... M configure.ac
=========
Changes
=========
commit 4250e30238ab77475715cda5ae648b19470afa4d
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Welcome to pcb-1.99z (decision time is looming)
diff --git a/configure.ac b/configure.ac
index 8104fc1..49d7714 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,6 @@
-dnl $Id$
dnl Process this file with autoconf to produce a configure script.
-AC_INIT([pcb], [1.99y])
+AC_INIT([pcb], [1.99z])
AC_CONFIG_SRCDIR([src/draw.c])
AC_PREREQ([2.60])
AM_INIT_AUTOMAKE([1.9])
|
|
From: <gi...@gp...> - 2009-11-03 21:57:35
|
The branch, master has been updated
via 6a274b2a8b0a78ee7fb37b275a969bea5f45a2e4 (commit)
from 25e919d636661c2698ed13d9627b605ad44e423c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/hid/batch/batch.c | 4 ++--
src/move.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
=================
Commit Messages
=================
commit 6a274b2a8b0a78ee7fb37b275a969bea5f45a2e4
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Fix mistaken use of MAX_LAYER instead of max_layer.
(Why this wasn't obvious, I can't possibly imagine ;))
Bug relates to batch HID, and move of text items onto the solder layer.
:100644 100644 cc09564... 407bc3a... M src/hid/batch/batch.c
:100644 100644 003c2e0... 6f0c82f... M src/move.c
=========
Changes
=========
commit 6a274b2a8b0a78ee7fb37b275a969bea5f45a2e4
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Fix mistaken use of MAX_LAYER instead of max_layer.
(Why this wasn't obvious, I can't possibly imagine ;))
Bug relates to batch HID, and move of text items onto the solder layer.
diff --git a/src/hid/batch/batch.c b/src/hid/batch/batch.c
index cc09564..407bc3a 100644
--- a/src/hid/batch/batch.c
+++ b/src/hid/batch/batch.c
@@ -82,8 +82,8 @@ info (int argc, char **argv, int x, int y)
PCB->MaxHeight / 100.0,
PCB->MaxWidth * COOR_TO_MM,
PCB->MaxHeight * COOR_TO_MM);
- cg = GetLayerGroupNumberByNumber (MAX_LAYER + COMPONENT_LAYER);
- sg = GetLayerGroupNumberByNumber (MAX_LAYER + SOLDER_LAYER);
+ cg = GetLayerGroupNumberByNumber (max_layer + COMPONENT_LAYER);
+ sg = GetLayerGroupNumberByNumber (max_layer + SOLDER_LAYER);
for (i=0; i<MAX_LAYER; i++)
{
diff --git a/src/move.c b/src/move.c
index 003c2e0..6f0c82f 100644
--- a/src/move.c
+++ b/src/move.c
@@ -654,7 +654,7 @@ MoveTextToLayerLowLevel (LayerTypePtr Source, TextTypePtr Text,
r_substitute (Source->text_tree, (BoxType *) & Source->Text[Source->TextN],
(BoxType *) Text);
memset (&Source->Text[Source->TextN], 0, sizeof (TextType));
- if (GetLayerGroupNumberByNumber (MAX_LAYER + SOLDER_LAYER) ==
+ if (GetLayerGroupNumberByNumber (max_layer + SOLDER_LAYER) ==
GetLayerGroupNumberByPointer (Destination))
SET_FLAG (ONSOLDERFLAG, new);
else
|
|
From: <gi...@gp...> - 2009-11-03 03:29:03
|
The branch, master has been updated
via 25e919d636661c2698ed13d9627b605ad44e423c (commit)
via 3b9a418ffaece91a95ee683be3336cf3a412afd8 (commit)
via ccd37c7db665e3b0f15bc5377a54f89ba997296d (commit)
from 149ff2e16560e85e2f060c89020da121eb83f1b6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
NEWS | 6 +++-
README.snapshots | 55 +++++++++++++++++++++++++++++++----------------------
2 files changed, 36 insertions(+), 25 deletions(-)
=================
Commit Messages
=================
commit 25e919d636661c2698ed13d9627b605ad44e423c
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Add a few more news item for the upcoming release.
:100644 100644 82bf0e7... d4713e6... M NEWS
commit ccd37c7db665e3b0f15bc5377a54f89ba997296d
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Incorporate some feedback from Peter C. The mistakes are still mine.
:100644 100644 0f2d90d... 83aee61... M README.snapshots
=========
Changes
=========
commit 25e919d636661c2698ed13d9627b605ad44e423c
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Add a few more news item for the upcoming release.
diff --git a/NEWS b/NEWS
index 82bf0e7..d4713e6 100644
--- a/NEWS
+++ b/NEWS
@@ -1,10 +1,12 @@
========================================================================
-Release Notes for PCB snapshot 20091101
+Release Notes for PCB snapshot 20091103
========================================================================
-This release represents around 180 commits and as such this summary
+This release represents almost 200 commits and as such this summary
clearly is not complete. See the ChangeLog file for the complete list
of changes.
+- [feature] Add attributes to layers
+- [bugfix] Remove memory leak in attributes
- [bugfix] Avoid layer buttons getting confused (GTK)
- [bugfix] Fix dereference bug in hid_find_action()
- [feature] Speed up some polygon operations
commit ccd37c7db665e3b0f15bc5377a54f89ba997296d
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Incorporate some feedback from Peter C. The mistakes are still mine.
diff --git a/README.snapshots b/README.snapshots
index 0f2d90d..83aee61 100644
--- a/README.snapshots
+++ b/README.snapshots
@@ -24,8 +24,13 @@ upload the 'pcb-$VERSION.tar.gz' file to the sourceforge file release system
To make a pcb release do the following:
-=) Make sure you have a clean checkout of master/origin
- git checkout master/origin
+=) Make sure you have up to date sources
+ git fetch
+ git rebase origin/master
+
+ # note, you could also create a new local branch with
+ # git checkout -b do_release_from_here origin/master but need to make
+ # sure we still get the correct branch and tag on the main server eventually
=) # make sure it makes distfiles ok: (have to build before doing distcheck so
pcb gets built so it can create some of the images in the doc directory)
@@ -47,9 +52,12 @@ To make a pcb release do the following:
gmake distcheck
unsetenv DISTCHECK_CONFIGURE_FLAGS
-=) commit and push any changes which were needed to fix 'distcheck' problems
- git commit -a
- git push
+=) commit and push any changes which were needed to fix 'distcheck' problems.
+ Of course if the changes aren't related then they should be committed in
+ multiple commits.
+
+ git commit <files>
+ git push <files>
=) update the ChangeLog with './utils/git2cl -O > ChangeLog'
@@ -65,7 +73,7 @@ To make a pcb release do the following:
=) if this is a major release, then branch:
1. Create the release branch
- git branch pcb-20091101
+ git branch pcb-20091103
3. FIX_ME [fix up this step. what shall we do with the version
on the trunk? We are about to run out of letters!]
@@ -77,14 +85,14 @@ To make a pcb release do the following:
git push
4. On the release branch, update configure.ac to update the version
- for example 20091101_ALPHA. Now pre-release snapshots can be made.
- git checkout pcb-20091101
+ for example 20091103_ALPHA. Now pre-release snapshots can be made.
+ git checkout pcb-20091103
5. If desired tag an alpha release:
- git checkout pcb-20091101
+ git checkout pcb-20091103
./autogen.sh
- git tag -a pcb-20091101-ALPHA
- git checkout pcb-20091101-ALPHA
+ git tag -a pcb-20091103-ALPHA
+ git checkout pcb-20091103-ALPHA
./autogen.sh && ./configure --enable-maintainer-mode \
--disable-update-desktop-database \
--disable-update-mime-database && \
@@ -92,14 +100,15 @@ To make a pcb release do the following:
6. When the release branch is ready to go, update configure.ac to
set the final release version. Then tag the release.
- git checkout pcb-20091101
+ git checkout pcb-20091103
vi configure.ac
git commit configure.ac
./autogen.sh
- git commit -a
+ git commit -a # after we expunge all generate files from git, we can skip this one
git push
- git tag -a pcb-20091101-RELEASE
- git checkout pcb-20091101-RELEASE
+ git tag -a pcb-20091103-RELEASE
+ git push --tags
+ git checkout pcb-20091103-RELEASE
./autogen.sh && ./configure --enable-maintainer-mode \
--disable-update-desktop-database \
--disable-update-mime-database && \
@@ -107,14 +116,14 @@ To make a pcb release do the following:
7. Create checksums
- openssl sha1 pcb-20091101.tar.gz > pcb-20091101.cksum
- openssl md5 pcb-20091101.tar.gz >> pcb-20091101.cksum
- openssl rmd160 pcb-20091101.tar.gz >> pcb-20091101.cksum
- echo "File size (bytes):" >> pcb-20091101.cksum
- wc -c pcb-20091101.tar.gz >> pcb-20091101.cksum
+ openssl sha1 pcb-20091103.tar.gz > pcb-20091103.cksum
+ openssl md5 pcb-20091103.tar.gz >> pcb-20091103.cksum
+ openssl rmd160 pcb-20091103.tar.gz >> pcb-20091103.cksum
+ echo "File size (bytes):" >> pcb-20091103.cksum
+ wc -c pcb-20091103.tar.gz >> pcb-20091103.cksum
8. Create a new file release for pcb with a release name of
- "pcb-20091101" (for pcb-20091101).
+ "pcb-20091103" (for pcb-20091103).
https://sourceforge.net/projects/pcb (you must be logged in to sourceforge)
@@ -154,11 +163,11 @@ To make a pcb release do the following:
git checkout master
=) if this is a patch release, then simply make desired changes to the branch, and
- git checkout pcb-20091101
+ git checkout pcb-20091103
# make changes
./autogen.sh
git commit
- git tag -a pcb-20091101-PATCH001
+ git tag -a pcb-20091103-PATCH001
git push
=) gmake distclean ; ./autogen.sh &&./configure && gmake distcheck
|
|
From: <gi...@gp...> - 2009-11-01 05:25:56
|
The branch, master has been updated
via 149ff2e16560e85e2f060c89020da121eb83f1b6 (commit)
from 13f7bcf0494cfa18815667af1c22debef51425a3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/file.c | 1 +
src/global.h | 1 +
src/mymem.c | 20 ++++++++++++++++++++
src/parse_y.y | 3 ++-
4 files changed, 24 insertions(+), 1 deletions(-)
=================
Commit Messages
=================
commit 149ff2e16560e85e2f060c89020da121eb83f1b6
Author: Ineiev <in...@us...>
Commit: DJ Delorie <dj...@de...>
add attributes to layers
Fix memory leaks of attributes
:100644 100644 b6c67b9... db167c8... M src/file.c
:100644 100644 4cf489a... fa9f55e... M src/global.h
:100644 100644 c3663d6... 4118cf0... M src/mymem.c
:100644 100644 dba2603... 646ef77... M src/parse_y.y
=========
Changes
=========
commit 149ff2e16560e85e2f060c89020da121eb83f1b6
Author: Ineiev <in...@us...>
Commit: DJ Delorie <dj...@de...>
add attributes to layers
Fix memory leaks of attributes
diff --git a/src/file.c b/src/file.c
index b6c67b9..db167c8 100644
--- a/src/file.c
+++ b/src/file.c
@@ -781,6 +781,7 @@ WriteLayerData (FILE * FP, Cardinal Number, LayerTypePtr layer)
fprintf (FP, "Layer(%i ", (int) Number + 1);
PrintQuotedString (FP, EMPTY (layer->Name));
fputs (")\n(\n", FP);
+ WriteAttributeList (FP, &layer->Attributes, "\t");
for (n = 0; n < layer->LineN; n++)
{
diff --git a/src/global.h b/src/global.h
index 4cf489a..fa9f55e 100644
--- a/src/global.h
+++ b/src/global.h
@@ -281,6 +281,7 @@ typedef struct /* holds information about one layer */
Boolean On; /* visible flag */
char *Color, /* color */
*SelectedColor;
+ AttributeListType Attributes;
}
LayerType, *LayerTypePtr;
diff --git a/src/mymem.c b/src/mymem.c
index c3663d6..4118cf0 100644
--- a/src/mymem.c
+++ b/src/mymem.c
@@ -802,6 +802,23 @@ FreeNetMemory (NetTypePtr Net)
memset (Net, 0, sizeof (NetType));
}
}
+/* ---------------------------------------------------------------------------
+ * frees memory used by an attribute list
+ */
+static void
+FreeAttributeListMemory (AttributeListTypePtr list)
+{
+ int i;
+
+ for (i = 0; i < list->Number; i++)
+ {
+ SaveFree (list->List[i].name);
+ SaveFree (list->List[i].value);
+ }
+ SaveFree (list->List);
+ list->List = NULL;
+ list->Max = 0;
+}
/* ---------------------------------------------------------------------------
* frees memory used by an element
@@ -832,6 +849,7 @@ FreeElementMemory (ElementTypePtr Element)
MYFREE (Element->Pad);
MYFREE (Element->Line);
MYFREE (Element->Arc);
+ FreeAttributeListMemory (&Element->Attributes);
memset (Element, 0, sizeof (ElementType));
}
}
@@ -856,6 +874,7 @@ FreePCBMemory (PCBTypePtr PCBPtr)
for (i = 0; i <= MAX_FONTPOSITION; i++)
MYFREE (PCBPtr->Font.Symbol[i].Line);
FreeLibraryMemory (&PCBPtr->NetlistLib);
+ FreeAttributeListMemory (&PCBPtr->Attributes);
/* clear struct */
memset (PCBPtr, 0, sizeof (PCBType));
}
@@ -889,6 +908,7 @@ FreeDataMemory (DataTypePtr Data)
for (layer = Data->Layer, i = 0; i < MAX_LAYER + 2; layer++, i++)
{
+ FreeAttributeListMemory (&layer->Attributes);
TEXT_LOOP (layer);
{
MYFREE (text->TextString);
diff --git a/src/parse_y.y b/src/parse_y.y
index dba2603..646ef77 100644
--- a/src/parse_y.y
+++ b/src/parse_y.y
@@ -837,7 +837,7 @@ component-side silk, in that order.
@item Name
The layer name.
@item contents
-The contents of the layer, which may include lines, arcs, rectangles,
+The contents of the layer, which may include attributes, lines, arcs, rectangles,
text, and polygons.
@end table
@@ -894,6 +894,7 @@ layerdefinition
| text_hi_format
| text_newformat
| text_oldformat
+ | { attr_list = & Layer->Attributes; } attributes
/* flags are passed in */
| T_POLYGON '(' flags ')' '('
{
|
|
From: <gi...@gp...> - 2009-10-30 11:37:25
|
The branch, master has been updated
via 13f7bcf0494cfa18815667af1c22debef51425a3 (commit)
from 9309dfe4cc76e08ee66cc5320f321d87268dbce9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
configure.ac | 11 +++++++++++
doc/Makefile.am | 8 ++++----
lib/Makefile.am | 5 ++---
3 files changed, 17 insertions(+), 7 deletions(-)
=================
Commit Messages
=================
commit 13f7bcf0494cfa18815667af1c22debef51425a3
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Provide better support for building from anoncvs sources.
There were a few conditionals which turned on additional portions of the
makefiles if it was determined that the build was from sources obtained
via git. Expand this to also detect if sources were from CVS since we
still support anonymous cvs for tracking sources.
:100644 100644 0efe7da... 8104fc1... M configure.ac
:100755 100755 177cd9c... 1228b33... M doc/Makefile.am
:100644 100644 9825847... a3155da... M lib/Makefile.am
=========
Changes
=========
commit 13f7bcf0494cfa18815667af1c22debef51425a3
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Provide better support for building from anoncvs sources.
There were a few conditionals which turned on additional portions of the
makefiles if it was determined that the build was from sources obtained
via git. Expand this to also detect if sources were from CVS since we
still support anonymous cvs for tracking sources.
diff --git a/configure.ac b/configure.ac
index 0efe7da..8104fc1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,6 +28,17 @@ else
fi
AM_CONDITIONAL(GIT_VERSION, test x$pcb_git_version = xyes)
+AC_MSG_CHECKING([if you are building from a anoncvs checkout])
+pcb_cvs_version=no
+if test -f $srcdir/CVS/Root ; then
+ pcb_cvs_version=yes
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no])
+fi
+AM_CONDITIONAL(CVS_VERSION, test x$pcb_cvs_version = xyes)
+AM_CONDITIONAL(GIT_OR_CVS_VERSION, test x$pcb_git_version = xyes -o x$pcb_cvs_version = xyes)
+
##########################################################################
#
# See if we are supposed to build the docs
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 177cd9c..1228b33 100755
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -35,7 +35,7 @@ info_TEXINFOS= pcb.texi
# to build the documentation. Users who obtain the cutting edge sources
# via GIT are considered to be doing "development" and incur a slightly
# higher list of required tools.
-if GIT_VERSION
+if GIT_OR_CVS_VERSION
pcb_TEXINFOS= ${inline_texi} ${pcb_output} ${tab_texi}
else
pcb_TEXINFOS=
@@ -56,7 +56,7 @@ pdf_docs= ${info_TEXINFOS:.texi=.pdf} refcard.pdf
# time on the same input file. That causes clashes in
# the .aux files which are used by both latex and
# pdflatex.
-if GIT_VERSION
+if GIT_OR_CVS_VERSION
refcard.pdf: refcard.ps
pcb.pdf: pcb.ps
endif
@@ -84,7 +84,7 @@ EXTRA_DIST= \
${tab_files} \
${tab_texi}
-if GIT_VERSION
+if GIT_OR_CVS_VERSION
BUILT_SOURCES= ${tab_texi} ${pcb_output} ${inline_texi}
CLEANFILES= \
refcard.aux refcard.dvi refcard.log refcard.pdf refcard.ps \
@@ -129,7 +129,7 @@ ${inline_texi} : extracted-docs
# anyway.
.PHONY : extracted-docs
extracted-docs :
-if GIT_VERSION
+if GIT_OR_CVS_VERSION
${PERL} $(srcdir)/extract-docs $(srcdir)
else
@echo "Skipping documentation extraction since you are not building from GIT sources"
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 9825847..a3155da 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -1,5 +1,4 @@
## -*- makefile -*-
-## $Id$
##
PCBLIBDIR= @PCBLIBDIR@
@@ -43,7 +42,7 @@ else
PREVIEW=
endif
-if GIT_VERSION
+if GIT_OR_CVS_VERSION
NEWLIB_DEPS= ${LIBCONTENTS} ${srcdir}/m4lib_to_newlib.sh
else
NEWLIB_DEPS=
@@ -70,7 +69,7 @@ uninstall-local:
EXTRA_DIST= ${NEWLIB} footprint.pcb ${NEWLIB}.stamp png_diff.sh
-if GIT_VERSION
+if GIT_OR_CVS_VERSION
DISTCLEANFILES= ${NEWLIB}.stamp
else
DISTCLEANFILES=
|
|
From: <gi...@gp...> - 2009-10-29 12:03:47
|
The branch, master has been updated
via 9309dfe4cc76e08ee66cc5320f321d87268dbce9 (commit)
via fd4e30f808d757066ad3a9ed0b2cf081828c3654 (commit)
via f7e89b863bc277d1f234c38c2094b7dcdb22a3e4 (commit)
via b5c04ffb0f27c515eed930dbaf41eff8558cd147 (commit)
from 274f391b39034062f24b7806d974051f95d30205 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
NEWS | 5 ++-
README.snapshots | 10 ++++-
utils/git2cl | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 152 insertions(+), 2 deletions(-)
=================
Commit Messages
=================
commit 9309dfe4cc76e08ee66cc5320f321d87268dbce9
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Add some missing 'git push' to the instructions.
:100644 100644 d82590a... 0f2d90d... M README.snapshots
commit fd4e30f808d757066ad3a9ed0b2cf081828c3654
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Add some last minute news items for 20091101
:100644 100644 a11e413... 82bf0e7... M NEWS
commit f7e89b863bc277d1f234c38c2094b7dcdb22a3e4
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Recommend using the -O (obfuscate email addresses) option to git2cl
:100644 100644 3399a8a... d82590a... M README.snapshots
commit b5c04ffb0f27c515eed930dbaf41eff8558cd147
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Teach git2cl how to obfuscate email addresses. Also add a --help.
:100755 100755 dc28858... b301649... M utils/git2cl
=========
Changes
=========
commit 9309dfe4cc76e08ee66cc5320f321d87268dbce9
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Add some missing 'git push' to the instructions.
diff --git a/README.snapshots b/README.snapshots
index d82590a..0f2d90d 100644
--- a/README.snapshots
+++ b/README.snapshots
@@ -25,6 +25,7 @@ upload the 'pcb-$VERSION.tar.gz' file to the sourceforge file release system
To make a pcb release do the following:
=) Make sure you have a clean checkout of master/origin
+ git checkout master/origin
=) # make sure it makes distfiles ok: (have to build before doing distcheck so
pcb gets built so it can create some of the images in the doc directory)
@@ -47,6 +48,8 @@ To make a pcb release do the following:
unsetenv DISTCHECK_CONFIGURE_FLAGS
=) commit and push any changes which were needed to fix 'distcheck' problems
+ git commit -a
+ git push
=) update the ChangeLog with './utils/git2cl -O > ChangeLog'
@@ -56,6 +59,8 @@ To make a pcb release do the following:
awk '/^2008-11-28/ {print "Changes: " c ; exit} /^20[01][0-9]/ {c++}' ChangeLog
Commit and push NEWS and ChangeLog.
+ git commit NEWS ChangeLog
+ git push
=) if this is a major release, then branch:
@@ -69,6 +74,7 @@ To make a pcb release do the following:
git checkout master
vi configure.ac
git commit configure.ac
+ git push
4. On the release branch, update configure.ac to update the version
for example 20091101_ALPHA. Now pre-release snapshots can be made.
@@ -91,6 +97,7 @@ To make a pcb release do the following:
git commit configure.ac
./autogen.sh
git commit -a
+ git push
git tag -a pcb-20091101-RELEASE
git checkout pcb-20091101-RELEASE
./autogen.sh && ./configure --enable-maintainer-mode \
@@ -152,6 +159,7 @@ To make a pcb release do the following:
./autogen.sh
git commit
git tag -a pcb-20091101-PATCH001
+ git push
=) gmake distclean ; ./autogen.sh &&./configure && gmake distcheck
commit fd4e30f808d757066ad3a9ed0b2cf081828c3654
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Add some last minute news items for 20091101
diff --git a/NEWS b/NEWS
index a11e413..82bf0e7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,10 +1,13 @@
========================================================================
Release Notes for PCB snapshot 20091101
========================================================================
-This release represents around 170 commits and as such this summary
+This release represents around 180 commits and as such this summary
clearly is not complete. See the ChangeLog file for the complete list
of changes.
+- [bugfix] Avoid layer buttons getting confused (GTK)
+- [bugfix] Fix dereference bug in hid_find_action()
+- [feature] Speed up some polygon operations
- [bugfix] Don't let DRC change the grid setting
- [bugfix] Correct URL's in some dialogs and output
- [feature] Add filters to load file chooser dialog (GTK)
commit f7e89b863bc277d1f234c38c2094b7dcdb22a3e4
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Recommend using the -O (obfuscate email addresses) option to git2cl
diff --git a/README.snapshots b/README.snapshots
index 3399a8a..d82590a 100644
--- a/README.snapshots
+++ b/README.snapshots
@@ -48,7 +48,7 @@ To make a pcb release do the following:
=) commit and push any changes which were needed to fix 'distcheck' problems
-=) update the ChangeLog with './utils/git2cl > ChangeLog'
+=) update the ChangeLog with './utils/git2cl -O > ChangeLog'
=) update the NEWS file with some sort of release notes
summary. You can find the number of commits with something like
commit b5c04ffb0f27c515eed930dbaf41eff8558cd147
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Teach git2cl how to obfuscate email addresses. Also add a --help.
diff --git a/utils/git2cl b/utils/git2cl
index dc28858..b301649 100755
--- a/utils/git2cl
+++ b/utils/git2cl
@@ -37,11 +37,68 @@ exec perl -w -x $0 ${1+"$@"} # -*- mode: perl; perl-indent-level: 2; -*-
use strict;
use POSIX qw(strftime);
+use Getopt::Long qw( GetOptions );
use Text::Wrap qw(wrap);
use FileHandle;
use constant EMPTY_LOG_MESSAGE => '*** empty log message ***';
+# Print debugging messages?
+my $Debug = 0;
+
+# Expand usernames to email addresses based on a map file?
+my $User_Map_File = '';
+my $User_Passwd_File;
+my $Mail_Domain;
+my $Obfuscate_Emails = 0;
+
+# Just print usage message and exit?
+my $Print_Usage = 0;
+
+GetOptions('help|usage|h' => \$Print_Usage,
+ 'debug' => \$Debug, # unadvertised option, heh
+ 'obfuscate|o' => \$Obfuscate_Emails,
+ 'usermap|U=s' => \$User_Map_File, # not implemented yet
+ )
+ or die "options parsing failed\n";
+
+if ($Print_Usage) {
+ &usage ();
+ exit (0);
+}
+
+# -------------------------------------
+
+sub usage {
+
+ eval "use Pod::Usage qw( pod2usage )";
+
+ if ( $@ ) {
+ print <<'END';
+
+* Pod::Usage was not found. The formatting may be suboptimal. Consider
+ upgrading your Perl --- Pod::Usage is standard from 5.6 onwards, and
+ versions of perl prior to 5.6 are getting rather rusty, now. Alternatively,
+ install Pod::Usage direct from CPAN.
+END
+
+ local $/ = undef;
+ my $message = <DATA>;
+ $message =~ s/^=(head1|item) //gm;
+ $message =~ s/^=(over|back).*\n//gm;
+ $message =~ s/\n{3,}/\n\n/g;
+ print $message;
+ } else {
+ print "\n";
+ pod2usage( -exitval => 'NOEXIT',
+ -verbose => 1,
+ -output => \*STDOUT,
+ );
+ }
+
+ return;
+}
+
# this is a helper hash for stptime.
# Assumes you are calling 'git log ...' with LC_ALL=C
my %month = (
@@ -112,6 +169,33 @@ sub last_line_len {
return length ($last_line);
}
+# Obfuscate email addresses in the author information at the
+# beginning of each log.
+sub obfuscate_email {
+ my $text = shift; # The text to wrap.
+ my $text_out = '';
+ my $state = 0;
+ my @words = split (/ /, $text);
+ while (@words) # Don't use `foreach' here, it won't work.
+ {
+ my $this_word = shift (@words);
+ if ($state == 0) {
+ # waiting for an email address
+ if ($this_word =~ /^</) {
+ $state = 1;
+ $this_word =~ s/^</* /;
+ $this_word =~ s/\./ dot /g;
+ $this_word =~ s/@/ AT /g;
+ $this_word =~ s/>$/ */;
+ $state = 1;
+ }
+ }
+ $text_out = $text_out . " " . $this_word;
+ }
+
+ return $text_out;
+ }
+
# A custom wrap function, sensitive to some common constructs used in
# log entries.
sub wrap_log_entry {
@@ -281,6 +365,7 @@ sub wrap_log_entry {
# main
+
my @date;
my $author;
my @files;
@@ -311,6 +396,9 @@ while (my $_l = <$fh>) {
if ($state == 0) {
if ($_l =~ m,^Author: (.*),) {
$author = $1;
+ if ($Obfuscate_Emails) {
+ $author = &obfuscate_email ($author);
+ }
}
if ($_l =~ m,^Date: (.*),) {
@date = strptime($1);
@@ -373,3 +461,54 @@ if (@date + 0)
$msg =~ s/[ \t]+\n/\n/g;
print "\t* $msg\n";
}
+
+__DATA__
+
+=head1 NAME
+
+cvs2cl.pl - convert cvs log messages to changelogs
+
+=head1 SYNOPSIS
+
+B<cvs2cl> [I<options>] [I<FILE1> [I<FILE2> ...]]
+
+=head1 DESCRIPTION
+
+cvs2cl produces a GNU-style ChangeLog for CVS-controlled sources by
+running "cvs log" and parsing the output. Duplicate log messages get
+unified in the Right Way.
+
+The default output of cvs2cl is designed to be compact, formally unambiguous,
+but still easy for humans to read. It should be largely self-explanatory; the
+one abbreviation that might not be obvious is "utags". That stands for
+"universal tags" -- a universal tag is one held by all the files in a given
+change entry.
+
+If you need output that's easy for a program to parse, use the B<--xml> option.
+Note that with XML output, just about all available information is included
+with each change entry, whether you asked for it or not, on the theory that
+your parser can ignore anything it's not looking for.
+
+If filenames are given as arguments cvs2cl only shows log information for the
+named files.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-h>, B<-help>, B<--help>, B<-?>
+
+Show a short help and exit.
+
+=item B<--obfuscate>, B<-O>
+
+Obfuscate email addresses in the logs.
+
+=item -B<U> I<UFILE>, B<--usermap> I<UFILE>
+
+Expand usernames to email addresses from I<UFILE>.
+NOT IMPLEMENTED YET
+
+=head1 SEE ALSO
+git(1)
+cvs2cl(1)
|
|
From: <gi...@gp...> - 2009-10-29 11:08:19
|
The branch, master has been updated
via 274f391b39034062f24b7806d974051f95d30205 (commit)
via dc0cdd25a1e490e7288622e9bcb5efd1f253c9cb (commit)
via df188e9b4f83df94e26dd331aa543cff206dd09e (commit)
via b4bf6014088465bf1ae5dd7e7587fde300c6f180 (commit)
from 22709af74d99af159ada6969553b96bff96769af (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
NEWS | 68 ++++++++++++++++++++++++++++++
README.snapshots | 120 ++++++++++++++++++++++++++++++++++++-----------------
utils/git2cl | 3 +-
3 files changed, 151 insertions(+), 40 deletions(-)
=================
Commit Messages
=================
commit dc0cdd25a1e490e7288622e9bcb5efd1f253c9cb
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
fix some perl strict warnings
:100755 100755 462b092... dc28858... M utils/git2cl
commit df188e9b4f83df94e26dd331aa543cff206dd09e
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Take a first pass at updating the release documentation for git instead of cvs.
:100644 100644 0aa880a... 3399a8a... M README.snapshots
commit b4bf6014088465bf1ae5dd7e7587fde300c6f180
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Update the target release date for the next snapshot
:100644 100644 fbbc09d... a11e413... M NEWS
=========
Changes
=========
commit dc0cdd25a1e490e7288622e9bcb5efd1f253c9cb
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
fix some perl strict warnings
diff --git a/utils/git2cl b/utils/git2cl
index 462b092..dc28858 100755
--- a/utils/git2cl
+++ b/utils/git2cl
@@ -64,6 +64,7 @@ my $fh = new FileHandle;
sub key_ready
{
my ($rin, $nfd);
+ $rin = '';
vec($rin, fileno(STDIN), 1) = 1;
return $nfd = select($rin, undef, undef, 0);
}
@@ -341,7 +342,7 @@ while (my $_l = <$fh>) {
print (strftime "%Y-%m-%d $author\n\n", @date);
my $files = join (", ", @files);
- $files = mywrap ("\t", "\t", "* $files"), ": ";
+ $files = mywrap ("\t", "\t", "* $files");
if (index($comment, EMPTY_LOG_MESSAGE) > -1 ) {
$comment = "[no log message]\n";
commit df188e9b4f83df94e26dd331aa543cff206dd09e
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Take a first pass at updating the release documentation for git instead of cvs.
diff --git a/README.snapshots b/README.snapshots
index 0aa880a..3399a8a 100644
--- a/README.snapshots
+++ b/README.snapshots
@@ -24,48 +24,61 @@ upload the 'pcb-$VERSION.tar.gz' file to the sourceforge file release system
To make a pcb release do the following:
+=) Make sure you have a clean checkout of master/origin
=) # make sure it makes distfiles ok: (have to build before doing distcheck so
pcb gets built so it can create some of the images in the doc directory)
- gmake distclean ; ./autogen.sh && ./configure --enable-maintainer-mode \
- --disable-update-desktop-database --disable-update-mime-database && \
- gmake && gmake distcheck
+
+ # clean up, and build with the GTK HID
+ gmake distclean
+ ./autogen.sh
+ ./configure --disable-update-desktop-database --disable-update-mime-database
+ gmake
+ gmake distcheck
+
+ # check the build with lesstif HID. The /usr/pkg parts should be replaced with
+ # whatever flags (if any) are needed to find lesstif on your system.
setenv DISTCHECK_CONFIGURE_FLAGS '--with-gui=lesstif CPPFLAGS=-I/usr/pkg/include CFLAGS=-I/usr/pkg/include LDFLAGS="-L/usr/pkg/lib -R/usr/pkg/lib"'
gmake distcheck
+
+ # check the build with the batch HID
+ setenv DISTCHECK_CONFIGURE_FLAGS '--with-gui=batch'
+ gmake distcheck
unsetenv DISTCHECK_CONFIGURE_FLAGS
-=) cvs ci
+=) commit and push any changes which were needed to fix 'distcheck' problems
-=) update the ChangeLog with './utils/cvs2cl.pl'. Check in changes
+=) update the ChangeLog with './utils/git2cl > ChangeLog'
=) update the NEWS file with some sort of release notes
- summary. Check in changes
+ summary. You can find the number of commits with something like
+
+ awk '/^2008-11-28/ {print "Changes: " c ; exit} /^20[01][0-9]/ {c++}' ChangeLog
-=) if this is a major release, then tag and branch:
+ Commit and push NEWS and ChangeLog.
- 1. Tag the base of the release branch
- cvs tag pcb-20081128-base
+=) if this is a major release, then branch:
- 2. Create the release branch
- cvs tag -R -b -r pcb-20081128-base pcb-20081128
+ 1. Create the release branch
+ git branch pcb-20091101
3. FIX_ME [fix up this step. what shall we do with the version
- on the trunk? We're about to run out of letters!]
+ on the trunk? We are about to run out of letters!]
On the trunk, update configure.ac to update the version
for example 1.99x after releasing 1.99w
- cvs update -PdA
+ git checkout master
vi configure.ac
- cvs ci configure.ac
+ git commit configure.ac
4. On the release branch, update configure.ac to update the version
- for example 20081128_ALPHA. Now pre-release snapshots can be made.
- cvs update -PdA -r pcb-20081128
+ for example 20091101_ALPHA. Now pre-release snapshots can be made.
+ git checkout pcb-20091101
5. If desired tag an alpha release:
- cvs update -PdA -r pcb-20081128
+ git checkout pcb-20091101
./autogen.sh
- cvs tag -R -r pcb-20081128 pcb-20081128-ALPHA
- cvs update -PdA -r pcb-20081128-ALPHA
+ git tag -a pcb-20091101-ALPHA
+ git checkout pcb-20091101-ALPHA
./autogen.sh && ./configure --enable-maintainer-mode \
--disable-update-desktop-database \
--disable-update-mime-database && \
@@ -73,13 +86,13 @@ To make a pcb release do the following:
6. When the release branch is ready to go, update configure.ac to
set the final release version. Then tag the release.
- cvs update -PdA -r pcb-20081128
+ git checkout pcb-20091101
vi configure.ac
- cvs ci configure.ac
+ git commit configure.ac
./autogen.sh
- cvs ci
- cvs tag -R -r pcb-20081128 pcb-20081128-RELEASE
- cvs update -PdA -r pcb-20081128-RELEASE
+ git commit -a
+ git tag -a pcb-20091101-RELEASE
+ git checkout pcb-20091101-RELEASE
./autogen.sh && ./configure --enable-maintainer-mode \
--disable-update-desktop-database \
--disable-update-mime-database && \
@@ -87,29 +100,58 @@ To make a pcb release do the following:
7. Create checksums
- openssl sha1 pcb-20081128.tar.gz > pcb-20081128.cksum
- openssl md5 pcb-20081128.tar.gz >> pcb-20081128.cksum
- openssl rmd160 pcb-20081128.tar.gz >> pcb-20081128.cksum
- echo "File size (bytes):" >> pcb-20081128.cksum
- wc -c pcb-20081128.tar.gz >> pcb-20081128.cksum
+ openssl sha1 pcb-20091101.tar.gz > pcb-20091101.cksum
+ openssl md5 pcb-20091101.tar.gz >> pcb-20091101.cksum
+ openssl rmd160 pcb-20091101.tar.gz >> pcb-20091101.cksum
+ echo "File size (bytes):" >> pcb-20091101.cksum
+ wc -c pcb-20091101.tar.gz >> pcb-20091101.cksum
8. Create a new file release for pcb with a release name of
- "pcb-20081128" (for pcb-20081128).
+ "pcb-20091101" (for pcb-20091101).
+
+ https://sourceforge.net/projects/pcb (you must be logged in to sourceforge)
+
+ Pick Admin->File Releases
- 9. Upload the .tar.gz, .cksum files via the file release system on sourceforge. There is
- a web upload page that can be reached from the file release system. After uploading
- set the file types:
+ Next to the "gerbv" package, click "Add Release"
- .tar.gz - any / source .gz
- .cksum - Platform Independent / Other Source File
+ In the "Step 1: Edit Existing Release" section, paste in the section of the NEWS
+ for this version. Check the "Preserve my pre-formatted text" radio button and click
+ "Submit/Refresh".
+
+ In the "Step 2: Add Files To This Release" section follow the "upload new files" link
+ and then in the next page the "Web Upload" link. You will have to log in to
+ sourceforge again.
+
+ Upload the .tar.gz, .cksum, and if you built one, the windows installer.
+
+ Once you have completed the file uploads return to the edit releases page, check
+ the radio buttons next to the uploaded files and click the "Add Files..." button.
+
+ In the "Step 3: Edit Files in this Release" section, set the following:
+ For file types:
+ .tar.gz - any / source .gz
+ .cksum - Platform Independent / Other Source File
+ .exe - i386 / .exe (32-bit Windows)
+
+ You will have to click "update" for each file as you go.
+
+ In the "Step 4: Email Release Notice" section, check the "I'm sure"
+ radio button and click the "Send Notice" button.
+
+ 9. Have a project admin go to the Admin->File Releases page and then
+ follow the "Create/Edit Download page" to change the default download
+ file to the new release.
10. Return to your regularly scheduled trunk development
- cvs update -PdA
+ git checkout master
=) if this is a patch release, then simply make desired changes to the branch, and
- ./autogen.sh
- cvs ci
- cvs tag -R -r pcb-20081128 pcb-20081128-PATCH001
+ git checkout pcb-20091101
+ # make changes
+ ./autogen.sh
+ git commit
+ git tag -a pcb-20091101-PATCH001
=) gmake distclean ; ./autogen.sh &&./configure && gmake distcheck
commit b4bf6014088465bf1ae5dd7e7587fde300c6f180
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Update the target release date for the next snapshot
diff --git a/NEWS b/NEWS
index fbbc09d..a11e413 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,72 @@
========================================================================
+Release Notes for PCB snapshot 20091101
+========================================================================
+This release represents around 170 commits and as such this summary
+clearly is not complete. See the ChangeLog file for the complete list
+of changes.
+
+- [bugfix] Don't let DRC change the grid setting
+- [bugfix] Correct URL's in some dialogs and output
+- [feature] Add filters to load file chooser dialog (GTK)
+- [bugfix] Avoid segfaults with png HID with newer versions of libgd
+- [bugfix] Don't disperse locked elements
+- [feature] Added experimental topological autorouter
+- [feature] Added the beginning of a testsuite.
+- [docs] Document FreeRotateBuffer()
+- [docs] Add some additional notes on the usage of the existing
+ autorouter
+- [feature] Add --png-bloat option
+- [bugfix] Fix several bugs found with valgrind
+- [bugfix] Improve the pre-install wrapper script
+- [bugfix] Several fixes to the autorouter
+- [feature] Allow quoted strings and escaped characters in action
+ arguments
+- [footprints] Add missing INDC3216M, remove duplicated RESC3216M
+- [feature] Added the ability to customize mouse events via gpcb-menu.res
+ in the GTK HID.
+- [feature] Added the ability to use mod1 (alt)(option) in
+ HIDs. Useful on OSX.
+- [bugfix] Fix compilation issues on centos
+- [bugfix] Make the detection of tools and build system around
+ building the documentation be more robust. Users should
+ not be worrying about --disable-doc or --enable-maintainer-mode
+ anymore
+- [footprints] Add T018, T039, fix pinout of T092 to match JEDEC
+- [bugfix] Speed up rendering of DRC violation previews under GTK
+- [bugfix] Fix some crashing bugs related to polygons and thindraw mode
+- [feature] Added a DRC refresh button
+- [bugfix] Fix some pango markup in the GTK DRC dialog
+- [bugfix] Fix cursor warping on flipped boards (GTK)
+- [feature] Added preview images in the DRC violations window (GTK)
+- [feature] Add a DrcViolationType structure and add hooks to allow HID's to use this
+- [bugfix] Fix some polygon memory leaks
+- [feature] Add an API for registering actions with a context to support scripting
+ languages like GPMI.
+- [bugfix] Fix a bug with the Report(NetLength) action and NULL pin/pad names
+- [bugfix] Allow exporters to work with hairlines (width of 0)
+- [tools] Increase autoconf version to 2.60 since we were using some features of it
+- [bugfix] Fix a number of polygon related issues
+- [bugfix] Fix a number of gcc warnings
+- [feature] Don't display undocumented options in help output. This helps
+ the transition when deprecating an option.
+- [feature] Add outline mode for photo-mode exporting
+- [footprints] Put the mark on pin 1 for axial footprints to make them more likely
+ to fall on grid
+- [bugfix] Fix flipping of arcs
+- [bugfix] Fix parsing of old-syntax arcs
+- [bugfix] Include explicit text/lines on silk layers in the assembly drawing output
+- [feature] '--ben-mode' has been renamed to '--photo-mode'
+- [bugfix] Fix some crashign bugs on boards with a large number of rats
+- [bugfix] Fix an off-by-one bug in the GTK netlist window
+- [docs] Add getting started guide
+- [feature] Add support for parsing suffixes on numbers ("um", "mm", "in", "mil")
+- [bugfix] Fix some configure/build issues when cross compiling
+- [bugfix] Fix some improperly used automake conditionals
+- [bugfix] Fix some uninstall of shortcuts issues under windows Vista
+- [feature] Add additional crosshair shapes
+- [bugfix] Various windows build script improvements
+
+========================================================================
Release Notes for PCB snapshot 20081128
========================================================================
This release represents over 70 commits and as such this summary
|
|
From: <gi...@gp...> - 2009-10-22 03:38:56
|
The branch, master has been updated
via 22709af74d99af159ada6969553b96bff96769af (commit)
from 50191bb771950ba3ab0dd7628b3380208e6db743 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/polygon.c | 66 +++++++++++++++++++++++++++-----------------------------
1 files changed, 32 insertions(+), 34 deletions(-)
=================
Commit Messages
=================
commit 22709af74d99af159ada6969553b96bff96769af
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Pass r_NoHolesPolygonDicer a POLYAREA *, not a PLINE *
No functional changes to callers of NoHolesPolygonDicer()
The allows state in the POLYAREA to be passed into the recursive
dicer. This is needed in order to maintain an up to date r-tree
of contours in the POLYAREA.
:100644 100644 106caff... 0c8c0cb... M src/polygon.c
=========
Changes
=========
commit 22709af74d99af159ada6969553b96bff96769af
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Pass r_NoHolesPolygonDicer a POLYAREA *, not a PLINE *
No functional changes to callers of NoHolesPolygonDicer()
The allows state in the POLYAREA to be passed into the recursive
dicer. This is needed in order to maintain an up to date r-tree
of contours in the POLYAREA.
diff --git a/src/polygon.c b/src/polygon.c
index 106caff..0c8c0cb 100644
--- a/src/polygon.c
+++ b/src/polygon.c
@@ -1541,16 +1541,16 @@ IsRectangleInPolygon (LocationType X1, LocationType Y1, LocationType X2,
return isects (s, p, True);
}
+/* NB: This function will free the passed POLYAREA.
+ * It must only be passed a single POLYAREA (pa->f == pa->b == pa)
+ */
static void
-r_NoHolesPolygonDicer (PLINE * p,
+r_NoHolesPolygonDicer (POLYAREA * pa,
void (*emit) (PLINE *, void *), void *user_data)
{
- POLYAREA *pa;
+ PLINE *p = pa->contours;
- pa = (POLYAREA *) malloc (sizeof (*pa));
- pa->b = pa->f = pa;
- pa->contours = p;
- if (!p->next) /* no holes */
+ if (!pa->contours->next) /* no holes */
{
pa->contours = NULL; /* The callback now owns the contour */
emit (p, user_data);
@@ -1562,36 +1562,34 @@ r_NoHolesPolygonDicer (PLINE * p,
POLYAREA *poly2, *left, *right;
/* make a rectangle of the left region slicing through the middle of the first hole */
- poly2 =
- RectPoly (p->xmin, (p->next->xmin + p->next->xmax) / 2, p->ymin,
- p->ymax);
+ poly2 = RectPoly (p->xmin, (p->next->xmin + p->next->xmax) / 2,
+ p->ymin, p->ymax);
poly_AndSubtract_free (pa, poly2, &left, &right);
if (left)
{
- POLYAREA *x, *y;
- x = left;
+ POLYAREA *cur, *next;
+ cur = left;
do
{
- PLINE *pl = x->contours;
- r_NoHolesPolygonDicer (pl, emit, user_data);
- y = x->f;
- /* the pline was already freed by its use int he recursive dicer */
- free (x);
+ next = cur->f;
+ cur->f = cur->b = cur; /* Detach this polygon piece */
+ r_NoHolesPolygonDicer (cur, emit, user_data);
+ /* NB: The POLYAREA was freed by its use in the recursive dicer */
}
- while ((x = y) != left);
+ while ((cur = next) != left);
}
if (right)
{
- POLYAREA *x, *y;
- x = right;
+ POLYAREA *cur, *next;
+ cur = right;
do
{
- PLINE *pl = x->contours;
- r_NoHolesPolygonDicer (pl, emit, user_data);
- y = x->f;
- free (x);
+ next = cur->f;
+ cur->f = cur->b = cur; /* Detach this polygon piece */
+ r_NoHolesPolygonDicer (cur, emit, user_data);
+ /* NB: The POLYAREA was freed by its use in the recursive dicer */
}
- while ((x = y) != right);
+ while ((cur = next) != right);
}
}
}
@@ -1600,7 +1598,7 @@ void
NoHolesPolygonDicer (PolygonTypePtr p, const BoxType * clip,
void (*emit) (PLINE *, void *), void *user_data)
{
- POLYAREA *save, *ans;
+ POLYAREA *save, *ans, *cur, *next;
ans = save = poly_Create ();
/* copy the main poly only */
@@ -1619,18 +1617,18 @@ NoHolesPolygonDicer (PolygonTypePtr p, const BoxType * clip,
}
if (!save)
return;
- /* now dice it up */
+ /* Now dice it up.
+ * NB: Could be more than one piece (because of the clip above)
+ */
+ cur = save;
do
{
- POLYAREA *prev;
- r_NoHolesPolygonDicer (save->contours, emit, user_data);
- /* go to next poly (could be one because of clip) */
- prev = save;
- save = prev->f;
- /* free the previouse POLYAREA. Note the contour was consumed in the dicer */
- free (prev);
+ next = cur->f;
+ cur->f = cur->b = cur; /* Detach this polygon piece */
+ r_NoHolesPolygonDicer (cur, emit, user_data);
+ /* NB: The POLYAREA was freed by its use in the recursive dicer */
}
- while (save != ans);
+ while ((cur = next) != save);
}
/* make a polygon split into multiple parts into multiple polygons */
|
|
From: <gi...@gp...> - 2009-10-22 03:26:39
|
The branch, master has been updated
via 50191bb771950ba3ab0dd7628b3380208e6db743 (commit)
from b8cd62ae33d2473ff73416dd9c387bb542c1c070 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/polygon1.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
=================
Commit Messages
=================
commit 50191bb771950ba3ab0dd7628b3380208e6db743
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Fix bug with polygon boolean operation PBO_XOR (I think!)
If the contour in A is outside of B, it should be kept. It seems
this case may have been missed.
PCB does not use the PBO_XOR operation, so it is difficult to test
whether this is correct or not.
:100644 100644 8170197... d27c255... M src/polygon1.c
=========
Changes
=========
commit 50191bb771950ba3ab0dd7628b3380208e6db743
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Fix bug with polygon boolean operation PBO_XOR (I think!)
If the contour in A is outside of B, it should be kept. It seems
this case may have been missed.
PCB does not use the PBO_XOR operation, so it is difficult to test
whether this is correct or not.
diff --git a/src/polygon1.c b/src/polygon1.c
index 8170197..d27c255 100644
--- a/src/polygon1.c
+++ b/src/polygon1.c
@@ -1522,7 +1522,7 @@ cntr_Collect (jmp_buf * e, PLINE ** A, POLYAREA ** contours, PLINE ** holes,
PutContour (e, tmprev, contours, holes, NULL);
return TRUE;
}
- break;
+ /* break; */ /* Fall through (I think this is correct! pcjc2) */
case PBO_UNITE:
case PBO_SUB:
if ((*A)->Flags.status == OUTSIDE)
|
|
From: <gi...@gp...> - 2009-10-21 22:08:34
|
The branch, master has been updated
via b8cd62ae33d2473ff73416dd9c387bb542c1c070 (commit)
from d3449dfd68f6e751ffd760c0b7dcd96689b314d5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/global.h | 7 ++++---
src/polyarea.h | 2 +-
src/polygon1.c | 13 +++++++------
3 files changed, 12 insertions(+), 10 deletions(-)
=================
Commit Messages
=================
commit b8cd62ae33d2473ff73416dd9c387bb542c1c070
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Make rtree_t type available to polygon1.c
This saves a load of casting, and helps the compiler doing its job
catching programming errors.
:100644 100644 f494dbc... 4cf489a... M src/global.h
:100644 100644 a883750... 6652fce... M src/polyarea.h
:100644 100644 bfa39b3... 8170197... M src/polygon1.c
=========
Changes
=========
commit b8cd62ae33d2473ff73416dd9c387bb542c1c070
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Make rtree_t type available to polygon1.c
This saves a load of casting, and helps the compiler doing its job
catching programming errors.
diff --git a/src/global.h b/src/global.h
index f494dbc..4cf489a 100644
--- a/src/global.h
+++ b/src/global.h
@@ -40,7 +40,6 @@
#include "const.h"
#include "macro.h"
-#include "polyarea.h"
#include <stdio.h>
#include <stdlib.h>
@@ -54,8 +53,10 @@
typedef struct BoxType BoxType, *BoxTypePtr;
typedef struct polygon_st PolygonType, *PolygonTypePtr;
typedef struct drc_violation_st DrcViolationType, *DrcViolationTypePtr;
+typedef struct rtree rtree_t;
#include "hid.h"
+#include "polyarea.h"
#define _(S) (S)
@@ -257,11 +258,11 @@ typedef struct /* holds information about arcs */
Delta;
} ArcType, *ArcTypePtr;
-typedef struct
+struct rtree
{
struct rtree_node *root;
int size; /* number of entries in tree */
-} rtree_t;
+};
typedef struct /* holds information about one layer */
{
diff --git a/src/polyarea.h b/src/polyarea.h
index a883750..6652fce 100644
--- a/src/polyarea.h
+++ b/src/polyarea.h
@@ -98,7 +98,7 @@ struct PLINE
VNODE head;
unsigned int Count;
double area;
- void *tree;
+ rtree_t *tree;
struct {
unsigned int status:3;
unsigned int orient:1;
diff --git a/src/polygon1.c b/src/polygon1.c
index bfa39b3..8170197 100644
--- a/src/polygon1.c
+++ b/src/polygon1.c
@@ -45,7 +45,8 @@
#include <setjmp.h>
#include <math.h>
#include <string.h>
-#include "polyarea.h"
+
+#include "global.h"
#include "rtree.h"
#include "heap.h"
@@ -638,7 +639,7 @@ seg_in_seg (const BoxType * b, void *cl)
if (res & 2)
{
cntrbox_adjust (i->s->p, cnt > 1 ? s2 : s1);
- if (adjust_tree ((rtree_t *) (i->s->p->tree), i->s))
+ if (adjust_tree (i->s->p->tree, i->s))
return 1;
}
/* if we added a node in the tree we need to change the tree */
@@ -809,12 +810,12 @@ intersect (jmp_buf * jb, POLYAREA * b, POLYAREA * a, int add)
/* fill in the segment in info corresponding to this node */
if (setjmp (info.sego) == 0)
{
- r_search ((rtree_t *) (looping_over->tree), &box, NULL, get_seg, &info);
+ r_search (looping_over->tree, &box, NULL, get_seg, &info);
assert (0);
}
/* NB: If this actually hits anything, we are teleported back to the beginning */
- info.tree = (rtree_t *) rtree_over->tree;
+ info.tree = rtree_over->tree;
if (info.tree)
if (UNLIKELY (r_search (info.tree, &info.s->box,
seg_in_region, seg_in_seg, &info)))
@@ -2019,7 +2020,7 @@ poly_InvContour (PLINE * c)
c->Flags.orient ^= 1;
if (c->tree)
{
- r = r_search ((rtree_t *) (c->tree), NULL, NULL, flip_cb, NULL);
+ r = r_search (c->tree, NULL, NULL, flip_cb, NULL);
assert (r == c->Count);
}
}
@@ -2247,7 +2248,7 @@ poly_InsideContour (PLINE * c, Vector p)
ray.X2 = 0x7fffffff;
ray.Y2 = p[1] + 1;
if (setjmp (info.env) == 0)
- r_search ((rtree_t *) c->tree, &ray, NULL, crossing, &info);
+ r_search (c->tree, &ray, NULL, crossing, &info);
return info.f;
}
|
|
From: <gi...@gp...> - 2009-10-21 19:03:26
|
The branch, master has been updated
via d3449dfd68f6e751ffd760c0b7dcd96689b314d5 (commit)
from c200dd11f9c608a40db6e9894eafc34510aff220 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/hid/gtk/gui-top-window.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
=================
Commit Messages
=================
commit d3449dfd68f6e751ffd760c0b7dcd96689b314d5
Author: Jared Casper <jar...@gm...>
Commit: Peter Clifton <pc...@ca...>
Fix a bug in gtk hid which caused layer buttons to get confused (sourceforge bug 1988951)
In ghid_layer_enable_buttons_update, the layer_buttons array was being
indexed using a counter which stoped at the current max_layer, which
was wrong. Changed this to use the constants LAYER_BUTTON_*.
Also made the handling of the silk and rats buttons match the
(slightly more correct) handling of the other buttons in
layer_enable_button_cb.
:100644 100644 ca17446... b950a25... M src/hid/gtk/gui-top-window.c
=========
Changes
=========
commit d3449dfd68f6e751ffd760c0b7dcd96689b314d5
Author: Jared Casper <jar...@gm...>
Commit: Peter Clifton <pc...@ca...>
Fix a bug in gtk hid which caused layer buttons to get confused (sourceforge bug 1988951)
In ghid_layer_enable_buttons_update, the layer_buttons array was being
indexed using a counter which stoped at the current max_layer, which
was wrong. Changed this to use the constants LAYER_BUTTON_*.
Also made the handling of the silk and rats buttons match the
(slightly more correct) handling of the other buttons in
layer_enable_button_cb.
diff --git a/src/hid/gtk/gui-top-window.c b/src/hid/gtk/gui-top-window.c
index ca17446..b950a25 100644
--- a/src/hid/gtk/gui-top-window.c
+++ b/src/hid/gtk/gui-top-window.c
@@ -1380,14 +1380,14 @@ layer_enable_button_cb (GtkWidget * widget, gpointer data)
switch (layer)
{
case LAYER_BUTTON_SILK:
- PCB->ElementOn = !PCB->ElementOn;
+ PCB->ElementOn = active;
PCB->Data->SILKLAYER.On = PCB->ElementOn;
PCB->Data->BACKSILKLAYER.On = PCB->ElementOn;
redraw = 1;
break;
case LAYER_BUTTON_RATS:
- PCB->RatOn = !PCB->RatOn;
+ PCB->RatOn = active;
redraw = 1;
break;
@@ -1649,23 +1649,23 @@ ghid_layer_enable_buttons_update (void)
/* Buttons for elements (silk), rats, pins, vias, and far side don't
| change labels.
*/
- lb = &layer_buttons[i++]; /* LAYER_BUTTON_SILK */
+ lb = &layer_buttons[LAYER_BUTTON_SILK];
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lb->layer_enable_button),
PCB->ElementOn);
- lb = &layer_buttons[i++]; /* LAYER_BUTTON_RATS */
+ lb = &layer_buttons[LAYER_BUTTON_RATS];
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lb->layer_enable_button),
PCB->RatOn);
- lb = &layer_buttons[i++]; /* pins/pads */
+ lb = &layer_buttons[LAYER_BUTTON_PINS];
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lb->layer_enable_button),
PCB->PinOn);
- lb = &layer_buttons[i++]; /* vias */
+ lb = &layer_buttons[LAYER_BUTTON_VIAS];
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lb->layer_enable_button),
PCB->ViaOn);
- lb = &layer_buttons[i++]; /* far side */
+ lb = &layer_buttons[LAYER_BUTTON_FARSIDE];
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lb->layer_enable_button),
PCB->InvisibleObjectsOn);
layer_enable_button_cb_hold_off = FALSE;
|
|
From: <gi...@gp...> - 2009-10-21 18:47:51
|
The branch, master has been updated
via c200dd11f9c608a40db6e9894eafc34510aff220 (commit)
from 750f05c6fe9a9ce7e40f254923ab61a10c5ffa2b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/create.c | 2 ++
src/global.h | 2 ++
src/hid/common/draw_helpers.c | 14 ++++++++++++--
src/mymem.c | 1 +
src/polygon.c | 37 +++++++++++++++++++++++++++++++++++++
src/polygon.h | 1 +
6 files changed, 55 insertions(+), 2 deletions(-)
=================
Commit Messages
=================
commit c200dd11f9c608a40db6e9894eafc34510aff220
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Add cache for "noholes", diced versions of polygons
:100644 100644 6d34465... 500d0a0... M src/create.c
:100644 100644 e8fc8f1... f494dbc... M src/global.h
:100644 100644 a7c4620... ded1bc8... M src/hid/common/draw_helpers.c
:100644 100644 36b13d5... c3663d6... M src/mymem.c
:100644 100644 46cba47... 106caff... M src/polygon.c
:100644 100644 1ec0a04... 2faaa20... M src/polygon.h
=========
Changes
=========
commit c200dd11f9c608a40db6e9894eafc34510aff220
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Add cache for "noholes", diced versions of polygons
diff --git a/src/create.c b/src/create.c
index 6d34465..500d0a0 100644
--- a/src/create.c
+++ b/src/create.c
@@ -610,6 +610,8 @@ CreateNewPolygon (LayerTypePtr Layer, FlagType Flags)
polygon->Flags = Flags;
polygon->ID = ID++;
polygon->Clipped = NULL;
+ polygon->NoHoles = NULL;
+ polygon->NoHolesValid = 0;
return (polygon);
}
diff --git a/src/global.h b/src/global.h
index e8fc8f1..f494dbc 100644
--- a/src/global.h
+++ b/src/global.h
@@ -241,6 +241,8 @@ struct polygon_st /* holds information about a polygon */
Cardinal PointN, /* number of points in polygon */
PointMax; /* max number from malloc() */
POLYAREA *Clipped; /* the clipped region of this polygon */
+ PLINE *NoHoles; /* the polygon broken into hole-less regions */
+ int NoHolesValid; /* Is the NoHoles polygon up to date? */
PointTypePtr Points; /* data */
};
diff --git a/src/hid/common/draw_helpers.c b/src/hid/common/draw_helpers.c
index a7c4620..ded1bc8 100644
--- a/src/hid/common/draw_helpers.c
+++ b/src/hid/common/draw_helpers.c
@@ -70,9 +70,20 @@ void common_fill_pcb_polygon (hidGC gc, PolygonType *poly,
we are dicing for every case. Some GUIs
rely on this, and need their flags fixing. */
- NoHolesPolygonDicer (poly, clip_box, fill_contour_cb, gc);
+ if (!poly->NoHolesValid)
+ {
+ ComputeNoHoles (poly);
+ }
+ if (poly->NoHoles)
+ {
+ PLINE *pl;
+
+ for (pl = poly->NoHoles; pl != NULL; pl = pl->next)
+ fill_contour (gc, pl);
+ }
/* Draw other parts of the polygon if fullpoly flag is set */
+ /* NB: No "NoHoles" cache for these */
if (TEST_FLAG (FULLPOLYFLAG, poly))
{
PolygonType p = *poly;
@@ -82,7 +93,6 @@ void common_fill_pcb_polygon (hidGC gc, PolygonType *poly,
p.Clipped = p.Clipped->f)
NoHolesPolygonDicer (&p, clip_box, fill_contour_cb, gc);
}
-
}
static int thindraw_hole_cb (PLINE *pl, void *user_data)
diff --git a/src/mymem.c b/src/mymem.c
index 36b13d5..c3663d6 100644
--- a/src/mymem.c
+++ b/src/mymem.c
@@ -736,6 +736,7 @@ FreePolygonMemory (PolygonTypePtr Polygon)
MYFREE (Polygon->Points);
if (Polygon->Clipped)
poly_Free (&Polygon->Clipped);
+ poly_FreeContours (&Polygon->NoHoles);
memset (Polygon, 0, sizeof (PolygonType));
}
}
diff --git a/src/polygon.c b/src/polygon.c
index 46cba47..106caff 100644
--- a/src/polygon.c
+++ b/src/polygon.c
@@ -120,6 +120,26 @@ static double circleVerticies[] = {
0.98480775301221, 0.17364817766693,
};
+static void
+add_noholes_polyarea (PLINE *pline, void *user_data)
+{
+ PolygonType *poly = user_data;
+
+ /* Prepend the pline into the NoHoles linked list */
+ pline->next = poly->NoHoles;
+ poly->NoHoles = pline;
+}
+
+void
+ComputeNoHoles (PolygonType *poly)
+{
+ poly_FreeContours (&poly->NoHoles);
+ if (poly->Clipped)
+ NoHolesPolygonDicer (poly, NULL, add_noholes_polyarea, poly);
+ else
+ printf ("Compute_noholes caught poly->Clipped = NULL\n");
+ poly->NoHolesValid = 1;
+}
static POLYAREA *
biggest (POLYAREA * p)
@@ -228,6 +248,8 @@ ClipOriginal (PolygonType * poly)
fprintf (stderr, "Error while clipping PBO_ISECT: %d\n", r);
poly_Free (&result);
poly->Clipped = NULL;
+ if (poly->NoHoles) printf ("Just leaked in ClipOriginal\n");
+ poly->NoHoles = NULL;
return 0;
}
poly->Clipped = biggest (result);
@@ -632,6 +654,8 @@ Subtract (POLYAREA * np1, PolygonType * p, Boolean fnp)
fprintf (stderr, "Error while clipping PBO_SUB: %d\n", x);
poly_Free (&merged);
p->Clipped = NULL;
+ if (p->NoHoles) printf ("Just leaked in Subtract\n");
+ p->NoHoles = NULL;
return -1;
}
p->Clipped = biggest (merged);
@@ -909,6 +933,7 @@ clearPoly (DataTypePtr Data, LayerTypePtr Layer, PolygonType * polygon,
if (info.solder || group == Group (Data, max_layer + COMPONENT_LAYER))
r += r_search (Data->pad_tree, ®ion, NULL, pad_sub_callback, &info);
}
+ polygon->NoHolesValid = 0;
return r;
}
@@ -925,6 +950,8 @@ Unsubtract (POLYAREA * np1, PolygonType * p)
fprintf (stderr, "Error while clipping PBO_UNITE: %d\n", x);
poly_Free (&merged);
p->Clipped = NULL;
+ if (p->NoHoles) printf ("Just leaked in Unsubtract\n");
+ p->NoHoles = NULL;
return 0;
}
p->Clipped = biggest (merged);
@@ -1031,11 +1058,14 @@ InitClip (DataTypePtr Data, LayerTypePtr layer, PolygonType * p)
if (p->Clipped)
poly_Free (&p->Clipped);
p->Clipped = original_poly (p);
+ poly_FreeContours (&p->NoHoles);
if (!p->Clipped)
return 0;
assert (poly_Valid (p->Clipped));
if (TEST_FLAG (CLEARPOLYFLAG, p))
clearPoly (Data, layer, p, NULL, 0);
+ else
+ p->NoHolesValid = 0;
return 1;
}
@@ -1289,18 +1319,23 @@ subtract_plow (DataTypePtr Data, LayerTypePtr Layer, PolygonTypePtr Polygon,
case PIN_TYPE:
case VIA_TYPE:
SubtractPin (Data, (PinTypePtr) ptr2, Layer, Polygon);
+ Polygon->NoHolesValid = 0;
return 1;
case LINE_TYPE:
SubtractLine ((LineTypePtr) ptr2, Polygon);
+ Polygon->NoHolesValid = 0;
return 1;
case ARC_TYPE:
SubtractArc ((ArcTypePtr) ptr2, Polygon);
+ Polygon->NoHolesValid = 0;
return 1;
case PAD_TYPE:
SubtractPad ((PadTypePtr) ptr2, Polygon);
+ Polygon->NoHolesValid = 0;
return 1;
case TEXT_TYPE:
SubtractText ((TextTypePtr) ptr2, Polygon);
+ Polygon->NoHolesValid = 0;
return 1;
}
return 0;
@@ -1621,6 +1656,8 @@ MorphPolygon (LayerTypePtr layer, PolygonTypePtr poly)
* we do this dirty work.
*/
poly->Clipped = NULL;
+ if (poly->NoHoles) printf ("Just leaked in MorpyPolygon\n");
+ poly->NoHoles = NULL;
flags = poly->Flags;
RemovePolygon (layer, poly);
inhibit = True;
diff --git a/src/polygon.h b/src/polygon.h
index 1ec0a04..2faaa20 100644
--- a/src/polygon.h
+++ b/src/polygon.h
@@ -44,6 +44,7 @@ int PolygonHoles (PolygonType *ptr, const BoxType *range,
void *user_data);
int PlowsPolygon (DataType *, int, void *, void *,
int (*callback) (DataTypePtr, LayerTypePtr, PolygonTypePtr, int, void *, void *));
+void ComputeNoHoles (PolygonType *poly);
POLYAREA * ContourToPoly (PLINE *);
POLYAREA * RectPoly (LocationType x1, LocationType x2, LocationType y1, LocationType y2);
POLYAREA * CirclePoly(LocationType x, LocationType y, BDimension radius);
|
|
From: <gi...@gp...> - 2009-10-21 18:47:24
|
The branch, master has been updated
via 750f05c6fe9a9ce7e40f254923ab61a10c5ffa2b (commit)
from a82b657073aff33708a2814ae9063134f6051bc1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/hid/common/draw_helpers.c | 3 +++
src/polygon.c | 1 +
2 files changed, 4 insertions(+), 0 deletions(-)
=================
Commit Messages
=================
commit 750f05c6fe9a9ce7e40f254923ab61a10c5ffa2b
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Give callback from NoHolesPolygonDicer ownership of the returned contour
This means callers of NoHolesPolygonDicer() should call poly_FreeContours
on the contour they are passed (if they do not wish to retain it).
:100644 100644 1b7c6b7... a7c4620... M src/hid/common/draw_helpers.c
:100644 100644 d5df073... 46cba47... M src/polygon.c
=========
Changes
=========
commit 750f05c6fe9a9ce7e40f254923ab61a10c5ffa2b
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Give callback from NoHolesPolygonDicer ownership of the returned contour
This means callers of NoHolesPolygonDicer() should call poly_FreeContours
on the contour they are passed (if they do not wish to retain it).
diff --git a/src/hid/common/draw_helpers.c b/src/hid/common/draw_helpers.c
index 1b7c6b7..a7c4620 100644
--- a/src/hid/common/draw_helpers.c
+++ b/src/hid/common/draw_helpers.c
@@ -57,7 +57,10 @@ static void thindraw_contour (hidGC gc, PLINE *pl)
static void fill_contour_cb (PLINE *pl, void *user_data)
{
hidGC gc = user_data;
+ PLINE *local_pl = pl;
+
fill_contour (gc, pl);
+ poly_FreeContours (&local_pl);
}
void common_fill_pcb_polygon (hidGC gc, PolygonType *poly,
diff --git a/src/polygon.c b/src/polygon.c
index d5df073..46cba47 100644
--- a/src/polygon.c
+++ b/src/polygon.c
@@ -1517,6 +1517,7 @@ r_NoHolesPolygonDicer (PLINE * p,
pa->contours = p;
if (!p->next) /* no holes */
{
+ pa->contours = NULL; /* The callback now owns the contour */
emit (p, user_data);
poly_Free (&pa);
return;
|
|
From: <gi...@gp...> - 2009-10-21 18:46:04
|
The branch, master has been updated
via a82b657073aff33708a2814ae9063134f6051bc1 (commit)
from c1df6f7725601489a1562811ffc0c717a56445f5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/polyarea.h | 2 +-
src/polygon1.c | 15 +++++++--------
2 files changed, 8 insertions(+), 9 deletions(-)
=================
Commit Messages
=================
commit a82b657073aff33708a2814ae9063134f6051bc1
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Replace poly_Clear(POLYAREA *) function with poly_FreeContours(PLINE **)
The poly_Clear function only clears the contours of the polygon anyway,
so make a more explicitly named function to do this work, and pass the
contours directly.
This will be useful should we want to deal with a series of contours
separately from a POLYAREA object.
:100644 100644 42acc1a... a883750... M src/polyarea.h
:100644 100644 fc01611... bfa39b3... M src/polygon1.c
=========
Changes
=========
commit a82b657073aff33708a2814ae9063134f6051bc1
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Replace poly_Clear(POLYAREA *) function with poly_FreeContours(PLINE **)
The poly_Clear function only clears the contours of the polygon anyway,
so make a more explicitly named function to do this work, and pass the
contours directly.
This will be useful should we want to deal with a series of contours
separately from a POLYAREA object.
diff --git a/src/polyarea.h b/src/polyarea.h
index 42acc1a..a883750 100644
--- a/src/polyarea.h
+++ b/src/polyarea.h
@@ -158,7 +158,7 @@ POLYAREA *poly_Create(void);
void poly_Free(POLYAREA **p);
void poly_Init(POLYAREA *p);
-void poly_Clear(POLYAREA *p);
+void poly_FreeContours(PLINE **pl);
BOOLp poly_Valid(POLYAREA *p);
enum PolygonBooleanOperation {
diff --git a/src/polygon1.c b/src/polygon1.c
index fc01611..bfa39b3 100644
--- a/src/polygon1.c
+++ b/src/polygon1.c
@@ -2314,15 +2314,14 @@ poly_Create (void)
}
void
-poly_Clear (POLYAREA * P)
+poly_FreeContours (PLINE **pline)
{
- PLINE *p;
+ PLINE *pl;
- assert (P != NULL);
- while ((p = P->contours) != NULL)
+ while ((pl = *pline) != NULL)
{
- P->contours = p->next;
- poly_DelContour (&p);
+ *pline = pl->next;
+ poly_DelContour (&pl);
}
}
@@ -2335,12 +2334,12 @@ poly_Free (POLYAREA ** p)
return;
for (cur = (*p)->f; cur != *p; cur = (*p)->f)
{
- poly_Clear (cur);
+ poly_FreeContours (&cur->contours);
cur->f->b = cur->b;
cur->b->f = cur->f;
free (cur);
}
- poly_Clear (cur);
+ poly_FreeContours (&cur->contours);
free (*p), *p = NULL;
}
|
|
From: <gi...@gp...> - 2009-10-21 18:45:39
|
The branch, master has been updated
via c1df6f7725601489a1562811ffc0c717a56445f5 (commit)
from 09020e6a57e5e9b901b125ab6c818d626b9f92a5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/action.c | 2 +-
src/create.c | 2 ++
src/strflags.c | 1 +
3 files changed, 4 insertions(+), 1 deletions(-)
=================
Commit Messages
=================
commit c1df6f7725601489a1562811ffc0c717a56445f5
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Fix "newfullpoly" flag test and save its state into the .pcb file.
The flag controlling this behaviour is kept up to date as a PCB flag,
not something which is updated in Settings.FullPoly. Change the test
accordingly.
Added a PCB flag "newfullpoly" to save this state in the .pcb file.
NOTE: "full" polygons severly break connectivity checking, as the code
always treats broken up pieces of the polygon as being connected.
It _might_ have been better to leave this support broken - so
users don't inadvertently create polygons with the "fullpoly" flag.
TODO: Consider removing, hiding or adding warnings to this feature.
:100644 100644 92fdbae... 6b979d3... M src/action.c
:100644 100644 fc6b863... 6d34465... M src/create.c
:100644 100644 c2073a5... ac1fdcc... M src/strflags.c
=========
Changes
=========
commit c1df6f7725601489a1562811ffc0c717a56445f5
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Fix "newfullpoly" flag test and save its state into the .pcb file.
The flag controlling this behaviour is kept up to date as a PCB flag,
not something which is updated in Settings.FullPoly. Change the test
accordingly.
Added a PCB flag "newfullpoly" to save this state in the .pcb file.
NOTE: "full" polygons severly break connectivity checking, as the code
always treats broken up pieces of the polygon as being connected.
It _might_ have been better to leave this support broken - so
users don't inadvertently create polygons with the "fullpoly" flag.
TODO: Consider removing, hiding or adding warnings to this feature.
diff --git a/src/action.c b/src/action.c
index 92fdbae..6b979d3 100644
--- a/src/action.c
+++ b/src/action.c
@@ -1342,7 +1342,7 @@ NotifyMode (void)
PolygonTypePtr polygon;
int flags = CLEARPOLYFLAG;
- if (Settings.FullPoly)
+ if (TEST_FLAG (NEWFULLPOLYFLAG, PCB))
flags |= FULLPOLYFLAG;
if ((polygon = CreateNewPolygonFromRectangle (CURRENT,
Crosshair.
diff --git a/src/create.c b/src/create.c
index fc6b863..6d34465 100644
--- a/src/create.c
+++ b/src/create.c
@@ -160,6 +160,8 @@ CreateNewPCB (Boolean SetDefaultNames)
SET_FLAG (SNAPPINFLAG, ptr);
if (Settings.ClearLine)
SET_FLAG (CLEARNEWFLAG, ptr);
+ if (Settings.FullPoly)
+ SET_FLAG (NEWFULLPOLYFLAG, ptr);
if (Settings.OrthogonalMoves)
SET_FLAG (ORTHOMOVEFLAG, ptr);
if (Settings.liveRouting)
diff --git a/src/strflags.c b/src/strflags.c
index c2073a5..ac1fdcc 100644
--- a/src/strflags.c
+++ b/src/strflags.c
@@ -127,6 +127,7 @@ static FlagBitsType pcb_flagbits[] = {
{ SWAPSTARTDIRFLAG, N ("swapstartdir"), 1 },
{ UNIQUENAMEFLAG, N ("uniquename"), 1 },
{ CLEARNEWFLAG, N ("clearnew"), 1 },
+ { NEWFULLPOLYFLAG, N ("newfullpoly"), 1 },
{ SNAPPINFLAG, N ("snappin"), 1 },
{ SHOWMASKFLAG, N ("showmask"), 1 },
{ THINDRAWFLAG, N ("thindraw"), 1 },
|
|
From: <gi...@gp...> - 2009-10-20 21:30:15
|
The branch, master has been updated
via 09020e6a57e5e9b901b125ab6c818d626b9f92a5 (commit)
from 515f6d3967aba780f056e79879eac1c1cca4fd1c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/hid/gtk/gui-output-events.c | 15 ---------------
1 files changed, 0 insertions(+), 15 deletions(-)
=================
Commit Messages
=================
commit 09020e6a57e5e9b901b125ab6c818d626b9f92a5
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
hid/gtk: Remove unused function in_draw_state()
:100644 100644 9ea3207... 86abad2... M src/hid/gtk/gui-output-events.c
=========
Changes
=========
commit 09020e6a57e5e9b901b125ab6c818d626b9f92a5
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
hid/gtk: Remove unused function in_draw_state()
diff --git a/src/hid/gtk/gui-output-events.c b/src/hid/gtk/gui-output-events.c
index 9ea3207..86abad2 100644
--- a/src/hid/gtk/gui-output-events.c
+++ b/src/hid/gtk/gui-output-events.c
@@ -610,21 +610,6 @@ ghid_port_key_press_cb (GtkWidget * drawing_area,
return handled;
}
-static gboolean
-in_draw_state (void)
-{
- if ((Settings.Mode == LINE_MODE
- && Crosshair.AttachedLine.State != STATE_FIRST)
- || (Settings.Mode == ARC_MODE
- && Crosshair.AttachedBox.State != STATE_FIRST)
- || (Settings.Mode == RECTANGLE_MODE
- && Crosshair.AttachedBox.State != STATE_FIRST)
- || (Settings.Mode == POLYGON_MODE
- && Crosshair.AttachedLine.State != STATE_FIRST))
- return TRUE;
- return FALSE;
-}
-
gboolean
ghid_port_button_press_cb (GtkWidget * drawing_area,
GdkEventButton * ev, GtkUIManager * ui)
|
|
From: <gi...@gp...> - 2009-10-19 16:49:50
|
The branch, master has been updated
via 515f6d3967aba780f056e79879eac1c1cca4fd1c (commit)
via 93cc00394d1d1b4f106103d98df3e1795c0ea353 (commit)
from b3903db46402e65d6f26a18857e818bb7acec428 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/hid/common/actions.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
=================
Commit Messages
=================
commit 515f6d3967aba780f056e79879eac1c1cca4fd1c
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
hid/common: Fix dereference bug in hid_find_action().
We want to check context for being NULL, not *context.
:100644 100644 4bd886b... 8678ad9... M src/hid/common/actions.c
commit 93cc00394d1d1b4f106103d98df3e1795c0ea353
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
hid/common: Don't walk off end of string whilst parsing.
Fixed a bug where the action parser would walk off the end of a
string when given an action without a "(" in it, e.g. "benchmark".
:100644 100644 0256772... 4bd886b... M src/hid/common/actions.c
=========
Changes
=========
commit 515f6d3967aba780f056e79879eac1c1cca4fd1c
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
hid/common: Fix dereference bug in hid_find_action().
We want to check context for being NULL, not *context.
diff --git a/src/hid/common/actions.c b/src/hid/common/actions.c
index 4bd886b..8678ad9 100644
--- a/src/hid/common/actions.c
+++ b/src/hid/common/actions.c
@@ -180,7 +180,7 @@ hid_find_action (const char *name, void **context)
for (i = 0; i < n_actions; i++)
if (strcasecmp (all_actions[i].action.name, name) == 0) {
- if (*context != NULL)
+ if (context != NULL)
*context = all_actions[i].context;
return &(all_actions[i].action);
}
commit 93cc00394d1d1b4f106103d98df3e1795c0ea353
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
hid/common: Don't walk off end of string whilst parsing.
Fixed a bug where the action parser would walk off the end of a
string when given an action without a "(" in it, e.g. "benchmark".
diff --git a/src/hid/common/actions.c b/src/hid/common/actions.c
index 0256772..4bd886b 100644
--- a/src/hid/common/actions.c
+++ b/src/hid/common/actions.c
@@ -358,7 +358,8 @@ another:
while (*sp && *sp != '(')
*cp++ = *sp++;
*cp++ = 0;
- sp++;
+ if (*sp)
+ sp++;
/*
* we didn't find a leading ( so invoke the action
|
|
From: <gi...@gp...> - 2009-10-17 03:03:02
|
The branch, master has been updated
via b3903db46402e65d6f26a18857e818bb7acec428 (commit)
from ff33014dc2514203e5c63a055c1e09828d00876a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/find.c | 70 ++++++++++++++++++++++++++++++-----------------------------
1 files changed, 36 insertions(+), 34 deletions(-)
=================
Commit Messages
=================
commit b3903db46402e65d6f26a18857e818bb7acec428
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Tidy up IsPolygonInPolygon
No functional changes
:100644 100644 97424ce... e22d5cc... M src/find.c
=========
Changes
=========
commit b3903db46402e65d6f26a18857e818bb7acec428
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Tidy up IsPolygonInPolygon
No functional changes
diff --git a/src/find.c b/src/find.c
index 97424ce..e22d5cc 100644
--- a/src/find.c
+++ b/src/find.c
@@ -2644,49 +2644,51 @@ IsPolygonInPolygon (PolygonTypePtr P1, PolygonTypePtr P2)
return False;
assert (P1->Clipped->contours);
assert (P2->Clipped->contours);
- /* first check if both bounding boxes intersect */
- if (P1->Clipped->contours->xmin - Bloat <= P2->Clipped->contours->xmax &&
- P1->Clipped->contours->xmax + Bloat >= P2->Clipped->contours->xmin &&
- P1->Clipped->contours->ymin - Bloat <= P2->Clipped->contours->ymax &&
- P1->Clipped->contours->ymax + Bloat >= P2->Clipped->contours->ymin)
+
+ /* first check if both bounding boxes intersect. If not, return quickly */
+ if (P1->Clipped->contours->xmin - Bloat > P2->Clipped->contours->xmax ||
+ P1->Clipped->contours->xmax + Bloat < P2->Clipped->contours->xmin ||
+ P1->Clipped->contours->ymin - Bloat > P2->Clipped->contours->ymax ||
+ P1->Clipped->contours->ymax + Bloat < P2->Clipped->contours->ymin)
+ return False;
+
+ /* first check un-bloated case */
+ if (isects (P1->Clipped, P2, False))
+ return TRUE;
+
+ /* now the difficult case of bloated */
+ if (Bloat > 0)
{
PLINE *c;
-
- /* first check un-bloated case */
- if (isects (P1->Clipped, P2, False))
- return TRUE;
- if (Bloat > 0)
+ for (c = P1->Clipped->contours; c; c = c->next)
{
- /* now the difficult case of bloated */
- for (c = P1->Clipped->contours; c; c = c->next)
+ LineType line;
+ VNODE *v = &c->head;
+ if (c->xmin - Bloat <= P2->Clipped->contours->xmax &&
+ c->xmax + Bloat >= P2->Clipped->contours->xmin &&
+ c->ymin - Bloat <= P2->Clipped->contours->ymax &&
+ c->ymax + Bloat >= P2->Clipped->contours->ymin)
{
- LineType line;
- VNODE *v = &c->head;
- if (c->xmin - Bloat <= P2->Clipped->contours->xmax &&
- c->xmax + Bloat >= P2->Clipped->contours->xmin &&
- c->ymin - Bloat <= P2->Clipped->contours->ymax &&
- c->ymax + Bloat >= P2->Clipped->contours->ymin)
- {
- line.Point1.X = v->point[0];
- line.Point1.Y = v->point[1];
- line.Thickness = 2 * Bloat;
- line.Clearance = 0;
- line.Flags = NoFlags ();
- for (v = v->next; v != &c->head; v = v->next)
- {
- line.Point2.X = v->point[0];
- line.Point2.Y = v->point[1];
- SetLineBoundingBox (&line);
- if (IsLineInPolygon (&line, P2))
- return (True);
- line.Point1.X = line.Point2.X;
- line.Point1.Y = line.Point2.Y;
- }
+ line.Point1.X = v->point[0];
+ line.Point1.Y = v->point[1];
+ line.Thickness = 2 * Bloat;
+ line.Clearance = 0;
+ line.Flags = NoFlags ();
+ for (v = v->next; v != &c->head; v = v->next)
+ {
+ line.Point2.X = v->point[0];
+ line.Point2.Y = v->point[1];
+ SetLineBoundingBox (&line);
+ if (IsLineInPolygon (&line, P2))
+ return (True);
+ line.Point1.X = line.Point2.X;
+ line.Point1.Y = line.Point2.Y;
}
}
}
}
+
return (False);
}
|
|
From: <gi...@gp...> - 2009-10-17 01:50:57
|
The branch, master has been updated
via ff33014dc2514203e5c63a055c1e09828d00876a (commit)
via f9ad8e0026a03091c320612720cb9abab12ad97e (commit)
from 5a4aa55ebebc6d4a30085d655d1b4dfaa320c401 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/global.h | 32 ++++++++++
src/polygon1.c | 185 ++++++++++++++++++++++++++++---------------------------
src/rtree.c | 4 +-
3 files changed, 128 insertions(+), 93 deletions(-)
=================
Commit Messages
=================
commit ff33014dc2514203e5c63a055c1e09828d00876a
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Add some annotations to help optimise branch prediction.
Macros G_LIKELY and G_UNLIKELY were taken from GLib (LGPL 2), and
renamed without the G_ prefix.
This hasn't had much discernable effect
:100644 100644 3c383be... e8fc8f1... M src/global.h
:100644 100644 1e2e009... fc01611... M src/polygon1.c
:100644 100644 aa5b41a... f7ffe4d... M src/rtree.c
commit f9ad8e0026a03091c320612720cb9abab12ad97e
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Rework iteration over contours in "intersect" to improve performance
We don't need to be using an r_tree search to determine if a contour's
bounding box hits anything in another contour. Just compare the bounding
boxes directly, then continue to the more expensive testing.
Rather than counting the vertices of each POLYAREA then swapping to
ensure we loop over the the small one, wait until we've worked out
which contours we're comparing. Rather than swapping, we just choose
which to loop over. This saves us time in the case where the larger
intersecting contour belongs to the polygon with fewer vertices.
In one case, this change reduced a complex board's load time from
~140 seconds to ~70.
:100644 100644 fdb816d... 1e2e009... M src/polygon1.c
=========
Changes
=========
commit ff33014dc2514203e5c63a055c1e09828d00876a
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Add some annotations to help optimise branch prediction.
Macros G_LIKELY and G_UNLIKELY were taken from GLib (LGPL 2), and
renamed without the G_ prefix.
This hasn't had much discernable effect
diff --git a/src/global.h b/src/global.h
index 3c383be..e8fc8f1 100644
--- a/src/global.h
+++ b/src/global.h
@@ -91,6 +91,38 @@ typedef struct
#define __FUNCTION__ __FUNCTION2(__FILE__,__LINE__)
#endif
+
+/* ---------------------------------------------------------------------------
+ * Macros to annotate branch-prediction information.
+ * Taken from GLib 2.16.3 (LGPL 2).G_ / g_ prefixes have
+ * been removed to avoid namespace clashes.
+ */
+
+/* The LIKELY and UNLIKELY macros let the programmer give hints to
+ * the compiler about the expected result of an expression. Some compilers
+ * can use this information for optimizations.
+ *
+ * The _BOOLEAN_EXPR macro is intended to trigger a gcc warning when
+ * putting assignments inside the test.
+ */
+#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__)
+#define _BOOLEAN_EXPR(expr) \
+ __extension__ ({ \
+ int _boolean_var_; \
+ if (expr) \
+ _boolean_var_ = 1; \
+ else \
+ _boolean_var_ = 0; \
+ _boolean_var_; \
+})
+#define LIKELY(expr) (__builtin_expect (_BOOLEAN_EXPR(expr), 1))
+#define UNLIKELY(expr) (__builtin_expect (_BOOLEAN_EXPR(expr), 0))
+#else
+#define LIKELY(expr) (expr)
+#define UNLIKELY(expr) (expr)
+#endif
+
+
/* ---------------------------------------------------------------------------
* Do not change the following definitions even if they're not very
* nice. It allows us to have functions act on these "base types" and
diff --git a/src/polygon1.c b/src/polygon1.c
index 1e2e009..fc01611 100644
--- a/src/polygon1.c
+++ b/src/polygon1.c
@@ -94,7 +94,7 @@ int vect_inters2 (Vector A, Vector B, Vector C, Vector D, Vector S1,
#define error(code) longjmp(*(e), code)
#define MemGet(ptr, type) \
-if (((ptr) = malloc(sizeof(type))) == NULL) \
+if (UNLIKELY (((ptr) = malloc(sizeof(type))) == NULL)) \
error(err_no_memory);
#undef DEBUG_LABEL
@@ -816,8 +816,8 @@ intersect (jmp_buf * jb, POLYAREA * b, POLYAREA * a, int add)
/* NB: If this actually hits anything, we are teleported back to the beginning */
info.tree = (rtree_t *) rtree_over->tree;
if (info.tree)
- if (r_search (info.tree, &info.s->box,
- seg_in_region, seg_in_seg, &info))
+ if (UNLIKELY (r_search (info.tree, &info.s->box,
+ seg_in_region, seg_in_seg, &info)))
return err_no_memory; /* error */
}
while ((av = av->next) != &looping_over->head);
@@ -849,23 +849,29 @@ M_POLYAREA_intersect (jmp_buf * e, POLYAREA * afst, POLYAREA * bfst, int add)
a->contours->xmin <= b->contours->xmax &&
a->contours->ymin <= b->contours->ymax)
{
- if (intersect (e, a, b, add))
+ if (UNLIKELY (intersect (e, a, b, add)))
error (err_no_memory);
}
}
while (add && (a = a->f) != afst);
for (curcB = b->contours; curcB != NULL; curcB = curcB->next)
if (curcB->Flags.status == ISECTED)
- if (!(the_list = add_descriptors (curcB, 'B', the_list)))
- error (err_no_memory);
+ {
+ the_list = add_descriptors (curcB, 'B', the_list);
+ if (UNLIKELY (the_list == NULL))
+ error (err_no_memory);
+ }
}
while (add && (b = b->f) != bfst);
do
{
for (curcA = a->contours; curcA != NULL; curcA = curcA->next)
if (curcA->Flags.status == ISECTED)
- if (!(the_list = add_descriptors (curcA, 'A', the_list)))
- error (err_no_memory);
+ {
+ the_list = add_descriptors (curcA, 'A', the_list);
+ if (UNLIKELY (the_list == NULL))
+ error (err_no_memory);
+ }
}
while (add && (a = a->f) != afst);
} /* M_POLYAREA_intersect */
diff --git a/src/rtree.c b/src/rtree.c
index aa5b41a..f7ffe4d 100644
--- a/src/rtree.c
+++ b/src/rtree.c
@@ -915,7 +915,7 @@ __r_insert_node (struct rtree_node *node, const BoxType * query,
{
register int i;
- if (manage)
+ if (UNLIKELY (manage))
{
register int flag = 1;
@@ -996,7 +996,7 @@ __r_insert_node (struct rtree_node *node, const BoxType * query,
new_node->u.rects[0].bptr = query;
new_node->u.rects[0].bounds = *query;
new_node->box = *query;
- if (manage)
+ if (UNLIKELY (manage))
new_node->flags.manage = 1;
sort_node (node);
return;
commit f9ad8e0026a03091c320612720cb9abab12ad97e
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Rework iteration over contours in "intersect" to improve performance
We don't need to be using an r_tree search to determine if a contour's
bounding box hits anything in another contour. Just compare the bounding
boxes directly, then continue to the more expensive testing.
Rather than counting the vertices of each POLYAREA then swapping to
ensure we loop over the the small one, wait until we've worked out
which contours we're comparing. Rather than swapping, we just choose
which to loop over. This saves us time in the case where the larger
intersecting contour belongs to the polygon with fewer vertices.
In one case, this change reduced a complex board's load time from
~140 seconds to ~70.
diff --git a/src/polygon1.c b/src/polygon1.c
index fdb816d..1e2e009 100644
--- a/src/polygon1.c
+++ b/src/polygon1.c
@@ -660,12 +660,6 @@ seg_in_seg (const BoxType * b, void *cl)
return 0;
}
-static int
-curtail (const BoxType * b, void *cl)
-{
- longjmp (*(jmp_buf *) cl, 1);
-}
-
static void *
make_edge_tree (PLINE * pb)
{
@@ -738,25 +732,12 @@ get_seg (const BoxType * b, void *cl)
static int
intersect (jmp_buf * jb, POLYAREA * b, POLYAREA * a, int add)
{
- POLYAREA *t;
PLINE *pa, *pb; /* pline iterators */
+ PLINE *rtree_over;
+ PLINE *looping_over;
VNODE *av; /* node iterators */
struct info info;
BoxType box;
- int ca = 0, cb = 0;
-
- /* count the vertices in a and b */
- for (pa = a->contours; pa; pa = pa->next)
- ca += pa->Count;
- for (pb = b->contours; pb; pb = pb->next)
- cb += pb->Count;
- /* search the tree with the larger number of verticies */
- if (ca > cb)
- {
- t = b;
- b = a;
- a = t;
- }
if (add)
info.touch = NULL;
@@ -764,71 +745,87 @@ intersect (jmp_buf * jb, POLYAREA * b, POLYAREA * a, int add)
info.touch = jb;
setjmp (info.env); /* we loop back here whenever a vertex is inserted */
{
- for (pa = a->contours; pa; pa = pa->next)
+ pa = a->contours;
+ pb = b->contours;
+ while (pa) /* Loop over the contours of POLYAREA "a" */
{
- jmp_buf env;
- /* skip the whole contour if it's bounding box doesn't intersect */
- if (setjmp (env) == 0)
- {
- /* expand the box to include the max point */
- BoxType sb;
- sb.X1 = pa->xmin;
- sb.X2 = pa->xmax + 1;
- sb.Y1 = pa->ymin;
- sb.Y2 = pa->ymax + 1;
- for (pb = b->contours; pb; pb = pb->next)
- {
- /*
- if (sb.X1 > pb->xmax || sb.X2 < pb->xmin || sb.Y1 > pb->ymax || sb.Y2 < pb->ymin)
- continue;
- */
- info.tree = (rtree_t *) pb->tree;
- if (info.tree)
- r_search (info.tree, &sb, NULL, curtail, &env);
- }
- continue;
- }
- else /* something intersects so check the edges of the contour */
- {
- av = &pa->head;
- do
- {
- /* check this edge for any insertions */
- double dx;
- info.v = av;
- /* compute the slant for region trimming */
- dx = av->next->point[0] - av->point[0];
- if (dx == 0)
- info.m = 0;
- else
- {
- info.m = (av->next->point[1] - av->point[1]) / dx;
- info.b = av->point[1] - info.m * av->point[0];
- }
- box.X2 = (box.X1 = av->point[0]) + 1;
- box.Y2 = (box.Y1 = av->point[1]) + 1;
- /* fill in the segment in info corresponding to this node */
- if (setjmp (info.sego) == 0)
- {
- r_search ((rtree_t *) (pa->tree), &box, NULL, get_seg,
- &info);
- assert (0);
- }
- for (pb = b->contours; pb; pb = pb->next)
- {
- if (pb->xmin > info.s->box.X2 || pb->xmax < info.s->box.X1
- || pb->ymin > info.s->box.Y2
- || pb->ymax < info.s->box.Y1)
- continue;
- info.tree = (rtree_t *) pb->tree;
- if (info.tree && r_search
- (info.tree, &info.s->box, seg_in_region, seg_in_seg,
- &info))
- return err_no_memory; /* error */
- }
- }
- while ((av = av->next) != &pa->head);
- }
+ int found_overlapping_a_b_contour = FALSE;
+
+ while (pb) /* Loop over the contours of POLYAREA "b" */
+ {
+ /* Are there overlapping bounds? */
+ if (pb->xmin <= pa->xmax && pb->xmax >= pa->xmin &&
+ pb->ymin <= pa->ymax && pb->ymax >= pa->ymin)
+ {
+ found_overlapping_a_b_contour = TRUE;
+ break;
+ }
+ pb = pb->next;
+ }
+
+ /* If we didn't find anything intersting, move onto the next "a" contour */
+ if (!found_overlapping_a_b_contour)
+ {
+ pa = pa->next;
+ pb = b->contours;
+ continue;
+ }
+
+ /* something intersects so check the edges of the contour */
+
+ /* Pick which contour has the fewer points, and do the loop
+ * over that. The r_tree makes hit-testing against a contour
+ * faster, so we want to do that on the bigger contour.
+ */
+ if (pa->Count < pb->Count)
+ {
+ rtree_over = pb;
+ looping_over = pa;
+ }
+ else
+ {
+ rtree_over = pa;
+ looping_over = pb;
+ }
+
+ av = &looping_over->head;
+ do /* Loop over the nodes in the smaller contour */
+ {
+ /* check this edge for any insertions */
+ double dx;
+ info.v = av;
+ /* compute the slant for region trimming */
+ dx = av->next->point[0] - av->point[0];
+ if (dx == 0)
+ info.m = 0;
+ else
+ {
+ info.m = (av->next->point[1] - av->point[1]) / dx;
+ info.b = av->point[1] - info.m * av->point[0];
+ }
+ box.X2 = (box.X1 = av->point[0]) + 1;
+ box.Y2 = (box.Y1 = av->point[1]) + 1;
+
+ /* fill in the segment in info corresponding to this node */
+ if (setjmp (info.sego) == 0)
+ {
+ r_search ((rtree_t *) (looping_over->tree), &box, NULL, get_seg, &info);
+ assert (0);
+ }
+
+ /* NB: If this actually hits anything, we are teleported back to the beginning */
+ info.tree = (rtree_t *) rtree_over->tree;
+ if (info.tree)
+ if (r_search (info.tree, &info.s->box,
+ seg_in_region, seg_in_seg, &info))
+ return err_no_memory; /* error */
+ }
+ while ((av = av->next) != &looping_over->head);
+
+ /* Continue the with the _same_ "a" contour,
+ * testing it against the next "b" contour.
+ */
+ pb = pb->next;
}
} /* end of setjmp loop */
return 0;
|
|
From: <gi...@gp...> - 2009-10-14 12:01:30
|
The branch, master has been updated
via 5a4aa55ebebc6d4a30085d655d1b4dfaa320c401 (commit)
from cb9b2d2dc4426b00807c54fc961530715764e0c6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/.gitignore | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
=================
Commit Messages
=================
commit 5a4aa55ebebc6d4a30085d655d1b4dfaa320c401
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Add dbus-introspect.h to src/.gitignore
dbus-introspect.h is a generated file.
:100644 100644 ed7ee9f... bb22c23... M src/.gitignore
=========
Changes
=========
commit 5a4aa55ebebc6d4a30085d655d1b4dfaa320c401
Author: Peter Clifton <pc...@ca...>
Commit: Peter Clifton <pc...@ca...>
Add dbus-introspect.h to src/.gitignore
dbus-introspect.h is a generated file.
diff --git a/src/.gitignore b/src/.gitignore
index ed7ee9f..bb22c23 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -1,5 +1,6 @@
*.[oa]
*_lists.h
+dbus-introspect.h
edif.[ch]
parse_l.c
parse_y.[ch]
|
|
From: <gi...@gp...> - 2009-09-14 11:22:54
|
The branch, master has been updated
via cb9b2d2dc4426b00807c54fc961530715764e0c6 (commit)
via 7ae3210e58b682577bbae1ff4d8ffc89a6666ad9 (commit)
from 8f71a521ff2a20ccc2f3fe086c1c3a7e0823fdc7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
Makefile.am | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
=================
Commit Messages
=================
commit 7ae3210e58b682577bbae1ff4d8ffc89a6666ad9
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Change 'README.cvs' to 'README.git'.
Change 'README.cvs' to 'README.git'. The file was renamed soon after the switch to
git.
:100644 100644 5beb0ce... f143862... M Makefile.am
=========
Changes
=========
commit 7ae3210e58b682577bbae1ff4d8ffc89a6666ad9
Author: Dan McMahill <da...@mc...>
Commit: Dan McMahill <da...@mc...>
Change 'README.cvs' to 'README.git'.
Change 'README.cvs' to 'README.git'. The file was renamed soon after the switch to
git.
diff --git a/Makefile.am b/Makefile.am
index 5beb0ce..f143862 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -9,7 +9,7 @@ DIST_SUBDIRS= ${DIRS} doc
INTLTOOL_FILES = intltool-extract.in intltool-merge.in intltool-update.in
-EXTRA_DIST= config.rpath globalconst.h README.cvs README.win32 icon-theme-installer $(INTLTOOL_FILES)
+EXTRA_DIST= config.rpath globalconst.h README.git README.win32 icon-theme-installer $(INTLTOOL_FILES)
DISTCLEANFILES= configure.lineno intltool-extract intltool-merge intltool-update po/.intltool-merge-cache
|
|
From: <gi...@gp...> - 2009-09-11 18:08:27
|
The branch, master has been updated
via 8f71a521ff2a20ccc2f3fe086c1c3a7e0823fdc7 (commit)
from 0d7251b1062d3e335878e37555be6f614f977924 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/misc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
=================
Commit Messages
=================
commit 8f71a521ff2a20ccc2f3fe086c1c3a7e0823fdc7
Author: DJ Delorie <dj...@de...>
Commit: DJ Delorie <dj...@de...>
Fix "Design Rule Checker moves elements and traces off grid"
Patch from Ineiev <in...@gm...> to keep the grid from changing
just because DRC ran.
:100644 100644 5b04469... 693da81... M src/misc.c
=========
Changes
=========
commit 8f71a521ff2a20ccc2f3fe086c1c3a7e0823fdc7
Author: DJ Delorie <dj...@de...>
Commit: DJ Delorie <dj...@de...>
Fix "Design Rule Checker moves elements and traces off grid"
Patch from Ineiev <in...@gm...> to keep the grid from changing
just because DRC ran.
diff --git a/src/misc.c b/src/misc.c
index 5b04469..693da81 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -599,7 +599,7 @@ GetDataBoundingBox (DataTypePtr Data)
void
CenterDisplay (LocationType X, LocationType Y, Boolean Delta)
{
- int save_grid = PCB->Grid;
+ double save_grid = PCB->Grid;
PCB->Grid = 1;
if (Delta)
{
|
|
From: <gi...@gp...> - 2009-08-29 23:16:17
|
The branch, master has been updated
via 0d7251b1062d3e335878e37555be6f614f977924 (commit)
from 2e002a90cf13177e64355fc4557dd26bf724846b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/hid/batch/batch.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
=================
Commit Messages
=================
commit 0d7251b1062d3e335878e37555be6f614f977924
Author: Bert Timmerman <ber...@xs...>
Commit: DJ Delorie <dj...@de...>
gEDA-dev: [pcb patch] Correction of the pcb homepage url in the batch HID
Hi,
Subject says it all.
Kind regards,
Bert Timmerman.
>From 54b7d8e1d7704c1f467e0711f94dc564cc0a2c6d Mon Sep 17 00:00:00 2001
From: Bert Timmerman <ber...@xs...>
Date: Sat, 29 Aug 2009 21:57:22 +0200
Subject: [PATCH] Correction of the pcb homepage url in the batch HID.
:100644 100644 171926b... cc09564... M src/hid/batch/batch.c
=========
Changes
=========
commit 0d7251b1062d3e335878e37555be6f614f977924
Author: Bert Timmerman <ber...@xs...>
Commit: DJ Delorie <dj...@de...>
gEDA-dev: [pcb patch] Correction of the pcb homepage url in the batch HID
Hi,
Subject says it all.
Kind regards,
Bert Timmerman.
>From 54b7d8e1d7704c1f467e0711f94dc564cc0a2c6d Mon Sep 17 00:00:00 2001
From: Bert Timmerman <ber...@xs...>
Date: Sat, 29 Aug 2009 21:57:22 +0200
Subject: [PATCH] Correction of the pcb homepage url in the batch HID.
diff --git a/src/hid/batch/batch.c b/src/hid/batch/batch.c
index 171926b..cc09564 100644
--- a/src/hid/batch/batch.c
+++ b/src/hid/batch/batch.c
@@ -166,7 +166,7 @@ batch_do_export (HID_Attr_Val * options)
if (interactive)
{
printf("Entering %s version %s batch mode.\n", PACKAGE, VERSION);
- printf("See http://pcb.sourceforge.net for project information\n");
+ printf("See http://pcb.gpleda.org for project information\n");
}
while (1)
{
|
|
From: <gi...@gp...> - 2009-08-13 23:11:40
|
The branch, master has been updated
via 2e002a90cf13177e64355fc4557dd26bf724846b (commit)
from e2c5002166158dab7cf43d4745b594e510056071 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
src/misc.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
=================
Commit Messages
=================
commit 2e002a90cf13177e64355fc4557dd26bf724846b
Author: Bert Timmerman <ber...@xs...>
Commit: DJ Delorie <dj...@de...>
gEDA-dev: pcb [PATCH] Correction of the geda homepage url and wiki url in the about dialog window.
Hi all,
Here is another one :)
Kind regards,
Bert Timmerman.
>From c383fc1aabfcefb3c688bb5274f08874c86e7a8a Mon Sep 17 00:00:00 2001
From: Bert Timmerman <ber...@xs...>
Date: Fri, 14 Aug 2009 00:33:26 +0200
Subject: [PATCH] Correction of the geda homepage url and wiki url in the about dialog window.
:100644 100644 f96202d... 5b04469... M src/misc.c
=========
Changes
=========
commit 2e002a90cf13177e64355fc4557dd26bf724846b
Author: Bert Timmerman <ber...@xs...>
Commit: DJ Delorie <dj...@de...>
gEDA-dev: pcb [PATCH] Correction of the geda homepage url and wiki url in the about dialog window.
Hi all,
Here is another one :)
Kind regards,
Bert Timmerman.
>From c383fc1aabfcefb3c688bb5274f08874c86e7a8a Mon Sep 17 00:00:00 2001
From: Bert Timmerman <ber...@xs...>
Date: Fri, 14 Aug 2009 00:33:26 +0200
Subject: [PATCH] Correction of the geda homepage url and wiki url in the about dialog window.
diff --git a/src/misc.c b/src/misc.c
index f96202d..5b04469 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -2023,9 +2023,9 @@ GetInfoString (void)
DSAddString (&info, "See the LICENSE file for more information\n\n");
DSAddString (&info, "For more information see:\n\n");
DSAddString (&info, "PCB homepage: http://pcb.gpleda.org\n");
- DSAddString (&info, "gEDA homepage: http://www.geda.seul.org\n");
+ DSAddString (&info, "gEDA homepage: http://www.gpleda.org\n");
DSAddString (&info,
- "gEDA Wiki: http://geda.seul.org/dokuwiki/doku.php?id=geda\n\n");
+ "gEDA Wiki: http://geda.seul.org/wiki/ \n\n");
DSAddString (&info, "----- Compile Time Options -----\n");
hids = hid_enumerate ();
|