1#!/bin/bash 2 3IFS=' 4' 5GIT_DIR=$(git rev-parse --git-dir) 6if [ -z "$GIT_DIR" ]; then 7 echo "run me from a git path" 8 exit 1 9fi 10 11BASEDIR="$GIT_DIR/.." 12pushd "$BASEDIR" > /dev/null 13 14GIT_DIR=$(git rev-parse --git-dir) 15BASEDIR="$GIT_DIR/.." 16 17DATE=`date` 18OUTFILE="$BASEDIR/win32/compat/w32_errno_defs.c" 19INFILE="$BASEDIR/win32/compat/referrno.txt" 20 21if [ ! -f "$INFILE" ]; then 22 echo "reference file missing" 23 exit 1 24fi 25 26 27cat > "$OUTFILE" <<EOH 28/* Automatically generated on $DATE */ 29 30#include <errno.h> 31 32static const struct errno_struct { 33 int err; 34 const char *strerr; 35} w32_errnos[] = { 36EOH 37 38maxerr=0 39 40for pippo in `cat "$INFILE"`; do 41 symbol=`echo $pippo | cut -d'|' -f1` 42 value=`echo $pippo | cut -d'|' -f2` 43 value=$((value+1000)) 44 [ $value -gt $maxerr ] && maxerr=$value 45 descr=`echo $pippo | cut -d'|' -f3` 46 git grep $symbol | egrep -v '(referrno|w32_errno_defs)' > /dev/null 47 used=$? 48 [ $used -ne 0 ] && echo "#ifdef __ERRNO_INCLUDE_UNUSED" >> "$OUTFILE" 49 echo -e "#ifndef $symbol\n#define $symbol $value\n#endif\n{ $symbol, \"$descr\" }," >> "$OUTFILE" 50 [ $used -ne 0 ] && echo "#endif /* __ERRNO_INCLUDE_UNUSED */" >> "$OUTFILE" 51done 52maxerr=$((maxerr+1)) 53echo -e "#ifndef EBOGUSWSOCK\n#define EBOGUSWSOCK $maxerr\n#endif\n{ EBOGUSWSOCK, \"WinSock error\"}\n};" >> "$OUTFILE" 54 55popd >/dev/null 56 57 58