blaise/.gitignore
Graeme Geldenhuys b4b43d6091 feat(rtl): Step 6 — pure Pascal StrUtils + ExpandFileName in SysUtils
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.
2026-05-14 10:33:38 +01:00

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/