texlive[64494] Build/source/texk: ptexenc: skip guessing file

commits+takuji at tug.org commits+takuji at tug.org
Sat Sep 24 04:01:36 CEST 2022


Revision: 64494
          http://tug.org/svn/texlive?view=revision&revision=64494
Author:   takuji
Date:     2022-09-24 04:01:36 +0200 (Sat, 24 Sep 2022)
Log Message:
-----------
ptexenc: skip guessing file encoding if from pipe

Modified Paths:
--------------
    trunk/Build/source/texk/mendexk/ChangeLog
    trunk/Build/source/texk/mendexk/Makefile.am
    trunk/Build/source/texk/mendexk/Makefile.in
    trunk/Build/source/texk/mendexk/tests/mendex.test
    trunk/Build/source/texk/ptexenc/ChangeLog
    trunk/Build/source/texk/ptexenc/ptexenc.c

Added Paths:
-----------
    trunk/Build/source/texk/mendexk/tests/enc-e.idx
    trunk/Build/source/texk/mendexk/tests/enc-j.idx
    trunk/Build/source/texk/mendexk/tests/enc-s.idx
    trunk/Build/source/texk/mendexk/tests/enc-u.idx
    trunk/Build/source/texk/mendexk/tests/enc-x.ind
    trunk/Build/source/texk/mendexk/tests/enc.dic
    trunk/Build/source/texk/mendexk/tests/jis.ist

Modified: trunk/Build/source/texk/mendexk/ChangeLog
===================================================================
--- trunk/Build/source/texk/mendexk/ChangeLog	2022-09-23 23:50:33 UTC (rev 64493)
+++ trunk/Build/source/texk/mendexk/ChangeLog	2022-09-24 02:01:36 UTC (rev 64494)
@@ -1,3 +1,9 @@
+2022-09-24  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* tests/mendex.test, tests/enc-{e,j,s,u}.idx, tests/enc.dic,
+	tests/jis.ist, tests/enc-x.ind, Makefile.am:
+	Add tests for guessing file encodings.
+
 2022-09-01 Hironori Kitagawa <h_kitagawa2001 at yahoo.co.jp>
 
 	* main.c:

Modified: trunk/Build/source/texk/mendexk/Makefile.am
===================================================================
--- trunk/Build/source/texk/mendexk/Makefile.am	2022-09-23 23:50:33 UTC (rev 64493)
+++ trunk/Build/source/texk/mendexk/Makefile.am	2022-09-24 02:01:36 UTC (rev 64494)
@@ -59,7 +59,7 @@
 EXTRA_DIST += tests/foo.idx tests/foo.ind \
 	tests/uni.idx tests/uni.dict tests/uni.ist \
 	tests/uni1.ist tests/uni2.ist tests/uni.ind \
-	tests/sjis.ist tests/euc.ist \
+	tests/sjis.ist tests/euc.ist tests/jis.ist \
 	tests/range.idx tests/range2.ist tests/range2.ist tests/range3.ist \
 	tests/range1.ind tests/range2.ind tests/range3.ind \
 	tests/pprec0.ist tests/pprec1.ist tests/pprec2.ist tests/pprec3.ist \
@@ -69,6 +69,8 @@
 	tests/romalpA.idx tests/romalpA-5.ind tests/romalpA-6.ind \
 	tests/romalpB.idx tests/romalpB-5.ind tests/romalpB-6.ind tests/romalpB-7.ind \
 	tests/romalpC.idx tests/romalpC-5.ind \
-	tests/romalpD.idx tests/romalpD-5.ind tests/romalpD-6.ind tests/romalpD-7.ind
-DISTCLEANFILES = foo.* uni.* range*.* pprec*.* romalp*.*
+	tests/romalpD.idx tests/romalpD-5.ind tests/romalpD-6.ind tests/romalpD-7.ind \
+	tests/enc-e.idx tests/enc-j.idx tests/enc-s.idx tests/enc-u.idx \
+	tests/enc-x.ind tests/enc.dic
+DISTCLEANFILES = foo.* uni.* range*.* pprec*.* romalp*.* enc*.*
 

Modified: trunk/Build/source/texk/mendexk/Makefile.in
===================================================================
--- trunk/Build/source/texk/mendexk/Makefile.in	2022-09-23 23:50:33 UTC (rev 64493)
+++ trunk/Build/source/texk/mendexk/Makefile.in	2022-09-24 02:01:36 UTC (rev 64494)
@@ -583,7 +583,7 @@
 	mendex.ja.txt mendex.1 mendex.1.ja $(TESTS) tests/foo.idx \
 	tests/foo.ind tests/uni.idx tests/uni.dict tests/uni.ist \
 	tests/uni1.ist tests/uni2.ist tests/uni.ind tests/sjis.ist \
