]> granicus.if.org Git - postgresql/commitdiff
Teach psql's \lo slash commands to respect quiet mode, and to output
authorNeil Conway <neilc@samurai.com>
Sat, 20 Jan 2007 16:57:31 +0000 (16:57 +0000)
committerNeil Conway <neilc@samurai.com>
Sat, 20 Jan 2007 16:57:31 +0000 (16:57 +0000)
HTML in HTML mode. Patch from Jeremy Drake.

doc/src/sgml/ref/psql-ref.sgml
src/bin/psql/large_obj.c

index cd92a21729461b17dc76628b3b023d5a687b8870..3a6af2b537f8412d9327e59e6f5f92135129df0a 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.179 2006/12/19 01:53:36 adunstan Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.180 2007/01/20 16:57:31 neilc Exp $
 PostgreSQL documentation
 -->
 
@@ -1329,11 +1329,12 @@ Tue Oct 26 21:40:57 CEST 1999
 foo=&gt; <userinput>\lo_import '/home/peter/pictures/photo.xcf' 'a picture of me'</userinput>
 lo_import 152801
 </programlisting>
-        The response indicates that the large object received object ID
-        152801 which one ought to remember if one wants to access the
-        object ever again. For that reason it is recommended to always
-        associate a human-readable comment with every object. Those can
-        then be seen with the <command>\lo_list</command> command.
+        The response indicates that the large object received object
+        ID 152801, which can be used to access the newly-created large
+        object in the future. For the sake of readability, it is
+        recommended to always associate a human-readable comment with
+        every object. Both OIDs and comments can be viewed with the
+        <command>\lo_list</command> command.
         </para>
 
         <para>
index a55b3af4b115421fe554cceba28b9979029b8f01..87918a8850f5776004094b93c9bb19702dd1de73 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/large_obj.c,v 1.47 2007/01/05 22:19:49 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/large_obj.c,v 1.48 2007/01/20 16:57:31 neilc Exp $
  */
 #include "postgres_fe.h"
 #include "large_obj.h"
 #include "settings.h"
 #include "common.h"
 
+static void
+print_lo_result(const char *fmt,...)
+__attribute__((format(printf, 1, 2)));
+
+static void
+print_lo_result(const char *fmt,...)
+{
+       va_list         ap;
+
+       if (!pset.quiet)
+       {
+               if (pset.popt.topt.format == PRINT_HTML)
+                       fputs("<p>", pset.queryFout);
+
+               va_start(ap, fmt);
+               vfprintf(pset.queryFout, fmt, ap);
+               va_end(ap);
+
+               if (pset.popt.topt.format == PRINT_HTML)
+                       fputs("</p>\n", pset.queryFout);
+               else
+                       fputs("\n", pset.queryFout);
+       }
+
+       if (pset.logfile)
+       {
+               va_start(ap, fmt);
+               vfprintf(pset.logfile, fmt, ap);
+               va_end(ap);
+               fputs("\n", pset.logfile);
+       }
+}
+
 
 /*
  * Prepare to do a large-object operation.     We *must* be inside a transaction
@@ -129,7 +162,7 @@ do_lo_export(const char *loid_arg, const char *filename_arg)
        if (!finish_lo_xact("\\lo_export", own_transaction))
                return false;
 
-       fprintf(pset.queryFout, "lo_export\n");
+       print_lo_result("lo_export");
 
        return true;
 }
@@ -189,7 +222,8 @@ do_lo_import(const char *filename_arg, const char *comment_arg)
        if (!finish_lo_xact("\\lo_import", own_transaction))
                return false;
 
-       fprintf(pset.queryFout, "lo_import %u\n", loid);
+       print_lo_result("lo_import %u", loid);
+
        sprintf(oidbuf, "%u", loid);
        SetVariable(pset.vars, "LASTOID", oidbuf);
 
@@ -225,7 +259,7 @@ do_lo_unlink(const char *loid_arg)
        if (!finish_lo_xact("\\lo_unlink", own_transaction))
                return false;
 
-       fprintf(pset.queryFout, "lo_unlink %u\n", loid);
+       print_lo_result("lo_unlink %u", loid);
 
        return true;
 }