From: <fde...@us...> - 2008-06-16 14:48:06
|
Revision: 694 http://eyedb.svn.sourceforge.net/eyedb/?rev=694&view=rev Author: fdechelle Date: 2008-06-16 07:48:02 -0700 (Mon, 16 Jun 2008) Log Message: ----------- OQL with readline() working Modified Paths: -------------- eyedb/trunk/src/eyedb/OQLParser.cc eyedb/trunk/src/eyedb/OQLParser.h Modified: eyedb/trunk/src/eyedb/OQLParser.cc =================================================================== --- eyedb/trunk/src/eyedb/OQLParser.cc 2008-06-16 13:50:28 UTC (rev 693) +++ eyedb/trunk/src/eyedb/OQLParser.cc 2008-06-16 14:48:02 UTC (rev 694) @@ -51,8 +51,8 @@ // This include file is broken: not ANSI-C, cannot compile it with a C++ compiler // #include <editline.h> // So we prototype the functions by hand :( - extern char *readline( char*); - extern void add_history( char*); + extern char *readline( const char*); + extern void add_history( const char*); } #endif @@ -2466,10 +2466,19 @@ oql_interrupt = False; setBackendInterrupt(False); +#if defined(HAVE_LIBREADLINE) || defined(HAVE_LIBEDITLINE) + if (fd != stdout) + fprintf(fd, getEffectivePrompt()); +#else + fprintf(fd, getEffectivePrompt()); +#endif + } + + const char *OQLParser::getEffectivePrompt() const + { if (oql_buffer_len && !is_empty(oql_buffer)) - fprintf(fd, second_prompt_str); - else - fprintf(fd, prompt_str); + return getSecondPrompt(); + return getPrompt(); } int OQLParser::parse(FILE *fd, Bool mode) @@ -2479,7 +2488,7 @@ #if defined(HAVE_LIBREADLINE) || defined(HAVE_LIBEDITLINE) if (fd == stdin) - line = readline( ""); + line = readline( getEffectivePrompt()); else line = fgets(linebuf, sizeof(linebuf)-1, fd); #else Modified: eyedb/trunk/src/eyedb/OQLParser.h =================================================================== --- eyedb/trunk/src/eyedb/OQLParser.h 2008-06-16 13:50:28 UTC (rev 693) +++ eyedb/trunk/src/eyedb/OQLParser.h 2008-06-16 14:48:02 UTC (rev 694) @@ -112,6 +112,9 @@ const char *getPrompt() const; void setSecondPrompt(const char *); const char *getSecondPrompt() const; + + const char *getEffectivePrompt() const; + void setEscapeChar(char); char getEscapeChar() const; void setTermChar(char); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |