Update of /cvsroot/mplayer/main/help In directory mail:/var/tmp.root/cvs-serv6721 Modified Files: help_diff.sh Log Message: In this situation it was easier to fix yours. I applied these 3 points (fixed locking echo, removed excessive cut to make script a bit faster and shortened grep) and changed copy mark from "x" to "" in order to use -z and -n tests. patch by GoTaR <priv0.onet.pl->gotar> Index: help_diff.sh =================================================================== RCS file: /cvsroot/mplayer/main/help/help_diff.sh,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- help_diff.sh 9 Jun 2002 14:48:16 -0000 1.4 +++ help_diff.sh 23 Dec 2002 17:28:19 -0000 1.5 @@ -1,4 +1,4 @@ -#! /bin/sh +#!/bin/sh # This script walks through the master (stdin) help/message file, and # prints (stdout) only those messages which are missing from the help @@ -6,24 +6,23 @@ # # Example: help_diff.sh help_mp-hu.h < help_mp-en.h > missing.h -curr="x" - -while read -r line ; do - -if ( echo $line | cut -d ' ' -f 1 | grep '^#define' > /dev/null ); then - curr=`echo $line | cut -d ' ' -f 2` - if ( grep " $curr " $1 > /dev/null ); then - curr="x" - fi -else - if test x"$line" = x; then - curr="x" - fi -fi - -if test $curr != "x" ; then - echo "$line" -fi +curr="" +while read -r line; do + if echo -E "$line" | grep -q '^#define'; then + curr=`echo -E "$line" | cut -d ' ' -f 2` + if grep -q "^#define $curr " $1; then + curr="" + fi + else + if [ -z "$line" ]; then + curr="" + fi + fi + + if [ -n "$curr" ]; then + echo -E "$line" + fi done +