aboutsummaryrefslogtreecommitdiff
path: root/lib/enca/script/b-piconv.in
diff options
context:
space:
mode:
Diffstat (limited to 'lib/enca/script/b-piconv.in')
-rw-r--r--lib/enca/script/b-piconv.in40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/enca/script/b-piconv.in b/lib/enca/script/b-piconv.in
new file mode 100644
index 0000000000..0ca80efd19
--- /dev/null
+++ b/lib/enca/script/b-piconv.in
@@ -0,0 +1,40 @@
+#! /bin/sh
+# @(#) $Id: b-piconv.in,v 1.3 2003/12/22 15:32:37 yeti Exp $
+# piconv wrapper.
+# To be called by enca, don't use directly. See enca(1) for calling convention.
+#
+# Copyright (C) 2000-2003 David Necas (Yeti) <yeti@physics.muni.cz>.
+# This is free software; it can be copied and/or modified under the terms of
+# version 2 of GNU General Public License, see COPYING for details. There is
+# NO WARRANTY; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+transform_enc_name() {
+ echo "$1" | sed -e 's:/.*::'
+}
+if test "x$3" = "x"; then
+ echo "$0 has to be called by enca" 1>&2
+ exit 1
+fi
+umask 077
+inenc=`transform_enc_name "$1"`
+outenc=`transform_enc_name "$2"`
+if test "$4" = "-"; then
+ if piconv -f "$inenc" -t "$outenc" <"$3"; then
+ rm -- "$3"
+ else
+ echo "$0: piconv -f $inenc -t $outenc failed" 1>&2
+ rm -- "$3"
+ exit 1
+ fi
+else
+ temp=@SHELL_RANDOM_FILENAME@ || exit 1
+ if piconv -f "$inenc" -t "$outenc" <"$3" >"$temp"; then
+ # use cat > to preserve permissions
+ cat $temp >"$3"
+ else
+ echo "$0: piconv -f $inenc -t $outenc <$3 failed, file $3 unchanged" 1>&2
+ rm -f $temp
+ exit 1
+ fi
+ rm -f $temp
+fi
+