about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/prompt.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 6eeb47d7c..4fddfe8f6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-09-25  Peter Stephenson  <pws@csr.com>
+
+	* 25684: Src/prompt.c: make %x and %I consistent with
+	eval line numbering.
+
 2008-09-24  Peter Stephenson  <p.w.stephenson@ntlworld.com>
 
 	* users/13288: Src/parse.c: don't report parse errors if the
diff --git a/Src/prompt.c b/Src/prompt.c
index 7bba51c61..870632ec5 100644
--- a/Src/prompt.c
+++ b/Src/prompt.c
@@ -726,7 +726,8 @@ putpromptchar(int doprint, int endchar, unsigned int *txtchangep)
 		    stradd(Rstring);
 		break;
 	    case 'I':
-		if (funcstack && funcstack->tp != FS_SOURCE) {
+		if (funcstack && funcstack->tp != FS_SOURCE &&
+		    (!intrap || trapisfunc)) {
 		    /*
 		     * We're in a function or an eval with
 		     * EVALLINENO.  Calculate the line number in
@@ -749,7 +750,8 @@ putpromptchar(int doprint, int endchar, unsigned int *txtchangep)
 		bp += strlen(bp);
 		break;
 	    case 'x':
-		if (funcstack && funcstack->tp != FS_SOURCE)
+		if (funcstack && funcstack->tp != FS_SOURCE &&
+		    (!intrap || trapisfunc))
 		    promptpath(funcstack->filename ? funcstack->filename : "",
 			       arg, 0);
 		else