Rewrites strutils.pas from an empty stub into a complete pure Blaise Pascal implementation with no external C dependencies. All helpers previously planned for blaise_str.pas are implemented directly in StrUtils using only compiler built-ins (Length, Pos, LowerCase, Copy, SetLength, PosEx). - ContainsStr/ContainsText, StartsStr/StartsText, EndsStr/EndsText - LeftStr, RightStr, MidStr - IndexStr, IndexText - ReplaceStr, ReplaceText - DupeString, ReverseString, StuffString - TrimLeft, TrimRight - PadLeft, PadRight - CountOccurrences, RemovePrefix, RemoveSuffix - IsEmptyOrWhitespace - JoinStr - TStringBuilder — efficient incremental string builder (mirrors TIRBuffer) Adds ExpandFileName to sysutils.pas as a pure Pascal path normaliser that resolves '.' and '..' segments without symlink following, matching Delphi/FPC behaviour. Fixes cp.test.multiwrite.pas: unqualified CountOccurrences calls now use Self. prefix to prevent name shadowing by StrUtils.CountOccurrences, which has reversed parameter order (Sub, S vs Haystack, Needle). Adds cp.test.strutils.pas (IR + type-check unit tests) and cp.test.e2e.strutils.pas (compile→run E2E tests) covering all new functions. Total test count: 1698. Fixpoint verified at stage-3/stage-4.
75 lines
865 B
Plaintext
75 lines
865 B
Plaintext
# Local binary release archives (not tracked; see releases/ directory)
|
|
releases/
|
|
|
|
# FPC compiled output
|
|
*.ppu
|
|
*.o
|
|
*.a
|
|
*.or
|
|
*.res
|
|
*.rst
|
|
*.s
|
|
|
|
# Shared / dynamic libraries
|
|
*.so
|
|
*.so.*
|
|
*.dylib
|
|
*.dll
|
|
|
|
# Static libraries
|
|
*.lib
|
|
|
|
# PasBuild build output (per-module target/ directories)
|
|
target/
|
|
|
|
# QBE build artefacts (source is vendored; binary is built locally)
|
|
vendor/qbe/*.o
|
|
vendor/qbe/qbe
|
|
vendor/qbe/amd64/*.o
|
|
vendor/qbe/arm64/*.o
|
|
vendor/qbe/rv64/*.o
|
|
|
|
# FPC unit cache directories
|
|
lib/
|
|
units/
|
|
|
|
# PasBuild output
|
|
*.pbc
|
|
|
|
# Debug symbols
|
|
*.dbg
|
|
*.opdf
|
|
|
|
# Editor and IDE
|
|
.vscode/settings.json
|
|
.vscode/launch.json
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
.idea/
|
|
*.iml
|
|
*.ipr
|
|
*.iws
|
|
|
|
# macOS
|
|
.DS_Store
|
|
.AppleDouble
|
|
.LSOverride
|
|
|
|
# Windows
|
|
Thumbs.db
|
|
ehthumbs.db
|
|
Desktop.ini
|
|
|
|
# Linux
|
|
.directory
|
|
|
|
# Temporary files
|
|
*.tmp
|
|
*.bak
|
|
*.orig
|
|
|
|
# Claude Code session notes — not for version control
|
|
CLAUDE.md
|
|
.ide/
|