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 }