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";
}
openSUSE Build Service is sponsored by