int
main (int argc, char **argv)
{
+ if (argc == 2 && !strcmp (argv[1], "--batch"))
+ {
+ unsigned int ret = 0;
+ char *buf = nullptr;
+ size_t len;
+ while (getline (&buf, &len, stdin) > 0)
+ {
+ size_t l = strlen (buf);
+ if (l && buf[l - 1] == '\n') buf[l - 1] = '\0';
+ main_font_text_t<shape_consumer_t<output_buffer_t>, FONT_SIZE_UPEM, 0> driver;
+ char *args[32];
+ argc = 0;
+ char *p = buf, *e;
+ args[argc++] = p;
+ while ((e = strchr (p, ' ')) && argc < (int) (int) ARRAY_LENGTH (args))
+ {
+ *e++ = '\0';
+ while (*e == ' ')
+ e++;
+ args[argc++] = p = e;
+ }
+ ret |= driver.main (argc, args);
+ fflush (stdout);
+
+ if (ret)
+ break;
+ }
+ free (buf);
+ return ret;
+ }
main_font_text_t<shape_consumer_t<output_buffer_t>, FONT_SIZE_UPEM, 0> driver;
return driver.main (argc, argv);
}