C-Menu 0.2.9
A User Interface Toolkit
Loading...
Searching...
No Matches
view.h
Go to the documentation of this file.
1/** @file view.h
2 @brief View data structures, enums, types, end external declarations
3 @author Bill Waller
4 Copyright (c) 2025
5 MIT License
6 billxwaller@gmail.com
7 @date 2026-02-09
8 */
9
10#ifndef _VIEW_H
11#define _VIEW_H 1
12
13#define _GNU_SOURCE
14// #define _XOPEN_SOURCE_EXTENDED 1
15#define NCURSES_WIDECHAR 1
16#ifdef UAL_UI
17#include "../ui/ui_ncurses_internal.h"
18#include "ui_backend.h"
19#include <ncursesw/ncurses.h>
20#include <ncursesw/panel.h>
21#else
22#include "../ui/ui_notcurses_internal.h"
23#include "ui_backend.h"
24#include <notcurses/notcurses.h>
25#endif
26
27#include <signal.h>
28#include <stddef.h>
29#include <stdlib.h>
30#ifndef _COMMON_H
31typedef struct Init Init;
32#endif
33#define COLOR_LEN 8
34#define NPOS 256
35#define NMARKS 256
36#define MAXLEN 256
37#define NULSL
38#define NULL_POSITION -1
39#define VBUFSIZ 65536
40#define BUFSIZ 8192
41#define PAD_COLS 4096
42
43typedef enum { PT_NONE,
46 PT_STRING } PromptType;
47
48#define LINE_TBL_INCR
49 1024 // number of entries to add to line_tbl when reallocating
50
51typedef struct {
52 off_t sl_ln_no; // Line number
53 char *sl_s[MAXLEN]; // Stripped subline
54 UiCell *sl_cc[MAXLEN]; // Subline cchar_t array
55 uint sl_cols[MAXLEN]; // Column widths (for cursor/layout calculations)
56 uint sl_cells[MAXLEN]; // Number of cchar_t items in this subline chunk
57 uint sl_idx; // Index tracking sublines
58 uint sl_cnt; // Number of sublines
59} SplitLine;
60
61typedef struct {
62 uint fg_clr_idx; /**< foreground_color */
63 uint bg_clr_idx; /**< background_color */
64 uint bo_clr_idx; /**< bold_color */
65 uint ln_clr_idx; /**< line_number_color */
66 uint ln_bg_clr_idx; /**< line_number_background_color */
67 char fg_clr_x[COLOR_LEN]; /**< foreground_color in hex, e.g. "#RRGGBB" */
68 char bg_clr_x[COLOR_LEN]; /**< background_color in hex, e.g. "#RRGGBB" */
69 char bo_clr_x[COLOR_LEN]; /**< bold_color in hex, e.g. "#RRGGBB" */
70 char ln_clr_x[COLOR_LEN]; /**< line_number_color in hex, e.g. "#RRGGBB" */
71 char ln_bg_clr_x[COLOR_LEN]; /**< line_number_background_color in hex */
72 uint lines; /**< number of lines for window size */
73 uint cols; /**< number of columns for window size */
74 uint begy; /**< screen line upper left corner of window */
75 uint begx; /**< screen column upper left corner of window */
76 char provider_cmd[MAXLEN]; /**< command provides input */
77 char receiver_cmd[MAXLEN]; /**< command receives output */
78 char cmd[MAXLEN]; /**< command to execute in foreground, e.g. an editor */
79 char cmd_all[MAXLEN]; /**< View - command to execute at start of program */
80 char prompt_str[MAXLEN]; /**< prompt string for chyron */
81 char title[MAXLEN]; /**< title string for window */
82 int argc; /**< command line arguments count */
83 char **argv; /**< command line arguments vector */
84 int optind; /**< getopt pointer to non-option arguments in argv */
85 bool f_ignore_case; /**< View - ignore case in search */
86 bool f_at_end_remove; /**< obsolete, unneeded */
87 bool f_squeeze; /**< View - print one line for each group of blank lines */
88 bool f_strip_ansi; /**< strip ansi escape sequences when writing buffer */
89 bool f_multiple_cmd_args; /**< View - put multiple arguments in a single */
90
91#ifdef ASDF
92 WINDOW *box_win;
93 PANEL *box_pan;
94 WINDOW *win_win;
95 WINDOW *lnno_win;
96 WINDOW *cmdln_win;
97 WINDOW *pad;
98 WINDOW *pad_view_win;
99 PANEL *pad_view_pan;
100#endif
101 UiSurface *sfc; /**< pointer to UI surface structure */
102 char tmp_prompt_str[MAXLEN]; /**< temporary prompt string used when building
103 prompt */
104 int curr_argc; /**< current argument count when processing multiple */
105
106 char cmd_arg[MAXLEN]; /**< argument string */
107 int tab_stop; /**< number of spaces between tab stops */
108 int h_shift; /**< horizontal scroll shift width */
109 int next_cmd_char; /**< index of next character in cmd string to process
110 when building prompt */
111 bool f_bod; /**< beginning of data */
112 bool f_eod; /**< end of data */
113 bool f_forward; /**< motion flag forward */
114 bool f_is_pipe; /**< input is from a pipe */
115 char file_name[MAXLEN]; /**< basename of file being viewed */
116 bool f_redisplay_page; /**< flag indicating page needs to be redisplayed */
117 bool f_displaying_help; /**< currently didsplaying help information */
118 bool f_first_iter; /**< first iteration of search */
119 bool f_search_complete; /**< Entire file has been searched */
120 bool f_full_screen; /**< default mode if lines and columns not specified */
121 bool f_timer; /**< time commands and display elapsed time in prompt */
122
123 bool f_cmd; /**< cmd is verified */
124 bool f_cmd_all; /**< cmd_all is verified */
125 char cur_file_str[MAXLEN]; /**< file currently open for viewing */
126 char line_in_s[PAD_COLS]; /**< raw input line from buffer */
127 char line_out_s[PAD_COLS]; /**< scratch buffer */
128 char stripped_line_out[PAD_COLS]; /**< printable characters only */
129 UiCell cmplx_buf[PAD_COLS]; /**< complex character buffer */
130 char *line_out_p; /**< pointer to current position in line_out_s */
131 char *line_in_beg_p; /**< pointer used in matching search targets */
132 char *line_in_end_p; /**< pointer used in matching search targets */
133 uint cury; /**< cury is the pad row of the cursor location */
134 uint curx; /**< curx is the pad column of the cursor location */
135 uint scroll_lines; /**< number of lines to scroll */
136 uint cmd_line; /**< command line location on pad */
137 uint maxcol; /**< length of longest line on pad */
138 uint pminrow; /**< first pad row displayed in view window */
139 uint pmincol; /**< first pad column displayed in view window */
140 uint sminrow; /**< screen position of first row of pad displayed in view
141 window */
142 uint smincol; /**< screen position of first column of pad displayed in view
143 window */
144 uint smaxrow; /**< screen position of last row of pad displayed in view
145 windiow */
146 uint smaxcol; /**< screen position of last column of pad displayed in view
147 window */
148 uint first_match_x; /**< first column of current search match in
149 stripped_line_out */
150 uint last_match_x; /**< last column of current search match in
151 stripped_line_out */
152 char in_spec[MAXLEN]; /**< input file spec */
153 char out_spec[MAXLEN]; /**< output file spec */
154 char help_spec[MAXLEN]; /**< help file spec */
155 bool f_in_spec; /**< input file verified */
156 bool f_out_spec; /**< output file verified */
157 bool f_help_spec; /**< output file verified */
158 char *file_spec_ptr; /**< pointer to current file spec */
159 char *next_file_spec_ptr; /**< pointer to next file spec */
160 char *tmp_file_name_ptr; /**< pointer to temporary file spec */
161 off_t file_size; /**< size of file being viewed */
162 off_t file_pos; /**< current file position */
163 off_t prev_file_pos; /**< previous file position */
164 off_t page_top_pos; /**< file position of top line displayed */
165 off_t page_bot_pos; /**< file position of last line displayed */
166 off_t page_bot_end_pos; /**< file position of last line displayed */
167 off_t srch_curr_pos; /**< current search position */
168 off_t srch_beg_pos; /**< file position when search started */
169 off_t page_top_ln_no; /**< line number of top line displayed */
170 off_t page_bot_ln_no; /**< line number of last line displayed */
171 off_t srch_curr_ln_no; /**< current search position */
172 off_t srch_beg_ln_no; /**< file position when search started */
173 off_t mark_tbl[NMARKS]; /**< not implemented */
174 bool f_in_pipe; /**< input is from a pipe */
175 int in_fd; /**< input file descriptor */
176 int tmp_fd; /**< temporary file descriptor */
177 int out_fd; /**< output file descriptor */
178 FILE *in_fp; /**< pointer to input stream data structure */
179 int stdin_fd; /**< standard input file descriptor */
180 FILE *stdin_fp; /**< pointer to standard input stream data structure */
181 int stdout_fd; /**< standard output file descriptor */
182 FILE *stdout_fp; /**< pointer to standard output stream data structure */
183 char *buf; /**< pointer to first byte of virtual buffer */
184 char *buf_curr_ptr; /**< pointer to current position in virtual buffer */
185 char *buf_end_ptr; /**< pointer to first byte after end of data in virtual
186 buffer */
187 char *lnbuf; /**< pointer to first byte of virtual buffer */
188 char *lnbuf_curr_ptr; /**< pointer to first byte of virtual buffer */
189 char *lnbuf_end_ptr; /**< pointer to first byte after end of data in virtual
190 buffer */
191 uint ln_win_lines; /**< number of lines in line number window */
192 uint ln_win_cols; /**< number of columns in line number window */
193 bool f_ln; /**< flag - number lines */
194 off_t ln_no; /**< line number */
195 off_t ln_no_max; /**< last line number */
196 char ln_s[10]; /**< line number formatted string */
197 off_t *ln_tbl; /**< line number table - array of file positions */
198 off_t ln_tbl_size; /**< number of entries allocated in line_tbl */
199 off_t ln_tbl_cnt; /**< number of entries used in line_tbl */
200 off_t ln_max_pos; /**< position of last page number increment */
201 bool wrap; /** flag - wrap lines longer than window width */
202 SplitLine cur; /**< split line structure for current line displayed */
203 bool page_top_sl; /**< flag - flag top line split */
204 bool page_bot_sl; /**< flag - flag bottom line split */
205 uint page_top_sl_idx; /**< flag - top line split index */
206 uint page_bot_sl_idx; /**< flag - bottom line split index */
207 uint page_top_sl_cnt; /**< flag - top line split count */
208 uint page_bot_sl_cnt; /**< flag - bottom line split count */
209} View;
210// extern View *view;
211
212typedef struct {
213 View *items;
214 size_t capacity;
215 size_t top;
216} ViewStack;
217
218extern int get_cmd_spec(View *, char *);
219extern void go_to_position(View *, long);
220extern void cat_file(View *);
221extern char err_msg[MAXLEN];
222extern int view_accept_cmd(View *);
223#endif
void form_help(char *)
#define FIELD_MAXLEN
Definition form.h:18
@ FF_DECIMAL_INT
Definition form.h:50
@ FF_STRING
Definition form.h:48
@ FF_HEX_INT
Definition form.h:52
@ FF_YYYYMMDD
Definition form.h:61
@ FF_HHMMSS
Definition form.h:63
@ FF_CURRENCY
Definition form.h:58
@ FF_FLOAT
Definition form.h:54
@ FF_INVALID
Definition form.h:68
@ FF_DOUBLE
Definition form.h:56
@ FF_APR
Definition form.h:65
@ FA_END
Definition form.h:42
@ FA_ACCEPT
Definition form.h:29
@ FA_EDIT
Definition form.h:40
@ FA_CALC
Definition form.h:37
@ FA_HELP
Definition form.h:31
@ FA_REFUSE
Definition form.h:35
@ FA_CANCEL
Definition form.h:33
@ FA_CONTINUE
Definition form.h:27
int form_read_description(Form *)
void form_display_chyron(Form *)
#define FIELD_MAXCNT
Definition form.h:19
int cmd_processor(Init *)
bool view_stack_peek(const ViewStack *, View *)
@ OT_INT
Definition common.h:85
@ OT_BOOL
Definition common.h:86
@ OT_HEX
Definition common.h:87
@ OT_STRING
Definition common.h:84
int popup_form(Init *, int, char **, uint, uint)
instantiate a form popup window
Definition popups.c:113
bool view_stack_push(ViewStack *, View)
int popup_menu(Init *, int, char **, uint, uint)
instantiate a menu popup window
Definition popups.c:53
void view_stack_free(ViewStack *)
@ FORM
Definition common.h:77
@ MENU
Definition common.h:79
@ VIEW
Definition common.h:76
@ PICK
Definition common.h:78
@ OG_FILES
Definition common.h:92
@ OG_DIRS
Definition common.h:93
@ OG_SPECS
Definition common.h:94
@ OG_MISC
Definition common.h:95
@ OG_FLAGS
Definition common.h:97
@ OG_PARMS
Definition common.h:96
@ OG_COL
Definition common.h:98
bool view_stack_pop(ViewStack *, View *)
int popup_pick(Init *, int, char **, uint, uint)
instantiate a pick popup window
Definition popups.c:83
bool view_stack_init(ViewStack *, size_t)
void destroy_view_win(Init *)
int popup_view(Init *, int, char **, uint, uint, uint, uint)
instantiate a view popup window
Definition popups.c:145
char minitrc[MAXLEN]
int mpick(int, char **, int, int, int, int, char *, int)
#define OBJ_MAXCNT
Definition pick.h:17
volatile sig_atomic_t sig_received
Definition sig.c:31
size_t rtrim(char *)
Trims trailing spaces from string s in place.
Definition futil.c:331
bool handle_signal(sig_atomic_t)
void win_Toggle_Attrs()
uint rgb_to_curses_clr(RGB *)
uint mlines
uint mbegx
bool strnfill(char *, char, uint)
void sig_shell_mode()
int cmenu_log_fd
Definition futil.c:47
void get_rfc3339_s(char *, size_t)
bool f_have_shell_tioctl
Definition scriou.c:24
bool waitpid_with_timeout(pid_t, uint)
void init_stdscr()
bool wait_destroy(Chyron *)
ushort cp_ln_fg
int bare_box_new(uint, uint, uint, uint, char *)
char stdio_names_str[4096]
Definition futil.c:127
int display_ok_message(char *)
bool verify_dir_q(char *, uint)
uint dbgfd
@ F_REG
Definition cm.h:281
@ F_BLK
Definition cm.h:279
@ F_FIFO
Definition cm.h:274
@ F_F0
Definition cm.h:273
@ F_F3
Definition cm.h:280
@ F_SOCK
Definition cm.h:285
@ F_CHR
Definition cm.h:275
@ F_F5
Definition cm.h:284
@ F_F1
Definition cm.h:276
@ F_DIR
Definition cm.h:277
@ F_UNKNOWN
Definition cm.h:287
@ F_F2
Definition cm.h:278
@ F_F4
Definition cm.h:282
@ F_LNK
Definition cm.h:283
@ F_F6
Definition cm.h:286
#define KEY_ALTF0
Definition cm.h:502
uint clr_pair_cnt
uint n_lines
void restore_wins()
ushort cp_bold
bool f_curses_open
Definition sig.c:33
uint clr_cnt
#define CHYRON_KEYS
Definition cm.h:375
struct termios shell_tioctl curses_tioctl
Definition scriou.c:34
ushort cp_cmdln_bg
ushort cp_highlight
void dump_opts()
uint clr_idx
void win_del()
void win_resize(uint, uint, char *)
bool construct_file_spec(char *, char *, char *, char *, char *, uint)
char * stdio_names(char *, char *)
Definition futil.c:1057
void write_log(char *)
unsigned char uchar
Definition cm.h:594
ushort cp_cmdln_fg
void check_panels(uint)
String mk_string(size_t)
Create a String struct with a dynamically allocated string.
Definition futil.c:1526
uint clr_pair_idx
uint mg_col
uint n_cols
FILE * cmenu_log_fp
bool verify_file_q(char *, uint)
#define XTERM_256COLOR
Definition cm.h:504
#define CHYRON_KEY_MAXLEN
Definition cm.h:372
void win_init_attrs()
bool f_debug
uint mg_line
#define SCR_COLS
Definition cm.h:51
void dump_opts_by_use(char *, char *)
char errmsg[]
Definition futil.c:131
int open_log(char *)
int wait_timeout
Definition futil.c:145
Chyron * wait_mk_chyron()
@ LF_EXC_REGEX
Definition cm.h:247
@ LF_HIDE
Definition cm.h:245
@ LF_ISUID
Definition cm.h:257
@ LF_IRUSR
Definition cm.h:255
@ LF_ICASE
Definition cm.h:246
@ LF_ISGID
Definition cm.h:256
@ LF_EXEC
Definition cm.h:249
@ LF_REGEX
Definition cm.h:248
@ LF_USER
Definition cm.h:250
@ LF_IXUSR
Definition cm.h:253
@ LF_IWUSR
Definition cm.h:254
@ CLR_CMDLN_BG
Definition cm.h:197
@ CLR_FILL_CHAR_BG
Definition cm.h:193
@ CLR_BOX_BG
Definition cm.h:187
@ CLR_FILL_CHAR_FG
Definition cm.h:192
@ CLR_FG
Definition cm.h:184
@ CLR_RED
Definition cm.h:168
@ CLR_NT_FG
Definition cm.h:198
@ CLR_BRACKETS_FG
Definition cm.h:190
@ CLR_YELLOW
Definition cm.h:170
@ CLR_IND_FG
Definition cm.h:188
@ CLR_BCYAN
Definition cm.h:181
@ CLR_TITLE_FG
Definition cm.h:206
@ CLR_WHITE
Definition cm.h:174
@ CLR_MAGENTA
Definition cm.h:172
@ CLR_BRACKETS_BG
Definition cm.h:191
@ CLR_NT_REV_BG
Definition cm.h:201
@ CLR_BLACK
Definition cm.h:167
@ CLR_BWHITE
Definition cm.h:182
@ CLR_LN_BG
Definition cm.h:195
@ CLR_NT_HL_REV_BG
Definition cm.h:205
@ CLR_BBLACK
Definition cm.h:175
@ CLR_LN_FG
Definition cm.h:194
@ CLR_NT_HL_FG
Definition cm.h:202
@ CLR_BBLUE
Definition cm.h:179
@ CLR_BGREEN
Definition cm.h:177
@ CLR_BYELLOW
Definition cm.h:178
@ CLR_BMAGENTA
Definition cm.h:180
@ CLR_BORANGE
Definition cm.h:183
@ CLR_NT_HL_BG
Definition cm.h:203
@ CLR_NT_HL_REV_FG
Definition cm.h:204
@ CLR_BG
Definition cm.h:185
@ CLR_BOX_FG
Definition cm.h:186
@ CLR_NT_BG
Definition cm.h:199
@ CLR_TITLE_BG
Definition cm.h:207
@ CLR_BRED
Definition cm.h:176
@ CLR_NCOLORS
Definition cm.h:208
@ CLR_BLUE
Definition cm.h:171
@ CLR_IND_BG
Definition cm.h:189
@ CLR_GREEN
Definition cm.h:169
@ CLR_CMDLN_FG
Definition cm.h:196
@ CLR_NT_REV_FG
Definition cm.h:200
@ CLR_CYAN
Definition cm.h:173
bool f_restore_screen
@ LF_FIFO
Definition cm.h:262
@ LF_DIR
Definition cm.h:264
@ LF_UNKNOWN
Definition cm.h:269
@ LF_SOCK
Definition cm.h:268
@ LF_BLK
Definition cm.h:265
@ LF_LNK
Definition cm.h:267
@ LF_REG
Definition cm.h:266
@ LF_CHR
Definition cm.h:263
FILE * tty_fp
#define COLOR_LEN
Definition cm.h:325
uint rgb_clr_to_cube(uint)
#define min(x, y)
min macro evaluates two expressions, returning least result
Definition cm.h:91
uint mbegy
bool f_have_curses_tioctl
Definition scriou.c:25
ushort cp_ln_bg
int wccp_to_str(wchar_t, uint8_t *)
bool str_to_bool(const char *)
Converts String to boolean true or false.
Definition futil.c:934
int win2_box_new(uint, uint, uint, uint, char *)
uint mcols
#define __atexit
This macro registers the end_pgm function to be called when the program exits.
Definition cm.h:339
char * fill_field(char *, char *, char, uint)
Definition futil.c:1731
struct termios shell_out_tioctl curses_out_tioctl
Definition scriou.c:36
uint mg_action
size_t codepoint_to_utf8(uint32_t codepoint, uint8_t *utf8)
char * stdio_fdnames(char *, char *)
Definition futil.c:1082
void user_end()
int display_curses_keys()
void initialize_styles(SIO *)
uint enter_option()
bool open_curses(SIO *)
#define Ctrl(c)
Definition cm.h:54
void display_argv_error_msg(char *, char **)
struct termios shell_in_tioctl curses_in_tioctl
Definition scriou.c:35
struct termios shell_err_tioctl curses_err_tioctl
Definition scriou.c:37
@ MT_TEXT
Definition menu.h:23
@ MT_CHOICE
Definition menu.h:24
@ MT_NULL
Definition menu.h:22
@ CT_PICK
Definition menu.h:46
@ CT_FORM
Definition menu.h:42
@ CT_DEXE
Definition menu.h:38
@ CT_UNDEFINED
Definition menu.h:52
@ CT_MENU
Definition menu.h:45
@ CT_RETURN
Definition menu.h:49
@ CT_TOGGLE
Definition menu.h:50
@ CT_HELP
Definition menu.h:40
@ CT_WRITE_CONFIG
Definition menu.h:51
@ CT_FORM_WRITE
Definition menu.h:44
@ CT_EXEC
Definition menu.h:39
@ CT_VIEW
Definition menu.h:47
@ CT_NULL
Definition menu.h:37
@ CT_ABOUT
Definition menu.h:41
@ CT_FORM_EXEC
Definition menu.h:43
@ CT_CKEYS
Definition menu.h:48
void free_menu_line(Line *)
@ MA_RETURN
Definition menu.h:29
@ MA_DISPLAY_MENU
Definition menu.h:30
@ MA_RESET_MENU
Definition menu.h:31
@ MA_NEW
Definition menu.h:28
@ MA_CONTINUE
Definition menu.h:32
#define MAX_MENU_LINES
Definition menu.h:19
void ui_render()
Definition ui_ncurses.c:800
int ui_cursor_move(UiSurface *s, uint w, uint y, uint x)
Definition ui_ncurses.c:727
int ui_mvwaddstr(UiSurface *s, uint w, uint y, uint x, const char *text)
int ui_get_event(UiSurface *s, uint w, UiEvent *ev, int timeout_ms)
Wait for an input event on target (or stdscr if NULL).
int ui_wclrtoeol(UiSurface *s, uint w)
int ui_curs_set(int visibility)
Definition ui_ncurses.c:737
struct nccell UiCell
Definition ui_backend.h:250
#define NMARKS
Definition view.h:35
@ PT_STRING
Definition view.h:46
@ PT_NONE
Definition view.h:43
@ PT_SHORT
Definition view.h:44
@ PT_LONG
Definition view.h:45
#define BUFSIZ
Definition view.h:40
int get_cmd_spec(View *, char *)
int view_accept_cmd(View *)
#define PAD_COLS
Definition view.h:41
#define KEY_F09
#define KEY_RIGHT
#define KEY_DC
#define KEY_BACKSPACE
#define KEY_END
#define KEY_ENTER
#define KEY_MOUSE
#define KEY_IC
#define KEY_LEFT
#define KEY_HOME
int init_cnt
Definition mem.c:28
ViewStack view_stack
Definition init_view.c:32
#define TRUE
Definition iloan.c:19
int popup_ckeys()
Definition curskeys.c:31
#define MAXLEN
Definition curskeys.c:15
uint form_yx_to_fidx(Form *, uint, uint)
char err_msg[MAXLEN]
int cf_accept(UiSurface *sfc, uint w, char *accept_s, uint flin, uint fcol, uint flen)
Accepts input for a field in a C-Menu window.
Definition cm_fields.c:41
bool f_erase_remainder
Structure to hold field information for C-Menu.
Definition cm_fields.c:30
int process_config_file(char *, Init *)
Definition init.c:663
uint rgb_to_xterm256_idx(RGB *rgb)
Convert RGB color to XTerm 256 color index.
Definition dwin.c:252
UiCell cell_sp
Definition dwin.c:120
UiCell cell_ve
Definition dwin.c:112
ushort cp_nt
Definition dwin.c:151
UiCell cell_tr
Definition dwin.c:110
int surface_box_win_new(uint wlines, uint wcols, uint wbegy, uint wbegx, char *wtitle)
Definition dwin.c:521
UiCell cell_nt
Definition dwin.c:94
char const colors_text[][10]
Color names for .minitrc overrides.
Definition dwin.c:51
UiCell cell_ls
Definition dwin.c:105
UiCell cell_nt_hl_rev
Definition dwin.c:97
char em1[MAXLEN]
Definition dwin.c:143
UiCell cell_bt
Definition dwin.c:118
UiCell cell_br
Definition dwin.c:114
ushort cp_green
Definition dwin.c:160
UiCell cell_tl
Definition dwin.c:109
ushort cp_red
Definition dwin.c:159
ushort cp_box
Definition dwin.c:147
char em2[MAXLEN]
Definition dwin.c:144
wchar_t * mbstr_to_wcstr(const char *mb_str)
Definition dwin.c:404
ushort cp_blue
Definition dwin.c:162
UiCell cell_ln
Definition dwin.c:102
int stdout_fd
Definition dwin.c:138
void initialize_cells(SIO *sio)
Initialize local color variables and color pairs based on SIO settings.
Definition dwin.c:177
UiCell cell_ts
Definition dwin.c:107
ushort cp_nt_hl
Definition dwin.c:153
int border_draw(UiSurface *sfc)
Definition dwin.c:581
ushort cp_fill_char
Definition dwin.c:157
UiCell cell_tt
Definition dwin.c:117
UiCell cell_bs
Definition dwin.c:108
ushort cp_brackets
Definition dwin.c:158
ushort cp_yellow
Definition dwin.c:161
UiCell cell_ho
Definition dwin.c:111
UiCell cell_rs
Definition dwin.c:106
bool init_clr_palette(SIO *sio)
Initialize color palette based on SIO settings.
Definition dwin.c:333
UiCell cell_default
Definition dwin.c:90
int click_x
Definition dwin.c:45
char fn[MAXLEN]
Definition dwin.c:141
int surface_split_box_win_new(uint wlines, uint wcols, uint split_y, uint split_x, uint wbegy, uint wbegx, char *wtitle)
Definition dwin.c:539
void mbc_to_wc(wchar_t wc[2], const char mbc)
Definition dwin.c:393
ushort cp_nt_hl_rev
Definition dwin.c:154
ushort cp_default
Definition dwin.c:156
UiCell cell_nt_hl
Definition dwin.c:96
ushort cp_nt_rev
Definition dwin.c:152
char em3[MAXLEN]
Definition dwin.c:145
ushort cp_title
Definition dwin.c:150
uint src_line
Definition dwin.c:139
void apply_gamma(RGB *rgb)
Apply gamma correction to RGB color.
Definition dwin.c:307
RGB xterm256_idx_to_rgb(uint idx)
Convert XTerm 256 color index to RGB.
Definition dwin.c:274
UiCell cell_lt
Definition dwin.c:115
int exit_code
Definition dwin.c:127
UiCell cell_brktl
Definition dwin.c:92
UiCell cell_cr
Definition dwin.c:119
UiCell cell_title
Definition dwin.c:101
int click_y
Definition dwin.c:44
uint16_t win_attr
Definition dwin.c:130
int stdin_fd
Definition dwin.c:137
char em0[MAXLEN]
Definition dwin.c:142
UiCell cell_ind
Definition dwin.c:99
UiCell cell_ran
Definition dwin.c:103
int assign_chyron_win(Chyron *chyron, UiSurface *sfc, uint win, char *y)
Definition dwin.c:962
char * src_name
Definition dwin.c:140
UiCell cell_cmdln
Definition dwin.c:100
UiCell cell_brktr
Definition dwin.c:93
ushort cp_ind
Definition dwin.c:148
UiCell cell_fill_char
Definition dwin.c:91
UiCell cell_box
Definition dwin.c:98
UiCell cell_rt
Definition dwin.c:116
UiCell cell_bl
Definition dwin.c:113
UiCell cell_chk
Definition dwin.c:104
UiCell cell_nt_rev
Definition dwin.c:95
int stderr_fd
Definition dwin.c:164
void display_field(UiCell *cmplx_buf, uint y, uint x)
Definition fields.c:354
char ff_tbl[][26]
Definition fields.c:25
struct termios shell_tioctl
Definition scriou.c:22
int border_ysplit(UiSurface *sfc, uint y)
Draw a box with a separator line around the specified window.
Definition dwin.c:617
int border_ysplit_text(UiSurface *sfc, char *text, uint separator_line)
Draw a box with a separator line and text around the specified window.
Definition dwin.c:637
void view_full_screen_resize(Init *)
Resize the full screen view and its components.
Definition init_view.c:97
void view_boxwin_resize(Init *)
Resize the current window and its box.
Definition init_view.c:178
int cm_surface_destroy(UiSurface *sfc)
Destroy the most recently created surface.
Definition dwin.c:576
int border_title(UiSurface *sfc, char *title)
Draw a box with a title around the specified window.
Definition dwin.c:676
void destroy_curses()
Gracefully shut down NCurses and restore terminal settings.
Definition dwin.c:384
bool action_disposition(char *title, char *action_str)
Display a simple action disposition message window or print to stderr.
Definition dwin.c:895
int answer_yn(char *msg0, char *msg1, char *msg2, char *msg3)
Accept a single letter answer.
Definition dwin.c:715
int Perror(char *emsg_str)
Display a simple error message window or print to stderr.
Definition dwin.c:841
void abend(int ec, char *s)
Abnormal program termination.
Definition dwin.c:1204
int display_error(char *msg0, char *msg1, char *msg2, char *msg3)
Display an error message window or print to stderr.
Definition dwin.c:778
void set_chyron_key_cb(Chyron *chyron, uint k, char *s, uint kc, UiCell cell_base)
Set chyron key with color pair (cp).
Definition dwin.c:1021
Chyron * destroy_chyron(Chyron *chyron)
Destroy Chyron structure.
Definition dwin.c:984
void compile_chyron(Chyron *chyron)
construct the chyron string from the chyron structure
Definition dwin.c:1110
int get_chyron_key(Chyron *chyron, uint x)
Get keycode from chyron.
Definition dwin.c:1186
void activate_all_chyron_keys(Chyron *chyron)
Deactivate chyron key.
Definition dwin.c:1078
void unset_chyron_key(Chyron *chyron, uint k)
Unset chyron key.
Definition dwin.c:1060
void activate_chyron_key(Chyron *chyron, uint k)
Activate chyron key.
Definition dwin.c:1069
void deactivate_all_chyron_keys(Chyron *chyron)
Deactivate all chyron keys.
Definition dwin.c:1096
Chyron * new_chyron()
Create and initialize Chyron structure.
Definition dwin.c:947
bool is_set_chyron_key(Chyron *chyron, uint k)
Check if function key label is set.
Definition dwin.c:1005
void display_chyron(UiSurface *sfc, uint w, Chyron *chyron, uint line, uint col)
Display chyron on the specified line and column of the surface.
Definition dwin.c:1163
void deactivate_chyron_key(Chyron *chyron, uint k)
Deactivate chyron key.
Definition dwin.c:1088
void set_chyron_key(Chyron *chyron, uint k, char *s, uint kc)
Set chyron key with default color pair (cp_nt_rev).
Definition dwin.c:1045
int fork_exec(char **)
Fork and exec a command.
Definition exec.c:122
int shell(char *)
Execute a shell command.
Definition exec.c:74
int full_screen_fork_exec(char **)
Execute a command in full screen mode.
Definition exec.c:45
int full_screen_shell(char *)
Execute a shell command in full screen mode.
Definition exec.c:58
int fork_detach_execvp(char **eargv)
Fork, set new session ID, close files, and execute detached command.
Definition detach.c:29
int form_fmt_field(Form *form, char *s)
Format field according to its format type.
Definition fields.c:448
bool is_valid_date(uint yyyy, uint mm, uint dd)
Check if a given date is valid, including leap years.
Definition fields.c:611
int field_editor(Form *)
Accept input for a field.
Definition fields.c:48
void numeric(char *d, char *s)
Extract numeric characters from source string to destination string.
Definition fields.c:648
bool is_valid_time(uint hh, uint mm, uint ss)
Check if a given time is valid.
Definition fields.c:632
void right_justify(char *, uint)
Right justify string by removing trailing spaces and adding leadingspaces.
Definition fields.c:585
void left_justify(char *s)
Left justify string by removing leading spaces.
Definition fields.c:572
int form_display_field_n(Form *, uint)
Display field n.
Definition fields.c:347
int form_display_field(Form *)
Display current field.
Definition fields.c:369
int form_desc_error(Form *form, int, char *, char *)
Handle errors encountered while parsing the form description file, providing detailed error messages ...
int init_form(Init *, int, char **, uint, uint)
Initialize form data structure and parse description file.
Definition form_engine.c:61
int field_navigator(Form *)
Handle user input for field entry, allowing navigation between fields and looping until an exit actio...
bool locate_file_in_path(char *, char *)
Locates a file in the system PATH.
Definition futil.c:1270
size_t canonicalize_file_spec(char *)
Removes quotes and trims at first space.
Definition futil.c:1324
size_t strnz__cpy(char *, const char *, size_t)
safer alternative to strncpy
Definition futil.c:537
char * iso8601_time(char *, uint, time_t *, bool)
Formats a struct tm as an ISO 8601 string.
Definition futil.c:257
bool parse_local_timestamp(const char *, time_t *)
Parses an ISO 8601 timestamp string in local time and converts it to time_t.
Definition futil.c:273
bool trim_ext(char *, char *)
trims the file extension from "filename" and copies the result to "buf"
Definition futil.c:1009
bool stripz_quotes(char *)
removes leading and trailing double quotes if present
Definition futil.c:726
void write_cmenu_log(char *)
Write message to C-Menu log file without timestamp.
Definition futil.c:1684
size_t trim(char *)
Trims leading and trailing spaces from string s in place.
Definition futil.c:384
char * get_local_timestamp()
Returns the current local time as an ISO 8601 formatted string.
Definition futil.c:307
bool is_directory(const char *)
Checks if the given path is a directory.
Definition futil.c:1355
bool file_spec_path(char *, char *)
extracts the path component of a file specification
Definition futil.c:863
bool str_to_upper(char *)
Converts a string to uppercase.
Definition futil.c:515
bool dir_name(char *, char *)
Returns the directory name of a file specification.
Definition futil.c:1132
bool is_hex_str(char *, uint)
Validates that a string consists of exactly len hexadecimal digits.
Definition futil.c:202
double str_to_double(char *)
converts string to double
Definition futil.c:922
bool str_to_lower(char *)
Converts a string to lowercase.
Definition futil.c:501
size_t strnz(char *, size_t)
terminates string at New Line, Carriage Return, or max_len
Definition futil.c:608
size_t ssnprintf(char *, size_t, const char *,...)
ssnprintf was designed to be a safer alternative to snprintf.
Definition futil.c:413
bool strip_quotes(char *)
removes leading and trailing double quotes if present
Definition futil.c:711
int str_to_args(char **, char *, uint)
Converts a string into an array of argument strings.
Definition futil.c:433
bool is_valid_regex(const char *)
Checks if the given regular expression pattern is valid.
Definition futil.c:1383
void open_cmenu_log()
Open new C-Menu log file.
Definition futil.c:1650
bool expand_tilde(char *, uint)
Replaces "~/" in string with the user's home directory.
Definition futil.c:963
char * strnz_dup(char *, size_t)
Allocates memory for and duplicates string s up to length l or until line feed or carriage return.
Definition futil.c:647
bool file_spec_name(char *, char *)
extracts the file name component of a file specification
Definition futil.c:890
size_t strip_ansi(char *, char *)
Strips ANSI SGR escape sequences (ending in 'm') from string s to d.
Definition futil.c:822
bool mk_dir(char *dir)
If directory doesn't exist, make it.
Definition futil.c:1303
size_t strnz__cat(char *, const char *, size_t)
safer alternative to strncat
Definition futil.c:566
bool get_argp_doc_by_name(char *comment, const struct argp_option *, const char *)
Retrieves the documentation string for a given key name from an argp options array.
Definition futil.c:169
char * get_ip_addresses(char *, uint)
Retrieves the IP addresses of the local machine and formats them into a string.
Definition futil.c:347
char * rep_substring(const char *, const char *, const char *)
Replace all occurrences of "tgt_s" in "org_s" with "rep_s".
Definition futil.c:1423
bool is_symlink_to_dir(const char *)
Checks if the given path is a symbolic link to a directory.
Definition futil.c:1368
bool verify_file(char *, uint)
Verifies that the file specified by "in_spec" exists and is accessible with the permissions specified...
Definition futil.c:1223
size_t strnlf(char *, size_t)
terminates string with line feed
Definition futil.c:626
void write_cmenu_log_ts(char *)
Write message to C-Menu log file with timestamp.
Definition futil.c:1668
int a_toi(char *, bool *)
a safer alternative to atoi() for converting ASCII strings to integers.
Definition futil.c:762
bool str_subc(char *, char *, char, char *, uint)
Replaces "ReplaceChr" in "s" with "Withstr" in "d" won't copy more than "l" bytes to "d" Replaces all...
Definition futil.c:683
int destroy_argv(uint argc, char **argv)
Deallocates memory allocated for argument strings in argv.
Definition futil.c:487
bool chrep(char *, char, char)
Replaces all occurrences of old_chr in s with new_chr in place.
Definition futil.c:743
bool base_name(char *, char *)
Returns the base name of a file specification.
Definition futil.c:1106
bool normalize_file_spec(char *)
replace backslashes with forward lashes
Definition futil.c:846
char * format_local_timestamp(time_t, char *, size_t)
Formats a time_t as an ISO 8601 string in local time.
Definition futil.c:296
bool is_newer(char *, char *)
Checks if the file specified by "fut" is newer than the file specified by "control".
Definition futil.c:153
char * fdname(int, char *)
Retrieves the file path associated with a given file descriptor.
Definition futil.c:1047
bool verify_dir(char *, uint)
Verifies that the directory specified by "spec" exists and is accessible with the permissions specifi...
Definition futil.c:1172
char * get_user_str(char *, size_t)
Retrieves the current user's name and UID, and formats it into a string.
Definition futil.c:320
bool trim_path(char *)
Trims trailing spaces and slashes from directory path in place.
Definition futil.c:981
unsigned long a_to_ul(const char *)
Converts a string to an unsigned long long integer, with support for suffixes K, M,...
Definition futil.c:786
bool unstr_hex_clr(char *, char *)
Validates that a string is a hex color code in the format "#RRGGBB".
Definition futil.c:225
size_t string_cpy(String *, const String *)
Copy src String to dest String, allocating additional memory for dest String if necessary.
Definition futil.c:1560
String to_string(const char *)
String functions provide a simple string library to facilitate string manipulation in C,...
Definition futil.c:1506
size_t string_ncpy(String *, const String *, size_t)
copies up to n characters from src String to dest String, allocating additional memory for dest Strin...
Definition futil.c:1617
size_t string_cat(String *, const String *)
Concatenates src String to dest String, allocating additional memory for dest String if necessary.
Definition futil.c:1577
String free_string(String)
Free the dynamically allocated String.
Definition futil.c:1545
size_t string_ncat(String *, const String *, size_t)
Concatenates up to n characters from src String to dest String, allocating additional memory for dest...
Definition futil.c:1596
int segmentation_fault()
Function to intentionally cause a segmentation fault for testing purposes.
Definition futil.c:1642
int parse_opt_args(Init *, int, char **)
Parse command-line options and set Init struct values accordingly.
Definition init.c:591
bool derive_file_spec(char *, char *, char *)
Derive full file specification from directory and file name.
Definition init.c:1367
int write_config(Init *init)
Write the current configuration to a file specified in init->minitrc.
Definition init.c:1103
void mapp_initialization(Init *, int, char **)
Main initialization function for MAPP - Menu Application.
Definition init.c:474
void zero_opt_args(Init *)
Initialize optional arguments in the Init struct to default values.
Definition init.c:606
void view_calc_boxwin_dimensions(Init *)
Calculate the dimensions and position of the box window for C-Menu View.
Definition init_view.c:195
int init_view_full_screen(Init *init)
Initialize C-Menu View in full screen mode.
Definition init_view.c:47
int init_view_boxwin(Init *init)
Initialize the C-Menu View in box window mode.
Definition init_view.c:147
void view_calc_full_screen_dimensions(Init *)
Calculate the dimensions for full screen mode.
Definition init_view.c:113
int view_init_input(Init *init, char *file_name)
Initialize the input for the C-Menu View.
Definition init_view.c:279
bool verify_spec_arg(char *, char *, char *, char *, uint)
Verify file specification argument.
Definition mem.c:369
Pick * new_pick(Init *init, int argc, char **argv, uint begy, uint begx)
Create and initialize Pick structure.
Definition mem.c:186
View * destroy_view(Init *init)
Destroy View structure.
Definition mem.c:345
Menu * new_menu(Init *init, int argc, char **argv, uint begy, uint begx)
Create and initialize Menu structure.
Definition mem.c:134
Init * new_init(int argc, char **argv)
Create and initialize Init structure.
Definition mem.c:60
Menu * destroy_menu(Init *init)
Destroy Menu structure.
Definition mem.c:155
Form * destroy_form(Init *init)
Destroy Form structure.
Definition mem.c:275
View * new_view(Init *init)
Create and initialize View structure.
Definition mem.c:299
Init * destroy_init(Init *init)
Destroy Init structure.
Definition mem.c:95
Form * new_form(Init *init, int argc, char **argv, uint begy, uint begx)
Create and initialize Form structure.
Definition mem.c:252
Pick * destroy_pick(Init *init)
Destroy Pick structure.
Definition mem.c:225
unsigned int menu_engine(Init *)
The main loop of the menu system.
Definition menu_engine.c:36
unsigned int get_command_type(char *)
Get command type from command string.
unsigned int parse_menu_description(Init *)
Parse menu description file and create Menu.
void save_object(Pick *, char *)
Saves a string as an object in the pick structure.
void toggle_object(Pick *)
Toggles the selection state of the currently selected object in pick window.
int output_objects(Pick *)
Outputs selected objects to specified output file.
int init_pick(Init *, int, char **, uint, uint)
Initializes pick structure and opens pick input file or pipe.
Definition pick_engine.c:66
void reverse_object(Pick *)
Reverses the display of the currently selected object in pick window.
int pick_engine(Init *)
Initializes pick interface, calculates window size and position, and enters picker loop.
void display_pick_page(Pick *)
Displays current page of objects in pick window.
int open_pick_win(Init *)
Initializes the pick window based on the parameters specified in the Pick structure.
bool capture_shell_tioctl()
capture_shell_tioctl() - capture shell terminal settings
Definition scriou.c:43
char di_getch()
get single character from terminal in raw mode
Definition scriou.c:158
bool restore_curses_tioctl()
restore_curses_tioctl() - restore curses terminal settings
Definition scriou.c:84
bool capture_curses_tioctl()
capture_curses_tioctl() - capture curses terminal settings
Definition scriou.c:70
bool mk_raw_tioctl(struct termios *)
mk_raw_tioctl() - set terminal to raw mode
Definition scriou.c:132
bool set_sane_tioctl(struct termios *)
set_sane_tioctl() - set terminal to sane settings for C-MENU
Definition scriou.c:99
bool restore_shell_tioctl()
restore_shell_tioctl() - restore shell terminal settings
Definition scriou.c:57
void sig_dfl_mode()
Set signal handlers to default behavior.
Definition sig.c:42
void signal_handler(int)
Signal handler for interrupt signals.
Definition sig.c:95
void sig_prog_mode()
Set up signal handlers for interrupt signals.
Definition sig.c:62
int view_file(Init *)
Start view.
void cat_file(View *)
Concatenate File to Standard Output.
int view_cmd_processor(Init *)
Main Command Processing Loop for View.
void build_prompt(View *)
Build Prompt String.
void go_to_position(View *, off_t)
Go to Specific File Position.
void initialize_line_table(View *)
Initialize Line Table.
void destroy_line_table(View *)
Destroy Line Table.
void next_page(View *)
Advance to Next Page.
int pad_refresh(View *)
Refresh Pad and Line Number Window.
int display_prompt(View *, char *)
Display Command Line Prompt.
uint mm
Definition cm.h:59
uint dd
Definition cm.h:60
uint yyyy
Definition cm.h:58
uint hh
Definition cm.h:64
uint mm
Definition cm.h:65
uint ss
Definition cm.h:66
char text[CHYRON_KEY_MAXLEN]
Definition cm.h:379
uint keycode
Definition cm.h:381
bool active
Definition cm.h:378
UiCell cell_base
Definition cm.h:383
uint end_pos
Definition cm.h:382
uint y
Definition cm.h:394
UiSurface * sfc
Definition cm.h:392
UiCell cmplx_buf[MAXLEN]
Definition cm.h:389
uint win
Definition cm.h:393
char s[MAXLEN]
Definition cm.h:388
ChyronKey * key[CHYRON_KEYS]
Definition cm.h:387
uint l
Definition cm.h:391
uint bg
Definition cm.h:458
uint pair_id
Definition cm.h:459
uint fg
Definition cm.h:457
char * s
Definition cm.h:655
size_t l
Definition cm.h:656
Arg ** v
Definition cm.h:659
size_t n
Definition cm.h:660
size_t l
Definition cm.h:664
char * s
Definition cm.h:663
size_t l
Definition cm.h:668
wchar_t * s
Definition cm.h:667
uint32_t ran_bg
Definition cm.h:737
double green_gamma
Definition cm.h:690
uint32_t ln_bg
Definition cm.h:723
ushort cp_ran
Definition cm.h:766
FILE * stdout_fp
Definition cm.h:739
ushort cp_ind
Definition cm.h:762
double blue_gamma
Definition cm.h:691
ushort cp_nt_hl
Definition cm.h:759
uint32_t abg
Definition cm.h:711
char brackets[3]
Definition cm.h:750
uint32_t magenta
Definition cm.h:698
uint32_t cmdln_bg
Definition cm.h:725
ushort cp_title
Definition cm.h:764
int stdout_fd
Definition cm.h:743
uint32_t cmdln_fg
Definition cm.h:724
ushort cp_default
Definition cm.h:754
int stderr_fd
Definition cm.h:744
uint32_t nt_hl_rev_fg
Definition cm.h:732
uint clr_cnt
Definition cm.h:746
uint32_t ran_fg
Definition cm.h:736
ushort cp_brackets
Definition cm.h:756
ushort cp_cmdln
Definition cm.h:763
FILE * stdin_fp
Definition cm.h:738
uint32_t bgreen
Definition cm.h:704
ushort cp_ln
Definition cm.h:765
double red_gamma
Definition cm.h:689
ushort cp_box
Definition cm.h:761
uint32_t green
Definition cm.h:695
char fill_char[2]
Definition cm.h:751
ushort cp_nt
Definition cm.h:757
FILE * tty_fp
Definition cm.h:741
uint32_t nt_fg
Definition cm.h:726
uint32_t yellow
Definition cm.h:696
uint32_t fill_char_fg
Definition cm.h:720
uint32_t box_fg
Definition cm.h:714
ushort cp_nt_hl_rev
Definition cm.h:760
uint clr_pair_cnt
Definition cm.h:747
uint32_t orange
Definition cm.h:701
ushort cp_bold
Definition cm.h:768
uint32_t ln_fg
Definition cm.h:722
uint32_t ind_bg
Definition cm.h:717
FILE * stderr_fp
Definition cm.h:740
uint32_t bmagenta
Definition cm.h:707
uint32_t ind_fg
Definition cm.h:716
uint32_t byellow
Definition cm.h:705
uint clr_pair_idx
Definition cm.h:749
char tty_name[MAXLEN]
Definition cm.h:753
uint32_t bblue
Definition cm.h:706
uint32_t borange
Definition cm.h:710
uint32_t title_bg
Definition cm.h:735
uint32_t fg
Definition cm.h:712
uint32_t cyan
Definition cm.h:699
uint32_t bblack
Definition cm.h:702
uint32_t red
Definition cm.h:694
ushort cp_fill_char
Definition cm.h:755
uint32_t nt_hl_rev_bg
Definition cm.h:733
uint32_t title_fg
Definition cm.h:734
uint32_t bred
Definition cm.h:703
uint32_t fill_char_bg
Definition cm.h:721
uint32_t black
Definition cm.h:693
ushort cp_chk
Definition cm.h:767
uint32_t nt_rev_bg
Definition cm.h:729
uint32_t brackets_bg
Definition cm.h:719
uint32_t bcyan
Definition cm.h:708
uint clr_idx
Definition cm.h:748
uint32_t nt_bg
Definition cm.h:727
uint32_t blue
Definition cm.h:697
int tty_fd
Definition cm.h:745
uint32_t brackets_fg
Definition cm.h:718
uint32_t white
Definition cm.h:700
uint32_t box_bg
Definition cm.h:715
ushort cp_nt_rev
Definition cm.h:758
uint32_t nt_hl_fg
Definition cm.h:730
int stdin_fd
Definition cm.h:742
uint32_t bwhite
Definition cm.h:709
char border
Definition cm.h:752
uint32_t nt_rev_fg
Definition cm.h:728
double gray_gamma
Definition cm.h:692
uint32_t nt_hl_bg
Definition cm.h:731
uint32_t bg
Definition cm.h:713
char fill_char
Definition cm.h:775
uint ff
Definition cm.h:774
uint flen
Definition cm.h:773
uint fcol
Definition cm.h:772
uint flin
Definition cm.h:771
bool cf_erase_remainder
Definition cm.h:776
char title[MAXLEN]
Definition common.h:129
char mapp_data[MAXLEN]
Definition common.h:148
char minitrc[MAXLEN]
Definition common.h:174
bool f_out_spec
Definition common.h:171
char mapp_help[MAXLEN]
Definition common.h:149
int begx
Definition common.h:118
bool f_title
Definition common.h:166
char chyron_s[MAXLEN]
Definition common.h:128
SIO * sio
Definition common.h:114
int pick_cnt
Definition common.h:188
bool f_cmd_all
Definition common.h:165
Form * form
Definition common.h:185
char in_spec[MAXLEN]
Definition common.h:168
char cmd_all[MAXLEN]
Definition common.h:123
bool f_mapp_help
Definition common.h:157
bool f_mapp_msrc
Definition common.h:158
int argc
Definition common.h:130
char fill_char[2]
Definition common.h:146
bool f_cmd
Definition common.h:164
int prompt_type
Definition common.h:126
char about_fn[MAXLEN]
Definition common.h:175
char mapp_msrc[MAXLEN]
Definition common.h:150
int cols
Definition common.h:116
int menu_cnt
Definition common.h:184
int tab_stop
Definition common.h:181
bool f_mapp_home
Definition common.h:154
bool f_erase_remainder
Definition common.h:141
bool f_mapp_data
Definition common.h:155
bool f_read_theme
Definition common.h:142
bool f_mapp_desc
Definition common.h:161
char mapp_home[MAXLEN]
Definition common.h:147
bool f_mapp_user
Definition common.h:159
char prompt_str[MAXLEN]
Definition common.h:125
bool f_squeeze
Definition common.h:137
int begy
Definition common.h:117
char parent_cmd[MAXLEN]
Definition common.h:124
char mapp_spec[MAXLEN]
Definition common.h:176
char receiver_cmd[MAXLEN]
Definition common.h:121
int h_shift
Definition common.h:182
bool wrap
Definition common.h:144
bool f_multiple_cmd_args
Definition common.h:139
int select_max
Definition common.h:179
bool f_ln
Definition common.h:143
bool f_mapp_spec
Definition common.h:156
char provider_cmd[MAXLEN]
Definition common.h:120
char out_spec[MAXLEN]
Definition common.h:169
bool f_strip_ansi
Definition common.h:136
View * view
Definition common.h:189
bool p_view_files
Definition common.h:134
Menu * menu
Definition common.h:183
bool f_at_end_remove
Definition common.h:135
int view_cnt
Definition common.h:190
char brackets[3]
Definition common.h:145
bool f_ignore_case
Definition common.h:133
char ** argv
Definition common.h:131
int lines
Definition common.h:115
char mapp_user[MAXLEN]
Definition common.h:151
char cmd[MAXLEN]
Definition common.h:122
char mapp_theme[MAXLEN]
Definition common.h:152
int optind
Definition common.h:132
bool f_help_spec
Definition common.h:167
bool f_receiver_cmd
Definition common.h:163
bool f_provider_cmd
Definition common.h:162
int form_cnt
Definition common.h:186
char help_spec[MAXLEN]
Definition common.h:177
char editor[MAXLEN]
Definition common.h:172
Pick * pick
Definition common.h:187
bool f_in_spec
Definition common.h:170
char menuapp[MAXLEN]
Definition common.h:173
uint col
Definition form.h:102
char str[SCR_COLS]
Definition form.h:104
uint len
Definition form.h:106
uint line
Definition form.h:100
UiCell accept_cc[FIELD_MAXLEN]
Definition form.h:142
char display_s[FIELD_MAXLEN]
Definition form.h:130
UiCell display_cc[FIELD_MAXLEN]
Definition form.h:135
char accept_s[FIELD_MAXLEN]
Definition form.h:126
uint col
Definition form.h:115
uint ff
Definition form.h:119
uint len
Definition form.h:117
char input_s[FIELD_MAXLEN]
Definition form.h:123
UiCell filler_cc[FIELD_MAXLEN]
Definition form.h:141
uint line
Definition form.h:113
char filler_s[FIELD_MAXLEN]
Definition form.h:136
uint dcnt
Definition form.h:332
uint bo_clr_idx
Definition form.h:149
uint fg_clr_idx
Definition form.h:147
FILE * out_fp
Definition form.h:163
Text * text[FIELD_MAXCNT]
Definition form.h:340
uint cols
Definition form.h:151
bool f_in_pipe
Definition form.h:223
bool f_mapp_spec
Definition form.h:194
wchar_t brktr[5]
Definition form.h:296
bool f_erase_remainder
Definition form.h:237
Field * field[FIELD_MAXCNT]
Definition form.h:353
char receiver_cmd[MAXLEN]
Definition form.h:180
bool f_process
Definition form.h:248
uint fidx
Definition form.h:310
char provider_cmd[MAXLEN]
Definition form.h:172
bool f_query
Definition form.h:250
int out_fd
Definition form.h:167
uint didx
Definition form.h:325
bool f_out_pipe
Definition form.h:228
uint begy
Definition form.h:152
bool f_provider_cmd
Definition form.h:258
bool f_calculate
Definition form.h:246
char fill_char[4]
Definition form.h:299
bool help
Definition form.h:252
bool f_cmd
Definition form.h:273
bool f_help_spec
Definition form.h:233
FILE * in_fp
Definition form.h:161
char out_spec[MAXLEN]
Definition form.h:210
Chyron * chyron
Definition form.h:365
uint lines
Definition form.h:150
bool f_receiver_cmd
Definition form.h:265
wchar_t brktl[5]
Definition form.h:293
bool f_multiple_cmd_args
Definition form.h:245
uint begx
Definition form.h:154
char in_spec[MAXLEN]
Definition form.h:203
char mapp_spec[FIELD_MAXLEN]
Definition form.h:169
char cmd[MAXLEN]
Definition form.h:187
char title[MAXLEN]
Definition form.h:159
char brackets[3]
Definition form.h:281
uint bg_clr_idx
Definition form.h:148
bool f_out_spec
Definition form.h:220
bool f_in_spec
Definition form.h:217
uint fcnt
Definition form.h:318
int in_fd
Definition form.h:165
char help_spec[MAXLEN]
Definition form.h:196
char * choice_text
Definition menu.h:79
void * ui_surface
Definition menu.h:66
void * ui_runtime
Definition menu.h:59
char * raw_text
Definition menu.h:76
char * command_str
Definition menu.h:94
unsigned int type
Definition menu.h:74
uint letter_pos
Definition menu.h:85
char choice_letter
Definition menu.h:82
uint command_type
Definition menu.h:88
char provider_cmd[MAXLEN]
Definition menu.h:155
uint bg_clr_idx
Definition menu.h:109
char mapp_spec[MAXLEN]
Definition menu.h:144
int argc
Definition menu.h:138
Line * line[MAX_MENU_LINES]
Definition menu.h:223
bool f_help_spec
Definition menu.h:182
char cmd[MAXLEN]
Definition menu.h:170
bool f_provider_cmd
Definition menu.h:187
uint fg_clr_idx
Definition menu.h:106
uint text_max_len
Definition menu.h:210
uint begy
Definition menu.h:118
bool f_mapp_spec
Definition menu.h:177
uint cols
Definition menu.h:116
char receiver_cmd[MAXLEN]
Definition menu.h:163
uint bo_clr_idx
Definition menu.h:112
bool f_receiver_cmd
Definition menu.h:194
bool f_cmd
Definition menu.h:200
uint choice_max_len
Definition menu.h:204
char help_spec[MAXLEN]
Definition menu.h:150
uint begx
Definition menu.h:121
uint line_idx
Definition menu.h:219
uint lines
Definition menu.h:114
char ** argv
Definition menu.h:141
uint item_count
Definition menu.h:216
char title[MAXLEN]
Definition menu.h:135
bool f_mapp_spec
Definition pick.h:56
char ** m_object
Definition pick.h:71
uint select_idx
Definition pick.h:72
uint separator_line
Definition pick.h:92
uint tbl_line
Definition pick.h:87
bool f_cmd
Definition pick.h:69
uint pg_objs
Definition pick.h:83
bool f_provider_cmd
Definition pick.h:67
uint y
Definition pick.h:33
uint select_max
Definition pick.h:74
bool p_view_files
Definition pick.h:64
uint m_idx
Definition pick.h:77
uint tbl_cols
Definition pick.h:89
uint tbl_page
Definition pick.h:86
bool f_in_spec
Definition pick.h:57
char ** d_object
Definition pick.h:79
char cmd[MAXLEN]
Definition pick.h:54
bool f_help_spec
Definition pick.h:61
FILE * in_fp
Definition pick.h:44
bool f_out_spec
Definition pick.h:58
int argc
Definition pick.h:42
bool f_multiple_cmd_args
Definition pick.h:63
uint d_cnt
Definition pick.h:76
uint pg_lines
Definition pick.h:82
char mapp_spec[MAXLEN]
Definition pick.h:48
bool f_in_pipe
Definition pick.h:59
bool f_selected[OBJ_MAXCNT]
Definition pick.h:65
int out_fd
Definition pick.h:47
uint m_cnt
Definition pick.h:75
char title[MAXLEN]
Definition pick.h:41
bool help
Definition pick.h:66
char help_spec[MAXLEN]
Definition pick.h:51
char in_buf[BUFSIZ]
Definition pick.h:70
uint tbl_pages
Definition pick.h:85
int in_fd
Definition pick.h:46
uint fg_clr_idx
Definition pick.h:26
bool f_out_pipe
Definition pick.h:60
UiSurface * surface
Definition pick.h:40
char receiver_cmd[MAXLEN]
Definition pick.h:53
char ** argv
Definition pick.h:43
uint tab_idx
Definition pick.h:84
uint tbl_col_width
Definition pick.h:91
bool f_read_theme
Definition pick.h:62
char in_spec[MAXLEN]
Definition pick.h:49
FILE * out_fp
Definition pick.h:45
char parent_cmd[MAXLEN]
Definition pick.h:55
uint lines
Definition pick.h:29
uint x
Definition pick.h:34
uint select_cnt
Definition pick.h:73
Chyron * chyron
Definition pick.h:94
uint d_idx
Definition pick.h:78
uint tbl_lines
Definition pick.h:88
uint bo_clr_idx
Definition pick.h:28
uint begy
Definition pick.h:31
uint tbl_col
Definition pick.h:90
uint y_offset
Definition pick.h:80
uint begx
Definition pick.h:32
uint pg_line
Definition pick.h:81
bool f_receiver_cmd
Definition pick.h:68
uint width
Definition pick.h:30
uint bg_clr_idx
Definition pick.h:27
char provider_cmd[MAXLEN]
Definition pick.h:52
char out_spec[MAXLEN]
Definition pick.h:50
off_t sl_ln_no
Definition view.h:52
uint sl_cnt
Definition view.h:58
uint sl_cols[MAXLEN]
Definition view.h:55
uint sl_idx
Definition view.h:57
UiCell * sl_cc[MAXLEN]
Definition view.h:54
uint sl_cells[MAXLEN]
Definition view.h:56
char * sl_s[MAXLEN]
Definition view.h:53
uint smaxrow
Definition view.h:144
char provider_cmd[MAXLEN]
Definition view.h:76
uint sminrow
Definition view.h:140
char in_spec[MAXLEN]
Definition view.h:152
char * lnbuf_curr_ptr
Definition view.h:188
off_t page_top_ln_no
Definition view.h:169
off_t srch_curr_ln_no
Definition view.h:171
uint ln_clr_idx
Definition view.h:65
char ln_bg_clr_x[COLOR_LEN]
Definition view.h:71
char fg_clr_x[COLOR_LEN]
Definition view.h:67
int argc
Definition view.h:82
int optind
Definition view.h:84
char ** argv
Definition view.h:83
bool f_search_complete
Definition view.h:119
int next_cmd_char
Definition view.h:109
uint page_bot_sl_idx
Definition view.h:206
char * buf
Definition view.h:183
uint maxcol
Definition view.h:137
bool wrap
Definition view.h:201
uint smincol
Definition view.h:142
char * line_out_p
Definition view.h:130
char * line_in_end_p
Definition view.h:132
int in_fd
Definition view.h:175
off_t srch_curr_pos
Definition view.h:167
uint bo_clr_idx
Definition view.h:64
bool f_in_spec
Definition view.h:155
off_t page_top_pos
Definition view.h:164
FILE * in_fp
Definition view.h:178
off_t file_pos
Definition view.h:162
bool page_bot_sl
Definition view.h:204
uint lines
Definition view.h:72
off_t ln_no
Definition view.h:194
char prompt_str[MAXLEN]
Definition view.h:80
off_t prev_file_pos
Definition view.h:163
uint begx
Definition view.h:75
bool f_bod
Definition view.h:111
bool f_first_iter
Definition view.h:118
char line_in_s[PAD_COLS]
Definition view.h:126
char help_spec[MAXLEN]
Definition view.h:154
bool f_redisplay_page
Definition view.h:116
char * file_spec_ptr
Definition view.h:158
char * next_file_spec_ptr
Definition view.h:159
int stdout_fd
Definition view.h:181
bool f_is_pipe
Definition view.h:114
bool f_ignore_case
Definition view.h:85
char * lnbuf
Definition view.h:187
uint ln_bg_clr_idx
Definition view.h:66
bool f_cmd_all
Definition view.h:124
bool f_help_spec
Definition view.h:157
char cmd[MAXLEN]
Definition view.h:78
bool page_top_sl
Definition view.h:203
off_t srch_beg_ln_no
Definition view.h:172
bool f_in_pipe
Definition view.h:174
int tmp_fd
Definition view.h:176
char receiver_cmd[MAXLEN]
Definition view.h:77
char * buf_curr_ptr
Definition view.h:184
off_t * ln_tbl
Definition view.h:197
bool f_full_screen
Definition view.h:120
bool f_ln
Definition view.h:193
bool f_strip_ansi
Definition view.h:88
bool f_eod
Definition view.h:112
off_t mark_tbl[NMARKS]
Definition view.h:173
char ln_s[10]
Definition view.h:196
off_t ln_no_max
Definition view.h:195
UiCell cmplx_buf[PAD_COLS]
Definition view.h:129
bool f_cmd
Definition view.h:123
uint cmd_line
Definition view.h:136
bool f_forward
Definition view.h:113
off_t ln_max_pos
Definition view.h:200
char stripped_line_out[PAD_COLS]
Definition view.h:128
uint page_top_sl_cnt
Definition view.h:207
off_t srch_beg_pos
Definition view.h:168
off_t ln_tbl_cnt
Definition view.h:199
bool f_at_end_remove
Definition view.h:86
uint ln_win_cols
Definition view.h:192
uint first_match_x
Definition view.h:148
char * tmp_file_name_ptr
Definition view.h:160
uint curx
Definition view.h:134
char bo_clr_x[COLOR_LEN]
Definition view.h:69
off_t file_size
Definition view.h:161
uint scroll_lines
Definition view.h:135
char bg_clr_x[COLOR_LEN]
Definition view.h:68
bool f_squeeze
Definition view.h:87
char tmp_prompt_str[MAXLEN]
Definition view.h:102
char cur_file_str[MAXLEN]
Definition view.h:125
char * buf_end_ptr
Definition view.h:185
char line_out_s[PAD_COLS]
Definition view.h:127
uint cury
Definition view.h:133
FILE * stdin_fp
Definition view.h:180
char out_spec[MAXLEN]
Definition view.h:153
bool f_timer
Definition view.h:121
int tab_stop
Definition view.h:107
uint page_bot_sl_cnt
Definition view.h:208
char title[MAXLEN]
Definition view.h:81
uint cols
Definition view.h:73
char cmd_all[MAXLEN]
Definition view.h:79
off_t page_bot_pos
Definition view.h:165
off_t page_bot_ln_no
Definition view.h:170
uint begy
Definition view.h:74
bool f_displaying_help
Definition view.h:117
int h_shift
Definition view.h:108
int curr_argc
Definition view.h:104
int out_fd
Definition view.h:177
char * lnbuf_end_ptr
Definition view.h:189
uint pmincol
Definition view.h:139
FILE * stdout_fp
Definition view.h:182
uint page_top_sl_idx
Definition view.h:205
char ln_clr_x[COLOR_LEN]
Definition view.h:70
uint smaxcol
Definition view.h:146
uint fg_clr_idx
Definition view.h:62
bool f_out_spec
Definition view.h:156
off_t page_bot_end_pos
Definition view.h:166
UiSurface * sfc
Definition view.h:101
SplitLine cur
Definition view.h:202
char file_name[MAXLEN]
Definition view.h:115
int stdin_fd
Definition view.h:179
uint ln_win_lines
Definition view.h:191
uint last_match_x
Definition view.h:150
off_t ln_tbl_size
Definition view.h:198
char * line_in_beg_p
Definition view.h:131
uint bg_clr_idx
Definition view.h:63
uint pminrow
Definition view.h:138
bool f_multiple_cmd_args
Definition view.h:89
char cmd_arg[MAXLEN]
Definition view.h:106
size_t capacity
Definition view.h:214
size_t top
Definition view.h:215
View * items
Definition view.h:213