use utf8;
use warnings; no warnings "redefine";
use strict;

use Fehler qw(report_fehler problem);
use Loader qw(add_land edit_land list_laender log_view line_in);
use Dbase::Help qw(qquote DoFn DoSelect);

## 1: Return
sub edit_laender($;$) {
	my($flag,$kn) = @_;
	$flag = 0 unless $flag;

	while(1) {
		my $act = line_in "$kn Länder >";
		last unless $act;
		if($act eq "?") {
			print <<END;
l    auflisten
a    neu anlegen
LAND editieren

Bekannte Länder:
END
			my $len=0;
			my $res = DoSelect {
				my($kn) = @_;
				if(length($kn)+$len > 70) {
						print "\n" if $len;
						$len=0;
				} else {
						print " " if $len;
						$len ++;
				}
				print "$kn";
				$len += length($kn);
			} "select land.iso2 from land order by iso2"
				or print "(keine)\n";
			print "\n" if $len;
			next;
		}
		if($act eq "H") { log_view($kn,"land"); next; }
		if($act eq "l") { list_laender(); next; }
		if($act eq "a") { add_land(); next; }
		my($force) = ($act =~ s/^(!)?//);
		if($act !~ /^\d+$/) {
			my $id = DoFn("select id from land where iso2=${\qquote $act} or iso3=${\qquote $act} or kfz=${\qquote $act} or name=${\qquote $act}");
			problem "Dieses Land kenne ich nicht",$act
				unless defined $id;
			$act = $id;
		}
		return $act if $flag & 1 and not $force;
		edit_land($act,$kn);
		
		next; fehler: report_fehler(4);
	}
	undef;
}

1;
