* Restored support for cancel_line_input_request on a textgrid
[projects/chimara/chimara.git] / src / strio.c
index 9baaf0fe7a191631a4d057be9de5d7831f3a422b..e30d52bdda39638a6eb1529e0c974b065cb8a695 100644 (file)
 static void
 write_utf8_to_grid(winid_t win, gchar *s)
 {
+       if(win->input_request_type == INPUT_REQUEST_LINE || win->input_request_type == INPUT_REQUEST_LINE_UNICODE)
+       {
+               ILLEGAL("Tried to print to a text grid window with line input pending.");
+               return;
+       }
+       
     /* Number of characters to insert */
     glong length = g_utf8_strlen(s, -1);
     glong chars_left = length;
@@ -59,6 +65,12 @@ write_utf8_to_grid(winid_t win, gchar *s)
 static void
 write_utf8_to_window(winid_t win, gchar *s)
 {
+       if(win->input_request_type == INPUT_REQUEST_LINE || win->input_request_type == INPUT_REQUEST_LINE_UNICODE)
+       {
+               ILLEGAL("Tried to print to a text buffer window with line input pending.");
+               return;
+       }
+       
        gdk_threads_enter();
 
        GtkTextBuffer *buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(win->widget) );
@@ -459,7 +471,7 @@ is_unicode_newline(glsi32 ch, FILE *fp, gboolean utf8)
 /* Internal function: Read one character from a stream. Returns a value which
  can be returned unchanged by glk_get_char_stream_uni(), but 
  glk_get_char_stream() must replace high values by the placeholder character. */
-glsi32
+static glsi32
 get_char_stream_common(strid_t str)
 {
        switch(str->type)