prop/test
Graham McIntire 265669fc3a
Fix ADIF parser crash on records with multi-byte UTF-8 characters
Regex.scan with `return: :index` reports BYTE offsets, but String.slice/3
uses CHARACTER offsets. When a record contained a multi-byte UTF-8
character in an earlier field (e.g. "café" in NOTES), every subsequent
field's slice shifted one byte left, eventually landing on a literal
">" that crashed String.to_integer/1 with ArgumentError.

Switch to :binary.part/3 which is byte-based and matches what Regex.scan
reports. Also simplify the value offset calculation to use the scanned
tag_len directly instead of re-splitting the tag text. Reproduced in a
new regression test.

Prod stack trace: AdifImport.parse_fields/1 crashed on upload with
binary_to_integer(">") -- a FreeDV/N1MM logger that embedded UTF-8
characters in a NOTES field triggered it.
2026-04-12 15:13:59 -05:00
..
microwaveprop Fix ADIF parser crash on records with multi-byte UTF-8 characters 2026-04-12 15:13:59 -05:00
microwaveprop_web Add comma separators to MHz frequencies on beacon pages 2026-04-11 09:37:26 -05:00
mix/tasks fix enrichment 2026-04-02 15:30:41 -05:00
support Fix all remaining credo --strict issues (0 issues) 2026-04-12 10:26:53 -05:00
test_helper.exs Exclude slow GRIB2 fixture tests by default (81s -> 16s) 2026-03-31 10:00:13 -05:00