view help/help_create.sh @ 31685:31b6397e3b28

Another try at fixing swscale on win64, as per r31153. Don't change paramater passing, but instead use casts. Shouldn't affect asm output on anything other than win64. libswscale should work on win64 now. The rest of ffmpeg still isn't win64 compatible due to the issue of xmm clobbers, but swscale doesn't use any SSE. Patch by Anton Mitrofanov <BugMaster AT narod DOT ru>.
author darkshikari
date Sun, 18 Jul 2010 21:39:57 +0000
parents 7e7c541566ad
children be4dcfb3620c
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
    elif [ -z "$line" ]; then
        curr=""
    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