#include "break.h"
#include "cmd.h"
#include "newalloc.h"
+#if defined HAVE_LIBREADLINE && HAVE_LIBREADLINE != -1
+#define HAVE_READLINE_COMPLETITION 1
+#endif
#ifdef HAVE_LIBREADLINE
#include <readline/readline.h>
#include <readline/history.h>
char userinterrupt = 0;
char nointerrupt = 0;
char contsim = 0;
-char *ssdirl = DATADIR LIB_DIR_SUFFIX ":" DATADIR LIB_DIR_SUFFIX "/small" ;
+char *ssdirl = DATADIR LIB_DIR_SUFFIX ":" DATADIR LIB_DIR_SUFFIX DIR_SEPARATOR_STRING "small" ;
char *simArgs[40];
int nsimArgs = 0;
char model_str[20];
int fatalError = 0;
static void commandLoop(FILE *cmdfile);
-#ifdef HAVE_LIBREADLINE
+#ifdef HAVE_READLINE_COMPLETITION
char *completionCmdSource(const char *text, int state);
char *completionCmdFile(const char *text, int state);
char *completionCmdInfo(const char *text, int state);
#define completionCmdUnDisplay NULL
#define completionCmdSetUserBp NULL
#define completionCmdSetOption NULL
-#endif /* HAVE_LIBREADLINE */
+#endif /* HAVE_READLINE_COMPLETITION */
/* command table */
struct cmdtab
{
char *cmd ; /* command the user will enter */
int (*cmdfunc)(char *,context *); /* function to execute when command is entered */
-#ifdef HAVE_LIBREADLINE
+#ifdef HAVE_READLINE_COMPLETITION
rl_compentry_func_t *completion_func;
#else
void *dummy;
-#endif /* HAVE_LIBREADLINE */
+#endif /* HAVE_READLINE_COMPLETITION */
char *htxt ; /* short help text */
} cmdTab[] = {
stopcmdlist = 1;
}
-#ifdef HAVE_LIBREADLINE
+#ifdef HAVE_READLINE_COMPLETITION
// helper function for doing readline completion.
// input: toknum=index of token to find (0=first token)
// output: *start=first character index of the token,
return (*compl_func)(text,state);
}
-#endif /* HAVE_LIBREADLINE */
+#endif /* HAVE_READLINE_COMPLETITION */
/*-----------------------------------------------------------------*/
/* commandLoop - the main command loop or loop over command file */
FILE *old_rl_instream, *old_rl_outstream;
actualcmdfile = cmdfile;
+#ifdef HAVE_READLINE_COMPLETITION
rl_completion_entry_function = completionMain;
+#endif /* HAVE_READLINE_COMPLETITION */
rl_readline_name = "sdcdb"; // Allow conditional parsing of the ~/.inputrc file.
// save readline's input/output streams
if ( cmdfile == stdin )
{
if (sim_cmd_mode)
- line_read = (char*)readline ("(sim)");
+ line_read = (char*)readline ("(sim) ");
else
- line_read = (char*)readline ("(sdcdb)");
+ line_read = (char*)readline ("(sdcdb) ");
}
else
line_read = (char*)readline ("");