mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
Create new line while pressing enter in repl.
Pressing Enter in repl should create new line instead of quiting the repl.
This commit is contained in:
parent
4aab26d3e3
commit
65fed2d784
@ -858,7 +858,11 @@ fn run_repl() []string {
|
||||
mut lines := []string
|
||||
for {
|
||||
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 == '' {
|
||||
break
|
||||
}
|
||||
|
11
os/os.v
11
os/os.v
@ -383,6 +383,17 @@ pub fn get_line() string {
|
||||
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 {
|
||||
$if linux {
|
||||
return 'linux'
|
||||
|
Loading…
Reference in New Issue
Block a user