static FILE* output = NULL;
static int arg_no_pager = false;
+static int arg_no_legend = false;
static Set *new_matches(void) {
Set *set;
enum {
ARG_VERSION = 0x100,
ARG_NO_PAGER,
+ ARG_NO_LEGEND,
};
int r, c;
static const struct option options[] = {
- { "help", no_argument, NULL, 'h' },
- { "version" , no_argument, NULL, ARG_VERSION },
- { "no-pager", no_argument, NULL, ARG_NO_PAGER },
- { "output", required_argument, NULL, 'o' },
+ { "help", no_argument, NULL, 'h' },
+ { "version" , no_argument, NULL, ARG_VERSION },
+ { "no-pager", no_argument, NULL, ARG_NO_PAGER },
+ { "no-legend", no_argument, NULL, ARG_NO_LEGEND },
+ { "output", required_argument, NULL, 'o' },
+ { NULL, 0, NULL, 0 }
};
assert(argc >= 0);
arg_no_pager = true;
break;
+ case ARG_NO_LEGEND:
+ arg_no_legend = true;
+ break;
+
case 'o':
if (output) {
log_error("cannot set output more than once");
}
break;
+
+ case '?':
+ return -EINVAL;
+
default:
log_error("Unknown option code %c", c);
return -EINVAL;
return 0;
}
-static int print_entry(FILE* file, sd_journal *j, int had_header) {
+static int print_entry(FILE* file, sd_journal *j, int had_legend) {
const char _cleanup_free_
*pid = NULL, *uid = NULL, *gid = NULL,
*sgnl = NULL, *exe = NULL;
format_timestamp(buf, sizeof(buf), t);
- if (!had_header)
+ if (!had_legend && !arg_no_legend)
fprintf(file, "%-*s %*s %*s %*s %*s %s\n",
FORMAT_TIMESTAMP_MAX-1, "TIME",
6, "PID",
log_open();
matches = new_matches();
- if (!matches)
+ if (!matches) {
+ r = -ENOMEM;
goto end;
+ }
- if (parse_argv(argc, argv))
+ r = parse_argv(argc, argv);
+ if (r < 0)
goto end;
if (arg_action == ACTION_NONE)