add support for xz

http://bugs.gentoo.org/302380

--- a/src/makewhatis.sh
+++ b/src/makewhatis.sh
@@ -230,7 +230,7 @@
 	    find $mandir/${pages}$i/. -name '*' $findarg0 $findarg -print | $AWK '
 
 	    function readline() {
-              if (use_zcat || use_bzcat || use_lzcat) {
+              if (use_zcat || use_bzcat || use_lzcat || use_xzcat) {
 		result = (pipe_cmd | getline);
 		if (result < 0) {
 		  print "Pipe error: " pipe_cmd " " ERRNO > "/dev/stderr";
@@ -245,7 +245,7 @@
 	    }
 	    
 	    function closeline() {
-              if (use_zcat || use_bzcat || use_lzcat) {
+              if (use_zcat || use_bzcat || use_lzcat || use_xzcat) {
 		return close(pipe_cmd);
 	      } else {
 		return close(filename);
@@ -266,7 +266,9 @@
 		use_bzcat = match(filename,"\\.bz2");
               if(!use_bzcat)
                 use_lzcat = match(filename,"\\.lzma");
-              if (use_zcat || use_bzcat || use_lzcat ) {
+              if(!use_lzcat)
+                use_xzcat = match(filename,"\\.xz");
+              if (use_zcat || use_bzcat || use_lzcat || use_xzcat) {
 		filename_no_gz = substr(filename, 0, RSTART - 1);
 	      } else {
 		filename_no_gz = filename;
@@ -279,13 +281,15 @@
 		actual_section = section;
 	      }
 	      sub(/\..*/, "", progname);
-              if (use_zcat || use_bzcat || use_lzcat) {
+              if (use_zcat || use_bzcat || use_lzcat || use_xzcat) {
 		if (use_zcat) {
 		  pipe_cmd = "zcat \"" filename "\"";
                 } else if (use_bzcat) {
 		  pipe_cmd = "bzcat \"" filename "\"";
-                } else {
+                } else if (use_lzcat) {
                   pipe_cmd = "lzcat \"" filename "\"";
+                } else {
+                  pipe_cmd = "xzcat \"" filename "\"";
                 }
 		# try to avoid suspicious stuff
 		if (filename ~ /[;&|`$(]/) {
