Module Name: src
Committed By: christos
Date: Tue Mar 31 17:53:03 UTC 2009
Modified Files:
src/lib/libedit: readline.c
src/lib/libedit/readline: readline.h
Log Message:
implement RL_PROMPT_{START,END}_IGNORE
To generate a diff of this commit:
cvs rdiff -u -r1.81 -r1.82 src/lib/libedit/readline.c
cvs rdiff -u -r1.25 -r1.26 src/lib/libedit/readline/readline.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libedit/readline.c
diff -u src/lib/libedit/readline.c:1.81 src/lib/libedit/readline.c:1.82
--- src/lib/libedit/readline.c:1.81 Sat Feb 21 18:31:56 2009
+++ src/lib/libedit/readline.c Tue Mar 31 13:53:03 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: readline.c,v 1.81 2009/02/21 23:31:56 christos Exp $ */
+/* $NetBSD: readline.c,v 1.82 2009/03/31 17:53:03 christos Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include "config.h"
#if !defined(lint) && !defined(SCCSID)
-__RCSID("$NetBSD: readline.c,v 1.81 2009/02/21 23:31:56 christos Exp $");
+__RCSID("$NetBSD: readline.c,v 1.82 2009/03/31 17:53:03 christos Exp $");
#endif /* not lint && not SCCSID */
#include <sys/types.h>
@@ -225,6 +225,8 @@
int
rl_set_prompt(const char *prompt)
{
+ char *p;
+
if (!prompt)
prompt = "";
if (rl_prompt != NULL && strcmp(rl_prompt, prompt) == 0)
@@ -232,7 +234,13 @@
if (rl_prompt)
free(rl_prompt);
rl_prompt = strdup(prompt);
- return rl_prompt == NULL ? -1 : 0;
+ if (rl_prompt == NULL)
+ return -1;
+
+ while ((p = strchr(rl_prompt, RL_PROMPT_END_IGNORE)) != NULL)
+ *p = RL_PROMPT_START_IGNORE;
+
+ return 0;
}
/*
@@ -286,7 +294,7 @@
el_end(e);
return -1;
}
- el_set(e, EL_PROMPT, _get_prompt);
+ el_set(e, EL_PROMPT, _get_prompt, RL_PROMPT_START_IGNORE);
el_set(e, EL_SIGNAL, rl_catch_signals);
/* set default mode to "emacs"-style and read setting afterwards */
Index: src/lib/libedit/readline/readline.h
diff -u src/lib/libedit/readline/readline.h:1.25 src/lib/libedit/readline/readline.h:1.26
--- src/lib/libedit/readline/readline.h:1.25 Thu Feb 12 08:39:49 2009
+++ src/lib/libedit/readline/readline.h Tue Mar 31 13:53:03 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: readline.h,v 1.25 2009/02/12 13:39:49 sketch Exp $ */
+/* $NetBSD: readline.h,v 1.26 2009/03/31 17:53:03 christos Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -79,6 +79,8 @@
#define RUBOUT 0x7f
#define ABORT_CHAR CTRL('G')
+#define RL_PROMPT_START_IGNORE '\1'
+#define RL_PROMPT_END_IGNORE '\2'
/* global variables used by readline enabled applications */
#ifdef __cplusplus