aboutsummaryrefslogtreecommitdiffstats
path: root/ethereum/repl/repl_windows.go
diff options
context:
space:
mode:
Diffstat (limited to 'ethereum/repl/repl_windows.go')
-rw-r--r--ethereum/repl/repl_windows.go57
1 files changed, 54 insertions, 3 deletions
diff --git a/ethereum/repl/repl_windows.go b/ethereum/repl/repl_windows.go
index 4106c89bc..bfae57088 100644
--- a/ethereum/repl/repl_windows.go
+++ b/ethereum/repl/repl_windows.go
@@ -4,6 +4,7 @@ import (
"bufio"
"fmt"
"os"
+ "strings"
)
func (self *JSRepl) read() {
@@ -14,11 +15,61 @@ func (self *JSRepl) read() {
if err != nil {
fmt.Println("Error reading input", err)
} else {
- self.parseInput(string(str))
+ if (string(str) == "exit") {
+ self.Stop()
+ break
+ } else {
+ self.parseInput(string(str))
+ }
}
}
}
-func (self *JSRepl) PrintValue(value otto.Value) {
- fmt.Println(value)
+func addHistory(s string) {
+}
+
+func printColored(outputVal string) {
+ for ; outputVal != "" ; {
+ codePart := ""
+ if (strings.HasPrefix(outputVal, "\033[32m")) {
+ codePart = "\033[32m"
+ changeColor(2)
+ }
+ if (strings.HasPrefix(outputVal, "\033[1m\033[30m")) {
+ codePart = "\033[1m\033[30m"
+ changeColor(8)
+ }
+ if (strings.HasPrefix(outputVal, "\033[31m")) {
+ codePart = "\033[31m"
+ changeColor(red)
+ }
+ if (strings.HasPrefix(outputVal, "\033[35m")) {
+ codePart = "\033[35m"
+ changeColor(5)
+ }
+ if (strings.HasPrefix(outputVal, "\033[0m")) {
+ codePart = "\033[0m"
+ resetColorful()
+ }
+ textPart := outputVal[len(codePart):len(outputVal)]
+ index := strings.Index(textPart, "\033")
+ if index == -1 {
+ outputVal = ""
+ } else {
+ outputVal = textPart[index:len(textPart)]
+ textPart = textPart[0:index]
+ }
+ fmt.Printf("%v", textPart)
+ }
+}
+
+func (self *JSRepl) PrintValue(v interface{}) {
+ method, _ := self.re.Vm.Get("prettyPrint")
+ v, err := self.re.Vm.ToValue(v)
+ if err == nil {
+ val, err := method.Call(method, v)
+ if err == nil {
+ printColored(fmt.Sprintf("%v", val))
+ }
+ }
}