summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/texk/kpathsea/ChangeLog11
-rw-r--r--Build/source/texk/kpathsea/db.c33
-rw-r--r--Build/source/texk/kpathsea/kpsewhich.c22
-rw-r--r--Build/source/texk/kpathsea/mingw32.c4
-rw-r--r--Build/source/texk/kpathsea/mingw32.h1
5 files changed, 44 insertions, 27 deletions
diff --git a/Build/source/texk/kpathsea/ChangeLog b/Build/source/texk/kpathsea/ChangeLog
index 5bfdf89feb8..ae71c4f4599 100644
--- a/Build/source/texk/kpathsea/ChangeLog
+++ b/Build/source/texk/kpathsea/ChangeLog
@@ -1,3 +1,14 @@
+2011-08-03 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * mingw32.[ch] (dostounix_filename): Remove unused function.
+
+2011-08-03 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ More diffs between TeX Live and W32TeX.
+ * db.c (ignore_dir_p, db_build, match),
+ kpsewhich.c (subdir_match): Slashify and test for 2-Byte Kanji
+ (CP 932, SJIS) codes.
+
2011-08-03 Akirar Kakuto <kakuto@fuk.kindai.ac.jp>
* win32lib.h: #include <direct.h> for _getcwd.
diff --git a/Build/source/texk/kpathsea/db.c b/Build/source/texk/kpathsea/db.c
index d4cf9c6e2e2..36dd87f6f0c 100644
--- a/Build/source/texk/kpathsea/db.c
+++ b/Build/source/texk/kpathsea/db.c
@@ -69,17 +69,9 @@ ignore_dir_p (const_string dirname)
{
const_string dot_pos = dirname;
-#if defined(WIN32)
- while (*(++dot_pos)) {
- if (IS_KANJI(dot_pos-1))
- dot_pos++;
- else if (*dot_pos == '.' &&
-#else
while ((dot_pos = strchr (dot_pos + 1, '.'))) {
- if (
-#endif
/* If / before and no / after, skip it. */
- IS_DIR_SEP (dot_pos[-1]) && dot_pos[1] && !IS_DIR_SEP (dot_pos[1]))
+ if (IS_DIR_SEP_CH (dot_pos[-1]) && dot_pos[1] && !IS_DIR_SEP_CH (dot_pos[1]))
return true;
}
@@ -111,11 +103,12 @@ db_build (kpathsea kpse, hash_table_type *table, const_string db_filename)
#if defined(WIN32)
for (pp = line; *pp; pp++) {
- if (IS_KANJI(pp)) {
+ if (*pp == '\\')
+ *pp = '/';
+ else if (IS_KANJI(pp))
pp++;
- continue;
- }
- *pp = TRANSFORM(*pp);
+ else
+ *pp = TRANSFORM(*pp);
}
#endif
@@ -231,9 +224,9 @@ match (const_string filename, const_string path_elt)
if (FILECHARCASEEQ (*filename, *path_elt)) /* normal character match */
;
- else if (IS_DIR_SEP (*path_elt) /* at // */
- && original_filename < filename && IS_DIR_SEP (path_elt[-1])) {
- while (IS_DIR_SEP (*path_elt))
+ else if (IS_DIR_SEP_CH (*path_elt) /* at // */
+ && original_filename < filename && IS_DIR_SEP_CH (path_elt[-1])) {
+ while (IS_DIR_SEP_CH (*path_elt))
path_elt++; /* get past second and any subsequent /'s */
if (*path_elt == 0) {
/* Trailing //, matches anything. We could make this part of the
@@ -244,7 +237,7 @@ match (const_string filename, const_string path_elt)
/* Intermediate //, have to match rest of PATH_ELT. */
for (; !matched && *filename; filename++) {
/* Try matching at each possible character. */
- if (IS_DIR_SEP (filename[-1])
+ if (IS_DIR_SEP_CH (filename[-1])
&& FILECHARCASEEQ (*filename, *path_elt))
matched = match (filename, path_elt);
}
@@ -266,7 +259,7 @@ match (const_string filename, const_string path_elt)
hand, if PATH_ELT ended with a / (as in `vf/'), FILENAME being
the same `vf/ptmr.vf', we'll be at the `p'.
Upshot: if we're at a dir sep in FILENAME, skip it. */
- if (IS_DIR_SEP (*filename))
+ if (IS_DIR_SEP_CH (*filename))
filename++;
/* Here are the basic possibilities for the check on being at the
@@ -284,8 +277,8 @@ match (const_string filename, const_string path_elt)
a FILENAME without dir seps. (This could be argued, and may never
happen in practice, but is the historical behavior.) */
/* if original_filename != filename then original_filename < filename */
- if (original_filename == filename || IS_DIR_SEP (filename[-1])) {
- while (*filename && !IS_DIR_SEP (*filename))
+ if (original_filename == filename || IS_DIR_SEP_CH (filename[-1])) {
+ while (*filename && !IS_DIR_SEP_CH (*filename))
filename++;
matched = *filename == 0;
}
diff --git a/Build/source/texk/kpathsea/kpsewhich.c b/Build/source/texk/kpathsea/kpsewhich.c
index 7c453bc8eb0..e0045d36080 100644
--- a/Build/source/texk/kpathsea/kpsewhich.c
+++ b/Build/source/texk/kpathsea/kpsewhich.c
@@ -1,7 +1,7 @@
/* kpsewhich -- standalone path lookup and variable expansion for Kpathsea.
Ideas from Thomas Esser, Pierre MacKay, and many others.
- Copyright 1995-2010 Karl Berry & Olaf Weber.
+ Copyright 1995-2011 Karl Berry & Olaf Weber.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -272,15 +272,27 @@ subdir_match (str_list_type subdirs, string *matches)
{
string *ret = XTALLOC1 (string);
unsigned len = 1;
+ unsigned e;
unsigned m;
+#if defined(WIN32)
+ string p;
+
+ for (e = 0; e < STR_LIST_LENGTH (subdirs); e++) {
+ for (p = STR_LIST_ELT (subdirs, e); *p; p++) {
+ if (*p == '\\')
+ *p = '/';
+ else if (IS_KANJI(p))
+ p++;
+ }
+ }
+#endif
for (m = 0; matches[m]; m++) {
unsigned loc;
- unsigned e;
string s = xstrdup (matches[m]);
- for (loc = strlen (s); loc > 0 && !IS_DIR_SEP (s[loc-1]); loc--)
+ for (loc = strlen (s); loc > 0 && !IS_DIR_SEP_CH (s[loc-1]); loc--)
;
- while (loc > 0 && IS_DIR_SEP (s[loc-1])) {
+ while (loc > 0 && IS_DIR_SEP_CH (s[loc-1])) {
loc--;
}
s[loc] = 0; /* wipe out basename */
@@ -288,7 +300,7 @@ subdir_match (str_list_type subdirs, string *matches)
for (e = 0; e < STR_LIST_LENGTH (subdirs); e++) {
string subdir = STR_LIST_ELT (subdirs, e);
unsigned subdir_len = strlen (subdir);
- while (subdir_len > 0 && IS_DIR_SEP (subdir[subdir_len-1])) {
+ while (subdir_len > 0 && IS_DIR_SEP_CH (subdir[subdir_len-1])) {
subdir_len--;
subdir[subdir_len] = 0; /* remove trailing slashes from subdir spec */
}
diff --git a/Build/source/texk/kpathsea/mingw32.c b/Build/source/texk/kpathsea/mingw32.c
index 9da8d774074..f6912365422 100644
--- a/Build/source/texk/kpathsea/mingw32.c
+++ b/Build/source/texk/kpathsea/mingw32.c
@@ -206,11 +206,13 @@ normalize_filename (char *fp, char path_sep)
/* Destructively turn backslashes into slashes. */
-void
+#if 0 /* unused */
+static void
dostounix_filename (char *p)
{
normalize_filename (p, '/');
}
+#endif
/* Destructively turn slashes into backslashes. */
static void
diff --git a/Build/source/texk/kpathsea/mingw32.h b/Build/source/texk/kpathsea/mingw32.h
index db6a53e37bc..d7e28cda207 100644
--- a/Build/source/texk/kpathsea/mingw32.h
+++ b/Build/source/texk/kpathsea/mingw32.h
@@ -41,6 +41,5 @@ extern char *quote_args(char **);
#endif /* MAKE_KPSE_DLL */
extern KPSEDLL BOOL win32_get_long_filename (char *, char *, int);
-extern KPSEDLL void dostounix_filename (char *p);
#endif