Hi Karl, hi all,

we got the following bug report with patch and detail analysis of
mktexpk failing under some circumstances.

Any comment?

On Di, 08 Jul 2008, Jan Hudec wrote:
> The mktexpk script fails if it tries to build a .pk in a directory with space
> (tested), tab or some backslash-character combinations (obvious from the
> code).
> 
> I traced the space problem down to a single cd with unquoted argument.
> However I also noticed use of echo+sed dirname replacement (with comment
> "can't rely on dirname" -- basename was relied on on the next line though),
> which would have problems with spaces at the end (backquote expansion eats
> them) and backslashes in some shells (the rules for backslash processing in
> echo differ from shell to shell). So my patch additionally includes
> a replacement of those two statements with ${var##pattern} and ${var%pattern}
> expansions. These expansions are POSIX and should thus be reasonably
> portable.
> 
> ##################################
> patch (standard patch -p1 unified diff)
> 
> --- old/build/source/texk/kpathsea/mktexpk    2006-01-17 22:41:51.000000000 
> +0100
> +++ new/build/source/texk/kpathsea/mktexpk    2008-07-08 21:49:14.000000000 
> +0200
> @@ -199,8 +199,8 @@
>  IFS=$OIFS
>  
>  PKDEST="$1"
> -PKDESTDIR=`echo "$PKDEST" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname
> -PKNAME=`basename "$PKDEST"`
> +PKDESTDIR=${PKDEST%/*}
> +PKNAME=${PKDEST##*/}
>  GFNAME=$NAME.${DPI}gf
>  
>  if test -r "$PKDESTDIR/$PKNAME"; then
> @@ -250,7 +250,7 @@
>  # Use cp when mv fails, since DOS will fail mv for deeply-nested directories.
>  mv $PKNAME "$PKDESTDIR/pk$$.tmp" 2>/dev/null \
>    || cp $PKNAME "$PKDESTDIR/pk$$.tmp" || exit 1
> -cd $PKDESTDIR || exit 1
> +cd "$PKDESTDIR" || exit 1
>  chmod `kpsestat -xst,go-w .` pk$$.tmp
>  test -r $PKNAME || mv pk$$.tmp $PKNAME || exit 1

Best wishes

Norbert

-------------------------------------------------------------------------------
Dr. Norbert Preining <[EMAIL PROTECTED]>        Vienna University of Technology
Debian Developer <[EMAIL PROTECTED]>                         Debian TeX Group
gpg DSA: 0x09C5B094      fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
-------------------------------------------------------------------------------
CROMARTY (n.)
The brittle sludge which clings to the top of ketchup bottles and
plastic tomatoes in nasty cafes.
                        --- Douglas Adams, The Meaning of Liff



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to