+ (void) unlink(cat);
+ }
+ if (makelink) {
+ /*
+ * Don't unlink a directory by accident.
+ */
+ if (stat(lncat+3, &sbuf) >= 0 &&
+ (((sbuf.st_mode&S_IFMT)==S_IFREG) ||
+ ((sbuf.st_mode&S_IFMT)==S_IFLNK)))
+ (void) unlink(cat);
+ if (pflag)
+ printf("ln -s %s %s\n", lncat, cat);
+ else
+ if (symlink(lncat, cat) == -1) {
+ sprintf(buf, "catman: symlink: %s", cat);
+ perror(buf);
+ exstat = 1;
+ continue;
+ }
+ }
+ else {
+ sprintf(buf, "nroff -man %s > %s", man, cat);
+ if (pflag)
+ printf("%s\n", buf);
+ else if ((status = system(buf)) != 0) {
+ fprintf(stderr, "catman: nroff: %s: exit status %d: Owooooo!\n", cat, status);
+ exstat = 1;
+ continue;
+ }