diff --git a/lib.nas b/lib.nas index 8fab0c8..83569df 100644 --- a/lib.nas +++ b/lib.nas @@ -25,8 +25,8 @@ var system=func(str){ } # input uses std::cin and returns what we input. -var input=func(){ - return __input(); +var input=func(end=nil){ + return __input(end); } # split a string by separator for example: diff --git a/nasal_builtin.h b/nasal_builtin.h index e9d9cc2..4a322f1 100644 --- a/nasal_builtin.h +++ b/nasal_builtin.h @@ -277,8 +277,12 @@ nas_ref builtin_system(nas_ref* local,nasal_gc& gc) } nas_ref builtin_input(nas_ref* local,nasal_gc& gc) { + nas_ref end=local[1]; nas_ref ret=gc.alloc(vm_str); - std::cin>>ret.str(); + if(end.type!=vm_str || end.str().length()>1) + std::cin>>ret.str(); + else + std::getline(std::cin,ret.str(),end.str()[0]); return ret; } nas_ref builtin_fin(nas_ref* local,nasal_gc& gc) diff --git a/stl/lib.nas b/stl/lib.nas index 8fab0c8..83569df 100644 --- a/stl/lib.nas +++ b/stl/lib.nas @@ -25,8 +25,8 @@ var system=func(str){ } # input uses std::cin and returns what we input. -var input=func(){ - return __input(); +var input=func(end=nil){ + return __input(end); } # split a string by separator for example: