summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/lib
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-01-25 03:22:28 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-01-25 03:22:28 +0000
commit698089a8266790d85071dd0e2a18255caa0c28b3 (patch)
tree4d170556abd01a31ff26075c416d3d919241a22c /Build/source/texk/web2c/lib
parenta2188c3264a0940268bd4e267df65741e7089aaf (diff)
texmfmp.c: Improve to skip BOM (win32 only).
git-svn-id: svn://tug.org/texlive/trunk@39477 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/lib')
-rw-r--r--Build/source/texk/web2c/lib/ChangeLog4
-rw-r--r--Build/source/texk/web2c/lib/texmfmp.c13
2 files changed, 11 insertions, 6 deletions
diff --git a/Build/source/texk/web2c/lib/ChangeLog b/Build/source/texk/web2c/lib/ChangeLog
index 32bf8853279..b47b80e9b8e 100644
--- a/Build/source/texk/web2c/lib/ChangeLog
+++ b/Build/source/texk/web2c/lib/ChangeLog
@@ -1,3 +1,7 @@
+2016-01-25 Akira Kakuto <kakuto@fuk.kinidai.ac.jp>
+
+ * texmfmp.c: Improve to skip BOM (win32 only).
+
2016-01-02 Akira Kakuto <kakuto@fuk.kinidai.ac.jp>
* printversion.c: 2015 ---> 2016.
diff --git a/Build/source/texk/web2c/lib/texmfmp.c b/Build/source/texk/web2c/lib/texmfmp.c
index 75c846a339b..bc912276052 100644
--- a/Build/source/texk/web2c/lib/texmfmp.c
+++ b/Build/source/texk/web2c/lib/texmfmp.c
@@ -2288,12 +2288,13 @@ input_line (FILE *f)
long position = ftell (f);
if (position == 0L) { /* Detect and skip Byte order marks. */
- int k1 = getc (f);
+ int k1, k2, k3, k4;
+ k1 = getc (f);
if (k1 != 0xff && k1 != 0xfe && k1 != 0xef)
rewind (f);
else {
- int k2 = getc (f);
+ k2 = getc (f);
if (k2 != 0xff && k2 != 0xfe && k2 != 0xbb)
rewind (f);
@@ -2301,10 +2302,10 @@ input_line (FILE *f)
(k1 == 0xfe && k2 == 0xff)) /* UTF-16(BE) */
;
else {
- int k3 = getc (f);
-
- if (k1 == 0xef && k2 == 0xbb && k3 == 0xbf) /* UTF-8 */
- ;
+ k3 = getc (f);
+ k4 = getc (f);
+ if (k1 == 0xef && k2 == 0xbb && k3 == 0xbf && (0 <= k4 <= 0x7e)) /* UTF-8 */
+ ungetc (k4, f);
else
rewind (f);
}