summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2008-06-04 16:29:38 -0400
committerRay Strode <rstrode@redhat.com>2008-06-04 16:29:38 -0400
commitb5ffa3574074a3b2b4dbca7b1a9e1b460b4d3917 (patch)
tree8b66f0a0a1d834ba538c094852afdf04ee64abb0
parent869a4d4afe28c9cde9b57b273d5c97d857dcf541 (diff)
downloadplymouth-b5ffa3574074a3b2b4dbca7b1a9e1b460b4d3917.tar.gz
plymouth-b5ffa3574074a3b2b4dbca7b1a9e1b460b4d3917.tar.xz
plymouth-b5ffa3574074a3b2b4dbca7b1a9e1b460b4d3917.zip
Support passing in a 0 to ply_window_new to mean "current vt"
-rw-r--r--src/ply-window.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/ply-window.c b/src/ply-window.c
index 830039d..9957517 100644
--- a/src/ply-window.c
+++ b/src/ply-window.c
@@ -91,8 +91,6 @@ ply_window_new (int vt_number)
{
ply_window_t *window;
- assert (vt_number > 0);
-
window = calloc (1, sizeof (ply_window_t));
window->keyboard_input_buffer = ply_buffer_new ();
window->line_buffer = ply_buffer_new ();
@@ -305,6 +303,13 @@ ply_window_open (ply_window_t *window)
assert (window->tty_name != NULL);
assert (window->tty_fd < 0);
+ if (window->vt_number == 0)
+ {
+ window->vt_number = get_active_vt ();
+ free (window->tty_name);
+ asprintf (&window->tty_name, "/dev/tty%d", window->vt_number);
+ }
+
window->tty_fd = open (window->tty_name, O_RDWR | O_NOCTTY);
if (window->tty_fd < 0)