Pure extraction, no behaviour change: same order of side effects, same
early returns and error values. Clears cognitive-complexity findings on
tangent_circles, Model::build_budgeted, DimStyle::apply_fields and
run_rectang2 (S3776), and replaces a redundant closure with a method
reference in menus.rs (S1612).
Pure extraction, no behaviour change: same order of side effects, same
early returns and error values. Clears cognitive-complexity findings on
AreaM::input, explode_kind, hatch sweep, the COMPARE overlay paint and
the Files options tab (S3776).
Pure extraction, no behaviour change: same order of side effects, same
budget charges, same early returns and error values. Clears
cognitive-complexity findings on glob_inner, the PDF test ops scanner,
snap_ends, the loops inquiry run and build_budgeted (S3776).
* refactor: replace wildcard imports with explicit ones (S2208, batch_02)
* Fix unused and missing imports the batch's CI gate reported
Remove two unused imports and restore the json macro and resolve_alias
in test modules that the explicit import lists had dropped.
* fix: keep the imports the explicit lists still need after the rebase
* fix(draw2): import machines, distinct_points and ok from cmd
* refactor: replace wildcard imports with explicit ones (S2208, batch_04)
* refactor: replace wildcard imports with explicit ones (S2208, batch_04)
* Format imports so the CI fmt gate passes
* fix: import f64_req in inquiry.rs
* refactor: replace wildcard imports with explicit ones (S2208, batch_08)
* Restore imports that the cadcraft batch dropped so the engine compiles
Explicit import lists missed names the files still use. Restore them and
the test-module globs.
* refactor: replace wildcard imports with explicit ones (S2208, batch_07)
* Restore imports that the cadcraft batch dropped so the engine compiles
Explicit import lists missed names the files still use. Restore them and
the test-module globs.
* refactor: replace wildcard imports with explicit ones (S2208, batch_06)
* Restore imports that the cadcraft batch dropped so the engine compiles
The batch replaced glob imports with explicit lists that missed names
the files still use, and pointed some sub-module imports at the wrong
level. Restore the required imports and the test module globs.
* Format pedit_vertex imports so the CI fmt gate passes
* refactor: replace wildcard imports with explicit ones (S2208, batch_05)
* refactor: replace wildcard imports with explicit ones (S2208, batch_05)
* Format imports so the CI fmt gate passes
* refactor: replace wildcard imports with explicit ones (S2208, batch_01)
* refactor: replace wildcard imports with explicit ones (S2208, batch_01)
* Format imports so the CI fmt gate passes
* refactor: replace wildcard imports with explicit ones (S2208, batch_03)
* refactor: replace wildcard imports with explicit ones (S2208, batch_03)
* Format imports so the CI fmt gate passes
* refactor: replace wildcard imports with explicit ones (S2208, batch_00)
* refactor: replace wildcard imports with explicit ones (S2208, batch_00)
Explicit lists now resolve the names each file uses, and the test
module keeps its glob so it still sees the parent's items.
* Keep associative-array parameters when an xref is loaded (#943)
* xref load test: initialise Ctx's new bytes counter
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Brandon Thomas <echelon@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* PLOTWINDOW: pick both corners even with ORTHO on
PLOTWINDOW's opposite-corner prompt used Prompt::base, so the canvas bent
the picked point onto the nearest axis with ORTHOMODE on: the second corner
landed above/beside the first, the window had no width or height, and
set_plot_window refused it. The prompt now uses Prompt::corner, the flag
ZOOM Window, RECTANG and ARRAYRECT already use to keep a rectangle's
opposite corner free of ortho. The first corner sets the base as before, so
the rubber band and direct distance entry still work.
Regression test drives the interactive machine through snap_cursor with
ORTHOMODE on, picks two non-axis-aligned corners and checks the stored
window keeps both extents; an ordinary LINE prompt still follows ortho.
Fixes#1641
* docs: document the functions touched by #1641
CECOLOR now reads "BYLAYER", "BYBLOCK", the index as text ("1" after
"red") or "RGB:r,g,b" for a true colour, from getvar, LISP and the
SETVAR ? list, where it was the ACI number (256, 0, 1, or the nearest
index of a true colour). The header still keeps the index and
CECOLOR_RGB, so DXF output and new objects are unchanged.
SETVAR CECOLOR takes "RGB:r,g,b" too, so a value saved with getvar
can be set back, true colour included.
A dimension's block took a recolored copy named COMPARE_<tag>_D1, and
the DXF writer redraws a dimension whose block is not a *D block, so
saving the snapshot replaced geometry read from a file. The copy now
gets a free *D name.
A named block both drawings define was reused when its images and
data links had the same relative paths, even when they were relative
to different folders. These paths are now taken from each drawing's
folder before the blocks are compared.