فهرست منبع

Merge pull request #1658 from bas-vk/liner-ctrl-c

Clear current line on ctrl-C
Jeffrey Wilcke 10 سال پیش
والد
کامیت
cd81356ace
1فایلهای تغییر یافته به همراه11 افزوده شده و 0 حذف شده
  1. 11 0
      cmd/geth/js.go

+ 11 - 0
cmd/geth/js.go

@@ -383,6 +383,11 @@ func (self *jsre) interactive() {
 		for {
 			line, err := self.Prompt(<-prompt)
 			if err != nil {
+				if err == liner.ErrPromptAborted { // ctrl-C
+					self.resetPrompt()
+					inputln <- ""
+					continue
+				}
 				return
 			}
 			inputln <- line
@@ -467,6 +472,12 @@ func (self *jsre) parseInput(code string) {
 var indentCount = 0
 var str = ""
 
+func (self *jsre) resetPrompt() {
+	indentCount = 0
+	str = ""
+	self.ps1 = "> "
+}
+
 func (self *jsre) setIndent() {
 	open := strings.Count(str, "{")
 	open += strings.Count(str, "(")