--- xman-1.0.2/man.c.bzip2 2005-11-08 01:33:33.000000000 -0500 +++ xman-1.0.2/man.c 2006-06-06 13:36:38.000000000 -0400 @@ -447,6 +447,10 @@ else if (streq(ptr + 1, GZIP_EXTENSION)) *ptr = '\0'; #endif +#ifdef BZIP2_EXTENSION + else if (streq(ptr + 1, BZIP2_EXTENSION)) + *ptr = '\0'; +#endif } nentries = local_manual->nentries; @@ -485,6 +489,10 @@ else if (streq(ptr + 1, GZIP_EXTENSION)) *ptr = '\0'; #endif +#ifdef BZIP2_EXTENSION + else if (streq(ptr + 1, BZIP2_EXTENSION)) + *ptr = '\0'; +#endif #ifdef IGNORE_EXTENSION /* skip files with specified extension - they're not real man pages */ else if (streq(ptr + 1, IGNORE_EXTENSION)) { --- xman-1.0.2/misc.c.bzip2 2005-11-08 01:33:33.000000000 -0500 +++ xman-1.0.2/misc.c 2006-06-06 13:36:38.000000000 -0400 @@ -255,6 +255,14 @@ return(file); } #endif +#ifdef BZIP2_EXTENSION + { + sprintf(filename, "%s/%s%s/%s.%s", path, CAT, + section + len_cat, page, BZIP2_EXTENSION); + if ( (file = Uncompress(man_globals, filename)) != NULL) + return(file); + } +#endif #else for(i = 0; i < strlen(COMPRESSION_EXTENSIONS); i++) { snprintf(filename, sizeof(filename), "%s/%s%s/%s.%c", path, CAT, @@ -381,6 +389,12 @@ snprintf(cmdbuf, sizeof(cmdbuf), GUNZIP_FORMAT, filename, output); else #endif +#ifdef BZIP2_EXTENSION + if (streq(filename + strlen(filename) - strlen(BZIP2_EXTENSION), + BZIP2_EXTENSION)) + sprintf(cmdbuf, BUNZIP2_FORMAT, filename, output); + else +#endif snprintf(cmdbuf, sizeof(cmdbuf), UNCOMPRESS_FORMAT, filename, output); if(system(cmdbuf) == 0) /* execute search. */ return(TRUE); @@ -807,6 +821,8 @@ ParseEntry(entry, path, section, page); + man_globals->bzip2 = FALSE; + #if defined(__OpenBSD__) || defined(__NetBSD__) /* * look for uncompressed file in machine subdir first @@ -856,6 +872,25 @@ } #endif /* GZIP_EXTENSION */ #endif /* __OpenBSD__ || __NetBSD__ */ + +#ifdef BZIP2_EXTENSION + { + sprintf(input, "%s.%s", filename, BZIP2_EXTENSION); +#ifndef HAS_MKSTEMP + if ( UncompressNamed(man_globals, input, filename) ) { +#else + if ( UncompressNamed(man_globals, input, filename, file) ) { +#endif + man_globals->compress = TRUE; + man_globals->gzip = FALSE; + man_globals->bzip2 = TRUE; + sprintf(man_globals->save_file, "%s/%s%s/%s.%s", path, + CAT, section + len_cat, page, BZIP2_EXTENSION); + return(TRUE); + } + } +#endif /* BZIP2_EXTENSION */ + /* * Look for uncompressed file first. */ @@ -925,6 +960,24 @@ } } #endif + +#ifdef BZIP2_EXTENSION + { + sprintf(input, "%s.%s", filename, BZIP2_EXTENSION); +#ifndef HAS_MKSTEMP + if ( UncompressNamed(man_globals, input, filename) ) { +#else + if ( UncompressNamed(man_globals, input, filename, file) ) { +#endif + man_globals->compress = TRUE; + man_globals->gzip = TRUE; + sprintf(man_globals->save_file, "%s/%s%s/%s.%s", path, + CAT, section + len_cat, page, BZIP2_EXTENSION); + return(TRUE); + } + } +#endif + /* * And lastly files in a compressed directory. */ --- xman-1.0.2/vendor.h.bzip2 2005-11-08 01:33:33.000000000 -0500 +++ xman-1.0.2/vendor.h 2006-06-06 13:36:37.000000000 -0400 @@ -137,6 +137,13 @@ # define GUNZIP_FORMAT "gzip -c -d < %s >> %s" # endif # define GZIP_COMPRESS "gzip" +# define BZIP2_EXTENSION "bz2" +# ifndef HAS_MKSTEMP +# define BUNZIP2_FORMAT "bunzip2 -c -d < %s > %s" +# else +# define BUNZIP2_FORMAT "bunzip2 -c -d < %s >> %s" +# endif +# define BZIP2_COMPRESS "bzip2" #endif @@ -180,7 +187,7 @@ # define TBL "tbl" #else /* HANDLE_ROFFSEQ */ # if defined(linux) -# define ZSOELIM "zsoelim" +# define ZSOELIM "soelim" # else # define ZSOELIM "soelim" #endif --- xman-1.0.2/man.h.bzip2 2004-09-02 04:40:33.000000000 -0400 +++ xman-1.0.2/man.h 2006-06-06 13:36:38.000000000 -0400 @@ -166,6 +166,7 @@ page from. */ Boolean compress; /* Compress file on save? */ Boolean gzip; /* Gzip file on save? */ + Boolean bzip2; /* Bzip2 file on save? */ Boolean deletetempfile; /* Need to delete tempfile when done? */ char ** section_name; /* The name of each of the sections */