Re: [PATCH -perfbook] Convert *.log files into UTF-8 encoding

"Paul E. McKenney" <[email protected]> Fri, 13 Jun 2025 07:35:44 -0700
Newsgroups org.kernel.vger.perfbook
Message-ID <bae1d886-18b6-4ee8-bc29-dd48fd71dfa8@paulmck-laptop>
On Fri, Jun 13, 2025 at 06:33:15PM +0900, Akira Yokosawa wrote:
> pdflatex outputs .log files in iso-8859-1 encoding.  In our build
> scripts, grep assumes UTF-8 encoding for its input by default.
> 
> Practically speaking, the mismatch of encoding is unlikely to cause
> any harm.  That said, in the build log, there is a suspicious message
> from grep:
> 
>     ...
>     pdflatex 1 for perfbook.pdf
>     grep: perfbook.log: binary file matches     <===
>     ...
> 
> Converting .log files into UTF-8 on-the-fly can avoid the message.
> 
> Let's do it.
> 
> Signed-off-by: Akira Yokosawa <[email protected]>

Queued and pushed, thank you!

							Thanx, Paul

> ---
> Note 1:
>   Unicode ready modern engines such as XeTeX and LuaTex emit .log
>   files in UTF-8 encoding.
> 
> Note 2:
>   Currently, perfbook's preamble is not compatible with lualatex
>   or xelatex.
> 
> Note 3:
>   iconv should be available by default.
>   encguess should also be available where perl is installed.
> --
>  utilities/runfirstlatex.sh | 10 ++++++++++
>  utilities/runlatex.sh      | 10 ++++++++++
>  2 files changed, 20 insertions(+)
> 
> diff --git a/utilities/runfirstlatex.sh b/utilities/runfirstlatex.sh
> index a89e8a70..676502b2 100644
> --- a/utilities/runfirstlatex.sh
> +++ b/utilities/runfirstlatex.sh
> @@ -72,6 +72,16 @@ basename=`echo $1 | sed -e 's/\.tex$//'`
>  echo "$LATEX 1 for $basename.pdf"
>  $LATEX $LATEX_OPT $basename > /dev/null 2>&1 < /dev/null
>  exitcode=$?
> +ENCGUESS_CMD=`command -v encguess`
> +if [ "x$ENCGUESS_CMD" != "x" ]
> +then
> +	if encguess -s iso-8859-1 $basename.log | grep -q ISO-8859-1
> +	then
> +		mv $basename.log $basename-tmp.log
> +		iconv -f ISO-8859-1 -t UTF-8 $basename-tmp.log > $basename.log
> +		rm $basename-tmp.log
> +	fi
> +fi
>  if grep -q 'LaTeX Warning: You have requested' $basename.log
>  then
>  	grep -A 4 'LaTeX Warning: You have requested' $basename.log
> diff --git a/utilities/runlatex.sh b/utilities/runlatex.sh
> index 358b6baf..17d833ad 100644
> --- a/utilities/runlatex.sh
> +++ b/utilities/runlatex.sh
> @@ -79,6 +79,16 @@ iterate_latex () {
>  	makeglossaries $basename > /dev/null 2>&1
>  	$LATEX $LATEX_OPT $basename > /dev/null 2>&1 < /dev/null
>  	exitcode=$?
> +	ENCGUESS_CMD=`command -v encguess`
> +	if [ "x$ENCGUESS_CMD" != "x" ]
> +	then
> +		if encguess -s iso-8859-1 $basename.log | grep -q ISO-8859-1
> +		then
> +			mv $basename.log $basename-tmp.log
> +			iconv -f ISO-8859-1 -t UTF-8 $basename-tmp.log > $basename.log
> +			rm $basename-tmp.log
> +		fi
> +	fi
>  	if grep -q '! Emergency stop.' $basename.log
>  	then
>  		grep -B 10 -A 5 '! Emergency stop.' $basename.log
> 
> base-commit: a1bf2e61230301bfc12eba19abfc1c5a880f53be
> -- 
> 2.43.0
>