On Fri, Jan 31, 2014 at 12:44:22PM -0500, Tom Lane wrote:
> Andrew Dunstan <[email protected]> writes:
> > While Bruce is working on pgindent, let me register a small wishlist
> > item. It would be quite useful to be able to supply extra typedefs on
> > the command line to supplement a typedefs file downloaded from the
> > buildfarm or constructed however. A concrete example: in the code I have
> > been recently working on, there are typedefs for Jsonb and JsonbValue.
> > If I run pgindent as normal on the new code these items are not treated
> > properly. What I had to do was take a special copy of the typedefs list
> > and add those two items. If we could pass a list of extra typedefs to
> > supplement the typedefs file that would be very useful. Then I could do
> > something like:
>
> > pgindent --typedef Jsonb --typedef JsonbValue
> > src/backend/utils/adt/jsonfuncs.c
>
> > without having to mangle a typedefs file.
>
> Personally, I always just edit the downloaded file to add whatever
> typedefs the patch I'm working on adds. I wouldn't use a command
> line switch even if there was one, because then I'd have to remember
> which typedef names to add each time I run pgindent.
Easily added, so done with the attached, applied patch. You use it
like this:
pgindent --list-of-typedefs 'abc def'
--
Bruce Momjian <[email protected]> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ Everyone has their own god. +
diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent
new file mode 100755
index 8e45b18..2de7a53
*** a/src/tools/pgindent/pgindent
--- b/src/tools/pgindent/pgindent
*************** my $indent_opts =
*** 22,31 ****
# indent-dependant settings
my $extra_opts = "";
! my ($typedefs_file, $code_base, $excludes, $indent, $build);
my %options = (
"typedefs=s" => \$typedefs_file,
"code-base=s" => \$code_base,
"excludes=s" => \$excludes,
"indent=s" => \$indent,
--- 22,32 ----
# indent-dependant settings
my $extra_opts = "";
! my ($typedefs_file, $typedef_str, $code_base, $excludes, $indent, $build);
my %options = (
"typedefs=s" => \$typedefs_file,
+ "list-of-typedefs=s" => \$typedef_str,
"code-base=s" => \$code_base,
"excludes=s" => \$excludes,
"indent=s" => \$indent,
*************** sub load_typedefs
*** 125,130 ****
--- 126,138 ----
|| die "cannot open typedefs file \"$typedefs_file\": $!\n";
my @typedefs = <$typedefs_fh>;
close($typedefs_fh);
+ if (defined($typedef_str))
+ {
+ foreach my $typedef (split(m/[, \t\n]+/, $typedef_str))
+ {
+ push(@typedefs, $typedef . "\n");
+ }
+ }
# remove certain entries
@typedefs =
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers