mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-08-05 17:52:29 +00:00
5725eb3773
- Add TORRENT_WITHOUT_NCURSES macro in scripts/checks.m4 - Clear CURSES_LIBS/CFLAGS in the macro instead of if/else in configure.ac - Restore simple LIBS/CFLAGS lines in configure.ac - Add missing set_escdelay stub
109 lines
3.4 KiB
C
109 lines
3.4 KiB
C
// Dummy ncurses stub header for building rtorrent without ncurses.
|
|
// Provides types, macros, and no-op function stubs so the codebase
|
|
// compiles without a real curses library. All display functions become
|
|
// no-ops; use with system.daemon.set = true.
|
|
|
|
#ifndef RTORRENT_DISPLAY_CURSES_STUB_H
|
|
#define RTORRENT_DISPLAY_CURSES_STUB_H
|
|
|
|
#include <cstdarg>
|
|
#include <cstdio>
|
|
#include <cstddef>
|
|
|
|
// Opaque window type
|
|
typedef void* WINDOW;
|
|
|
|
// Character type used by curses
|
|
typedef unsigned int chtype;
|
|
typedef unsigned int attr_t;
|
|
|
|
// The standard screen
|
|
extern WINDOW* stdscr;
|
|
|
|
// Boolean constants and return codes
|
|
#ifndef TRUE
|
|
#define TRUE 1
|
|
#endif
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#endif
|
|
#ifndef ERR
|
|
#define ERR (-1)
|
|
#endif
|
|
|
|
// Attribute constants
|
|
#define A_NORMAL 0
|
|
#define A_STANDOUT (1U << 8)
|
|
#define A_UNDERLINE (1U << 9)
|
|
#define A_REVERSE (1U << 10)
|
|
#define A_BLINK (1U << 11)
|
|
#define A_DIM (1U << 12)
|
|
#define A_BOLD (1U << 13)
|
|
|
|
// Color support
|
|
#define COLORS 0
|
|
#define COLOR_BLACK 0
|
|
#define COLOR_RED 1
|
|
#define COLOR_GREEN 2
|
|
#define COLOR_YELLOW 3
|
|
#define COLOR_BLUE 4
|
|
#define COLOR_MAGENTA 5
|
|
#define COLOR_CYAN 6
|
|
#define COLOR_WHITE 7
|
|
|
|
#define COLOR_PAIR(n) 0
|
|
|
|
// Key constants
|
|
#define KEY_DOWN 0x102
|
|
#define KEY_UP 0x103
|
|
#define KEY_LEFT 0x104
|
|
#define KEY_RIGHT 0x105
|
|
#define KEY_HOME 0x106
|
|
#define KEY_BACKSPACE 0x107
|
|
#define KEY_DC 0x14a
|
|
#define KEY_ENTER 0x157
|
|
#define KEY_NPAGE 0x152
|
|
#define KEY_PPAGE 0x153
|
|
#define KEY_END 0x168
|
|
#define KEY_MOUSE 0x199
|
|
#define KEY_RESIZE 0x19a
|
|
|
|
// Stubbed functions
|
|
inline WINDOW* initscr() { return nullptr; }
|
|
inline int endwin() { return 0; }
|
|
inline WINDOW* newwin(int, int, int, int) { return nullptr; }
|
|
inline int delwin(WINDOW*) { return 0; }
|
|
inline int wresize(WINDOW*, int, int) { return 0; }
|
|
inline int mvwin(WINDOW*, int, int) { return 0; }
|
|
inline int wnoutrefresh(WINDOW*) { return 0; }
|
|
inline int redrawwin(WINDOW*) { return 0; }
|
|
inline int werase(WINDOW*) { return 0; }
|
|
inline int wmove(WINDOW*, int, int) { return 0; }
|
|
inline int vw_printw(WINDOW*, char*, va_list) { return 0; }
|
|
inline int waddch(WINDOW*, const chtype) { return 0; }
|
|
inline int mvwaddch(WINDOW*, int, int, const chtype) { return 0; }
|
|
inline int mvwchgat(WINDOW*, int, int, int, attr_t, short, const void*) { return 0; }
|
|
inline int wattrset(WINDOW*, int) { return 0; }
|
|
inline int wattr_get(WINDOW*, attr_t*, short*, void*) { return 0; }
|
|
inline int wattr_set(WINDOW*, attr_t, short, void*) { return 0; }
|
|
inline int doupdate() { return 0; }
|
|
inline int start_color() { return 0; }
|
|
inline int use_default_colors() { return 0; }
|
|
inline int raw() { return 0; }
|
|
inline int noraw() { return 0; }
|
|
inline int noecho() { return 0; }
|
|
inline int nodelay(WINDOW*, bool) { return 0; }
|
|
inline int keypad(WINDOW*, bool) { return 0; }
|
|
inline int curs_set(int) { return 0; }
|
|
inline int init_pair(short, short, short) { return 0; }
|
|
inline int pair_content(short, short*, short*) { return 0; }
|
|
inline int resizeterm(int, int) { return 0; }
|
|
inline int getch() { return ERR; }
|
|
inline int set_escdelay(int) { return 0; }
|
|
|
|
// getyx / getmaxyx are macros in real ncurses; stub them as no-ops
|
|
#define getyx(w, y, x) do { (y) = 0; (x) = 0; } while (0)
|
|
#define getmaxyx(w, y, x) do { (y) = 24; (x) = 80; } while (0)
|
|
|
|
#endif // RTORRENT_DISPLAY_CURSES_STUB_H
|