projects
/
projects
/
chimara
/
chimara.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed bug - glk_set_window(NULL) doesn't crash anymore
[projects/chimara/chimara.git]
/
libchimara
/
window.c
diff --git
a/libchimara/window.c
b/libchimara/window.c
index 53f264dc91200ebdfcce700dfdc7db822d2d3b2b..7dd14c7b3d53d6e22e7538d2eadea855469c0e92 100644
(file)
--- a/
libchimara/window.c
+++ b/
libchimara/window.c
@@
-895,17
+895,26
@@
glk_window_clear(winid_t win)
/**
* glk_set_window:
/**
* glk_set_window:
- * @win: A window.
+ * @win: A window
, or %NULL
.
*
* Sets the current stream to @win's window stream. It is exactly equivalent to
* |[ #glk_stream_set_current(#glk_window_get_stream(@win)) ]|
* See <link linkend="chimara-Streams">Streams</link>.
*
* Sets the current stream to @win's window stream. It is exactly equivalent to
* |[ #glk_stream_set_current(#glk_window_get_stream(@win)) ]|
* See <link linkend="chimara-Streams">Streams</link>.
+ *
+ * <note><title>Chimara</title>
+ * <para>
+ * Although this is not mentioned in the specification, @win may also be
+ * %NULL, in which case the current stream is also set to %NULL.
+ * </para></note>
*/
void
glk_set_window(winid_t win)
{
*/
void
glk_set_window(winid_t win)
{
- VALID_WINDOW(win, return);
- glk_stream_set_current( glk_window_get_stream(win) );
+ VALID_WINDOW_OR_NULL(win, return);
+ if(win)
+ glk_stream_set_current( glk_window_get_stream(win) );
+ else
+ glk_stream_set_current(NULL);
}
/**
}
/**