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
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, remotegitea.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.