Annotation of embedaddon/php/ext/ereg/regex/mkh, revision 1.1

1.1     ! misho       1: #! /bin/sh
        !             2: # mkh - pull headers out of C source
        !             3: PATH=/bin:/usr/bin ; export PATH
        !             4: 
        !             5: # egrep pattern to pick out marked lines
        !             6: egrep='^ =([   ]|$)'
        !             7: 
        !             8: # Sed program to process marked lines into lines for the header file.
        !             9: # The markers have already been removed.  Two things are done here:  removal
        !            10: # of backslashed newlines, and some fudging of comments.  The first is done
        !            11: # because -o needs to have prototypes on one line to strip them down.
        !            12: # Getting comments into the output is tricky; we turn C++-style // comments
        !            13: # into /* */ comments, after altering any existing */'s to avoid trouble.
        !            14: peel=' /\\$/N
        !            15:        /\\\n[  ]*/s///g
        !            16:        /\/\//s;\*/;* /;g
        !            17:        /\/\//s;//\(.*\);/*\1 */;'
        !            18: 
        !            19: for a
        !            20: do
        !            21:        case "$a" in
        !            22:        -o)     # old (pre-function-prototype) compiler
        !            23:                # add code to comment out argument lists
        !            24:                peel="$peel
        !            25:                        "'/^\([^#\/][^\/]*[a-zA-Z0-9_)]\)(\(.*\))/s;;\1(/*\2*/);'
        !            26:                shift
        !            27:                ;;
        !            28:        -b)     # funny Berkeley __P macro
        !            29:                peel="$peel
        !            30:                        "'/^\([^#\/][^\/]*[a-zA-Z0-9_)]\)(\(.*\))/s;;\1 __P((\2));'
        !            31:                shift
        !            32:                ;;
        !            33:        -s)     # compiler doesn't like `static foo();'
        !            34:                # add code to get rid of the `static'
        !            35:                peel="$peel
        !            36:                        "'/^static[     ][^\/]*[a-zA-Z0-9_)](.*)/s;static.;;'
        !            37:                shift
        !            38:                ;;
        !            39:        -p)     # private declarations
        !            40:                egrep='^ ==([   ]|$)'
        !            41:                shift
        !            42:                ;;
        !            43:        -i)     # wrap in #ifndef, argument is name
        !            44:                ifndef="$2"
        !            45:                shift ; shift
        !            46:                ;;
        !            47:        *)      break
        !            48:                ;;
        !            49:        esac
        !            50: done
        !            51: 
        !            52: if test " $ifndef" != " "
        !            53: then
        !            54:        echo "#ifndef $ifndef"
        !            55:        echo "#define   $ifndef /* never again */"
        !            56: fi
        !            57: echo "/* ========= begin header generated by $0 ========= */"
        !            58: echo '#ifdef __cplusplus'
        !            59: echo 'extern "C" {'
        !            60: echo '#endif'
        !            61: for f
        !            62: do
        !            63:        echo
        !            64:        echo "/* === $f === */"
        !            65:        egrep "$egrep" $f | sed 's/^ ==*[       ]//;s/^ ==*$//' | sed "$peel"
        !            66:        echo
        !            67: done
        !            68: echo '#ifdef __cplusplus'
        !            69: echo '}'
        !            70: echo '#endif'
        !            71: echo "/* ========= end header generated by $0 ========= */"
        !            72: if test " $ifndef" != " "
        !            73: then
        !            74:        echo "#endif"
        !            75: fi
        !            76: exit 0

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>