summaryrefslogtreecommitdiff
path: root/contrib/dialog/headers-sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/dialog/headers-sh.in')
-rwxr-xr-xcontrib/dialog/headers-sh.in38
1 files changed, 30 insertions, 8 deletions
diff --git a/contrib/dialog/headers-sh.in b/contrib/dialog/headers-sh.in
index 906c018d83e6b..9bad19fbd25f2 100755
--- a/contrib/dialog/headers-sh.in
+++ b/contrib/dialog/headers-sh.in
@@ -1,5 +1,5 @@
#! /bin/sh
-# $Id: headers-sh.in,v 1.9 2011/01/06 09:38:25 tom Exp $
+# $Id: headers-sh.in,v 1.11 2011/10/18 23:49:13 tom Exp $
##############################################################################
# Copyright (c) 2004-2007,2011 Thomas E. Dickey #
# #
@@ -45,6 +45,8 @@ PKGNAME=@PACKAGE_PREFIX@
CONFIGH=@PACKAGE_CONFIG@
SUB_INC=@SUB_INC@
+: ${TMPDIR:=/tmp}
+
TMPSED=headers.sed
DIGIT=0123456789
@@ -98,9 +100,9 @@ s/ $//
:done
EOF
# pick up autoconf-style symbols used in the application's headers
- for i in $REF/*.h
+ for name in $REF/*.h
do
- sed -e 's/^[ ][ ]*#[ ][ ]*/#/' $i \
+ sed -e 's/^[ ][ ]*#[ ][ ]*/#/' $name \
| egrep '^#(if|ifdef|ifndef|elif)' \
| sed -f headers.tmp \
| sort -u \
@@ -116,8 +118,7 @@ EOF
-e 's/^#define[ ][ ]*//' \
-e 's/[ ].*//' \
| egrep -v "^${PACKAGE}_" \
- | sort -u \
- | egrep -v "^${PKGNAME}_"`
+ | sort -u`
do
echo "s/\\<$name\\>/${PKGNAME}_$name/g" >>$TMPSED
done
@@ -127,6 +128,8 @@ EOF
echo "s,#include <${pkgname}_,#include <${PACKAGE}/${pkgname}_," >>$TMPSED
fi
+ echo '/_FILE_OFFSET_BITS/d' >>$TMPSED
+
# reduce the count if possible, since some old sed's limit is 100 lines
sort -u $TMPSED >headers.tmp
mv headers.tmp $TMPSED
@@ -142,13 +145,32 @@ else
SRC=$3
SHOW=`basename $SRC`
- TMPSRC=${TMPDIR-/tmp}/${SHOW}$$
+ TMPSRC=$TMPDIR/${SHOW}-text$$
+ TMPEDT=$TMPDIR/${SHOW}-edit$$
+ TMPTMP=$TMPDIR/${SHOW}-temp$$
echo " ... $SHOW"
test -f $REF/$SRC && SRC="$REF/$SRC"
rm -f $TMPSRC
- sed -f $TMPSED $SRC > $TMPSRC
+ cat $SRC >$TMPSRC
+
+ tmp1=1
+ while true
+ do
+ tmp2=`expr $tmp1 + 49`
+ if test $tmp1 = 1
+ then
+ sed "${tmp2}q" $TMPSED >$TMPEDT
+ else
+ sed "1,${tmp1}d; ${tmp2}q" $TMPSED >$TMPEDT
+ fi
+ test -s $TMPEDT || break
+ sed -f $TMPEDT $TMPSRC > $TMPTMP
+ mv $TMPTMP $TMPSRC
+ tmp1=$tmp2
+ done
+
NAME=`basename $SRC`
# Just in case someone gzip'd manpages, remove the conflicting copy.
@@ -172,6 +194,6 @@ else
fi
eval $PRG $TMPSRC $DST/$NAME
- rm -f $TMPSRC
+ rm -f $TMPEDT $TMPTMP $TMPSRC
fi
# vile:ts=4 sw=4