diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2016-01-25 03:22:28 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2016-01-25 03:22:28 +0000 |
commit | 698089a8266790d85071dd0e2a18255caa0c28b3 (patch) | |
tree | 4d170556abd01a31ff26075c416d3d919241a22c /Build | |
parent | a2188c3264a0940268bd4e267df65741e7089aaf (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')
-rw-r--r-- | Build/source/texk/web2c/lib/ChangeLog | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/lib/texmfmp.c | 13 |
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); } |