C-Menu 0.2.9
A User Interface Toolkit
Loading...
Searching...
No Matches
form.h
Go to the documentation of this file.
1/** @file form.h
2 * @brief Form data structures, enums, types, end process 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 _FORM_H
11#define _FORM_H 1
12#include <cm.h>
13
14#ifndef _COMMON_H
15typedef struct Init Init;
16#endif
17
18#define FIELD_MAXLEN 1024
19#define FIELD_MAXCNT 100
20#define F_NOMETAS 1 /**< flag - no metacharacters allowed in field input */
21#define F_NOTBLANK 2 /**< flag - field input cannot be blank */
22#define F_NOECHO 4 /**< flag - do not echo field input on the screen, \
23 e.g. for password fields */
24
25/** FormAction Directives */
26typedef enum {
28 302, /**< continue processing the form, e.g. after accepting a field */
29 FA_ACCEPT, /**< accept the form, e.g. after accepting a field and all fields
30 are valid */
31 FA_HELP, /**< display the help information for the form, e.g. after
32 accepting a field and the user requests help */
33 FA_CANCEL, /**< cancel the form, e.g. after accepting a field and the user
34 cancels the form */
35 FA_REFUSE, /**< refuse the form, e.g. after accepting a field and the field
36 value is invalid */
37 FA_CALC, /**< process the form, e.g. after accepting a field and
38 calculating the values of other fields based on the accepted
39 field value */
40 FA_EDIT, /**< edit the form, e.g. after accepting a field and allowing the
41 user to edit the form fields */
42 FA_END /**< end the form processing, e.g. after accepting a field and all
43 fields are valid and the form is accepted */
44} FormAction;
45
46/** Form field formats */
47typedef enum {
48 FF_STRING, /**< a string field format, e.g. for accepting a name or other
49 text input */
50 FF_DECIMAL_INT, /**< a decimal integer field format, e.g. for accepting an
51 age or other numeric input */
52 FF_HEX_INT, /**< a hexadecimal integer field format, e.g. for accepting a
53 color code or other hexadecimal input */
54 FF_FLOAT, /**< a floating point field format, e.g. for accepting a price or
55 other decimal input */
56 FF_DOUBLE, /**< a double precision floating point field format, e.g. for
57 accepting a more precise decimal input */
58 FF_CURRENCY, /**< a currency field format, e.g. for accepting a price or
59 other monetary input, formatted as a decimal number with two
60 decimal places and a currency symbol */
61 FF_YYYYMMDD, /**< a date field format, e.g. for accepting a date input,
62 formatted as a string in the format "YYYY-MM-DD" */
63 FF_HHMMSS, /**< a time field format, e.g. for accepting a time input,
64 formatted as a string in the format "HH:MM:SS" */
65 FF_APR, /**< an APR field format, e.g. for accepting an annual percentage
66 rate input, formatted as a decimal number with two decimal places
67 and a percent symbol */
68 FF_INVALID /**< an invalid field format, used for error handling and
69 validation purposes */
70 /** Future Implementation of Additional Field Formats
71 * FF_EMAIL - an email field format, e.g. for accepting an email address
72 * input, formatted as a string that matches a regular expression for valid
73 * email addresses
74 * FF_PHONE - a phone number field format, e.g. for accepting a phone number
75 * input, formatted as a string that matches a regular expression for valid
76 * phone numbers
77 * FF_URL - a URL field format, e.g. for accepting a URL input, formatted as
78 * a string that matches a regular expression for valid
79 */
80} FieldFormat;
81
82/** ff_tbl - a table of field format strings used in the Form description
83 * file to identify field data types
84 * the index of the field format in this table corresponds to the FieldFormat
85 * enum values, e.g. ff_tbl[FF_STRING] = "string", ff_tbl[F_DECIMAL_INT] =
86 * "decimal_int", etc.
87 */
88extern char ff_tbl[][26]; /**< a table of field format strings used in the Form
89 description file to identify field data types, e.g.
90 "string", "decimal_int", "hex_int", etc. The index of the
91 field format in this table corresponds to the FieldFormat
92 enum values, e.g. ff_tbl[FF_STRING] = "string",
93 ff_tbl[FF_DECIMAL_INT] = "decimal_int", etc. This table is
94 used for parsing the form description file and determining
95 the field formats for each field in the form. */
96
97/** @struct Text
98 @brief structure for form fields */
99typedef struct {
100 uint line; /**< the line number on the form window where this text string
101 should be displayed */
102 uint col; /**< the column number on the form window where this text string
103 should be displayed */
104 char str[SCR_COLS]; /**< the text string to be displayed on the form window
105 */
106 uint len; /**< the length of the text string, used for display and formatting
107 purposes */
108} Text;
109
110/** @struct Field
111 @brief structure for form fields */
112typedef struct {
113 uint line; /**< the line number on the form window where this field should be
114 displayed */
115 uint col; /**< the column number on the form window where this field should
116 be displayed */
117 uint len; /**< the length of the field input area, used for display and
118 formatting purposes */
119 uint ff; /**< the field format, represented as an integer corresponding to
120 the FieldFormat enum values, e.g. FF_STRING, FF_DECIMAL_INT, etc.
121 This is used for validating and formatting the field input values
122 according to their specified formats. */
123 char input_s[FIELD_MAXLEN]; /**< the input string for this field, used for
124 storing the user's input value for this field
125 during form processing */
126 char accept_s[FIELD_MAXLEN]; /**< the accepted string for this field, used
127 for storing the validated and accepted value for
128 this field after processing the user's input
129 during form processing */
130 char display_s[FIELD_MAXLEN]; /**< the display string for this field, used
131 for storing the formatted string that will be
132 displayed in the field input area on the form
133 window during form processing, based on the
134 accepted value and the field format */
135 UiCell display_cc[FIELD_MAXLEN]; /**< display complex character array */
136 char filler_s[FIELD_MAXLEN]; /**< the filler string for this field, used for
137 storing the string that will be used to fill the
138 field input area on the form window during form
139 processing, based on the field length and the fill
140 character specified in the form structure */
141 UiCell filler_cc[FIELD_MAXLEN]; /**< filler complex character array */
142 UiCell accept_cc[FIELD_MAXLEN]; /**< accept complex character array */
143} Field;
144
145/** @struct Form */
146typedef struct {
147 uint fg_clr_idx; /**< the foreground color for the form window */
148 uint bg_clr_idx; /**< the background color for the form window */
149 uint bo_clr_idx; /**< the border color for the form window */
150 uint lines; /**< the number of lines for the form window */
151 uint cols; /**< the number of columns for the form windowi */
152 uint begy; /**< the screen line number for the upper left corner of the form
153 window */
154 uint begx; /**< the screen column number for the upper left corner of the */
155#ifdef ASDF
156 WINDOW *win; /**< ncurses window structure for form */
157 WINDOW *box; /**< ncurses window structure for form box border */
158#endif
159 char title[MAXLEN]; /**< the title of the form, displayed in the form box
160 border */
161 FILE *in_fp; /**< input stream pointer, e.g. for reading from a file or pipe
162 */
163 FILE *out_fp; /**< output stream pointer, e.g. for writing to a file or pipe
164 */
165 int in_fd; /**< input file descriptor, e.g. for reading from a file or pipe
166 */
167 int out_fd; /**< output file descriptor, e.g. for writing to a file or pipe
168 */
169 char mapp_spec[FIELD_MAXLEN]; /**< the menu application description file
170 spec */
172 [MAXLEN]; /**< the provider command, which can be executed in the
173 background to provide dynamic content for a program called
174 by the menu application. This command can be used to
175 generate or retrieve data that will be displayed on the
176 form or used for processing the form fields, allowing for
177 dynamic and interactive forms that can adapt to changing
178 data or user input during form processing. */
180 [MAXLEN]; /**< the receiver command, which can be executed in the
181 background to process the output of a program called by the
182 menu application. This command can be used to handle the
183 results or output generated by a program that is executed
184 as part of the form processing, allowing for dynamic and
185 interactive forms that can respond to the results of
186 process programs or commands during form processing. */
187 char cmd[MAXLEN]; /**< a command that can be executed in the foreground,
188 possibly taking control of the screen, by the menu
189 application, e.g. an editor. This command can be used
190 to allow the user to perform additional actions or
191 tasks as part of the form processing, such as editing a
192 file or running a script, providing a more interactive
193 and flexible user experience during form processing. */
194 bool f_mapp_spec; /**< flag - mapp_spec verified */
196 [MAXLEN]; /**< the menu application help file spec, e.g. a qualified
197 path to a file containing help information for the menu
198 application and its associated forms. This file can be used
199 to provide context-sensitive help to the user during form
200 processing, allowing them to access relevant information
201 and guidance based on their current actions or the specific
202 form they are working with. */
203 char in_spec[MAXLEN]; /**< the input file spec, e.g. a qualified path to a
204 file containing initial values for the form fields.
205 This file can be used to pre-populate the form
206 fields with existing data or default values during
207 form processing, allowing for a more efficient and
208 user-friendly experience when working with forms
209 that require input values. */
210 char out_spec[MAXLEN]; /**< the output file spec, e.g. a qualified path to a
211 file where the accepted values for the form fields
212 will be written after form processing. This file
213 can be used to save or export the results of the
214 form processing, allowing for further use or
215 analysis of the accepted field values after the
216 form has been completed. */
217 bool f_in_spec; /**< flag - in_spec verified, indicating that the input file
218 spec has been validated and is ready for use during form
219 processing */
220 bool f_out_spec; /**< flag - out_spec verified, indicating that the output
221 file spec has been validated and is ready for use during
222 form processing */
223 bool f_in_pipe; /**< flag - in_spec is a pipe, indicating that the input
224 file spec is a command that can be executed to provide
225 input data for the form fields during form processing,
226 allowing for dynamic and flexible input sources for the
227 form fields. */
228 bool f_out_pipe; /**< flag - out_spec is a pipe, indicating that the output
229 file spec is a command that can be executed to handle
230 the accepted field values for the form fields during
231 form processing, allowing for dynamic and flexible
232 output handling for the form results. */
233 bool f_help_spec; /**< flag - help_spec verified, indicating that the help
234 file spec has been validated and is ready for use
235 during form processing */
236 bool
237 f_erase_remainder; /**< flag - if set, causes the data above the cursor
238 and to the right to be cleared when the user
239 presses the enter key, e.g. to prevent leftover
240 characters from previous field values from being
241 left on the screen when a shorter value is entered
242 in a field. This is essential for veteran keyboard
243 users, accountants and the like, who rarely even
244 look at the screen during data entry. */
245 bool f_multiple_cmd_args; /**< flag: multiple command arguments */
246 bool f_calculate; /**< flag - if set, Form presents an option to perform an
247 external query or calculation. */
248 bool f_process; /**< flag - if set, Form presents an option to perform an
249 external query or calculation. */
250 bool f_query; /**< flag - if set, the action key label will be "query"
251 instead of "process" or "calculate". */
252 bool help; /**< flag - if set, indicates that the user has requested help
253 during form processing, e.g. by pressing a help key or button.
254 This can be used to trigger the display of context-sensitive
255 help information for the form, providing guidance and
256 assistance to the user based on their current actions or the
257 specific form they are working with. */
258 bool f_provider_cmd; /**< flag - if set, indicates that the provider command
259 has been verified and is valid for execution. This
260 can be used to ensure that the provider command
261 specified in the form structure is valid and can be
262 executed successfully during form processing,
263 allowing for dynamic content generation or retrieval
264 as part of the form's functionality. */
265 bool f_receiver_cmd; /**< flag - if set, indicates that the receiver command
266 has been verified and is valid for execution. This
267 can be used to ensure that the receiver command
268 specified in the form structure is valid and can be
269 executed successfully during form processing,
270 allowing for dynamic handling of the results or
271 output generated by process programs or commands as
272 part of the form's functionality. */
273 bool f_cmd; /**< flag - if set, indicates that the command has been verified
274 and is valid for execution. This can be used to ensure that
275 the command specified in the form structure is valid and can
276 be executed successfully during form processing, allowing for
277 additional actions or tasks to be performed as part of the
278 form's functionality, such as editing a file or running a
279 script. */
281 [3]; /**< the characters used to indicate field input areas in the form
282 description file, e.g. "[]" for square brackets or "<>" for
283 angle brackets. The first character is the left bracket and the
284 second character is the right bracket. These characters may be
285 left blank, especially if fill_char is used. The choice of
286 brackets can affect the visual appearance of the form and how
287 users perceive the input areas for each field, with some
288 preferring the traditional look of brackets while others may
289 prefer a cleaner look without them. The use of brackets can also
290 help to visually separate the field input areas from other text
291 on the form, making it easier for users to identify where they
292 need to enter their input during form processing. */
293 wchar_t brktl[5]; /**< the ncurses cchar_t representation of the left bracket
294 character, used for displaying the left bracket in the
295 form window during form processing. */
296 wchar_t brktr[5]; /**< the ncurses cchar_t representation of the right bracket
297 character, used for displaying the right bracket in the
298 form window during form processing. */
299 char fill_char[4]; /**< the character used to fill the field input areas in
300 the form, e.g. "_" for underscores or " " for spaces.
301 This character is used to visually indicate the input
302 area for each field in the form, and it can be used in
303 conjunction with brackets or on its own if brackets
304 are not used. Many feel that using fill characters
305 without brackets creates a cleaner and more modern
306 look for the form, while others prefer the traditional
307 look of brackets. The choice of whether to use
308 brackets, fill characters, or both is a matter of
309 personal preference and design style for the form. */
310 uint fidx; /**< the index of the currently selected field, used for
311 highlighting and selection purposes during form processing.
312 This index corresponds to the position of the field in the
313 field array, allowing for easy access to the current field's
314 data and properties during form processing. The fidx can be
315 updated as the user navigates through the form fields,
316 providing visual feedback and allowing for dynamic interactions
317 based on the selected field. */
318 uint fcnt; /**< the number of fields in the form, used for iterating through
319 the field array and managing field data during form processing.
320 This count can be used to determine when the user has reached
321 the end of the fields or to validate that all required fields
322 have been completed before accepting the form. The fcnt can
323 also be used to dynamically allocate resources or manage memory
324 for the field data during form processing. */
325 uint didx; /**< an index to the array of text strings to be displayed on the
326 form window, used for iterating through the text array and
327 managing the display of text during form processing. This index
328 can be updated as needed to control which text strings are
329 currently being displayed on the form window, allowing for
330 dynamic updates to the form's content based on user actions or
331 other events during form processing. */
332 uint dcnt; /**< the number of text strings to be displayed on the form
333 window, used for iterating through the text array and managing
334 the display of text during form processing. This count can be
335 used to determine how many text strings need to be displayed on
336 the form window and to validate that all necessary text has
337 been provided for display during form processing. The dcnt can
338 also be used to dynamically allocate resources or manage memory
339 for the text data during form processing. */
340 Text *text[FIELD_MAXCNT]; /**< an array of pointers to the text structures
341 for the text strings to be displayed on the form
342 window, used for managing and displaying the text
343 content of the form during form processing. Each
344 pointer in this array corresponds to a Text
345 structure that contains the line, column, string,
346 and length information for a specific text string
347 to be displayed on the form window. This allows
348 for dynamic management of the text content on the
349 form, enabling updates and changes to the
350 displayed text based on user actions or other
351 events during form processing. */
352 Field
353 *field[FIELD_MAXCNT]; /**< an array of pointers to the field structures
354 for the fields in this form, used for managing and
355 processing the form fields during form processing.
356 Each pointer in this array corresponds to a Field
357 structure that contains the line, column, length,
358 field format, input string, accepted string,
359 display string, and filler string information for
360 a specific field in the form. This allows for
361 dynamic management of the form fields, enabling
362 validation, formatting, and processing of user
363 input based on the specified field formats and
364 properties during form processing. */
365 Chyron *chyron; /**< a structure for managing the chyron string and its
366 display properties on the form window during form processing.
367 The chyron can be used to provide instructions, feedback, or
368 other information to the user during form processing, and it
369 can be updated dynamically based on user actions or other
370 events to enhance the user experience and provide context-
371 sensitive information as needed. */
372} Form;
373// extern Form *form;
374
375extern int field_editor(Form *);
376extern int form_display_field(Form *);
377extern int form_display_field_n(Form *, uint);
378extern int field_navigator(Form *);
379extern int form_read_description(Form *);
380extern int form_fmt_field(Form *, char *s);
381extern int form_desc_error(Form *, int, char *, char *);
382extern void form_help(char *);
383extern uint form_yx_to_fidx(Form *, uint, uint);
384extern void form_display_chyron(Form *);
385extern void display_field(UiCell *, uint, uint);
386#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]
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
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
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 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)
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 parse_menu_description(Init *)
Parse menu description file and create Menu.
int init_pick(Init *, int, char **, uint, uint)
Initializes pick structure and opens pick input file or pipe.
Definition pick_engine.c:66
int pick_engine(Init *)
Initializes pick interface, calculates window size and position, and enters picker loop.
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.
int view_cmd_processor(Init *)
Main Command Processing Loop for View.
void build_prompt(View *)
Build Prompt String.
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