static int st_fdc_save_pri (st_fdc_t *fdc, unsigned drive) { if (fdc->fname[drive] == NULL) { return (1); } if (pri_img_save (fdc->fname[drive], fdc->img[drive], PRI_FORMAT_NONE)) { return (1); } return (0); }
int main (int argc, char **argv) { int r; char **optarg; pri_img_t *img; const char *out; arg0 = argv[0]; img = NULL; out = NULL; pri_mfm_init (&par_mfm, 500000, 300); while (1) { r = pce_getopt (argc, argv, &optarg, opts); if (r == GETOPT_DONE) { break; } if (r < 0) { return (1); } switch (r) { case '?': print_help(); return (0); case 'V': print_version(); return (0); case 'c': if (pri_parse_range (optarg[0], &par_cyl[0], &par_cyl[1], &par_cyl_all)) { return (1); } break; case 'e': if (img != NULL) { if (pri_edit_tracks (img, optarg[0], optarg[1])) { return (1); } } break; case 'f': if (img != NULL) { pri_print_info (img); } else { par_print_info = 1; } break; case 'h': if (pri_parse_range (optarg[0], &par_trk[0], &par_trk[1], &par_trk_all)) { return (1); } break; case 'i': if (img != NULL) { pri_img_del (img); } img = pri_load_image (optarg[0]); if (img == NULL) { return (1); } break; case 'I': if (pri_set_format (optarg[0], &par_fmt_inp)) { return (1); } break; case 'l': if (img != NULL) { pri_list_tracks (img); } else { par_list = 1; } break; case 'o': out = optarg[0]; break; case 'O': if (pri_set_format (optarg[0], &par_fmt_out)) { return (1); } break; case 'p': if (pri_operation (&img, optarg[0], argc, argv)) { return (1); } break; case 'r': par_data_rate = strtoul (optarg[0], NULL, 0); if (par_data_rate <= 1000) { par_data_rate *= 1000; } break; case 's': if (pri_set_parameter (optarg[0], optarg[1])) { return (1); } break; case 't': if (pri_parse_range (optarg[0], &par_cyl[0], &par_cyl[1], &par_cyl_all)) { return (1); } if (pri_parse_range (optarg[1], &par_trk[0], &par_trk[1], &par_trk_all)) { return (1); } break; case 'v': par_verbose = 1; break; case 0: if (img == NULL) { img = pri_load_image (optarg[0]); if (img == NULL) { return (1); } } else if (out == NULL) { out = optarg[0]; } else { fprintf (stderr, "%s: unknown option (%s)\n", arg0, optarg[0] ); return (1); } break; default: return (1); } } if (out != NULL) { if (img == NULL) { img = pri_img_new(); } if (img == NULL) { return (1); } if (par_verbose) { fprintf (stderr, "%s: save image to %s\n", arg0, out); } r = pri_img_save (out, img, par_fmt_out); if (r) { fprintf (stderr, "%s: saving failed (%s)\n", argv[0], out ); return (1); } } return (0); }