]> Zhao Yanbai Git Server - minix.git/commitdiff
Importing usr.bin/cut 42/1042/2
authorThomas Cort <tcort@minix3.org>
Mon, 14 Oct 2013 23:23:02 +0000 (19:23 -0400)
committerThomas Cort <tcort@minix3.org>
Tue, 15 Oct 2013 12:43:27 +0000 (08:43 -0400)
Replaces commands/cut. No Minix-specific changes needed.

Change-Id: I4e8e203eb8aad18232364f05cbdc961a57afae51

commands/Makefile
releasetools/nbsd_ports
usr.bin/Makefile
usr.bin/cut/Makefile [moved from commands/cut/Makefile with 63% similarity]
usr.bin/cut/cut.1 [moved from commands/cut/cut.1 with 87% similarity]
usr.bin/cut/cut.c [moved from commands/cut/cut.c with 89% similarity]
usr.bin/cut/x_cut.c [moved from commands/cut/x_cut.c with 99% similarity]

index 1fbe640bc6009a13fd9ba5c88c2a9943920410fe..9ba275a4a5e741106bf4d0015e717697a7927851 100644 (file)
@@ -5,7 +5,7 @@
 SUBDIR=        add_route arp ash at backup btrace \
        cawf cd cdprobe cpp \
        chmod chown ci cleantmp cmp co \
-       comm compress cp crc cron crontab cut \
+       comm compress cp crc cron crontab \
        dd decomp16 DESCRIBE devmand devsize df dhcpd \
        dhrystone diff diskctl dumpcore \
        eject env factor fbdctl \
index d87d62073404c5bcff459a26f612d5b029531ec5..db02ba68eb6564bfa16e33f58a5e66f9eb7a5563 100644 (file)
 2012/10/17 12:00:00,usr.bin/cksum
 2012/10/17 12:00:00,usr.bin/col
 2012/10/17 12:00:00,usr.bin/ctags
+2013/10/14 12:00:00,usr.bin/cut
 2012/10/17 12:00:00,usr.bin/dirname
 2011/09/01 13:37:33,usr.bin/du
 2012/10/17 12:00:00,usr.bin/expand
index 01a36ae733f2f5c70673ce54e5d5f48f33022f42..45ac4ece2d14121fb7c0f77a4c62a542284d7739 100644 (file)
@@ -7,7 +7,7 @@ SUBDIR= \
        banner basename bdes \
        bzip2 bzip2recover \
        cal chpass cksum \
-       col ctags \
+       col ctags cut \
        dirname du \
        expand \
        finger from \
similarity index 63%
rename from commands/cut/Makefile
rename to usr.bin/cut/Makefile
index 1aed929efa542f368c56e83674eeee89a45b7d38..dea610c996e4e3440507d9000b176ab7db625ebb 100644 (file)
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile,v 1.5 2007/07/02 18:41:03 christos Exp $
+#      $NetBSD: Makefile,v 1.6 2009/04/14 22:15:19 lukem Exp $
 #      @(#)Makefile    8.1 (Berkeley) 6/6/93
 
 PROG=  cut
similarity index 87%
rename from commands/cut/cut.1
rename to usr.bin/cut/cut.1
index e5827c913a6bef32edc328a65f2c777bf85553c2..a3dbf555f8041aca83956d2a3ec3e3a7dfa021fd 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: cut.1,v 1.14.26.1 2008/12/23 03:47:20 snj Exp $
+.\"    $NetBSD: cut.1,v 1.18 2012/06/20 17:53:19 wiz Exp $
 .\"
 .\" Copyright (c) 1989, 1990, 1993
 .\"    The Regents of the University of California.  All rights reserved.
@@ -32,7 +32,7 @@
 .\"
 .\"     @(#)cut.1      8.1 (Berkeley) 6/6/93
 .\"
-.Dd December 21, 2008
+.Dd June 12, 2012
 .Dt CUT 1
 .Os
 .Sh NAME
 .Op Ar
 .Nm
 .Fl f Ar list
-.Op Fl d Ar delim
+.Op Fl d Ar string
 .Op Fl s
 .Op Ar
 .Sh DESCRIPTION
 The
 .Nm
 utility selects portions of each line (as specified by
-.Ar list  )
+.Ar list )
 from each
 .Ar file
 and writes them to the
@@ -71,32 +71,30 @@ The items specified by
 .Ar list
 can be in terms of column position or in terms of fields delimited
 by a special character.
-Column numbering starts from 1.
+Column and field numbering start from 1.
 .Pp
-.Ar List
+.Ar list
 is a comma or whitespace separated set of increasing numbers and/or
 number ranges.
 Number ranges consist of a number, a dash
 .Pq Li \- ,
 and a second number
-and select the fields or columns from the first number to the second,
+and select the columns or fields from the first number to the second,
 inclusive.
 Numbers or number ranges may be preceded by a dash, which selects all
-fields or columns from 1 to the first number.
+columns or fields from 1 to the first number.
 Numbers or number ranges may be followed by a dash, which selects all
-fields or columns from the last number to the end of the line.
+columns or fields from the last number to the end of the line.
 Numbers and number ranges may be repeated, overlapping, and in any order.
-It is not an error to select fields or columns not present in the
+It is not an error to select columns or fields not present in the
 input line.
 .Pp
 The options are as follows:
 .Bl -tag -width Fl
 .It Fl b Ar list
-The
 .Ar list
 specifies byte positions.
 .It Fl c Ar list
-The
 .Ar list
 specifies character positions.
 .It Fl d Ar string
@@ -107,7 +105,6 @@ The default is the
 .Aq TAB
 character.
 .It Fl f Ar list
