X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=ncurses%2Fbase%2FMKlib_gen.sh;h=9dc08557c6dff52f75d278cadc47f61805ced0ea;hb=f9994a48d2f74b613a0adb19d3917f724d4d1312;hp=3829eff8eecb0a89007c96b11965c88b2bf6db57;hpb=fbd79f88d0de057053bd9658499f4e87c10ff2f4;p=ncurses.git diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh index 3829eff8..9dc08557 100755 --- a/ncurses/base/MKlib_gen.sh +++ b/ncurses/base/MKlib_gen.sh @@ -2,10 +2,10 @@ # # MKlib_gen.sh -- generate sources from curses.h macro definitions # -# ($Id: MKlib_gen.sh,v 1.68 2020/08/23 00:02:29 tom Exp $) +# ($Id: MKlib_gen.sh,v 1.71 2021/09/26 22:08:53 tom Exp $) # ############################################################################## -# Copyright 2018,2020 Thomas E. Dickey # +# Copyright 2018-2020,2021 Thomas E. Dickey # # Copyright 1998-2016,2017 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # @@ -69,10 +69,19 @@ USE="$3" # A patch discussed here: # https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html +# # introduces spurious #line markers into the preprocessor output. The result # appears in gcc 5.0 and (with modification) in 5.1, making it necessary to # determine if we are using gcc, and if so, what version because the proposed # solution uses a nonstandard option. +# +# As illustrated in +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60723 +# +# gcc developers chose to ignore the problems with this, and summarized those +# as "intriguing problems" in +# https://gcc.gnu.org/gcc-5/porting_to.html + PRG=`echo "$1" | "$AWK" '{ sub(/^[ ]*/,""); sub(/[ ].*$/, ""); print; }' || exit 0` FSF=`("$PRG" --version 2>/dev/null || exit 0) | fgrep "Free Software Foundation" | head -n 1` ALL=`"$PRG" -dumpversion 2>/dev/null || exit 0` @@ -461,8 +470,9 @@ END { if ( value !~ /P_POUNDC/ ) { gsub(/[ \t]+/," ",value); sub(/^[0-9a-zA-Z_]+ /,"",value); - sub(/^\* /,"",value); - gsub(/[0-9a-zA-Z_]+ \* /,"",value); + sub(/^[*][ \t]*/,"",value); + gsub("struct[ \t]*[0-9a-zA-Z_]+[ \t]*[*]","",value); + gsub(/[0-9a-zA-Z_]+[ \t]*[*][ \t]*/,"",value); gsub(/ (const) /," ",value); gsub(/ (int|short|attr_t|chtype|wchar_t|NCURSES_BOOL|NCURSES_OUTC|NCURSES_OUTC_sp|va_list) /," ",value); gsub(/ void /,"",value);