﻿#!/usr/bin/perl -w
use strict;
use warnings;
use utf8;
use open qw(:std :utf8);
use integer;


# Filter_4_03_insert_lb.pl
# 2010-04-06
# Wolfgang Schmidle


# text input

my @text;
while(<>) { push @text, $_; }


# go through the text

my $inTextContainer = 0;

my $i = 0;

foreach (@text) {

	$i++;

	if (/<(p|head|caption|description|variables)[ >]/) { $inTextContainer = 1; }

#	if (/xml:space="preserve"/) { $inTextContainer = 1; } # das ist in diesem Stadium Unsinn. Also:
	if (/<(note)[ >]/) { $inTextContainer = 1; }
	# Details für tables noch überlegen!


	if (m!</(p|head|caption|description|variables)>!) { $inTextContainer = 0; }
	if (m!</(note|xhtml:[a-z]+|handwritten)>!) { $inTextContainer = 0; }
	if (m!<handwritten xml:space="preserve"/>!) { $inTextContainer = 0; }

	# verwende die Version in Filter_var_einfuegen.pl ?
	# beachte aber: die letzte Zeile soll kein <lb/> bekommen, also die Zeilen mit  { $inTextContainer = 0; } nach vorne!

	next unless $inTextContainer;
	
	next if m!<lb/>!;
	next if m!<pb!;
	next if m!<anchor!;
	next if $text[$i] =~ m!<pb!;
	
	s!$! <lb/>!;
	s!- <lb/>!-<lb/>!;

	unless ($text[$i] =~ m!^ *<anchor!) {
		chomp;
	}
}


# geänderten Text ausgeben

print @text;

# TO DO:
