tty: Move tty related functions to separate files
This commit is contained in:
parent
7802ab88a1
commit
7585a85f1a
|
@ -40,7 +40,8 @@ settings/settings_parser.c settings/settings_lexer.c utils/cpu_feature.c \
|
||||||
utils/utils.c utils/chunk.c utils/debug.c utils/enum.c utils/identification.c \
|
utils/utils.c utils/chunk.c utils/debug.c utils/enum.c utils/identification.c \
|
||||||
utils/lexparser.c utils/optionsfrom.c utils/capabilities.c utils/backtrace.c \
|
utils/lexparser.c utils/optionsfrom.c utils/capabilities.c utils/backtrace.c \
|
||||||
utils/parser_helper.c utils/test.c utils/process.c utils/utils/strerror.c \
|
utils/parser_helper.c utils/test.c utils/process.c utils/utils/strerror.c \
|
||||||
utils/utils/atomics.c utils/utils/string.c utils/utils/memory.c
|
utils/utils/atomics.c utils/utils/string.c utils/utils/memory.c \
|
||||||
|
utils/utils/tty.c
|
||||||
|
|
||||||
libstrongswan_la_SOURCES += \
|
libstrongswan_la_SOURCES += \
|
||||||
threading/thread.c \
|
threading/thread.c \
|
||||||
|
|
|
@ -38,7 +38,8 @@ settings/settings_parser.y settings/settings_lexer.l utils/cpu_feature.c \
|
||||||
utils/utils.c utils/chunk.c utils/debug.c utils/enum.c utils/identification.c \
|
utils/utils.c utils/chunk.c utils/debug.c utils/enum.c utils/identification.c \
|
||||||
utils/lexparser.c utils/optionsfrom.c utils/capabilities.c utils/backtrace.c \
|
utils/lexparser.c utils/optionsfrom.c utils/capabilities.c utils/backtrace.c \
|
||||||
utils/parser_helper.c utils/test.c utils/process.c utils/utils/strerror.c \
|
utils/parser_helper.c utils/test.c utils/process.c utils/utils/strerror.c \
|
||||||
utils/utils/atomics.c utils/utils/string.c utils/utils/memory.c
|
utils/utils/atomics.c utils/utils/string.c utils/utils/memory.c \
|
||||||
|
utils/utils/tty.c
|
||||||
|
|
||||||
if !USE_WINDOWS
|
if !USE_WINDOWS
|
||||||
libstrongswan_la_SOURCES += \
|
libstrongswan_la_SOURCES += \
|
||||||
|
@ -109,7 +110,7 @@ utils/printf_hook/printf_hook_vstr.h utils/printf_hook/printf_hook_builtin.h \
|
||||||
utils/parser_helper.h utils/test.h utils/integrity_checker.h utils/process.h \
|
utils/parser_helper.h utils/test.h utils/integrity_checker.h utils/process.h \
|
||||||
utils/utils/strerror.h utils/compat/windows.h utils/compat/apple.h \
|
utils/utils/strerror.h utils/compat/windows.h utils/compat/apple.h \
|
||||||
utils/utils/atomics.h utils/utils/types.h utils/utils/byteorder.h \
|
utils/utils/atomics.h utils/utils/types.h utils/utils/byteorder.h \
|
||||||
utils/utils/string.h utils/utils/memory.h
|
utils/utils/string.h utils/utils/memory.h utils/utils/tty.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
library.lo : $(top_builddir)/config.status
|
library.lo : $(top_builddir)/config.status
|
||||||
|
|
|
@ -322,73 +322,6 @@ bool mkdir_p(const char *path, mode_t mode)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ENUM(tty_color_names, TTY_RESET, TTY_BG_DEF,
|
|
||||||
"\e[0m",
|
|
||||||
"\e[1m",
|
|
||||||
"\e[4m",
|
|
||||||
"\e[5m",
|
|
||||||
"\e[30m",
|
|
||||||
"\e[31m",
|
|
||||||
"\e[32m",
|
|
||||||
"\e[33m",
|
|
||||||
"\e[34m",
|
|
||||||
"\e[35m",
|
|
||||||
"\e[36m",
|
|
||||||
"\e[37m",
|
|
||||||
"\e[39m",
|
|
||||||
"\e[40m",
|
|
||||||
"\e[41m",
|
|
||||||
"\e[42m",
|
|
||||||
"\e[43m",
|
|
||||||
"\e[44m",
|
|
||||||
"\e[45m",
|
|
||||||
"\e[46m",
|
|
||||||
"\e[47m",
|
|
||||||
"\e[49m",
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the escape string for a given TTY color, empty string on non-tty FILE
|
|
||||||
*/
|
|
||||||
char* tty_escape_get(int fd, tty_escape_t escape)
|
|
||||||
{
|
|
||||||
if (!isatty(fd))
|
|
||||||
{
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
switch (escape)
|
|
||||||
{
|
|
||||||
case TTY_RESET:
|
|
||||||
case TTY_BOLD:
|
|
||||||
case TTY_UNDERLINE:
|
|
||||||
case TTY_BLINKING:
|
|
||||||
#ifdef WIN32
|
|
||||||
return "";
|
|
||||||
#endif
|
|
||||||
case TTY_FG_BLACK:
|
|
||||||
case TTY_FG_RED:
|
|
||||||
case TTY_FG_GREEN:
|
|
||||||
case TTY_FG_YELLOW:
|
|
||||||
case TTY_FG_BLUE:
|
|
||||||
case TTY_FG_MAGENTA:
|
|
||||||
case TTY_FG_CYAN:
|
|
||||||
case TTY_FG_WHITE:
|
|
||||||
case TTY_FG_DEF:
|
|
||||||
case TTY_BG_BLACK:
|
|
||||||
case TTY_BG_RED:
|
|
||||||
case TTY_BG_GREEN:
|
|
||||||
case TTY_BG_YELLOW:
|
|
||||||
case TTY_BG_BLUE:
|
|
||||||
case TTY_BG_MAGENTA:
|
|
||||||
case TTY_BG_CYAN:
|
|
||||||
case TTY_BG_WHITE:
|
|
||||||
case TTY_BG_DEF:
|
|
||||||
return enum_to_name(tty_color_names, escape);
|
|
||||||
/* warn if a escape code is missing */
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef HAVE_CLOSEFROM
|
#ifndef HAVE_CLOSEFROM
|
||||||
/**
|
/**
|
||||||
* Described in header.
|
* Described in header.
|
||||||
|
|
|
@ -81,6 +81,7 @@
|
||||||
#include "utils/string.h"
|
#include "utils/string.h"
|
||||||
#include "utils/memory.h"
|
#include "utils/memory.h"
|
||||||
#include "utils/strerror.h"
|
#include "utils/strerror.h"
|
||||||
|
#include "utils/tty.h"
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
# include "compat/apple.h"
|
# include "compat/apple.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -355,46 +356,6 @@ enum status_t {
|
||||||
*/
|
*/
|
||||||
extern enum_name_t *status_names;
|
extern enum_name_t *status_names;
|
||||||
|
|
||||||
typedef enum tty_escape_t tty_escape_t;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Excape codes for tty colors
|
|
||||||
*/
|
|
||||||
enum tty_escape_t {
|
|
||||||
/** text properties */
|
|
||||||
TTY_RESET,
|
|
||||||
TTY_BOLD,
|
|
||||||
TTY_UNDERLINE,
|
|
||||||
TTY_BLINKING,
|
|
||||||
|
|
||||||
/** foreground colors */
|
|
||||||
TTY_FG_BLACK,
|
|
||||||
TTY_FG_RED,
|
|
||||||
TTY_FG_GREEN,
|
|
||||||
TTY_FG_YELLOW,
|
|
||||||
TTY_FG_BLUE,
|
|
||||||
TTY_FG_MAGENTA,
|
|
||||||
TTY_FG_CYAN,
|
|
||||||
TTY_FG_WHITE,
|
|
||||||
TTY_FG_DEF,
|
|
||||||
|
|
||||||
/** background colors */
|
|
||||||
TTY_BG_BLACK,
|
|
||||||
TTY_BG_RED,
|
|
||||||
TTY_BG_GREEN,
|
|
||||||
TTY_BG_YELLOW,
|
|
||||||
TTY_BG_BLUE,
|
|
||||||
TTY_BG_MAGENTA,
|
|
||||||
TTY_BG_CYAN,
|
|
||||||
TTY_BG_WHITE,
|
|
||||||
TTY_BG_DEF,
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the escape string for a given TTY color, empty string on non-tty fd
|
|
||||||
*/
|
|
||||||
char* tty_escape_get(int fd, tty_escape_t escape);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle struct timeval like an own type.
|
* Handle struct timeval like an own type.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2008-2014 Tobias Brunner
|
||||||
|
* Copyright (C) 2005-2008 Martin Willi
|
||||||
|
* Hochschule fuer Technik Rapperswil
|
||||||
|
*
|
||||||
|
* 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. See <http://www.fsf.org/copyleft/gpl.txt>.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <utils/utils.h>
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
ENUM(tty_color_names, TTY_RESET, TTY_BG_DEF,
|
||||||
|
"\e[0m",
|
||||||
|
"\e[1m",
|
||||||
|
"\e[4m",
|
||||||
|
"\e[5m",
|
||||||
|
"\e[30m",
|
||||||
|
"\e[31m",
|
||||||
|
"\e[32m",
|
||||||
|
"\e[33m",
|
||||||
|
"\e[34m",
|
||||||
|
"\e[35m",
|
||||||
|
"\e[36m",
|
||||||
|
"\e[37m",
|
||||||
|
"\e[39m",
|
||||||
|
"\e[40m",
|
||||||
|
"\e[41m",
|
||||||
|
"\e[42m",
|
||||||
|
"\e[43m",
|
||||||
|
"\e[44m",
|
||||||
|
"\e[45m",
|
||||||
|
"\e[46m",
|
||||||
|
"\e[47m",
|
||||||
|
"\e[49m",
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the escape string for a given TTY color, empty string on non-tty FILE
|
||||||
|
*/
|
||||||
|
char* tty_escape_get(int fd, tty_escape_t escape)
|
||||||
|
{
|
||||||
|
if (!isatty(fd))
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
switch (escape)
|
||||||
|
{
|
||||||
|
case TTY_RESET:
|
||||||
|
case TTY_BOLD:
|
||||||
|
case TTY_UNDERLINE:
|
||||||
|
case TTY_BLINKING:
|
||||||
|
#ifdef WIN32
|
||||||
|
return "";
|
||||||
|
#endif
|
||||||
|
case TTY_FG_BLACK:
|
||||||
|
case TTY_FG_RED:
|
||||||
|
case TTY_FG_GREEN:
|
||||||
|
case TTY_FG_YELLOW:
|
||||||
|
case TTY_FG_BLUE:
|
||||||
|
case TTY_FG_MAGENTA:
|
||||||
|
case TTY_FG_CYAN:
|
||||||
|
case TTY_FG_WHITE:
|
||||||
|
case TTY_FG_DEF:
|
||||||
|
case TTY_BG_BLACK:
|
||||||
|
case TTY_BG_RED:
|
||||||
|
case TTY_BG_GREEN:
|
||||||
|
case TTY_BG_YELLOW:
|
||||||
|
case TTY_BG_BLUE:
|
||||||
|
case TTY_BG_MAGENTA:
|
||||||
|
case TTY_BG_CYAN:
|
||||||
|
case TTY_BG_WHITE:
|
||||||
|
case TTY_BG_DEF:
|
||||||
|
return enum_to_name(tty_color_names, escape);
|
||||||
|
/* warn if a escape code is missing */
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2008-2014 Tobias Brunner
|
||||||
|
* Copyright (C) 2008 Martin Willi
|
||||||
|
* Hochschule fuer Technik Rapperswil
|
||||||
|
*
|
||||||
|
* 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. See <http://www.fsf.org/copyleft/gpl.txt>.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup tty_i tty
|
||||||
|
* @{ @ingroup utils_i
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TTY_H_
|
||||||
|
#define TTY_H_
|
||||||
|
|
||||||
|
typedef enum tty_escape_t tty_escape_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Excape codes for tty colors
|
||||||
|
*/
|
||||||
|
enum tty_escape_t {
|
||||||
|
/** text properties */
|
||||||
|
TTY_RESET,
|
||||||
|
TTY_BOLD,
|
||||||
|
TTY_UNDERLINE,
|
||||||
|
TTY_BLINKING,
|
||||||
|
|
||||||
|
/** foreground colors */
|
||||||
|
TTY_FG_BLACK,
|
||||||
|
TTY_FG_RED,
|
||||||
|
TTY_FG_GREEN,
|
||||||
|
TTY_FG_YELLOW,
|
||||||
|
TTY_FG_BLUE,
|
||||||
|
TTY_FG_MAGENTA,
|
||||||
|
TTY_FG_CYAN,
|
||||||
|
TTY_FG_WHITE,
|
||||||
|
TTY_FG_DEF,
|
||||||
|
|
||||||
|
/** background colors */
|
||||||
|
TTY_BG_BLACK,
|
||||||
|
TTY_BG_RED,
|
||||||
|
TTY_BG_GREEN,
|
||||||
|
TTY_BG_YELLOW,
|
||||||
|
TTY_BG_BLUE,
|
||||||
|
TTY_BG_MAGENTA,
|
||||||
|
TTY_BG_CYAN,
|
||||||
|
TTY_BG_WHITE,
|
||||||
|
TTY_BG_DEF,
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the escape string for a given TTY color, empty string on non-tty fd
|
||||||
|
*/
|
||||||
|
char* tty_escape_get(int fd, tty_escape_t escape);
|
||||||
|
|
||||||
|
#endif /** TTY_H_ @} */
|
Loading…
Reference in New Issue