Testen en debuggen van alle file en memory stream functies
[projects/chimara/chimara.git] / src / model.c
1 #include "glk.h"
2
3 static winid_t mainwin = NULL;
4
5 void glk_main(void)
6 {
7     /* Open the main window. */
8     mainwin = glk_window_open(0, 0, 0, wintype_TextBuffer, 1);
9     if (!mainwin) {
10         /* It's possible that the main window failed to open. There's
11             nothing we can do without it, so exit. */
12         return; 
13     }
14     
15     char buffer[256];
16     int i;
17     for(i = 0; i < 256; i++)
18         buffer[i] = (char)glk_char_to_upper(i);
19     
20     /*frefid_t f = glk_fileref_create_temp(fileusage_BinaryMode, 0);
21     if(f) 
22     {*/
23     
24     char memorybuffer[100];
25     
26         strid_t s = glk_stream_open_memory(memorybuffer, 100, 
27                 filemode_ReadWrite, 0);
28         glk_stream_set_current(s);
29         glk_put_char('X');
30         glk_put_string("Philip en Marijn zijn vet goed.\n");
31         glk_put_buffer(buffer, 256);
32
33         glk_stream_set_position(s, 0, seekmode_Start);
34         glk_set_window(mainwin);
35         glk_put_char( glk_get_char_stream(s) );
36         glk_put_char('\n');
37         g_printerr("Line read: %d\n", glk_get_line_stream(s, buffer, 256));
38         glk_put_string(buffer);
39         int count = glk_get_buffer_stream(s, buffer, 256);
40         g_printerr("Buffer read: %d\n", count);
41         glk_put_buffer(buffer, count);          
42         
43         stream_result_t result;
44         glk_stream_close(s, &result);
45         
46         g_printerr("Read count: %d\nWrite count: %d\n", result.readcount,
47                 result.writecount);
48 /*
49                 glk_fileref_destroy(f);
50         }*/
51         
52         /* Bye bye */
53         glk_exit();
54 }