Fix quotes in /* */ comments in psql.

This commit is contained in:
Bruce Momjian 2000-06-29 16:27:57 +00:00
parent 43ba1b4420
commit c9ec78a6b8

View File

@ -3,7 +3,7 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.30 2000/05/12 16:13:44 petere Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.31 2000/06/29 16:27:57 momjian Exp $
*/ */
#include "postgres.h" #include "postgres.h"
#include "mainloop.h" #include "mainloop.h"
@ -18,9 +18,7 @@
#ifndef WIN32 #ifndef WIN32
#include <setjmp.h> #include <setjmp.h>
sigjmp_buf main_loop_jmp; sigjmp_buf main_loop_jmp;
#endif #endif
@ -298,18 +296,13 @@ MainLoop(FILE *source)
bslash_count = 0; bslash_count = 0;
rescan: rescan:
/* in quote? */ /* start of extended comment? */
if (in_quote) if (line[i] == '/' && line[i + thislen] == '*')
{ {
/* end of quote */ xcomment = true;
if (line[i] == in_quote && bslash_count % 2 == 0) ADVANCE_1;
in_quote = '\0';
} }
/* start of quote */
else if (!was_bslash && (line[i] == '\'' || line[i] == '"'))
in_quote = line[i];
/* in extended comment? */ /* in extended comment? */
else if (xcomment) else if (xcomment)
{ {
@ -320,13 +313,6 @@ MainLoop(FILE *source)
} }
} }
/* start of extended comment? */
else if (line[i] == '/' && line[i + thislen] == '*')
{
xcomment = true;
ADVANCE_1;
}
/* single-line comment? truncate line */ /* single-line comment? truncate line */
else if (line[i] == '-' && line[i + thislen] == '-') else if (line[i] == '-' && line[i + thislen] == '-')
{ {
@ -334,6 +320,19 @@ MainLoop(FILE *source)
break; break;
} }
/* in quote? */
else if (in_quote)
{
/* end of quote */
if (line[i] == in_quote && bslash_count % 2 == 0)
in_quote = '\0';
}
/* start of quote */
else if (!was_bslash &&
(line[i] == '\'' || line[i] == '"'))
in_quote = line[i];
/* count nested parentheses */ /* count nested parentheses */
else if (line[i] == '(') else if (line[i] == '(')
paren_level++; paren_level++;