@@ -273,32 +273,6 @@ static void PrintHelpMessage(const char *program) {
273273 program, program, program);
274274}
275275
276- static bool SetVariablesFromCLArgs (tesseract::TessBaseAPI &api, int argc, char **argv) {
277- bool success = true ;
278- char opt1[256 ], opt2[255 ];
279- for (int i = 0 ; i < argc; i++) {
280- if (strcmp (argv[i], " -c" ) == 0 && i + 1 < argc) {
281- strncpy (opt1, argv[i + 1 ], 255 );
282- opt1[255 ] = ' \0 ' ;
283- char *p = strchr (opt1, ' =' );
284- if (!p) {
285- fprintf (stderr, " Missing = in configvar assignment\n " );
286- success = false ;
287- break ;
288- }
289- *p = 0 ;
290- strncpy (opt2, strchr (argv[i + 1 ], ' =' ) + 1 , sizeof (opt2) - 1 );
291- opt2[254 ] = 0 ;
292- ++i;
293-
294- if (!api.SetVariable (opt1, opt2)) {
295- fprintf (stderr, " Could not set option: %s=%s\n " , opt1, opt2);
296- }
297- }
298- }
299- return success;
300- }
301-
302276static void PrintLangsList (tesseract::TessBaseAPI &api) {
303277 std::vector<std::string> languages;
304278 api.GetAvailableLanguagesAsVector (&languages);
@@ -485,7 +459,16 @@ static bool ParseArgs(int argc, char **argv, const char **lang, const char **ima
485459 *print_fonts_table = true ;
486460#endif // ndef DISABLED_LEGACY_ENGINE
487461 } else if (strcmp (argv[i], " -c" ) == 0 && i + 1 < argc) {
488- // handled properly after api init
462+ const std::string argument (argv[i + 1 ]);
463+ const auto equal_pos = argument.find (' =' );
464+ if (equal_pos == std::string::npos) {
465+ throw std::invalid_argument (" Missing '=' in configvar assignment" );
466+ }
467+ // Extract key and value
468+ const std::string key = argument.substr (0 , equal_pos);
469+ const std::string value = argument.substr (equal_pos + 1 );
470+ vars_vec->push_back (key);
471+ vars_values->push_back (value);
489472 ++i;
490473 } else if (*image == nullptr ) {
491474 *image = argv[i];
@@ -736,10 +719,6 @@ int main(int argc, char **argv) {
736719 const int init_failed = api.Init (datapath, lang, enginemode, &(argv[arg_i]), argc - arg_i,
737720 &vars_vec, &vars_values, false );
738721
739- if (!SetVariablesFromCLArgs (api, argc, argv)) {
740- return EXIT_FAILURE;
741- }
742-
743722 // SIMD settings might be overridden by config variable.
744723 tesseract::SIMDDetect::Update ();
745724
0 commit comments