summaryrefslogtreecommitdiff
path: root/dh_installman
diff options
context:
space:
mode:
Diffstat (limited to 'dh_installman')
-rwxr-xr-xdh_installman22
1 files changed, 17 insertions, 5 deletions
diff --git a/dh_installman b/dh_installman
index 2ce0e377..55c57370 100755
--- a/dh_installman
+++ b/dh_installman
@@ -38,6 +38,11 @@ like /usr/share/man/pl/man1/, that is because your program has a
name like "foo.pl", and dh_installman assumes that means it is translated
into Polish. Use --language=C to avoid this.
+dh_installman will use man to guess the character encoding of each manual
+page and convert it to UTF-8. If the guesswork fails for some reason, you
+can override it using an encoding declaration. See L<manconv(1)> for
+details.
+
Any man page filenames specified as parameters will be installed into the
first package dh_installman is told to act on. By default, this is the
first binary package in debian/control, but if you use -p, -i, or -a flags,
@@ -162,16 +167,23 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
$destdir="$tmp/usr/share/man/$langcode/man$realsection/";
}
$destdir=~tr:/:/:s; # just for looks
+ my $instpage="$destdir/$instname.$section";
- next if -l "$destdir/$instname.$section";
- next if compat(5) && -e "$destdir/$instname.$section";
+ next if -l $instpage;
+ next if compat(5) && -e $instpage;
if (! -d $destdir) {
doit "install","-d",$destdir;
}
- doit "install","-p","-m644",$page,
- "$destdir$instname.$section$gz";
-
+ if ($gz) {
+ complex_doit "zcat \Q$page\E > \Q$instpage\E";
+ }
+ else {
+ doit "install","-p","-m644",$page,$instpage;
+ }
+ complex_doit "man --recode UTF-8 \Q$instpage\E > \Q$instpage.new\E";
+ doit "chmod",644,"$instpage.new";
+ doit "mv","$instpage.new",$instpage;
}
# Now the .so conversion.