--- kazehakase-0.5.4.orig/config.guess
+++ kazehakase-0.5.4/config.guess
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
 
-timestamp='2007-03-06'
+timestamp='2008-01-23'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -56,8 +56,8 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -330,7 +330,7 @@
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
-    i86pc:SunOS:5.*:*)
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
@@ -532,7 +532,7 @@
 		echo rs6000-ibm-aix3.2
 	fi
 	exit ;;
-    *:AIX:*:[45])
+    *:AIX:*:[456])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
@@ -793,12 +793,15 @@
 	exit ;;
     *:Interix*:[3456]*)
     	case ${UNAME_MACHINE} in
-	    x86) 
+	    x86)
 		echo i586-pc-interix${UNAME_RELEASE}
 		exit ;;
 	    EM64T | authenticamd)
 		echo x86_64-unknown-interix${UNAME_RELEASE}
 		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
 	esac ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
@@ -833,7 +836,14 @@
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
 	exit ;;
     avr32*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -954,8 +964,8 @@
     x86_64:Linux:*:*)
 	echo x86_64-unknown-linux-gnu
 	exit ;;
-    xtensa:Linux:*:*)
-    	echo xtensa-unknown-linux-gnu
+    xtensa*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     i*86:Linux:*:*)
 	# The BFD linker knows what the default object file format is, so
@@ -1474,9 +1484,9 @@
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 and
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
--- kazehakase-0.5.4.orig/config.sub
+++ kazehakase-0.5.4/config.sub
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
 
-timestamp='2007-01-18'
+timestamp='2008-01-16'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -72,8 +72,8 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -369,10 +369,14 @@
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-	| xstormy16-* | xtensa-* \
+	| xstormy16-* | xtensa*-* \
 	| ymp-* \
 	| z8k-*)
 		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
 	386bsd)
@@ -443,6 +447,14 @@
 		basic_machine=ns32k-sequent
 		os=-dynix
 		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
@@ -475,8 +487,8 @@
 		basic_machine=craynv-cray
 		os=-unicosmp
 		;;
-	cr16c)
-		basic_machine=cr16c-unknown
+	cr16)
+		basic_machine=cr16-unknown
 		os=-elf
 		;;
 	crds | unos)
@@ -668,6 +680,14 @@
 		basic_machine=m68k-isi
 		os=-sysv
 		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	m88k-omron*)
 		basic_machine=m88k-omron
 		;;
@@ -683,6 +703,10 @@
 		basic_machine=i386-pc
 		os=-mingw32
 		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
 	miniframe)
 		basic_machine=m68000-convergent
 		;;
@@ -809,6 +833,14 @@
 		basic_machine=i860-intel
 		os=-osf
 		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	pbd)
 		basic_machine=sparc-tti
 		;;
@@ -1017,6 +1049,10 @@
 		basic_machine=tic6x-unknown
 		os=-coff
 		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
 	tx39)
 		basic_machine=mipstx39-unknown
 		;;
