[BACK]Return to pr.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / pr

Diff for /src/usr.bin/pr/pr.c between version 1.8 and 1.9

version 1.8, 2000/11/10 15:33:12 version 1.9, 2001/02/05 01:57:12
Line 142 
Line 142 
 /*  /*
  * misc globals   * misc globals
  */   */
 FILE    *err;           /* error message file pointer */  FILE    *ferr;          /* error message file pointer */
 int     addone = 0;     /* page length is odd with double space */  int     addone = 0;     /* page length is odd with double space */
 int     errcnt = 0;     /* error count on file processing */  int     errcnt = 0;     /* error count on file processing */
 int     beheaded = 0;   /* header / trailer link */  int     beheaded = 0;   /* header / trailer link */
Line 918 
Line 918 
         pgwd = ((colwd + 1) * clcnt) - 1;          pgwd = ((colwd + 1) * clcnt) - 1;
     }      }
     if (colwd < 1) {      if (colwd < 1) {
         (void)fprintf(err,          (void)fprintf(ferr,
           "pr: page width too small for %d columns\n", clcnt);            "pr: page width too small for %d columns\n", clcnt);
         return(1);          return(1);
     }      }
Line 1399 
Line 1399 
             return(inf);              return(inf);
         if (gettimeofday(&tv, &tz) < 0) {          if (gettimeofday(&tv, &tz) < 0) {
             ++errcnt;              ++errcnt;
             (void)fprintf(err, "pr: cannot get time of day, %s\n",              (void)fprintf(ferr, "pr: cannot get time of day, %s\n",
                 strerror(errno));                  strerror(errno));
             eoptind = argc - 1;              eoptind = argc - 1;
             return(NULL);              return(NULL);
Line 1423 
Line 1423 
                 return(inf);                  return(inf);
             if (gettimeofday(&tv, &tz) < 0) {              if (gettimeofday(&tv, &tz) < 0) {
                 ++errcnt;                  ++errcnt;
                 (void)fprintf(err,                  (void)fprintf(ferr,
                     "pr: cannot get time of day, %s\n",                      "pr: cannot get time of day, %s\n",
                     strerror(errno));                      strerror(errno));
                 return(NULL);                  return(NULL);
Line 1438 
Line 1438 
                 ++errcnt;                  ++errcnt;
                 if (nodiag)                  if (nodiag)
                     continue;                      continue;
                 (void)fprintf(err, "pr: Cannot open %s, %s\n",                  (void)fprintf(ferr, "pr: Cannot open %s, %s\n",
                     argv[eoptind], strerror(errno));                      argv[eoptind], strerror(errno));
                 continue;                  continue;
             }              }
Line 1455 
Line 1455 
             if (dt) {              if (dt) {
                 if (gettimeofday(&tv, &tz) < 0) {                  if (gettimeofday(&tv, &tz) < 0) {
                     ++errcnt;                      ++errcnt;
                     (void)fprintf(err,                      (void)fprintf(ferr,
                          "pr: cannot get time of day, %s\n",                           "pr: cannot get time of day, %s\n",
                          strerror(errno));                           strerror(errno));
                     return(NULL);                      return(NULL);
Line 1466 
Line 1466 
                 if (fstat(fileno(inf), &statbuf) < 0) {                  if (fstat(fileno(inf), &statbuf) < 0) {
                     ++errcnt;                      ++errcnt;
                     (void)fclose(inf);                      (void)fclose(inf);
                     (void)fprintf(err,                      (void)fprintf(ferr,
                         "pr: Cannot stat %s, %s\n",                          "pr: Cannot stat %s, %s\n",
                         argv[eoptind], strerror(errno));                          argv[eoptind], strerror(errno));
                     return(NULL);                      return(NULL);
Line 1486 
Line 1486 
         ++errcnt;          ++errcnt;
         if (inf != stdin)          if (inf != stdin)
             (void)fclose(inf);              (void)fclose(inf);
         (void)fputs("pr: time conversion failed\n", err);          (void)fputs("pr: time conversion failed\n", ferr);
         return(NULL);          return(NULL);
     }      }
     return(inf);      return(inf);
Line 1701 
Line 1701 
     char buf[BUFSIZ];      char buf[BUFSIZ];
   
     (void)fflush(stdout);      (void)fflush(stdout);
     (void)fflush(err);      (void)fflush(ferr);
     if (err == stderr)      if (ferr == stderr)
         return;          return;
     rewind(err);      rewind(ferr);
     while (fgets(buf, BUFSIZ, err) != NULL)      while (fgets(buf, BUFSIZ, ferr) != NULL)
         (void)fputs(buf, stderr);          (void)fputs(buf, stderr);
 }  }
   
 void  void
 mfail()  mfail()
 {  {
     (void)fputs("pr: memory allocation failed\n", err);      (void)fputs("pr: memory allocation failed\n", ferr);
 }  }
   
 void  void
 pfail()  pfail()
 {  {
     (void)fprintf(err, "pr: write failure, %s\n", strerror(errno));      (void)fprintf(ferr, "pr: write failure, %s\n", strerror(errno));
 }  }
   
 void  void
 usage()  usage()
 {  {
     (void)fputs(      (void)fputs(
      "usage: pr [+page] [-col] [-adfFmrt] [-e[ch][gap]] [-h header]\n",err);       "usage: pr [+page] [-col] [-adfFmrt] [-e[ch][gap]] [-h header]\n", ferr);
     (void)fputs(      (void)fputs(
      "          [-i[ch][gap]] [-l line] [-n[ch][width]] [-o offset]\n",err);       "          [-i[ch][gap]] [-l line] [-n[ch][width]] [-o offset]\n", ferr);
     (void)fputs(      (void)fputs(
      "          [-s[ch]] [-w width] [-] [file ...]\n", err);       "          [-s[ch]] [-w width] [-] [file ...]\n", ferr);
 }  }
   
 /*  /*
Line 1751 
Line 1751 
         /*          /*
          * defer diagnostics until processing is done           * defer diagnostics until processing is done
          */           */
         if ((err = tmpfile()) == NULL) {          if ((ferr = tmpfile()) == NULL) {
                (void)fputs("Cannot defer diagnostic messages\n",stderr);                 (void)fputs("Cannot defer diagnostic messages\n",stderr);
                return(1);                 return(1);
         }          }
     } else      } else
         err = stderr;          ferr = stderr;
     while ((c = egetopt(argc, argv, "#adfFmrte?h:i?l:n?o:s?w:")) != -1) {      while ((c = egetopt(argc, argv, "#adfFmrte?h:i?l:n?o:s?w:")) != -1) {
         switch (c) {          switch (c) {
         case '+':          case '+':
             if ((pgnm = atoi(eoptarg)) < 1) {              if ((pgnm = atoi(eoptarg)) < 1) {
                 (void)fputs("pr: +page number must be 1 or more\n",                  (void)fputs("pr: +page number must be 1 or more\n",
                 err);                      ferr);
                 return(1);                  return(1);
             }              }
             ++skipping;              ++skipping;
             break;              break;
         case '-':          case '-':
             if ((clcnt = atoi(eoptarg)) < 1) {              if ((clcnt = atoi(eoptarg)) < 1) {
                 (void)fputs("pr: -columns must be 1 or more\n",err);                  (void)fputs("pr: -columns must be 1 or more\n",ferr);
                 return(1);                  return(1);
             }              }
             if (clcnt > 1)              if (clcnt > 1)
Line 1790 
Line 1790 
             if ((eoptarg != NULL) && isdigit(*eoptarg)) {              if ((eoptarg != NULL) && isdigit(*eoptarg)) {
                 if ((ingap = atoi(eoptarg)) < 0) {                  if ((ingap = atoi(eoptarg)) < 0) {
                     (void)fputs(                      (void)fputs(
                     "pr: -e gap must be 0 or more\n", err);                      "pr: -e gap must be 0 or more\n", ferr);
                     return(1);                      return(1);
                 }                  }
                 if (ingap == 0)                  if (ingap == 0)
                     ingap = INGAP;                      ingap = INGAP;
             } else if ((eoptarg != NULL) && (*eoptarg != '\0')) {              } else if ((eoptarg != NULL) && (*eoptarg != '\0')) {
                 (void)fprintf(err,                  (void)fprintf(ferr,
                       "pr: invalid value for -e %s\n", eoptarg);                        "pr: invalid value for -e %s\n", eoptarg);
                 return(1);                  return(1);
             } else              } else
Line 1818 
Line 1818 
             if ((eoptarg != NULL) && isdigit(*eoptarg)) {              if ((eoptarg != NULL) && isdigit(*eoptarg)) {
                 if ((ogap = atoi(eoptarg)) < 0) {                  if ((ogap = atoi(eoptarg)) < 0) {
                     (void)fputs(                      (void)fputs(
                     "pr: -i gap must be 0 or more\n", err);                      "pr: -i gap must be 0 or more\n", ferr);
                     return(1);                      return(1);
                 }                  }
                 if (ogap == 0)                  if (ogap == 0)
                     ogap = OGAP;                      ogap = OGAP;
             } else if ((eoptarg != NULL) && (*eoptarg != '\0')) {              } else if ((eoptarg != NULL) && (*eoptarg != '\0')) {
                 (void)fprintf(err,                  (void)fprintf(ferr,
                       "pr: invalid value for -i %s\n", eoptarg);                        "pr: invalid value for -i %s\n", eoptarg);
                 return(1);                  return(1);
             } else              } else
Line 1833 
Line 1833 
         case 'l':          case 'l':
             if (!isdigit(*eoptarg) || ((lines=atoi(eoptarg)) < 1)) {              if (!isdigit(*eoptarg) || ((lines=atoi(eoptarg)) < 1)) {
                 (void)fputs(                  (void)fputs(
                  "pr: Number of lines must be 1 or more\n",err);                   "pr: Number of lines must be 1 or more\n",ferr);
                 return(1);                  return(1);
             }              }
             break;              break;
Line 1848 
Line 1848 
             if ((eoptarg != NULL) && isdigit(*eoptarg)) {              if ((eoptarg != NULL) && isdigit(*eoptarg)) {
                 if ((nmwd = atoi(eoptarg)) < 1) {                  if ((nmwd = atoi(eoptarg)) < 1) {
                     (void)fputs(                      (void)fputs(
                     "pr: -n width must be 1 or more\n",err);                      "pr: -n width must be 1 or more\n",ferr);
                     return(1);                      return(1);
                 }                  }
             } else if ((eoptarg != NULL) && (*eoptarg != '\0')) {              } else if ((eoptarg != NULL) && (*eoptarg != '\0')) {
                 (void)fprintf(err,                  (void)fprintf(ferr,
                       "pr: invalid value for -n %s\n", eoptarg);                        "pr: invalid value for -n %s\n", eoptarg);
                 return(1);                  return(1);
             } else              } else
Line 1861 
Line 1861 
         case 'o':          case 'o':
             if (!isdigit(*eoptarg) || ((offst = atoi(eoptarg))< 1)){              if (!isdigit(*eoptarg) || ((offst = atoi(eoptarg))< 1)){
                 (void)fputs("pr: -o offset must be 1 or more\n",                  (void)fputs("pr: -o offset must be 1 or more\n",
                     err);                      ferr);
                 return(1);                  return(1);
             }              }
             break;              break;
Line 1875 
Line 1875 
             else {              else {
                 schar = *eoptarg++;                  schar = *eoptarg++;
                 if (*eoptarg != '\0') {                  if (*eoptarg != '\0') {
                     (void)fprintf(err,                      (void)fprintf(ferr,
                         "pr: invalid value for -s %s\n", eoptarg);                          "pr: invalid value for -s %s\n", eoptarg);
                     return(1);                      return(1);
                 }                  }
Line 1888 
Line 1888 
             ++wflag;              ++wflag;
             if (!isdigit(*eoptarg) || ((pgwd = atoi(eoptarg)) < 1)){              if (!isdigit(*eoptarg) || ((pgwd = atoi(eoptarg)) < 1)){
                 (void)fputs(                  (void)fputs(
                    "pr: -w width must be 1 or more \n",err);                     "pr: -w width must be 1 or more \n",ferr);
                 return(1);                  return(1);
             }              }
             break;              break;
Line 1917 
Line 1917 
     if (across) {      if (across) {
         if (clcnt == 1) {          if (clcnt == 1) {
             (void)fputs("pr: -a flag requires multiple columns\n",              (void)fputs("pr: -a flag requires multiple columns\n",
                 err);                  ferr);
             return(1);              return(1);
         }          }
         if (merge) {          if (merge) {
             (void)fputs("pr: -m cannot be used with -a\n", err);              (void)fputs("pr: -m cannot be used with -a\n", ferr);
             return(1);              return(1);
         }          }
     }      }
Line 1944 
Line 1944 
     if (cflag) {      if (cflag) {
         if (merge) {          if (merge) {
             (void)fputs(              (void)fputs(
               "pr: -m cannot be used with multiple columns\n", err);                "pr: -m cannot be used with multiple columns\n", ferr);
             return(1);              return(1);
         }          }
         if (nmwd) {          if (nmwd) {
Line 1955 
Line 1955 
             pgwd = ((colwd + 1) * clcnt) - 1;              pgwd = ((colwd + 1) * clcnt) - 1;
         }          }
         if (colwd < 1) {          if (colwd < 1) {
             (void)fprintf(err,              (void)fprintf(ferr,
               "pr: page width is too small for %d columns\n",clcnt);                "pr: page width is too small for %d columns\n",clcnt);
             return(1);              return(1);
         }          }

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9