Mon Mar 12 22:02:07 2012 UTC ()
Use 'sort -n -k 3' instead of 'sort -n +2' since the former is more
portable.  The latter is not supported by Mac OS X Lion.


(dyoung)
diff -r1.5 -r1.6 src/usr.bin/ktruss/makeerrnos.sh

cvs diff -r1.5 -r1.6 src/usr.bin/ktruss/makeerrnos.sh (expand / switch to unified diff)

--- src/usr.bin/ktruss/makeerrnos.sh 2008/10/19 22:10:05 1.5
+++ src/usr.bin/ktruss/makeerrnos.sh 2012/03/12 22:02:07 1.6
@@ -1,16 +1,16 @@ @@ -1,16 +1,16 @@
1#! /bin/sh 1#! /bin/sh
2# 2#
3# $NetBSD: makeerrnos.sh,v 1.5 2008/10/19 22:10:05 apb Exp $ 3# $NetBSD: makeerrnos.sh,v 1.6 2012/03/12 22:02:07 dyoung Exp $
4 4
5if [ $# -ne 3 ]; then 5if [ $# -ne 3 ]; then
6 echo "usage: makeerrnos.sh errno.h signal.h output" 6 echo "usage: makeerrnos.sh errno.h signal.h output"
7 exit 1; 7 exit 1;
8fi 8fi
9 9
10ERRNOH=$1 10ERRNOH=$1
11SIGNALH=$2 11SIGNALH=$2
12CFILE=$3.c 12CFILE=$3.c
13HFILE=$3.h 13HFILE=$3.h
14 14
15: ${AWK:=awk} 15: ${AWK:=awk}
16: ${CPP:=cpp} 16: ${CPP:=cpp}
@@ -25,51 +25,51 @@ cat ${ERRNOH} | ${CPP} ${CPPFLAGS} -dM | @@ -25,51 +25,51 @@ cat ${ERRNOH} | ${CPP} ${CPPFLAGS} -dM |
25${AWK} ' 25${AWK} '
26/^#[ ]*define[ ]*E[A-Z0-9]*[ ]*[0-9-][0-9]*[ ]*.*/ { 26/^#[ ]*define[ ]*E[A-Z0-9]*[ ]*[0-9-][0-9]*[ ]*.*/ {
27 for (i = 1; i <= NF; i++) 27 for (i = 1; i <= NF; i++)
28 if ($i ~ /define/)  28 if ($i ~ /define/)
29 break; 29 break;
30 i++; 30 i++;
31 j = i + 1; 31 j = i + 1;
32 # 32 #
33 printf("\t{ \"%s\", %s },\n", $i, $j); 33 printf("\t{ \"%s\", %s },\n", $i, $j);
34} 34}
35END { 35END {
36 print " { \"0\", 0 },\n"; 36 print " { \"0\", 0 },\n";
37} 37}
38' | sort -n +2 >> $CFILE 38' | sort -n -k 3 >> $CFILE
39echo " { 0L, 0}, 39echo " { 0L, 0},
40};" >> $CFILE 40};" >> $CFILE
41lines=`wc -l $CFILE | ${AWK} ' { print $1; } ' -` 41lines=`wc -l $CFILE | ${AWK} ' { print $1; } ' -`
42lines=`expr $lines - 4` 42lines=`expr $lines - 4`
43 43
44cat <<__EOF__ >> $CFILE 44cat <<__EOF__ >> $CFILE
45 45
46struct systab signals[] = { 46struct systab signals[] = {
47__EOF__ 47__EOF__
48cat ${SIGNALH} | ${CPP} ${CPPFLAGS} -dM | 48cat ${SIGNALH} | ${CPP} ${CPPFLAGS} -dM |
49${AWK} ' 49${AWK} '
50/^#[ ]*define[ ]*S[A-Z0-9]*[ ]*[0-9-][0-9]*[ ]*.*/ { 50/^#[ ]*define[ ]*S[A-Z0-9]*[ ]*[0-9-][0-9]*[ ]*.*/ {
51 for (i = 1; i <= NF; i++) 51 for (i = 1; i <= NF; i++)
52 if ($i ~ /define/)  52 if ($i ~ /define/)
53 break; 53 break;
54 i++; 54 i++;
55 j = i + 1; 55 j = i + 1;
56 # 56 #
57 printf("\t{ \"%s\", %s },\n", $i, $j); 57 printf("\t{ \"%s\", %s },\n", $i, $j);
58} 58}
59END { 59END {
60 print " { \"0\", 0 },\n"; 60 print " { \"0\", 0 },\n";
61} 61}
62' | sort -n +2 >> $CFILE 62' | sort -n -k 3 >> $CFILE
63echo " { 0L, 0}, 63echo " { 0L, 0},
64};" >> $CFILE 64};" >> $CFILE
65elines=`grep '{ "SIG' $CFILE | wc -l` 65elines=`grep '{ "SIG' $CFILE | wc -l`
66elines=`expr $elines + 1` 66elines=`expr $elines + 1`
67 67
68cat <<__EOF__ >$HFILE 68cat <<__EOF__ >$HFILE
69struct systab { 69struct systab {
70 const char *name; 70 const char *name;
71 int value; 71 int value;
72}; 72};
73 73
74extern struct systab errnos[$lines + 1]; 74extern struct systab errnos[$lines + 1];
75extern struct systab signals[$elines + 1]; 75extern struct systab signals[$elines + 1];