--- kazehakase-0.5.4.orig/intltool-extract
+++ kazehakase-0.5.4/intltool-extract
@@ -0,0 +1,861 @@
+#!/usr/bin/perl -w 
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4  -*-
+
+#
+#  The Intltool Message Extractor
+#
+#  Copyright (C) 2000-2001, 2003 Free Software Foundation.
+#
+#  Intltool is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License as
+#  published by the Free Software Foundation; either version 2 of the
+#  License, or (at your option) any later version.
+#
+#  Intltool is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software
+#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#  As a special exception to the GNU General Public License, if you
+#  distribute this file as part of a program that contains a
+#  configuration script generated by Autoconf, you may include it under
+#  the same distribution terms that you use for the rest of that program.
+#
+#  Authors: Kenneth Christiansen <kenneth@gnu.org>
+#           Darin Adler <darin@bentspoon.com>
+#
+
+## Release information
+my $PROGRAM      = "intltool-extract";
+my $PACKAGE      = "intltool";
+my $VERSION      = "0.36.2";
+
+## Loaded modules
+use strict; 
+use File::Basename;
+use Getopt::Long;
+
+## Scalars used by the option stuff
+my $TYPE_ARG	= "0";
+my $LOCAL_ARG	= "0";
+my $HELP_ARG 	= "0";
+my $VERSION_ARG = "0";
+my $UPDATE_ARG  = "0";
+my $QUIET_ARG   = "0";
+my $SRCDIR_ARG	= ".";
+
+my $FILE;
+my $OUTFILE;
+
+my $gettext_type = "";
+my $input;
+my %messages = ();
+my %loc = ();
+my %count = ();
+my %comments = ();
+my $strcount = 0;
+
+my $XMLCOMMENT = "";
+
+## Use this instead of \w for XML files to handle more possible characters.
+my $w = "[-A-Za-z0-9._:]";
+
+## Always print first
+$| = 1;
+
+## Handle options
+GetOptions (
+	    "type=s"     => \$TYPE_ARG,
+            "local|l"    => \$LOCAL_ARG,
+            "help|h"     => \$HELP_ARG,
+            "version|v"  => \$VERSION_ARG,
+            "update"     => \$UPDATE_ARG,
+	    "quiet|q"    => \$QUIET_ARG,
+	    "srcdir=s"	 => \$SRCDIR_ARG,
+            ) or &error;
+
+&split_on_argument;
+
+
+## Check for options. 
+## This section will check for the different options.
+
+sub split_on_argument {
+
+    if ($VERSION_ARG) {
+        &version;
+
+    } elsif ($HELP_ARG) {
+	&help;
+        
+    } elsif ($LOCAL_ARG) {
+        &place_local;
+        &extract;
+
+    } elsif ($UPDATE_ARG) {
+	&place_normal;
+	&extract;
+
+    } elsif (@ARGV > 0) {
+	&place_normal;
+	&message;
+	&extract;
+
+    } else {
+	&help;
+
+    }  
+}    
+
+sub place_normal {
+    $FILE	 = $ARGV[0];
+    $OUTFILE     = "$FILE.h";
+
+    my $dirname = dirname ($OUTFILE);
+    if (! -d "$dirname" && $dirname ne "") {
+        system ("mkdir -p $dirname");
+    }
+}   
+
+sub place_local {
+    $FILE	 = $ARGV[0];
+    $OUTFILE     = fileparse($FILE, ());
+    if (!-e "tmp/") { 
+        system("mkdir tmp/"); 
+    }
+    $OUTFILE     = "./tmp/$OUTFILE.h"
+}
+
+sub determine_type {
+   if ($TYPE_ARG =~ /^gettext\/(.*)/) {
+	$gettext_type=$1
+   }
+}
+
+## Sub for printing release information
+sub version{
+    print <<_EOF_;
+${PROGRAM} (${PACKAGE}) $VERSION
+Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+Written by Kenneth Christiansen, 2000.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+    exit;
+}
+
+## Sub for printing usage information
+sub help {
+    print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... [FILENAME]
+Generates a header file from an XML source file.
+
+It grabs all strings between <_translatable_node> and its end tag in
+XML files. Read manpage (man ${PROGRAM}) for more info.
+
+      --type=TYPE   Specify the file type of FILENAME. Currently supports:
+                    "gettext/glade", "gettext/ini", "gettext/keys"
+                    "gettext/rfc822deb", "gettext/schemas",
+                    "gettext/scheme", "gettext/xml", "gettext/quoted"
+  -l, --local       Writes output into current working directory
+                    (conflicts with --update)
+      --update      Writes output into the same directory the source file 
+                    reside (conflicts with --local)
+      --srcdir      Root of the source tree
+  -v, --version     Output version information and exit
+  -h, --help        Display this help and exit
+  -q, --quiet       Quiet mode
+
+Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE")
+or send email to <xml-i18n-tools\@gnome.org>.
+_EOF_
+    exit;
+}
+
+## Sub for printing error messages
+sub error{
+    print STDERR "Try `${PROGRAM} --help' for more information.\n";
+    exit;
+}
+
+sub message {
+    print "Generating C format header file for translation.\n" unless $QUIET_ARG;
+}
+
+sub extract {
+    &determine_type;
+
+    &convert;
+
+    open OUT, ">$OUTFILE";
+    binmode (OUT) if $^O eq 'MSWin32';
+    &msg_write;
+    close OUT;
+
+    print "Wrote $OUTFILE\n" unless $QUIET_ARG;
+}
+
+sub convert {
+
+    ## Reading the file
+    {
+	local (*IN);
+	local $/; #slurp mode
+	open (IN, "<$SRCDIR_ARG/$FILE") || die "can't open $SRCDIR_ARG/$FILE: $!";
+	$input = <IN>;
+    }
+
+    &type_ini if $gettext_type eq "ini";
+    &type_keys if $gettext_type eq "keys";
+    &type_xml if $gettext_type eq "xml";
+    &type_glade if $gettext_type eq "glade";
+    &type_scheme if $gettext_type eq "scheme";
+    &type_schemas  if $gettext_type eq "schemas";
+    &type_rfc822deb  if $gettext_type eq "rfc822deb";
+    &type_quoted if $gettext_type eq "quoted";
+}
+
+sub entity_decode_minimal
+{
+    local ($_) = @_;
+
+    s/&apos;/'/g; # '
+    s/&quot;/"/g; # "
+    s/&amp;/&/g;
+
+    return $_;
+}
+
+sub entity_decode
+{
+    local ($_) = @_;
+
+    s/&apos;/'/g; # '
+    s/&quot;/"/g; # "
+    s/&lt;/</g;
+    s/&gt;/>/g;
+    s/&amp;/&/g;
+
+    return $_;
+}
+
+sub escape_char
+{
+    return '\"' if $_ eq '"';
+    return '\n' if $_ eq "\n";
+    return '\\\\' if $_ eq '\\';
+
+    return $_;
+}
+
+sub escape
+{
+    my ($string) = @_;
+    return join "", map &escape_char, split //, $string;
+}
+
+sub type_ini {
+    ### For generic translatable desktop files ###
+    while ($input =~ /^(#(.+)\n)?^_.*=(.*)$/mg) {
+        if (defined($2))  {
+            $comments{$3} = $2;
+        }
+        $messages{$3} = [];
+    }
+}
+
+sub type_keys {
+    ### For generic translatable mime/keys files ###
+    while ($input =~ /^\s*_\w+=(.*)$/mg) {
+        $messages{$1} = [];
+    }
+}
+
+sub type_xml {
+    ### For generic translatable XML files ###
+    my $tree = readXml($input);
+    parseTree(0, $tree);
+}
+
+sub print_var {
+    my $var = shift;
+    my $vartype = ref $var;
+    
+    if ($vartype =~ /ARRAY/) {
+        my @arr = @{$var};
+        print "[ ";
+        foreach my $el (@arr) {
+            print_var($el);
+            print ", ";
+        }
+        print "] ";
+    } elsif ($vartype =~ /HASH/) {
+        my %hash = %{$var};
+        print "{ ";
+        foreach my $key (keys %hash) {
+            print "$key => ";
+            print_var($hash{$key});
+            print ", ";
+        }
+        print "} ";
+    } else {
+        print $var;
+    }
+}
+
+# Same syntax as getAttributeString in intltool-merge.in.in, similar logic (look for ## differences comment)
+sub getAttributeString
+{
+    my $sub = shift;
+    my $do_translate = shift || 1;
+    my $language = shift || "";
+    my $translate = shift;
+    my $result = "";
+    foreach my $e (reverse(sort(keys %{ $sub }))) {
+	my $key    = $e;
+	my $string = $sub->{$e};
+	my $quote = '"';
+	
+	$string =~ s/^[\s]+//;
+	$string =~ s/[\s]+$//;
+	
+	if ($string =~ /^'.*'$/)
+	{
+	    $quote = "'";
+	}
+	$string =~ s/^['"]//g;
+	$string =~ s/['"]$//g;
+
+        ## differences from intltool-merge.in.in
+	if ($key =~ /^_/) {
+            $comments{entity_decode($string)} = $XMLCOMMENT if $XMLCOMMENT;
+            $messages{entity_decode($string)} = [];
+            $$translate = 2;
+	}
+        ## differences end here from intltool-merge.in.in
+	$result .= " $key=$quote$string$quote";
+    }
+    return $result;
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub getXMLstring
+{
+    my $ref = shift;
+    my $spacepreserve = shift || 0;
+    my @list = @{ $ref };
+    my $result = "";
+
+    my $count = scalar(@list);
+    my $attrs = $list[0];
+    my $index = 1;
+
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+    $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+
+    while ($index < $count) {
+	my $type = $list[$index];
+	my $content = $list[$index+1];
+        if (! $type ) {
+	    # We've got CDATA
+	    if ($content) {
+		# lets strip the whitespace here, and *ONLY* here
+                $content =~ s/\s+/ /gs if (!$spacepreserve);
+		$result .= $content;
+	    }
+	} elsif ( "$type" ne "1" ) {
+	    # We've got another element
+	    $result .= "<$type";
+	    $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements
+	    if ($content) {
+		my $subresult = getXMLstring($content, $spacepreserve);
+		if ($subresult) {
+		    $result .= ">".$subresult . "</$type>";
+		} else {
+		    $result .= "/>";
+		}
+	    } else {
+		$result .= "/>";
+	    }
+	}
+	$index += 2;
+    }
+    return $result;
+}
+
+# Verbatim copy from intltool-merge.in.in, except for MULTIPLE_OUTPUT handling removed
+# Translate list of nodes if necessary
+sub translate_subnodes
+{
+    my $fh = shift;
+    my $content = shift;
+    my $language = shift || "";
+    my $singlelang = shift || 0;
+    my $spacepreserve = shift || 0;
+
+    my @nodes = @{ $content };
+
+    my $count = scalar(@nodes);
+    my $index = 0;
+    while ($index < $count) {
+        my $type = $nodes[$index];
+        my $rest = $nodes[$index+1];
+        traverse($fh, $type, $rest, $language, $spacepreserve);
+        $index += 2;
+    }
+}
+
+# Based on traverse() in intltool-merge.in.in
+sub traverse
+{
+    my $fh = shift; # unused, to allow us to sync code between -merge and -extract
+    my $nodename = shift;
+    my $content = shift;
+    my $language = shift || "";
+    my $spacepreserve = shift || 0;
+
+    if ($nodename && "$nodename" eq "1") {
+        $XMLCOMMENT = $content;
+    } elsif ($nodename) {
+	# element
+	my @all = @{ $content };
+	my $attrs = shift @all;
+	my $translate = 0;
+	my $outattr = getAttributeString($attrs, 1, $language, \$translate);
+
+	if ($nodename =~ /^_/) {
+	    $translate = 1;
+	    $nodename =~ s/^_//;
+	}
+	my $lookup = '';
+
+        $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+        $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+	if ($translate) {
+	    $lookup = getXMLstring($content, $spacepreserve);
+            if (!$spacepreserve) {
+                $lookup =~ s/^\s+//s;
+                $lookup =~ s/\s+$//s;
+            }
+
+	    if ($lookup && $translate != 2) {
+                $comments{$lookup} = $XMLCOMMENT if $XMLCOMMENT;
+                $messages{$lookup} = [];
+            } elsif ($translate == 2) {
+                translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+	    }
+	} else {
+            $XMLCOMMENT = "";
+	    my $count = scalar(@all);
+	    if ($count > 0) {
+                my $index = 0;
+                while ($index < $count) {
+                    my $type = $all[$index];
+                    my $rest = $all[$index+1];
+                    traverse($fh, $type, $rest, $language, $spacepreserve);
+                    $index += 2;
+                }
+	    }
+	}
+        $XMLCOMMENT = "";
+    }
+}
+
+
+# Verbatim copy from intltool-merge.in.in, $fh for compatibility
+sub parseTree
+{
+    my $fh        = shift;
+    my $ref       = shift;
+    my $language  = shift || "";
+
+    my $name = shift @{ $ref };
+    my $cont = shift @{ $ref };
+
+    while (!$name || "$name" eq "1") {
+        $name = shift @{ $ref };
+        $cont = shift @{ $ref };
+    }
+
+    my $spacepreserve = 0;
+    my $attrs = @{$cont}[0];
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+    traverse($fh, $name, $cont, $language, $spacepreserve);
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_comment
+{
+    my $expat = shift;
+    my $data  = $expat->original_string();
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    $data =~ s/^<!--//s;
+    $data =~ s/-->$//s;
+    push @$clist, 1 => $data;
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_cdatastart
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    push @$clist, 0 => $expat->original_string();
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_cdataend
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    $clist->[$pos] .= $expat->original_string();
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_char
+{
+    my $expat = shift;
+    my $text  = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    # Use original_string so that we retain escaped entities
+    # in CDATA sections.
+    #
+    if ($pos > 0 and $clist->[$pos - 1] eq '0') {
+        $clist->[$pos] .= $expat->original_string();
+    } else {
+        push @$clist, 0 => $expat->original_string();
+    }
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_start
+{
+    my $expat    = shift;
+    my $tag      = shift;
+    my @origlist = ();
+
+    # Use original_string so that we retain escaped entities
+    # in attribute values.  We must convert the string to an
+    # @origlist array to conform to the structure of the Tree
+    # Style.
+    #
+    my @original_array = split /\x/, $expat->original_string();
+    my $source         = $expat->original_string();
+
+    # Remove leading tag.
+    #
+    $source =~ s|^\s*<\s*(\S+)||s;
+
+    # Grab attribute key/value pairs and push onto @origlist array.
+    #
+    while ($source)
+    {
+       if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/)
+       {
+           $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s;
+           push @origlist, $1;
+           push @origlist, '"' . $2 . '"';
+       }
+       elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/)
+       {
+           $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s;
+           push @origlist, $1;
+           push @origlist, "'" . $2 . "'";
+       }
+       else
+       {
+           last;
+       }
+    }
+
+    my $ol = [ { @origlist } ];
+
+    push @{ $expat->{Lists} }, $expat->{Curlist};
+    push @{ $expat->{Curlist} }, $tag => $ol;
+    $expat->{Curlist} = $ol;
+}
+
+# Copied from intltool-merge.in.in and added comment handler.
+sub readXml
+{
+    my $xmldoc = shift || return;
+    my $ret = eval 'require XML::Parser';
+    if(!$ret) {
+        die "You must have XML::Parser installed to run $0\n\n";
+    }
+    my $xp = new XML::Parser(Style => 'Tree');
+    $xp->setHandlers(Char => \&intltool_tree_char);
+    $xp->setHandlers(Start => \&intltool_tree_start);
+    $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart);
+    $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend);
+
+    ## differences from intltool-merge.in.in
+    $xp->setHandlers(Comment => \&intltool_tree_comment);
+    ## differences end here from intltool-merge.in.in
+
+    my $tree = $xp->parse($xmldoc);
+    #print_var($tree);
+
+# <foo><!-- comment --><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
+# would be:
+# [foo, [{}, 1, "comment", head, [{id => "a"}, 0, "Hello ",  em, [{}, 0, "there"]], bar, 
+# [{}, 0, "Howdy",  ref, [{}]], 0, "do" ] ]
+
+    return $tree;
+}
+
+sub type_schemas {
+    ### For schemas XML files ###
+         
+    # FIXME: We should handle escaped < (less than)
+    while ($input =~ /
+                      <locale\ name="C">\s*
+                          (<default>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/default>\s*)?
+                          (<short>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/short>\s*)?
+                          (<long>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/long>\s*)?
+                      <\/locale>
+                     /sgx) {
+        my @totranslate = ($3,$6,$9);
+        my @eachcomment = ($2,$5,$8);
+        foreach (@totranslate) {
+            my $currentcomment = shift @eachcomment;
+            next if !$_;
+            s/\s+/ /g;
+            $messages{entity_decode_minimal($_)} = [];
+            $comments{entity_decode_minimal($_)} = $currentcomment if (defined($currentcomment));
+        }
+    }
+}
+
+sub type_rfc822deb {
+    ### For rfc822-style Debian configuration files ###
+
+    my $lineno = 1;
+    my $type = '';
+    while ($input =~ /\G(.*?)(^|\n)(_+)([^:]+):[ \t]*(.*?)(?=\n\S|$)/sg)
+    {
+        my ($pre, $newline, $underscore, $tag, $text) = ($1, $2, $3, $4, $5);
+        while ($pre =~ m/\n/g)
+        {
+            $lineno ++;
+        }
+        $lineno += length($newline);
+        my @str_list = rfc822deb_split(length($underscore), $text);
+        for my $str (@str_list)
+        {
+            $strcount++;
+            $messages{$str} = [];
+            $loc{$str} = $lineno;
+            $count{$str} = $strcount;
+            my $usercomment = '';
+            while($pre =~ s/(^|\n)#([^\n]*)$//s)
+            {
+                $usercomment = "\n" . $2 . $usercomment;
+            }
+            $comments{$str} = $tag . $usercomment;
+        }
+        $lineno += ($text =~ s/\n//g);
+    }
+}
+
+sub rfc822deb_split {
+    # Debian defines a special way to deal with rfc822-style files:
+    # when a value contain newlines, it consists of
+    #   1.  a short form (first line)
+    #   2.  a long description, all lines begin with a space,
+    #       and paragraphs are separated by a single dot on a line
+    # This routine returns an array of all paragraphs, and reformat
+    # them.
+    # When first argument is 2, the string is a comma separated list of
+    # values.
+    my $type = shift;
+    my $text = shift;
+    $text =~ s/^[ \t]//mg;
+    return (split(/, */, $text, 0)) if $type ne 1;
+    return ($text) if $text !~ /\n/;
+
+    $text =~ s/([^\n]*)\n//;
+    my @list = ($1);
+    my $str = '';
+    for my $line (split (/\n/, $text))
+    {
+        chomp $line;
+        if ($line =~ /^\.\s*$/)
+        {
+            #  New paragraph
+            $str =~ s/\s*$//;
+            push(@list, $str);
+            $str = '';
+        }
+        elsif ($line =~ /^\s/)
+        {
+            #  Line which must not be reformatted
+            $str .= "\n" if length ($str) && $str !~ /\n$/;
+            $line =~ s/\s+$//;
+            $str .= $line."\n";
+        }
+        else
+        {
+            #  Continuation line, remove newline
+            $str .= " " if length ($str) && $str !~ /\n$/;
+            $str .= $line;
+        }
+    }
+    $str =~ s/\s*$//;
+    push(@list, $str) if length ($str);
+    return @list;
+}
+
+sub type_quoted {
+    while ($input =~ /\"(([^\"]|\\\")*[^\\\"])\"/g) {
+        my $message = $1;
+        my $before = $`;
+        $message =~ s/\\\"/\"/g;
+        $before =~ s/[^\n]//g;
+        $messages{$message} = [];
+        $loc{$message} = length ($before) + 2;
+    }
+}
+
+sub type_glade {
+    ### For translatable Glade XML files ###
+
+    my $tags = "label|title|text|format|copyright|comments|preview_text|tooltip|message";
+
+    while ($input =~ /<($tags)>([^<]+)<\/($tags)>/sg) {
+	# Glade sometimes uses tags that normally mark translatable things for
+        # little bits of non-translatable content. We work around this by not
+        # translating strings that only includes something like label4 or window1.
+	$messages{entity_decode($2)} = [] unless $2 =~ /^(window|label|dialog)[0-9]+$/;
+    }
+    
+    while ($input =~ /<items>(..[^<]*)<\/items>/sg) {
+	for my $item (split (/\n/, $1)) {
+	    $messages{entity_decode($item)} = [];
+	}
+    }
+
+    ## handle new glade files
+    while ($input =~ /<(property|atkproperty)\s+[^>]*translatable\s*=\s*"yes"(?:\s+[^>]*comments\s*=\s*"([^"]*)")?[^>]*>([^<]+)<\/\1>/sg) {
+	$messages{entity_decode($3)} = [] unless $3 =~ /^(window|label)[0-9]+$/;
+        if (defined($2) and !($3 =~ /^(window|label)[0-9]+$/)) {
+	   $comments{entity_decode($3)} = entity_decode($2) ;
+        }
+    }
+    while ($input =~ /<atkaction\s+action_name="([^>]*)"\s+description="([^>]+)"\/>/sg) {
+        $messages{entity_decode_minimal($2)} = [];
+    }
+}
+
+sub type_scheme {
+    my ($line, $i, $state, $str, $trcomment, $char);
+    for $line (split(/\n/, $input)) {
+        $i = 0;
+        $state = 0; # 0 - nothing, 1 - string, 2 - translatable string
+        while ($i < length($line)) {
+            if (substr($line,$i,1) eq "\"") {
+                if ($state == 2) {
+                    $comments{$str} = $trcomment if ($trcomment);
+                    $messages{$str} = [];
+                    $str = '';
+                    $state = 0; $trcomment = "";
+                } elsif ($state == 1) {
+                    $str = '';
+                    $state = 0; $trcomment = "";
+                } else {
+                    $state = 1;
+                    $str = '';
+                    if ($i>0 && substr($line,$i-1,1) eq '_') {
+                        $state = 2;
+                    }
+                }
+            } elsif (!$state) {
+                if (substr($line,$i,1) eq ";") {
+                    $trcomment = substr($line,$i+1);
+                    $trcomment =~ s/^;*\s*//;
+                    $i = length($line);
+                } elsif ($trcomment && substr($line,$i,1) !~ /\s|\(|\)|_/) {
+                    $trcomment = "";
+                }
+            } else {
+                if (substr($line,$i,1) eq "\\") {
+                    $char = substr($line,$i+1,1);
+                    if ($char ne "\"" && $char ne "\\") {
+                       $str = $str . "\\";
+                    }
+                    $i++;
+                }
+                $str = $str . substr($line,$i,1);
+            }
+            $i++;
+        }
+    }
+}
+
+sub msg_write {
+    my @msgids;
+    if (%count)
+    {
+        @msgids = sort { $count{$a} <=> $count{$b} } keys %count;
+    }
+    else
+    {
+        @msgids = sort keys %messages;
+    }
+    for my $message (@msgids)
+    {
+	my $offsetlines = 1;
+	$offsetlines++ if $message =~ /%/;
+	if (defined ($comments{$message}))
+	{
+		while ($comments{$message} =~ m/\n/g)
+		{
+		    $offsetlines++;
+		}
+	}
+	print OUT "# ".($loc{$message} - $offsetlines).  " \"$FILE\"\n"
+	        if defined $loc{$message};
+   	print OUT "/* ".$comments{$message}." */\n"
+                if defined $comments{$message};
+   	print OUT "/* xgettext:no-c-format */\n" if $message =~ /%/;
+        
+    	my @lines = split (/\n/, $message, -1);
+    	for (my $n = 0; $n < @lines; $n++)
+	{
+            if ($n == 0)
+            {
+ 		print OUT "char *s = N_(\""; 
+            }
+            else
+            {  
+                print OUT "             \""; 
+            }
+
+            print OUT escape($lines[$n]);
+
+            if ($n < @lines - 1)
+            {
+                print OUT "\\n\"\n"; 
+            }
+            else
+            {
+                print OUT "\");\n";  
+	    }
+        }
+    }
+}
+
--- kazehakase-0.5.4.orig/intltool-merge
+++ kazehakase-0.5.4/intltool-merge
@@ -0,0 +1,1451 @@
+#!/usr/bin/perl -w
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4  -*-
+
+#
+#  The Intltool Message Merger
+#
+#  Copyright (C) 2000, 2003 Free Software Foundation.
+#  Copyright (C) 2000, 2001 Eazel, Inc
+#
+#  Intltool is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License 
+#  version 2 published by the Free Software Foundation.
+#
+#  Intltool is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software
+#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#  As a special exception to the GNU General Public License, if you
+#  distribute this file as part of a program that contains a
+#  configuration script generated by Autoconf, you may include it under
+#  the same distribution terms that you use for the rest of that program.
+#
+#  Authors:  Maciej Stachowiak <mjs@noisehavoc.org>
+#            Kenneth Christiansen <kenneth@gnu.org>
+#            Darin Adler <darin@bentspoon.com>
+#
+#  Proper XML UTF-8'ification written by Cyrille Chepelov <chepelov@calixo.net>
+#
+
+## Release information
+my $PROGRAM = "intltool-merge";
+my $PACKAGE = "intltool";
+my $VERSION = "0.36.2";
+
+## Loaded modules
+use strict; 
+use Getopt::Long;
+use Text::Wrap;
+use File::Basename;
+
+my $must_end_tag      = -1;
+my $last_depth        = -1;
+my $translation_depth = -1;
+my @tag_stack = ();
+my @entered_tag = ();
+my @translation_strings = ();
+my $leading_space = "";
+
+## Scalars used by the option stuff
+my $HELP_ARG = 0;
+my $VERSION_ARG = 0;
+my $BA_STYLE_ARG = 0;
+my $XML_STYLE_ARG = 0;
+my $KEYS_STYLE_ARG = 0;
+my $DESKTOP_STYLE_ARG = 0;
+my $SCHEMAS_STYLE_ARG = 0;
+my $RFC822DEB_STYLE_ARG = 0;
+my $QUOTED_STYLE_ARG = 0;
+my $QUIET_ARG = 0;
+my $PASS_THROUGH_ARG = 0;
+my $UTF8_ARG = 0;
+my $MULTIPLE_OUTPUT = 0;
+my $cache_file;
+
+## Handle options
+GetOptions 
+(
+ "help" => \$HELP_ARG,
+ "version" => \$VERSION_ARG,
+ "quiet|q" => \$QUIET_ARG,
+ "oaf-style|o" => \$BA_STYLE_ARG, ## for compatibility
+ "ba-style|b" => \$BA_STYLE_ARG,
+ "xml-style|x" => \$XML_STYLE_ARG,
+ "keys-style|k" => \$KEYS_STYLE_ARG,
+ "desktop-style|d" => \$DESKTOP_STYLE_ARG,
+ "schemas-style|s" => \$SCHEMAS_STYLE_ARG,
+ "rfc822deb-style|r" => \$RFC822DEB_STYLE_ARG,
+ "quoted-style" => \$QUOTED_STYLE_ARG,
+ "pass-through|p" => \$PASS_THROUGH_ARG,
+ "utf8|u" => \$UTF8_ARG,
+ "multiple-output|m" => \$MULTIPLE_OUTPUT,
+ "cache|c=s" => \$cache_file
+ ) or &error;
+
+my $PO_DIR;
+my $FILE;
+my $OUTFILE;
+
+my %po_files_by_lang = ();
+my %translations = ();
+my $iconv = $ENV{"ICONV"} || "iconv";
+my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null');
+
+sub isProgramInPath
+{
+    my ($file) = @_;
+    # If either a file exists, or when run it returns 0 exit status
+    return 1 if ((-x $file) or (system("$file -l >$devnull") == 0));
+    return 0;
+}
+
+if (! isProgramInPath ("$iconv"))
+{
+	print STDERR " *** iconv is not found on this system!\n".
+		     " *** Without it, intltool-merge can not convert encodings.\n";
+	exit;
+}
+
+# Use this instead of \w for XML files to handle more possible characters.
+my $w = "[-A-Za-z0-9._:]";
+
+# XML quoted string contents
+my $q = "[^\\\"]*";
+
+## Check for options. 
+
+if ($VERSION_ARG) 
+{
+	&print_version;
+} 
+elsif ($HELP_ARG) 
+{
+	&print_help;
+} 
+elsif ($BA_STYLE_ARG && @ARGV > 2) 
+{
+	&utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&ba_merge_translations;
+	&finalize;
+} 
+elsif ($XML_STYLE_ARG && @ARGV > 2) 
+{
+	&utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&xml_merge_output;
+	&finalize;
+} 
+elsif ($KEYS_STYLE_ARG && @ARGV > 2) 
+{
+	&utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&keys_merge_translations;
+	&finalize;
+} 
+elsif ($DESKTOP_STYLE_ARG && @ARGV > 2) 
+{
+	&utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&desktop_merge_translations;
+	&finalize;
+} 
+elsif ($SCHEMAS_STYLE_ARG && @ARGV > 2) 
+{
+	&utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&schemas_merge_translations;
+	&finalize;
+} 
+elsif ($RFC822DEB_STYLE_ARG && @ARGV > 2) 
+{
+	&preparation;
+	&print_message;
+	&rfc822deb_merge_translations;
+	&finalize;
+} 
+elsif ($QUOTED_STYLE_ARG && @ARGV > 2) 
+{
+	&utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&quoted_merge_translations;
+	&finalize;
+} 
+else 
+{
+	&print_help;
+}
+
+exit;
+
+## Sub for printing release information
+sub print_version
+{
+    print <<_EOF_;
+${PROGRAM} (${PACKAGE}) ${VERSION}
+Written by Maciej Stachowiak, Darin Adler and Kenneth Christiansen.
+
+Copyright (C) 2000-2003 Free Software Foundation, Inc.
+Copyright (C) 2000-2001 Eazel, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+    exit;
+}
+
+## Sub for printing usage information
+sub print_help
+{
+    print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... PO_DIRECTORY FILENAME OUTPUT_FILE
+Generates an output file that includes some localized attributes from an
+untranslated source file.
+
+Mandatory options: (exactly one must be specified)
+  -b, --ba-style         includes translations in the bonobo-activation style
+  -d, --desktop-style    includes translations in the desktop style
+  -k, --keys-style       includes translations in the keys style
+  -s, --schemas-style    includes translations in the schemas style
+  -r, --rfc822deb-style  includes translations in the RFC822 style
+      --quoted-style     includes translations in the quoted string style
+  -x, --xml-style        includes translations in the standard xml style
+
+Other options:
+  -u, --utf8             convert all strings to UTF-8 before merging 
+                         (default for everything except RFC822 style)
+  -p, --pass-through     deprecated, does nothing and issues a warning
+  -m, --multiple-output  output one localized file per locale, instead of 
+	                 a single file containing all localized elements
+  -c, --cache=FILE       specify cache file name
+                         (usually \$top_builddir/po/.intltool-merge-cache)
+  -q, --quiet            suppress most messages
+      --help             display this help and exit
+      --version          output version information and exit
+
+Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE")
+or send email to <xml-i18n-tools\@gnome.org>.
+_EOF_
+    exit;
+}
+
+
+## Sub for printing error messages
+sub print_error
+{
+    print STDERR "Try `${PROGRAM} --help' for more information.\n";
+    exit;
+}
+
+
+sub print_message 
+{
+    print "Merging translations into $OUTFILE.\n" unless $QUIET_ARG;
+}
+
+
+sub preparation 
+{
+    $PO_DIR = $ARGV[0];
+    $FILE = $ARGV[1];
+    $OUTFILE = $ARGV[2];
+
+    &gather_po_files;
+    &get_translation_database;
+}
+
+# General-purpose code for looking up translations in .po files
+
+sub po_file2lang
+{
+    my ($tmp) = @_; 
+    $tmp =~ s/^.*\/(.*)\.po$/$1/; 
+    return $tmp; 
+}
+
+sub gather_po_files
+{
+    if (my $linguas = $ENV{"LINGUAS"})
+    {
+        for my $lang (split / /, $linguas) {
+            my $po_file = $PO_DIR . "/" . $lang . ".po";
+            if (-e $po_file) {
+                $po_files_by_lang{$lang} = $po_file;
+            }
+        }
+    }
+    else
+    {
+        if (open LINGUAS_FILE, "$PO_DIR/LINGUAS")
+        {
+            while (<LINGUAS_FILE>)
+            {
+                next if /^#/;
+
+                if (/([-a-zA-Z_@.]+)\n/)
+                {
+                    my $lang = $1;
+
+                    my $po_file = $PO_DIR . "/" . $lang . ".po";
+                    if (-e $po_file) {
+                        $po_files_by_lang{$lang} = $po_file;
+                    }
+                }
+            }
+
+            close LINGUAS_FILE;
+        }
+        else
+        {
+            for my $po_file (glob "$PO_DIR/*.po") {
+                $po_files_by_lang{po_file2lang($po_file)} = $po_file;
+            }
+        }
+    }
+}
+
+sub get_local_charset
+{
+    my ($encoding) = @_;
+    my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "/usr/lib/charset.alias";
+
+    # seek character encoding aliases in charset.alias (glib)
+
+    if (open CHARSET_ALIAS, $alias_file) 
+    {
+	while (<CHARSET_ALIAS>) 
+        {
+            next if /^\#/;
+            return $1 if (/^\s*([-._a-zA-Z0-9]+)\s+$encoding\b/i)
+        }
+
+        close CHARSET_ALIAS;
+    }
+
+    # if not found, return input string
+
+    return $encoding;
+}
+
+sub get_po_encoding
+{
+    my ($in_po_file) = @_;
+    my $encoding = "";
+
+    open IN_PO_FILE, $in_po_file or die;
+    while (<IN_PO_FILE>) 
+    {
+        ## example: "Content-Type: text/plain; charset=ISO-8859-1\n"
+        if (/Content-Type\:.*charset=([-a-zA-Z0-9]+)\\n/) 
+        {
+            $encoding = $1; 
+            last;
+        }
+    }
+    close IN_PO_FILE;
+
+    if (!$encoding) 
+    {
+        print STDERR "Warning: no encoding found in $in_po_file. Assuming ISO-8859-1\n" unless $QUIET_ARG;
+        $encoding = "ISO-8859-1";
+    }
+
+    system ("$iconv -f $encoding -t UTF-8 <$devnull 2>$devnull");
+    if ($?) {
+	$encoding = get_local_charset($encoding);
+    }
+
+    return $encoding
+}
+
+sub utf8_sanity_check 
+{
+    print STDERR "Warning: option --pass-through has been removed.\n" if $PASS_THROUGH_ARG;
+    $UTF8_ARG = 1;
+}
+
+sub get_translation_database
+{
+    if ($cache_file) {
+	&get_cached_translation_database;
+    } else {
+        &create_translation_database;
+    }
+}
+
+sub get_newest_po_age
+{
+    my $newest_age;
+
+    foreach my $file (values %po_files_by_lang) 
+    {
+	my $file_age = -M $file;
+	$newest_age = $file_age if !$newest_age || $file_age < $newest_age;
+    }
+
+    $newest_age = 0 if !$newest_age;
+
+    return $newest_age;
+}
+
+sub create_cache
+{
+    print "Generating and caching the translation database\n" unless $QUIET_ARG;
+
+    &create_translation_database;
+
+    open CACHE, ">$cache_file" || die;
+    print CACHE join "\x01", %translations;
+    close CACHE;
+}
+
+sub load_cache 
+{
+    print "Found cached translation database\n" unless $QUIET_ARG;
+
+    my $contents;
+    open CACHE, "<$cache_file" || die;
+    {
+        local $/;
+        $contents = <CACHE>;
+    }
+    close CACHE;
+    %translations = split "\x01", $contents;
+}
+
+sub get_cached_translation_database
+{
+    my $cache_file_age = -M $cache_file;
+    if (defined $cache_file_age) 
+    {
+        if ($cache_file_age <= &get_newest_po_age) 
+        {
+            &load_cache;
+            return;
+        }
+        print "Found too-old cached translation database\n" unless $QUIET_ARG;
+    }
+
+    &create_cache;
+}
+
+sub create_translation_database
+{
+    for my $lang (keys %po_files_by_lang) 
+    {
+    	my $po_file = $po_files_by_lang{$lang};
+
+        if ($UTF8_ARG) 
+        {
+            my $encoding = get_po_encoding ($po_file);
+
+            if (lc $encoding eq "utf-8") 
+            {
+                open PO_FILE, "<$po_file";	
+            } 
+            else 
+            {
+		print "NOTICE: $po_file is not in UTF-8 but $encoding, converting...\n" unless $QUIET_ARG;;
+
+                open PO_FILE, "$iconv -f $encoding -t UTF-8 $po_file|";	
+            }
+        } 
+        else 
+        {
+            open PO_FILE, "<$po_file";	
+        }
+
+	my $nextfuzzy = 0;
+	my $inmsgid = 0;
+	my $inmsgstr = 0;
+	my $msgid = "";
+	my $msgstr = "";
+
+        while (<PO_FILE>) 
+        {
+	    $nextfuzzy = 1 if /^#, fuzzy/;
+       
+	    if (/^msgid "((\\.|[^\\]+)*)"/ ) 
+            {
+		$translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr;
+		$msgid = "";
+		$msgstr = "";
+
+		if ($nextfuzzy) {
+		    $inmsgid = 0;
+		} else {
+		    $msgid = unescape_po_string($1);
+		    $inmsgid = 1;
+		}
+		$inmsgstr = 0;
+		$nextfuzzy = 0;
+	    }
+
+	    if (/^msgstr "((\\.|[^\\]+)*)"/) 
+            {
+	        $msgstr = unescape_po_string($1);
+		$inmsgstr = 1;
+		$inmsgid = 0;
+	    }
+
+	    if (/^"((\\.|[^\\]+)*)"/) 
+            {
+	        $msgid .= unescape_po_string($1) if $inmsgid;
+	        $msgstr .= unescape_po_string($1) if $inmsgstr;
+	    }
+	}
+	$translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr;
+    }
+}
+
+sub finalize
+{
+}
+
+sub unescape_one_sequence
+{
+    my ($sequence) = @_;
+
+    return "\\" if $sequence eq "\\\\";
+    return "\"" if $sequence eq "\\\"";
+    return "\n" if $sequence eq "\\n";
+    return "\r" if $sequence eq "\\r";
+    return "\t" if $sequence eq "\\t";
+    return "\b" if $sequence eq "\\b";
+    return "\f" if $sequence eq "\\f";
+    return "\a" if $sequence eq "\\a";
+    return chr(11) if $sequence eq "\\v"; # vertical tab, see ascii(7)
+
+    return chr(hex($1)) if ($sequence =~ /\\x([0-9a-fA-F]{2})/);
+    return chr(oct($1)) if ($sequence =~ /\\([0-7]{3})/);
+
+    # FIXME: Is \0 supported as well? Kenneth and Rodney don't want it, see bug #48489
+
+    return $sequence;
+}
+
+sub unescape_po_string
+{
+    my ($string) = @_;
+
+    $string =~ s/(\\x[0-9a-fA-F]{2}|\\[0-7]{3}|\\.)/unescape_one_sequence($1)/eg;
+
+    return $string;
+}
+
+sub entity_decode
+{
+    local ($_) = @_;
+
+    s/&apos;/'/g; # '
+    s/&quot;/"/g; # "
+    s/&lt;/</g;
+    s/&gt;/>/g;
+    s/&amp;/&/g;
+
+    return $_;
+}
+ 
+# entity_encode: (string)
+#
+# Encode the given string to XML format (encode '<' etc).
+
+sub entity_encode
+{
+    my ($pre_encoded) = @_;
+
+    my @list_of_chars = unpack ('C*', $pre_encoded);
+
+    # with UTF-8 we only encode minimalistic
+    return join ('', map (&entity_encode_int_minimalist, @list_of_chars));
+}
+
+sub entity_encode_int_minimalist
+{
+    return "&quot;" if $_ == 34;
+    return "&amp;" if $_ == 38;
+    return "&apos;" if $_ == 39;
+    return "&lt;" if $_ == 60;
+    return chr $_;
+}
+
+sub entity_encoded_translation
+{
+    my ($lang, $string) = @_;
+
+    my $translation = $translations{$lang, $string};
+    return $string if !$translation;
+    return entity_encode ($translation);
+}
+
+## XML (bonobo-activation specific) merge code
+
+sub ba_merge_translations
+{
+    my $source;
+
+    {
+       local $/; # slurp mode
+       open INPUT, "<$FILE" or die "can't open $FILE: $!";
+       $source = <INPUT>;
+       close INPUT;
+    }
+
+    open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!";
+    # Binmode so that selftest works ok if using a native Win32 Perl...
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+
+    while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s) 
+    {
+        print OUTPUT $1;
+
+        my $node = $2 . "\n";
+
+        my @strings = ();
+        $_ = $node;
+	while (s/(\s)_($w+\s*=\s*"($q)")/$1$2/s) {
+             push @strings, entity_decode($3);
+        }
+	print OUTPUT;
+
+	my %langs;
+	for my $string (@strings) 
+        {
+	    for my $lang (keys %po_files_by_lang) 
+            {
+                $langs{$lang} = 1 if $translations{$lang, $string};
+	    }
+	}
+	
+	for my $lang (sort keys %langs) 
+        {
+	    $_ = $node;
+	    s/(\sname\s*=\s*)"($q)"/$1"$2-$lang"/s;
+	    s/(\s)_($w+\s*=\s*")($q)"/$1 . $2 . entity_encoded_translation($lang, $3) . '"'/seg;
+	    print OUTPUT;
+        }
+    }
+
+    print OUTPUT $source;
+
+    close OUTPUT;
+}
+
+
+## XML (non-bonobo-activation) merge code
+
+
+# Process tag attributes
+#   Only parameter is a HASH containing attributes -> values mapping
+sub getAttributeString
+{
+    my $sub = shift;
+    my $do_translate = shift || 0;
+    my $language = shift || "";
+    my $result = "";
+    my $translate = shift;
+    foreach my $e (reverse(sort(keys %{ $sub }))) {
+	my $key    = $e;
+	my $string = $sub->{$e};
+	my $quote = '"';
+	
+	$string =~ s/^[\s]+//;
+	$string =~ s/[\s]+$//;
+	
+	if ($string =~ /^'.*'$/)
+	{
+	    $quote = "'";
+	}
+	$string =~ s/^['"]//g;
+	$string =~ s/['"]$//g;
+
+	if ($do_translate && $key =~ /^_/) {
+	    $key =~ s|^_||g;
+	    if ($language) {
+		# Handle translation
+		my $decode_string = entity_decode($string);
+		my $translation = $translations{$language, $decode_string};
+		if ($translation) {
+		    $translation = entity_encode($translation);
+		    $string = $translation;
+                }
+                $$translate = 2;
+            } else {
+                 $$translate = 2 if ($translate && (!$$translate)); # watch not to "overwrite" $translate
+            }
+	}
+	
+	$result .= " $key=$quote$string$quote";
+    }
+    return $result;
+}
+
+# Returns a translatable string from XML node, it works on contents of every node in XML::Parser tree
+sub getXMLstring
+{
+    my $ref = shift;
+    my $spacepreserve = shift || 0;
+    my @list = @{ $ref };
+    my $result = "";
+
+    my $count = scalar(@list);
+    my $attrs = $list[0];
+    my $index = 1;
+
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+    $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+
+    while ($index < $count) {
+	my $type = $list[$index];
+	my $content = $list[$index+1];
+        if (! $type ) {
+	    # We've got CDATA
+	    if ($content) {
+		# lets strip the whitespace here, and *ONLY* here
+                $content =~ s/\s+/ /gs if (!$spacepreserve);
+		$result .= $content;
+	    }
+	} elsif ( "$type" ne "1" ) {
+	    # We've got another element
+	    $result .= "<$type";
+	    $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements
+	    if ($content) {
+		my $subresult = getXMLstring($content, $spacepreserve);
+		if ($subresult) {
+		    $result .= ">".$subresult . "</$type>";
+		} else {
+		    $result .= "/>";
+		}
+	    } else {
+		$result .= "/>";
+	    }
+	}
+	$index += 2;
+    }
+    return $result;
+}
+
+# Translate list of nodes if necessary
+sub translate_subnodes
+{
+    my $fh = shift;
+    my $content = shift;
+    my $language = shift || "";
+    my $singlelang = shift || 0;
+    my $spacepreserve = shift || 0;
+
+    my @nodes = @{ $content };
+
+    my $count = scalar(@nodes);
+    my $index = 0;
+    while ($index < $count) {
+        my $type = $nodes[$index];
+        my $rest = $nodes[$index+1];
+        if ($singlelang) {
+            my $oldMO = $MULTIPLE_OUTPUT;
+            $MULTIPLE_OUTPUT = 1;
+            traverse($fh, $type, $rest, $language, $spacepreserve);
+            $MULTIPLE_OUTPUT = $oldMO;
+        } else {
+            traverse($fh, $type, $rest, $language, $spacepreserve);
+        }
+        $index += 2;
+    }
+}
+
+sub isWellFormedXmlFragment
+{
+    my $ret = eval 'require XML::Parser';
+    if(!$ret) {
+        die "You must have XML::Parser installed to run $0\n\n";
+    } 
+
+    my $fragment = shift;
+    return 0 if (!$fragment);
+
+    $fragment = "<root>$fragment</root>";
+    my $xp = new XML::Parser(Style => 'Tree');
+    my $tree = 0;
+    eval { $tree = $xp->parse($fragment); };
+    return $tree;
+}
+
+sub traverse
+{
+    my $fh = shift; 
+    my $nodename = shift;
+    my $content = shift;
+    my $language = shift || "";
+    my $spacepreserve = shift || 0;
+
+    if (!$nodename) {
+	if ($content =~ /^[\s]*$/) {
+	    $leading_space .= $content;
+	}
+	print $fh $content;
+    } else {
+	# element
+	my @all = @{ $content };
+	my $attrs = shift @all;
+	my $translate = 0;
+	my $outattr = getAttributeString($attrs, 1, $language, \$translate);
+
+	if ($nodename =~ /^_/) {
+	    $translate = 1;
+	    $nodename =~ s/^_//;
+	}
+	my $lookup = '';
+
+        $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+        $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+	print $fh "<$nodename", $outattr;
+	if ($translate) {
+	    $lookup = getXMLstring($content, $spacepreserve);
+            if (!$spacepreserve) {
+                $lookup =~ s/^\s+//s;
+                $lookup =~ s/\s+$//s;
+            }
+
+	    if ($lookup || $translate == 2) {
+                my $translation = $translations{$language, $lookup} if isWellFormedXmlFragment($translations{$language, $lookup});
+                if ($MULTIPLE_OUTPUT && ($translation || $translate == 2)) {
+                    $translation = $lookup if (!$translation);
+                    print $fh " xml:lang=\"", $language, "\"" if $language;
+                    print $fh ">";
+                    if ($translate == 2) {
+                        translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+                    } else {
+                        print $fh $translation;
+                    }
+                    print $fh "</$nodename>";
+
+                    return; # this means there will be no same translation with xml:lang="$language"...
+                            # if we want them both, just remove this "return"
+                } else {
+                    print $fh ">";
+                    if ($translate == 2) {
+                        translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+                    } else {
+                        print $fh $lookup;
+                    }
+                    print $fh "</$nodename>";
+                }
+	    } else {
+		print $fh "/>";
+	    }
+
+	    for my $lang (sort keys %po_files_by_lang) {
+                    if ($MULTIPLE_OUTPUT && $lang ne "$language") {
+                        next;
+                    }
+		    if ($lang) {
+                        # Handle translation
+                        #
+                        my $translate = 0;
+                        my $localattrs = getAttributeString($attrs, 1, $lang, \$translate);
+                        my $translation = $translations{$lang, $lookup} if isWellFormedXmlFragment($translations{$lang, $lookup});
+                        if ($translate && !$translation) {
+                            $translation = $lookup;
+                        }
+
+                        if ($translation || $translate) {
+			    print $fh "\n";
+			    $leading_space =~ s/.*\n//g;
+			    print $fh $leading_space;
+ 			    print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs, ">";
+                            if ($translate == 2) {
+                               translate_subnodes($fh, \@all, $lang, 1, $spacepreserve);
+                            } else {
+                                print $fh $translation;
+                            }
+                            print $fh "</$nodename>";
+			}
+                    }
+	    }
+
+	} else {
+	    my $count = scalar(@all);
+	    if ($count > 0) {
+		print $fh ">";
+                my $index = 0;
+                while ($index < $count) {
+                    my $type = $all[$index];
+                    my $rest = $all[$index+1];
+                    traverse($fh, $type, $rest, $language, $spacepreserve);
+                    $index += 2;
+                }
+		print $fh "</$nodename>";
+	    } else {
+		print $fh "/>";
+	    }
+	}
+    }
+}
+
+sub intltool_tree_comment
+{
+    my $expat = shift;
+    my $data  = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    push @$clist, 1 => $data;
+}
+
+sub intltool_tree_cdatastart
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    push @$clist, 0 => $expat->original_string();
+}
+
+sub intltool_tree_cdataend
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    $clist->[$pos] .= $expat->original_string();
+}
+
+sub intltool_tree_char
+{
+    my $expat = shift;
+    my $text  = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    # Use original_string so that we retain escaped entities
+    # in CDATA sections.
+    #
+    if ($pos > 0 and $clist->[$pos - 1] eq '0') {
+        $clist->[$pos] .= $expat->original_string();
+    } else {
+        push @$clist, 0 => $expat->original_string();
+    }
+}
+
+sub intltool_tree_start
+{
+    my $expat    = shift;
+    my $tag      = shift;
+    my @origlist = ();
+
+    # Use original_string so that we retain escaped entities
+    # in attribute values.  We must convert the string to an
+    # @origlist array to conform to the structure of the Tree
+    # Style.
+    #
+    my @original_array = split /\x/, $expat->original_string();
+    my $source         = $expat->original_string();
+
+    # Remove leading tag.
+    #
+    $source =~ s|^\s*<\s*(\S+)||s;
+
+    # Grab attribute key/value pairs and push onto @origlist array.
+    #
+    while ($source)
+    {
+       if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/)
+       {
+           $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s;
+           push @origlist, $1;
+           push @origlist, '"' . $2 . '"';
+       }
+       elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/)
+       {
+           $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s;
+           push @origlist, $1;
+           push @origlist, "'" . $2 . "'";
+       }
+       else
+       {
+           last;
+       }
+    }
+
+    my $ol = [ { @origlist } ];
+
+    push @{ $expat->{Lists} }, $expat->{Curlist};
+    push @{ $expat->{Curlist} }, $tag => $ol;
+    $expat->{Curlist} = $ol;
+}
+
+sub readXml
+{
+    my $filename = shift || return;
+    if(!-f $filename) {
+        die "ERROR Cannot find filename: $filename\n";
+    }
+
+    my $ret = eval 'require XML::Parser';
+    if(!$ret) {
+        die "You must have XML::Parser installed to run $0\n\n";
+    } 
+    my $xp = new XML::Parser(Style => 'Tree');
+    $xp->setHandlers(Char => \&intltool_tree_char);
+    $xp->setHandlers(Start => \&intltool_tree_start);
+    $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart);
+    $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend);
+    my $tree = $xp->parsefile($filename);
+
+# <foo><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
+# would be:
+# [foo, [{}, head, [{id => "a"}, 0, "Hello ",  em, [{}, 0, "there"]], bar, [{},
+# 0, "Howdy",  ref, [{}]], 0, "do" ] ]
+
+    return $tree;
+}
+
+sub print_header
+{
+    my $infile = shift;
+    my $fh = shift;
+    my $source;
+
+    if(!-f $infile) {
+        die "ERROR Cannot find filename: $infile\n";
+    }
+
+    print $fh qq{<?xml version="1.0" encoding="UTF-8"?>\n};
+    {
+        local $/;
+        open DOCINPUT, "<${FILE}" or die;
+        $source = <DOCINPUT>;
+        close DOCINPUT;
+    }
+    if ($source =~ /(<!DOCTYPE.*\[.*\]\s*>)/s)
+    {
+        print $fh "$1\n";
+    }
+    elsif ($source =~ /(<!DOCTYPE[^>]*>)/s)
+    {
+        print $fh "$1\n";
+    }
+}
+
+sub parseTree
+{
+    my $fh        = shift;
+    my $ref       = shift;
+    my $language  = shift || "";
+
+    my $name = shift @{ $ref };
+    my $cont = shift @{ $ref };
+    
+    while (!$name || "$name" eq "1") {
+        $name = shift @{ $ref };
+        $cont = shift @{ $ref };
+    }
+
+    my $spacepreserve = 0;
+    my $attrs = @{$cont}[0];
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+    traverse($fh, $name, $cont, $language, $spacepreserve);
+}
+
+sub xml_merge_output
+{
+    my $source;
+
+    if ($MULTIPLE_OUTPUT) {
+        for my $lang (sort keys %po_files_by_lang) {
+	    if ( ! -d $lang ) {
+	        mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n";
+            }
+            open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n";
+            binmode (OUTPUT) if $^O eq 'MSWin32';
+            my $tree = readXml($FILE);
+            print_header($FILE, \*OUTPUT);
+            parseTree(\*OUTPUT, $tree, $lang);
+            close OUTPUT;
+            print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG;
+        }
+    } 
+    open OUTPUT, ">$OUTFILE" or die "Cannot open $OUTFILE: $!\n";
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+    my $tree = readXml($FILE);
+    print_header($FILE, \*OUTPUT);
+    parseTree(\*OUTPUT, $tree);
+    close OUTPUT;
+    print "CREATED $OUTFILE\n" unless $QUIET_ARG;
+}
+
+sub keys_merge_translations
+{
+    open INPUT, "<${FILE}" or die;
+    open OUTPUT, ">${OUTFILE}" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+
+    while (<INPUT>) 
+    {
+        if (s/^(\s*)_(\w+=(.*))/$1$2/)  
+        {
+	    my $string = $3;
+
+            print OUTPUT;
+
+	    my $non_translated_line = $_;
+
+            for my $lang (sort keys %po_files_by_lang) 
+            {
+		my $translation = $translations{$lang, $string};
+                next if !$translation;
+
+                $_ = $non_translated_line;
+		s/(\w+)=.*/[$lang]$1=$translation/;
+                print OUTPUT;
+            }
+	} 
+        else 
+        {
+            print OUTPUT;
+        }
+    }
+
+    close OUTPUT;
+    close INPUT;
+}
+
+sub desktop_merge_translations
+{
+    open INPUT, "<${FILE}" or die;
+    open OUTPUT, ">${OUTFILE}" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+
+    while (<INPUT>) 
+    {
+        if (s/^(\s*)_(\w+=(.*))/$1$2/)  
+        {
+	    my $string = $3;
+
+            print OUTPUT;
+
+	    my $non_translated_line = $_;
+
+            for my $lang (sort keys %po_files_by_lang) 
+            {
+                my $translation = $translations{$lang, $string};
+                next if !$translation;
+
+                $_ = $non_translated_line;
+                s/(\w+)=.*/${1}[$lang]=$translation/;
+                print OUTPUT;
+            }
+	} 
+        else 
+        {
+            print OUTPUT;
+        }
+    }
+
+    close OUTPUT;
+    close INPUT;
+}
+
+sub schemas_merge_translations
+{
+    my $source;
+
+    {
+       local $/; # slurp mode
+       open INPUT, "<$FILE" or die "can't open $FILE: $!";
+       $source = <INPUT>;
+       close INPUT;
+    }
+
+    open OUTPUT, ">$OUTFILE" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+
+    # FIXME: support attribute translations
+
+    # Empty nodes never need translation, so unmark all of them.
+    # For example, <_foo/> is just replaced by <foo/>.
+    $source =~ s|<\s*_($w+)\s*/>|<$1/>|g;
+
+    while ($source =~ s/
+                        (.*?)
+                        (\s+)(<locale\ name="C">(\s*)
+                            (<default>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/default>)?(\s*)
+                            (<short>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/short>)?(\s*)
+                            (<long>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/long>)?(\s*)
+                        <\/locale>)
+                       //sx) 
+    {
+        print OUTPUT $1;
+
+	my $locale_start_spaces = $2 ? $2 : '';
+	my $default_spaces = $4 ? $4 : '';
+	my $short_spaces = $7 ? $7 : '';
+	my $long_spaces = $10 ? $10 : '';
+	my $locale_end_spaces = $13 ? $13 : '';
+	my $c_default_block = $3 ? $3 : '';
+	my $default_string = $6 ? $6 : '';
+	my $short_string = $9 ? $9 : '';
+	my $long_string = $12 ? $12 : '';
+
+	print OUTPUT "$locale_start_spaces$c_default_block";
+
+        $default_string =~ s/\s+/ /g;
+        $default_string = entity_decode($default_string);
+	$short_string =~ s/\s+/ /g;
+	$short_string = entity_decode($short_string);
+	$long_string =~ s/\s+/ /g;
+	$long_string = entity_decode($long_string);
+
+	for my $lang (sort keys %po_files_by_lang) 
+        {
+	    my $default_translation = $translations{$lang, $default_string};
+	    my $short_translation = $translations{$lang, $short_string};
+	    my $long_translation  = $translations{$lang, $long_string};
+
+	    next if (!$default_translation && !$short_translation && 
+                     !$long_translation);
+
+	    print OUTPUT "\n$locale_start_spaces<locale name=\"$lang\">";
+
+        print OUTPUT "$default_spaces";    
+
+        if ($default_translation)
+        {
+            $default_translation = entity_encode($default_translation);
+            print OUTPUT "<default>$default_translation</default>";
+        }
+
+	    print OUTPUT "$short_spaces";
+
+	    if ($short_translation)
+	    {
+			$short_translation = entity_encode($short_translation);
+			print OUTPUT "<short>$short_translation</short>";
+	    }
+
+	    print OUTPUT "$long_spaces";
+
+	    if ($long_translation)
+	    {
+			$long_translation = entity_encode($long_translation);
+			print OUTPUT "<long>$long_translation</long>";
+	    }	    
+
+	    print OUTPUT "$locale_end_spaces</locale>";
+        }
+    }
+
+    print OUTPUT $source;
+
+    close OUTPUT;
+}
+
+sub rfc822deb_merge_translations
+{
+    my %encodings = ();
+    for my $lang (keys %po_files_by_lang) {
+        $encodings{$lang} = ($UTF8_ARG ? 'UTF-8' : get_po_encoding($po_files_by_lang{$lang}));
+    }
+
+    my $source;
+
+    $Text::Wrap::huge = 'overflow';
+    $Text::Wrap::break = qr/\n|\s(?=\S)/;
+
+    {
+       local $/; # slurp mode
+       open INPUT, "<$FILE" or die "can't open $FILE: $!";
+       $source = <INPUT>;
+       close INPUT;
+    }
+
+    open OUTPUT, ">${OUTFILE}" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+
+    while ($source =~ /(^|\n+)(_*)([^:\s]+)(:[ \t]*)(.*?)(?=\n[\S\n]|$)/sg)
+    {
+	    my $sep = $1;
+	    my $non_translated_line = $3.$4;
+	    my $string = $5;
+	    my $underscore = length($2);
+	    next if $underscore eq 0 && $non_translated_line =~ /^#/;
+	    #  Remove [] dummy strings
+	    my $stripped = $string;
+	    $stripped =~ s/\[\s[^\[\]]*\],/,/g if $underscore eq 2;
+	    $stripped =~ s/\[\s[^\[\]]*\]$//;
+	    $non_translated_line .= $stripped;
+
+	    print OUTPUT $sep.$non_translated_line;
+    
+	    if ($underscore) 
+	    {
+	        my @str_list = rfc822deb_split($underscore, $string);
+
+	        for my $lang (sort keys %po_files_by_lang) 
+                {
+                    my $is_translated = 1;
+                    my $str_translated = '';
+                    my $first = 1;
+                
+                    for my $str (@str_list) 
+                    {
+                        my $translation = $translations{$lang, $str};
+                    
+                        if (!$translation) 
+                        {
+                            $is_translated = 0;
+                            last;
+                        }
+
+	                #  $translation may also contain [] dummy
+                        #  strings, mostly to indicate an empty string
+	                $translation =~ s/\[\s[^\[\]]*\]$//;
+                        
+                        if ($first) 
+                        {
+                            if ($underscore eq 2)
+                            {
+                                $str_translated .= $translation;
+                            }
+                            else
+                            {
+                                $str_translated .=
+                                    Text::Tabs::expand($translation) .
+                                    "\n";
+                            }
+                        } 
+                        else 
+                        {
+                            if ($underscore eq 2)
+                            {
+                                $str_translated .= ', ' . $translation;
+                            }
+                            else
+                            {
+                                $str_translated .= Text::Tabs::expand(
+                                    Text::Wrap::wrap(' ', ' ', $translation)) .
+                                    "\n .\n";
+                            }
+                        }
+                        $first = 0;
+
+                        #  To fix some problems with Text::Wrap::wrap
+                        $str_translated =~ s/(\n )+\n/\n .\n/g;
+                    }
+                    next unless $is_translated;
+
+                    $str_translated =~ s/\n \.\n$//;
+                    $str_translated =~ s/\s+$//;
+
+                    $_ = $non_translated_line;
+                    s/^(\w+):\s*.*/$sep${1}-$lang.$encodings{$lang}: $str_translated/s;
+                    print OUTPUT;
+                }
+	    }
+    }
+    print OUTPUT "\n";
+
+    close OUTPUT;
+    close INPUT;
+}
+
+sub rfc822deb_split 
+{
+    # Debian defines a special way to deal with rfc822-style files:
+    # when a value contain newlines, it consists of
+    #   1.  a short form (first line)
+    #   2.  a long description, all lines begin with a space,
+    #       and paragraphs are separated by a single dot on a line
+    # This routine returns an array of all paragraphs, and reformat
+    # them.
+    # When first argument is 2, the string is a comma separated list of
+    # values.
+    my $type = shift;
+    my $text = shift;
+    $text =~ s/^[ \t]//mg;
+    return (split(/, */, $text, 0)) if $type ne 1;
+    return ($text) if $text !~ /\n/;
+
+    $text =~ s/([^\n]*)\n//;
+    my @list = ($1);
+    my $str = '';
+
+    for my $line (split (/\n/, $text)) 
+    {
+        chomp $line;
+        if ($line =~ /^\.\s*$/)
+        {
+            #  New paragraph
+            $str =~ s/\s*$//;
+            push(@list, $str);
+            $str = '';
+        } 
+        elsif ($line =~ /^\s/) 
+        {
+            #  Line which must not be reformatted
+            $str .= "\n" if length ($str) && $str !~ /\n$/;
+            $line =~ s/\s+$//;
+            $str .= $line."\n";
+        } 
+        else 
+        {
+            #  Continuation line, remove newline
+            $str .= " " if length ($str) && $str !~ /\n$/;
+            $str .= $line;
+        }
+    }
+
+    $str =~ s/\s*$//;
+    push(@list, $str) if length ($str);
+
+    return @list;
+}
+
+sub quoted_translation
+{
+    my ($lang, $string) = @_;
+
+    $string =~ s/\\\"/\"/g;
+
+    my $translation = $translations{$lang, $string};
+    $translation = $string if !$translation;
+
+    $translation =~ s/\"/\\\"/g;
+    return $translation
+}
+
+sub quoted_merge_translations
+{
+    if (!$MULTIPLE_OUTPUT) {
+        print "Quoted only supports Multiple Output.\n";
+        exit(1);
+    }
+
+    for my $lang (sort keys %po_files_by_lang) {
+        if ( ! -d $lang ) {
+            mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n";
+        }
+        open INPUT, "<${FILE}" or die;
+        open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n";
+        binmode (OUTPUT) if $^O eq 'MSWin32';
+        while (<INPUT>) 
+        {
+            s/\"(([^\"]|\\\")*[^\\\"])\"/"\"" . &quoted_translation($lang, $1) . "\""/ge;
+            print OUTPUT;
+        }
+        close OUTPUT;
+        close INPUT;
+    }
+}
--- kazehakase-0.5.4.orig/intltool-update
+++ kazehakase-0.5.4/intltool-update
@@ -0,0 +1,1164 @@
+#!/usr/bin/perl -w
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4  -*-
+
+#
+#  The Intltool Message Updater
+#
+#  Copyright (C) 2000-2003 Free Software Foundation.
+#
+#  Intltool is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License 
+#  version 2 published by the Free Software Foundation.
+#
+#  Intltool is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software
+#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#  As a special exception to the GNU General Public License, if you
+#  distribute this file as part of a program that contains a
+#  configuration script generated by Autoconf, you may include it under
+#  the same distribution terms that you use for the rest of that program.
+#
+#  Authors: Kenneth Christiansen <kenneth@gnu.org>
+#           Maciej Stachowiak
+#           Darin Adler <darin@bentspoon.com>
+
+## Release information
+my $PROGRAM = "intltool-update";
+my $VERSION = "0.36.2";
+my $PACKAGE = "intltool";
+
+## Loaded modules
+use strict;
+use Getopt::Long;
+use Cwd;
+use File::Copy;
+use File::Find;
+
+## Scalars used by the option stuff
+my $HELP_ARG 	   = 0;
+my $VERSION_ARG    = 0;
+my $DIST_ARG	   = 0;
+my $POT_ARG	   = 0;
+my $HEADERS_ARG    = 0;
+my $MAINTAIN_ARG   = 0;
+my $REPORT_ARG     = 0;
+my $VERBOSE	   = 0;
+my $GETTEXT_PACKAGE = "";
+my $OUTPUT_FILE    = "";
+
+my @languages;
+my %varhash = ();
+my %po_files_by_lang = ();
+
+# Regular expressions to categorize file types.
+# FIXME: Please check if the following is correct
+
+my $xml_support =
+"xml(?:\\.in)*|".	# http://www.w3.org/XML/ (Note: .in is not required)
+"ui|".			# Bonobo specific - User Interface desc. files
+"lang|".		# ?
+"glade2?(?:\\.in)*|".	# Glade specific - User Interface desc. files (Note: .in is not required)
+"scm(?:\\.in)*|".	# ? (Note: .in is not required)
+"oaf(?:\\.in)+|".	# DEPRECATED: Replaces by Bonobo .server files 
+"etspec|".		# ?
+"server(?:\\.in)+|".	# Bonobo specific
+"sheet(?:\\.in)+|".	# ?
+"schemas(?:\\.in)+|".	# GConf specific
+"pong(?:\\.in)+|".	# DEPRECATED: PONG is not used [by GNOME] any longer.
+"kbd(?:\\.in)+|".	# GOK specific. 
+"policy(?:\\.in)+";	# PolicyKit files
+
+my $ini_support =
+"icon(?:\\.in)+|".	# http://www.freedesktop.org/Standards/icon-theme-spec
+"desktop(?:\\.in)+|".	# http://www.freedesktop.org/Standards/menu-spec
+"caves(?:\\.in)+|".	# GNOME Games specific
+"directory(?:\\.in)+|".	# http://www.freedesktop.org/Standards/menu-spec
+"soundlist(?:\\.in)+|".	# GNOME specific
+"keys(?:\\.in)+|".	# GNOME Mime database specific
+"theme(?:\\.in)+|".	# http://www.freedesktop.org/Standards/icon-theme-spec
+"service(?:\\.in)+";    # DBus specific
+
+my $buildin_gettext_support = 
+"c|y|cs|cc|cpp|c\\+\\+|h|hh|gob|py";
+
+## Always flush buffer when printing
+$| = 1;
+
+## Sometimes the source tree will be rooted somewhere else.
+my $SRCDIR = $ENV{"srcdir"} || ".";
+my $POTFILES_in;
+
+$POTFILES_in = "<$SRCDIR/POTFILES.in";
+
+my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null');
+
+## Handle options
+GetOptions 
+(
+ "help" 	       => \$HELP_ARG,
+ "version" 	       => \$VERSION_ARG,
+ "dist|d"	       => \$DIST_ARG,
+ "pot|p"	       => \$POT_ARG,
+ "headers|s"	       => \$HEADERS_ARG,
+ "maintain|m"	       => \$MAINTAIN_ARG,
+ "report|r"	       => \$REPORT_ARG,
+ "verbose|x"	       => \$VERBOSE,
+ "gettext-package|g=s" => \$GETTEXT_PACKAGE,
+ "output-file|o=s"     => \$OUTPUT_FILE,
+ ) or &Console_WriteError_InvalidOption;
+
+&Console_Write_IntltoolHelp if $HELP_ARG;
+&Console_Write_IntltoolVersion if $VERSION_ARG;
+
+my $arg_count = ($DIST_ARG > 0)
+    + ($POT_ARG > 0)
+    + ($HEADERS_ARG > 0)
+    + ($MAINTAIN_ARG > 0)
+    + ($REPORT_ARG > 0);
+
+&Console_Write_IntltoolHelp if $arg_count > 1;
+
+my $PKGNAME = FindPackageName ();
+
+# --version and --help don't require a module name
+my $MODULE = $GETTEXT_PACKAGE || $PKGNAME || "unknown";
+
+if ($POT_ARG)
+{
+    &GenerateHeaders;
+    &GeneratePOTemplate;
+}
+elsif ($HEADERS_ARG)
+{
+    &GenerateHeaders;
+}
+elsif ($MAINTAIN_ARG)
+{
+    &FindLeftoutFiles;
+}
+elsif ($REPORT_ARG)
+{
+    &GenerateHeaders;
+    &GeneratePOTemplate;
+    &Console_Write_CoverageReport;
+}
+elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/)
+{
+    my $lang = $ARGV[0];
+
+    ## Report error if the language file supplied
+    ## to the command line is non-existent
+    &Console_WriteError_NotExisting("$SRCDIR/$lang.po")
+        if ! -s "$SRCDIR/$lang.po";
+
+    if (!$DIST_ARG)
+    {
+	print "Working, please wait..." if $VERBOSE;
+	&GenerateHeaders;
+	&GeneratePOTemplate;
+    }
+    &POFile_Update ($lang, $OUTPUT_FILE);
+    &Console_Write_TranslationStatus ($lang, $OUTPUT_FILE);
+} 
+else 
+{
+    &Console_Write_IntltoolHelp;
+}
+
+exit;
+
+#########
+
+sub Console_Write_IntltoolVersion
+{
+    print <<_EOF_;
+${PROGRAM} (${PACKAGE}) $VERSION
+Written by Kenneth Christiansen, Maciej Stachowiak, and Darin Adler.
+
+Copyright (C) 2000-2003 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+    exit;
+}
+
+sub Console_Write_IntltoolHelp
+{
+    print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... LANGCODE
+Updates PO template files and merge them with the translations.
+
+Mode of operation (only one is allowed):
+  -p, --pot                   generate the PO template only
+  -s, --headers               generate the header files in POTFILES.in
+  -m, --maintain              search for left out files from POTFILES.in
+  -r, --report                display a status report for the module
+  -d, --dist                  merge LANGCODE.po with existing PO template
+
+Extra options:
+  -g, --gettext-package=NAME  override PO template name, useful with --pot
+  -o, --output-file=FILE      write merged translation to FILE
+  -x, --verbose               display lots of feedback
+      --help                  display this help and exit
+      --version               output version information and exit
+
+Examples of use:
+${PROGRAM} --pot    just create a new PO template
+${PROGRAM} xy       create new PO template and merge xy.po with it
+
+Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE")
+or send email to <xml-i18n-tools\@gnome.org>.
+_EOF_
+    exit;
+}
+
+sub echo_n
+{
+    my $str = shift;
+    my $ret = `echo "$str"`;
+
+    $ret =~ s/\n$//; # do we need the "s" flag?
+
+    return $ret;
+}
+
+sub POFile_DetermineType ($) 
+{
+   my $type = $_;
+   my $gettext_type;
+
+   my $xml_regex     = "(?:" . $xml_support . ")";
+   my $ini_regex     = "(?:" . $ini_support . ")";
+   my $buildin_regex = "(?:" . $buildin_gettext_support . ")";
+
+   if ($type =~ /\[type: gettext\/([^\]].*)]/) 
+   {
+	$gettext_type=$1;
+   }
+   elsif ($type =~ /schemas(\.in)+$/) 
+   {
+	$gettext_type="schemas";
+   }
+   elsif ($type =~ /glade2?(\.in)*$/) 
+   {
+       $gettext_type="glade";
+   }
+   elsif ($type =~ /scm(\.in)*$/) 
+   {
+       $gettext_type="scheme";
+   }
+   elsif ($type =~ /keys(\.in)+$/) 
+   {
+       $gettext_type="keys";
+   }
+
+   # bucket types
+
+   elsif ($type =~ /$xml_regex$/) 
+   {
+       $gettext_type="xml";
+   }
+   elsif ($type =~ /$ini_regex$/) 
+   { 
+       $gettext_type="ini";
+   }
+   elsif ($type =~ /$buildin_regex$/) 
+   {
+       $gettext_type="buildin";
+   }
+   else
+   { 
+       $gettext_type="unknown"; 
+   }
+
+   return "gettext\/$gettext_type";
+}
+
+sub TextFile_DetermineEncoding ($) 
+{
+    my $gettext_code="ASCII"; # All files are ASCII by default
+    my $filetype=`file $_ | cut -d ' ' -f 2`;
+
+    if ($? eq "0")
+    {
+	if ($filetype =~ /^(ISO|UTF)/)
+	{
+	    chomp ($gettext_code = $filetype);
+	}
+	elsif ($filetype =~ /^XML/)
+	{
+	    $gettext_code="UTF-8"; # We asume that .glade and other .xml files are UTF-8
+	}
+    }
+
+    return $gettext_code;
+}
+
+sub isNotValidMissing
+{
+    my ($file) = @_;
+
+    return if $file =~ /^\{arch\}\/.*$/;
+    return if $file =~ /^$varhash{"PACKAGE"}-$varhash{"VERSION"}\/.*$/;
+}
+
+sub FindLeftoutFiles
+{
+    my (@buf_i18n_plain,
+	@buf_i18n_xml,
+	@buf_i18n_xml_unmarked,
+	@buf_i18n_ini,
+	@buf_potfiles,
+	@buf_potfiles_ignore,
+	@buf_allfiles,
+	@buf_allfiles_sorted,
+	@buf_potfiles_sorted,
+        @buf_potfiles_ignore_sorted
+    );
+
+    ## Search and find all translatable files
+    find sub { 
+	push @buf_i18n_plain,        "$File::Find::name" if /\.($buildin_gettext_support)$/;
+	push @buf_i18n_xml,          "$File::Find::name" if /\.($xml_support)$/;
+	push @buf_i18n_ini,          "$File::Find::name" if /\.($ini_support)$/;
+	push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/;
+	}, "..";
+    find sub { 
+	push @buf_i18n_plain,        "$File::Find::name" if /\.($buildin_gettext_support)$/;
+	push @buf_i18n_xml,          "$File::Find::name" if /\.($xml_support)$/;
+	push @buf_i18n_ini,          "$File::Find::name" if /\.($ini_support)$/;
+	push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/;
+	}, "$SRCDIR/..";
+
+    open POTFILES, $POTFILES_in or die "$PROGRAM:  there's no POTFILES.in!\n";
+    @buf_potfiles = grep !/^(#|\s*$)/, <POTFILES>;
+    close POTFILES;
+
+    foreach (@buf_potfiles) {
+	s/^\[.*]\s*//;
+    }
+
+    print "Searching for missing translatable files...\n" if $VERBOSE;
+
+    ## Check if we should ignore some found files, when
+    ## comparing with POTFILES.in
+    foreach my $ignore ("POTFILES.skip", "POTFILES.ignore")
+    {
+	(-s "$SRCDIR/$ignore") or next;
+
+	if ("$ignore" eq "POTFILES.ignore")
+	{
+	    print "The usage of POTFILES.ignore is deprecated. Please consider moving the\n".
+		  "content of this file to POTFILES.skip.\n";
+	}
+
+	print "Found $ignore: Ignoring files...\n" if $VERBOSE;
+	open FILE, "<$SRCDIR/$ignore" or die "ERROR: Failed to open $SRCDIR/$ignore!\n";
+	    
+	while (<FILE>)
+	{
+	    push @buf_potfiles_ignore, $_ unless /^(#|\s*$)/;
+	}
+	close FILE;
+
+	@buf_potfiles_ignore_sorted = sort (@buf_potfiles_ignore);
+    }
+
+    foreach my $file (@buf_i18n_plain)
+    {
+	my $in_comment = 0;
+	my $in_macro = 0;
+
+	open FILE, "<$file";
+	while (<FILE>)
+	{
+	    # Handle continued multi-line comment.
+	    if ($in_comment)
+	    {
+		next unless s-.*\*/--;
+		$in_comment = 0;
+	    }
+
+	    # Handle continued macro.
+	    if ($in_macro)
+	    {
+		$in_macro = 0 unless /\\$/;
+		next;
+	    }
+
+	    # Handle start of macro (or any preprocessor directive).
+	    if (/^\s*\#/)
+	    {
+		$in_macro = 1 if /^([^\\]|\\.)*\\$/;
+		next;
+	    }
+
+	    # Handle comments and quoted text.
+	    while (m-(/\*|//|\'|\")-) # \' and \" keep emacs perl mode happy
+	    {
+		my $match = $1;
+		if ($match eq "/*")
+		{
+		    if (!s-/\*.*?\*/--)
+		    {
+			s-/\*.*--;
+			$in_comment = 1;
+		    }
+		}
+		elsif ($match eq "//")
+		{
+		    s-//.*--;
+		}
+		else # ' or "
+		{
+		    if (!s-$match([^\\]|\\.)*?$match-QUOTEDTEXT-)
+		    {
+			warn "mismatched quotes at line $. in $file\n";
+			s-$match.*--;
+		    }
+		}
+	    }	    
+
+	    if (/\w\.GetString *\(QUOTEDTEXT/)
+	    {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    ## Remove the first 3 chars and add newline
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+		last;
+	    }
+
+            ## N_ Q_ and _ are the three macros defined in gi8n.h
+	    if (/[NQ]?_ *\(QUOTEDTEXT/)
+	    {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    ## Remove the first 3 chars and add newline
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+		last;
+	    }
+	}
+	close FILE;
+    }
+
+    foreach my $file (@buf_i18n_xml) 
+    {
+	open FILE, "<$file";
+	
+	while (<FILE>) 
+	{
+	    # FIXME: share the pattern matching code with intltool-extract
+	    if (/\s_[-A-Za-z0-9._:]+\s*=\s*\"([^"]+)\"/ || /<_[^>]+>/ || /translatable=\"yes\"/)
+	    {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+		last;
+	    }
+	}
+	close FILE;
+    }
+
+    foreach my $file (@buf_i18n_ini)
+    {
+	open FILE, "<$file";
+	while (<FILE>) 
+	{
+	    if (/_(.*)=/)
+	    {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+		last;
+	    }
+	}
+	close FILE;
+    }
+
+    foreach my $file (@buf_i18n_xml_unmarked)
+    {
+        if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+            push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+        }
+    }
+
+
+    @buf_allfiles_sorted = sort (@buf_allfiles);
+    @buf_potfiles_sorted = sort (@buf_potfiles);
+
+    my %in2;
+    foreach (@buf_potfiles_sorted) 
+    {
+        s#^$SRCDIR/../##;
+        s#^$SRCDIR/##;
+	$in2{$_} = 1;
+    }
+
+    foreach (@buf_potfiles_ignore_sorted) 
+    {
+        s#^$SRCDIR/../##;
+        s#^$SRCDIR/##;
+	$in2{$_} = 1;
+    }
+
+    my @result;
+
+    foreach (@buf_allfiles_sorted)
+    {
+        my $dummy = $_;
+        my $srcdir = $SRCDIR;
+
+        $srcdir =~ s#^../##;
+        $dummy =~ s#^$srcdir/../##;
+        $dummy =~ s#^$srcdir/##;
+        $dummy =~ s#_build/##;
+	if (!exists($in2{$dummy}))
+	{
+	    push @result, $dummy
+	}
+    }
+
+    my @buf_potfiles_notexist;
+
+    foreach (@buf_potfiles_sorted)
+    {
+	chomp (my $dummy = $_);
+	if ("$dummy" ne "" and !(-f "$SRCDIR/../$dummy" or -f "../$dummy"))
+	{
+	    push @buf_potfiles_notexist, $_;
+	}
+    }
+
+    ## Save file with information about the files missing
+    ## if any, and give information about this procedure.
+    if (@result + @buf_potfiles_notexist > 0)
+    {
+	if (@result) 
+	{
+	    print "\n" if $VERBOSE;
+	    unlink "missing";
+	    open OUT, ">missing";
+	    print OUT @result;
+	    close OUT;
+	    warn "\e[1mThe following files contain translations and are currently not in use. Please\e[0m\n".
+	         "\e[1mconsider adding these to the POTFILES.in file, located in the po/ directory.\e[0m\n\n";
+	    print STDERR @result, "\n";
+	    warn "If some of these files are left out on purpose then please add them to\n".
+		 "POTFILES.skip instead of POTFILES.in. A file \e[1m'missing'\e[0m containing this list\n".
+		 "of left out files has been written in the current directory.\n";
+	}
+	if (@buf_potfiles_notexist)
+	{
+	    unlink "notexist";
+	    open OUT, ">notexist";
+	    print OUT @buf_potfiles_notexist;
+	    close OUT;
+	    warn "\n" if ($VERBOSE or @result);
+	    warn "\e[1mThe following files do not exist anymore:\e[0m\n\n";
+	    warn @buf_potfiles_notexist, "\n";
+	    warn "Please remove them from POTFILES.in. A file \e[1m'notexist'\e[0m\n".
+		 "containing this list of absent files has been written in the current directory.\n";
+	}
+    }
+
+    ## If there is nothing to complain about, notify the user
+    else {
+	print "\nAll files containing translations are present in POTFILES.in.\n" if $VERBOSE;
+    }
+}
+
+sub Console_WriteError_InvalidOption
+{
+    ## Handle invalid arguments
+    print STDERR "Try `${PROGRAM} --help' for more information.\n";
+    exit 1;
+}
+
+sub isProgramInPath
+{
+    my ($file) = @_;
+    # If either a file exists, or when run it returns 0 exit status
+    return 1 if ((-x $file) or (system("$file --version >$devnull") == 0));
+    return 0;
+}
+
+sub isGNUGettextTool
+{
+    my ($file) = @_;
+    # Check that we are using GNU gettext tools
+    if (isProgramInPath ($file))
+    {
+        my $version = `$file --version`;
+        return 1 if ($version =~ m/.*\(GNU .*\).*/);
+    }
+    return 0;
+}
+
+sub GenerateHeaders
+{
+    my $EXTRACT = $ENV{"INTLTOOL_EXTRACT"} || "intltool-extract";
+
+    ## Generate the .h header files, so we can allow glade and
+    ## xml translation support
+    if (! isProgramInPath ("$EXTRACT"))
+    {
+	print STDERR "\n *** The intltool-extract script wasn't found!"
+	     ."\n *** Without it, intltool-update can not generate files.\n";
+	exit;
+    }
+    else
+    {
+	open (FILE, $POTFILES_in) or die "$PROGRAM: POTFILES.in not found.\n";
+	
+	while (<FILE>) 
+	{
+	   chomp;
+	   next if /^\[\s*encoding/;
+
+	   ## Find xml files in POTFILES.in and generate the
+	   ## files with help from the extract script
+
+	   my $gettext_type= &POFile_DetermineType ($1);
+
+	   if (/\.($xml_support|$ini_support)$/ || /^\[/)
+	   {
+	       s/^\[[^\[].*]\s*//;
+
+	       my $filename = "../$_";
+
+	       if ($VERBOSE)
+	       {
+		   system ($EXTRACT, "--update", "--srcdir=$SRCDIR",
+			   "--type=$gettext_type", $filename);
+	       } 
+	       else 
+	       {
+	 	   system ($EXTRACT, "--update", "--type=$gettext_type", 
+			   "--srcdir=$SRCDIR", "--quiet", $filename);
+	       }
+	   }
+       }
+       close FILE;
+   }
+}
+
+#
+# Generate .pot file from POTFILES.in
+#
+sub GeneratePOTemplate
+{
+    my $XGETTEXT = $ENV{"XGETTEXT"} || "xgettext";
+    my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || '';
+    chomp $XGETTEXT;
+
+    if (! isGNUGettextTool ("$XGETTEXT"))
+    {
+	print STDERR " *** GNU xgettext is not found on this system!\n".
+		     " *** Without it, intltool-update can not extract strings.\n";
+	exit;
+    }
+
+    print "Building $MODULE.pot...\n" if $VERBOSE;
+
+    open INFILE, $POTFILES_in;
+    unlink "POTFILES.in.temp";
+    open OUTFILE, ">POTFILES.in.temp" or die("Cannot open POTFILES.in.temp for writing");
+
+    my $gettext_support_nonascii = 0;
+
+    # checks for GNU gettext >= 0.12
+    my $dummy = `$XGETTEXT --version --from-code=UTF-8 >$devnull 2>$devnull`;
+    if ($? == 0)
+    {
+	$gettext_support_nonascii = 1;
+    }
+    else
+    {
+	# urge everybody to upgrade gettext
+	print STDERR "WARNING: This version of gettext does not support extracting non-ASCII\n".
+		     "         strings. That means you should install a version of gettext\n".
+		     "         that supports non-ASCII strings (such as GNU gettext >= 0.12),\n".
+		     "         or have to let non-ASCII strings untranslated. (If there is any)\n";
+    }
+
+    my $encoding = "ASCII";
+    my $forced_gettext_code;
+    my @temp_headers;
+    my $encoding_problem_is_reported = 0;
+
+    while (<INFILE>) 
+    {
+	next if (/^#/ or /^\s*$/);
+
+	chomp;
+
+	my $gettext_code;
+
+	if (/^\[\s*encoding:\s*(.*)\s*\]/)
+	{
+	    $forced_gettext_code=$1;
+	}
+	elsif (/\.($xml_support|$ini_support)$/ || /^\[/)
+	{
+	    s/^\[.*]\s*//;
+            print OUTFILE "../$_.h\n";
+	    push @temp_headers, "../$_.h";
+	    $gettext_code = &TextFile_DetermineEncoding ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code);
+	} 
+	else 
+	{
+            print OUTFILE "$SRCDIR/../$_\n";
+	    $gettext_code = &TextFile_DetermineEncoding ("$SRCDIR/../$_") if ($gettext_support_nonascii and not defined $forced_gettext_code);
+	}
+
+	next if (! $gettext_support_nonascii);
+
+	if (defined $forced_gettext_code)
+	{
+	    $encoding=$forced_gettext_code;
+	}
+	elsif (defined $gettext_code and "$encoding" ne "$gettext_code")
+	{
+	    if ($encoding eq "ASCII")
+	    {
+		$encoding=$gettext_code;
+	    }
+	    elsif ($gettext_code ne "ASCII")
+	    {
+		# Only report once because the message is quite long
+		if (! $encoding_problem_is_reported)
+		{
+		    print STDERR "WARNING: You should use the same file encoding for all your project files,\n".
+				 "         but $PROGRAM thinks that most of the source files are in\n".
+				 "         $encoding encoding, while \"$_\" is (likely) in\n".
+		       		 "         $gettext_code encoding. If you are sure that all translatable strings\n".
+				 "         are in same encoding (say UTF-8), please \e[1m*prepend*\e[0m the following\n".
+				 "         line to POTFILES.in:\n\n".
+				 "                 [encoding: UTF-8]\n\n".
+				 "         and make sure that configure.in/ac checks for $PACKAGE >= 0.27 .\n".
+				 "(such warning message will only be reported once.)\n";
+		    $encoding_problem_is_reported = 1;
+		}
+	    }
+	}
+    }
+
+    close OUTFILE;
+    close INFILE;
+
+    unlink "$MODULE.pot";
+    my @xgettext_argument=("$XGETTEXT",
+			   "--add-comments",
+			   "--directory\=.",
+                           "--default-domain\=$MODULE",
+                           "--flag\=g_strdup_printf:1:c-format",
+                           "--flag\=g_string_printf:2:c-format",
+                           "--flag\=g_string_append_printf:2:c-format",
+                           "--flag\=g_error_new:3:c-format",
+                           "--flag\=g_set_error:4:c-format",
+                           "--flag\=g_markup_printf_escaped:1:c-format",
+                           "--flag\=g_log:3:c-format",
+                           "--flag\=g_print:1:c-format",
+                           "--flag\=g_printerr:1:c-format",
+                           "--flag\=g_printf:1:c-format",
+                           "--flag\=g_fprintf:2:c-format",
+                           "--flag\=g_sprintf:2:c-format",
+                           "--flag\=g_snprintf:3:c-format",
+                           "--flag\=g_scanner_error:2:c-format",
+                           "--flag\=g_scanner_warn:2:c-format",
+			   "--output\=$MODULE\.pot",
+			   "--files-from\=\.\/POTFILES\.in\.temp");
+    my $XGETTEXT_KEYWORDS = &FindPOTKeywords;
+    push @xgettext_argument, $XGETTEXT_KEYWORDS;
+    my $MSGID_BUGS_ADDRESS = &FindMakevarsBugAddress;
+    push @xgettext_argument, "--msgid-bugs-address\=$MSGID_BUGS_ADDRESS" if $MSGID_BUGS_ADDRESS;
+    push @xgettext_argument, "--from-code\=$encoding" if ($gettext_support_nonascii);
+    push @xgettext_argument, $XGETTEXT_ARGS if $XGETTEXT_ARGS;
+    my $xgettext_command = join ' ', @xgettext_argument;
+
+    # intercept xgettext error message
+    print "Running $xgettext_command\n" if $VERBOSE;
+    my $xgettext_error_msg = `$xgettext_command 2>\&1`;
+    my $command_failed = $?;
+
+    unlink "POTFILES.in.temp";
+
+    print "Removing generated header (.h) files..." if $VERBOSE;
+    unlink foreach (@temp_headers);
+    print "done.\n" if $VERBOSE;
+
+    if (! $command_failed)
+    {
+	if (! -e "$MODULE.pot")
+	{
+	    print "None of the files in POTFILES.in contain strings marked for translation.\n" if $VERBOSE;
+	}
+	else
+	{
+	    print "Wrote $MODULE.pot\n" if $VERBOSE;
+	}
+    }
+    else
+    {
+	if ($xgettext_error_msg =~ /--from-code/)
+	{
+	    # replace non-ASCII error message with a more useful one.
+	    print STDERR "ERROR: xgettext failed to generate PO template file because there is non-ASCII\n".
+			 "       string marked for translation. Please make sure that all strings marked\n".
+			 "       for translation are in uniform encoding (say UTF-8), then \e[1m*prepend*\e[0m the\n".
+			 "       following line to POTFILES.in and rerun $PROGRAM:\n\n".
+			 "           [encoding: UTF-8]\n\n";
+	}
+	else
+	{
+	    print STDERR "$xgettext_error_msg";
+	    if (-e "$MODULE.pot")
+	    {
+		# is this possible?
+		print STDERR "ERROR: xgettext failed but still managed to generate PO template file.\n".
+			     "       Please consult error message above if there is any.\n";
+	    }
+	    else
+	    {
+		print STDERR "ERROR: xgettext failed to generate PO template file. Please consult\n".
+			     "       error message above if there is any.\n";
+	    }
+	}
+	exit (1);
+    }
+}
+
+sub POFile_Update
+{
+    -f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n";
+
+    my $MSGMERGE = $ENV{"MSGMERGE"} || "msgmerge";
+    my ($lang, $outfile) = @_;
+
+    if (! isGNUGettextTool ("$MSGMERGE"))
+    {
+	print STDERR " *** GNU msgmerge is not found on this system!\n".
+		     " *** Without it, intltool-update can not extract strings.\n";
+	exit;
+    }
+
+    print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE;
+
+    my $infile = "$SRCDIR/$lang.po";
+    $outfile = "$SRCDIR/$lang.po" if ($outfile eq "");
+
+    # I think msgmerge won't overwrite old file if merge is not successful
+    system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot");
+}
+
+sub Console_WriteError_NotExisting
+{
+    my ($file) = @_;
+
+    ## Report error if supplied language file is non-existing
+    print STDERR "$PROGRAM: $file does not exist!\n";
+    print STDERR "Try '$PROGRAM --help' for more information.\n";
+    exit;
+}
+
+sub GatherPOFiles
+{
+    my @po_files = glob ("./*.po");
+
+    @languages = map (&POFile_GetLanguage, @po_files);
+
+    foreach my $lang (@languages) 
+    {
+	$po_files_by_lang{$lang} = shift (@po_files);
+    }
+}
+
+sub POFile_GetLanguage ($)
+{
+    s/^(.*\/)?(.+)\.po$/$2/;
+    return $_;
+}
+
+sub Console_Write_TranslationStatus
+{
+    my ($lang, $output_file) = @_;
+    my $MSGFMT = $ENV{"MSGFMT"} || "msgfmt";
+
+    if (! isGNUGettextTool ("$MSGFMT"))
+    {
+	print STDERR " *** GNU msgfmt is not found on this system!\n".
+		     " *** Without it, intltool-update can not extract strings.\n";
+	exit;
+    }
+
+    $output_file = "$SRCDIR/$lang.po" if ($output_file eq "");
+
+    system ("$MSGFMT", "-o", "$devnull", "--verbose", $output_file);
+}
+
+sub Console_Write_CoverageReport
+{
+    my $MSGFMT = $ENV{"MSGFMT"} || "msgfmt";
+
+    if (! isGNUGettextTool ("$MSGFMT"))
+    {
+	print STDERR " *** GNU msgfmt is not found on this system!\n".
+		     " *** Without it, intltool-update can not extract strings.\n";
+	exit;
+    }
+
+    &GatherPOFiles;
+
+    foreach my $lang (@languages) 
+    {
+	print STDERR "$lang: ";
+	&POFile_Update ($lang, "");
+    }
+
+    print STDERR "\n\n * Current translation support in $MODULE \n\n";
+
+    foreach my $lang (@languages)
+    {
+	print STDERR "$lang: ";
+	system ("$MSGFMT", "-o", "$devnull", "--verbose", "$SRCDIR/$lang.po");
+    }
+}
+
+sub SubstituteVariable
+{
+    my ($str) = @_;
+    
+    # always need to rewind file whenever it has been accessed
+    seek (CONF, 0, 0);
+
+    # cache each variable. varhash is global to we can add
+    # variables elsewhere.
+    while (<CONF>)
+    {
+	if (/^(\w+)=(.*)$/)
+	{
+	    ($varhash{$1} = $2) =~  s/^["'](.*)["']$/$1/;
+	}
+    }
+    
+    if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/)
+    {
+	my $rest = $3;
+	my $untouched = $1;
+	my $sub = "";
+        # Ignore recursive definitions of variables
+        $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/;
+
+	return SubstituteVariable ("$untouched$sub$rest");
+    }
+    
+    # We're using Perl backticks ` and "echo -n" here in order to 
+    # expand any shell escapes (such as backticks themselves) in every variable
+    return echo_n ($str);
+}
+
+sub CONF_Handle_Open
+{
+    my $base_dirname = getcwd();
+    $base_dirname =~ s@.*/@@;
+
+    my ($conf_in, $src_dir);
+
+    if ($base_dirname =~ /^po(-.+)?$/) 
+    {
+	if (-f "Makevars") 
+	{
+	    my $makefile_source;
+
+	    local (*IN);
+	    open (IN, "<Makevars") || die "can't open Makevars: $!";
+
+	    while (<IN>) 
+	    {
+		if (/^top_builddir[ \t]*=/) 
+		{
+		    $src_dir = $_;
+		    $src_dir =~ s/^top_builddir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/;
+
+		    chomp $src_dir;
+                    if (-f "$src_dir" . "/configure.ac") {
+                        $conf_in = "$src_dir" . "/configure.ac" . "\n";
+                    } else {
+                        $conf_in = "$src_dir" . "/configure.in" . "\n";
+                    }
+		    last;
+		}
+	    }
+	    close IN;
+
+	    $conf_in || die "Cannot find top_builddir in Makevars.";
+	}
+	elsif (-f "$SRCDIR/../configure.ac") 
+	{
+	    $conf_in = "$SRCDIR/../configure.ac";
+	} 
+	elsif (-f "$SRCDIR/../configure.in") 
+	{
+	    $conf_in = "$SRCDIR/../configure.in";
+	} 
+	else 
+	{
+	    my $makefile_source;
+
+	    local (*IN);
+	    open (IN, "<Makefile") || return;
+
+	    while (<IN>) 
+	    {
+		if (/^top_srcdir[ \t]*=/) 
+		{
+		    $src_dir = $_;		    
+		    $src_dir =~ s/^top_srcdir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/;
+
+		    chomp $src_dir;
+		    $conf_in = "$src_dir" . "/configure.in" . "\n";
+
+		    last;
+		}
+	    }
+	    close IN;
+
+	    $conf_in || die "Cannot find top_srcdir in Makefile.";
+	}
+
+	open (CONF, "<$conf_in");
+    }
+    else
+    {
+	print STDERR "$PROGRAM: Unable to proceed.\n" .
+		     "Make sure to run this script inside the po directory.\n";
+	exit;
+    }
+}
+
+sub FindPackageName
+{
+    my $version;
+    my $domain = &FindMakevarsDomain;
+    my $name = $domain || "untitled";
+
+    &CONF_Handle_Open;
+
+    my $conf_source; {
+	local (*IN);
+	open (IN, "<&CONF") || return $name;
+	seek (IN, 0, 0);
+	local $/; # slurp mode
+	$conf_source = <IN>;
+	close IN;
+    }
+
+    # priority for getting package name:
+    # 1. GETTEXT_PACKAGE
+    # 2. first argument of AC_INIT (with >= 2 arguments)
+    # 3. first argument of AM_INIT_AUTOMAKE (with >= 2 argument)
+
+    # /^AM_INIT_AUTOMAKE\([\s\[]*([^,\)\s\]]+)/m 
+    # the \s makes this not work, why?
+    if ($conf_source =~ /^AM_INIT_AUTOMAKE\(([^,\)]+),([^,\)]+)/m)
+    {
+	($name, $version) = ($1, $2);
+	$name    =~ s/[\[\]\s]//g;
+	$version =~ s/[\[\]\s]//g;
+	$varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
+	$varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+	$varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
+	$varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
+    }
+    
+    if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)/m) 
+    {
+	($name, $version) = ($1, $2);
+	$name    =~ s/[\[\]\s]//g;
+	$version =~ s/[\[\]\s]//g;
+	$varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
+	$varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+	$varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
+	$varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
+    }
+
+    # \s makes this not work, why?
+    $name = $1 if $conf_source =~ /^GETTEXT_PACKAGE=\[?([^\n\]]+)/m;
+    
+    # m4 macros AC_PACKAGE_NAME, AC_PACKAGE_VERSION etc. have same value
+    # as corresponding $PACKAGE_NAME, $PACKAGE_VERSION etc. shell variables.
+    $name =~ s/\bAC_PACKAGE_/\$PACKAGE_/g;
+
+    $name = $domain if $domain;
+
+    $name = SubstituteVariable ($name);
+    $name =~ s/^["'](.*)["']$/$1/;
+
+    return $name if $name;
+}
+
+
+sub FindPOTKeywords
+{
+
+    my $keywords = "--keyword\=\_ --keyword\=N\_ --keyword\=U\_ --keyword\=Q\_";
+    my $varname = "XGETTEXT_OPTIONS";
+    my $make_source; {
+	local (*IN);
+	open (IN, "<Makevars") || (open(IN, "<Makefile.in.in") && ($varname = "XGETTEXT_KEYWORDS")) || return $keywords;
+	seek (IN, 0, 0);
+	local $/; # slurp mode
+	$make_source = <IN>;
+	close IN;
+    }
+
+    $keywords = $1 if $make_source =~ /^$varname[ ]*=\[?([^\n\]]+)/m;
+    
+    return $keywords;
+}
+
+sub FindMakevarsDomain
+{
+
+    my $domain = "";
+    my $makevars_source; { 
+	local (*IN);
+	open (IN, "<Makevars") || return $domain;
+	seek (IN, 0, 0);
+	local $/; # slurp mode
+	$makevars_source = <IN>;
+	close IN;
+    }
+
+    $domain = $1 if $makevars_source =~ /^DOMAIN[ ]*=\[?([^\n\]\$]+)/m;
+    $domain =~ s/^\s+//;
+    $domain =~ s/\s+$//;
+    
+    return $domain;
+}
+
+sub FindMakevarsBugAddress
+{
+
+    my $address = "";
+    my $makevars_source; { 
+	local (*IN);
+	open (IN, "<Makevars") || return undef;
+	seek (IN, 0, 0);
+	local $/; # slurp mode
+	$makevars_source = <IN>;
+	close IN;
+    }
+
+    $address = $1 if $makevars_source =~ /^MSGID_BUGS_ADDRESS[ ]*=\[?([^\n\]\$]+)/m;
+    $address =~ s/^\s+//;
+    $address =~ s/\s+$//;
+    
+    return $address;
+}
--- kazehakase-0.5.4.orig/debian/kaze_icon.xpm
+++ kazehakase-0.5.4/debian/kaze_icon.xpm
@@ -0,0 +1,52 @@
+/* XPM */
+static char * kaze_icon_xpm[] = {
+"32 32 17 1",
+" 	c None",
+".	c #333333",
+"+	c #191919",
+"@	c #4C4C4C",
+"#	c #B2B2B2",
+"$	c #999999",
+"%	c #666667",
+"&	c #7F7F7F",
+"*	c #CCCCCC",
+"=	c #000000",
+"-	c #7F7F00",
+";	c #FFFF00",
+">	c #007F7F",
+",	c #E5E5E5",
+"'	c #00007F",
+")	c #00FFFF",
+"!	c #007F00",
+"                                ",
+"                                ",
+"                                ",
+"             ===+==             ",
+"          =+++....+++=          ",
+"         ++.@$*,,*#%.++         ",
+"       =++.>#,*,*,**$.++=       ",
+"      ++.+@#####***##%..+=      ",
+"      +...@$&####$$#,&@@@+      ",
+"     +..'+.>%%%>&$#&,$$#-@+     ",
+"    =+..+++@@@.@@-#%,@#;#@.=    ",
+"    +......++@$*$+.@*+-;*%.+    ",
+"    ..>...%+%.*%+..@#+%**%..    ",
+"   '..@@..&@&+&.+.+@&.-;-@@.=   ",
+"   +.@@>..&+@+&@%#+@&.$*%.>.+   ",
+"   +.@@@@.&.*@%@%$+@-@;$+.@.+   ",
+"   +@>@%&%%+%+%#$..@$#*@++@@+   ",
+"   '@@>&*$@.+@#%++@.;*-@++@@+   ",
+"   +@@&**#+@.+$+.@.$;%%@++@@+   ",
+"   '@%-;,&+..%#.@$##*@@%..@@=   ",
+"    .%$,*.%&&$&.-*;@-#+>+.@.    ",
+"    +%-;#@.@.@-#*-@++*@.+%@+    ",
+"    =@-;,*#$#*;#-%%%@%*%@&.=    ",
+"     +-#;;*;*#$$&&&&&@$,,$=     ",
+"      .-&$#$$$$$$$$$$&%%#@=     ",
+"       @!&$$#$#$##$##$$@.+      ",
+"        .%$$#########$>.        ",
+"         +>&>$#$)#$$&%.         ",
+"           .@>&%&%>@.+          ",
+"              '+++              ",
+"                                ",
+"                                "};
--- kazehakase-0.5.4.orig/debian/NEWS.Debian
+++ kazehakase-0.5.4/debian/NEWS.Debian
@@ -0,0 +1,13 @@
+kazehakase (0.5.4-1) unstable; urgency=low
+
+  * WebKit is now supported by Kazehakase.  The browser itself is still
+    in the 'kazehakase' package, while the gecko rendering engine has been
+    broken out into 'kazehakase-gecko'.  Installing the 'kazehakase-webkit'
+    package and selecting 'webkit_gtk' as the layout engine (or removing
+    the 'kazehakase-gecko' package) will switch you to the new engine.
+    IT IS STILL EXPERIMENTAL.  It has not been widely tested, and I've
+    noticed a number of bugs while using it.  If you're looking for
+    stability: STICK WITH GECKO FOR NOW.
+
+ -- Andres Salomon <dilinger@debian.org>  Wed, 16 Apr 2008 17:33:32 +0000
+
--- kazehakase-0.5.4.orig/debian/control
+++ kazehakase-0.5.4/debian/control
@@ -0,0 +1,31 @@
+Source: kazehakase
+Section: web
+Priority: optional
+Maintainer: Hidetaka Iwai <tyuyu@debian.or.jp>
+Uploaders: Andres Salomon <dilinger@debian.org>
+Build-Depends: debhelper(>> 4.0.0), dpatch, libatk1.0-dev, libglib2.0-dev, libgtk2.0-dev (>= 2.12.0), libpango1.0-dev, xulrunner-dev (>= 1.9~rc2-3), libgnutls-dev (>= 1.2.6), ruby1.8, ruby1.8-dev, libgtk2-ruby, libgettext-ruby1.8, libxml-parser-perl
+Standards-Version: 3.7.3
+
+Package: kazehakase
+Architecture: any
+Suggests: migemo
+Recommends: hyperestraier
+Provides: www-browser
+Depends: ${shlibs:Depends}, kazehakase-gecko, ruby1.8, libgtk2-ruby, libgettext-ruby1.8
+Conflicts: kazehakase-migemo
+Description: GTK+-base web browser that allows pluggable rendering engines
+ Kazehakase is a web browser that can use either Gecko or WebKit as
+ its rendering engine.
+ .
+ Kazehakase has a toolbar with rss/rdf menus, rss/rdf viewer, normal bookmarks,
+ search window for google.  These are to be available as plugins.
+
+Package: kazehakase-gecko
+Architecture: any
+Depends: ${gecko:Depends}, xulrunner-1.9 (>= 1.9~rc2-3)
+Replaces: kazehakase
+Description: Gecko rendering engine for kazehakase
+ Kazehakase is a web browser that can use either Gecko or WebKit as
+ its rendering engine.
+ .
+ This is the Gecko rendering engine plugin.
--- kazehakase-0.5.4.orig/debian/docs
+++ kazehakase-0.5.4/debian/docs
@@ -0,0 +1,4 @@
+README
+README.ja
+TODO
+TODO.ja
--- kazehakase-0.5.4.orig/debian/compat
+++ kazehakase-0.5.4/debian/compat
@@ -0,0 +1,2 @@
+4
+
--- kazehakase-0.5.4.orig/debian/changelog
+++ kazehakase-0.5.4/debian/changelog
@@ -0,0 +1,1012 @@
+kazehakase (0.5.4-2.2) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Disable building of webkit stuff as it's not going to be in lenny
+
+ -- Neil McGovern <neilm@debian.org>  Sun, 04 Jan 2009 14:55:13 +0000
+
+kazehakase (0.5.4-2.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * debian/control:
+    + Build-depend on xulrunner-dev instead of libxul-dev (closes: #480796).
+    + Version the build dependency on xulrunner-dev, for nsIBadCertListener.
+    + Make kazehakase-gecko depend on xulrunner-1.9.
+  * debian/rules: build with --with-gecko-engine=libxul --disable-gtkmozembed
+    to build against standalone xpcom glue.
+  * debian/patches/90_xulrunner_1.9.dpatch: Better support for xulrunner-1.9.
+  * debian/patches/00list: Added 90_xulrunner_1.9.
+
+ -- Mike Hommey <glandium@debian.org>  Sat, 21 Jun 2008 16:34:43 +0200
+
+kazehakase (0.5.4-2) unstable; urgency=low
+
+  * Add a Replaces: kazehakase to kazehakase-gecko, as the older version of
+    kazehakase also has a gecko.so (closes: #477755).
+  * Fix package descriptions (closes: #478128).
+  * Stop kazehakase rendering engines from depending upon kazehakase, thereby
+    eliminating a circular dependency (closes: #478691).
+
+ -- Andres Salomon <dilinger@debian.org>  Mon, 05 May 2008 04:12:46 +0000
+
+kazehakase (0.5.4-1) unstable; urgency=low
+
+  * New upstream release.
+  * Upstream release fixes FTBFS with gcc-4.3 (closes: #474858).
+  * Add webkit support, which means libwebkit-dev as a build-dep,
+    an updated description, and kazehakase-gecko/kazehakase-webkit
+    packages (closes: #470088).
+
+ -- Andres Salomon <dilinger@debian.org>  Wed, 16 Apr 2008 17:33:32 +0000
+
+kazehakase (0.5.3-1) unstable; urgency=low
+
+  * New upstream release (closes: #469784).
+  * Upstream included implicit-pointer-conversion patch (closes: #466934).
+  * Upstream also fixed a bug that was triggering a crash when opening
+    up the prefs window (closes: #465967, #454107).
+  * Drop 80_NSIBADCERTLISTNER; merged upstream.
+
+ -- Andres Salomon <dilinger@debian.org>  Fri, 07 Mar 2008 18:05:30 +0000
+
+kazehakase (0.5.2-1) unstable; urgency=high
+
+  * New upstream release (closes: #430613).
+  * Add myself as a co-maintainer.  I was originally going to just NMU,
+    but I don't feel right about NMU'ing a new upstream version.
+  * Add a versioned build-dep for libgtk2.0-dev (>= 2.12.0).
+  * ACK NMU (closes: #460742).
+  * Drop libtool and automake1.7 build-deps, and no longer regenerate
+    autotools scripts during build.  It's no longer necessary.
+  * Update 20_user_agent_tag.dpatch for the new location/file.
+  * Rediff 50_passwordmgr.dpatch.
+  * No longer use 05_add_missing.dpatch or 70_enable_gtk_deprecated.dpatch.
+  * Add build-dep on libxml-parser-perl.
+  * Add missing --with-ruby to configure line in rules file; necessary
+    for telling the build that the ruby interpreter is named 'ruby1.8'.
+  * Don't ignore 'make distclean' errors.  This pleases lintian.
+  * Don't run dh_makeshlibs during build.  libkazehakase.so is in a
+    private directory, makeshlibs does nothing for us.
+  * Update debian/copyright; add copyright lines, include the MPL
+    exception clause, etc.
+  * Update menu to show up as 'Kazehakase Web Browser' (and stick it in
+    the proper section).
+  * Fix other minor lintian warnings.
+  * Add patches/80_NSIBADCERTLISTNER.dpatch to fix a bug with the wrong
+    certificate dialog coming up on domain mismatches.
+
+ -- Andres Salomon <dilinger@debian.org>  Wed, 20 Feb 2008 17:57:38 +0000
+
+kazehakase (0.4.3-1.2) unstable; urgency=high
+
+  * Non-maintainer upload to fix RC bug.
+  * Depend (and use) on ruby1.8, not ruby. Closes: #460742.
+
+ -- Lucas Nussbaum <lucas@lucas-nussbaum.net>  Mon, 11 Feb 2008 10:34:56 +0100
+
+kazehakase (0.4.3-1.1) unstable; urgency=low
+
+  * Non-maintainer upload to fix RC bug.
+  * Unset GTK_DISABLE_DEPRECATED to handle with obsolte GTK stuff.
+    Slightly modified patch made by Arnaud Renevier <arenevier@fdn.fr>.
+    (Closes: #444513)
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Mon, 22 Oct 2007 04:58:53 +0200
+
+kazehakase (0.4.3-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/debian/patches/50_passwordmgr.dpatch: Change the default value
+    of signon.rememberSignons to false. The password manager of kazehakase
+    is broken and if signon.rememberSignons is set true, input forms which
+    require password does not work. (closes: #389954)
+  * debian/patches/70_fix_certificate_overview.dpatch: Removed
+    because this is already fixed by upstream.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 21 Jan 2007 08:40:07 +0900
+
+kazehakase (0.4.2-2) unstable; urgency=low
+
+  * debian/rules: Remove -Wall option from CXXFLAGS to fix FTBFS.
+    debian/patches/60_fix_ftbfs.dpatch is not needed any more. 
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 11 Nov 2006 19:58:46 +0900
+
+kazehakase (0.4.2-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/patches/60_fix_ftbfs.dpatch: Fixed FTBFS bug due to the new
+    gecko API checking code.
+  * debian/patches/70_fix_certificate_overview.dpatch: Fix wrong labels
+    in Certificate Properties dialog (closes: #394029). 
+    Thanks to Jan Jeronym Zvanovec <jero@email.cz> fot the patch.
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 11 Nov 2006 18:30:02 +0900
+
+kazehakase (0.4.1-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Tue,  7 Nov 2006 23:26:05 +0900
+
+kazehakase (0.4.0-1) unstable; urgency=low
+
+  * New upstream release
+  * Acknowledge NMU (closes: #380466). Thanks to Gerfried Fuchs, 
+    Yavor Doganov, Mike Hommey, and Andreas Barth!
+  * My first upload without sponsor. Thanks to Fimitoshi UKAI for
+    sponsoring me over the past two years.
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Tue,  7 Nov 2006 22:55:18 +0900
+
+kazehakase (0.3.9-1.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * debian/patches/50_passwordmgr.dpatch: Fixed crasher in
+    GtkPromptService.cpp when signon.rememberSignons is not set, which
+    happens to be the case with xulrunner but not with mozilla.  Also
+    set it if not already user set. Closes:#380466
+    Thanks to Gerfried Fuchs and Yavor Doganov for their help.
+    Thanks to Mike Hommey for the fix.
+
+ -- Andreas Barth <aba@not.so.argh.org>  Sat,  9 Sep 2006 12:46:39 +0200
+
+kazehakase (0.3.9-1) unstable; urgency=low
+
+  * New upstream release.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun,  6 Aug 2006 03:33:07 +0900
+
+kazehakase (0.3.8-3) unstable; urgency=low
+
+  * Changed to use xulrunner instead of mozilla-browser
+  (Thanks to Mike Hommey <glandium@debian.org>) (closes: #352084)
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka IWAI <tyuyu@debian.or.jp>  Wed, 26 Jul 2006 23:03:12 +0900
+
+kazehakase (0.3.8-2) unstable; urgency=low
+
+  * Rebuilt against mozilla-1.7.13
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 25 Jun 2006 15:57:29 +0900
+
+kazehakase (0.3.8-1) unstable; urgency=low
+
+  * New upstream release
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>. 
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun,  4 Jun 2006 23:58:02 +0900
+
+kazehakase (0.3.7-1) unstable; urgency=low
+
+  * New upstream release
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon,  1 May 2006 23:14:05 +0900
+
+kazehakase (0.3.6-1) unstable; urgency=low
+
+  * New upstream release
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed, 29 Mar 2006 02:29:32 +0900
+
+kazehakase (0.3.5-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/control: 
+   - Added ruby extension stuffs.
+   - Added hyperestraier to Suggests: field instead of estraier.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu,  9 Feb 2006 18:59:47 +0900
+
+kazehakase (0.3.4-1) unstable; urgency=low
+
+  * New upstream release
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 22 Jan 2006 18:37:15 +0900
+
+kazehakase (0.3.3-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/control: Removed the build-depencency on automake-1.6.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed, 30 Nov 2005 09:56:50 +0900
+
+kazehakase (0.3.2-1) unstable; urgency=low
+
+  * New upstream release
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 29 Oct 2005 14:22:12 +0900
+  
+kazehakase (0.3.1-2) unstable; urgency=high
+
+  * Rebuilt against mozilla-1.7.12.
+  * debian/control: Removed Build-Conflicts with mozilla-dev.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed, 12 Oct 2005 18:18:09 +0900
+
+kazehakase (0.3.1-1) unstable; urgency=low
+
+  * New upstream release
+  * Changed to use GNU TLS.
+  * debian/control: Added dependency on libgnutls-dev.
+  * Now gtk fileshooder dialog save previous directory for 
+  saving (closes: #316061).
+  * (Already) Rebuilt with  mozilla-1.7.11 (closes: #328404).
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 29 Sep 2005 18:37:48 +0900
+
+kazehakase (0.3.0-3) unstable; urgency=high
+
+  * Rebuilt against mozilla-1.7.11.
+  * debian/patches/40_mozilla_1.7.8.dpatch: Removed because
+  this patch is no more needed with mozilla-1.7.11.
+  * Dropped the OpenSSL support due to the license issue (closes: 327724).
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 18 Sep 2005 08:48:05 +0900
+
+kazehakase (0.3.0-2) unstable; urgency=high
+
+  * debian/patches/40_mozilla_1.7.8.dpatch: Fix a crash bug on startup with 
+  mozilla-1.7.10. Thanks to Alexander Sack <asac@debian.org> (closes: #325124).
+  * debian/copyright: Changed to new FSF address.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Tue,  6 Sep 2005 23:39:16 +0900
+
+kazehakase (0.3.0-1) unstable; urgency=low
+
+  * New upstream release
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Tue, 30 Aug 2005 04:24:27 +0900
+
+kazehakase (0.2.9-2) unstable; urgency=low
+
+  * debian/control: Added libssl to the Build-Depends field (closes: #321815).
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon,  8 Aug 2005 11:45:01 +0900
+
+kazehakase (0.2.9-1) unstable; urgency=low
+
+  * New upstream release
+  * Rebuilt against mozilla-1.7.10.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat,  6 Aug 2005 09:57:16 +0900
+
+kazehakase (0.2.8-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/control:
+   - Bump to new policy version 3.6.2
+   - Added estraier to the Recommends field.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 30 Jun 2005 22:58:04 +0900
+
+kazehakase (0.2.7-2) unstable; urgency=low
+
+  * Rebuilt against mozilla-1.7.8.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Tue, 24 May 2005 02:28:22 +0900
+
+kazehakase (0.2.7-1) unstable; urgency=low
+
+  * New upstream release
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 30 Apr 2005 23:13:59 +0900
+
+kazehakase (0.2.6-2) unstable; urgency=low
+
+  * Rebuilt against mozilla-1.7.7 (closes: #305696).
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 22 Apr 2005 00:33:52 +0900
+
+kazehakase (0.2.6-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/patches/40_mozilla_firefox_bookmark.dpatch: Removed
+  because this is already fixed by upstream.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Tue, 29 Mar 2005 23:26:28 +0900
+
+kazehakase (0.2.5-2) unstable; urgency=low
+
+  * debian/patches/40_mozilla_firefox_bookmark.dpatch:
+  Fixed the path of the bookmark of mozilla-firefox (closes: #295338).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 19 Feb 2005 00:17:43 +0900
+
+kazehakase (0.2.5-1) unstable; urgency=low
+
+  * New upstream release.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 11 Feb 2005 19:41:59 +0900
+
+kazehakase (0.2.4-1) unstable; urgency=low
+
+  * New upstream release (closes: #292852).
+  * Fixed the remote bookmark of dsa (closes: #293119).
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 11 Feb 2005 19:41:30 +0900
+
+kazehakase (0.2.3-2) unstable; urgency=high
+
+  * Rebuilt against mozilla-1.7.5 (closes: #289196).
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat,  8 Jan 2005 21:55:43 +0900
+
+kazehakase (0.2.3-1) unstable; urgency=low
+
+  * New upstream release
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed, 29 Dec 2004 16:13:46 +0900
+
+kazehakase (0.2.2-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/kazehakase.postinst: Added --slave to handle a manpage correctly (closes: #281675).
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 25 Nov 2004 00:54:48 +0900
+
+kazehakase (0.2.1-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/patches/40_dialog_button.dpatch: Deleted because this is
+    already fixed by upstream.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 30 Oct 2004 13:55:15 +0900
+
+kazehakase (0.2.0-2) unstable; urgency=low
+
+  * debian/patches/40_dialog_button.dpatch: Fix wrong button labels
+  of dialogs.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 30 Sep 2004 15:21:20 +0900
+
+kazehakase (0.2.0-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/control: Added (build) dependencies on mozilla-1.7.3.
+  * debian/patches/40_history_search.dpatch: Deleted because this is
+    already fixed by upstream.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed, 29 Sep 2004 00:43:15 +0900
+
+kazehakase (0.1.9-2) unstable; urgency=low
+
+  * debian/patches/40_history_search.dpatch: Fix to update 
+  ~/.kazehakase/history* when create_thumnail=no.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 12 Sep 2004 09:40:35 +0900
+
+kazehakase (0.1.9-1) unstable; urgency=low
+
+  * New upstream release
+  * Deleted kazehakase-migemo package because kazehakase has a native
+    migemo support now, and kzmigemo script isn't needed any more.
+  * debian/patches/40_kzmigemo.dpatch: Deleted because of the above reason.
+  * debian/kazehakase.xml: Updated a manpage.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 29 Aug 2004 01:18:14 +0900
+
+kazehakase (0.1.8.1-2) unstable; urgency=high
+
+  * Rebuild against mozilla-1.7.2 and conflicts with mozilla-1.7.3 
+    (closes: #264591).
+  * debian/patches/50_mozilla_1.7.2.dpatch: Add to compile against
+    mozilla-1.7.2 (closes: #260958).
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 21 Aug 2004 13:09:16 +0900
+
+kazehakase (0.1.8.1-1.1) unstable; urgency=low
+
+  * NMU
+  * to avoid segfault with mozilla-1.7.2 (Bug#264591)
+    conflicts with mozilla-1.7.2
+
+ -- Fumitoshi UKAI <ukai@debian.or.jp>  Wed, 11 Aug 2004 21:47:21 +0900
+
+kazehakase (0.1.8.1-1) unstable; urgency=low
+
+  * New upstream release
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>
+  * 10_use_GETTEXT_PACKAGE.dpatch: Removed because it is no longer necessary.
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 30 Jul 2004 22:53:45 +0900
+
+kazehakase (0.1.8-1) unstable; urgency=low
+
+  * New upstream release
+  * 50_remote_bookmarks.dpatch: Deleted because this is already fixed
+    in the upstream source.
+  * Upstream fixed kazehakase to be compiled with mozilla-1.7.1 
+  (closes: #260958)
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 30 Jul 2004 22:42:25 +0900
+
+kazehakase (0.1.7-1) unstable; urgency=low
+
+  * New upstream release.
+  * Enabled migemo.
+  * debian/control: Splitted the package and added migemo to the 
+    suggests field.
+  * debian/patches/40_kzmigemo.dpatch: Fixed to use ruby1.8.
+  * debian/50_mozilla_1.7.dpatch: Deleted because this is already fixed
+    in the upstream source.
+  * debian/patches/50_remote_bookmarks.dpatch: Fixed the behaviour of 
+    remote bookmarkbar when a middle button of mouse is clicked.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu,  1 Jul 2004 07:22:32 +0900
+
+kazehakase (0.1.6-2) unstable; urgency=medium
+
+  * debian/control: Added conflicts and build-conflicts to mozilla-1.8.
+  * debian/50_mozilla_1.7.dpatch: Fixed to be compiled with mozilla-1.7
+    (closes: #256121).
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 25 Jun 2004 18:16:46 +0900
+
+kazehakase (0.1.6-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/control: Changed to provide www-browser (closes: #247001).
+  * debian/kazehakase.xml: Added a manpage.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 30 May 2004 02:04:57 +0900
+
+kazehakase (0.1.5-1) unstable; urgency=low
+
+  * New upstream release
+  * Now work with gtk+-2.4. (closes: #241639)
+  * debian/kazehakase.postinst, debian/kazehakase.prerm: add kazehakase to
+    the x-www-browser alternatives.
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat,  1 May 2004 14:03:53 +0900
+
+kazehakase (0.1.4-1) unstable; urgency=low
+
+  * New upstream release
+  * Sponsored by Fumitoshi UKAI <ukai@debian.or.jp>
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu,  1 Apr 2004 07:53:40 +0900
+
+kazehakase (0.1.3+cvs20040320-2.1) unstable; urgency=low
+
+  * debian/patches/30_bookmarkbar_DSA.dpatch: add DSA
+  * debian/rules: 
+    configure: chmod +x configure mkinstalldirs
+    clean: rm -f po/*.gmo
+  * Upload to Debian. 
+    closes: Bug#238286
+  * Sponsored by Fumitoshi UKAI
+
+ -- Fumitoshi UKAI <ukai@debian.or.jp>  Sun, 21 Mar 2004 02:33:00 +0900
+
+kazehakase (0.1.3+cvs20040320-2) unstable; urgency=low
+
+  * First upload to Debian.  Close wnpp bug.  (closes: #238286)
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 21 Mar 2004 01:43:28 +0900
+
+kazehakase (0.1.3+cvs20040320-1) unstable; urgency=low
+
+  * CVS update(trunk)
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 20 Mar 2004 20:06:50 +0900
+
+kazehakase (0.1.3+cvs20040319-1) unstable; urgency=low
+
+  * CVS update(trunk)
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 19 Mar 2004 23:45:32 +0900
+
+kazehakase (0.1.3+cvs20040318-1) unstable; urgency=low
+
+  * CVS update(trunk)
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 18 Mar 2004 08:28:15 +0900
+
+kazehakase (0.1.3+cvs20040316-1) unstable; urgency=low
+
+  * CVS update(trunk)
+  * debian/patches/30_location_entry.dpatch: Changed the category of
+    the configuration "LocationEntryRegex" to "LocationEntry"
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed, 17 Mar 2004 06:44:19 +0900
+
+kazehakase (0.1.3+cvs20040313-2) unstable; urgency=low
+
+  * debian/patches/50_location_entry.dpatch: add UI to change the
+    behaviour of the location entry.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 14 Mar 2004 13:21:30 +0900
+
+kazehakase (0.1.3+cvs20040313-1) unstable; urgency=low
+
+  * CVS update(trunk)
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 13 Mar 2004 18:06:11 +0900
+
+kazehakase (0.1.3-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/control: Update policy to 3.6.1.0
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 29 Feb 2004 17:13:52 +0900
+
+kazehakase (0.1.2-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 29 Jan 2004 21:59:58 +0900
+
+kazehakase (0.1.1+cvs20040124-1) unstable; urgency=low
+
+  * CVS update(trunk).
+  * Build against mozilla-1.6.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 24 Jan 2004 19:03:31 +0900
+
+kazehakase (0.1.1+cvs20040116-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 16 Jan 2004 00:36:40 +0900
+
+kazehakase (0.1.1+cvs20040109-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri,  9 Jan 2004 13:09:27 +0900
+
+kazehakase (0.1.1+cvs20040105-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon,  5 Jan 2004 06:26:11 +0900
+
+kazehakase (0.1.1+cvs20040103-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat,  3 Jan 2004 13:39:39 +0900
+
+kazehakase (0.1.1-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon, 29 Dec 2003 03:10:35 +0900
+
+kazehakase (0.1.0+cvs20031206-2) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat,  6 Dec 2003 20:22:43 +0900
+
+kazehakase (0.1.0+cvs20031206-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat,  6 Dec 2003 06:23:02 +0900
+
+kazehakase (0.1.0+cvs20031205-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri,  5 Dec 2003 05:37:56 +0900
+
+kazehakase (0.1.0-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 29 Nov 2003 19:59:03 +0900
+
+kazehakase (0.0.9+cvs20031127-1) unstable; urgency=low
+
+  * CVS update(trunk). 
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 27 Nov 2003 20:59:56 +0900
+
+kazehakase (0.0.9+cvs20031119-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed, 19 Nov 2003 01:07:33 +0900
+
+kazehakase (0.0.9+cvs20031117-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon, 17 Nov 2003 08:10:20 +0900
+
+kazehakase (0.0.9+cvs20031114-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 15 Nov 2003 00:09:43 +0900
+
+kazehakase (0.0.9+cvs20031113-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 14 Nov 2003 01:43:10 +0900
+
+kazehakase (0.0.9+cvs20031112-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 13 Nov 2003 03:10:30 +0900
+
+kazehakase (0.0.9+cvs20031111-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Tue, 11 Nov 2003 00:04:47 +0900
+
+kazehakase (0.0.9+cvs20031107-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri,  7 Nov 2003 00:11:55 +0900
+
+kazehakase (0.0.9+cvs20031105-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed,  5 Nov 2003 06:05:09 +0900
+
+kazehakase (0.0.9+cvs20031103-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon,  3 Nov 2003 07:43:37 +0900
+
+kazehakase (0.0.9+cvs20031101-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat,  1 Nov 2003 02:26:30 +0900
+
+kazehakase (0.0.9+cvs20031031-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 30 Oct 2003 23:59:40 +0900
+
+kazehakase (0.0.9+cvs20031030-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 30 Oct 2003 00:53:48 +0900
+
+kazehakase (0.0.9-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 30 Oct 2003 00:53:20 +0900
+
+kazehakase (0.0.8+cvs20031028-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Tue, 28 Oct 2003 04:22:53 +0900
+
+kazehakase (0.0.8+cvs20031027-1) unstable; urgency=low
+
+  * CVS update(trunk).
+  * Fix some "mojibake" in debian/changelog. Something wrong with
+    my vim...
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon, 27 Oct 2003 00:59:50 +0900
+
+kazehakase (0.0.8+cvs20031026-1) unstable; urgency=low
+
+  * CVS update(trunk).
+  * Name of the RSS configuration file and its format are changed
+   (filename toolbar.xml -> bookmarkbar.xml 
+    format <metabar> -> <bookmarkbar>, <rss> -> <item>) See
+    http://lists.sourceforge.jp/pipermail/kazehakase-devel/2003-October/000271.html
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 26 Oct 2003 05:39:16 +0900
+
+kazehakase (0.0.8+cvs20031024-2) unstable; urgency=low
+
+  * debian/control
+   - Change to specify the mozilla version used to build.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 25 Oct 2003 01:33:14 +0900
+
+kazehakase (0.0.8+cvs20031024-1) unstable; urgency=low
+
+  * CVS update(trunk).
+  * Build with mozilla-1.5.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 25 Oct 2003 01:04:53 +0900
+
+kazehakase (0.0.8+cvs20031023-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 24 Oct 2003 01:54:24 +0900
+
+kazehakase (0.0.8+cvs20031022-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed, 22 Oct 2003 23:59:43 +0900
+
+kazehakase (0.0.8+cvs20031020-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon, 20 Oct 2003 04:10:01 +0900
+
+kazehakase (0.0.8+cvs20031015-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed, 15 Oct 2003 06:48:51 +0900
+
+kazehakase (0.0.8+cvs20031012-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 12 Oct 2003 23:59:23 +0900
+
+kazehakase (0.0.8+cvs20031008-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed,  8 Oct 2003 23:34:34 +0900
+
+kazehakase (0.0.8-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon, 29 Sep 2003 20:23:38 +0900
+
+kazehakase (0.0.7+cvs20030918-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 18 Sep 2003 00:41:29 +0900
+
+kazehakase (0.0.7+cvs20030917-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed, 17 Sep 2003 20:03:14 +0900
+
+kazehakase (0.0.7+cvs20030915-1) unstable; urgency=low
+
+  * CVS update(trunk).
+  * debian/control
+   - Add Build-Depends: libtool
+  * Remote 50_kz_rss_parsing.dpatch(upstream fixed).
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon, 15 Sep 2003 13:09:39 +0900
+
+kazehakase (0.0.7+cvs20030904-2) unstable; urgency=low
+
+  * debian/patches/50_kz_rss_parsing.dpatch
+   - Fix segfault with wrong RSS files.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 14 Sep 2003 21:23:56 +0900
+
+kazehakase (0.0.7+cvs20030904-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu,  4 Sep 2003 15:14:31 +0900
+
+kazehakase (0.0.7+cvs20030903-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed,  3 Sep 2003 17:25:30 +0900
+
+kazehakase (0.0.7+cvs20030902-1) unstable; urgency=low
+
+  * CVS update(trunk).
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed,  3 Sep 2003 02:16:12 +0900
+
+kazehakase (0.0.7+cvs20030901-1) unstable; urgency=low
+
+  * CVS update(trunk). 
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon,  1 Sep 2003 18:09:39 +0900
+
+kazehakase (0.0.7+cvs20030830-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 30 Aug 2003 14:56:34 +0900
+
+kazehakase (0.0.7-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat, 30 Aug 2003 04:12:35 +0900
+
+kazehakase (0.0.6+cvs20030828-1) unstable; urgency=low
+
+  * CVS current release.
+  * debian/patches/05_FSH.dpatch
+   - Fix system configuration files' path.
+  * debian/patches/30_fix_gesture.dpatch
+   - Fix typo for gestures to work.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu, 28 Aug 2003 06:34:09 +0900
+
+kazehakase (0.0.6+cvs20030822-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 22 Aug 2003 15:09:22 +0900
+
+kazehakase (0.0.6+cvs20030819-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Tue, 19 Aug 2003 10:12:24 +0900
+
+kazehakase (0.0.6+cvs20030818-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon, 18 Aug 2003 09:35:55 +0900
+
+kazehakase (0.0.6+cvs20030817-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 17 Aug 2003 20:01:40 +0900
+
+kazehakase (0.0.6+cvs20030813-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed, 13 Aug 2003 05:59:06 +0900
+
+kazehakase (0.0.6+cvs20030812-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Tue, 12 Aug 2003 07:54:21 +0900
+
+kazehakase (0.0.6+cvs20030811-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon, 11 Aug 2003 00:29:47 +0900
+
+kazehakase (0.0.6+cvs20030810-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 10 Aug 2003 04:02:59 +0900
+
+kazehakase (0.0.6+cvs20030808-1) unstable; urgency=low
+
+  * CVS current release.
+  * Now "kazehakase" shell script available in upstream source,
+  so "kz" shell script is obsolete.  Please run "kazehakase" to run 
+  kazehakase.
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri,  8 Aug 2003 03:22:51 +0900
+
+kazehakase (0.0.6+cvs20030807-1) unstable; urgency=low
+
+  * CVS current release.
+  * debian/control
+    - Add Build-Depends: automake1.6 | automake1.7
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Thu,  7 Aug 2003 04:40:05 +0900
+
+kazehakase (0.0.6+cvs20030806-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed,  6 Aug 2003 01:38:17 +0900
+
+kazehakase (0.0.6+cvs20030805-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon,  4 Aug 2003 02:20:05 +0900
+
+kazehakase (0.0.6+cvs20030802-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat,  2 Aug 2003 23:49:49 +0900
+
+kazehakase (0.0.6-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/control
+   - bump to new policy version 3.6.0
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sat,  2 Aug 2003 00:40:32 +0900
+
+kazehakase (0.0.5-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun, 29 Jun 2003 06:48:05 +0900
+
+kazehakase (0.0.4+cvs20030601-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun,  1 Jun 2003 16:56:19 +0900
+
+kazehakase (0.0.4-1) unstable; urgency=low
+
+  * New upstream release
+  * debian/patches/20_user_agent_tag.dpatch
+   - Add to make the browser string recognizeable as Debian.
+  * debian/control
+   - Modify the descriptions.
+  
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 30 May 2003 01:49:57 +0900
+
+kazehakase (0.0.3+cvs20030526-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Mon, 26 May 2003 16:07:51 +0900
+
+kazehakase (0.0.3+cvs20030523-1) unstable; urgency=low
+
+  * CVS current release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Fri, 23 May 2003 20:02:04 +0900
+
+kazehakase (0.0.3+cvs20030409-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Wed,  9 Apr 2003 22:33:20 +0900
+
+kazehakase (0.0.3-1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Hidetaka Iwai <tyuyu@debian.or.jp>  Sun,  6 Apr 2003 20:50:12 +0900
+
--- kazehakase-0.5.4.orig/debian/shlibs
+++ kazehakase-0.5.4/debian/shlibs
@@ -0,0 +1 @@
+libkazehakase 0 kazehakase
--- kazehakase-0.5.4.orig/debian/menu
+++ kazehakase-0.5.4/debian/menu
@@ -0,0 +1,4 @@
+?package(kazehakase):needs="X11" section="Applications/Network/Web Browsing" \
+	title="Kazehakase Web Browser" command="/usr/bin/kazehakase" \
+	icon="/usr/share/pixmaps/kaze_icon.xpm" \
+	hints="Web Browser"
--- kazehakase-0.5.4.orig/debian/kazehakase.postinst
+++ kazehakase-0.5.4/debian/kazehakase.postinst
@@ -0,0 +1,28 @@
+#! /bin/sh
+# postinst script for the Debian kazehakase package
+#
+# see: dh_installdeb(1)
+
+set -e
+
+case "$1" in
+    configure|abort-upgrade)
+	# update alternatives for x-www-browser
+	update-alternatives --install /usr/bin/x-www-browser \
+	    x-www-browser /usr/bin/kazehakase 70 \
+	    --slave /usr/share/man/man1/x-www-browser.1.gz \
+	    x-www-browser.1.gz /usr/share/man/man1/kazehakase.1.gz
+    ;;
+    abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
--- kazehakase-0.5.4.orig/debian/kazehakase-gecko.install
+++ kazehakase-0.5.4/debian/kazehakase-gecko.install
@@ -0,0 +1 @@
+usr/lib/kazehakase/embed/gecko.so
--- kazehakase-0.5.4.orig/debian/rules
+++ kazehakase-0.5.4/debian/rules
@@ -0,0 +1,147 @@
+#!/usr/bin/make -f
+# -*- mode: makefile; coding: utf-8 -*-
+# Copyright © 2004-2006 Hidetaka Iwai  <tyuyu@debian.or.jp>
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# Include dpatch stuff.
+include /usr/share/dpatch/dpatch.make
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+
+CFLAGS = -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+	CFLAGS += -O0
+else
+	CFLAGS += -O2
+endif
+
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+	INSTALL_PROGRAM += -s
+endif
+
+#DB2MAN=/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl 
+#XP=xsltproc -nonet
+
+# extract Debian package version from the changelog.
+DEBIAN_VERSION := $(shell dpkg-parsechangelog | grep '^Version:' | awk '{ print $$2; }')
+
+#ifneq (,$(findstring cvs,$(DEBIAN_VERSION)))
+#	EXTRA_FLAGS = --enable-gtk-webcore
+#endif
+
+CXXFLAGS=$(CFLAGS)
+CFLAGS += -DDEBIAN_VERSION=\"\\\"$(DEBIAN_VERSION)\\\"\"
+
+COMPILER_FLAGS=CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)"
+
+config.status:
+	dh_testdir
+	chmod +x ./configure
+	chmod +x ./mkinstalldirs
+	$(COMPILER_FLAGS) ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --enable-migemo --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --sysconfdir=/etc --with-gecko-engine=libxul --disable-gtkmozembed --with-ruby=/usr/bin/ruby1.8
+
+build: build-stamp 
+build-stamp: patch config.status 
+	@echo "--- Compiling"
+	dh_testdir
+
+	$(MAKE)
+
+#	$(XP) -o debian/kazehakase.1 $(DB2MAN) debian/kazehakase.xml 
+
+	touch build-stamp
+
+clean: clean1 unpatch
+
+clean1: 
+	@echo "--- Cleaning"
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp 
+	rm -f po/*.gmo
+	[ ! -f Makefile ] || $(MAKE) distclean
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+	cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+	cp -f /usr/share/misc/config.guess config.guess
+endif
+	rm -f config.cache config.status
+#	rm -f debian/kazehakase.1
+
+	dh_clean
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+
+	# Add here commands to install the package into debian/kazehakase.
+	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
+
+	#install icon
+	install -m 644 debian/kaze_icon.xpm \
+		$(CURDIR)/debian/tmp/usr/share/pixmaps/
+
+	dh_install --sourcedir=$(CURDIR)/debian/tmp --fail-missing
+
+# Must not depend on anything. This is to be called by
+# binary-arch/binary-indep
+# in another 'make' thread.
+binary-common: 
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs ChangeLog
+	dh_installdocs
+#	dh_installexamples
+	dh_installmenu
+#	dh_installdebconf	
+#	dh_installlogrotate
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installmime
+#	dh_installinit
+#	dh_installcron
+#	dh_installinfo
+#	dh_installman
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+#	dh_perl
+#	dh_python
+	dh_makeshlibs
+	dh_installdeb
+	rm -rf $(CURDIR)/debian/kazehakase/usr/lib/kazehakase/embed
+	#dh_shlibdeps -l$(CURDIR)/debian/kazehakase/usr/lib
+	dpkg-shlibdeps -T$(CURDIR)/debian/kazehakase.substvars \
+			$(CURDIR)/debian/kazehakase/usr/bin/kazehakase \
+			$(CURDIR)/debian/kazehakase/usr/lib/kazehakase/libkazehakase.so.0
+	dpkg-shlibdeps -T$(CURDIR)/debian/kazehakase-gecko.substvars \
+			-pgecko -xkazehakase \
+			$(CURDIR)/debian/kazehakase-gecko/usr/lib/kazehakase/embed/gecko.so
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+# Build architecture independant packages using the common target.
+#binary-indep: build install
+binary-indep:
+#NOP
+#	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
+
+
+# Build architecture dependant packages using the common target.
+binary-arch: build install
+	$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install patch unpatch clean1 
--- kazehakase-0.5.4.orig/debian/kazehakase.xml
+++ kazehakase-0.5.4/debian/kazehakase.xml
@@ -0,0 +1,146 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl manpage.dbk'.  A manual page
+<package>.<section> will be generated.  You may view the
+manual page with: nroff -man <package>.<section> | less'.  A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+        $(XP) $(DB2MAN) $<
+    
+The xsltproc binary is found in the xsltproc package.  The
+XSL files are in docbook-xsl.  Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+  <!ENTITY dhfirstname "<firstname>Hidetaka</firstname>">
+  <!ENTITY dhsurname   "<surname>Iwai</surname>">
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY dhdate      "<date>Aug 2004</date>">
+  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+       allowed: see man(7), man(1). -->
+  <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
+  <!ENTITY dhemail     "<email>tyuyu@debian.or.jp</email>">
+  <!ENTITY dhusername  "Hidetaka Iwai">
+  <!ENTITY dhucpackage "<refentrytitle>kazehakase</refentrytitle>">
+  <!ENTITY dhpackage   "kazehakase">
+
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+    <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>
+    <copyright>
+      <year>2004</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>Gecko based web browser using GTK</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+      <arg><replaceable>OPTION...</replaceable></arg>
+      <arg><replaceable>URL...</replaceable></arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para><command>&dhpackage;</command> is a web browser using the
+Mozilla rendering and networking engines.</para>
+
+  </refsect1>
+  <refsect1>
+    <title>OPTIONS</title>
+
+    <variablelist>
+      <varlistentry>
+        <term><option>-a <replaceable>ACTION</replaceable></option>,
+        <option>--action <replaceable>ACTION</replaceable></option>
+        </term>
+        <listitem>
+          <para>Invoke the action in kazehakase.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-v</option>,
+        <option>--version</option>
+        </term>
+        <listitem>
+          <para>Show the version.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-h</option>,
+        <option>--help</option>
+        </term>
+        <listitem>
+          <para>Show this help.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+  <refsect1>
+    <title>EXAMPLES</title>
+
+    <variablelist>
+      <varlistentry>
+        <term>kazehakase --action "KzWindowTabPopup/TabCopyTitle 1 3"
+        </term>
+        <listitem>
+          <para>Copy the title of the 3rd tab in the 1st window.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title>AUTHOR</title>
+
+    <para>This manual page was written by &dhusername; &dhemail; for
+      the &debian; system (but may be used by others).  Permission is
+      granted to copy, distribute and/or modify this document under
+      the terms of the &gnu; General Public License, Version 2 any 
+	  later version published by the Free Software Foundation.
+    </para>
+    <para>
+	  On Debian systems, the complete text of the GNU General Public
+	  License can be found in /usr/share/common-licenses/GPL.
+	</para>
+    
+  </refsect1>
+</refentry>
+
--- kazehakase-0.5.4.orig/debian/kazehakase-webkit.install
+++ kazehakase-0.5.4/debian/kazehakase-webkit.install
@@ -0,0 +1 @@
+usr/lib/kazehakase/embed/webkit_gtk.so
--- kazehakase-0.5.4.orig/debian/kazehakase.install
+++ kazehakase-0.5.4/debian/kazehakase.install
@@ -0,0 +1,8 @@
+usr/bin/kazehakase
+usr/lib/*
+usr/share/pixmaps/*
+usr/share/locale/*
+usr/share/man/*
+usr/share/kazehakase/*
+usr/share/applications/*
+etc/kazehakase/*
--- kazehakase-0.5.4.orig/debian/substvars
+++ kazehakase-0.5.4/debian/substvars
@@ -0,0 +1,3 @@
+shlibs:Depends=kazehakase, libatk1.0-0 (>= 1.20.0), libc6 (>= 2.7-1), libcairo2 (>= 1.2.4), libfontconfig1 (>= 2.4.0), libfreetype6 (>= 2.3.5), libgcrypt11 (>= 1.4.0), libglib2.0-0 (>= 2.16.0), libgnutls26 (>= 2.2.0-0), libgpg-error0 (>= 1.4), libgtk2.0-0 (>= 2.12.0), libice6 (>= 1:1.0.0), libpango1.0-0 (>= 1.20.2), libpixman-1-0, libpng12-0 (>= 1.2.13-4), libsm6, libtasn1-3 (>= 0.3.4), libx11-6, libxrender1, zlib1g (>= 1:1.1.4)
+gecko:Depends=kazehakase, libatk1.0-0 (>= 1.20.0), libc6 (>= 2.7-1), libcairo2 (>= 1.2.4), libfontconfig1 (>= 2.4.0), libfreetype6 (>= 2.3.5), libgcc1 (>= 1:4.1.1-21), libgcrypt11 (>= 1.4.0), libglib2.0-0 (>= 2.14.0), libgnutls26 (>= 2.2.0-0), libgpg-error0 (>= 1.4), libgtk2.0-0 (>= 2.12.0), libice6 (>= 1:1.0.0), libnspr4-0d (>= 1.8.0.10), libpango1.0-0 (>= 1.20.2), libpixman-1-0, libpng12-0 (>= 1.2.13-4), libsm6, libstdc++6 (>= 4.1.1-21), libtasn1-3 (>= 0.3.4), libx11-6, libxrender1, libxul0d (>= 1.8.1.4), zlib1g (>= 1:1.1.4)
+webkit:Depends=libatk1.0-0 (>= 1.20.0), libc6 (>= 2.7-1), libcairo2 (>= 1.2.4), libglib2.0-0 (>= 2.12.0), libgtk2.0-0 (>= 2.12.0), libpango1.0-0 (>= 1.20.2), libwebkit-1.0-1
--- kazehakase-0.5.4.orig/debian/copyright
+++ kazehakase-0.5.4/debian/copyright
@@ -0,0 +1,57 @@
+This package was debianized by Hidetaka Iwai <tyuyu@debian.or.jp> on
+Sun,  6 Apr 2003 20:50:12 +0900.
+
+Andres Salomon <dilinger@debian.org> also co-maintains this package.
+
+It was downloaded from http://sourceforge.jp/projects/kazehakase
+
+Upstream Authors: Hiroyuki Ikezoe <poincare@ikezoe.net>
+		  Takuro Ashie <ashie@homa.ne.jp>
+
+Copyright (C) 2001-2004 Takuro Ashie
+Copyright (C) 2002-2007 Hiroyuki Ikezoe
+Copyright (C) 2005 Ryo SHIMIZU
+Copyright (C) 2006 - 2007 Kouhei Sutou
+ 
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
+    02110-1301, USA.
+
+On Debian systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.
+
+
+Note that the following exception clause also applies to this software:
+
+The present copyright holders of this program have given permission, as a
+special exception, to link this program with the Mozilla XPCOM library,
+libxpcom and to include header files for xpcom components when those header
+files are covered by the MPL or NPL licenses, as long as the GNU GPL is
+followed for this program in all other ways. If at a future time xpcom
+and/or used header files are dual-licensed, where one of the licenses is
+the GNU GPL, this exception clause ceases to apply for the dual-licensed
+code, and such code must be used under the GNU GPL.
+
+
+Bits of code have also been pulled from GNet, with the following
+copyright (also covered by the GPLv2 or later):
+
+Copyright (C) 2000-2003  David Helder, David Bolcsfoldi, Eric Williams
+Copyright (C) 2000  Andrew Lanoix
+
+The libegg portions of this code have the following copyright (and are
+also under GPLv2 or later):
+
+Copyright (c) 2004 James M. Cape <jcape@ignore-your.tv>
+Copyright (c) 2002 Red Hat, Inc.
--- kazehakase-0.5.4.orig/debian/kazehakase.prerm
+++ kazehakase-0.5.4/debian/kazehakase.prerm
@@ -0,0 +1,22 @@
+#! /bin/sh
+# prerm script for the Debian kazehakase package
+# 
+# see: dh_installdeb(1)
+
+set -e
+
+case "$1" in
+    remove|deconfigure)
+		# update alternatives for x-www-browser
+		update-alternatives --remove x-www-browser /usr/bin/kazehakase
+    ;;
+    upgrade|failed-upgrade)
+    ;;
+
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+#DEBHELPER#
--- kazehakase-0.5.4.orig/debian/patches/60_fix_ftbfs.dpatch
+++ kazehakase-0.5.4/debian/patches/60_fix_ftbfs.dpatch
@@ -0,0 +1,42 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 60_fix_ftbfs.dpatch by Hidetaka Iwai <tyuyu@debian.or.jp>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad kazehakase-0.4.1~/configure.in kazehakase-0.4.1/configure.in
+--- kazehakase-0.4.1~/configure.in	2006-09-30 12:24:21.000000000 +0900
++++ kazehakase-0.4.1/configure.in	2006-11-11 17:52:55.000000000 +0900
+@@ -151,7 +151,7 @@
+ fi
+ 
+ 
+-CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT -I$MOZILLA_INCLUDE_ROOT/widget -I$MOZILLA_INCLUDE_ROOT/layout -I$MOZILLA_INCLUDE_ROOT/helperAppDlg -I$MOZILLA_INCLUDE_ROOT/dom -I$MOZILLA_INCLUDE_ROOT/exthandler -I$MOZILLA_INCLUDE_ROOT/pipnss -I$MOZILLA_INCLUDE_ROOT/necko -I$MOZILLA_INCLUDE_ROOT/gfx -I$MOZILLA_INCLUDE_ROOT/content -I$MOZILLA_INCLUDE_ROOT/locale -I$MOZILLA_INCLUDE_ROOT/docshell `$PKG_CONFIG --cflags-only-I $GECKO-xpcom` -Wconversion -Wsign-compare -Werror"
++CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT -I$MOZILLA_INCLUDE_ROOT/widget -I$MOZILLA_INCLUDE_ROOT/layout -I$MOZILLA_INCLUDE_ROOT/helperAppDlg -I$MOZILLA_INCLUDE_ROOT/dom -I$MOZILLA_INCLUDE_ROOT/exthandler -I$MOZILLA_INCLUDE_ROOT/pipnss -I$MOZILLA_INCLUDE_ROOT/necko -I$MOZILLA_INCLUDE_ROOT/gfx -I$MOZILLA_INCLUDE_ROOT/content -I$MOZILLA_INCLUDE_ROOT/locale -I$MOZILLA_INCLUDE_ROOT/docshell `$PKG_CONFIG --cflags-only-I $GECKO-xpcom`"
+ CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS `$PKG_CONFIG --cflags-only-other $GECKO-xpcom`"
+ 
+ AC_MSG_RESULT([$CXXFLAGS])
+@@ -251,16 +251,21 @@
+ 
+ AC_MSG_CHECKING([whether nsIHelperAppLauncherDialog methods expect PRBool])
+ 
++__cppflags=$CPPFLAGS
++CPPFLAGS="$CPPFLAGS -Wconversion -Wsign-compare -Werror"
+ AC_COMPILE_IFELSE(
++	 
+ 	[AC_LANG_PROGRAM(
+ 		[[#include <nsIHelperAppLauncherDialog.h>]],
+ 		[[nsIHelperAppLauncherDialog *p;
+ 		  p->Show (nsnull, nsnull, -1);]]
+ 	)],
+ 	[AC_DEFINE([MOZ_NSIHELPERAPPLAUNCHERDIALOG_NSPRBOOL_],[1],[Define if nsIHelperAppLauncharDialog uses PRBool]) result=yes],
+-	[result=no])
++	[result=no]
++)
+ 
+ AC_MSG_RESULT([$result])
++CPPFLAGS=$__cppflags
+ 
+ AC_MSG_CHECKING([whether NS_InitXPCOM3 exists])
+ 
--- kazehakase-0.5.4.orig/debian/patches/05_add_missing.dpatch
+++ kazehakase-0.5.4/debian/patches/05_add_missing.dpatch
@@ -0,0 +1,30 @@
+#!/bin/sh -e
+## 05_add_missing.dpatch by Hidetaka Iwai <tyuyu@debian.or.jp>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+if [ $# -ne 1 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+case "$1" in
+       -patch) patch $patch_opts -p1 < $0;;
+       -unpatch) patch $patch_opts -p1 -R < $0;;
+        *)
+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+                exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad /home/tyuyu/debworks/kazehakase/kazehakase-0.0.8/m4/.keep kazehakase-0.0.8/m4/.keep
+--- /home/tyuyu/debworks/kazehakase/kazehakase-0.0.8/m4/.keep	1970-01-01 09:00:00.000000000 +0900
++++ kazehakase-0.0.8/m4/.keep	2003-09-29 20:31:14.000000000 +0900
+@@ -0,0 +1 @@
++#keep
--- kazehakase-0.5.4.orig/debian/patches/00list
+++ kazehakase-0.5.4/debian/patches/00list
@@ -0,0 +1,4 @@
+20_user_agent_tag
+30_bookmarkbar_DSA
+50_passwordmgr
+90_xulrunner_1.9
--- kazehakase-0.5.4.orig/debian/patches/30_bookmarkbar_DSA.dpatch
+++ kazehakase-0.5.4/debian/patches/30_bookmarkbar_DSA.dpatch
@@ -0,0 +1,23 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 30_bookmarkbar_DSA.dpatch by  <tyuyu@debian.or.jp>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad kazehakase-0.2.4/etc/bookmarkbar.xml /tmp/dpep.SMNFdB/kazehakase-0.2.4/etc/bookmarkbar.xml
+--- kazehakase-0.2.4/etc/bookmarkbar.xml	2005-02-02 00:00:30.000000000 +0900
++++ /tmp/dpep.SMNFdB/kazehakase-0.2.4/etc/bookmarkbar.xml	2005-02-02 00:00:31.000000000 +0900
+@@ -10,6 +10,12 @@
+   </bookmark>
+   <separator/>
+   <folder>
++    <title>DSA</title>
++    <info>
++      <metadata owner="http://kazehakase.sourceforge.jp/" kz:location="http://www.debian.org/security/dsa.rdf" />
++    </info>
++  </folder>
++  <folder>
+     <title>Yahoo!News</title>
+     <info>
+       <metadata owner="http://kazehakase.sourceforge.jp/" kz:location="http://rss.news.yahoo.com/rss/topstories" />
--- kazehakase-0.5.4.orig/debian/patches/80_NSIBADCERTLISTNER.dpatch
+++ kazehakase-0.5.4/debian/patches/80_NSIBADCERTLISTNER.dpatch
@@ -0,0 +1,39 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 80_NSIBADCERTLISTNER.dpatch by Andres Salomon <dilinger@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix a typo in mozilla.cpp that causes the incorrect
+## DP: ConfirmMismatchDomain callback to get called (display the incorrect
+## DP: dialog window).
+
+@DPATCH@
+diff -Nrua a/module/embed/gecko/mozilla.cpp b/module/embed/gecko/mozilla.cpp
+--- a/module/embed/gecko/mozilla.cpp
++++ b/module/embed/gecko/mozilla.cpp
+@@ -45,7 +45,7 @@
+ #include "kazehakase.h"
+ #include "kz-mozhistorysearch.h"
+ #include "kz-mozselectionlistener.h"
+-#ifdef HAVE_NSIBADCERTLISTNER_H
++#ifdef HAVE_NSIBADCERTLISTENER_H
+ #  include "GtkNSSDialogs.h"
+ #endif
+ #include "GtkPromptService.h"
+@@ -57,7 +57,7 @@
+ NS_GENERIC_FACTORY_CONSTRUCTOR(KzMozHistorySearchProtocolHandler)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(KzMozPrintingPromptService)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(GtkPromptService)
+-#ifdef HAVE_NSIBADCERTLISTNER_H
++#ifdef HAVE_NSIBADCERTLISTENER_H
+ NS_GENERIC_FACTORY_CONSTRUCTOR(GtkNSSDialogs)
+ #endif
+ 
+@@ -96,7 +96,7 @@
+ 		KZ_PRINTINGPROMPTSERVICE_CONTRACTID,
+ 		KzMozPrintingPromptServiceConstructor
+ 	},
+-#ifdef HAVE_NSIBADCERTLISTNER_H
++#ifdef HAVE_NSIBADCERTLISTENER_H
+ 	{
+ 		GTK_NSSDIALOGS_CLASSNAME,
+ 		GTK_NSSDIALOGS_CID,
--- kazehakase-0.5.4.orig/debian/patches/70_enable_gtk_deprecated.dpatch
+++ kazehakase-0.5.4/debian/patches/70_enable_gtk_deprecated.dpatch
@@ -0,0 +1,64 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## enable_gtk_deprecated.dpatch by Arnaud Renevier <arenevier@fdn.fr>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: unset GTK_DISABLE_DEPRECATED in src/, src/prefs_ui/, src/sidebar/
+## DP: added unset GTK_DISABLE_DEPRECATED in src/bookmarks/ by Ana Guerrero.
+
+@DPATCH@
+diff -Nrua kazehakase-0.4.3.orig/src/actions/Makefile.am kazehakase-0.4.3/src/actions/Makefile.am
+--- kazehakase-0.4.3.orig/src/actions/Makefile.am	2007-01-21 00:15:06.000000000 +0100
++++ kazehakase-0.4.3/src/actions/Makefile.am	2007-10-22 04:50:35.000000000 +0200
+@@ -5,7 +5,6 @@
+ AM_CPPFLAGS = \
+ 	-DSYSCONFDIR=\""$(sysconfdir)"\" \
+         -DKZ_SYSCONFDIR=\""$(sysconfdir)/$(PACKAGE)"\" \
+-	-DGTK_DISABLE_DEPRECATED=1 \
+ 	-DGDK_DISABLE_DEPRECATED=1 \
+ 	-DG_LOG_DOMAIN=\"Kazehakase-Actions\" \
+ 	-DG_DISABLE_DEPRECATED=1
+diff -Nrua kazehakase-0.4.3.orig/src/bookmarks/Makefile.am kazehakase-0.4.3/src/bookmarks/Makefile.am
+--- kazehakase-0.4.3.orig/src/bookmarks/Makefile.am	2007-01-21 00:15:06.000000000 +0100
++++ kazehakase-0.4.3/src/bookmarks/Makefile.am	2007-10-22 04:50:42.000000000 +0200
+@@ -13,7 +13,6 @@
+ 	-I$(top_srcdir)/src
+ 
+ AM_CPPFLAGS= \
+-	-DGTK_DISABLE_DEPRECATED=1 \
+ 	-DGDK_DISABLE_DEPRECATED=1 \
+ 	-DG_LOG_DOMAIN=\"Kazehakase-Bookmarks\" \
+ 	-DG_DISABLE_DEPRECATED=1 \
+diff -Nrua kazehakase-0.4.3.orig/src/Makefile.am kazehakase-0.4.3/src/Makefile.am
+--- kazehakase-0.4.3.orig/src/Makefile.am	2007-01-21 00:15:06.000000000 +0100
++++ kazehakase-0.4.3/src/Makefile.am	2007-10-22 05:10:49.000000000 +0200
+@@ -14,7 +14,6 @@
+ 	-DEXTDIR=\""$(extdir)"\" \
+ 	-DKZ_SYSCONFDIR=\""$(sysconfdir)/$(PACKAGE)"\" \
+ 	-DKZ_DATADIR=\""$(datadir)/$(PACKAGE)"\" \
+-	-DGTK_DISABLE_DEPRECATED=1 \
+ 	-DGDK_DISABLE_DEPRECATED=1 \
+ 	-DG_LOG_DOMAIN=\"Kazehakase\" \
+ 	-DG_DISABLE_DEPRECATED=1
+diff -Nrua kazehakase-0.4.3.orig/src/prefs_ui/Makefile.am kazehakase-0.4.3/src/prefs_ui/Makefile.am
+--- kazehakase-0.4.3.orig/src/prefs_ui/Makefile.am	2007-01-21 00:15:06.000000000 +0100
++++ kazehakase-0.4.3/src/prefs_ui/Makefile.am	2007-10-22 04:51:08.000000000 +0200
+@@ -17,7 +17,6 @@
+ 	-DDATADIR=\""$(datadir)"\" \
+ 	-DKZ_SYSCONFDIR=\""$(sysconfdir)/$(PACKAGE)"\" \
+ 	-DKZ_DATADIR=\""$(datadir)/$(PACKAGE)"\" \
+-	-DGTK_DISABLE_DEPRECATED=1 \
+ 	-DGDK_DISABLE_DEPRECATED=1 \
+ 	-DG_LOG_DOMAIN=\"Kazehakase-PrefsUI\" \
+ 	-DG_DISABLE_DEPRECATED=1
+diff -Nrua kazehakase-0.4.3.orig/src/sidebar/Makefile.am kazehakase-0.4.3/src/sidebar/Makefile.am
+--- kazehakase-0.4.3.orig/src/sidebar/Makefile.am	2007-01-21 00:15:06.000000000 +0100
++++ kazehakase-0.4.3/src/sidebar/Makefile.am	2007-10-22 04:52:29.000000000 +0200
+@@ -13,7 +13,6 @@
+ 	-I$(top_srcdir)/src
+ 
+ AM_CPPFLAGS= \
+-	-DGTK_DISABLE_DEPRECATED=1 \
+ 	-DGDK_DISABLE_DEPRECATED=1 \
+ 	-DG_LOG_DOMAIN=\"Kazehakase-Sidebar\" \
+ 	-DG_DISABLE_DEPRECATED=1
+
--- kazehakase-0.5.4.orig/debian/patches/90_xulrunner_1.9.dpatch
+++ kazehakase-0.5.4/debian/patches/90_xulrunner_1.9.dpatch
@@ -0,0 +1,402 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 90_xulrunner_1.9.dpatch by  <glandium@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Better support for xulrunner 1.9
+
+diff -u kazehakase-0.5.4/debian/rules kazehakase-0.5.4/debian/rules
+--- kazehakase-0.5.4.orig/ext/ruby/Makefile.in
++++ kazehakase-0.5.4/ext/ruby/Makefile.in
+@@ -306,7 +306,6 @@
+ top_srcdir = @top_srcdir@
+ ext_LTLIBRARIES = ruby.la
+ INCLUDES = \
+-	$(MOZILLA_COMPONENT_CFLAGS)			\
+ 	$(GTK_CFLAGS)					\
+ 	$(LIBGNUTLS_CFLAGS)				\
+ 	$(RUBY_CFLAGS)					\
+@@ -354,7 +353,6 @@
+ 	$(GTK_LIBS)				\
+ 	$(LIBGNUTLS_LIBS)			\
+ 	$(RUBY_LIBS)				\
+-	$(MOZILLA_COMPONENT_LIBS)		\
+ 	$(top_builddir)/src/libkazehakase.la
+ 
+ all: all-am
+--- kazehakase-0.5.4.orig/ext/ruby/Makefile.am
++++ kazehakase-0.5.4/ext/ruby/Makefile.am
+@@ -8,7 +8,6 @@
+ 	-DG_DISABLE_DEPRECATED=1
+ 
+ INCLUDES =						\
+-	$(MOZILLA_COMPONENT_CFLAGS)			\
+ 	$(GTK_CFLAGS)					\
+ 	$(LIBGNUTLS_CFLAGS)				\
+ 	$(RUBY_CFLAGS)					\
+@@ -63,5 +62,4 @@
+ 	$(GTK_LIBS)				\
+ 	$(LIBGNUTLS_LIBS)			\
+ 	$(RUBY_LIBS)				\
+-	$(MOZILLA_COMPONENT_LIBS)		\
+ 	$(top_builddir)/src/libkazehakase.la
+--- kazehakase-0.5.4.orig/module/embed/gecko/mozilla.cpp
++++ kazehakase-0.5.4/module/embed/gecko/mozilla.cpp
+@@ -25,6 +25,7 @@
+ 
+ #define MOZILLA_CLIENT
+ 
++#include <mozilla-config.h>
+ #include <gtkmozembed.h>
+ #include <nsXPCOM.h>
+ #include <nsIGenericFactory.h>
+@@ -50,6 +51,10 @@
+ #include <gtkmozembed_glue.cpp>
+ #include <nsGenericFactory.h>
+ #endif
++#ifdef HAVE_GECKO_1_9
++#include <nsComponentManagerUtils.h>
++#endif
++
+ 
+ NS_GENERIC_FACTORY_CONSTRUCTOR(KzFilePicker)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(KzContentHandler)
+--- kazehakase-0.5.4.orig/module/embed/gecko/kz-mozlauncher.cpp
++++ kazehakase-0.5.4/module/embed/gecko/kz-mozlauncher.cpp
+@@ -76,6 +76,9 @@
+ 				    nsISupports *aWindowContext,
+ 				    const PRUnichar *aDefaultFile,
+ 				    const PRUnichar *aSuggestedFileExtension,
++#ifdef HAVE_GECKO_1_9
++				    PRBool aForcePrompt,
++#endif
+ 				    nsILocalFile **_retval)
+ {
+ 	nsresult rv;
+--- kazehakase-0.5.4.orig/module/embed/gecko/gtkmozembed/nsProfileDirServiceProvider2.cpp
++++ kazehakase-0.5.4/module/embed/gecko/gtkmozembed/nsProfileDirServiceProvider2.cpp
+@@ -306,26 +306,6 @@
+         rv = EnsureProfileFileExists(localFile, domainDir);
+     }
+   }
+-  else if (strcmp(prop, NS_APP_MAIL_50_DIR) == 0) {
+-    rv = domainDir->Clone(getter_AddRefs(localFile));
+-    if (NS_SUCCEEDED(rv))
+-      rv = localFile->AppendNative(MAIL_DIR_50_NAME);
+-  }
+-  else if (strcmp(prop, NS_APP_IMAP_MAIL_50_DIR) == 0) {
+-    rv = domainDir->Clone(getter_AddRefs(localFile));
+-    if (NS_SUCCEEDED(rv))
+-      rv = localFile->AppendNative(IMAP_MAIL_DIR_50_NAME);
+-  }
+-  else if (strcmp(prop, NS_APP_NEWS_50_DIR) == 0) {
+-    rv = domainDir->Clone(getter_AddRefs(localFile));
+-    if (NS_SUCCEEDED(rv))
+-      rv = localFile->AppendNative(NEWS_DIR_50_NAME);
+-  }
+-  else if (strcmp(prop, NS_APP_MESSENGER_FOLDER_CACHE_50_DIR) == 0) {
+-    rv = domainDir->Clone(getter_AddRefs(localFile));
+-    if (NS_SUCCEEDED(rv))
+-      rv = localFile->AppendNative(MSG_FOLDER_CACHE_DIR_50_NAME);
+-  }
+   else if (strcmp(prop, NS_APP_STORAGE_50_FILE) == 0) {
+     rv = domainDir->Clone(getter_AddRefs(localFile));
+     if (NS_SUCCEEDED(rv))
+@@ -518,10 +498,6 @@
+   (void) directoryService->Undefine(NS_APP_BOOKMARKS_50_FILE);
+   (void) directoryService->Undefine(NS_APP_DOWNLOADS_50_FILE);
+   (void) directoryService->Undefine(NS_APP_SEARCH_50_FILE);
+-  (void) directoryService->Undefine(NS_APP_MAIL_50_DIR);
+-  (void) directoryService->Undefine(NS_APP_IMAP_MAIL_50_DIR);
+-  (void) directoryService->Undefine(NS_APP_NEWS_50_DIR);
+-  (void) directoryService->Undefine(NS_APP_MESSENGER_FOLDER_CACHE_50_DIR);
+ 
+   return NS_OK;
+ }
+--- kazehakase-0.5.4.orig/module/embed/gecko/GtkNSSDialogs.cpp	2008-06-15 15:15:10.000000000 +0200
++++ kazehakase-0.5.4/module/embed/gecko/GtkNSSDialogs.cpp	2008-06-15 10:28:47.885635130 +0200
+@@ -53,6 +53,7 @@
+ #include <nsEmbedString.h>
+ #undef MOZILLA_STRICT_API
+ #include <nsIDOMWindow.h>
++#include <nsIMutableArray.h>
+ 
+ #include <gtk/gtk.h>
+ #include <time.h>
+--- kazehakase-0.5.4.orig/module/embed/gecko/GtkPromptService.cpp	2008-03-29 09:20:40.000000000 +0100
++++ kazehakase-0.5.4/module/embed/gecko/GtkPromptService.cpp	2008-06-15 15:13:19.385610265 +0200
+@@ -36,6 +36,7 @@
+  *
+  * ***** END LICENSE BLOCK ***** */
+ 
++#include "config.h"
+ #include "GtkPromptService.h"
+ #include <nsIWindowWatcher.h>
+ #include <nsIWebBrowserChrome.h>
+@@ -49,6 +50,23 @@
+ #include <nsIDOMCharacterData.h>
+ #include <nsIDOMText.h>
+ #include <nsMemory.h>
++#ifdef HAVE_GECKO_1_9
++#include <nsIAuthInformation.h>
++#include <nsIStringBundle.h>
++#include <nsServiceManagerUtils.h>
++/* That is ugly but I didn't find another way, except including
++ * NS_GetAuthHostPort */
++#define kNotFound -1
++NS_COM void AppendUTF16toUTF8( const nsAString& aSource, nsACString& aDest );
++#include <nsStringAPI.h>
++#include <nsIProxiedChannel.h>
++#include <nsIProxyInfo.h>
++#include <nsIIDNService.h>
++#include <nsNetCID.h>
++#include <nsIURI.h>
++#include <nsNetUtil.h>
++#include <nsPromptUtils.h>
++#endif
+ 
+ #include <glib/gi18n.h>
+ #include "kz-prompt-dialog.h"
+@@ -89,8 +107,11 @@
+ {
+ }
+ 
+-
++#ifdef HAVE_GECKO_1_9
++NS_IMPL_ISUPPORTS2(GtkPromptService, nsIPromptService, nsIPromptService2)
++#else
+ NS_IMPL_ISUPPORTS1(GtkPromptService, nsIPromptService)
++#endif
+ 
+ NS_IMETHODIMP
+ GtkPromptService::Alert(nsIDOMWindow* aParent, const PRUnichar* aDialogTitle, 
+@@ -338,10 +359,12 @@
+ 	KzPromptDialog *prompt = KZ_PROMPT_DIALOG(kz_prompt_dialog_new_with_parent
+ 	    						(TYPE_PROMPT_USER_PASS,
+ 	    					         GTK_WINDOW(GetGtkWindowForDOMWindow(aParent))));
++#ifndef HAVE_GECKO_1_9
+ 	gchar *host = GetURIForDOMWindow(aParent);
+ 	kz_prompt_dialog_set_host (prompt, host);
+ 	if (host)
+ 		g_free(host);
++#endif
+ 	kz_prompt_dialog_set_title(prompt,
+ 	    			   aDialogTitle ? cTitle.get() : _("Prompt"));
+ 	kz_prompt_dialog_set_message_text(prompt, cText.get());
+@@ -391,10 +414,12 @@
+ 	KzPromptDialog *prompt = KZ_PROMPT_DIALOG(kz_prompt_dialog_new_with_parent
+ 	    						(TYPE_PROMPT_PASS,
+ 	    					         GTK_WINDOW(GetGtkWindowForDOMWindow(aParent))));
++#ifndef HAVE_GECKO_1_9
+ 	gchar *host = GetURIForDOMWindow(aParent);
+ 	kz_prompt_dialog_set_host (prompt, host);
+ 	if (host)
+ 		g_free(host);
++#endif
+ 	kz_prompt_dialog_set_title(prompt,
+ 	    			   aDialogTitle ? cTitle.get() : _("Prompt"));
+ 	kz_prompt_dialog_set_message_text(prompt, cText.get());
+@@ -510,3 +535,147 @@
+ 	NS_UTF16ToCString(uri, NS_CSTRING_ENCODING_UTF8, c_uri);
+ 	return g_strdup(c_uri.get());
+ }
++
++#ifdef HAVE_GECKO_1_9
++static nsresult
++MakeDialogText(nsIChannel* aChannel, nsIAuthInformation* aAuthInfo,
++               nsString& message)
++{
++  nsresult rv;
++  nsCOMPtr<nsIStringBundleService> bundleSvc =
++    do_GetService(NS_STRINGBUNDLE_CONTRACTID, &rv);
++  NS_ENSURE_SUCCESS(rv, rv);
++
++  nsCOMPtr<nsIStringBundle> bundle;
++  rv = bundleSvc->CreateBundle("chrome://global/locale/prompts.properties",
++                               getter_AddRefs(bundle));
++  NS_ENSURE_SUCCESS(rv, rv);
++
++  // figure out what message to display...
++  nsCAutoString host;
++  PRInt32 port;
++  NS_GetAuthHostPort(aChannel, aAuthInfo, PR_FALSE, host, &port);
++
++  nsAutoString displayHost;
++  CopyUTF8toUTF16(host, displayHost);
++
++  nsCOMPtr<nsIURI> uri;
++  aChannel->GetURI(getter_AddRefs(uri));
++
++  nsCAutoString scheme;
++  uri->GetScheme(scheme);
++
++  nsAutoString username;
++  aAuthInfo->GetUsername(username);
++
++  PRUint32 flags;
++  aAuthInfo->GetFlags(&flags);
++  PRBool proxyAuth = (flags & nsIAuthInformation::AUTH_PROXY) != 0;
++
++  nsAutoString realm;
++  aAuthInfo->GetRealm(realm);
++
++  // Append the port if it was specified
++  if (port != -1) {
++    displayHost.Append(PRUnichar(':'));
++    displayHost.AppendInt(port);
++  }
++
++  NS_NAMED_LITERAL_STRING(proxyText, "EnterLoginForProxy");
++  NS_NAMED_LITERAL_STRING(originText, "EnterLoginForRealm");
++  NS_NAMED_LITERAL_STRING(noRealmText, "EnterUserPasswordFor");
++  NS_NAMED_LITERAL_STRING(passwordText, "EnterPasswordFor");
++
++  const PRUnichar *text;
++  if (proxyAuth) {
++    text = proxyText.get();
++  } else {
++    text = originText.get();
++
++    // prepend "scheme://"
++    nsAutoString schemeU;
++    CopyASCIItoUTF16(scheme, schemeU);
++    schemeU.AppendLiteral("://");
++    displayHost.Insert(schemeU, 0);
++  }
++
++  const PRUnichar *strings[] = { realm.get(), displayHost.get() };
++  PRUint32 count = NS_ARRAY_LENGTH(strings);
++
++  if (flags & nsIAuthInformation::ONLY_PASSWORD) {
++    text = passwordText.get();
++    strings[0] = username.get();
++  } else if (!proxyAuth && realm.IsEmpty()) {
++    text = noRealmText.get();
++    count--;
++    strings[0] = strings[1];
++  }
++
++  rv = bundle->FormatStringFromName(text, strings, count, getter_Copies(message));
++  return rv;
++}
++
++NS_METHOD
++GtkPromptService::PromptAuth(nsIDOMWindow *aParent,
++                              nsIChannel *aChannel,
++                              PRUint32 level,
++                              nsIAuthInformation *authInfo,
++                              const PRUnichar *checkboxLabel,
++                              PRBool *checkValue,
++                              PRBool *retval)
++{
++	NS_ENSURE_ARG_POINTER (retval);
++	NS_ENSURE_ARG_POINTER (authInfo);
++
++  nsString message;
++  MakeDialogText(aChannel, authInfo, message);
++
++  nsAutoString defaultUser, defaultDomain, defaultPass;
++  authInfo->GetUsername(defaultUser);
++  authInfo->GetDomain(defaultDomain);
++  authInfo->GetPassword(defaultPass);
++
++  PRUint32 flags;
++  authInfo->GetFlags(&flags);
++
++  if ((flags & nsIAuthInformation::NEED_DOMAIN) && !defaultDomain.IsEmpty()) {
++    defaultDomain.Append(PRUnichar('\\'));
++    defaultUser.Insert(defaultDomain, 0);
++  }
++
++  // NOTE: Allocation failure is not fatal here (just default to empty string
++  // if allocation fails)
++  PRUnichar *user = ToNewUnicode(defaultUser),
++    *pass = ToNewUnicode(defaultPass);
++  nsresult rv;
++  if (flags & nsIAuthInformation::ONLY_PASSWORD)
++    rv = PromptPassword(aParent, nsnull, message.get(),
++                                  &pass, checkboxLabel,
++                                  checkValue, retval);
++  else
++    rv = PromptUsernameAndPassword(aParent, nsnull, message.get(),
++                                             &user, &pass, checkboxLabel,
++                                             checkValue, retval);
++
++  nsString userStr(user);
++  nsString passStr(pass);
++  authInfo->SetUsername(userStr);
++  authInfo->SetPassword(passStr);
++
++  return rv;
++}
++
++NS_METHOD GtkPromptService::AsyncPromptAuth(nsIDOMWindow *aParent,
++                                            nsIChannel *aChannel,
++                                            nsIAuthPromptCallback *aCallback,
++                                            nsISupports *aContext,
++                                            PRUint32 level,
++                                            nsIAuthInformation *authInfo,
++                                            const PRUnichar *checkboxLabel,
++                                            PRBool *checkValue,
++                                            nsICancelable **retval)
++{
++  return NS_ERROR_NOT_IMPLEMENTED;
++}
++
++#endif
+--- kazehakase-0.5.4/module/embed/gecko/GtkPromptService.h	2008-03-29 09:20:40.000000000 +0100
++++ kazehakase-0.5.4.new/module/embed/gecko/GtkPromptService.h	2008-06-15 13:42:32.787114122 +0200
+@@ -37,7 +37,11 @@
+  *
+  * ***** END LICENSE BLOCK ***** */
+ 
++#ifdef HAVE_GECKO_1_9
++#include <nsIPromptService2.h>
++#else
+ #include <nsIPromptService.h>
++#endif
+ #include <gtk/gtk.h>
+ 
+ #define NS_PROMPTSERVICE_CID \
+@@ -45,7 +49,12 @@
+ 
+ class nsIDOMWindow;
+ 
+-class GtkPromptService : public nsIPromptService
++class GtkPromptService :
++#ifdef HAVE_GECKO_1_9
++	public nsIPromptService2
++#else
++	public nsIPromptService
++#endif
+ {
+ public:
+ 	GtkPromptService();
+@@ -53,6 +62,9 @@
+ 
+ 	NS_DECL_ISUPPORTS
+ 	NS_DECL_NSIPROMPTSERVICE
++#ifdef HAVE_GECKO_1_9
++	NS_DECL_NSIPROMPTSERVICE2
++#endif
+ 
+ private:
+ 	const char *GetButtonLabel(PRUint32 aFlags, PRUint32 aPos,
+--- kazehakase-0.5.4.orig/module/embed/gecko/kz-mozutils.h	2008-03-29 09:20:40.000000000 +0100
++++ kazehakase-0.5.4/module/embed/gecko/kz-mozutils.h	2008-06-15 14:58:46.665612336 +0200
+@@ -49,6 +49,8 @@
+  * The following functions is taken from include/necko/nsNetUtils.h in mozilla
+  */
+ 
++#ifndef nsNetUtil_h__
++
+ inline nsresult
+ GetIOService (nsIIOService **ioService)
+ {
+@@ -245,6 +247,6 @@
+ 
+   return resultBuffer;
+ }
+-
++#endif
+ 
+ #endif /* __KZ_MOZ_UTILS_H__ */
--- kazehakase-0.5.4.orig/debian/patches/20_user_agent_tag.dpatch
+++ kazehakase-0.5.4/debian/patches/20_user_agent_tag.dpatch
@@ -0,0 +1,37 @@
+#!/bin/sh -e
+## 20_user_agent_tag.dpatch.dpatch by Andres Salomon <dilinger@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP:  Make the Browser string recognizeable as Debian.
+
+if [ $# -ne 1 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+case "$1" in
+       -patch) patch $patch_opts -p1 < $0;;
+       -unpatch) patch $patch_opts -p1 -R < $0;;
+        *)
+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+                exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urN a/module/embed/gecko/kz-gecko-single.cpp b/module/embed/gecko/kz-gecko-single.cpp
+--- a/module/embed/gecko/kz-gecko-single.cpp	2008-02-20 19:31:10.000000000 +0000
++++ b/module/embed/gecko/kz-gecko-single.cpp	2008-02-20 19:31:44.000000000 +0000
+@@ -323,7 +323,7 @@ set_user_agent (KzProfile *profile)
+ 	{
+ 		mozilla_prefs_clear("general.useragent.override");
+ 		mozilla_prefs_set_string("general.useragent.extra.kazehakase",
+-					 "Kazehakase/" VERSION);
++					 "Kazehakase/" VERSION " Debian/" DEBIAN_VERSION);
+ 	}
+ }
+ 
--- kazehakase-0.5.4.orig/debian/patches/50_passwordmgr.dpatch
+++ kazehakase-0.5.4/debian/patches/50_passwordmgr.dpatch
@@ -0,0 +1,31 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 50_passwordmgr.dpatch by  <glandium@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fixed crasher in GtkPromptService.cpp when signon.rememberSignons is not set,
+## DP: which happens to be the case with xulrunner but not with mozilla. Also set it
+## DP: if not already user set.
+## DP: Thanks to Gerfried Fuchs and Yavor Doganov for their help.
+
+@DPATCH@
+diff -urN a/module/embed/gecko/mozilla-prefs.cpp b/module/embed/gecko/mozilla-prefs.cpp
+--- a/module/embed/gecko/mozilla-prefs.cpp	2008-01-23 23:38:55.000000000 +0000
++++ b/module/embed/gecko/mozilla-prefs.cpp	2008-01-23 23:43:16.000000000 +0000
+@@ -249,6 +249,7 @@
+ 	gboolean use_proxy = FALSE;
+ 	gchar proxy_name[1024];
+ 	gboolean conf_exist = FALSE, use_proxy_exist = FALSE;
++	gboolean signon_remember;
+ 	KzProxyItem *item = NULL;
+ 
+ 	if (!mozilla_prefs_get_string("kazehakase.font.language", &value))
+@@ -276,6 +277,9 @@
+ 		}
+ 		g_free(value);
+ 	}
++
++	if (!mozilla_prefs_get_boolean("signon.rememberSignons", &signon_remember))
++		mozilla_prefs_set_boolean("signon.rememberSignons", false);
+ 	
+ 	use_proxy_exist = kz_profile_get_value(profile, "Global", "use_proxy", 
+ 					       &use_proxy, sizeof(gboolean),
--- kazehakase-0.5.4.orig/po/rgettext.mk
+++ kazehakase-0.5.4/po/rgettext.mk
@@ -0,0 +1,19 @@
+	if test "$(RGETTEXT)" != ""; then					\
+	  original_pot=$(GETTEXT_PACKAGE).orig.pot;				\
+	  rb_pot=$(GETTEXT_PACKAGE).rb.pot;					\
+	  rb_no_header_pot=$(GETTEXT_PACKAGE).rb.no-header.pot;			\
+										\
+	  $(RGETTEXT) -o $$rb_pot $(RGETTEXT_TARGETS);				\
+	  $(RUBY) $(srcdir)/extract-po-header.rb $$rb_pot > $$rb_no_header_pot;	\
+	  mv $(GETTEXT_PACKAGE).pot $$original_pot;				\
+	  cat $$original_pot $$rb_no_header_pot > $(GETTEXT_PACKAGE).pot;	\
+	  rm -f $$original_pot $$rb_pot $$rb_no_header_pot;			\
+										\
+	  dummy_c=dummy.c;							\
+	  echo "/* for rejecting duplicated entries */" > $$dummy_c;		\
+	  $(XGETTEXT) --join-existing -o $(GETTEXT_PACKAGE).pot $$dummy_c;	\
+	  rm -f $$dummy_c;							\
+	fi
+
+RGETTEXT = 
+RGETTEXT_TARGETS = 
