Eliminated warnings about static functions declared with G_GNUC_INTERNAL
[projects/chimara/chimara.git] / src / input.c
index 89356fae2ff913d8f9a6c07e085ca9556dad067a..18a7ecbcb124aae33295ebde4ca27314bc8e0f44 100644 (file)
@@ -2,6 +2,10 @@
 #include "magic.h"
 #include "input.h"
 
+/* Forward declarations */
+static int flush_text_buffer(winid_t win);
+static int flush_text_grid(winid_t win);
+
 /** 
  * glk_request_char_event:
  * @win: A window to request char events from.
@@ -276,15 +280,18 @@ glk_request_line_event_uni(winid_t win, glui32 *buf, glui32 maxlen, glui32 initl
 void
 glk_cancel_line_event(winid_t win, event_t *event)
 {
-       /* TODO: write me */
        VALID_WINDOW(win, return);
-       g_return_if_fail(win->input_request_type != INPUT_REQUEST_NONE);
        g_return_if_fail(win->type != wintype_TextBuffer || win->type != wintype_TextGrid);
 
-       event->type = evtype_None;
-       event->win = win;
-       event->val1 = 0;
-       event->val2 = 0;
+       if(event != NULL) {
+               event->type = evtype_None;
+               event->win = win;
+               event->val1 = 0;
+               event->val2 = 0;
+       }
+
+       if(win->input_request_type == INPUT_REQUEST_NONE)
+               return;
 
        g_signal_handler_block( G_OBJECT(win->widget), win->keypress_handler );
 
@@ -299,7 +306,7 @@ glk_cancel_line_event(winid_t win, event_t *event)
                chars_written = flush_text_buffer(win);
        }
 
-       if(chars_written > 0) {
+       if(event != NULL && chars_written > 0) {
                event->type = evtype_LineInput;
                event->val1 = chars_written;
        }