FreeCalypso > hg > fc-pcsc-tools
comparison simtool/plmnsel.c @ 113:32acef9d20ff
fc-simtool plmnsel-dump: support output redirection
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Fri, 19 Feb 2021 07:17:59 +0000 |
| parents | 9ce95d9c5c34 |
| children | 3ddbc3fea5f0 |
comparison
equal
deleted
inserted
replaced
| 112:440a4582d2a5 | 113:32acef9d20ff |
|---|---|
| 45 return(-1); | 45 return(-1); |
| 46 } | 46 } |
| 47 return(0); | 47 return(0); |
| 48 } | 48 } |
| 49 | 49 |
| 50 cmd_plmnsel_dump(argc, argv) | 50 cmd_plmnsel_dump(argc, argv, outf) |
| 51 char **argv; | 51 char **argv; |
| 52 FILE *outf; | |
| 52 { | 53 { |
| 53 int rc, gap_flag; | 54 int rc, gap_flag; |
| 54 u_char *dp, *endp; | 55 u_char *dp, *endp; |
| 55 char ascbuf[8]; | 56 char ascbuf[8]; |
| 56 unsigned idx, linelen; | 57 unsigned idx, linelen; |
| 57 FILE *outf; | |
| 58 | 58 |
| 59 rc = select_ef_plmnsel(); | 59 rc = select_ef_plmnsel(); |
| 60 if (rc < 0) | 60 if (rc < 0) |
| 61 return(rc); | 61 return(rc); |
| 62 rc = readbin_op(0, curfile_total_size); | 62 rc = readbin_op(0, curfile_total_size); |
| 63 if (rc < 0) | 63 if (rc < 0) |
| 64 return(rc); | 64 return(rc); |
| 65 if (argv[1]) { | |
| 66 outf = fopen(argv[1], "w"); | |
| 67 if (!outf) { | |
| 68 perror(argv[1]); | |
| 69 return(-1); | |
| 70 } | |
| 71 } else | |
| 72 outf = stdout; | |
| 73 dp = sim_resp_data; | 65 dp = sim_resp_data; |
| 74 endp = sim_resp_data + sim_resp_data_len; | 66 endp = sim_resp_data + sim_resp_data_len; |
| 75 gap_flag = 0; | 67 gap_flag = 0; |
| 76 linelen = 0; | 68 linelen = 0; |
| 77 for (idx = 0; dp < endp; idx++, dp += 3) { | 69 for (idx = 0; dp < endp; idx++, dp += 3) { |
| 97 fputs(ascbuf, outf); | 89 fputs(ascbuf, outf); |
| 98 linelen++; | 90 linelen++; |
| 99 } | 91 } |
| 100 if (linelen) | 92 if (linelen) |
| 101 putc('\n', outf); | 93 putc('\n', outf); |
| 102 if (argv[1]) | |
| 103 fclose(outf); | |
| 104 return(0); | 94 return(0); |
| 105 } | 95 } |
| 106 | 96 |
| 107 cmd_plmnsel_write(argc, argv) | 97 cmd_plmnsel_write(argc, argv) |
| 108 char **argv; | 98 char **argv; |
