This is a bit more compact.
Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
if (group_nr > 0) {
update_dev_list(&dlist_idx, group_name);
}
- if (argv[++opt]) {
- /*
- * MAX_NAME_LEN - 2: one char for the heading space,
- * and one for the trailing '\0'.
- */
- snprintf(group_name, MAX_NAME_LEN, " %-.*s", MAX_NAME_LEN - 2, argv[opt++]);
- }
- else {
+ if (!argv[++opt]) {
usage(argv[0]);
}
+ /*
+ * MAX_NAME_LEN - 2: one char for the heading space,
+ * and one for the trailing '\0'.
+ */
+ snprintf(group_name, MAX_NAME_LEN, " %-.*s", MAX_NAME_LEN - 2, argv[opt++]);
group_nr++;
}
}
else if (!strcmp(argv[opt], "-j")) {
- if (argv[++opt]) {
- if (strnlen(argv[opt], MAX_FILE_LEN) >= MAX_FILE_LEN - 1) {
- usage(argv[0]);
- }
- strncpy(persistent_name_type, argv[opt], MAX_FILE_LEN - 1);
- persistent_name_type[MAX_FILE_LEN - 1] = '\0';
- strtolower(persistent_name_type);
- /* Check that this is a valid type of persistent device name */
- if (!get_persistent_type_dir(persistent_name_type)) {
- fprintf(stderr, _("Invalid type of persistent device name\n"));
- exit(1);
- }
- /*
- * Persistent names are usually long: Display
- * them as human readable by default.
- */
- flags |= I_D_PERSIST_NAME + I_D_HUMAN_READ;
- opt++;
+ if (!argv[++opt]) {
+ usage(argv[0]);
}
- else {
+ if (strnlen(argv[opt], MAX_FILE_LEN) >= MAX_FILE_LEN - 1) {
usage(argv[0]);
}
+ strncpy(persistent_name_type, argv[opt], MAX_FILE_LEN - 1);
+ persistent_name_type[MAX_FILE_LEN - 1] = '\0';
+ strtolower(persistent_name_type);
+ /* Check that this is a valid type of persistent device name */
+ if (!get_persistent_type_dir(persistent_name_type)) {
+ fprintf(stderr, _("Invalid type of persistent device name\n"));
+ exit(1);
+ }
+ /*
+ * Persistent names are usually long: Display
+ * them as human readable by default.
+ */
+ flags |= I_D_PERSIST_NAME + I_D_HUMAN_READ;
+ opt++;
}
else if (!strcmp(argv[opt], "-o")) {
while (++opt < argc) {
if (!strcmp(argv[opt], "-I")) {
- if (argv[++opt]) {
- actset = TRUE;
+ if (!argv[++opt]) {
+ usage(argv[0]);
+ }
+ actset = TRUE;
- for (t = strtok(argv[opt], ","); t; t = strtok(NULL, ",")) {
- if (!strcmp(t, K_SUM)) {
- /* Display total number of interrupts per CPU */
- actflags |= M_D_IRQ_SUM;
- }
- else if (!strcmp(t, K_CPU)) {
- /* Display interrupts per CPU */
- actflags |= M_D_IRQ_CPU;
- }
- else if (!strcmp(t, K_SCPU)) {
- /* Display soft interrupts per CPU */
- actflags |= M_D_SOFTIRQS;
- }
- else if (!strcmp(t, K_ALL)) {
- actflags |= M_D_IRQ_SUM + M_D_IRQ_CPU + M_D_SOFTIRQS;
- }
- else {
- usage(argv[0]);
- }
+ for (t = strtok(argv[opt], ","); t; t = strtok(NULL, ",")) {
+ if (!strcmp(t, K_SUM)) {
+ /* Display total number of interrupts per CPU */
+ actflags |= M_D_IRQ_SUM;
+ }
+ else if (!strcmp(t, K_CPU)) {
+ /* Display interrupts per CPU */
+ actflags |= M_D_IRQ_CPU;
+ }
+ else if (!strcmp(t, K_SCPU)) {
+ /* Display soft interrupts per CPU */
+ actflags |= M_D_SOFTIRQS;
+ }
+ else if (!strcmp(t, K_ALL)) {
+ actflags |= M_D_IRQ_SUM + M_D_IRQ_CPU + M_D_SOFTIRQS;
+ }
+ else {
+ usage(argv[0]);
}
- }
- else {
- usage(argv[0]);
}
}
}
else if (!strcmp(argv[opt], "-N")) {
- if (argv[++opt]) {
- if (node_nr >= 0) {
- flags |= F_N_OPTION;
- actflags |= M_D_NODE;
- actset = TRUE;
- dis_hdr = 9;
- if (parse_values(argv[opt], node_bitmap, node_nr + 1, K_LOWERALL)) {
- usage(argv[0]);
- }
- }
- }
- else {
+ if (!argv[++opt]) {
usage(argv[0]);
}
+ if (node_nr >= 0) {
+ flags |= F_N_OPTION;
+ actflags |= M_D_NODE;
+ actset = TRUE;
+ dis_hdr = 9;
+ if (parse_values(argv[opt], node_bitmap, node_nr + 1, K_LOWERALL)) {
+ usage(argv[0]);
+ }
+ }
}
else if (!strcmp(argv[opt], "-P")) {
/* '-P ALL' can be used on UP machines */
- if (argv[++opt]) {
- flags |= F_P_OPTION;
- dis_hdr = 9;
+ if (!argv[++opt]) {
+ usage(argv[0]);
+ }
+ flags |= F_P_OPTION;
+ dis_hdr = 9;
- if (!strcmp(argv[opt], K_ON)) {
- /* Display stats for all online CPU */
- flags |= F_P_ON;
- memset(cpu_bitmap, ~0, BITMAP_SIZE(cpu_nr));
- }
- else if (parse_values(argv[opt], cpu_bitmap, cpu_nr, K_LOWERALL)) {
- usage(argv[0]);
- }
+ if (!strcmp(argv[opt], K_ON)) {
+ /* Display stats for all online CPU */
+ flags |= F_P_ON;
+ memset(cpu_bitmap, ~0, BITMAP_SIZE(cpu_nr));
}
- else {
+ else if (parse_values(argv[opt], cpu_bitmap, cpu_nr, K_LOWERALL)) {
usage(argv[0]);
}
}
else if (!strcmp(argv[opt], "-p")) {
pidflag |= P_D_PID;
- if (argv[++opt]) {
+ if (!argv[++opt]) {
+ usage(argv[0]);
+ }
- for (t = strtok(argv[opt], ","); t; t = strtok(NULL, ",")) {
- if (!strcmp(t, K_ALL)) {
- pidflag |= P_D_ALL_PID;
- }
- else if (!strcmp(t, K_SELF)) {
- update_pid_array(&pid_array_nr, getpid());
+ for (t = strtok(argv[opt], ","); t; t = strtok(NULL, ",")) {
+ if (!strcmp(t, K_ALL)) {
+ pidflag |= P_D_ALL_PID;
+ }
+ else if (!strcmp(t, K_SELF)) {
+ update_pid_array(&pid_array_nr, getpid());
+ }
+ else {
+ if (strspn(t, DIGITS) != strlen(t)) {
+ usage(argv[0]);
}
- else {
- if (strspn(t, DIGITS) != strlen(t)) {
- usage(argv[0]);
- }
- pid = atoi(t);
- if (pid < 1) {
- usage(argv[0]);
- }
- update_pid_array(&pid_array_nr, pid);
+ pid = atoi(t);
+ if (pid < 1) {
+ usage(argv[0]);
}
+ update_pid_array(&pid_array_nr, pid);
}
- opt++;
- }
- else {
- usage(argv[0]);
}
+ opt++;
}
else if (!strcmp(argv[opt], "-C")) {
- if (argv[++opt]) {
- strncpy(commstr, argv[opt++], MAX_COMM_LEN);
- commstr[MAX_COMM_LEN - 1] = '\0';
- pidflag |= P_F_COMMSTR;
- if (!strlen(commstr)) {
- usage(argv[0]);
- }
+ if (!argv[++opt]) {
+ usage(argv[0]);
}
- else {
+ strncpy(commstr, argv[opt++], MAX_COMM_LEN);
+ commstr[MAX_COMM_LEN - 1] = '\0';
+ pidflag |= P_F_COMMSTR;
+ if (!strlen(commstr)) {
usage(argv[0]);
}
}
else if (!strcmp(argv[opt], "-G")) {
- if (argv[++opt]) {
- strncpy(procstr, argv[opt++], MAX_COMM_LEN);
- procstr[MAX_COMM_LEN - 1] = '\0';
- pidflag |= P_F_PROCSTR;
- if (!strlen(procstr)) {
- usage(argv[0]);
- }
+ if (!argv[++opt]) {
+ usage(argv[0]);
}
- else {
+ strncpy(procstr, argv[opt++], MAX_COMM_LEN);
+ procstr[MAX_COMM_LEN - 1] = '\0';
+ pidflag |= P_F_PROCSTR;
+ if (!strlen(procstr)) {
usage(argv[0]);
}
}
}
else if (!strcmp(argv[opt], "-T")) {
- if (argv[++opt]) {
- if (tskflag) {
- dis_hdr++;
- }
- if (!strcmp(argv[opt], K_P_TASK)) {
- tskflag |= P_TASK;
- }
- else if (!strcmp(argv[opt], K_P_CHILD)) {
- tskflag |= P_CHILD;
- }
- else if (!strcmp(argv[opt], K_P_ALL)) {
- tskflag |= P_TASK + P_CHILD;
- dis_hdr++;
- }
- else {
- usage(argv[0]);
- }
- opt++;
+ if (!argv[++opt]) {
+ usage(argv[0]);
+ }
+ if (tskflag) {
+ dis_hdr++;
+ }
+ if (!strcmp(argv[opt], K_P_TASK)) {
+ tskflag |= P_TASK;
+ }
+ else if (!strcmp(argv[opt], K_P_CHILD)) {
+ tskflag |= P_CHILD;
+ }
+ else if (!strcmp(argv[opt], K_P_ALL)) {
+ tskflag |= P_TASK + P_CHILD;
+ dis_hdr++;
}
else {
usage(argv[0]);
}
+ opt++;
}
/* Option used individually. See below for grouped option */
break;
case 'j':
- if (argv[*opt + 1]) {
- (*opt)++;
- if (strnlen(argv[*opt], MAX_FILE_LEN) >= MAX_FILE_LEN - 1)
- return 1;
-
- strncpy(persistent_name_type, argv[*opt], MAX_FILE_LEN - 1);
- persistent_name_type[MAX_FILE_LEN - 1] = '\0';
- strtolower(persistent_name_type);
- if (!get_persistent_type_dir(persistent_name_type)) {
- fprintf(stderr, _("Invalid type of persistent device name\n"));
- return 2;
- }
- /*
- * If persistent device name doesn't exist for device, use
- * its pretty name.
- */
- *flags |= S_F_PERSIST_NAME + S_F_DEV_PRETTY;
- return 0;
+ if (!argv[*opt + 1]) {
+ return 1;
}
- else {
+ (*opt)++;
+ if (strnlen(argv[*opt], MAX_FILE_LEN) >= MAX_FILE_LEN - 1)
return 1;
+
+ strncpy(persistent_name_type, argv[*opt], MAX_FILE_LEN - 1);
+ persistent_name_type[MAX_FILE_LEN - 1] = '\0';
+ strtolower(persistent_name_type);
+ if (!get_persistent_type_dir(persistent_name_type)) {
+ fprintf(stderr, _("Invalid type of persistent device name\n"));
+ return 2;
}
+ /*
+ * If persistent device name doesn't exist for device, use
+ * its pretty name.
+ */
+ *flags |= S_F_PERSIST_NAME + S_F_DEV_PRETTY;
+ return 0;
break;
case 'p':
* But sadf option -t is checked in sadf.c as it won't
* be entered as a sar option after "--".
*/
- if (caller == C_SAR) {
- *flags |= S_F_TRUE_TIME;
- }
- else
+ if (caller != C_SAR) {
return 1;
+ }
+ *flags |= S_F_TRUE_TIME;
break;
case 'u':
while (++opt < argc) {
if (!strcmp(argv[opt], "-S")) {
- if (argv[++opt]) {
- parse_sadc_S_option(argv, opt);
- }
- else {
+ if (!argv[++opt]) {
usage(argv[0]);
}
+ parse_sadc_S_option(argv, opt);
}
else if (!strcmp(argv[opt], "-D")) {
}
else if (!strcmp(argv[opt], "-C")) {
- if (argv[++opt]) {
- strncpy(comment, argv[opt], MAX_COMMENT_LEN);
- comment[MAX_COMMENT_LEN - 1] = '\0';
- if (!strlen(comment)) {
- usage(argv[0]);
- }
+ if (!argv[++opt]) {
+ usage(argv[0]);
}
- else {
+ strncpy(comment, argv[opt], MAX_COMMENT_LEN);
+ comment[MAX_COMMENT_LEN - 1] = '\0';
+ if (!strlen(comment)) {
usage(argv[0]);
}
}
while (opt < argc) {
if (!strcmp(argv[opt], "-I")) {
- if (sar_options) {
- if (parse_sar_I_opt(argv, &opt, act)) {
- usage(argv[0]);
- }
+ if (!sar_options) {
+ usage(argv[0]);
}
- else {
+ if (parse_sar_I_opt(argv, &opt, act)) {
usage(argv[0]);
}
}
}
else if (!strcmp(argv[opt], "-m")) {
- if (argv[++opt] && sar_options) {
- /* Parse sar's option -m */
- if (parse_sar_m_opt(argv, &opt, act)) {
- usage(argv[0]);
- }
+ if (!argv[++opt] || !sar_options) {
+ usage(argv[0]);
}
- else {
+ /* Parse sar's option -m */
+ if (parse_sar_m_opt(argv, &opt, act)) {
usage(argv[0]);
}
}
else if (!strcmp(argv[opt], "-n")) {
- if (argv[++opt] && sar_options) {
- /* Parse sar's option -n */
- if (parse_sar_n_opt(argv, &opt, act)) {
- usage(argv[0]);
- }
+ if (!argv[++opt] || !sar_options) {
+ usage(argv[0]);
}
- else {
+ /* Parse sar's option -n */
+ if (parse_sar_n_opt(argv, &opt, act)) {
usage(argv[0]);
}
}
}
else if (!strcmp(argv[opt], "-m")) {
- if (argv[++opt]) {
- /* Parse option -m */
- if (parse_sar_m_opt(argv, &opt, act)) {
- usage(argv[0]);
- }
+ if (!argv[++opt]) {
+ usage(argv[0]);
}
- else {
+ /* Parse option -m */
+ if (parse_sar_m_opt(argv, &opt, act)) {
usage(argv[0]);
}
}
else if (!strcmp(argv[opt], "-n")) {
- if (argv[++opt]) {
- /* Parse option -n */
- if (parse_sar_n_opt(argv, &opt, act)) {
- usage(argv[0]);
- }
+ if (!argv[++opt]) {
+ usage(argv[0]);
}
- else {
+ /* Parse option -n */
+ if (parse_sar_n_opt(argv, &opt, act)) {
usage(argv[0]);
}
}