File gnome-help-NLD of Package gnome-vfs2
#! /usr/bin/perl -w
system "khelpcenter > /dev/null" if $#ARGV < 0;
foreach $filename (@ARGV) {
if ($filename =~ s|^(ghelp:)?/+opt/gnome/share/gnome/help/([^/]*)/([^/]*)/\2.xml((\?[^/]*)?)$|help:$2$4|) {
$base = $2;
$lang = $3;
$search = $4;
$search =~ s/^\?//;
if ($filename =~ m|^help:[^/]*\?[^/]*$|) {
$cache_file = "/usr/share/gnome/help/$base/$lang/$base.cache.bz2";
if (!-f $cache_file) {
($username) = getpwuid($<);
$cache_dir = "/var/tmp/kdecache-$username/usr/share/gnome/help/$base/$lang";
$cache_file = "$cache_dir/$base.cache.bz2";
if (!-f $cache_file) {
$orig_file = "/usr/share/gnome/help/$base/$lang/$base.xml";
system ("mkdir -p $cache_dir");
system ("meinproc --cache $cache_file $orig_file > /dev/null");
}
}
$/ = "<";
open XML, "bunzip2 -c $cache_file |";
while ($line = <XML>) {
if ($line =~ m|^FILENAME\s[^>]*filename="([^>\"]*)"|) {
$html_filename = "help:$base/$1";
if ($1 eq "$search.html") {
$filename = $html_filename;
last;
}
}
if ($line =~ m|^a\s[^>]*name="([^>\"]*)"|) {
if ($1 eq $search) {
$filename = "$html_filename#$1";
last;
}
}
}
close XML;
}
}
system "khelpcenter $filename > /dev/null";
}