Skip to content

Commit fc6347c

Browse files
committed
mbck: switch to HX_getopt6 API
1 parent f03b90d commit fc6347c

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

tools/mbck.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -160,20 +160,23 @@ static constexpr struct HXoption g_options_table[] = {
160160

161161
int main(int argc, char **argv)
162162
{
163-
if (HX_getopt(g_options_table, &argc, &argv, HXOPT_USAGEONERR) != HXOPT_ERR_SUCCESS)
163+
HXopt6_auto_result argp;
164+
if (HX_getopt6(g_options_table, argc, argv, &argp,
165+
HXOPT_USAGEONERR | HXOPT_ITER_ARGS) != HXOPT_ERR_SUCCESS)
164166
return EXIT_FAILURE;
165-
if (argc < 2) {
166-
fprintf(stderr, "Usage: mbck [-p] sqlitefile\n");
167+
if (argp.nargs < 1) {
168+
fprintf(stderr, "Usage: mbck [-p] sqlitefile[...]\n");
167169
return EXIT_FAILURE;
168170
}
169-
while (*++argv != nullptr) {
171+
for (int i = 0; i < argp.nargs; ++i) {
172+
auto le_file = argp.uarg[i];
170173
sqlite3 *db = nullptr;
171-
auto ret = sqlite3_open_v2(*argv, &db, SQLITE_OPEN_READWRITE, nullptr);
174+
auto ret = sqlite3_open_v2(le_file, &db, SQLITE_OPEN_READWRITE, nullptr);
172175
if (ret != SQLITE_OK) {
173-
fprintf(stderr, "sqlite3_open_v2 %s: %s\n", *argv, sqlite3_errstr(ret));
176+
fprintf(stderr, "sqlite3_open_v2 %s: %s\n", le_file, sqlite3_errstr(ret));
174177
return EXIT_FAILURE;
175178
}
176-
printf("== %s ==\n", *argv);
179+
printf("== %s ==\n", le_file);
177180
auto cl_0 = HX::make_scope_exit([&]() { sqlite3_close(db); });
178181
if (gx_sql_exec(db, "PRAGMA foreign_keys=ON") != SQLITE_OK ||
179182
gx_sql_exec(db, "PRAGMA journal_mode=WAL") != SQLITE_OK ||
@@ -183,7 +186,7 @@ int main(int argc, char **argv)
183186
if (pr < 0)
184187
return EXIT_FAILURE;
185188
else if (pr > 0)
186-
printf("%s: %zu problems total\n", *argv, pr);
189+
printf("%s: %zu problems total\n", le_file, pr);
187190
}
188191
return EXIT_SUCCESS;
189192
}

0 commit comments

Comments
 (0)