File: lua_stream.cpp

package info (click to toggle)
sol2 3.5.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 23,096 kB
  • sloc: cpp: 43,816; ansic: 1,018; python: 356; sh: 288; makefile: 202
file content (23 lines) | stat: -rw-r--r-- 498 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#define SOL_CHECK_ARGUMENTS 1
#include <sol/sol.hpp>

#include <cstdio>

bool is_file_std_out(sol::table data) {
	sol::object maybe_file = data["file"];
	if (maybe_file.is<luaL_Stream&>()) {
		luaL_Stream& filestream = data["file"];
		return filestream.f == stdout;
	}
	return false;
}

int main() {
	sol::state lua;
	lua.open_libraries(sol::lib::base, sol::lib::io);

	lua["is_std_out"] = &is_file_std_out;
	lua.script("assert(is_std_out{ file = io.stdout })");

	return 0;
}