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;