… | |
… | |
259 | |
259 | |
260 | while (<$fh>) { |
260 | while (<$fh>) { |
261 | s/\s+$//; |
261 | s/\s+$//; |
262 | if (/^end$/i) { |
262 | if (/^end$/i) { |
263 | last; |
263 | last; |
264 | } elsif (/^arch (\S+)$/) { |
264 | } elsif (/^arch (\S+)$/i) { |
265 | push @{ $arc{inventory} }, normalize_arch $parse_block->(_name => $1); |
265 | push @{ $arc{inventory} }, normalize_arch $parse_block->(_name => $1); |
266 | } elsif (/^lore$/) { |
266 | } elsif (/^lore$/i) { |
267 | while (<$fh>) { |
267 | while (<$fh>) { |
268 | last if /^endlore\s*$/i; |
268 | last if /^endlore\s*$/i; |
269 | $arc{lore} .= $_; |
269 | $arc{lore} .= $_; |
270 | } |
270 | } |
271 | } elsif (/^msg$/) { |
271 | } elsif (/^msg$/i) { |
272 | while (<$fh>) { |
272 | while (<$fh>) { |
273 | last if /^endmsg\s*$/i; |
273 | last if /^endmsg\s*$/i; |
274 | $arc{msg} .= $_; |
274 | $arc{msg} .= $_; |
275 | } |
275 | } |
276 | } elsif (/^(\S+)\s*(.*)$/) { |
276 | } elsif (/^(\S+)\s*(.*)$/) { |
… | |
… | |
299 | $arc{$name} = $arc; |
299 | $arc{$name} = $arc; |
300 | } |
300 | } |
301 | $prev = $arc; |
301 | $prev = $arc; |
302 | $more = undef; |
302 | $more = undef; |
303 | } elsif (/^arch (\S+)$/i) { |
303 | } elsif (/^arch (\S+)$/i) { |
|
|
304 | my $name = $1; |
304 | push @{ $arc{arch} }, normalize_arch $parse_block->(_name => $1); |
305 | my $arc = normalize_object $parse_block->(_name => $name); |
|
|
306 | |
|
|
307 | if ($more) { |
|
|
308 | $more->{more} = $arc; |
|
|
309 | } else { |
|
|
310 | push @{ $arc{arch} }, $arc; |
|
|
311 | } |
|
|
312 | $prev = $arc; |
|
|
313 | $more = undef; |
305 | } elsif (/^\s*($|#)/) { |
314 | } elsif (/^\s*($|#)/) { |
306 | # |
315 | # |
307 | } else { |
316 | } else { |
308 | warn "$path: unparseable top-level line '$_'"; |
317 | warn "$path: unparseable top-level line '$_'"; |
309 | } |
318 | } |