kicad/pcbnew
Jeff Young 8054f1a948 Apply a more sophisticated test for ignoring isInCoupledDiffPair.
The basic problem is that the DRC engine does length testing and skew
testing by collecting all the diff pair constituent parts and pairing them
itself.  Since each part is collected on its own, we need to ignore the
'B' unit when evaluating any conditional expressions.  However, doing this
in general means that when evaluating "OwnClearance()" we also ignore the
'B' unit and return the diff pair CLEARANCE_CONSTRAINT when we shouldn't.

This implements a more discerning test which know what the current requested
constraint is when evaluating expressions.

See also https://forum.kicad.info/t/solved-custom-differencing-rule-not-working-drc/34034/6

Fixes https://gitlab.com/kicad/code/kicad/issues/11314

(cherry picked from commit f7cdc7af75)
2022-04-03 18:23:41 +01:00
..
autorouter Avoid potential divide by zero in footprint spreading PVS V609 2022-02-05 18:31:00 +00:00
board_stackup_manager pcbnew: fix incorrect calculation of the board thickness from board stackup. 2022-02-18 18:10:49 +01:00
connectivity Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
dialogs Only write Allow DRC Violations if enabled. 2022-04-03 18:13:04 +01:00
drc Apply a more sophisticated test for ignoring isInCoupledDiffPair. 2022-04-03 18:23:41 +01:00
exporters GERBER_JOBFILE_WRITER: fix a crash due to use of a null pointer. 2022-03-24 18:01:24 +01:00
import_gfx Free memory in dxf import sooner on bad_alloc 2022-04-02 13:58:35 +00:00
microwave More wide-string declarations. 2022-02-05 13:29:00 +00:00
netlist_reader Use wxEmptyString instead of wxT( "" ) 2022-02-09 10:33:52 -08:00
plugins Fix issues with importing NPTH pads from CircuitStudio. 2022-04-03 15:51:33 +01:00
python Python, board.i: fix incorrect order of an include. 2022-03-20 18:47:14 +01:00
ratsnest Fix broken refactor from 0e65fe5 2021-12-07 12:38:05 -08:00
router Honour prime-event-location when starting router. 2022-04-03 18:21:00 +01:00
specctra_import_export Specctra import/export: fix some issues (tested only with FreeRouter): 2022-03-20 19:05:23 +01:00
tools Don't re-fetch selection when running select-in-same-sheet. 2022-04-03 18:20:32 +01:00
widgets APPEARANCE_CONTROLS: fix missing update when toggling a layer view. 2022-02-26 10:40:47 +01:00
CMakeLists.txt Fix a incorrect filename in a copy command (MSW specific). 2022-03-14 21:14:04 -04:00
Doxyfile_python
Doxyfile_xml
action_plugin.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
action_plugin.h
array_creator.cpp Array creator tool: Add option to assign unique reference designators 2021-10-25 22:38:49 +01:00
array_creator.h Array creator tool: Add option to assign unique reference designators 2021-10-25 22:38:49 +01:00
array_pad_number_provider.cpp We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
array_pad_number_provider.h We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
board.cpp Remove broken call to normalize outlines 2022-02-18 09:30:26 -08:00
board.h Remove broken call to normalize outlines 2022-02-18 09:30:26 -08:00
board_commit.cpp Make sure Cleanup handles shapes other than segments. 2022-03-02 15:26:02 +00:00
board_commit.h Make sure Cleanup handles shapes other than segments. 2022-03-02 15:26:02 +00:00
board_connected_item.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
board_connected_item.h More NULL expunging. 2021-07-20 07:27:18 -04:00
board_design_settings.cpp Copy Pad_Master when copying BOARD_DESIGN_SETTINGS. 2022-02-25 10:40:05 +00:00
board_item.cpp Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
board_item_container.h
build_BOM_from_board.cpp Pcbnew: honor footprint exclude from BOM setting. 2022-01-09 11:30:06 -05:00
cleanup_item.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
cleanup_item.h
collectors.cpp More NULL expunging. 2021-07-20 07:27:18 -04:00
collectors.h Rename layer ids file. 2021-07-29 16:03:25 +01:00
convert_shape_list_to_polygon.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
convert_shape_list_to_polygon.h Push most of PCB_SHAPE impl down in to EDA_SHAPE. 2021-10-15 12:45:43 +01:00
cross-probing.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
edit.cpp Update call signature for SwitchLayer 2021-12-09 10:14:11 -08:00
edit_track_width.cpp Optimize DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS: a time consuming call (OnModify()) 2022-02-20 20:12:36 +01:00
edit_zone_helpers.cpp Connectivity rebuild must be done after commit push. 2022-02-25 23:15:44 +00:00
files.cpp Move temp save files to temporary directory 2022-03-08 10:05:04 -08:00
footprint.cpp Clean up pad handling in 3D viewer. 2022-04-03 15:51:33 +01:00
footprint.h Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
footprint_edit_frame.cpp On-the-fly language updating for appearance panel & selection filter. 2022-02-20 01:03:08 +00:00
footprint_edit_frame.h Use wxEmptyString instead of wxT( "" ) 2022-02-09 10:33:52 -08:00
footprint_editor_settings.cpp Use wxEmptyString instead of wxT( "" ) 2022-02-09 10:33:52 -08:00
footprint_editor_utils.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
footprint_info_impl.cpp Infobar warning if symbol loading was cancelled. 2022-02-27 18:20:25 +00:00
footprint_info_impl.h Pass wxString objects by reference instead of on the stack. 2021-07-27 08:41:27 -04:00
footprint_libraries_utils.cpp Freeze TEDIT in place 2022-03-01 15:53:07 -08:00
footprint_preview_panel.cpp
footprint_preview_panel.h
footprint_tree_pane.cpp Rename SCH_COMPONENT to SCH_SYMBOL. 2021-06-10 10:34:49 -04:00
footprint_tree_pane.h
footprint_viewer_frame.cpp Handle list double-click without shortcuts 2022-02-25 16:53:03 -08:00
footprint_viewer_frame.h Handle list double-click without shortcuts 2022-02-25 16:53:03 -08:00
footprint_wizard.cpp More NULL expunging. 2021-07-20 07:27:18 -04:00
footprint_wizard.h More wxString wide literals. 2022-02-04 23:12:09 +00:00
footprint_wizard_frame.cpp Use wxEmptyString instead of wxT( "" ) 2022-02-09 10:33:52 -08:00
footprint_wizard_frame.h
footprint_wizard_frame_functions.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
fp_shape.cpp Cache read arc data for stability 2022-03-08 10:33:49 -08:00
fp_shape.h Cache read arc data for stability 2022-03-08 10:33:49 -08:00
fp_text.cpp Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
fp_text.h Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
fp_text_grid_table.cpp Add hot-updating of units in common wxGrids. 2021-12-23 17:01:34 +00:00
fp_text_grid_table.h Add hot-updating of units in common wxGrids. 2021-12-23 17:01:34 +00:00
fp_tree_model_adapter.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
fp_tree_model_adapter.h
fp_tree_synchronizing_adapter.cpp Infobar warning if symbol loading was cancelled. 2022-02-27 18:20:25 +00:00
fp_tree_synchronizing_adapter.h
generate_footprint_info.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
generate_footprint_info.h
graphics_cleaner.cpp Make sure Cleanup handles shapes other than segments. 2022-03-02 15:26:02 +00:00
graphics_cleaner.h Make sure Cleanup handles shapes other than segments. 2022-03-02 15:26:02 +00:00
grid_layer_box_helpers.cpp
grid_layer_box_helpers.h
initpcb.cpp More NULL expunging. 2021-07-20 07:27:18 -04:00
invoke_pcb_dialog.h
io_mgr.cpp Kicad has many plugins. This one is for the pcb. 2021-11-25 12:56:46 +00:00
io_mgr.h Formatting and include cleanup. 2021-06-25 17:48:15 +01:00
kicad_clipboard.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
kicad_clipboard.h Kicad has many plugins. This one is for the pcb. 2021-11-25 12:56:46 +00:00
load_select_footprint.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
menubar_footprint_editor.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
menubar_pcb_editor.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
netinfo.h More wxString wide literals. 2022-02-04 23:12:09 +00:00
netinfo_item.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
netinfo_list.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
pad.cpp Clean up pad handling in 3D viewer. 2022-04-03 15:51:33 +01:00
pad.h Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pad_custom_shape_functions.cpp Handle invalid pads more gracefully 2022-02-02 13:36:24 -08:00
pcb_base_edit_frame.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
pcb_base_edit_frame.h Use progress reporting in more places when loading a board 2021-11-25 11:19:03 -05:00
pcb_base_frame.cpp Fix repaints getting done after the wrong dialog. 2022-02-13 18:37:44 +00:00
pcb_dimension.cpp Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_dimension.h Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_display_options.cpp Impleent persistence for no-connect pad setting. 2021-09-01 00:00:12 +01:00
pcb_draw_panel_gal.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
pcb_draw_panel_gal.h Use progress reporting in more places when loading a board 2021-11-25 11:19:03 -05:00
pcb_edit_frame.cpp Redraw pads when mask or paste layer is visible after board setup. 2022-03-10 17:54:38 +00:00
pcb_edit_frame.h Update call signature for SwitchLayer 2021-12-09 10:14:11 -08:00
pcb_expr_evaluator.cpp Apply a more sophisticated test for ignoring isInCoupledDiffPair. 2022-04-03 18:23:41 +01:00
pcb_expr_evaluator.h Apply a more sophisticated test for ignoring isInCoupledDiffPair. 2022-04-03 18:23:41 +01:00
pcb_group.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
pcb_item_containers.h Prefix TRACK, ARC and VIA. 2021-06-11 22:07:02 +01:00
pcb_layer_box_selector.cpp Rename layer ids file. 2021-07-29 16:03:25 +01:00
pcb_layer_box_selector.h
pcb_marker.cpp Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_marker.h Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_origin_transforms.cpp
pcb_origin_transforms.h
pcb_painter.cpp Reimplementation of 513486b0ec. 2022-03-03 23:29:22 +00:00
pcb_painter.h Use board's maxError value when possible. 2021-09-07 00:14:18 +01:00
pcb_plot_params.cpp Move plotter headers into include folder. 2021-08-18 16:38:31 -04:00
pcb_plot_params.h Move plotter headers into include folder. 2021-08-18 16:38:31 -04:00
pcb_plot_params_parser.h
pcb_screen.cpp Rename layer ids file. 2021-07-29 16:03:25 +01:00
pcb_shape.cpp Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_shape.h Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_target.cpp Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_target.h Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_text.cpp Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_text.h Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_track.cpp Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_track.h Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
pcb_view.cpp
pcb_view.h Rename layer ids file. 2021-07-29 16:03:25 +01:00
pcbnew.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
pcbnew.h
pcbnew.icns Add drop shadows to MacOS icons 2021-07-30 20:55:34 -07:00
pcbnew_config.cpp Normalize drawing sheet path to env vars & prj, not just prj. 2021-10-02 23:39:45 +01:00
pcbnew_config.h
pcbnew_doc.icns Add drop shadows to MacOS icons 2021-07-30 20:55:34 -07:00
pcbnew_id.h
pcbnew_printout.cpp Reconcile two different printing bug fixes. 2022-03-02 12:07:43 +00:00
pcbnew_printout.h Prefix TRACK, ARC and VIA. 2021-06-11 22:07:02 +01:00
pcbnew_settings.cpp pcbnew print: minor fix: option edge.cut on all layers not stored. Fixes #10046 https://gitlab.com/kicad/code/kicad/issues/10046 2021-12-23 18:36:42 +01:00
pcbnew_settings.h pcbnew print: minor fix: option edge.cut on all layers not stored. Fixes #10046 https://gitlab.com/kicad/code/kicad/issues/10046 2021-12-23 18:36:42 +01:00
pcbplot.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
pcbplot.h Rename layer ids file. 2021-07-29 16:03:25 +01:00
plot_board_layers.cpp plot_board_layers.cpp: Add missing layers (USer_x) in list 2022-03-08 14:44:53 +01:00
plot_brditems_plotter.cpp Gerber plotter: fix broken plot of SHAPE_LINE_CHAIN with arcs. 2022-02-28 18:26:26 +01:00
plotcontroller.h Rename layer ids file. 2021-07-29 16:03:25 +01:00
plugin.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
sel_layer.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
toolbars_footprint_editor.cpp Add missing view controls for FP Editor Appearance Manager. 2021-10-31 16:33:03 +00:00
toolbars_footprint_viewer.cpp Remove vestiges of old zoom-auto architecture. 2021-09-19 18:32:15 +01:00
toolbars_pcb_editor.cpp More wxString wide literals. 2022-02-04 23:12:09 +00:00
tracks_cleaner.cpp Improved performance for Cleanup Tracks & Vias. 2022-03-18 12:50:09 -07:00
tracks_cleaner.h Improved performance for Cleanup Tracks & Vias. 2022-03-18 12:50:09 -07:00
undo_redo.cpp Freeze TEDIT in place 2022-03-01 15:53:07 -08:00
zone.cpp Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
zone.h Separate flashing check for connectivity 2022-03-21 08:37:53 -07:00
zone_filler.cpp Improvements for pads/vias in zones which knockout other zones. 2022-03-05 15:40:30 +00:00
zone_filler.h Decouple PROGRESS_REPORTER interface from implementations. 2021-08-14 21:05:49 +01:00
zone_settings.cpp Allow Rule Areas on all physical layers. 2022-02-20 01:03:08 +00:00
zone_settings.h Allow Rule Areas on all physical layers. 2022-02-20 01:03:08 +00:00
zones.h
zones_functions_for_undo_redo.cpp
zones_functions_for_undo_redo.h