@@ -160,20 +160,23 @@ static constexpr struct HXoption g_options_table[] = {
160160
161161int 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