LibreCAD is a cross-platform 2D CAD program. It can read DXF/DWG, and write DXF/DWG/PDF/SVG files. It supports point/line/circle/ellipse/parabola/hyperbola/spline primitives. The GUI is highly customizable, and has dozens of translations.
This report summarizes scanner evidence for LibreCAD/LibreCAD, a C++ project with 6,535 GitHub stars. SynthScan examined 1,181,280 lines of code across 2681 source files, recording 868 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 0.8 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 788 finding(s).
Are imports declared and package/API names verified? 39 finding(s).
Are wrappers, guards, and repeated structures necessary? 93 finding(s).
Which changes need focused human review? 868 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 868 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CMakeLists.txt | 1 | cmake_minimum_required (VERSION 3.28) | COMMENT |
| LOW | CMakeLists.txt | 2601 | # A Catch2 listener that gives each test process a settings store of its own | COMMENT |
| LOW | snapcraft.yaml | 81 | #- librsvg2-bin | COMMENT |
| LOW | snapcraft.yaml | 101 | #- qt6-declarative-dev | COMMENT |
| LOW | tools/arabic-font-probe/main.cpp | 1 | /**************************************************************************** | COMMENT |
| LOW | tools/ttf2lff/main.cpp | 21 | ** Contact info@ribbonsoft.com if any conditions of this licensing are | COMMENT |
| LOW | tools/ttf2lff/main.cpp | 41 | #include <iomanip> | COMMENT |
| LOW | librecad/src/mac_arm_acle_prefix.h | 21 | **********************************************************************/ | COMMENT |
| LOW | librecad/src/ui/qg_actionhandler.cpp | 21 | ** along with this program; if not, write to the Free Software | COMMENT |
| LOW | librecad/src/ui/lc_actionhandlerfactory.cpp | 21 | * ******************************************************************************** | COMMENT |
| LOW | librecad/src/ui/lc_actionhandlerfactory.cpp | 41 | #include "lc_action_draw_circle_3points.h" | COMMENT |
| LOW | librecad/src/ui/lc_actionhandlerfactory.cpp | 61 | #include "lc_action_draw_line_radiant.h" | COMMENT |
| LOW | librecad/src/ui/lc_actionhandlerfactory.cpp | 81 | #include "lc_action_draw_star.h" | COMMENT |
| LOW | librecad/src/ui/lc_actionhandlerfactory.cpp | 101 | #include "lc_action_modify_line_join.h" | COMMENT |
| LOW | librecad/src/ui/lc_actionhandlerfactory.cpp | 121 | #include "lc_action_polyline_delete_node_between.h" | COMMENT |
| LOW | librecad/src/ui/lc_actionhandlerfactory.cpp | 141 | #include "lc_actioncontext.h" | COMMENT |
| LOW | librecad/src/ui/lc_actionhandlerfactory.cpp | 161 | #include "lc_actionlayerscmd.h" | COMMENT |
| LOW | librecad/src/ui/lc_actionhandlerfactory.cpp | 181 | #include "rs_actiondimdiametric.h" | COMMENT |
| LOW | librecad/src/ui/lc_actionhandlerfactory.cpp | 201 | #include "rs_actionlayersedit.h" | COMMENT |
| LOW | …n_options/lc_action_options_properties_filler_base.cpp | 21 | * ******************************************************************************** | COMMENT |
| LOW | …ui/action_options/selection/lc_selectwindowoptions.cpp | 81 | if (update){ | COMMENT |
| LOW | …ui/action_options/selection/lc_selectwindowoptions.cpp | 101 | // all = loadBool("All", true); | COMMENT |
| LOW | …ui/action_options/selection/lc_selectwindowoptions.cpp | 121 | // entityTypes << RS2::EntityArc; | COMMENT |
| LOW | …ui/action_options/selection/lc_selectwindowoptions.cpp | 141 | // entityTypes << RS2::EntityImage; | COMMENT |
| LOW | librecad/src/ui/not_used/lc_cadtoolbarinterface.cpp | 1 | #include <QMouseEvent> | COMMENT |
| LOW | librecad/src/ui/components/qg_scrollbar.cpp | 21 | #include <algorithm> | COMMENT |
| LOW | librecad/src/ui/components/lc_textedit.h | 21 | * USA. | COMMENT |
| LOW | librecad/src/ui/components/lc_textedit.cpp | 21 | * USA. | COMMENT |
| LOW | …tion_assistant/lc_relative_position_editing_widget.cpp | 21 | * ******************************************************************************** | COMMENT |
| LOW | …tion_assistant/lc_relative_position_editing_widget.cpp | 861 | // fixme - absolute x and y mode - bugs! | COMMENT |
| LOW | …recad/src/ui/components/creators/lc_creatorinvoker.cpp | 21 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | COMMENT |
| LOW | librecad/src/ui/view/qg_graphicview.cpp | 21 | ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | COMMENT |
| LOW | librecad/src/ui/view/qg_graphicview.cpp | 41 | #include "lc_action_modify_move_adjust.h" | COMMENT |
| LOW | librecad/src/ui/view/qg_graphicview.cpp | 61 | #include "rs_debug.h" | COMMENT |
| LOW | librecad/src/ui/view/tests/qg_scrollbar_band_tests.cpp | 21 | // thumb cut out: it shows the parts of the drawing's range outside the view. | COMMENT |
| LOW | librecad/src/ui/view/tests/lc_navtest_support.h | 21 | #ifndef LC_NAVTEST_SUPPORT_H | COMMENT |
| LOW | librecad/src/ui/view/tests/lc_scroll_beyond_tests.cpp | 21 | // the mouse alone, and place the point there. Every test here starts Draw Line, places | COMMENT |
| LOW | librecad/src/ui/dialogs/qg_dialogfactory.cpp | 41 | #include "qc_applicationwindow.h" | COMMENT |
| LOW | …alogs/settings/options_widget/lc_iconcolorsoptions.cpp | 21 | ******************************************************************************/ | COMMENT |
| LOW | …ogs/settings/options_widget/lc_widgetoptionsdialog.cpp | 21 | ** | COMMENT |
| LOW | …s/dimstyles/dimstyle_manager/lc_dlgdimstylemanager.cpp | 21 | * ******************************************************************************** | COMMENT |
| LOW | …tyle_manager/support/lc_dimstylepreviewgraphicview.cpp | 21 | * ******************************************************************************** | COMMENT |
| LOW | …logs/settings/options_general/qg_dlgoptionsgeneral.cpp | 21 | ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | COMMENT |
| LOW | …logs/settings/options_drawing/qg_dlgoptionsdrawing.cpp | 21 | ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | COMMENT |
| LOW | …logs/settings/options_drawing/qg_dlgoptionsdrawing.cpp | 41 | #include "lc_dimstylestreemodel.h" | COMMENT |
| LOW | …gs/options_drawing/tests/lc_dlgoptionsdrawingtests.cpp | 21 | * USA. | COMMENT |
| LOW | librecad/src/ui/dialogs/entity/lc_dlg_dimension.cpp | 21 | * ******************************************************************************** | COMMENT |
| LOW | …/ui/dialogs/entity/lc_hatchpropertieseditingwidget.cpp | 21 | * ******************************************************************************** | COMMENT |
| LOW | …ecad/src/ui/dialogs/entity/lc_dlg_entityproperties.cpp | 21 | * ******************************************************************************** | COMMENT |
| LOW | librecad/src/ui/dialogs/tests/lc_dialog_tests.cpp | 21 | * USA. | COMMENT |
| LOW | …d/src/ui/dialogs/tests/lc_language_selection_tests.cpp | 1 | // SPDX-License-Identifier: GPL-2.0-or-later | COMMENT |
| LOW | …ecad/src/ui/dialogs/creators/lc_dlg_widget_creator.cpp | 21 | * ******************************************************************************** | COMMENT |
| LOW | …alogs/actions/quick_selection/lc_dlgquickselection.cpp | 21 | * ******************************************************************************** | COMMENT |
| LOW | librecad/src/ui/dialogs/main/lc_dlgabout.cpp | 21 | ******************************************************************************/ | COMMENT |
| LOW | librecad/src/ui/main/qc_applicationwindow.h | 21 | ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | COMMENT |
| LOW | librecad/src/ui/main/lc_layouttabbar.cpp | 21 | * | COMMENT |
| LOW | librecad/src/ui/main/qc_mdiwindow.cpp | 21 | ** along with this program; if not, write to the Free Software | COMMENT |
| LOW | librecad/src/ui/main/qc_mdiwindow.cpp | 161 | m_graphicView->setPrintPreview(printPreview); | COMMENT |
| LOW | librecad/src/ui/main/qc_applicationwindow.cpp | 41 | #include <QMdiArea> | COMMENT |
| LOW | librecad/src/ui/main/qc_applicationwindow.cpp | 61 | #include "lc_action_block_library_insert.h" | COMMENT |
| 612 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | CMakeLists.txt | 118 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | librecad/src/lib/filters/tests/acis_wireframe_tests.cpp | 178 | // ── Byte-true SAB builder (mirrors TS simpleSabBytes) ─────────────────────── | COMMENT |
| MEDIUM | librecad/src/lib/filters/tests/acis_wireframe_tests.cpp | 570 | // ── Render tests: DRW_AcisBrep -> RS_* entities (4.8b) ─────────────────────── | COMMENT |
| MEDIUM | librecad/src/lib/filters/tests/dwg_smoke_tests.cpp | 9739 | // ── R2004+ section buffer-model regression pins (deep-review 2026-06-12) ────── | COMMENT |
| MEDIUM | …recad/src/lib/engine/document/lc_dwgadvancedmetadata.h | 4556 | // ── Cross-read parity: metadata-only family exposure (PR-4a/4c/5) ───── | COMMENT |
| MEDIUM | librecad/src/lib/engine/document/entities/rs_circle.cpp | 505 | // ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | librecad/src/lib/engine/document/entities/rs_circle.cpp | 507 | // ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | libraries/libdxfrw/src/drw_acis.h | 47 | // ── SAB low-level token/record model (sab.ts) ────────────────────────────── | COMMENT |
| MEDIUM | libraries/libdxfrw/src/drw_acis.h | 111 | // ── B-rep record graph (entities.ts) ─────────────────────────────────────── | COMMENT |
| MEDIUM | libraries/libdxfrw/src/drw_acis.h | 131 | // ── Extracted wireframe geometry (geometry.ts) ───────────────────────────── | COMMENT |
| MEDIUM | libraries/libdxfrw/src/drw_acis.cpp | 27 | // ── Layer 1: SAB byte reader (sab.ts) ────────────────────────────────────── | COMMENT |
| MEDIUM | libraries/libdxfrw/src/drw_acis.cpp | 233 | // ── Layer 3 helpers: graph navigation (geometry.ts) ──────────────────────── | COMMENT |
| MEDIUM | libraries/libdxfrw/src/drw_acis.cpp | 454 | // ── Layer 1 entry: drw_parseSab ──────────────────────────────────────────── | COMMENT |
| MEDIUM | libraries/libdxfrw/src/drw_acis.cpp | 482 | // ── Layer 2 entry: drw_buildAcisModel ────────────────────────────────────── | COMMENT |
| MEDIUM | libraries/libdxfrw/src/drw_acis.cpp | 521 | // ── Layer 3 entry: drw_extractAcisWireframe ──────────────────────────────── | COMMENT |
| MEDIUM | libraries/libdxfrw/src/drw_acis.cpp | 631 | // ── Convenience entry: drw_decodeAcisWireframe ───────────────────────────── | COMMENT |
| MEDIUM | scripts/dwg-review-lint.sh | 57 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/dwg-review-lint.sh | 59 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/dwg-review-lint.sh | 71 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/dwg-review-lint.sh | 73 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/dwg-review-lint.sh | 88 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/dwg-review-lint.sh | 90 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/dwg-review-lint.sh | 103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/dwg-review-lint.sh | 105 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/conformance/validate_slice.sh | 80 | # ========================================================================= | COMMENT |
| MEDIUM | scripts/conformance/validate_slice.sh | 82 | # ========================================================================= | COMMENT |
| MEDIUM | scripts/conformance/validate_slice.sh | 261 | # ========================================================================= | COMMENT |
| MEDIUM | scripts/conformance/validate_slice.sh | 263 | # ========================================================================= | COMMENT |
| MEDIUM | scripts/conformance/validate_slice.sh | 289 | # ========================================================================= | COMMENT |
| MEDIUM | scripts/conformance/validate_slice.sh | 291 | # ========================================================================= | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/postprocess-osx.sh | 4 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/build-osx.sh | 4 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/nightly-build-osx.sh | 4 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/create-osx-dmg.sh | 4 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/verify-osx-package.sh | 4 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/test_libdxfrw_cross_read_smoke.py | 3 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/dwg-fast-check.sh | 3 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/build-dmg.sh | 4 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/dwg_dxf_coverage_inventory.py | 3 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/test_dwg_cross_read_parity_inventory.py | 3 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/test-osx-package.sh | 4 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/test_dwg_version_inventory.py | 3 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/dwg_cross_read_parity_inventory.py | 3 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/libdxfrw_cross_read_smoke.py | 3 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/build-dmg-externalqt-clang.sh | 4 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/package-osx-app.sh | 4 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | scripts/msix/update-qt-third-party.py | 3 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | .github/workflows/msix-store-submit.yml | 2 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| MEDIUM | .github/workflows/text-foundations.yml | 1 | # This file is part of the LibreCAD project, a 2D CAD program. | COMMENT |
| MEDIUM | .github/workflows/dwg-dxf-verify.yml | 3 | # This file is part of the LibreCAD project, a 2D CAD program | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libraries/libdxfrw/src/drw_objects.h | 2360 | class DRW_ContextDataManager : public DRW_TableEntry { | CODE |
| LOW | scripts/run_external_oracles.py | 327 | def run_libredwg_open_receipt(fixture: dict[str, Any], fixture_path: Path, | CODE |
| LOW | scripts/run_external_oracles.py | 477 | def run_manifest_adapter_receipt(repo: Path, fixture: dict[str, Any], | CODE |
| LOW | scripts/run_external_oracles.py | 490 | def fixture_integrity_receipt(fixture: dict[str, Any], oracle_name: str, | CODE |
| LOW | scripts/test_angle_translation_catalogs.py | 49 | def test_angle_catalogs_include_all_derived_labels(self) -> None: | CODE |
| LOW | scripts/test_angle_translation_catalogs.py | 65 | def test_translations_preserve_numbered_arguments(self) -> None: | CODE |
| LOW | scripts/test_angle_translation_catalogs.py | 79 | def test_cursor_and_report_labels_agree(self) -> None: | CODE |
| LOW | scripts/test_angle_translation_catalogs.py | 104 | def test_derived_angle_names_are_distinct(self) -> None: | CODE |
| LOW | scripts/test_libdxfrw_cross_read_smoke.py | 42 | def test_fixture_manifest_covers_version_span(self) -> None: | CODE |
| LOW | scripts/test_libdxfrw_cross_read_smoke.py | 54 | def test_run_fixture_accepts_valid_dump(self) -> None: | CODE |
| LOW | scripts/test_libdxfrw_cross_read_smoke.py | 93 | def test_run_fixture_rejects_parse_failure(self) -> None: | CODE |
| LOW | scripts/test_libdxfrw_cross_read_smoke.py | 127 | def test_run_fixture_skips_missing_file(self) -> None: | CODE |
| LOW | scripts/test_libdxfrw_cross_read_smoke.py | 144 | def test_handle_digest_is_order_independent(self) -> None: | CODE |
| LOW⚡ | scripts/test_external_oracle_receipts.py | 146 | def test_default_fixture_without_tool_writes_skipped_receipt(self) -> None: | CODE |
| LOW⚡ | scripts/test_external_oracle_receipts.py | 155 | def test_require_oracle_escalates_missing_tool(self) -> None: | CODE |
| LOW⚡ | scripts/test_external_oracle_receipts.py | 160 | def test_stale_hash_creates_integrity_receipt_without_running_tool(self) -> None: | CODE |
| LOW⚡ | scripts/test_external_oracle_receipts.py | 170 | def test_magic_mismatch_creates_integrity_receipt_without_running_tool(self) -> None: | CODE |
| LOW⚡ | scripts/test_external_oracle_receipts.py | 178 | def test_unknown_and_duplicate_fixture_selectors_fail_before_receipts(self) -> None: | CODE |
| LOW⚡ | scripts/test_external_oracle_receipts.py | 186 | def test_path_escape_is_rejected_before_tool_execution(self) -> None: | CODE |
| LOW | scripts/test_external_oracle_receipts.py | 199 | def test_successful_open_keeps_failed_version_probe_as_diagnostic(self) -> None: | CODE |
| LOW | scripts/test_external_oracle_receipts.py | 213 | def test_nonzero_fatal_and_timeout_opens_have_distinct_results(self) -> None: | CODE |
| LOW | scripts/test_external_oracle_receipts.py | 230 | def test_dxf_fixture_uses_its_ezdxf_audit_adapter(self) -> None: | CODE |
| LOW | scripts/test_external_oracle_receipts.py | 246 | def test_missing_ezdxf_dependency_is_optional_tool_unavailable(self) -> None: | CODE |
| LOW | scripts/test_external_oracle_receipts.py | 260 | def test_ezdxf_audit_rejection_and_timeout_have_distinct_receipts(self) -> None: | CODE |
| LOW | scripts/test_external_oracle_receipts.py | 277 | def test_default_batch_selects_both_compatible_adapters(self) -> None: | CODE |
| LOW | scripts/test_external_oracle_receipts.py | 294 | def test_default_batch_filters_an_explicit_adapter_by_format(self) -> None: | CODE |
| LOW | scripts/test_external_oracle_receipts.py | 308 | def test_explicit_fixture_rejects_an_incompatible_adapter(self) -> None: | CODE |
| LOW | scripts/test_external_oracle_receipts.py | 315 | def test_atomic_write_replaces_only_its_receipt(self) -> None: | CODE |
| LOW | scripts/test_external_oracle_receipts.py | 332 | def test_producing_receipts_require_an_output_hash(self) -> None: | CODE |
| LOW | scripts/dwg_reference_coverage_inventory.py | 161 | def extract_class_table_names(text: str) -> set[str]: | CODE |
| LOW | scripts/dwg_reference_coverage_inventory.py | 165 | def extract_acadsharp_fixed_types(root: Path) -> dict[int, str]: | CODE |
| LOW | scripts/dwg_reference_coverage_inventory.py | 192 | def extract_acadsharp_custom_cases(root: Path) -> set[str]: | CODE |
| LOW⚡ | scripts/test_dwg_cross_read_parity_inventory.py | 47 | def test_callback_mapping_uses_exact_and_camel_case_routes(self) -> None: | CODE |
| LOW⚡ | scripts/test_dwg_cross_read_parity_inventory.py | 54 | def test_inline_override_is_counted(self) -> None: | CODE |
| LOW⚡ | scripts/test_dwg_cross_read_parity_inventory.py | 58 | def test_reference_json_keys_are_scoped_to_object_families(self) -> None: | CODE |
| LOW | scripts/test_dwg_cross_read_parity_inventory.py | 74 | def test_reference_fixed_routes_and_object_parser_ids(self) -> None: | CODE |
| LOW | scripts/test_dwg_cross_read_parity_inventory.py | 96 | def test_local_fixed_shell_routes_are_source_derived(self) -> None: | CODE |
| LOW | scripts/test_dwg_cross_read_parity_inventory.py | 130 | def test_missing_reference_still_generates_a_report(self) -> None: | CODE |
| LOW | scripts/test_dwg_version_inventory.py | 47 | def test_exact_extraction_rejects_function_name_prefixes(self) -> None: | CODE |
| LOW | scripts/test_dwg_version_inventory.py | 61 | def test_live_writer_dispatch_maps_all_supported_modern_versions(self) -> None: | STRING |
| LOW | scripts/test_dwg_version_inventory.py | 78 | def test_live_reader_dispatch_is_not_affected_by_exact_extraction(self) -> None: | STRING |
| LOW | scripts/test_dwg_version_inventory.py | 86 | def test_generated_reports_use_all_live_writer_versions(self) -> None: | STRING |
| LOW | scripts/test_dwg_version_inventory.py | 112 | def test_optional_sibling_inputs_do_not_change_source_version_set(self) -> None: | STRING |
| LOW | scripts/make_shp_fixtures.py | 190 | def build_multipointz_payload(points: list) -> bytes: | CODE |
| LOW | scripts/test_fixture_manifest.py | 54 | def test_current_default_fixtures_are_valid(self) -> None: | CODE |
| LOW | scripts/test_fixture_manifest.py | 57 | def test_default_dwg_magic_must_match_declared_version(self) -> None: | CODE |
| LOW | scripts/test_fixture_manifest.py | 74 | def test_empty_default_dwg_corpus_is_allowed(self) -> None: | CODE |
| LOW | scripts/test_fixture_manifest.py | 85 | def test_default_dxf_acadver_must_match_declared_version(self) -> None: | CODE |
| LOW | scripts/conformance/extract_spec.py | 285 | def _line_starts_with_type_only(line: str) -> bool: | CODE |
| LOW | scripts/conformance/extract_code.py | 65 | def _strip_string_and_comment(source: str) -> str: | CODE |
| LOW | scripts/conformance/extract_code.py | 107 | def _preprocess_dead_branches(text: str) -> str: | CODE |
| LOW | scripts/conformance/bounds.py | 58 | def _strip_string_and_comment(source: str) -> str: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/dwg_version_inventory.py | 30 | CODE | |
| LOW | scripts/dwg_version_inventory.py | 37 | CODE | |
| LOW | scripts/oracle_receipts.py | 30 | CODE | |
| LOW | scripts/run_external_oracles.py | 30 | CODE | |
| LOW | scripts/hash_fixtures.py | 30 | CODE | |
| LOW | scripts/dwgts_feature_parity_inventory.py | 30 | CODE | |
| LOW | scripts/dwg_inventory_common.py | 30 | CODE | |
| LOW | scripts/test_libdxfrw_cross_read_smoke.py | 23 | CODE | |
| LOW | scripts/test_external_oracle_receipts.py | 30 | CODE | |
| LOW | scripts/dwg_reference_coverage_inventory.py | 15 | CODE | |
| LOW | scripts/writer_support_inventory.py | 30 | CODE | |
| LOW | scripts/writer_support_inventory.py | 37 | CODE | |
| LOW | scripts/dwg_dxf_coverage_inventory.py | 30 | CODE | |
| LOW | scripts/generate_gap_report.py | 36 | CODE | |
| LOW | scripts/lao_cad_glossary_apply.py | 12 | CODE | |
| LOW | scripts/run_fixture_smoke.py | 30 | CODE | |
| LOW | scripts/dwgts_canon.py | 19 | CODE | |
| LOW | scripts/test_dwg_cross_read_parity_inventory.py | 23 | CODE | |
| LOW | scripts/audit_diff.py | 30 | CODE | |
| LOW | scripts/dwgts_oracle.py | 23 | CODE | |
| LOW | scripts/dwgts_oracle.py | 26 | CODE | |
| LOW | scripts/test_dwg_version_inventory.py | 23 | CODE | |
| LOW | scripts/make_shp_fixtures.py | 72 | CODE | |
| LOW | scripts/test_fixture_manifest.py | 30 | CODE | |
| LOW | scripts/dwg_cross_read_parity_inventory.py | 32 | CODE | |
| LOW | scripts/libdxfrw_cross_read_smoke.py | 33 | CODE | |
| LOW | scripts/validate_fixture_manifest.py | 30 | CODE | |
| LOW | scripts/dwgts_json_diff.py | 15 | CODE | |
| LOW | scripts/conformance/check_shared_bodies.py | 13 | CODE | |
| LOW | scripts/conformance/extract_spec.py | 25 | CODE | |
| LOW | scripts/conformance/extract_code.py | 50 | CODE | |
| LOW | scripts/conformance/extract_code.py | 54 | CODE | |
| LOW | scripts/conformance/tag_corpus_provenance.py | 23 | CODE | |
| LOW | scripts/conformance/gen_progress.py | 15 | CODE | |
| LOW | scripts/conformance/conformance_stats.py | 6 | CODE | |
| LOW | scripts/conformance/bounds.py | 33 | CODE | |
| LOW | scripts/conformance/build_ledger.py | 29 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/arabic-font-probe/verify_cmap.py | 49 | CODE | |
| LOW | scripts/run_external_oracles.py | 434 | CODE | |
| LOW | scripts/test_angle_translation_catalogs.py | 29 | CODE | |
| LOW | scripts/test_angle_translation_catalogs.py | 49 | CODE | |
| LOW | scripts/test_angle_translation_catalogs.py | 79 | CODE | |
| LOW | scripts/dwgts_feature_parity_inventory.py | 72 | CODE | |
| LOW | scripts/dwgts_feature_parity_inventory.py | 103 | CODE | |
| LOW | scripts/dwg_inventory_common.py | 88 | CODE | |
| LOW | scripts/dwg_inventory_common.py | 107 | CODE | |
| LOW | scripts/dwg_inventory_common.py | 323 | CODE | |
| LOW | scripts/dwg_reference_coverage_inventory.py | 48 | CODE | |
| LOW | scripts/ezdxf_audit.py | 55 | CODE | |
| LOW | scripts/ezdxf_audit.py | 99 | CODE | |
| LOW | scripts/generate_gap_report.py | 111 | CODE | |
| LOW | scripts/lao_cad_glossary_apply.py | 322 | CODE | |
| LOW | scripts/dwgts_canon.py | 121 | CODE | |
| LOW | scripts/dwgts_oracle.py | 115 | CODE | |
| LOW | scripts/dwgts_oracle.py | 137 | CODE | |
| LOW | scripts/dwg_cross_read_parity_inventory.py | 137 | CODE | |
| LOW | scripts/dwg_cross_read_parity_inventory.py | 446 | CODE | |
| LOW | scripts/validate_fixture_manifest.py | 94 | CODE | |
| LOW | scripts/validate_fixture_manifest.py | 171 | CODE | |
| LOW | scripts/dwgts_json_diff.py | 75 | CODE | |
| LOW | scripts/msix/update-qt-third-party.py | 118 | CODE | |
| LOW | scripts/conformance/extract_spec.py | 302 | CODE | |
| LOW | scripts/conformance/extract_code.py | 65 | CODE | |
| LOW | scripts/conformance/extract_code.py | 107 | CODE | |
| LOW | scripts/conformance/extract_code.py | 174 | CODE | |
| LOW | scripts/conformance/extract_code.py | 359 | CODE | |
| LOW | scripts/conformance/bounds.py | 58 | CODE | |
| LOW | scripts/conformance/bounds.py | 133 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | librecad/src/lib/information/rs_information.cpp | 462 | // issue #484 , quadratic intersection solver is not robust enough for quadratic-quadratic | COMMENT |
| MEDIUM⚡ | librecad/src/lib/information/rs_information.cpp | 462 | // issue #484 , quadratic intersection solver is not robust enough for quadratic-quadratic | COMMENT |
| MEDIUM⚡ | librecad/src/lib/information/rs_information.cpp | 463 | // TODO, implement a robust algorithm for quadratic based solvers, and detecting entity type | COMMENT |
| MEDIUM | …rc/lib/engine/document/textstyles/lc_textstylelist.cpp | 129 | // NFC-normalize both sides for robust matching of CJK / accented names. | COMMENT |
| MEDIUM | scripts/dwg-review-lint.sh | 3 | # dwg-review-lint.sh — static-analysis harness for LibreCAD's DWG/DXF subsystem. | COMMENT |
| MEDIUM | scripts/dwgts_oracle.py | 116 | """Count group-0 entity names in a DXF (robust text scan, no ezdxf needed).""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/BUILD_WINDOWS_README.md | 191 | ### Step 1: Dependency Check | COMMENT |
| LOW⚡ | scripts/BUILD_WINDOWS_README.md | 196 | ### Step 2: Project Build | COMMENT |
| LOW⚡ | scripts/BUILD_WINDOWS_README.md | 201 | ### Step 3: Qt Deployment | COMMENT |
| LOW⚡ | scripts/BUILD_WINDOWS_README.md | 205 | ### Step 4: Resource Synchronization | COMMENT |
| LOW⚡ | scripts/BUILD_WINDOWS_README.md | 213 | ### Step 5: Version Extraction & NSIS Packaging | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/ezdxf_audit.py | 34 | except Exception as exc: # pragma: no cover - environment guard | CODE |
| LOW | scripts/ezdxf_audit.py | 75 | except Exception as exc: | CODE |
| LOW | scripts/ezdxf_audit.py | 80 | except Exception as exc: | CODE |
| LOW | scripts/dwgts_oracle.py | 86 | except Exception: | CODE |
| LOW | scripts/dwgts_oracle.py | 120 | except Exception: | CODE |
| LOW | scripts/dwgts_json_diff.py | 79 | except Exception as ex: # noqa: BLE001 | CODE |
| MEDIUM | scripts/dwgts_json_diff.py | 60 | def _num_eq(a, b, atol): | CODE |
| LOW | scripts/conformance/check_shared_bodies.py | 35 | except Exception: | CODE |
| LOW | scripts/conformance/tag_corpus_provenance.py | 79 | except Exception: | CODE |
| LOW | scripts/conformance/conformance_stats.py | 35 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/ezdxf_audit.py | 66 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/conformance/build_ledger.py | 126 | return (None, None) # seed slice keeps this null; extract_code has the true set | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/dwg-validate.sh | 14 | # Usage: | COMMENT |
| LOW | scripts/oda-validate.sh | 10 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …roperties/string/lc_property_qstring_lineedit_view.cpp | 49 | const QByteArray LC_PropertyQStringLineEditView::ATTR_PLACEHOLDER = QByteArrayLiteral("placeholder"); | CODE |