]> granicus.if.org Git - postgresql/commitdiff
psql: Fix some strange code in SQL help creation
authorPeter Eisentraut <peter_e@gmx.net>
Sat, 20 Feb 2016 04:07:46 +0000 (23:07 -0500)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 9 Mar 2016 00:41:51 +0000 (19:41 -0500)
Struct QL_HELP used to be defined as static in the sql_help.h header
file, which is included in sql_help.c and help.c, thus creating two
separate instances of the struct.  This causes a warning from GCC 6,
because the struct is not used in sql_help.c.

Instead, declare the struct as extern in the header file and define it
in sql_help.c.  This also allows making a bunch of functions static
because they are no longer needed outside of sql_help.c.

Reviewed-by: Thomas Munro <thomas.munro@enterprisedb.com>
src/bin/psql/create_help.pl

index fedcc47d0d7d90e90fa9253e559029646671b7e0..b9b8e870e02f797e9ce44196e87c0a75d675f9c8 100644 (file)
@@ -59,8 +59,6 @@ print HFILE "/*
 #ifndef $define
 #define $define
 
-#define N_(x) (x)                              /* gettext noop */
-
 #include \"postgres_fe.h\"
 #include \"pqexpbuffer.h\"
 
@@ -72,6 +70,7 @@ struct _helpStruct
        int                             nl_count;       /* number of newlines in syntax (for pager) */
 };
 
+extern const struct _helpStruct QL_HELP[];
 ";
 
 print CFILE "/*
@@ -83,6 +82,8 @@ print CFILE "/*
  *
  */
 
+#define N_(x) (x)                              /* gettext noop */
+
 #include \"$hfile\"
 
 ";
@@ -170,8 +171,7 @@ foreach (sort keys %entries)
        $synopsis =~ s/\\n/\\n"\n$prefix"/g;
        my @args =
          ("buf", $synopsis, map("_(\"$_\")", @{ $entries{$_}{params} }));
-       print HFILE "extern void sql_help_$id(PQExpBuffer buf);\n";
-       print CFILE "void
+       print CFILE "static void
 sql_help_$id(PQExpBuffer buf)
 {
 \tappendPQExpBuffer(" . join(",\n$prefix", @args) . ");
@@ -180,15 +180,14 @@ sql_help_$id(PQExpBuffer buf)
 ";
 }
 
-print HFILE "
-
-static const struct _helpStruct QL_HELP[] = {
+print CFILE "
+const struct _helpStruct QL_HELP[] = {
 ";
 foreach (sort keys %entries)
 {
        my $id = $_;
        $id =~ s/ /_/g;
-       print HFILE "    { \"$_\",
+       print CFILE "    { \"$_\",
       N_(\"$entries{$_}{cmddesc}\"),
       sql_help_$id,
       $entries{$_}{nl_count} },
@@ -196,11 +195,12 @@ foreach (sort keys %entries)
 ";
 }
 
-print HFILE "
+print CFILE "
     { NULL, NULL, NULL }    /* End of list marker */
 };
+";
 
-
+print HFILE "
 #define QL_HELP_COUNT  "
   . scalar(keys %entries) . "          /* number of help items */
 #define QL_MAX_CMD_LEN $maxlen         /* largest strlen(cmd) */