X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=src%2Fstrio.c;h=e30d52bdda39638a6eb1529e0c974b065cb8a695;hb=b1bffb48d34a1ea0cb066b6cd94eedfd87684d89;hp=9baaf0fe7a191631a4d057be9de5d7831f3a422b;hpb=2407b8e96d1a772f15eedb264117f20196fe1c51;p=rodin%2Fchimara.git diff --git a/src/strio.c b/src/strio.c index 9baaf0f..e30d52b 100644 --- a/src/strio.c +++ b/src/strio.c @@ -17,6 +17,12 @@ 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)