summaryrefslogtreecommitdiffstats
path: root/usr.bin/cut
diff options
context:
space:
mode:
authoreivind <eivind@FreeBSD.org>1999-02-02 14:26:39 +0000
committereivind <eivind@FreeBSD.org>1999-02-02 14:26:39 +0000
commit040ae947ad12478255f12f72bfbf6dee22b0b036 (patch)
tree65489bb2d50cea23b95038788f98238bb09c1eeb /usr.bin/cut
parent78b0de3bf4da3d2f06a3acb35097a2b381f9e01c (diff)
downloadFreeBSD-src-040ae947ad12478255f12f72bfbf6dee22b0b036.zip
FreeBSD-src-040ae947ad12478255f12f72bfbf6dee22b0b036.tar.gz
Merge from NetBSD cut.1 rev 1.6 and cut.c rev 1.9, respectively. This
makes us conform to IEEE Std1003.2-1992 (``POSIX.2''). Obtained from: NetBSD (but with slight modifications).
Diffstat (limited to 'usr.bin/cut')
-rw-r--r--usr.bin/cut/cut.118
-rw-r--r--usr.bin/cut/cut.c15
2 files changed, 26 insertions, 7 deletions
diff --git a/usr.bin/cut/cut.1 b/usr.bin/cut/cut.1
index 3ba43ed..80d36fa 100644
--- a/usr.bin/cut/cut.1
+++ b/usr.bin/cut/cut.1
@@ -42,13 +42,17 @@
.Nd select portions of each line of a file
.Sh SYNOPSIS
.Nm cut
+.Fl b Ar list
+.Op Fl n
+.Op Ar
+.Nm cut
.Fl c Ar list
-.Ar
+.Op Ar
.Nm cut
.Fl f Ar list
.Op Fl d Ar delim
.Op Fl s
-.Ar
+.Op Ar
.Sh DESCRIPTION
The
.Nm cut
@@ -81,6 +85,10 @@ 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
@@ -94,6 +102,8 @@ The
.Ar list
specifies fields, delimited in the input by a single tab character.
Output fields are separated by a single tab character.
+.It Fl n
+Do not split multi-byte characters.
.It Fl s
Suppresses lines with no field delimiter characters.
Unless specified, lines with no delimiters are passed through unmodified.
@@ -106,5 +116,5 @@ exits 0 on success, 1 if an error occurred.
.Sh STANDARDS
The
.Nm cut
-utility is expected to conform to
-.St -p1003.2 .
+utility conforms to
+.St -p1003.2-92 .
diff --git a/usr.bin/cut/cut.c b/usr.bin/cut/cut.c
index 168e7b6..1075729 100644
--- a/usr.bin/cut/cut.c
+++ b/usr.bin/cut/cut.c
@@ -48,6 +48,7 @@ static const char sccsid[] = "@(#)cut.c 8.3 (Berkeley) 5/4/95";
#include <err.h>
#include <errno.h>
#include <limits.h>
+#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -73,10 +74,15 @@ main(argc, argv)
void (*fcn) __P((FILE *, char *)) = NULL;
int ch;
+ setlocale (LC_ALL, "");
+
dchar = '\t'; /* default delimiter is \t */
- while ((ch = getopt(argc, argv, "c:d:f:s")) != -1)
+ /* 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")) != EOF)
switch(ch) {
+ case 'b':
case 'c':
fcn = c_cut;
get_list(optarg);
@@ -94,6 +100,8 @@ main(argc, argv)
case 's':
sflag = 1;
break;
+ case 'n':
+ break;
case '?':
default:
usage();
@@ -263,8 +271,9 @@ f_cut(fp, fname)
static void
usage()
{
- (void)fprintf(stderr, "%s\n%s\n",
- "usage: cut -c list [file1 ...]",
+ (void)fprintf(stderr, "%s\n%s\n%s\n",
+ "usage: cut -b list [-n] [file ...]",
+ " cut -c list [file ...]",
" cut -f list [-s] [-d delim] [file ...]");
exit(1);
}
OpenPOWER on IntegriCloud