1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-06-21 00:25:37 +00:00
elinks/src/terminal/terminfo.c
2023-08-25 20:23:01 +02:00

106 lines
1.5 KiB
C

/** Terminfo interfaces
* @file */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_TERM_H
#include <term.h>
#endif
#include "elinks.h"
#include "terminfo.h"
int
terminfo_setupterm(char *term, int fildes)
{
return setupterm(term, fildes, NULL);
}
const char *
terminfo_clear_screen(void)
{
char *res = tiparm(clear_screen);
return res ?: "";
}
const char *
terminfo_set_bold(int arg)
{
char *res = tiparm(arg ? enter_bold_mode : exit_attribute_mode);
return res ?: "";
}
const char *
terminfo_set_italics(int arg)
{
char *res = tiparm(arg ? enter_italics_mode : exit_italics_mode);
return res ?: "";
}
const char *
terminfo_set_underline(int arg)
{
char *res = tiparm(arg ? enter_underline_mode : exit_underline_mode);
return res ?: "";
}
const char *
terminfo_set_strike(int arg)
{
char *res = tigetstr(arg ? "smxx" : "rmxx");
return res ?: "";
}
const char *
terminfo_set_background(int arg)
{
char *res = tiparm(set_a_background, arg);
return res ?: "";
}
const char *
terminfo_set_foreground(int arg)
{
char *res = tiparm(set_a_foreground, arg);
return res ?: "";
}
const char *
terminfo_set_standout(int arg)
{
char *res = tiparm(arg ? enter_standout_mode : exit_standout_mode);
return res ?: "";
}
int
terminfo_max_colors(void)
{
return max_colors;
}
const char *
terminfo_cursor_address(int y, int x)
{
char *res = tiparm(cursor_address, y, x);
return res ?: "";
}