diff --git a/src/Makefile.am b/src/Makefile.am index 55c719c..c087991 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,4 @@ bin_PROGRAMS = gotty -gotty_SOURCES = tty.c options.c main.c +gotty_SOURCES = tty.c options.c time.c main.c bashcompletiondir=$(sysconfdir)/bash_completion.d dist_bashcompletion_DATA=bash-completion/gotty diff --git a/src/include/gotty/time.h b/src/include/gotty/time.h new file mode 100644 index 0000000..dd9405f --- /dev/null +++ b/src/include/gotty/time.h @@ -0,0 +1,27 @@ +/* + * Go TTY - The Really Simple Terminal Application + * + * Copyright (c) 2014 Martin Lund + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + */ + +#ifndef TIME_H +#define TIME_H + +char * current_time(void); + +#endif diff --git a/src/time.c b/src/time.c new file mode 100644 index 0000000..1ac7ecb --- /dev/null +++ b/src/time.c @@ -0,0 +1,43 @@ +/* + * Go TTY - The Really Simple Terminal Application + * + * Copyright (c) 2014 Martin Lund + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + */ + +#include +#include +#include + +char * current_time(void) +{ + static char time_string[20]; + time_t t; + struct tm *tmp; + + t = time(NULL); + tmp = localtime(&t); + if (tmp == NULL) + { + perror("localtime"); + exit(EXIT_FAILURE); + } + + strftime(time_string, sizeof(time_string), "%H:%M:%S", tmp); + + return time_string; +} diff --git a/src/tty.c b/src/tty.c index c71a8e4..9e5be18 100644 --- a/src/tty.c +++ b/src/tty.c @@ -34,6 +34,7 @@ #include "gotty/tty.h" #include "gotty/print.h" #include "gotty/options.h" +#include "gotty/time.h" static int connected = false; struct termios new_stdout, old_stdout, old_tio; @@ -121,7 +122,7 @@ void disconnect_tty(void) { if (tainted) putchar('\n'); - color_printf("[gotty] Disconnected"); + color_printf("[gotty %s] Disconnected", current_time()); close(fd); connected = false; } @@ -159,7 +160,7 @@ int connect_tty(void) exit(EXIT_FAILURE); } - color_printf("[gotty] Connected"); + color_printf("[gotty %s] Connected", current_time()); connected = true; tainted = false; bzero(&c_stdin[0], 3);