From 1a84ba2d66129c36581a42dd7aa3a6707cfd1704 Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Thu, 31 Jul 2014 12:30:46 +0400 Subject: [PATCH] repl: proper `setPrompt()` and `multiline` support fix #8031 --- lib/repl.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/repl.js b/lib/repl.js index 6d49bda..578f99e 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -389,16 +389,22 @@ REPLServer.prototype.resetContext = function() { }; REPLServer.prototype.displayPrompt = function(preserveCursor) { - var initial = this._prompt; - var prompt = initial; + var prompt = this._initialPrompt; if (this.bufferedCommand.length) { prompt = '...'; var levelInd = new Array(this.lines.level.length).join('..'); prompt += levelInd + ' '; } - this.setPrompt(prompt); + + // Do not overwrite `_initialPrompt` here + REPLServer.super_.prototype.setPrompt.call(this, prompt); this.prompt(preserveCursor); - this.setPrompt(initial); +}; + +// When invoked as an API method, overwrite _initialPrompt +REPLServer.prototype.setPrompt = function setPrompt(prompt) { + this._initialPrompt = prompt; + REPLServer.super_.prototype.setPrompt.call(this, prompt); }; // A stream to push an array into a REPL -- 2.7.4