summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipsk')
-rw-r--r--Build/source/texk/dvipsk/ChangeLog5
-rw-r--r--Build/source/texk/dvipsk/search.c20
2 files changed, 21 insertions, 4 deletions
diff --git a/Build/source/texk/dvipsk/ChangeLog b/Build/source/texk/dvipsk/ChangeLog
index c8364c97b86..4eeed943857 100644
--- a/Build/source/texk/dvipsk/ChangeLog
+++ b/Build/source/texk/dvipsk/ChangeLog
@@ -1,3 +1,8 @@
+2010-05-25 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * search.c: quote command in W32 case to allow path name
+ with spaces.
+
2010-05-18 Karl Berry <karl@tug.org>
* config.h (type1path): rename from type1.
diff --git a/Build/source/texk/dvipsk/search.c b/Build/source/texk/dvipsk/search.c
index e135ef2cd67..615802f2b6c 100644
--- a/Build/source/texk/dvipsk/search.c
+++ b/Build/source/texk/dvipsk/search.c
@@ -75,16 +75,28 @@ selfautoloc_prog (const char *prog)
{
char *ret;
#ifdef WIN32
- char *p;
+ char *p, *q, *r;
/* Get value of SELFAUTOLOC, but \ works better for path separator. */
char *selfautoloc = kpse_var_value ("SELFAUTOLOC");
for (p = selfautoloc; *p; p++) {
if (*p == '/')
*p = '\\';
}
-
- /* Prepend that to PROG. */
- ret = concat3 (selfautoloc, "\\", prog);
+ q = xstrdup (prog);
+ r = q;
+ while (*r && *r != ' ' && *r != '\t')
+ r++;
+ if (*r == '\0')
+ ret = (char *)concatn ("\"", selfautoloc, "\\", q, "\"", NULL);
+ else {
+ *r = '\0';
+ r++;
+ if (*r)
+ ret = (char *)concatn ("\"", selfautoloc, "\\", q, "\" ", r, NULL);
+ else
+ ret = (char *)concatn ("\"", selfautoloc, "\\", q, "\"", NULL);
+ }
+ free (q);
free (selfautoloc);
#else /* not WIN32 */