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

Diff for /src/usr.bin/paste/paste.c between version 1.4 and 1.5

version 1.4, 1997/01/17 07:13:02 version 1.5, 1998/11/16 06:09:12
Line 48 
Line 48 
 #endif /* not lint */  #endif /* not lint */
   
 #include <sys/types.h>  #include <sys/types.h>
   #include <unistd.h>
 #include <errno.h>  #include <errno.h>
 #include <limits.h>  #include <limits.h>
 #include <stdio.h>  #include <stdio.h>
Line 56 
Line 57 
 char *delim;  char *delim;
 int delimcnt;  int delimcnt;
   
   int     tr __P((char *));
   void    usage __P((void));
   void    parallel __P((char **));
   void    sequential __P((char **));
   
   int
 main(argc, argv)  main(argc, argv)
         int argc;          int argc;
         char **argv;          char **argv;
Line 99 
Line 106 
         char *name;          char *name;
 } LIST;  } LIST;
   
   void
 parallel(argv)  parallel(argv)
         char **argv;          char **argv;
 {  {
Line 109 
Line 117 
         int opencnt, output;          int opencnt, output;
         char buf[_POSIX2_LINE_MAX + 1], *malloc();          char buf[_POSIX2_LINE_MAX + 1], *malloc();
   
         for (cnt = 0, head = NULL; p = *argv; ++argv, ++cnt) {          for (cnt = 0, head = NULL; (p = *argv); ++argv, ++cnt) {
                 if (!(lp = (LIST *)malloc((u_int)sizeof(LIST)))) {                  if (!(lp = (LIST *)malloc((u_int)sizeof(LIST)))) {
                         (void)fprintf(stderr, "paste: %s.\n", strerror(ENOMEM));                          (void)fprintf(stderr, "paste: %s.\n", strerror(ENOMEM));
                         exit(1);                          exit(1);
Line 163 
Line 171 
                         if (!output) {                          if (!output) {
                                 output = 1;                                  output = 1;
                                 for (cnt = 0; cnt < lp->cnt; ++cnt)                                  for (cnt = 0; cnt < lp->cnt; ++cnt)
                                         if (ch = delim[cnt % delimcnt])                                          if ((ch = delim[cnt % delimcnt]))
                                                 putchar(ch);                                                  putchar(ch);
                         } else if (ch = delim[(lp->cnt - 1) % delimcnt])                          } else if ((ch = delim[(lp->cnt - 1) % delimcnt]))
                                 putchar(ch);                                  putchar(ch);
                         (void)printf("%s", buf);                          (void)printf("%s", buf);
                 }                  }
Line 174 
Line 182 
         }          }
 }  }
   
   void
 sequential(argv)  sequential(argv)
         char **argv;          char **argv;
 {  {
Line 182 
Line 191 
         register char ch, *p, *dp;          register char ch, *p, *dp;
         char buf[_POSIX2_LINE_MAX + 1];          char buf[_POSIX2_LINE_MAX + 1];
   
         for (; p = *argv; ++argv) {          for (; (p = *argv); ++argv) {
                 if (p[0] == '-' && !p[1])                  if (p[0] == '-' && !p[1])
                         fp = stdin;                          fp = stdin;
                 else if (!(fp = fopen(p, "r"))) {                  else if (!(fp = fopen(p, "r"))) {
Line 202 
Line 211 
                                 (void)printf("%s", buf);                                  (void)printf("%s", buf);
                                 if (!fgets(buf, sizeof(buf), fp))                                  if (!fgets(buf, sizeof(buf), fp))
                                         break;                                          break;
                                 if (ch = *dp++)                                  if ((ch = *dp++))
                                         putchar(ch);                                          putchar(ch);
                                 if (++cnt == delimcnt) {                                  if (++cnt == delimcnt) {
                                         dp = delim;                                          dp = delim;
Line 216 
Line 225 
         }          }
 }  }
   
   int
 tr(arg)  tr(arg)
         char *arg;          char *arg;
 {  {
Line 247 
Line 257 
         return(cnt);          return(cnt);
 }  }
   
   void
 usage()  usage()
 {  {
         (void)fprintf(stderr, "paste: [-s] [-d delimiters] file ...\n");          (void)fprintf(stderr, "paste: [-s] [-d delimiters] file ...\n");

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5