Use ' ' escapes for leading spaces in table values, for use in
authorBruce Momjian <bruce@momjian.us>
Tue, 14 Jun 2005 22:15:57 +0000 (22:15 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 14 Jun 2005 22:15:57 +0000 (22:15 +0000)
EXPLAIN output.

Jean-Paul Argudo

src/bin/psql/print.c

index d1ef95f50a635d4c1a3f523bd1e0ad7e089fd4df..9f605b088ed1b57725232c227ff7216fc54d9891 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2005, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.59 2005/06/14 02:57:41 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.60 2005/06/14 22:15:57 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "common.h"
@@ -595,8 +595,10 @@ void
 html_escaped_print(const char *in, FILE *fout)
 {
    const char *p;
-
+   bool    leading_space = true;
+   
    for (p = in; *p; p++)
+   {
        switch (*p)
        {
            case '&':
@@ -617,9 +619,19 @@ html_escaped_print(const char *in, FILE *fout)
            case '\'':
                fputs("&apos;", fout);
                break;
+           case ' ':
+               /* protect leading space, for EXPLAIN output */
+               if (leading_space)
+                   fputs("&nbsp;", fout);
+               else
+                   fputs(" ", fout);
+               break;
            default:
                fputc(*p, fout);
        }
+       if (*p != ' ')
+           leading_space = false;
+   }
 }