Deleted Added
full compact
split.c (149345) split.c (149616)
1/*
2 * Copyright (c) 1987, 1993, 1994
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 18 unchanged lines hidden (view full) ---

27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#include <sys/cdefs.h>
1/*
2 * Copyright (c) 1987, 1993, 1994
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 18 unchanged lines hidden (view full) ---

27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#include <sys/cdefs.h>
35__FBSDID("$FreeBSD: head/usr.bin/split/split.c 149345 2005-08-21 06:35:02Z tjr $");
35__FBSDID("$FreeBSD: head/usr.bin/split/split.c 149616 2005-08-30 12:32:18Z tjr $");
36
37#ifndef lint
38static const char copyright[] =
39"@(#) Copyright (c) 1987, 1993, 1994\n\
40 The Regents of the University of California. All rights reserved.\n";
41#endif
42
43#ifndef lint

--- 39 unchanged lines hidden (view full) ---

83{
84 intmax_t bytecnti;
85 long scale;
86 int ch;
87 char *ep, *p;
88
89 setlocale(LC_ALL, "");
90
36
37#ifndef lint
38static const char copyright[] =
39"@(#) Copyright (c) 1987, 1993, 1994\n\
40 The Regents of the University of California. All rights reserved.\n";
41#endif
42
43#ifndef lint

--- 39 unchanged lines hidden (view full) ---

83{
84 intmax_t bytecnti;
85 long scale;
86 int ch;
87 char *ep, *p;
88
89 setlocale(LC_ALL, "");
90
91 while ((ch = getopt(argc, argv, "-0123456789a:b:l:p:")) != -1)
91 while ((ch = getopt(argc, argv, "0123456789a:b:l:p:")) != -1)
92 switch (ch) {
93 case '0': case '1': case '2': case '3': case '4':
94 case '5': case '6': case '7': case '8': case '9':
95 /*
96 * Undocumented kludge: split was originally designed
97 * to take a number after a dash.
98 */
99 if (numlines == 0) {
100 p = argv[optind - 1];
101 if (p[0] == '-' && p[1] == ch && !p[2])
102 numlines = strtol(++p, &ep, 10);
103 else
104 numlines =
105 strtol(argv[optind] + 1, &ep, 10);
106 if (numlines <= 0 || *ep)
107 errx(EX_USAGE,
108 "%s: illegal line count", optarg);
109 }
110 break;
92 switch (ch) {
93 case '0': case '1': case '2': case '3': case '4':
94 case '5': case '6': case '7': case '8': case '9':
95 /*
96 * Undocumented kludge: split was originally designed
97 * to take a number after a dash.
98 */
99 if (numlines == 0) {
100 p = argv[optind - 1];
101 if (p[0] == '-' && p[1] == ch && !p[2])
102 numlines = strtol(++p, &ep, 10);
103 else
104 numlines =
105 strtol(argv[optind] + 1, &ep, 10);
106 if (numlines <= 0 || *ep)
107 errx(EX_USAGE,
108 "%s: illegal line count", optarg);
109 }
110 break;
111 case '-': /* Undocumented: historic stdin flag. */
112 if (ifd != -1)
113 usage();
114 ifd = 0;
115 break;
116 case 'a': /* Suffix length */
117 if ((sufflen = strtol(optarg, &ep, 10)) <= 0 || *ep)
118 errx(EX_USAGE,
119 "%s: illegal suffix length", optarg);
120 break;
121 case 'b': /* Byte count. */
122 errno = 0;
123 if ((bytecnti = strtoimax(optarg, &ep, 10)) <= 0 ||

--- 24 unchanged lines hidden (view full) ---

148 "%s: illegal line count", optarg);
149 break;
150 default:
151 usage();
152 }
153 argv += optind;
154 argc -= optind;
155
111 case 'a': /* Suffix length */
112 if ((sufflen = strtol(optarg, &ep, 10)) <= 0 || *ep)
113 errx(EX_USAGE,
114 "%s: illegal suffix length", optarg);
115 break;
116 case 'b': /* Byte count. */
117 errno = 0;
118 if ((bytecnti = strtoimax(optarg, &ep, 10)) <= 0 ||

--- 24 unchanged lines hidden (view full) ---

143 "%s: illegal line count", optarg);
144 break;
145 default:
146 usage();
147 }
148 argv += optind;
149 argc -= optind;
150
156 if (*argv != NULL)
157 if (ifd == -1) { /* Input file. */
158 if (strcmp(*argv, "-") == 0)
159 ifd = STDIN_FILENO;
160 else if ((ifd = open(*argv, O_RDONLY, 0)) < 0)
161 err(EX_NOINPUT, "%s", *argv);
162 ++argv;
163 }
151 if (*argv != NULL) { /* Input file. */
152 if (strcmp(*argv, "-") == 0)
153 ifd = STDIN_FILENO;
154 else if ((ifd = open(*argv, O_RDONLY, 0)) < 0)
155 err(EX_NOINPUT, "%s", *argv);
156 ++argv;
157 }
164 if (*argv != NULL) /* File name prefix. */
165 if (strlcpy(fname, *argv++, sizeof(fname)) >= sizeof(fname))
166 errx(EX_USAGE, "file name prefix is too long");
167 if (*argv != NULL)
168 usage();
169
170 if (strlen(fname) + (unsigned long)sufflen >= sizeof(fname))
171 errx(EX_USAGE, "suffix is too long");

--- 177 unchanged lines hidden ---
158 if (*argv != NULL) /* File name prefix. */
159 if (strlcpy(fname, *argv++, sizeof(fname)) >= sizeof(fname))
160 errx(EX_USAGE, "file name prefix is too long");
161 if (*argv != NULL)
162 usage();
163
164 if (strlen(fname) + (unsigned long)sufflen >= sizeof(fname))
165 errx(EX_USAGE, "suffix is too long");

--- 177 unchanged lines hidden ---