tools/check_nfalle.py: Scan gegen die \n-Falle — Projekt ist sauber
Auftrag "ueberpruefe alle dateien auf \n-Falle". Die Falle: ueber ein
Shell-Heredoc geschriebener Code macht aus einem gemeinten \n einen ECHTEN
Zeilenumbruch mitten im String-Literal. Heute zweimal passiert (Telegram-Text
in engine.py, Reminder-Eintrag in measurement_reminder.py).
Der Scan prueft in beide Richtungen:
A) kompiliert alle .py (161 Dateien) — sauber
B) JS: unabgeschlossene String-Literale — app.js sauber
C) UMGEKEHRT: literales \n als sichtbarer Text in HTML-title= und Markdown
— alle sauber
D) Signatur der beiden heutigen Faelle (Zeile endet offen, naechste besteht
nur aus einem Quote) — keine
⚠ Fehlalarm im Scanner selbst gefunden und behoben: Quotes zu ZAEHLEN meldet
'"' als offenes Literal (gueltiges JS mit einem Anfuehrungszeichen darin, real
in app.js). Der Scan verfolgt jetzt zeichenweise den AKTIVEN Quote-Typ.
Die betroffene app.js-Stelle trotzdem aufgeraeumt: schliessendes
Anfuehrungszeichen jetzt als U+201C statt ueber eine Konkatenation mit '"'.
Regel in CLAUDE.md ergaenzt: mehrzeilige Strings mit \n nicht per Heredoc
schreiben, sondern ueber den Edit-Weg.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
b858ae9aa2
commit
5a89544a27
+5
-1
@@ -275,9 +275,13 @@ function renderVerdict(v, snap) {
|
||||
const top = (bm.top || []).map(x => `${x.grund} ${pc(x.n)} %`).join(" · ");
|
||||
blkEl.textContent = `⛔ heute ${pc(bm.frei)} % ohne Block`
|
||||
+ (top ? ` · ${top}` : "");
|
||||
// ⚠ Schliessendes Anführungszeichen als „ “ (U+201C), NICHT über eine
|
||||
// Konkatenation mit '"' — die war valide, aber schwer lesbar und lässt
|
||||
// jeden Quote-Zähler auflaufen (der \n-Scan hat sie als offenes Literal
|
||||
// gemeldet).
|
||||
blkEl.title = "Welches Gate hält die Empfehlung gerade zurück — über den "
|
||||
+ "heutigen Tag gezählt. Ohne diese Zeile war „warum gab es so wenige "
|
||||
+ "Empfehlungen?" + '"' + " nur per Datenbank-Abfrage zu beantworten.";
|
||||
+ "Empfehlungen?“ nur per Datenbank-Abfrage zu beantworten.";
|
||||
} else {
|
||||
blkEl.textContent = "";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user