# HG changeset patch # User arpi # Date 1040664499 0 # Node ID 6973e76d95b28261cbcffeb94919339be4ea1464 # Parent e9304bd973f8da18e3c218ae7308cc2b43851817 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 gotar> diff -r e9304bd973f8 -r 6973e76d95b2 help/help_diff.sh --- a/help/help_diff.sh Mon Dec 23 16:04:52 2002 +0000 +++ b/help/help_diff.sh Mon Dec 23 17:28:19 2002 +0000 @@ -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 +curr="" -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 +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 test $curr != "x" ; then - echo "$line" -fi - + if [ -n "$curr" ]; then + echo -E "$line" + fi done +