summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipdfm-x/dvipdfmx.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipdfm-x/dvipdfmx.c')
-rw-r--r--Build/source/texk/dvipdfm-x/dvipdfmx.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/Build/source/texk/dvipdfm-x/dvipdfmx.c b/Build/source/texk/dvipdfm-x/dvipdfmx.c
index 393de215a91..644c92cf98c 100644
--- a/Build/source/texk/dvipdfm-x/dvipdfmx.c
+++ b/Build/source/texk/dvipdfm-x/dvipdfmx.c
@@ -705,6 +705,43 @@ read_config_file (const char *config)
MFCLOSE(fp);
}
+void
+read_config_special (const char **start, const char *end)
+{
+ char *option;
+ static char argv0[] = "config_special";
+ char *argv[3];
+ int argc = 1;
+
+ argv[0] = argv0;
+
+ skip_white (start, end);
+ if (*start >= end)
+ return;
+ /* Build up an argument list as if it were passed on the command
+ line */
+ if ((option = parse_ident (start, end))) {
+ argc = 2;
+ argv[1] = NEW (strlen(option)+2, char);
+ strcpy (argv[1]+1, option);
+ RELEASE (option);
+ *argv[1] = '-';
+ skip_white (start, end);
+ if (*start < end) {
+ argc += 1;
+ if (**start == '"') {
+ argv[2] = parse_c_string (start, end);
+ }
+ else
+ argv[2] = parse_ident (start, end);
+ }
+ }
+ do_args (argc, argv, argv0);
+ while (argc > 1) {
+ RELEASE (argv[--argc]);
+ }
+}
+
static void
system_default (void)
{