Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 May 2003 19:24:05 +0900 (JST)
From:      Krister Joas <krister@gazonk.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   bin/52213: catman compresses with wrong program if source files are uncompressed
Message-ID:  <200305141024.h4EAO5L5063135@yuri.local.gazonk.net>
Resent-Message-ID: <200305141050.h4EAoGnj014645@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         52213
>Category:       bin
>Synopsis:       catman compresses with wrong program if source files are uncompressed
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed May 14 03:50:16 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Krister Joas
>Release:        FreeBSD 5.1-BETA i386
>Organization:
Gazonk
>Environment:
System: FreeBSD yuri.local.gazonk.net 5.1-BETA FreeBSD 5.1-BETA #1: Sun May 11 23:38:06 JST 2003 root@yuri.local.gazonk.net:/usr/obj/usr/src/sys/YURI5 i386


>Description:

If the system is installed with NOMANCOMPRESS=true in /etc/make.conf
so that man pages are installed uncompressed, running catman results
in unusable preformated files in the corresponding cat? directories.
The files are compressed with bzip2 but with the extension .gz.
When running 'man' the files fail to uncompress.

>How-To-Repeat:

Run catman on a directory with uncompressed man-pages.  The files
in the cat? directories are bzip2'ed with extension .gz:

	$ file cat1/write.1.gz
	cat1/write.1.gz: bzip2 compressed data, block size = 900k
	$ man write
	zcat: /home/krister/man/cat1/write.1.gz: not in gzip format

>Fix:

The following patch fixes catman so that if the source file is
compressed the preformatted files are compressed with the same
program as the source and if the source files are uncompressed the
preformatted files are also uncompressed.

Index: catman.c
===================================================================
RCS file: /usr/cvs/freebsd/src/usr.bin/catman/catman.c,v
retrieving revision 1.5
diff -u -r1.5 catman.c
--- catman.c	29 Oct 2002 09:20:22 -0000	1.5
+++ catman.c	14 May 2003 10:06:09 -0000
@@ -461,9 +461,11 @@
 	}
 	snprintf(tmp_file, sizeof tmp_file, "%s.tmp", cat);
 	snprintf(cmd, sizeof cmd,
-	    "%scat %s | tbl | nroff -T%s -man | col | %s -c > %s.tmp",
+	    "%scat %s | tbl | nroff -T%s -man | col | %s > %s.tmp",
 	    zipped == BZIP ? BZ2CAT_CMD : zipped == GZIP ? GZCAT_CMD : "",
-	    src, nroff_device, zipped == GZIP ? GZ_CMD : BZ2_CMD, cat);
+	    src, nroff_device,
+	    zipped == BZIP ? BZ2_CMD : zipped == GZIP ? GZ_CMD : "cat",
+	    cat);
 	if (system(cmd) != 0)
 		err(1, "formatting pipeline");
 	if (rename(tmp_file, cat) < 0)
@@ -541,8 +543,8 @@
 						"warning, %s is uncompressed\n",
 						page_path);
 				}
-				snprintf(cat_path, sizeof cat_path, "%s/%s%s",
-				    cat_section, page_name, GZ_EXT);
+				snprintf(cat_path, sizeof cat_path, "%s/%s",
+				    cat_section, page_name);
 				if (expected != NULL) {
 					asprintf(&expected[nexpected++],
 					    "%s%s", page_name, GZ_EXT);
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305141024.h4EAO5L5063135>