Re: pgindent run coming
От | Andrew Dunstan |
---|---|
Тема | Re: pgindent run coming |
Дата | |
Msg-id | 4A2F32A7.2000600@dunslane.net обсуждение исходный текст |
Ответ на | Re: pgindent run coming (Bruce Momjian <bruce@momjian.us>) |
Ответы |
Re: pgindent run coming
|
Список | pgsql-hackers |
Bruce Momjian wrote: > OK, Andrew, would you use the find_typedef file that is in CVS HEAD and > run that. I think that will fix our problem and then I can use the > buildfarm version. How often does that run and does it pull the script > from CVS HEAD? > > The buildfarm does not run the find-typedefs script. Its code for this is below. My Unix machine runs this once a day. I can do runs on Windows and Cygwin manually. If there is changed logic tell me what it is and I'll try to get it done. cheers andrew ----------------- sub find_typedefs { my @err = `objdump -W 2>&1`; @err = () if `uname -s 2>&1` =~ /CYGWIN/i; my %syms; my @dumpout; my @flds; foreach my $bin (glob("$installdir/bin/*"), glob("$installdir/lib/*"), glob("$installdir/lib/postgresql/*")) { next if $bin =~ m!bin/(ipcclean|pltcl_)!; next unless -f $bin; if (@err == 1) # Linux { @dumpout = `objdump -W $bin 2>/dev/null | egrep -A3 '(DW_TAG_typedef|DW_TAG_structure_type|DW_TAG_union_type)' 2>/dev/null`; foreach (@dumpout) { @flds = split; next if (($flds[0] ne 'DW_AT_name' && $flds[1] ne 'DW_AT_name' ) || $flds[-1] =~ /^DW_FORM_str/); $syms{$flds[-1]} =1; } } else { @dumpout = `objdump --stabs $bin 2>/dev/null`; foreach (@dumpout) { @flds = split; next if (@flds < 7); next if ($flds[1] ne 'LSYM' || $flds[6] !~ /([^:]+):[tT]/); $syms{$1} =1; } } } my @badsyms = grep { /\s/ } keys %syms; push(@badsyms,'date','interval','timestamp','ANY'); delete @syms{@badsyms}; my @goodsyms = sort keys %syms; my @foundsyms; my %foundwords; my $setfound = sub { return unless (-f $_ && /^.*\.[chly]\z/); my @lines; my $handle; open ($handle,$_); while (my $line=<$handle>) { foreach my $word (split(/\W+/,$line)) { $foundwords{$word} = 1; } } close($handle); }; File::Find::find($setfound,"$branch_root/pgsql"); foreach my $sym (@goodsyms) { push(@foundsyms,"$sym\n") if exists $foundwords{$sym}; } writelog('typedefs',\@foundsyms); $steps_completed .= " find-typedefs"; }
В списке pgsql-hackers по дате отправления: