Inverted CheckRuleFiles condition in SpeechRules::replace_single_char causes unicode-full.yaml to reload when CheckRuleFiles is "None"
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 1/5
- Geschätzter Aufwand
- Unter einer Stunde
- Anfängerfreundlichkeit
- 84/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- rust
- Bereich
- accessibility
Rechercherichtung
Lies src/speech.rs und vergleiche die Bedingung CheckRuleFiles in SpeechRules::replace_single_char mit den Prüfungen in SpeechRules::update und read_files. Ändere die Bedingung wie im Issue beschrieben und führe anschließend die relevanten Tests für das Laden von Regeldateien und das Ersetzen einzelner Zeichen aus. Fertig ist die Änderung, wenn "None" Dateizeitstempel ignoriert und "All" weiterhin Dateiänderungen erkennt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
In src/speech.rs, SpeechRules::replace_single_char has an inverted equality check when computing should_ignore_file_time:
let should_ignore_file_time = pref_manager.pref_to_string("CheckRuleFiles") == "All";
Every other rule loader in src/speech.rs (such as SpeechRules::update and read_files) uses != "All":
let should_ignore_file_time = pref_manager.pref_to_string("CheckRuleFiles") != "All";
Impact
- When
CheckRuleFiles: "None"(recommended for environments where rule files are static or loaded from in-memory archives/zip files):should_ignore_file_timeevaluates tofalseinstead oftrueinsidereplace_single_char.is_file_up_to_datechecks the file's modification timestamp on every character lookup that falls back tounicode-full.yaml(such as Mathematical Italic characters𝑥, 𝑎, 𝑏, 𝑐after canonicalization).- In environments where rule files are backed by an in-memory filesystem or lack valid modification timestamps (returning
UNIX_EPOCH),is_file_up_to_datereturnsfalseon every call, causing MathCAT to re-parse the ~6,500-entryunicode-full.yamlfile on every single character lookup (~30ms per character on mobile devices, adding 200–480ms of latency per expression or navigation step).
- When
CheckRuleFiles: "All":should_ignore_file_timeevaluates totrue, so edits tounicode-full.yamlare ignored instead of being reloaded.
Proposed Fix
In src/speech.rs inside SpeechRules::replace_single_char, change == "All" to != "All":
- let should_ignore_file_time = pref_manager.pref_to_string("CheckRuleFiles") == "All";
+ let should_ignore_file_time = pref_manager.pref_to_string("CheckRuleFiles") != "All";
- Vorherrschende Sprache
- Rust
- Sterne
- 131
- Forks
- 97
- Ø Merge
- 21 Std. 45 Min.
- Gemergte PRs (30 T.)
- 95
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus daisy/MathCAT
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
daisy/MathCAT#946 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
Ähnliche Issues
-
area:schema documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
ElectronicWave/Elemental#252 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
dekobon/big-code-analysis#1887 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Shell中文符号输入异常Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag