Mercurial > mplayer.hg
view help/help_create.sh @ 29100:1bdda4f68f5f
Avoid spurious rebuilds on svn up. The check to find out if the header file
changed compared two lines to one, which would result in false positive updates.
author | cehoyos |
---|---|
date | Sat, 04 Apr 2009 19:50:57 +0000 |
parents | eb42079ed5f7 |
children | 0ad2da052b2e |
line wrap: on
line source
#!/bin/sh # Create the messages header file from the master source file or a translation. # Missing messages are filled in from the master message file and, if # requested, character set conversion is performed. if test -z $2 ; then echo "Error: missing parameters" echo "Usage: $0 <messages file> <character set>" exit 1 fi MASTER=help/help_mp-en.h TARGET=help_mp.h TRANSLATION=$1 CHARSET=$2 missing_messages(){ curr="" while read -r line; do if echo "$line" | grep -q '^#define' ; then curr=`printf "%s\n" "$line" | cut -d ' ' -f 2` if grep -q "^#define $curr[ ]" "$TRANSLATION" ; then curr="" fi else if [ -z "$line" ]; then curr="" fi fi if [ -n "$curr" ]; then printf "%s\n" "$line" fi done } cat <<EOF > "$TARGET" /* WARNING! This is a generated file, do NOT edit. * See the help/ subdirectory for the editable files. */ #ifndef MPLAYER_HELP_MP_H #define MPLAYER_HELP_MP_H EOF cat "$TRANSLATION" >> "$TARGET" cat <<EOF >> "$TARGET" /* untranslated messages from the English master file */ EOF if test "$MASTER" != "$TRANSLATION" ; then missing_messages < "$MASTER" >> "$TARGET" fi cat <<EOF >> "$TARGET" #endif /* MPLAYER_HELP_MP_H */ EOF if test $CHARSET != UTF-8 ; then iconv -f UTF-8 -t "$CHARSET" "$TARGET" > "${TARGET}.tmp" mv "${TARGET}.tmp" "$TARGET" fi