-	tests/euc.ist tests/range.idx tests/range2.ist \
+	tests/euc.ist tests/jis.ist tests/range.idx tests/range2.ist \
 	tests/range2.ist tests/range3.ist tests/range1.ind \
 	tests/range2.ind tests/range3.ind tests/pprec0.ist \
 	tests/pprec1.ist tests/pprec2.ist tests/pprec3.ist \
@@ -595,9 +595,10 @@
 	tests/romalpB.idx tests/romalpB-5.ind tests/romalpB-6.ind \
 	tests/romalpB-7.ind tests/romalpC.idx tests/romalpC-5.ind \
 	tests/romalpD.idx tests/romalpD-5.ind tests/romalpD-6.ind \
-	tests/romalpD-7.ind
+	tests/romalpD-7.ind tests/enc-e.idx tests/enc-j.idx \
+	tests/enc-s.idx tests/enc-u.idx tests/enc-x.ind tests/enc.dic
 TESTS = tests/mendex.test
-DISTCLEANFILES = foo.* uni.* range*.* pprec*.* romalp*.*
+DISTCLEANFILES = foo.* uni.* range*.* pprec*.* romalp*.* enc*.*
 all: c-auto.h
 	$(MAKE) $(AM_MAKEFLAGS) all-am
 

Added: trunk/Build/source/texk/mendexk/tests/enc-e.idx
===================================================================
--- trunk/Build/source/texk/mendexk/tests/enc-e.idx	                        (rev 0)
+++ trunk/Build/source/texk/mendexk/tests/enc-e.idx	2022-09-24 02:01:36 UTC (rev 64494)
@@ -0,0 +1 @@
+\indexentry{\xC0\xE3\xB7\xEE\xB2\xD6}{1}

