From 8c1f4e574b8b3f3d627f78c73dc47e4d1fa222ca Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 26 Oct 2001 16:21:13 +0000 Subject: [PATCH] Add code to not indent enum, per Tom Lane. --- src/tools/pgindent/pgindent | 338 +++++++++++++++++++----------------- 1 file changed, 176 insertions(+), 162 deletions(-) diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent index b271079009..15f30e6a30 100755 --- a/src/tools/pgindent/pgindent +++ b/src/tools/pgindent/pgindent @@ -34,10 +34,24 @@ do \2;g' | detab -t4 -qc | # work around bug where function that defines no local variables misindents -# switch() case lines and line after #else - sed 's,^{$,{\ -int pgindent_func_no_var_fix;\ -,g' | +# switch() case lines and line after #else. Do not do with for struct/enum. + awk ' BEGIN {line1 = ""; line2 = ""} + { + line2 = $0; + if (NR >= 2 && + line2 ~ "^{[ ]*$" && + line1 !~ "^struct" && + line1 !~ "^enum" && + line1 !~ "^typedef") + printf "int pgindent_func_no_var_fix;"; + if (NR >= 2) + print line1; + line1 = line2; + } + END { + if (NR >= 1) + print line1; + }' | # protect backslashes in DATA() sed 's;^DATA(.*$;/*&*/;' | # protect wrapping in CATALOG() @@ -1277,153 +1291,153 @@ int pgindent_func_no_var_fix;\ -Tyy_state_type \ -Tz_stream \ -Tz_streamp \ --T BOOKMARK \ --T BOOL \ --T BYTE \ --T BindInfoClass \ --T COL_INFO \ --T CONN_Status \ --T ColumnInfoClass \ --T ConnInfo \ --T ConnectionClass \ --T DATE_STRUCT \ --T DWORD \ --T DataSourceToDriverProc \ --T DriverToDataSourceProc \ --T EnvironmentClass \ --T FIELD_INFO \ --T FILE \ --T GLOBAL_VALUES \ --T HDBC \ --T HENV \ --T HSTMT \ --T HWND \ --T LO_ARG \ --T LPARAM \ --T Oid \ --T PTR \ --T ParameterInfoClass \ --T ProtocolVersion \ --T QResultClass \ --T QueryInfo \ --T QueryResultCode \ --T RETCODE \ --T SDOUBLE \ --T SDWORD \ --T SFLOAT \ --T SIMPLE_TIME \ --T SQLBIGINT \ --T SQLCHAR \ --T SQLDOUBLE \ --T SQLFLOAT \ --T SQLGUID \ --T SQLINTEGER \ --T SQLINTERVAL \ --T SQLREAL \ --T SQLSCHAR \ --T SQLSMALLINT \ --T SQLUBIGINT \ --T SQLUINTEGER \ --T SQLUSMALLINT \ --T SQL_DATE_STRUCT \ --T SQL_DAY_SECOND_STRUCT \ --T SQL_INTERVAL_STRUCT \ --T SQL_TIMESTAMP_STRUCT \ --T SQL_TIME_STRUCT \ --T SQL_YEAR_MONTH_STRUCT \ --T SSHOR \ --T STMT_Status \ --T SWORD \ --T SocketClass \ --T StartupPacket \ --T StartupPacket6_2 \ --T StatementClass \ --T StatementOptions \ --T TABLE_INFO \ --T TIMESTAMP_STRUCT \ --T TIME_STRUCT \ --T TupleField \ --T TupleListClass \ --T TupleNode \ --T UCHAR \ --T UDWORD \ --T UWORD \ --T WORD \ --T WPARAM \ --T _LIB_VERSION_TYPE \ --T _RuneEntry \ --T _RuneLocale \ --T _RuneRange \ --T caddr_t \ --T char \ --T clock_t \ --T clockid_t \ --T daddr_t \ --T dev_t \ --T div_t \ --T double \ --T fd_mask \ --T fd_set \ --T fixpt_t \ --T float \ --T fpos_t \ --T gid_t \ --T in_addr_t \ --T in_port_t \ --T ino_t \ --T int \ --T int16_t \ --T int16m_t \ --T int32_t \ --T int32m_t \ --T int64_t \ --T int64m_t \ --T int8_t \ --T int8m_t \ --T key_t \ --T ldiv_t \ --T mode_t \ --T nlink_t \ --T off_t \ --T pid_t \ --T q128_t \ --T qaddr_t \ --T quad_t \ --T register_t \ --T rune_t \ --T sa_family_t \ --T segsz_t \ --T sig_atomic_t \ --T sig_t \ --T sigset_t \ --T size_t \ --T slock_t \ --T socklen_t \ --T ssize_t \ --T stack_t \ --T swblk_t \ --T time_t \ --T u_char \ --T u_int \ --T u_int16_t \ --T u_int16m_t \ --T u_int32_t \ --T u_int32m_t \ --T u_int64_t \ --T u_int64m_t \ --T u_int8_t \ --T u_int8m_t \ --T u_long \ --T u_quad_t \ --T u_short \ --T uid_t \ --T uint \ --T ushort \ --T va_list \ --T vm_offset_t \ --T vm_size_t \ --T void \ --T wchar_t \ +-TBOOKMARK \ +-TBOOL \ +-TBYTE \ +-TBindInfoClass \ +-TCOL_INFO \ +-TCONN_Status \ +-TColumnInfoClass \ +-TConnInfo \ +-TConnectionClass \ +-TDATE_STRUCT \ +-TDWORD \ +-TDataSourceToDriverProc \ +-TDriverToDataSourceProc \ +-TEnvironmentClass \ +-TFIELD_INFO \ +-TFILE \ +-TGLOBAL_VALUES \ +-THDBC \ +-THENV \ +-THSTMT \ +-THWND \ +-TLO_ARG \ +-TLPARAM \ +-TOid \ +-TPTR \ +-TParameterInfoClass \ +-TProtocolVersion \ +-TQResultClass \ +-TQueryInfo \ +-TQueryResultCode \ +-TRETCODE \ +-TSDOUBLE \ +-TSDWORD \ +-TSFLOAT \ +-TSIMPLE_TIME \ +-TSQLBIGINT \ +-TSQLCHAR \ +-TSQLDOUBLE \ +-TSQLFLOAT \ +-TSQLGUID \ +-TSQLINTEGER \ +-TSQLINTERVAL \ +-TSQLREAL \ +-TSQLSCHAR \ +-TSQLSMALLINT \ +-TSQLUBIGINT \ +-TSQLUINTEGER \ +-TSQLUSMALLINT \ +-TSQL_DATE_STRUCT \ +-TSQL_DAY_SECOND_STRUCT \ +-TSQL_INTERVAL_STRUCT \ +-TSQL_TIMESTAMP_STRUCT \ +-TSQL_TIME_STRUCT \ +-TSQL_YEAR_MONTH_STRUCT \ +-TSSHOR \ +-TSTMT_Status \ +-TSWORD \ +-TSocketClass \ +-TStartupPacket \ +-TStartupPacket6_2 \ +-TStatementClass \ +-TStatementOptions \ +-TTABLE_INFO \ +-TTIMESTAMP_STRUCT \ +-TTIME_STRUCT \ +-TTupleField \ +-TTupleListClass \ +-TTupleNode \ +-TUCHAR \ +-TUDWORD \ +-TUWORD \ +-TWORD \ +-TWPARAM \ +-T_LIB_VERSION_TYPE \ +-T_RuneEntry \ +-T_RuneLocale \ +-T_RuneRange \ +-Tcaddr_t \ +-Tchar \ +-Tclock_t \ +-Tclockid_t \ +-Tdaddr_t \ +-Tdev_t \ +-Tdiv_t \ +-Tdouble \ +-Tfd_mask \ +-Tfd_set \ +-Tfixpt_t \ +-Tfloat \ +-Tfpos_t \ +-Tgid_t \ +-Tin_addr_t \ +-Tin_port_t \ +-Tino_t \ +-Tint \ +-Tint16_t \ +-Tint16m_t \ +-Tint32_t \ +-Tint32m_t \ +-Tint64_t \ +-Tint64m_t \ +-Tint8_t \ +-Tint8m_t \ +-Tkey_t \ +-Tldiv_t \ +-Tmode_t \ +-Tnlink_t \ +-Toff_t \ +-Tpid_t \ +-Tq128_t \ +-Tqaddr_t \ +-Tquad_t \ +-Tregister_t \ +-Trune_t \ +-Tsa_family_t \ +-Tsegsz_t \ +-Tsig_atomic_t \ +-Tsig_t \ +-Tsigset_t \ +-Tsize_t \ +-Tslock_t \ +-Tsocklen_t \ +-Tssize_t \ +-Tstack_t \ +-Tswblk_t \ +-Ttime_t \ +-Tu_char \ +-Tu_int \ +-Tu_int16_t \ +-Tu_int16m_t \ +-Tu_int32_t \ +-Tu_int32m_t \ +-Tu_int64_t \ +-Tu_int64m_t \ +-Tu_int8_t \ +-Tu_int8m_t \ +-Tu_long \ +-Tu_quad_t \ +-Tu_short \ +-Tuid_t \ +-Tuint \ +-Tushort \ +-Tva_list \ +-Tvm_offset_t \ +-Tvm_size_t \ +-Tvoid \ +-Twchar_t \ /tmp/$$a >/tmp/$$ 2>&1 if [ "$?" -ne 0 -o -s /tmp/$$ ] then echo "$FILE" @@ -1439,7 +1453,7 @@ int pgindent_func_no_var_fix;\ # pull in #endif comments sed 's;^#endif[ ][ ]*/\*;#endif /*;' | # add space after comments that start on tab stops - sed 's:\([^ ]\)/\*.*\*/\)$:\1 \2:' | + sed 's:\([^ ]\)\(/\*.*\*/\)$:\1 \2:' | # work around #else indenting next line if #ifdef defines variables at top # work around misindenting of function with no variables defined awk ' @@ -1458,7 +1472,7 @@ int pgindent_func_no_var_fix;\ sed 's;^\([A-Za-z_][^ ]*\)[ ][ ]*\*$;\1 *;' | # remove un-needed braces around single statements awk ' - { + { line3 = $0; if (skips > 0) skips--; @@ -1478,14 +1492,14 @@ int pgindent_func_no_var_fix;\ line2 = line3; } END { - if (skips <= 1) + if (NR > 1 && skips <= 1) print line1; - if (skips <= 2) + if (NR > 2 && skips <= 2) print line2; }' | # remove blank line between opening brace and block comment awk ' - { + { line3 = $0; if (skips > 0) skips--; @@ -1506,14 +1520,14 @@ int pgindent_func_no_var_fix;\ line2 = line3; } END { - if (skips <= 1) + if (NR > 1 && skips <= 1) print line1; - if (skips <= 2) + if (NR > 2 && skips <= 2) print line2; }' | # remove blank line before #endif awk ' BEGIN {line1 = ""; line2 = ""; skips = 0} - { + { line2 = $0; if (skips > 0) skips--; @@ -1530,19 +1544,19 @@ int pgindent_func_no_var_fix;\ line1 = line2; } END { - if (skips <= 1) + if (NR > 1 && skips <= 1) print line1; }' | # add blank line before #endif if it is the last line in the file awk ' BEGIN {line1 = ""; line2 = ""} - { + { line2 = $0; if (NR >= 2) print line1; line1 = line2; } END { - if (line2 ~ "^#endif") + if (NR > 1 && line2 ~ "^#endif") printf "\n"; print line1; }' |