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(' '),