Mercurial > mplayer.hg
view help/help_check.sh @ 36730:8bc4d669c5d7
Enable option font_encoding without freetype.
subtitle_font_encoding is now also used when freetype is disabled.
This is corresponding to r36825, although the GUI doesn't support
changing the option through the preferences in this case (but it's
in gui.conf at least).
author | ib |
---|---|
date | Thu, 13 Feb 2014 10:41:33 +0000 |
parents | e9044aed2250 |
children |
line wrap: on
line source
#!/bin/sh # Check help message header files for conversion specifications and # valid string constant definitions. CHECK=checkhelp SYMCONST_REGEX="[A-Za-z0-9_]\\+" CONVSPEC_REGEX="%[^diouxXeEfFgGaAcspn%]*[diouxXeEfFgGaAcspn%][0-9]*" # the [0-9]* is for inttypes' printf specifier macros and hopefully won't hurt otherwise trap "rm -f ${CHECK}.c ${CHECK}.o" EXIT CC=$1 shift # gather definitions containing conversion specifications from master file while read line; do DEFINE=$(echo "$line" | sed -n "s:^[ \t]*#define[ \t]\+\($SYMCONST_REGEX\)[ \t]\+\(.*\):\1=\2:; s:'::g; s:=:=':p") case "$DEFINE" in *%*) eval "$DEFINE'";; esac done < help/help_mp-en.h # create statements from definitions in the translated header file for a test # compilation and compare conversion specifications from the translated header # file with those of the master file (if any specification in any of the two # files) for h in "$@"; do cat <<EOF > ${CHECK}.c #include <inttypes.h> #include <string.h> #ifndef CONFIG_VCD #define CONFIG_VCD #endif #ifndef CONFIG_DVDREAD #define CONFIG_DVDREAD #endif #include "$h" void $CHECK () { strdup(help_text); EOF while read line; do DEFINE=$(echo "$line" | sed -n "s:^[ \t]*#define[ \t]\+\($SYMCONST_REGEX\)[ \t]\+\(.*\):NAME=\1;STRING=\2:; s:'::g; s:STRING=:STRING=':p") if [ "$DEFINE" ]; then eval "$DEFINE'" echo "strdup($NAME);" >> ${CHECK}.c ANY_CONVSPEC="$(eval "echo \$${NAME} \${STRING}")" else ANY_CONVSPEC="" fi case "$ANY_CONVSPEC" in *%*) ;; *) continue;; esac CONVSPECS=$(echo $STRING | sed -n "s:[^%]*\($CONVSPEC_REGEX\)[^%]*: \1:gp") MCONVSPECS=$(eval echo \$${NAME} | sed -n "s:[^%]*\($CONVSPEC_REGEX\)[^%]*: \1:gp") if [ "$CONVSPECS" != "$MCONVSPECS" ]; then echo "$h: $NAME conversion specification mismatch:${MCONVSPECS:- (none)} has been translated${CONVSPECS:- (none)}" exit 2 fi done < "$h" echo "}" >> ${CHECK}.c $CC -Werror -c -o ${CHECK}.o ${CHECK}.c || exit done