diff options
| -rw-r--r-- | termkey-internal.h | 2 | ||||
| -rw-r--r-- | termkey.c | 6 | 
2 files changed, 8 insertions, 0 deletions
diff --git a/termkey-internal.h b/termkey-internal.h index 5494cf6..9f0904a 100644 --- a/termkey-internal.h +++ b/termkey-internal.h @@ -10,6 +10,8 @@ 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);  }; @@ -185,6 +185,9 @@ termkey_t *termkey_new_full(int fd, int flags, size_t buffsize, int waittime)      }    } +  if(tk->driver.start_driver) +    (*tk->driver.start_driver)(tk); +    return tk;  abort_free_keynames: @@ -217,6 +220,9 @@ void termkey_free(termkey_t *tk)  void termkey_destroy(termkey_t *tk)  { +  if(tk->driver.stop_driver) +    (*tk->driver.stop_driver)(tk); +    if(tk->restore_termios_valid)      tcsetattr(tk->fd, TCSANOW, &tk->restore_termios);  | 
