Package: rubber Version: 1.4-3 Followup-For: Bug #345954 Control: tags -1 + patch upstream
Hi. The attached patch fixes the bug and adds some regression tests.
>From ca5dc664478e094577bf54b7897de8790bbed249 Mon Sep 17 00:00:00 2001 From: Nicolas Boulenguez <[email protected]> Date: Wed, 1 Aug 2018 15:40:36 +0200 Subject: Always give a relative source path to fig2dev. The source path is embedded by fig2dev into the target, causing problem with LaTeX and non-ASCII characters. Bug-Debian: https://bugs.debian.org/345954 diff --git a/src/converters/fig2dev.py b/src/converters/fig2dev.py index 22f9838..27d5788 100644 --- a/src/converters/fig2dev.py +++ b/src/converters/fig2dev.py @@ -4,6 +4,7 @@ Conversion of XFig graphics into various formats. """ +import os.path from rubber.util import prog_available from rubber.depend import Shell @@ -11,6 +12,11 @@ def check (source, target, context): return prog_available('fig2dev') def convert (source, target, context, set): + + # The source path is embedded by fig2dev into the target, + # causing problem with LaTeX and non-ASCII characters. + # Always give a relative path. + if target[-2:] != '_t': # Here we assume the target has an extension of a standard form, i.e. @@ -20,7 +26,7 @@ def convert (source, target, context, set): # used, that is for eps, pdf and png). language = target[target.rfind('.')+1:] - result = Shell (set, ['fig2dev', '-L', language, source, target]) + result = Shell (set, ['fig2dev', '-L', language, os.path.relpath (source), target]) result.add_product (target) result.add_source (source) return result @@ -51,12 +57,12 @@ def convert (source, target, context, set): language = 'pstex' image_file = base_name + '.eps' - temp = Shell (set, ['fig2dev', '-L', language, source, image_file]) + temp = Shell (set, ['fig2dev', '-L', language, os.path.relpath (source), image_file]) temp.add_product (image_file) temp.add_source (source) result = Shell (set, ['fig2dev', '-L', language + '_t', - '-p', image_reference, source, target]) + '-p', image_reference, os.path.relpath (source), target]) result.add_product (target) result.add_source (source) result.add_source (image_file) diff --git a/tests/fig2dev-path-inplace/doc.tex b/tests/fig2dev-path-inplace/doc.tex new file mode 100644 index 0000000..fd63023 --- /dev/null +++ b/tests/fig2dev-path-inplace/doc.tex @@ -0,0 +1,6 @@ +\documentclass{article} +\usepackage{graphics} +\begin{document} +Lorem +\includegraphics{figure.eps} +\end{document} diff --git a/tests/fig2dev-path-inplace/figure.fig b/tests/fig2dev-path-inplace/figure.fig new file mode 100644 index 0000000..ad23b7d --- /dev/null +++ b/tests/fig2dev-path-inplace/figure.fig @@ -0,0 +1,10 @@ +#FIG 3.2 Produced by xfig version 3.2.5c +Landscape +Center +Inches +Letter +100.00 +Single +-2 +1200 2 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 3675 456 456 4950 3675 4875 4125 diff --git a/tests/fig2dev-path-inplace/fragment b/tests/fig2dev-path-inplace/fragment new file mode 100644 index 0000000..b304afd --- /dev/null +++ b/tests/fig2dev-path-inplace/fragment @@ -0,0 +1,7 @@ +mkdir inplace +mv doc.tex figure.fig inplace +rubber --inplace inplace/doc.tex +[ -r inplace/figure.eps ] +rubber --inplace --clean inplace/doc.tex +mv inplace/doc.tex inplace/figure.fig . +rmdir inplace diff --git a/tests/fig2dev-path-into/doc.tex b/tests/fig2dev-path-into/doc.tex new file mode 100644 index 0000000..fd63023 --- /dev/null +++ b/tests/fig2dev-path-into/doc.tex @@ -0,0 +1,6 @@ +\documentclass{article} +\usepackage{graphics} +\begin{document} +Lorem +\includegraphics{figure.eps} +\end{document} diff --git a/tests/fig2dev-path-into/figure.fig b/tests/fig2dev-path-into/figure.fig new file mode 100644 index 0000000..ad23b7d --- /dev/null +++ b/tests/fig2dev-path-into/figure.fig @@ -0,0 +1,10 @@ +#FIG 3.2 Produced by xfig version 3.2.5c +Landscape +Center +Inches +Letter +100.00 +Single +-2 +1200 2 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 3675 456 456 4950 3675 4875 4125 diff --git a/tests/fig2dev-path-into/fragment b/tests/fig2dev-path-into/fragment new file mode 100644 index 0000000..68ad3e5 --- /dev/null +++ b/tests/fig2dev-path-into/fragment @@ -0,0 +1,7 @@ +mkdir blarz +rubber --into blarz doc.tex +status=0 +grep fig2dev-path figure.eps || status=$? +test $status = 1 # No match. +rubber --into blarz doc.tex --clean +rmdir blarz diff --git a/tests/fig2dev-path/doc.tex b/tests/fig2dev-path/doc.tex new file mode 100644 index 0000000..fd63023 --- /dev/null +++ b/tests/fig2dev-path/doc.tex @@ -0,0 +1,6 @@ +\documentclass{article} +\usepackage{graphics} +\begin{document} +Lorem +\includegraphics{figure.eps} +\end{document} diff --git a/tests/fig2dev-path/figure.fig b/tests/fig2dev-path/figure.fig new file mode 100644 index 0000000..ad23b7d --- /dev/null +++ b/tests/fig2dev-path/figure.fig @@ -0,0 +1,10 @@ +#FIG 3.2 Produced by xfig version 3.2.5c +Landscape +Center +Inches +Letter +100.00 +Single +-2 +1200 2 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 3675 456 456 4950 3675 4875 4125 diff --git a/tests/fig2dev-path/fragment b/tests/fig2dev-path/fragment new file mode 100644 index 0000000..b02d483 --- /dev/null +++ b/tests/fig2dev-path/fragment @@ -0,0 +1,5 @@ +rubber doc.tex +status=0 +grep fig2dev-path figure.eps || status=$? +test $status = 1 # No match. +rubber doc.tex --clean

