Files
roafacturare/docs/raport_sweep_encoding.md
Marius Mutu d9f5ca4226 docs: planurile, proiectarile si rapoartele de lucru intra in versionare
Folderul docs\ era pana acum in afara oricarui control de versiuni - nici git,
nici SVN - desi contine planurile pe puncte, proiectarile si rapoartele de
cercetare pe care se sprijina modificarile din cod. O stergere acolo era
definitiva.

Fisierele intermediare (handoff-uri intre sesiuni, diff-uri deja aplicate) au
fost sterse inainte, nu versionate: ce era durabil in ele a intrat in antetele
fisierelor de test la care se refereau.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SN8snvkk94KuhWwoXUUey3
2026-08-11 22:17:17 +03:00

5.1 KiB

Sweep encoding — fisiere text FoxBin2Prg (.vc2/.sc2/.fr2/.mn2/.lb2/.pj2/.prg)

Scop: cautare exhaustiva, pe octeti, a semnaturilor de stricare encoding (EF BF BD / U+FFFD, mojibake UTF-8 cu lead-byte C3/C4/C5/C8, BOM EF BB BF la inceput de fisier) in toate fisierele text urmarite de git, in ambele arbore-uri:

  • D:\ROA\ROAFACTURARE (repo principal, remote gitea.romfast.ro:romfast/roafacturare.git)
  • D:\ROA\ROAFACTURARE\COMUN (repo separat, gitea.romfast.ro:romfast/comun.git)

Acoperire

Repo Fisiere .vc2/.sc2/.fr2/.mn2/.lb2/.pj2/.prg scanate
ROAFACTURARE (principal) 75 (case-insensitive, verificat separat ca nu exista variante .PRG majuscul scapate)
COMUN 631 (621 din glob case-sensitiv + 10 .PRG majuscul gasite separat: programe/obj2arr.PRG, utile/hpdf/_libpdf.PRG, utile/hpdf/build_err_msgs.PRG, utile/nfXml/nfxmlCREATE.PRG, utile/nfXml/nfXmlMap.PRG, utile/nfXml/nfxmlread.PRG, utile/web/wwapi.PRG, utile/web/wwConfig.PRG, utile/web/wwHttp.PRG, utile/web/wwutils.PRG)

Metoda: scan Perl byte-safe (<:raw, LC_ALL=C) pe continutul curent (working tree = HEAD, fara modificari necomise in niciunul din cele doua repo-uri la momentul scanarii). Niciun blob nu a fost extras cu > din PowerShell (doar Bash/git cat-file, cum s-a cerut).

Rezultat: repo principal ROAFACTURARE

Zero fisiere afectate. Nicio secventa EF BF BD, niciun mojibake C3/C4/C5/C8 + continuare, niciun BOM, in niciunul din cele 75 de fisiere.

Rezultat: COMUN

5 fisiere din 631 au declansat cel putin un semnal. Verificate individual, pe obiect/ context si istoric (git log -L), rezultatul e:

Fisier Semnal Nr. Cauza reala Commit Verdict
clase/ofacturare_comun.vc2 EF BF BD (U+FFFD) 12 Stricare certa - diacritice cp1250 inlocuite cu U+FFFD (Marcheazǎ→ďż˝, etc.) 13b4f65 Deja cunoscut si alocat — restaurarea o face s4fix-butoane, care detine fisierul. Nu l-am atins (doi scriitori pe acelasi fisier ar fi produs conflict).
clase/ferestre_seturi_indicatori.vc2 mojibake (fals-pozitiv) 8 Linia 5188, tag <sit_titlu>: text UTF-8 legitim ("Situaţiile financiare anuale încheiate...", pentru o declaratie ANAF/XML care cere UTF-8) inserat deliberat intr-un fisier altfel cp1250 — VFP nu impune o singura codare per fisier, doar stocheaza octetii asa cum au fost tastati/lipiti 2f59024 (commit-ul initial care a adus fisierul in git) Fals pozitiv. Neschimbat de la primul commit din git — nu e o regresie introdusa de vreun commit urmarit.
programe/oproceduri_comune.prg mojibake (fals-pozitiv) 1 Linia 5266: STRTRAN(lcText, "Ă", "A") — o functie de normalizare/eliminare diacritice care trateaza EXPLICIT mai multe variante de text deja-stricat primit din surse externe; litera UTF-8 Ă e parte din tabelul de inlocuiri, nu o stricare 2f59024 Fals pozitiv. Neschimbat de la primul commit; codul e literal despre curatarea altor stricari, nu e el insusi stricat.
utile/Menu/menutool.vc2 mojibake (fals-pozitiv) 162 (122 linii) Clasa terta _menuinfo, comentarii in chineza (encoding GBK) — octetii GBK se suprapun coincidental peste tiparul C3/C4/C5/C8 + continuare cautat pentru cp1250/UTF-8; nu are nicio legatura cu diacritice romanesti 2f59024 — fisierul are o singura intrare in tot istoricul git (import initial, niciodata modificat) Fals pozitiv / afara din scop. Cod tert neatins vreodata.
utile/excel/ExcelXML.prg EF BF BD (U+FFFD) 52 Comentarii in portugheza intr-o biblioteca terta ("Definição de bordas...", "Não aplica os estilos...") — caracterele portugheze au fost inlocuite cu U+FFFD deja inainte de primul commit vizibil in git 2f59024 (prezent inca de la import; nu exista commit anterior de investigat in acest istoric) Stricare pre-existenta, in afara ferestrei investigabile. Nu provine dintr-un commit urmarit (SVN sau sursa originala, inainte de tracking-ul git). Doar comentarii, cod tert, fara text romanesc/UI. Nu am gasit un commit "vinovat" pentru ca nu exista unul in istoricul disponibil.

Nicio secventa BOM (EF BB BF) la inceputul vreunui fisier, in niciunul din cele 706 fisiere (75 + 631).

Concluzie

In afara de clase/ofacturare_comun.vc2 (deja identificat si alocat lui s4fix-butoane), sweep-ul nu a gasit nicio alta regresie de encoding introdusa de vreun commit in istoricul git al celor doua repo-uri. Cele 4 fisiere ramase sunt fie fals-pozitive ale euristicii (text UTF-8 legitim/intentionat, cod care proceseaza explicit variante de mojibake, sau comentarii intr-o alta limba/encoding straina de cp1250-ul romanesc), fie o stricare deja prezenta la momentul primului commit care a adus fisierul in git (2f59024), deci in afara ferestrei pe care o putem bisecta.

Raport gol pe restul arborelui = rezultat bun: nu s-a mai lovit acelasi bug (U+FFFD prin suprascriere cp1250) in alta parte.

Fara nicio scriere in arbore, fara write-back, fara pornire VFP — doar investigatie read-only, conform cerintei.