aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul LeoNerd Evans <leonerd@leonerd.org.uk>2008-11-08 17:47:57 +0000
committerPaul LeoNerd Evans <leonerd@leonerd.org.uk>2008-11-08 17:47:57 +0000
commite8806029447040591775cab4fb5bbd355d65bbdf (patch)
tree5174866e38af9b23124a1f9c69e45ba7ed6bebee
parent9969e197ba48b4c4fd3aab1d29067603e20d1e90 (diff)
downloadtermo-e8806029447040591775cab4fb5bbd355d65bbdf.tar.gz
termo-e8806029447040591775cab4fb5bbd355d65bbdf.tar.xz
termo-e8806029447040591775cab4fb5bbd355d65bbdf.zip
Pass driver_info as explicit void* parameter into driver methods
-rw-r--r--driver-csi.c8
-rw-r--r--driver-ti.c10
-rw-r--r--termkey-internal.h8
-rw-r--r--termkey.c10
4 files changed, 18 insertions, 18 deletions
diff --git a/driver-csi.c b/driver-csi.c
index 1203a00..fe885b2 100644
--- a/driver-csi.c
+++ b/driver-csi.c
@@ -130,9 +130,9 @@ abort_free_csi:
return NULL;
}
-static void free_driver(void *private)
+static void free_driver(void *info)
{
- termkey_csi *csi = private;
+ termkey_csi *csi = info;
free(csi->csifuncs); csi->csifuncs = NULL;
@@ -286,12 +286,12 @@ static termkey_result getkey_ss3(termkey_t *tk, termkey_csi *csi, size_t introle
return TERMKEY_RES_KEY;
}
-static termkey_result getkey(termkey_t *tk, termkey_key *key, int force)
+static termkey_result getkey(termkey_t *tk, void *info, termkey_key *key, int force)
{
if(tk->buffcount == 0)
return tk->is_closed ? TERMKEY_RES_EOF : TERMKEY_RES_NONE;
- termkey_csi *csi = tk->driver_info;
+ termkey_csi *csi = info;
// Now we're sure at least 1 byte is valid
unsigned char b0 = CHARAT(0);
diff --git a/driver-ti.c b/driver-ti.c
index 1540a7a..0c25f48 100644
--- a/driver-ti.c
+++ b/driver-ti.c
@@ -77,7 +77,7 @@ abort_free_ti:
return NULL;
}
-static void start_driver(termkey_t *tk)
+static void start_driver(termkey_t *tk, void *info)
{
/* The terminfo database will contain keys in application cursor key mode.
* We may need to enable that mode
@@ -88,7 +88,7 @@ static void start_driver(termkey_t *tk)
}
}
-static void stop_driver(termkey_t *tk)
+static void stop_driver(termkey_t *tk, void *info)
{
if(keypad_local) {
// Can't call putp or tputs because they suck and don't give us fd control
@@ -96,15 +96,15 @@ static void stop_driver(termkey_t *tk)
}
}
-static void free_driver(void *private)
+static void free_driver(void *info)
{
}
#define CHARAT(i) (tk->buffer[tk->buffstart + (i)])
-static termkey_result getkey(termkey_t *tk, termkey_key *key, int force)
+static termkey_result getkey(termkey_t *tk, void *info, termkey_key *key, int force)
{
- termkey_ti *ti = tk->driver_info;
+ termkey_ti *ti = info;
if(tk->buffcount == 0)
return tk->is_closed ? TERMKEY_RES_EOF : TERMKEY_RES_NONE;
diff --git a/termkey-internal.h b/termkey-internal.h
index 9f0904a..6e68525 100644
--- a/termkey-internal.h
+++ b/termkey-internal.h
@@ -9,10 +9,10 @@
struct termkey_driver
{
void *(*new_driver)(termkey_t *tk, const char *term);
- void (*free_driver)(void *);
- void (*start_driver)(termkey_t *tk);
- void (*stop_driver)(termkey_t *tk);
- termkey_result (*getkey)(termkey_t *tk, termkey_key *key, int force);
+ void (*free_driver)(void *info);
+ void (*start_driver)(termkey_t *tk, void *info);
+ void (*stop_driver)(termkey_t *tk, void *info);
+ termkey_result (*getkey)(termkey_t *tk, void *info, termkey_key *key, int force);
};
struct keyinfo {
diff --git a/termkey.c b/termkey.c
index 2e35ae3..4d21876 100644
--- a/termkey.c
+++ b/termkey.c
@@ -186,7 +186,7 @@ termkey_t *termkey_new_full(int fd, int flags, size_t buffsize, int waittime)
}
if(tk->driver.start_driver)
- (*tk->driver.start_driver)(tk);
+ (*tk->driver.start_driver)(tk, tk->driver_info);
return tk;
@@ -221,7 +221,7 @@ void termkey_free(termkey_t *tk)
void termkey_destroy(termkey_t *tk)
{
if(tk->driver.stop_driver)
- (*tk->driver.stop_driver)(tk);
+ (*tk->driver.stop_driver)(tk, tk->driver_info);
if(tk->restore_termios_valid)
tcsetattr(tk->fd, TCSANOW, &tk->restore_termios);
@@ -375,7 +375,7 @@ static termkey_result getkey_simple(termkey_t *tk, termkey_key *key, int force)
tk->buffcount--;
// Run the full driver
- termkey_result metakey_result = (*tk->driver.getkey)(tk, key, force);
+ termkey_result metakey_result = (*tk->driver.getkey)(tk, tk->driver_info, key, force);
tk->buffstart--;
tk->buffcount++;
@@ -497,12 +497,12 @@ static termkey_result getkey_simple(termkey_t *tk, termkey_key *key, int force)
termkey_result termkey_getkey(termkey_t *tk, termkey_key *key)
{
- return (*tk->driver.getkey)(tk, key, 0);
+ return (*tk->driver.getkey)(tk, tk->driver_info, key, 0);
}
termkey_result termkey_getkey_force(termkey_t *tk, termkey_key *key)
{
- return (*tk->driver.getkey)(tk, key, 1);
+ return (*tk->driver.getkey)(tk, tk->driver_info, key, 1);
}
termkey_result termkey_waitkey(termkey_t *tk, termkey_key *key)