Eliminated warnings about static functions declared with G_GNUC_INTERNAL
[projects/chimara/chimara.git] / interpreters / nitfol / glkstart.h
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
5 */
6
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.)
11     
12     Because Glk is *almost* perfectly portable, this interface *almost*
13     doesn't have to exist. In practice, it's small.
14 */
15
16 #ifndef GT_START_H
17 #define GT_START_H
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22
23 /* We define our own TRUE and FALSE and NULL, because ANSI
24     is a strange world. */
25 #ifndef TRUE
26 #define TRUE 1
27 #endif
28 #ifndef FALSE
29 #define FALSE 0
30 #endif
31 #ifndef NULL
32 #define NULL 0
33 #endif
34
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)
40
41 typedef struct glkunix_argumentlist_struct {
42     char *name;
43     int argtype;
44     char *desc;
45 } glkunix_argumentlist_t;
46
47 typedef struct glkunix_startup_struct {
48     int argc;
49     char **argv;
50 } glkunix_startup_t;
51
52 /* The list of command-line arguments; this should be defined in your code. */
53 extern glkunix_argumentlist_t glkunix_arguments[];
54
55 /* The external function; this should be defined in your code. */
56 extern int glkunix_startup_code(glkunix_startup_t *data);
57
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().
61 */
62 extern strid_t glkunix_stream_open_pathname(char *pathname, glui32 textmode, 
63   glui32 rock);
64
65 #ifdef __cplusplus
66 }
67 #endif
68
69 #endif /* GT_START_H */
70