diff --git a/metar.html b/metar.html index 15e00e5..14d10e7 100644 --- a/metar.html +++ b/metar.html @@ -737,22 +737,31 @@ // Section 1: Airport, Time, Auto let airportTimeAutoRaw = []; let airportTimeAutoDecoded = []; + let preambleEnded = false; - if (parts[index] && parts[index].length === 4 && parts[index].match(/^[A-Z][A-Z0-9]{3}$/)) { - airportTimeAutoRaw.push(parts[index]); - airportTimeAutoDecoded.push(decodeAirport(parts[index], metarString)); - index++; - } - if (parts[index] && parts[index].endsWith('Z')) { - airportTimeAutoRaw.push(parts[index]); - airportTimeAutoDecoded.push(decodeTime(parts[index])); - index++; - } - if (parts[index] && parts[index] === 'AUTO') { - airportTimeAutoRaw.push(parts[index]); - airportTimeAutoDecoded.push("AUTO: Fully automated observation"); - index++; + while(index < parts.length && !preambleEnded) { + const part = parts[index]; + if (part.length === 4 && part.match(/^[A-Z][A-Z0-9]{3}$/)) { + airportTimeAutoRaw.push(part); + airportTimeAutoDecoded.push(decodeAirport(part, metarString)); + index++; + } else if (part.endsWith('Z')) { + airportTimeAutoRaw.push(part); + airportTimeAutoDecoded.push(decodeTime(part)); + index++; + } else if (part === 'AUTO') { + airportTimeAutoRaw.push(part); + airportTimeAutoDecoded.push("AUTO: Fully automated observation"); + index++; + } else if (part.match(/^CC[A-Z]$/)) { + airportTimeAutoRaw.push(part); + airportTimeAutoDecoded.push(`${part}: Correction to the report`); + index++; + } else { + preambleEnded = true; + } } + if (airportTimeAutoRaw.length > 0) { sections.push({ raw: airportTimeAutoRaw.join(' '),