Skip to content

Commit 823f568

Browse files
committed
Change laco_load_line to return a boolean
1 parent 3347a20 commit 823f568

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/util.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ struct LacoState;
99
* Load a line into the lua stack to evaluated later. This function will
1010
* return -1 if there is no line input to load.
1111
*/
12-
int laco_load_line(struct LacoState* laco);
12+
bool laco_load_line(struct LacoState* laco);
1313

1414
/**
1515
* Called after laco_load_line, this will evaluate the line as a function

src/util/line.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,22 +113,25 @@ static bool pushline(LacoState* laco, bool isFirstLine) {
113113
return result;
114114
}
115115

116-
int laco_load_line(LacoState* laco) {
116+
bool laco_load_line(LacoState* laco) {
117117
int status = laco_get_laco_status(laco);
118118
lua_State* L = laco_get_laco_lua_state(laco);
119119

120120
lua_settop(L, 0);
121121

122-
if(!pushline(laco, true)) return -1;
122+
if(!pushline(laco, true)) return false;
123123

124124
/* Until complete line */
125-
while(true) {
125+
while(status != -1) {
126126
status = luaL_loadbuffer(L, lua_tostring(L, 1), lua_strlen(L, 1),
127127
"=stdin");
128128

129129
if(is_printable(L, status)) continue;
130130
if(!incomplete(L, status)) break;
131-
if(!pushline(laco, false)) return -1;
131+
if(!pushline(laco, false)) {
132+
status = -1;
133+
break;
134+
}
132135

133136
lua_pushliteral(L, "\n");
134137
lua_insert(L, -2);
@@ -137,7 +140,7 @@ int laco_load_line(LacoState* laco) {
137140
lua_remove(L, 1);
138141
laco_set_laco_status(laco, status);
139142

140-
return status;
143+
return status != -1;
141144
}
142145

143146
void laco_handle_line(LacoState* laco) {

0 commit comments

Comments
 (0)