# HG changeset patch # User Mychaela Falconia # Date 1613718385 0 # Node ID 869488ef86b6b2b91cf68dd74fed9388d66c2fe1 # Parent 2aa92dfcb4b5c447f555cc5dac816aab719af86f pb-dump command family reworked for new output redirection diff -r 2aa92dfcb4b5 -r 869488ef86b6 simtool/dispatch.c --- a/simtool/dispatch.c Fri Feb 19 06:59:56 2021 +0000 +++ b/simtool/dispatch.c Fri Feb 19 07:06:25 2021 +0000 @@ -128,13 +128,13 @@ {"grcard2-set-super-hex", 1, 1, 0, cmd_grcard2_set_super_hex}, {"iccid", 0, 0, 1, cmd_iccid}, {"imsi", 0, 0, 1, cmd_imsi}, - {"lnd-dump", 0, 1, 0, cmd_lnd_dump}, + {"lnd-dump", 0, 0, 1, cmd_lnd_dump}, {"lnd-erase", 0, 0, 0, cmd_lnd_erase}, {"lnd-restore", 1, 1, 0, cmd_lnd_restore}, {"lnd-write", 1, 2, 0, cmd_lnd_write}, {"opl-dump", 0, 0, 0, cmd_opl_dump}, - {"pb-dump", 1, 2, 0, cmd_pb_dump}, - {"pb-dump-rec", 2, 3, 0, cmd_pb_dump_rec}, + {"pb-dump", 1, 1, 1, cmd_pb_dump}, + {"pb-dump-rec", 2, 3, 1, cmd_pb_dump_rec}, {"pb-erase", 1, 1, 0, cmd_pb_erase}, {"pb-erase-one", 2, 2, 0, cmd_pb_erase_one}, {"pb-erase-range", 3, 3, 0, cmd_pb_erase_range}, diff -r 2aa92dfcb4b5 -r 869488ef86b6 simtool/pbdump.c --- a/simtool/pbdump.c Fri Feb 19 06:59:56 2021 +0000 +++ b/simtool/pbdump.c Fri Feb 19 07:06:25 2021 +0000 @@ -58,42 +58,30 @@ putc('\n', outf); } -cmd_pb_dump(argc, argv) +cmd_pb_dump(argc, argv, outf) char **argv; + FILE *outf; { int rc; - FILE *outf; unsigned recno; rc = phonebook_op_common(argv[1]); if (rc < 0) return(rc); - if (argv[2]) { - outf = fopen(argv[2], "w"); - if (!outf) { - perror(argv[2]); - return(-1); - } - } else - outf = stdout; for (recno = 1; recno <= curfile_record_count; recno++) { rc = readrec_op(recno, 0x04, curfile_record_len); - if (rc < 0) { - if (argv[2]) - fclose(outf); + if (rc < 0) return(rc); - } if (check_simresp_all_blank()) continue; dump_record(recno, outf); } - if (argv[2]) - fclose(outf); return(0); } -cmd_pb_dump_rec(argc, argv) +cmd_pb_dump_rec(argc, argv, outf) char **argv; + FILE *outf; { int rc; unsigned recno, startrec, endrec; @@ -127,41 +115,28 @@ return(rc); if (check_simresp_all_blank()) continue; - dump_record(recno, stdout); + dump_record(recno, outf); } return(0); } -cmd_lnd_dump(argc, argv) +cmd_lnd_dump(argc, argv, outf) char **argv; + FILE *outf; { int rc; - FILE *outf; unsigned recno; rc = select_ef_lnd(); if (rc < 0) return(rc); - if (argv[1]) { - outf = fopen(argv[1], "w"); - if (!outf) { - perror(argv[1]); - return(-1); - } - } else - outf = stdout; for (recno = 1; recno <= curfile_record_count; recno++) { rc = readrec_op(recno, 0x04, curfile_record_len); - if (rc < 0) { - if (argv[1]) - fclose(outf); + if (rc < 0) return(rc); - } if (check_simresp_all_blank()) continue; dump_record(recno, outf); } - if (argv[1]) - fclose(outf); return(0); }