#!/usr/bin/perl
# (c) 2000 Norbert Klasen <klasen@zdv.uni-tuebingen.de>
# converts LDIF in latin1 to utf8

use Unicode::String qw(utf8 latin1);
use MIME::Base64;

$line = <>;
while (defined($line)) {
	$readahead = <>;
	if ( $line =~ /^(\w+):: (.*)$/ ) {
		if ( $1 =~ /(certificate|jpegphoto)/i ) {
			#true binary attributes
			print $line;
		} else {
			$base64 = $2;
			while ( $readahead =~ s/^ // ) {
				#base64 continues
				chomp($readahead);
				$base64 .= $readahead;
				$readahead = <>;
			}
			#XXX wrap lines on output
			print "$1:: ",encode_base64(latin1(decode_base64($base64)), ""),"\n";
			#eof reached
			exit unless $readahead;
		}
	} else {
		print $line;
	}
	$line = $readahead;
}
