uniq: style put main at bottom
This commit is contained in:
parent
160709734c
commit
695940d50c
118
uniq.c
118
uniq.c
|
@ -6,10 +6,6 @@
|
||||||
|
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
static void uniqline(FILE *, char *);
|
|
||||||
static void uniq(FILE *, FILE *);
|
|
||||||
static void uniqfinish(FILE *);
|
|
||||||
|
|
||||||
static const char *countfmt = "";
|
static const char *countfmt = "";
|
||||||
static int dflag = 0;
|
static int dflag = 0;
|
||||||
static int uflag = 0;
|
static int uflag = 0;
|
||||||
|
@ -20,63 +16,6 @@ static char *prevline = NULL;
|
||||||
static char *prevoffset = NULL;
|
static char *prevoffset = NULL;
|
||||||
static long prevlinecount = 0;
|
static long prevlinecount = 0;
|
||||||
|
|
||||||
static void
|
|
||||||
usage(void)
|
|
||||||
{
|
|
||||||
eprintf("usage: %s [-c] [-d | -u] [-f fields] [-s chars]"
|
|
||||||
" [input [output]]\n", argv0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
FILE *fp = stdin, *ofp = stdout;
|
|
||||||
|
|
||||||
ARGBEGIN {
|
|
||||||
case 'c':
|
|
||||||
countfmt = "%7ld ";
|
|
||||||
break;
|
|
||||||
case 'd':
|
|
||||||
dflag = 1;
|
|
||||||
break;
|
|
||||||
case 'u':
|
|
||||||
uflag = 1;
|
|
||||||
break;
|
|
||||||
case 'f':
|
|
||||||
fskip = estrtonum(EARGF(usage()), 0, INT_MAX);
|
|
||||||
break;
|
|
||||||
case 's':
|
|
||||||
sskip = estrtonum(EARGF(usage()), 0, INT_MAX);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
usage();
|
|
||||||
} ARGEND;
|
|
||||||
|
|
||||||
if (argc > 2)
|
|
||||||
usage();
|
|
||||||
|
|
||||||
if (argc == 0) {
|
|
||||||
uniq(stdin, stdout);
|
|
||||||
} else if (argc >= 1) {
|
|
||||||
if (strcmp(argv[0], "-") && !(fp = fopen(argv[0], "r")))
|
|
||||||
eprintf("fopen %s:", argv[0]);
|
|
||||||
if (argc == 2) {
|
|
||||||
if (strcmp(argv[1], "-") &&
|
|
||||||
!(ofp = fopen(argv[1], "w")))
|
|
||||||
eprintf("fopen %s:", argv[1]);
|
|
||||||
}
|
|
||||||
uniq(fp, ofp);
|
|
||||||
if (fp != stdin)
|
|
||||||
fclose(fp);
|
|
||||||
} else
|
|
||||||
usage();
|
|
||||||
uniqfinish(ofp);
|
|
||||||
if (ofp != stdout)
|
|
||||||
fclose(ofp);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
uniqskip(char *l)
|
uniqskip(char *l)
|
||||||
{
|
{
|
||||||
|
@ -139,3 +78,60 @@ uniqfinish(FILE *ofp)
|
||||||
{
|
{
|
||||||
uniqline(ofp, NULL);
|
uniqline(ofp, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
usage(void)
|
||||||
|
{
|
||||||
|
eprintf("usage: %s [-c] [-d | -u] [-f fields] [-s chars]"
|
||||||
|
" [input [output]]\n", argv0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
FILE *fp = stdin, *ofp = stdout;
|
||||||
|
|
||||||
|
ARGBEGIN {
|
||||||
|
case 'c':
|
||||||
|
countfmt = "%7ld ";
|
||||||
|
break;
|
||||||
|
case 'd':
|
||||||
|
dflag = 1;
|
||||||
|
break;
|
||||||
|
case 'u':
|
||||||
|
uflag = 1;
|
||||||
|
break;
|
||||||
|
case 'f':
|
||||||
|
fskip = estrtonum(EARGF(usage()), 0, INT_MAX);
|
||||||
|
break;
|
||||||
|
case 's':
|
||||||
|
sskip = estrtonum(EARGF(usage()), 0, INT_MAX);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
} ARGEND;
|
||||||
|
|
||||||
|
if (argc > 2)
|
||||||
|
usage();
|
||||||
|
|
||||||
|
if (argc == 0) {
|
||||||
|
uniq(stdin, stdout);
|
||||||
|
} else if (argc >= 1) {
|
||||||
|
if (strcmp(argv[0], "-") && !(fp = fopen(argv[0], "r")))
|
||||||
|
eprintf("fopen %s:", argv[0]);
|
||||||
|
if (argc == 2) {
|
||||||
|
if (strcmp(argv[1], "-") &&
|
||||||
|
!(ofp = fopen(argv[1], "w")))
|
||||||
|
eprintf("fopen %s:", argv[1]);
|
||||||
|
}
|
||||||
|
uniq(fp, ofp);
|
||||||
|
if (fp != stdin)
|
||||||
|
fclose(fp);
|
||||||
|
} else
|
||||||
|
usage();
|
||||||
|
uniqfinish(ofp);
|
||||||
|
if (ofp != stdout)
|
||||||
|
fclose(ofp);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user