|
@ -3331,60 +3331,40 @@ int main(int argc, char **argv) { |
|
|
case '?': |
|
|
case '?': |
|
|
usage(); |
|
|
usage(); |
|
|
exit(1); |
|
|
exit(1); |
|
|
|
|
|
#define OPTFAIL(...) \ |
|
|
|
|
|
{ \ |
|
|
|
|
|
fprintf(stderr, "Bad %s argument: %s\n", tui_options[longindex].name, \ |
|
|
|
|
|
optarg); \ |
|
|
|
|
|
fprintf(stderr, __VA_ARGS__); \ |
|
|
|
|
|
fputc('\n', stderr); \ |
|
|
|
|
|
exit(1); \ |
|
|
|
|
|
} |
|
|
case Argopt_hardmargins: |
|
|
case Argopt_hardmargins: |
|
|
if (read_nxn_or_n(optarg, &t.hardmargin_x, &t.hardmargin_y) && |
|
|
if (read_nxn_or_n(optarg, &t.hardmargin_x, &t.hardmargin_y) && |
|
|
t.hardmargin_x >= 0 && t.hardmargin_y >= 0) |
|
|
t.hardmargin_x >= 0 && t.hardmargin_y >= 0) |
|
|
break; |
|
|
break; |
|
|
fprintf(stderr, |
|
|
OPTFAIL("Must be 0 or positive integer."); |
|
|
"Bad hard-margins argument %s.\n" |
|
|
|
|
|
"Must be 0 or positive integer.\n", |
|
|
|
|
|
optarg); |
|
|
|
|
|
exit(1); |
|
|
|
|
|
case Argopt_undo_limit: |
|
|
case Argopt_undo_limit: |
|
|
if (!read_int(optarg, &t.undo_history_limit) || |
|
|
if (read_int(optarg, &t.undo_history_limit) && t.undo_history_limit >= 0) |
|
|
t.undo_history_limit < 0) { |
|
|
break; |
|
|
fprintf(stderr, |
|
|
OPTFAIL("Must be 0 or positive integer."); |
|
|
"Bad undo-limit argument %s.\n" |
|
|
|
|
|
"Must be 0 or positive integer.\n", |
|
|
|
|
|
optarg); |
|
|
|
|
|
exit(1); |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
case Argopt_bpm: |
|
|
case Argopt_bpm: |
|
|
if (!read_int(optarg, &init_bpm) || init_bpm < 1) { |
|
|
if (read_int(optarg, &init_bpm) && init_bpm >= 1) |
|
|
fprintf(stderr, |
|
|
break; |
|
|
"Bad bpm argument %s.\n" |
|
|
OPTFAIL("Must be positive integer."); |
|
|
"Must be positive integer.\n", |
|
|
|
|
|
optarg); |
|
|
|
|
|
exit(1); |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
case Argopt_seed: |
|
|
case Argopt_seed: |
|
|
if (!read_int(optarg, &init_seed) || init_seed < 0) { |
|
|
if (read_int(optarg, &init_seed) && init_seed >= 0) |
|
|
fprintf(stderr, |
|
|
break; |
|
|
"Bad seed argument %s.\n" |
|
|
OPTFAIL("Must be 0 or positive integer."); |
|
|
"Must be 0 or positive integer.\n", |
|
|
|
|
|
optarg); |
|
|
|
|
|
exit(1); |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
case Argopt_init_grid_size: |
|
|
case Argopt_init_grid_size: |
|
|
if (sscanf(optarg, "%dx%d", &init_grid_dim_x, &init_grid_dim_y) != 2) { |
|
|
if (sscanf(optarg, "%dx%d", &init_grid_dim_x, &init_grid_dim_y) != 2) |
|
|
fprintf(stderr, "Bad argument format or count for initial-size.\n"); |
|
|
OPTFAIL("Bad format or count. Expected something like: 40x30"); |
|
|
exit(1); |
|
|
if (init_grid_dim_x <= 0 || init_grid_dim_x > ORCA_X_MAX) |
|
|
} |
|
|
OPTFAIL("X dimension for initial-size must be 1 <= n <= %d, was %d.", |
|
|
if (init_grid_dim_x <= 0 || init_grid_dim_x > ORCA_X_MAX) { |
|
|
|
|
|
fprintf(stderr, |
|
|
|
|
|
"X dimension for initial-size must be 1 <= n <= %d, was %d.\n", |
|
|
|
|
|
ORCA_X_MAX, init_grid_dim_x); |
|
|
ORCA_X_MAX, init_grid_dim_x); |
|
|
exit(1); |
|
|
if (init_grid_dim_y <= 0 || init_grid_dim_y > ORCA_Y_MAX) |
|
|
} |
|
|
OPTFAIL("Y dimension for initial-size must be 1 <= n <= %d, was %d.", |
|
|
if (init_grid_dim_y <= 0 || init_grid_dim_y > ORCA_Y_MAX) { |
|
|
|
|
|
fprintf(stderr, |
|
|
|
|
|
"Y dimension for initial-size must be 1 <= n <= %d, was %d.\n", |
|
|
|
|
|
ORCA_Y_MAX, init_grid_dim_y); |
|
|
ORCA_Y_MAX, init_grid_dim_y); |
|
|
exit(1); |
|
|
|
|
|
} |
|
|
|
|
|
explicit_initial_grid_size = true; |
|
|
explicit_initial_grid_size = true; |
|
|
break; |
|
|
break; |
|
|
case Argopt_osc_midi_bidule: |
|
|
case Argopt_osc_midi_bidule: |
|
@ -3409,6 +3389,7 @@ int main(int argc, char **argv) { |
|
|
exit(1); |
|
|
exit(1); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
#undef OPTFAIL |
|
|
if (optind == argc - 1) { |
|
|
if (optind == argc - 1) { |
|
|
osoput(&t.file_name, argv[optind]); |
|
|
osoput(&t.file_name, argv[optind]); |
|
|
} else if (optind < argc - 1) { |
|
|
} else if (optind < argc - 1) { |
|
|