1 /* glkstart.h: Unix-specific header file for GlkTerm, CheapGlk, and XGlk
2 (Unix implementations of the Glk API).
3 Designed by Andrew Plotkin <erkyrath@netcom.com>
4 http://www.eblong.com/zarf/glk/index.html
7 /* This header defines an interface that must be used by program linked
8 with the various Unix Glk libraries -- at least, the three I wrote.
9 (I encourage anyone writing a Unix Glk library to use this interface,
10 but it's not part of the Glk spec.)
12 Because Glk is *almost* perfectly portable, this interface *almost*
13 doesn't have to exist. In practice, it's small.
23 /* We define our own TRUE and FALSE and NULL, because ANSI
24 is a strange world. */
35 #define glkunix_arg_End (0)
36 #define glkunix_arg_ValueFollows (1)
37 #define glkunix_arg_NoValue (2)
38 #define glkunix_arg_ValueCanFollow (3)
39 #define glkunix_arg_NumberValue (4)
41 typedef struct glkunix_argumentlist_struct {
45 } glkunix_argumentlist_t;
47 typedef struct glkunix_startup_struct {
52 /* The list of command-line arguments; this should be defined in your code. */
53 extern glkunix_argumentlist_t glkunix_arguments[];
55 /* The external function; this should be defined in your code. */
56 extern int glkunix_startup_code(glkunix_startup_t *data);
58 /* Some helpful utility functions which the library makes available
59 to your code. Obviously, this is nonportable; so you should
60 only call it from glkunix_startup_code().
62 extern strid_t glkunix_stream_open_pathname(char *pathname, glui32 textmode,
69 #endif /* GT_START_H */