-The
 .Ar list
 specifies fields, separated by the field delimiter character.
 The selected fields are output,
@@ -115,12 +112,11 @@ separated by the field delimiter character.
 .It Fl n
 Do not split multi-byte characters.
 .It Fl s
-Suppresses lines with no field delimiter characters.
+Suppress lines with no field delimiter characters.
 Unless specified, lines with no delimiters are passed through unmodified.
 .El
 .Sh EXIT STATUS
-.Nm
-exits 0 on success, 1 if an error occurred.
+.Ex -std
 .Sh SEE ALSO
 .Xr paste 1
 .Sh STANDARDS
similarity index 89%
rename from commands/cut/cut.c
rename to usr.bin/cut/cut.c
index 15a76ff07507211c99a3ae95ebc2eca4e8973b7c..919d63583895907f47183a0f0dd41e9c90c8bd77 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: cut.c,v 1.25 2008/07/21 14:19:22 lukem Exp $   */
+/*     $NetBSD: cut.c,v 1.28 2012/06/20 17:53:39 wiz Exp $     */
 
 /*
  * Copyright (c) 1989, 1993
  */
 
 #include <sys/cdefs.h>
+#ifndef lint
+__COPYRIGHT("@(#) Copyright (c) 1989, 1993\
+ The Regents of the University of California.  All rights reserved.");
+#endif /* not lint */
+
+#ifndef lint
+#if 0
+static char sccsid[] = "@(#)cut.c      8.3 (Berkeley) 5/4/95";
+#endif
+__RCSID("$NetBSD: cut.c,v 1.28 2012/06/20 17:53:39 wiz Exp $");
+#endif /* not lint */
 
 #include <ctype.h>
 #include <err.h>
@@ -47,8 +58,6 @@
 #include <wchar.h>
 #include <sys/param.h>
 
-#define roundup(x, y)      ((((x)+((y)-1))/(y))*(y))
-
 static int bflag;
 static int     cflag;
 static char    dchar;
@@ -57,9 +66,7 @@ static int    fflag;
 static int     sflag;
 
 static void    b_cut(FILE *, const char *);
-#if 0
 static void    c_cut(FILE *, const char *);
-#endif
 static void    f_cut(FILE *, const char *);
 static void    get_list(char *);
 static void    usage(void) __dead;
@@ -76,23 +83,20 @@ main(int argc, char *argv[])
 
        dchar = '\t';                   /* default delimiter is \t */
 
-       /* Since we don't support multi-byte characters, the -c and -b 
+       /* Since we don't support multi-byte characters, the -c and -b
           options are equivalent, and the -n option is meaningless. */
        while ((ch = getopt(argc, argv, "b:c:d:f:sn")) != -1)
                switch(ch) {
                case 'b':
-               case 'c':
                        fcn = b_cut;
                        get_list(optarg);
                        bflag = 1;
                        break;
-#if 0
                case 'c':
                        fcn = c_cut;
                        get_list(optarg);
                        cflag = 1;
                        break;
-#endif
                case 'd':
                        dchar = *optarg;
                        dflag = 1;
@@ -142,7 +146,7 @@ static size_t autostart, autostop, maxval;
 
 static char *positions = NULL;
 static size_t numpositions = 0;
-#define ALLOC_CHUNK    4096    /* malloc granularity */
+#define ALLOC_CHUNK    _POSIX2_LINE_MAX        /* malloc granularity */
 
 static void
 get_list(char *list)
@@ -162,7 +166,7 @@ get_list(char *list)
         * This parser is less restrictive than the Draft 9 POSIX spec.
         * POSIX doesn't allow lists that aren't in increasing order or
         * overlapping lists.  We also handle "-3-5" although there's no
-        * real reason too.
+        * real reason to.
         */
        for (; (p = strtok(list, ", \t")) != NULL; list = NULL) {
                setautostart = start = stop = 0;
@@ -185,9 +189,9 @@ get_list(char *list)
                        }
                }
                if (*p)
-                       errx(1, "[-cf] list: illegal list value");
+                       errx(1, "[-bcf] list: illegal list value");
                if (!stop || !start)
-                       errx(1, "[-cf] list: values may not include zero");
+                       errx(1, "[-bcf] list: values may not include zero");
                if (stop + 1 > numpositions) {
                        size_t newsize;
                        newsize = roundup(stop + 1, ALLOC_CHUNK);
@@ -281,20 +285,18 @@ f_cut(FILE *fp, const char *fname __unused)
 static void
 usage(void)
 {
-       (void)fprintf(stderr, "Usage:\tcut -b list [-n] [file ...]\n"
-           "\tcut -c list [file1 ...]\n"
-           "\tcut -f list [-d delim] [-s] [file ...]\n");
+       (void)fprintf(stderr, "usage:\tcut -b list [-n] [file ...]\n"
+           "\tcut -c list [file ...]\n"
+           "\tcut -f list [-d string] [-s] [file ...]\n");
        exit(1);
 }
 
 /* make b_put(): */
-#define CUT_BYTE 1 
+#define CUT_BYTE 1
 #include "x_cut.c"
 #undef CUT_BYTE
 
-#if 0
 /* make c_put(): */
 #define CUT_BYTE 0
 #include "x_cut.c"
 #undef CUT_BYTE
-#endif
similarity index 99%
rename from commands/cut/x_cut.c
rename to usr.bin/cut/x_cut.c
index 3023510cfef4fc52d239f5936da5eccf1ec25a9c..006b5afd654ce2cb01289bec756e6e54a8041ba4 100644 (file)
@@ -58,7 +58,7 @@
 
 
 /* ARGSUSED */
-static void
+void
 CUT_FN(FILE *fp, const char *fname __unused)
 {
        CUT_CH_T ch;