Skip to content

Commit 99f18c5

Browse files
committed
mbop: switch iteration from argv to argc
Stop relying on a trailing NULL sentinel in string arrays. (Needed for HX_getopt6 soon.)
1 parent 49f8895 commit 99f18c5

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

tools/mbop_delmsg.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ int main(int argc, char **argv)
5151
if (rop_util_get_gc_value(g_folderid) == 0)
5252
return help();
5353
std::vector<uint64_t> eids;
54-
while (*++argv != nullptr) {
55-
eid_t eid = gi_lookup_eid_by_name(g_storedir, *argv);
54+
for (int uidx = 1; uidx < argc; ++uidx) {
55+
eid_t eid = gi_lookup_eid_by_name(g_storedir, argv[uidx]);
5656
if (eid == 0) {
57-
mbop_fprintf(stderr, "Not recognized/found: \"%s\"\n", *argv);
57+
mbop_fprintf(stderr, "Not recognized/found: \"%s\"\n", argv[uidx]);
5858
return EXIT_FAILURE;
5959
}
6060
eids.push_back(eid);

tools/mbop_emptyfld.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -201,11 +201,11 @@ int main(int argc, char **argv)
201201
}
202202

203203
int ret = EXIT_SUCCESS;
204-
while (*++argv != nullptr) {
204+
for (int uidx = 1; uidx < argc; ++uidx) {
205205
BOOL partial = false;
206-
eid_t eid = gi_lookup_eid_by_name(g_storedir, *argv);
206+
eid_t eid = gi_lookup_eid_by_name(g_storedir, argv[uidx]);
207207
if (eid == 0) {
208-
mbop_fprintf(stderr, "Not recognized/found: \"%s\"\n", *argv);
208+
mbop_fprintf(stderr, "Not recognized/found: \"%s\"\n", argv[uidx]);
209209
return EXIT_FAILURE;
210210
}
211211
if (g_cutoff_time != 0 || g_recurse) {
@@ -220,14 +220,14 @@ int main(int argc, char **argv)
220220
auto ok = exmdb_client->empty_folder(g_storedir, CP_UTF8, nullptr,
221221
eid, g_del_flags, &partial);
222222
if (!ok) {
223-
mbop_fprintf(stderr, "empty_folder(%s) failed\n", *argv);
223+
mbop_fprintf(stderr, "empty_folder(%s) failed\n", argv[uidx]);
224224
ret = EXIT_FAILURE;
225225
}
226226
delcount(eid, &curr_delc, &curr_fldc);
227227
if (partial)
228228
printf("Partial completion (e.g. essential permanent folders were not deleted)\n");
229229
printf("Folder %s: deleted %d message(s), deleted %d subfolder(s) plus messages\n",
230-
*argv, curr_delc - prev_delc, prev_fldc - curr_fldc);
230+
argv[uidx], curr_delc - prev_delc, prev_fldc - curr_fldc);
231231
if (ret != EXIT_SUCCESS)
232232
break;
233233
}

tools/mbop_purge.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ int main(int argc, char **argv)
3535
if (argc < 2)
3636
mbop_fprintf(stderr, "mbop/purge: No folders specified, no action taken.\n");
3737
auto age = rop_util_unix_to_nttime(time(nullptr) - HX_strtoull_sec(znul(g_age_str), nullptr));
38-
while (*++argv != nullptr) {
39-
eid_t eid = gi_lookup_eid_by_name(g_storedir, *argv);
38+
for (int uidx = 1; uidx < argc; ++uidx) {
39+
eid_t eid = gi_lookup_eid_by_name(g_storedir, argv[uidx]);
4040
if (eid == 0) {
41-
mbop_fprintf(stderr, "Not recognized/found: \"%s\"\n", *argv);
41+
mbop_fprintf(stderr, "Not recognized/found: \"%s\"\n", argv[uidx]);
4242
return EXIT_FAILURE;
4343
}
4444
unsigned int flags = g_recursive ? DEL_FOLDERS : 0;
@@ -48,7 +48,7 @@ int main(int argc, char **argv)
4848
eid, flags, age, &st_folders, &st_messages,
4949
&sz_normal, &sz_fai);
5050
if (!ok) {
51-
mbop_fprintf(stderr, "purge_softdel %s failed\n", *argv);
51+
mbop_fprintf(stderr, "purge_softdel %s failed\n", argv[uidx]);
5252
return EXIT_FAILURE;
5353
}
5454
char nbuf[32], fbuf[32];

0 commit comments

Comments
 (0)