---
arg.h | 15 ++++++++++++++-
fold.c | 4 +++-
head.c | 4 +++-
tail.c | 3 +++
4 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/arg.h b/arg.h
index 2009b70..becf91b 100644
--- a/arg.h
+++ b/arg.h
_AT_@ -29,11 +29,25 @@ extern char *argv0;
_argc = argv[0][0];\
switch (_argc)
+/* Handles obsolete -NUM syntax */
+#define ARGNUM case '0':\
+ case '1':\
+ case '2':\
+ case '3':\
+ case '4':\
+ case '5':\
+ case '6':\
+ case '7':\
+ case '8':\
+ case '9'
+
#define ARGEND }\
}
#define ARGC() _argc
+#define ARGNUMF(base) (estrtol(argv[0], (base)))
+
#define EARGF(x) ((argv[0][1] == '\0' && argv[1] == NULL)?\
((x), abort(), (char *)0) :\
(brk = 1, (argv[0][1] != '\0')?\
_AT_@ -47,4 +61,3 @@ extern char *argv0;
(argc--, argv++, argv[0])))
#endif
-
diff --git a/fold.c b/fold.c
index bbbb28a..d327c62 100644
--- a/fold.c
+++ b/fold.c
_AT_@ -35,6 +35,9 @@ main(int argc, char *argv[])
case 'w':
width = estrtol(EARGF(usage()), 0);
break;
+ ARGNUM:
+ width = ARGNUMF(0);
+ break;
default:
usage();
} ARGEND;
_AT_@ -102,4 +105,3 @@ foldline(const char *str, long width)
putchar('\n');
} while(str[i = n] && str[i] != '\n');
}
-
diff --git a/head.c b/head.c
index 0cf8680..8011151 100644
--- a/head.c
+++ b/head.c
_AT_@ -23,6 +23,9 @@ main(int argc, char *argv[])
case 'n':
n = estrtol(EARGF(usage()), 0);
break;
+ ARGNUM:
+ n = ARGNUMF(0);
+ break;
default:
usage();
} ARGEND;
_AT_@ -53,4 +56,3 @@ head(FILE *fp, const char *str, long n)
if(ferror(fp))
eprintf("%s: read error:", str);
}
-
diff --git a/tail.c b/tail.c
index da222b6..9c241db 100644
--- a/tail.c
+++ b/tail.c
_AT_@ -30,6 +30,9 @@ main(int argc, char *argv[])
if(lines[0] == '+')
tail = dropinit;
break;
+ ARGNUM:
+ n = ARGNUMF(0);
+ break;
default:
usage();
} ARGEND;
--
1.8.3.4
--G4iJoqBmSsgzjUCe--
Received on Mon Sep 17 2001 - 00:00:00 CEST
This archive was generated by hypermail 2.3.0 : Mon Nov 11 2013 - 22:12:03 CET