summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main.c8
-rw-r--r--src/ply-window.c20
-rw-r--r--src/ply-window.h2
3 files changed, 17 insertions, 13 deletions
diff --git a/src/main.c b/src/main.c
index ec58aff..6b8f77c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -180,12 +180,12 @@ on_escape_pressed (state_t *state)
static ply_window_t *
create_window (state_t *state,
- const char *tty)
+ int vt_number)
{
ply_window_t *window;
- ply_trace ("creating window for %s", tty);
- window = ply_window_new (tty);
+ ply_trace ("creating window on vt %d", vt_number);
+ window = ply_window_new (vt_number);
ply_trace ("attaching window to event loop");
ply_window_attach_to_event_loop (window, state->loop);
@@ -448,7 +448,7 @@ main (int argc,
return EX_UNAVAILABLE;
}
- state.window = create_window (&state, "/dev/tty1");
+ state.window = create_window (&state, 1);
ply_trace ("entering event loop");
exit_code = ply_event_loop_run (state.loop);
diff --git a/src/ply-window.c b/src/ply-window.c
index 6e11481..24ccbe0 100644
--- a/src/ply-window.c
+++ b/src/ply-window.c
@@ -64,6 +64,7 @@ struct _ply_window
char *tty_name;
int tty_fd;
+ int vt_number;
ply_fd_watch_t *tty_fd_watch;
ply_window_mode_t mode;
@@ -85,19 +86,20 @@ struct _ply_window
};
ply_window_t *
-ply_window_new (const char *tty_name)
+ply_window_new (int vt_number)
{
ply_window_t *window;
- assert (tty_name != NULL);
+ assert (vt_number > 0);
window = calloc (1, sizeof (ply_window_t));
window->keyboard_input_buffer = ply_buffer_new ();
window->line_buffer = ply_buffer_new ();
window->frame_buffer = ply_frame_buffer_new (NULL);
window->loop = NULL;
- window->tty_name = strdup (tty_name);
+ asprintf (&window->tty_name, "/dev/tty%d", vt_number);
window->tty_fd = -1;
+ window->vt_number = vt_number;
return window;
}
@@ -486,18 +488,20 @@ main (int argc,
ply_event_loop_t *loop;
ply_window_t *window;
int exit_code;
- const char *tty_name;
+ int vt_number;
exit_code = 0;
loop = ply_event_loop_new ();
+ vt_number = 0;
if (argc > 1)
- tty_name = argv[1];
- else
- tty_name = "/dev/tty1";
+ vt_number = atoi (argv[1]);
- window = ply_window_new (tty_name);
+ if (vt_number <= 0)
+ vt_number = 1;
+
+ window = ply_window_new (vt_number);
ply_window_attach_to_event_loop (window, loop);
ply_window_set_keyboard_input_handler (window,
(ply_window_keyboard_input_handler_t)
diff --git a/src/ply-window.h b/src/ply-window.h
index 25c82ea..c362bf2 100644
--- a/src/ply-window.h
+++ b/src/ply-window.h
@@ -49,7 +49,7 @@ typedef enum
} ply_window_mode_t;
#ifndef PLY_HIDE_FUNCTION_DECLARATIONS
-ply_window_t *ply_window_new (const char *tty_name);
+ply_window_t *ply_window_new (int vt_number);
void ply_window_free (ply_window_t *window);
void ply_window_set_keyboard_input_handler (ply_window_t *window,