# end of line (including preceding white space) things that start with '/*'
# and the next char isn't a '*'; then things that start with '/**', but the
# next char isn't a '/'. (Subsequent lines of the comment are irrelevant
- # and get dropped.)
- ( $echo "#line 2 \"$file\""; \
- $sed -n <$file \
- -e "/^${filebase}_init(/q" \
- -e ': testcont' \
- -e '/^[ ]*#/s|/\*.*\*/||' \
- -e '/\\$/{' \
- -e 'N' \
- -e 'b testcont' \
- -e '}' \
- -e 's/\\\n/ /g' \
- -e '/^#line/d' \
- -e '/^[ ]*#/{' \
- -e 's|[ ]*/\*[^*].*$||' \
- -e 's|[ ]*/\*\*[^/].*$||' \
- -e p \
+ # and get dropped.) At the end, we unjoin very long lines to avoid
+ # preprocessor limitations
+ ( $echo "#line 2 \"$file\""; \
+ $sed -n <$file \
+ -e "/^${filebase}_init(/q" \
+ -e ': testcont' \
+ -e '/^[ ]*#/s|[ ]*/\*..*\*/[ ]*| |' \
+ -e '/\\$/{' \
+ -e 'N' \
+ -e 'b testcont' \
+ -e '}' \
+ -e 's/\\\n//g' \
+ -e '/^#line/d' \
+ -e '/^[ ]*#/{' \
+ -e 's|[ ]*/\*[^*].*$||' \
+ -e 's|[ ]*/\*\*[^/].*$||' \
+ -e 's/.\{255\}/&\\\n/g' \
+ -e p \
-e '}' ) >UU/$file.c
# We're not sure why this was there; the #endif is extraneous on modern z/OS