Compare commits
9 Commits
94a77a10d8
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
f9a102456f
|
|||
|
63dde38bff
|
|||
|
8844026f26
|
|||
|
c64457d4cd
|
|||
|
97cbd7e80c
|
|||
|
2518b53e5a
|
|||
|
8265f075b1
|
|||
|
2f348c79b7
|
|||
|
18d16c1edb
|
27
.clang-format
Normal file
27
.clang-format
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# clang-format is fairly limited, and these rules are approximate:
|
||||||
|
# - array initializers can get terribly mangled with clang-format 12.0,
|
||||||
|
# - sometimes it still aligns with space characters,
|
||||||
|
# - struct name NL { NL ... NL } NL name; is unachievable.
|
||||||
|
BasedOnStyle: GNU
|
||||||
|
ColumnLimit: 80
|
||||||
|
IndentWidth: 4
|
||||||
|
TabWidth: 4
|
||||||
|
UseTab: ForContinuationAndIndentation
|
||||||
|
BreakBeforeBraces: Allman
|
||||||
|
SpaceAfterCStyleCast: true
|
||||||
|
AlignAfterOpenBracket: DontAlign
|
||||||
|
AlignOperands: DontAlign
|
||||||
|
AlignConsecutiveMacros: Consecutive
|
||||||
|
AllowAllArgumentsOnNextLine: false
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: false
|
||||||
|
IndentGotoLabels: false
|
||||||
|
|
||||||
|
# IncludeCategories has some potential, but it may also break the build.
|
||||||
|
# Note that the documentation says the value should be "Never".
|
||||||
|
SortIncludes: false
|
||||||
|
|
||||||
|
# This is a compromise, it generally works out aesthetically better.
|
||||||
|
BinPackArguments: false
|
||||||
|
|
||||||
|
# Unfortunately, this can't be told to align to column 40 or so.
|
||||||
|
SpacesBeforeTrailingComments: 2
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -7,3 +7,5 @@
|
|||||||
/termo.files
|
/termo.files
|
||||||
/termo.creator*
|
/termo.creator*
|
||||||
/termo.includes
|
/termo.includes
|
||||||
|
/termo.cflags
|
||||||
|
/termo.cxxflags
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required (VERSION 3.0)
|
cmake_minimum_required (VERSION 3.0...3.27)
|
||||||
project (termo VERSION 0.1.0 LANGUAGES C)
|
project (termo VERSION 0.1.0 LANGUAGES C)
|
||||||
|
|
||||||
if ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC)
|
if ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC)
|
||||||
@@ -61,6 +61,8 @@ else ()
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# -liconv may or may not be a part of libc
|
# -liconv may or may not be a part of libc
|
||||||
|
find_path (iconv_INCLUDE_DIRS iconv.h)
|
||||||
|
include_directories (${iconv_INCLUDE_DIRS})
|
||||||
find_library (iconv_LIBRARIES iconv)
|
find_library (iconv_LIBRARIES iconv)
|
||||||
if (iconv_LIBRARIES)
|
if (iconv_LIBRARIES)
|
||||||
list (APPEND lib_libraries ${iconv_LIBRARIES})
|
list (APPEND lib_libraries ${iconv_LIBRARIES})
|
||||||
@@ -164,9 +166,9 @@ file (WRITE "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.pc"
|
|||||||
"Name: ${PROJECT_NAME}\n"
|
"Name: ${PROJECT_NAME}\n"
|
||||||
"Description: Terminal key input library\n"
|
"Description: Terminal key input library\n"
|
||||||
"Version: ${PROJECT_VERSION}\n"
|
"Version: ${PROJECT_VERSION}\n"
|
||||||
"Libs: -L${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR} -l${project_LIB_NAME}\n"
|
"Libs: -L${CMAKE_INSTALL_FULL_LIBDIR} -l${project_LIB_NAME}\n"
|
||||||
"Libs.private: ${lib_libraries}\n"
|
"Libs.private: ${lib_libraries}\n"
|
||||||
"Cflags: -I${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/${project_INCLUDE_NAME}\n")
|
"Cflags: -I${CMAKE_INSTALL_FULL_INCLUDEDIR}/${project_INCLUDE_NAME}\n")
|
||||||
install (FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.pc"
|
install (FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.pc"
|
||||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ pkg_check_modules (Ncursesw QUIET ncursesw)
|
|||||||
set (required_vars Ncursesw_LIBRARIES)
|
set (required_vars Ncursesw_LIBRARIES)
|
||||||
if (NOT Ncursesw_FOUND)
|
if (NOT Ncursesw_FOUND)
|
||||||
find_library (Ncursesw_LIBRARIES NAMES ncursesw)
|
find_library (Ncursesw_LIBRARIES NAMES ncursesw)
|
||||||
find_path (Ncursesw_INCLUDE_DIRS ncurses.h)
|
find_path (Ncursesw_INCLUDE_DIRS ncurses.h PATH_SUFFIXES ncurses)
|
||||||
list (APPEND required_vars Ncursesw_INCLUDE_DIRS)
|
list (APPEND required_vars Ncursesw_INCLUDE_DIRS)
|
||||||
endif (NOT Ncursesw_FOUND)
|
endif (NOT Ncursesw_FOUND)
|
||||||
|
|
||||||
|
|||||||
14
driver-ti.c
14
driver-ti.c
@@ -246,30 +246,28 @@ load_terminfo (termo_ti_t *ti, const char *term)
|
|||||||
set_mouse_string = tigetstr ("XM");
|
set_mouse_string = tigetstr ("XM");
|
||||||
#endif
|
#endif
|
||||||
if (!set_mouse_string || set_mouse_string == (char *) -1)
|
if (!set_mouse_string || set_mouse_string == (char *) -1)
|
||||||
ti->set_mouse_string = strdup ("\E[?1000%?%p1%{1}%=%th%el%;");
|
ti->set_mouse_string = strdup ("\x1b[?1000%?%p1%{1}%=%th%el%;");
|
||||||
else
|
else
|
||||||
ti->set_mouse_string = strdup (set_mouse_string);
|
ti->set_mouse_string = strdup (set_mouse_string);
|
||||||
|
|
||||||
bool have_mouse = false;
|
// We handle 1006 and 1015 unconditionally in driver-csi.c,
|
||||||
if (!mouse_report_string && strstr (term, "xterm"))
|
// and don't want to have the handling diverted by recent terminfo;
|
||||||
mouse_report_string = "\x1b[M";
|
// let's hardcode the ancient 1000 sequence locally
|
||||||
if (mouse_report_string)
|
if (mouse_report_string)
|
||||||
{
|
{
|
||||||
have_mouse = true;
|
|
||||||
|
|
||||||
trie_node_t *node = malloc (sizeof *node);
|
trie_node_t *node = malloc (sizeof *node);
|
||||||
if (!node)
|
if (!node)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
node->type = TYPE_MOUSE;
|
node->type = TYPE_MOUSE;
|
||||||
if (!insert_seq (ti, mouse_report_string, node))
|
if (!insert_seq (ti, "\x1b[M", node))
|
||||||
{
|
{
|
||||||
free (node);
|
free (node);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!have_mouse)
|
if (!mouse_report_string && strstr (term, "xterm") != term)
|
||||||
ti->tk->guessed_mouse_proto = TERMO_MOUSE_PROTO_NONE;
|
ti->tk->guessed_mouse_proto = TERMO_MOUSE_PROTO_NONE;
|
||||||
else if (strstr (term, "rxvt") == term)
|
else if (strstr (term, "rxvt") == term)
|
||||||
// urxvt didn't understand the SGR protocol until version 9.25,
|
// urxvt didn't understand the SGR protocol until version 9.25,
|
||||||
|
|||||||
1
termo.c
1
termo.c
@@ -1856,4 +1856,3 @@ termo_keycmp (termo_t *tk,
|
|||||||
}
|
}
|
||||||
return key1.modifiers - key2.modifiers;
|
return key1.modifiers - key2.modifiers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
|
|
||||||
plan_tests (6);
|
plan_tests (6);
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
int fd[2];
|
int fd[2];
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
|
|||||||
@@ -2,8 +2,12 @@
|
|||||||
#include "../termo.h"
|
#include "../termo.h"
|
||||||
#include "taplib.h"
|
#include "taplib.h"
|
||||||
|
|
||||||
int main (int argc, char *argv[])
|
int
|
||||||
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_sym_t sym;
|
termo_sym_t sym;
|
||||||
const char *end;
|
const char *end;
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
char buffer[16];
|
char buffer[16];
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
const char *endp;
|
const char *endp;
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key1, key2;
|
termo_key_t key1, key2;
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
const char *endp;
|
const char *endp;
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
termo_mouse_event_t ev;
|
termo_mouse_event_t ev;
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
#include "../termo.h"
|
#include "../termo.h"
|
||||||
#include "taplib.h"
|
#include "taplib.h"
|
||||||
|
|
||||||
int main (int argc, char *argv[])
|
int
|
||||||
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
int line, col;
|
int line, col;
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
int initial, mode, value;
|
int initial, mode, value;
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
termo_t *tk;
|
termo_t *tk;
|
||||||
termo_key_t key;
|
termo_key_t key;
|
||||||
long args[16];
|
long args[16];
|
||||||
|
|||||||
Reference in New Issue
Block a user