diff options
| -rw-r--r-- | src/main.c | 8 | ||||
| -rw-r--r-- | src/ply-window.c | 20 | ||||
| -rw-r--r-- | src/ply-window.h | 2 |
3 files changed, 17 insertions, 13 deletions
@@ -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, |
