Add code to not indent enum, per Tom Lane.
authorBruce Momjian
Fri, 26 Oct 2001 16:21:13 +0000 (16:21 +0000)
committerBruce Momjian
Fri, 26 Oct 2001 16:21:13 +0000 (16:21 +0000)
src/tools/pgindent/pgindent

index b2710790096defe43c6fc1fd97116966fe5aa2ca..15f30e6a30f844dca997d6755ec95fb1391e4343 100755 (executable)
@@ -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;
        }' |