Added: trunk/Build/source/texk/mendexk/tests/enc-j.idx
===================================================================
--- trunk/Build/source/texk/mendexk/tests/enc-j.idx	                        (rev 0)
+++ trunk/Build/source/texk/mendexk/tests/enc-j.idx	2022-09-24 02:01:36 UTC (rev 64494)
@@ -0,0 +1 @@
+\indexentry{$B at c7n2V(B}{1}

Added: trunk/Build/source/texk/mendexk/tests/enc-s.idx
===================================================================
--- trunk/Build/source/texk/mendexk/tests/enc-s.idx	                        (rev 0)
+++ trunk/Build/source/texk/mendexk/tests/enc-s.idx	2022-09-24 02:01:36 UTC (rev 64494)
@@ -0,0 +1 @@
+\indexentry{\x90ጎ\x89\xD4}{1}

Added: trunk/Build/source/texk/mendexk/tests/enc-u.idx
===================================================================
--- trunk/Build/source/texk/mendexk/tests/enc-u.idx	                        (rev 0)
+++ trunk/Build/source/texk/mendexk/tests/enc-u.idx	2022-09-24 02:01:36 UTC (rev 64494)
@@ -0,0 +1 @@
+\indexentry{雪月花}{1}

Added: trunk/Build/source/texk/mendexk/tests/enc-x.ind
===================================================================
--- trunk/Build/source/texk/mendexk/tests/enc-x.ind	                        (rev 0)
+++ trunk/Build/source/texk/mendexk/tests/enc-x.ind	2022-09-24 02:01:36 UTC (rev 64494)
@@ -0,0 +1,6 @@
+\begin{theindex}
+
+\centerline{\bfseries ◆◆◆ セ ◆◆◆}\par\nobreak
+  \item 雪月花\leaders\hbox{$\cdot$}\hfill 1
+
+\end{theindex}

Added: trunk/Build/source/texk/mendexk/tests/enc.dic
===================================================================
--- trunk/Build/source/texk/mendexk/tests/enc.dic	                        (rev 0)
+++ trunk/Build/source/texk/mendexk/tests/enc.dic	2022-09-24 02:01:36 UTC (rev 64494)
@@ -0,0 +1 @@
+$B at c7n2V(B  $B$;$D$2$D$+(B

Added: trunk/Build/source/texk/mendexk/tests/jis.ist
===================================================================
--- trunk/Build/source/texk/mendexk/tests/jis.ist	                        (rev 0)
+++ trunk/Build/source/texk/mendexk/tests/jis.ist	2022-09-24 02:01:36 UTC (rev 64494)
@@ -0,0 +1,10 @@
+% -*- coding: iso-2022-jp -*-
+
+delim_0 "\\leaders\\hbox{$\\cdot$}\\hfill "
+delim_1 "\\leaders\\hbox{$\\cdot$}\\hfill "
+delim_2 "\\leaders\\hbox{$\\cdot$}\\hfill "
+
+lethead_flag 1
+lethead_prefix "\n\\centerline{\\bfseries $B"!"!"!(B "
+lethead_suffix  " $B"!"!"!(B}\\par\\nobreak"
+

Modified: trunk/Build/source/texk/mendexk/tests/mendex.test
===================================================================
--- trunk/Build/source/texk/mendexk/tests/mendex.test	2022-09-23 23:50:33 UTC (rev 64493)
+++ trunk/Build/source/texk/mendexk/tests/mendex.test	2022-09-24 02:01:36 UTC (rev 64494)
@@ -7,7 +7,7 @@
 TEXMFCNF=$srcdir/../kpathsea
 export TEXMFCNF
 
-rm -f foo.* uni.* range*.* pprec*.* romalp*.* sjis.* euc.*
+rm -f foo.* uni.* range*.* pprec*.* romalp*.* sjis.* euc.* enc*.*
 rc=0
 
 ./mendex $srcdir/tests/foo.idx -o foo.ind1 -t foo.ilg1 \
@@ -89,5 +89,34 @@
 	&& diff $srcdir/tests/romalp$sfx-$num.ind romalp$sfx-$num.ind1 || rc=12
 done
 
+# guess file encoding
+# input from file
+for enc in j e s u; do
+./mendex --guess-input-enc -s $srcdir/tests/jis.ist -d $srcdir/tests/enc.dic $srcdir/tests/enc-$enc.idx \
+	-o enc-$enc.ind1 -t enc-$enc.ilg \
+	&& diff $srcdir/tests/enc-x.ind enc-$enc.ind1 || rc=101
+done
 
+for enc in j u; do
+./mendex --no-guess-input-enc -s $srcdir/tests/uni.ist -d $srcdir/tests/enc.dic $srcdir/tests/enc-$enc.idx \
+	-o enc-$enc.ind1 -t enc-$enc.ilg \
+	&& diff $srcdir/tests/enc-x.ind enc-$enc.ind1 || rc=102
+done
+
+# input from pipe
+for enc in j u; do
+cat $srcdir/tests/enc-$enc.idx | \
+	./mendex --guess-input-enc -i -s $srcdir/tests/euc.ist -d $srcdir/tests/enc.dic \
+	-o enc-p-$enc.ind1 -t enc-p-$enc.ilg \
+	&& diff $srcdir/tests/enc-x.ind enc-p-$enc.ind1 || rc=103
+done
+
+# imput from redirect
+for enc in j u; do
+./mendex --guess-input-enc -i -s $srcdir/tests/sjis.ist -d $srcdir/tests/enc.dic < $srcdir/tests/enc-$enc.idx \
+	-o enc-r-$enc.ind1 -t enc-r-$enc.ilg \
+	&& diff $srcdir/tests/enc-x.ind enc-r-$enc.ind1 || rc=104
+done
+
+
 exit $rc

Modified: trunk/Build/source/texk/ptexenc/ChangeLog
===================================================================
--- trunk/Build/source/texk/ptexenc/ChangeLog	2022-09-23 23:50:33 UTC (rev 64493)
+++ trunk/Build/source/texk/ptexenc/ChangeLog	2022-09-24 02:01:36 UTC (rev 64494)
@@ -1,3 +1,8 @@
+2022-09-24  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptexenc.c: Skip guessing file encoding if input is from pipe.
+	https://github.com/texjporg/tex-jp-build/issues/148
+
 2022-09-01  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
 
 	* ptexenc.c: Initialize infile_enc_auto only when this variable

Modified: trunk/Build/source/texk/ptexenc/ptexenc.c
===================================================================
--- trunk/Build/source/texk/ptexenc/ptexenc.c	2022-09-23 23:50:33 UTC (rev 64493)
+++ trunk/Build/source/texk/ptexenc/ptexenc.c	2022-09-24 02:01:36 UTC (rev 64494)
@@ -16,6 +16,7 @@
 #include <ptexenc/unicode-jp.h>
 
 #include <ctype.h>
+#include <sys/stat.h>
 
 #define ENC_UNKNOWN  0
 #define ENC_JIS      1
@@ -1024,8 +1025,16 @@
 #endif /* DEBUG */
         }
         else {
+          struct stat st;
           if (infile_enc_auto == 2) ptenc_set_infile_enc_auto();
-          if (infile_enc_auto && fd != fileno(stdin)) {
+#ifdef DEBUG
+          if (infile_enc_auto) {
+            fprintf(stderr, "\nInput fd: %d, stdin?: %d, pipe?: %d\n", fd,
+                 fd==fileno(stdin), (fstat(fd, &st)==0 && S_ISFIFO(st.st_mode)));
+          }
+#endif /* DEBUG */
+          if (infile_enc_auto && fd != fileno(stdin)
+              && !(fstat(fd, &st)==0 && S_ISFIFO(st.st_mode))) {
             char *enc;
             getc4(fp);
             getc4(fp);



More information about the tex-live-commits mailing list.