Carry out the call history section directives

A call history file is built from years of logs, so its section and
state columns carry old names, and the file says at the top what to do
about that. The four lines that say it were read and passed over.

All four are now carried out, in N1MM's order: !!MapOnSection!! stores
the old Ontario sections as ON, !!ValidateArrlSection!! drops a section
that is not one of N1MM's, !!GTA2GH_NT2TER!! stores GTA as GH and NT as
TER, and !!Validate50State!! keeps a state, turns a section into the
state it is in, or drops the value.

The section list is the one N1MM's call history reader validates
against, which is not the list its entry window offers: it holds the
retired GTA and NT, and leaves out ON. It sits beside the reader in
Nonemm.Core rather than with the contest lists, which are the entry
window's.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RoGtneMQaz4M9w7Kk49AVD
This commit is contained in:
2026-08-31 14:21:02 +00:00
parent 2eeda451c3
commit 76b57cee1d
5 changed files with 271 additions and 55 deletions

View File

@@ -390,17 +390,30 @@ contest. It is N1MM's format, so a file written for N1MM is read as it is:
`#` comments, `!!Order!!` naming the columns of the lines after it, semicolons
in preference to commas, and the directives that change what is stored —
`!!FourCharGridSq!!`, `!!NoLoc2AltGrid!!`, `!!MapStateToSect!!`,
`!!AppendUserText!!` and `!!NoAppendUserText!!`.
`!!AppendUserText!!`, `!!NoAppendUserText!!` and the four that clean up the
section and state columns.
Leaving the callsign box fills what the file knows into the exchange boxes that
are still empty. A box with something in it is left alone: what the other
station actually sends beats what somebody published months ago. The check
window gets a History column of matching calls.
The section-validating directives — `!!Validate50State!!`,
`!!ValidateArrlSection!!`, `!!MapOnSection!!`, `!!GTA2GH_NT2TER!!` — are read
and passed over rather than acted on. Throwing data away on a section list this
program does not hold would be worse than keeping it.
These files are built from years of logs, so the section and state columns
carry old names. Four directives say what to do about that, and all four are
carried out as they are read:
| Directive | What it does |
| --- | --- |
| `!!MapOnSection!!` | `GTA`, `GH`, `ONE`, `ONN` and `ONS` are stored as `ON` |
| `!!ValidateArrlSection!!` | a section that is not one of N1MM's is dropped |
| `!!GTA2GH_NT2TER!!` | `GTA` is stored as `GH`, `NT` as `TER` |
| `!!Validate50State!!` | the state column keeps one of the 50 states, turns a section into the state it is in, and drops the rest |
The section list is N1MM's, which is not the same list its entry window offers:
it holds the retired `GTA` and `NT` so a file carrying an old name is fixed
rather than thrown away, and it leaves out `ON`, so a file asking for both
`!!MapOnSection!!` and `!!ValidateArrlSection!!` ends with no section — which
is what N1MM does, and what the file's own author asked for.
### The check window