Create new line while pressing enter in repl.
Pressing Enter in repl should create new line instead of quiting the repl.pull/759/head
parent
4aab26d3e3
commit
65fed2d784
|
@ -858,7 +858,11 @@ fn run_repl() []string {
|
||||||
mut lines := []string
|
mut lines := []string
|
||||||
for {
|
for {
|
||||||
print('>>> ')
|
print('>>> ')
|
||||||
mut line := os.get_line().trim_space()
|
mut line := os.get_raw_line()
|
||||||
|
if line.trim_space() == '' && line.ends_with('\n') {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
line = line.trim_space()
|
||||||
if line == '' {
|
if line == '' {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
11
os/os.v
11
os/os.v
|
@ -383,6 +383,17 @@ pub fn get_line() string {
|
||||||
return tos(buf, nr_chars)
|
return tos(buf, nr_chars)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get_raw_line returns a one-line string from stdin along with '\n' if there is any
|
||||||
|
pub fn get_raw_line() string {
|
||||||
|
max := u64(256)
|
||||||
|
buf := malloc(int(max))
|
||||||
|
nr_chars := C.getline(&buf, &max, stdin)
|
||||||
|
if nr_chars == 0 {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
return tos(buf, nr_chars)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn user_os() string {
|
pub fn user_os() string {
|
||||||
$if linux {
|
$if linux {
|
||||||
return 'linux'
|
return 'linux'
|
||||||
|
|
Loading…
Reference in New Issue