fork of PCE focusing on macplus, supporting DaynaPort SCSI network emulation
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

pri: Support loading from stdin and saving to stdout

Hampa Hug 28221397 409d749c

+48 -36
+48 -36
src/utils/pri/main.c
··· 5 5 /***************************************************************************** 6 6 * File name: src/utils/pri/pri.c * 7 7 * Created: 2012-01-31 by Hampa Hug <hampa@hampa.ch> * 8 - * Copyright: (C) 2012-2013 Hampa Hug <hampa@hampa.ch> * 8 + * Copyright: (C) 2012-2014 Hampa Hug <hampa@hampa.ch> * 9 9 *****************************************************************************/ 10 10 11 11 /***************************************************************************** ··· 374 374 fprintf (stderr, "%s: loading image from %s\n", arg0, fname); 375 375 } 376 376 377 - img = pri_img_load (fname, par_fmt_inp); 377 + if (strcmp (fname, "-") == 0) { 378 + img = pri_img_load_fp (stdin, par_fmt_inp); 379 + } 380 + else { 381 + img = pri_img_load (fname, par_fmt_inp); 382 + } 378 383 379 384 if (img == NULL) { 380 385 fprintf (stderr, "%s: loading failed (%s)\n", arg0, fname); ··· 395 400 } 396 401 397 402 static 403 + int pri_save_image (const char *fname, pri_img_t **img) 404 + { 405 + int r; 406 + 407 + if (*img == NULL) { 408 + *img = pri_img_new(); 409 + } 410 + 411 + if (*img == NULL) { 412 + return (1); 413 + } 414 + 415 + if (par_verbose) { 416 + fprintf (stderr, "%s: save image to %s\n", arg0, fname); 417 + } 418 + 419 + if (strcmp (fname, "-") == 0) { 420 + r = pri_img_save_fp (stdout, *img, par_fmt_out); 421 + } 422 + else { 423 + r = pri_img_save (fname, *img, par_fmt_out); 424 + } 425 + 426 + if (r) { 427 + fprintf (stderr, "%s: saving failed (%s)\n", 428 + arg0, fname 429 + ); 430 + 431 + return (1); 432 + } 433 + 434 + return (0); 435 + } 436 + 437 + static 398 438 int pri_set_parameter (const char *name, const char *val) 399 439 { 400 440 if (strcmp (name, "mfm-auto-gap3") == 0) { ··· 454 494 int r; 455 495 char **optarg; 456 496 pri_img_t *img; 457 - const char *out; 458 497 459 498 arg0 = argv[0]; 460 499 461 500 img = NULL; 462 - out = NULL; 463 501 464 502 pri_decode_mfm_init (&par_dec_mfm); 465 503 pri_encode_mfm_init (&par_enc_mfm, 500000, 300); ··· 559 597 break; 560 598 561 599 case 'o': 562 - out = optarg[0]; 600 + if (pri_save_image (optarg[0], &img)) { 601 + return (1); 602 + } 563 603 break; 564 604 565 605 case 'O': ··· 619 659 return (1); 620 660 } 621 661 } 622 - else if (out == NULL) { 623 - out = optarg[0]; 624 - } 625 662 else { 626 - fprintf (stderr, "%s: unknown option (%s)\n", 627 - arg0, optarg[0] 628 - ); 629 - 630 - return (1); 663 + if (pri_save_image (optarg[0], &img)) { 664 + return (1); 665 + } 631 666 } 632 667 break; 633 668 634 669 default: 635 - return (1); 636 - } 637 - } 638 - 639 - if (out != NULL) { 640 - if (img == NULL) { 641 - img = pri_img_new(); 642 - } 643 - 644 - if (img == NULL) { 645 - return (1); 646 - } 647 - 648 - if (par_verbose) { 649 - fprintf (stderr, "%s: save image to %s\n", arg0, out); 650 - } 651 - 652 - r = pri_img_save (out, img, par_fmt_out); 653 - 654 - if (r) { 655 - fprintf (stderr, "%s: saving failed (%s)\n", 656 - argv[0], out 657 - ); 658 670 return (1); 659 671 } 660 672 }