summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2008-06-04 14:20:18 -0400
committerRay Strode <rstrode@redhat.com>2008-06-04 15:05:19 -0400
commit34d6c76b2f003dbd0f49d2470ec74c4e342bcd0d (patch)
tree518b0acb4f99b8d7db4eb55ea2008267eace2eb1 /src
parentcd9a67bcafc84056f345ba40141c3e52539de7d0 (diff)
Change window to take a vt number instead of a tty device file
We are going to want to change to the vt of the tty that we're using for the window. This means we need to know the vt number instead of the device file. From the number we can derive the device filename.
Diffstat (limited to 'src')
-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,