Skip to content

Commit

Permalink
Append output strings to stream.
Browse files Browse the repository at this point in the history
  • Loading branch information
nthnn committed May 14, 2024
1 parent 1c8ea30 commit c9385e3
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions src/rishka_syscalls.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,24 +69,34 @@ void change_rt_strpass(char* data) {

void RishkaSyscall::IO::prints(RishkaVM* vm) {
auto arg = vm->getPointerParam<char*>(0);
vm->getTerminal()->print(arg != NULL ? arg : "(null)");
arg = arg != NULL ? arg : (char*) "(null)";

vm->getTerminal()->print(arg);
vm->appendToOutputStream(arg);
}

void RishkaSyscall::IO::printn(RishkaVM* vm) {
auto arg = vm->getParam<int64_t>(0);

vm->getTerminal()->print(arg);
vm->appendToOutputStream(arg);
}

void RishkaSyscall::IO::printd(RishkaVM* vm) {
auto arg = vm->getParam<double>(0);

vm->getTerminal()->print(arg);
vm->appendToOutputStream(arg);
}

char RishkaSyscall::IO::readch(RishkaVM* vm) {
fabgl::LineEditor line(vm->getTerminal());

line.edit();
return (char) line.get()[0];

char ch = (char) line.get()[0];
vm->appendToOutputStream(ch);

return ch;
}

size_t RishkaSyscall::IO::readLine(RishkaVM* vm) {
Expand All @@ -96,6 +106,7 @@ size_t RishkaSyscall::IO::readLine(RishkaVM* vm) {
char* input = (char*) line.get();
change_rt_strpass(input);

vm->appendToOutputStream(String(input));
return strlen(input);
}

Expand Down

0 comments on commit c9385e3

Please sign in to comment.