summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoshiya Hinosawa <stibium121@gmail.com>2020-11-03 09:15:29 +0900
committerGitHub <noreply@github.com>2020-11-03 01:15:29 +0100
commite736d0f60f6cdf38e2d317ee08a7125de9e57d69 (patch)
tree9d1970400946a7695e5b48dc120e947b9df438c7
parent1c1889851d91807a1d480c79436dce4a32f61e9d (diff)
fix(prompt): fix display of non-ASCII characters on Windows (#8199)
-rw-r--r--cli/rt/41_prompt.js12
-rw-r--r--core/bindings.rs3
2 files changed, 9 insertions, 6 deletions
diff --git a/cli/rt/41_prompt.js b/cli/rt/41_prompt.js
index 0adc6081a..ec294668b 100644
--- a/cli/rt/41_prompt.js
+++ b/cli/rt/41_prompt.js
@@ -1,18 +1,18 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
((window) => {
- const { stdin, stdout } = window.__bootstrap.files;
+ const { stdin } = window.__bootstrap.files;
const { isatty } = window.__bootstrap.tty;
const LF = "\n".charCodeAt(0);
const CR = "\r".charCodeAt(0);
- const encoder = new TextEncoder();
const decoder = new TextDecoder();
+ const core = window.Deno.core;
function alert(message = "Alert") {
if (!isatty(stdin.rid)) {
return;
}
- stdout.writeSync(encoder.encode(`${message} [Enter] `));
+ core.print(`${message} [Enter] `, false);
readLineFromStdinSync();
}
@@ -22,7 +22,7 @@
return false;
}
- stdout.writeSync(encoder.encode(`${message} [y/N] `));
+ core.print(`${message} [y/N] `, false);
const answer = readLineFromStdinSync();
@@ -36,10 +36,10 @@
return null;
}
- stdout.writeSync(encoder.encode(`${message} `));
+ core.print(`${message} `, false);
if (defaultValue) {
- stdout.writeSync(encoder.encode(`[${defaultValue}] `));
+ core.print(`[${defaultValue}] `, false);
}
return readLineFromStdinSync() || defaultValue;
diff --git a/core/bindings.rs b/core/bindings.rs
index 4b2c39881..47dadf422 100644
--- a/core/bindings.rs
+++ b/core/bindings.rs
@@ -11,6 +11,7 @@ use futures::future::FutureExt;
use rusty_v8 as v8;
use std::cell::Cell;
use std::convert::TryFrom;
+use std::io::{stdout, Write};
use std::option::Option;
use url::Url;
use v8::MapFnTo;
@@ -352,8 +353,10 @@ fn print(
};
if is_err {
eprint!("{}", str_.to_rust_string_lossy(tc_scope));
+ stdout().flush().unwrap();
} else {
print!("{}", str_.to_rust_string_lossy(tc_scope));
+ stdout().flush().unwrap();
}
}