module_stat.c
1 #include <sys/stat.h>
2 #include <kuroko/vm.h>
3 #include <kuroko/util.h>
4 
5 KRK_Function(S_ISBLK) {
6  int mode;
7  if (!krk_parseArgs("i",(const char*[]){"mode"},&mode)) return NONE_VAL();
8  return INTEGER_VAL(S_ISBLK(mode));
9 }
10 KRK_Function(S_ISCHR) {
11  int mode;
12  if (!krk_parseArgs("i",(const char*[]){"mode"},&mode)) return NONE_VAL();
13  return INTEGER_VAL(S_ISCHR(mode));
14 }
15 KRK_Function(S_ISDIR) {
16  int mode;
17  if (!krk_parseArgs("i",(const char*[]){"mode"},&mode)) return NONE_VAL();
18  return INTEGER_VAL(S_ISDIR(mode));
19 }
20 KRK_Function(S_ISFIFO) {
21  int mode;
22  if (!krk_parseArgs("i",(const char*[]){"mode"},&mode)) return NONE_VAL();
23  return INTEGER_VAL(S_ISFIFO(mode));
24 }
25 KRK_Function(S_ISREG) {
26  int mode;
27  if (!krk_parseArgs("i",(const char*[]){"mode"},&mode)) return NONE_VAL();
28  return INTEGER_VAL(S_ISREG(mode));
29 }
30 #ifndef _WIN32
31 KRK_Function(S_ISLNK) {
32  int mode;
33  if (!krk_parseArgs("i",(const char*[]){"mode"},&mode)) return NONE_VAL();
34  return INTEGER_VAL(S_ISLNK(mode));
35 }
36 KRK_Function(S_ISSOCK) {
37  int mode;
38  if (!krk_parseArgs("i",(const char*[]){"mode"},&mode)) return NONE_VAL();
39  return INTEGER_VAL(S_ISSOCK(mode));
40 }
41 #endif
42 
43 KRK_Module(stat) {
44  KRK_DOC(module, "@brief Functions to check results from @ref stat calls.");
45 
46  BIND_FUNC(module,S_ISBLK);
47  BIND_FUNC(module,S_ISCHR);
48  BIND_FUNC(module,S_ISDIR);
49  BIND_FUNC(module,S_ISFIFO);
50  BIND_FUNC(module,S_ISREG);
51 #ifndef _WIN32
52  BIND_FUNC(module,S_ISLNK);
53  BIND_FUNC(module,S_ISSOCK);
54 #endif
55 }
56 
57 
KRK_Module(socket)
Utilities for creating native bindings.
#define krk_parseArgs(f, n,...)
Parse arguments to a function while accepting keyword arguments.
Definition: util.h:360
#define KRK_DOC(thing, text)
Attach documentation to a thing of various types.
Definition: util.h:304
Core API for the bytecode virtual machine.