FreeCalypso > hg > fc-pcsc-tools
comparison simtool/pbdump.c @ 111:869488ef86b6
pb-dump command family reworked for new output redirection
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Fri, 19 Feb 2021 07:06:25 +0000 |
| parents | fe660c7ea97f |
| children |
comparison
equal
deleted
inserted
replaced
| 110:2aa92dfcb4b5 | 111:869488ef86b6 |
|---|---|
| 56 fprintf(outf, "EXT=%u ", fixp[13]); | 56 fprintf(outf, "EXT=%u ", fixp[13]); |
| 57 print_alpha_field(sim_resp_data, textlen, outf); | 57 print_alpha_field(sim_resp_data, textlen, outf); |
| 58 putc('\n', outf); | 58 putc('\n', outf); |
| 59 } | 59 } |
| 60 | 60 |
| 61 cmd_pb_dump(argc, argv) | 61 cmd_pb_dump(argc, argv, outf) |
| 62 char **argv; | 62 char **argv; |
| 63 FILE *outf; | |
| 63 { | 64 { |
| 64 int rc; | 65 int rc; |
| 65 FILE *outf; | |
| 66 unsigned recno; | 66 unsigned recno; |
| 67 | 67 |
| 68 rc = phonebook_op_common(argv[1]); | 68 rc = phonebook_op_common(argv[1]); |
| 69 if (rc < 0) | 69 if (rc < 0) |
| 70 return(rc); | 70 return(rc); |
| 71 if (argv[2]) { | |
| 72 outf = fopen(argv[2], "w"); | |
| 73 if (!outf) { | |
| 74 perror(argv[2]); | |
| 75 return(-1); | |
| 76 } | |
| 77 } else | |
| 78 outf = stdout; | |
| 79 for (recno = 1; recno <= curfile_record_count; recno++) { | 71 for (recno = 1; recno <= curfile_record_count; recno++) { |
| 80 rc = readrec_op(recno, 0x04, curfile_record_len); | 72 rc = readrec_op(recno, 0x04, curfile_record_len); |
| 81 if (rc < 0) { | 73 if (rc < 0) |
| 82 if (argv[2]) | |
| 83 fclose(outf); | |
| 84 return(rc); | 74 return(rc); |
| 85 } | |
| 86 if (check_simresp_all_blank()) | 75 if (check_simresp_all_blank()) |
| 87 continue; | 76 continue; |
| 88 dump_record(recno, outf); | 77 dump_record(recno, outf); |
| 89 } | 78 } |
| 90 if (argv[2]) | |
| 91 fclose(outf); | |
| 92 return(0); | 79 return(0); |
| 93 } | 80 } |
| 94 | 81 |
| 95 cmd_pb_dump_rec(argc, argv) | 82 cmd_pb_dump_rec(argc, argv, outf) |
| 96 char **argv; | 83 char **argv; |
| 84 FILE *outf; | |
| 97 { | 85 { |
| 98 int rc; | 86 int rc; |
| 99 unsigned recno, startrec, endrec; | 87 unsigned recno, startrec, endrec; |
| 100 | 88 |
| 101 rc = phonebook_op_common(argv[1]); | 89 rc = phonebook_op_common(argv[1]); |
| 125 rc = readrec_op(recno, 0x04, curfile_record_len); | 113 rc = readrec_op(recno, 0x04, curfile_record_len); |
| 126 if (rc < 0) | 114 if (rc < 0) |
| 127 return(rc); | 115 return(rc); |
| 128 if (check_simresp_all_blank()) | 116 if (check_simresp_all_blank()) |
| 129 continue; | 117 continue; |
| 130 dump_record(recno, stdout); | 118 dump_record(recno, outf); |
| 131 } | 119 } |
| 132 return(0); | 120 return(0); |
| 133 } | 121 } |
| 134 | 122 |
| 135 cmd_lnd_dump(argc, argv) | 123 cmd_lnd_dump(argc, argv, outf) |
| 136 char **argv; | 124 char **argv; |
| 125 FILE *outf; | |
| 137 { | 126 { |
| 138 int rc; | 127 int rc; |
| 139 FILE *outf; | |
| 140 unsigned recno; | 128 unsigned recno; |
| 141 | 129 |
| 142 rc = select_ef_lnd(); | 130 rc = select_ef_lnd(); |
| 143 if (rc < 0) | 131 if (rc < 0) |
| 144 return(rc); | 132 return(rc); |
| 145 if (argv[1]) { | |
| 146 outf = fopen(argv[1], "w"); | |
| 147 if (!outf) { | |
| 148 perror(argv[1]); | |
| 149 return(-1); | |
| 150 } | |
| 151 } else | |
| 152 outf = stdout; | |
| 153 for (recno = 1; recno <= curfile_record_count; recno++) { | 133 for (recno = 1; recno <= curfile_record_count; recno++) { |
| 154 rc = readrec_op(recno, 0x04, curfile_record_len); | 134 rc = readrec_op(recno, 0x04, curfile_record_len); |
| 155 if (rc < 0) { | 135 if (rc < 0) |
| 156 if (argv[1]) | |
| 157 fclose(outf); | |
| 158 return(rc); | 136 return(rc); |
| 159 } | |
| 160 if (check_simresp_all_blank()) | 137 if (check_simresp_all_blank()) |
| 161 continue; | 138 continue; |
| 162 dump_record(recno, outf); | 139 dump_record(recno, outf); |
| 163 } | 140 } |
| 164 if (argv[1]) | |
| 165 fclose(outf); | |
| 166 return(0); | 141 return(0); |
| 167 } | 142 } |
