From bb10f21601d0ae76642c31196efae4514e85ce03 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Mon, 9 Oct 2017 12:02:41 +1300 Subject: [PATCH] Fix glgen to be more POSIX corformant --- glgen.sh | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/glgen.sh b/glgen.sh index d9de6f9f..75d93c3b 100755 --- a/glgen.sh +++ b/glgen.sh @@ -30,28 +30,36 @@ CHECK_FMT='if (!%s) { }' while read -r COMMAND; do - [ ${COMMAND::1} = "-" ] - OPTIONAL=$? + OPTIONAL=0 + FUNC_PTR_FMT='PFN%sPROC' - COMMAND=${COMMAND#-} - if [ ${COMMAND: -2} = "WL" ]; then + case $COMMAND in + -*) + OPTIONAL=1 + ;; + esac + + case $COMMAND in + *WL) FUNC_PTR_FMT='PFN%s' - else - FUNC_PTR_FMT='PFN%sPROC' - fi + ;; + esac + COMMAND=${COMMAND#-} FUNC_PTR=$(printf "$FUNC_PTR_FMT" "$COMMAND" | tr [:lower:] [:upper:]) DECL="$DECL$(printf "\n$DECL_FMT" "$FUNC_PTR" "$COMMAND")" DEFN="$DEFN$(printf "\n$DEFN_FMT" "$FUNC_PTR" "$COMMAND")" LOADER="$LOADER$(printf "\n$LOADER_FMT" "$COMMAND" "$FUNC_PTR" "$COMMAND")" - if [ $OPTIONAL -ne 0 ]; then + if [ $OPTIONAL -eq 0 ]; then LOADER="$LOADER$(printf "\n$CHECK_FMT" "$COMMAND" "$COMMAND")" fi done < $SPEC -if [ ${OUT: -2} = '.h' ]; then + +case $OUT in +*.h) cat > $OUT << EOF #ifndef $INCLUDE_GUARD #define $INCLUDE_GUARD @@ -69,7 +77,8 @@ if [ ${OUT: -2} = '.h' ]; then #endif EOF -elif [ ${OUT: -2} = '.c' ]; then + ;; +*.c) cat > $OUT << EOF #include #include "$BASE.h" @@ -86,6 +95,8 @@ elif [ ${OUT: -2} = '.c' ]; then return true; } EOF -else + ;; +*) exit 1 -fi + ;; +esac