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

Reply via email to