win32/compat/regen_errno_defs.sh
ccbb5182
 #!/bin/bash
 
 IFS='
 '
 GIT_DIR=$(git rev-parse --git-dir)
 if [ -z "$GIT_DIR" ]; then
 	echo "run me from a git path"
 	exit 1
 fi
 
 BASEDIR="$GIT_DIR/.."
 pushd "$BASEDIR" > /dev/null
 
 GIT_DIR=$(git rev-parse --git-dir)
 BASEDIR="$GIT_DIR/.."
 
 DATE=`date`
 OUTFILE="$BASEDIR/win32/compat/w32_errno_defs.c"
 INFILE="$BASEDIR/win32/compat/referrno.txt"
 
 if [ ! -f "$INFILE" ]; then
 	echo "reference file missing"
 	exit 1
 fi
 
 
 cat > "$OUTFILE" <<EOH
 /* Automatically generated on $DATE */
 
 #include <errno.h>
 
 static const struct errno_struct {
 	int err;
 	const char *strerr;
 } w32_errnos[] = {
 EOH
 
 maxerr=0
 
 for pippo in `cat "$INFILE"`; do
 	symbol=`echo $pippo | cut -d'|' -f1`
 	value=`echo $pippo | cut -d'|' -f2`
 	value=$((value+1000))
 	[ $value -gt $maxerr ] && maxerr=$value
 	descr=`echo $pippo | cut -d'|' -f3`
3b074c78
 	git grep $symbol | egrep -v '(referrno|w32_errno_defs)' > /dev/null
ccbb5182
 	used=$?
 	[ $used -ne 0 ] && echo "#ifdef __ERRNO_INCLUDE_UNUSED" >> "$OUTFILE"
 	echo -e "#ifndef $symbol\n#define $symbol $value\n#endif\n{ $symbol, \"$descr\" }," >> "$OUTFILE"
 	[ $used -ne 0 ] && echo "#endif /* __ERRNO_INCLUDE_UNUSED */" >> "$OUTFILE"
 done
 maxerr=$((maxerr+1))
 echo -e "#ifndef EBOGUSWSOCK\n#define EBOGUSWSOCK $maxerr\n#endif\n{ EBOGUSWSOCK, \"WinSock error\"}\n};" >> "$OUTFILE"
 
 popd >/dev/null