diff options
-rw-r--r-- | inotail.c | 8 | ||||
-rw-r--r-- | inotail.h | 3 |
2 files changed, 9 insertions, 2 deletions
@@ -328,8 +328,8 @@ int main(int argc, char **argv) { int i, c, ret = 0; int n_files = 0; - unsigned int n_units = DEFAULT_N_LINES; - char forever = 0, mode = M_LINES; + int n_units = DEFAULT_N_LINES; + char forever = 0, mode = M_LINES, relative = R_END; char **filenames; struct file_struct *files; @@ -339,6 +339,10 @@ int main(int argc, char **argv) case 'n': if (c == 'c') mode = M_BYTES; + if (*optarg == '+') + relative = R_BEGIN; + else if (*optarg == '-') + optarg++; n_units = strtoul(optarg, NULL, 0); if (n_units < 0) n_units = 0; @@ -7,6 +7,9 @@ /* tail modes */ enum { M_LINES, M_BYTES }; +/* tail unit relative to the end ('-' or none) or the beginning ('+' of the file) */ +enum { R_END, R_BEGIN }; + /* Every tailed file is represented as a file_struct */ struct file_struct { char *name; /* Name of file (or '-' for stdin) */ |