* Fix some compiler warnings for bad casting in some functions in the file
[alpine.git] / pith / conftype.h
blob0bfa892241c3782b45534cef495898b6cb2317c2
1 /*
2 * $Id: conftype.h 1155 2008-08-21 18:33:21Z hubert@u.washington.edu $
4 * ========================================================================
5 * Copyright 2013-2022 Eduardo Chappa
6 * Copyright 2006-2008 University of Washington
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * ========================================================================
17 #ifndef PITH_CONFTYPE_INCLUDED
18 #define PITH_CONFTYPE_INCLUDED
21 #include "../pith/helptext.h"
22 #include "../pith/remtype.h"
25 typedef enum {Sapling, Seedling, Seasoned} FeatureLevel;
29 * The array is initialized in pith/conf.c so the order of that initialization
30 * must correspond to the order of the values here. The order is
31 * significant in that it determines the order that the variables
32 * are written into the pinerc file and the order they show up in in the
33 * config screen.
35 typedef enum { V_PERSONAL_NAME = 0
36 , V_USER_ID
37 , V_USER_DOMAIN
38 , V_SMTP_SERVER
39 , V_NNTP_SERVER
40 , V_INBOX_PATH
41 , V_ARCHIVED_FOLDERS
42 , V_PRUNED_FOLDERS
43 , V_DEFAULT_FCC
44 , V_DEFAULT_SAVE_FOLDER
45 , V_POSTPONED_FOLDER
46 , V_READ_MESSAGE_FOLDER
47 , V_FORM_FOLDER
48 , V_TRASH_FOLDER
49 , V_LITERAL_SIG
50 , V_SIGNATURE_FILE
51 , V_FEATURE_LIST
52 , V_INIT_CMD_LIST
53 , V_COMP_HDRS
54 , V_CUSTOM_HDRS
55 , V_VIEW_HEADERS
56 , V_VIEW_MARGIN_LEFT
57 , V_VIEW_MARGIN_RIGHT
58 , V_QUOTE_SUPPRESSION
59 , V_SAVED_MSG_NAME_RULE
60 , V_FCC_RULE
61 , V_SORT_KEY
62 , V_AB_SORT_RULE
63 , V_FLD_SORT_RULE
64 , V_GOTO_DEFAULT_RULE
65 , V_INCOMING_STARTUP
66 , V_PRUNING_RULE
67 , V_REOPEN_RULE
68 , V_THREAD_DISP_STYLE
69 , V_THREAD_INDEX_STYLE
70 , V_THREAD_MORE_CHAR
71 , V_THREAD_EXP_CHAR
72 , V_THREAD_LASTREPLY_CHAR
73 #ifndef _WINDOWS
74 , V_CHAR_SET
75 , V_OLD_CHAR_SET
76 , V_KEY_CHAR_SET
77 #endif /* ! _WINDOWS */
78 , V_POST_CHAR_SET
79 , V_UNK_CHAR_SET
80 , V_EDITOR
81 , V_SPELLER
82 #ifdef _WINDOWS
83 , V_DICTIONARY
84 #endif /* _WINDOWS */
85 , V_FILLCOL
86 , V_REPLY_STRING
87 , V_REPLY_INTRO
88 , V_QUOTE_REPLACE_STRING
89 , V_WORDSEPS
90 , V_EMPTY_HDR_MSG
91 , V_IMAGE_VIEWER
92 , V_USE_ONLY_DOMAIN_NAME
93 , V_BUGS_FULLNAME
94 , V_BUGS_ADDRESS
95 , V_BUGS_EXTRAS
96 , V_SUGGEST_FULLNAME
97 , V_SUGGEST_ADDRESS
98 , V_LOCAL_FULLNAME
99 , V_LOCAL_ADDRESS
100 , V_FORCED_ABOOK_ENTRY
101 , V_KBLOCK_PASSWD_COUNT
102 , V_DISPLAY_FILTERS
103 , V_SEND_FILTER
104 , V_ALT_ADDRS
105 , V_KEYWORDS
106 , V_KW_BRACES
107 , V_OPENING_SEP
108 , V_ABOOK_FORMATS
109 , V_INDEX_FORMAT
110 , V_OVERLAP
111 , V_MARGIN
112 , V_STATUS_MSG_DELAY
113 , V_ACTIVE_MSG_INTERVAL
114 , V_MAILCHECK
115 , V_MAILCHECKNONCURR
116 , V_MAILDROPCHECK
117 , V_NNTPRANGE
118 , V_NEWSRC_PATH
119 , V_NEWS_ACTIVE_PATH
120 , V_NEWS_SPOOL_DIR
121 , V_UPLOAD_CMD
122 , V_UPLOAD_CMD_PREFIX
123 , V_DOWNLOAD_CMD
124 , V_DOWNLOAD_CMD_PREFIX
125 , V_MAILCAP_PATH
126 , V_MIMETYPE_PATH
127 #if !defined(_WINDOWS) || defined(WINDOWS_UNIXSSL_CERTS)
128 , V_SSLCAPATH
129 , V_SSLCAFILE
130 , V_USERSSLCAPATH
131 , V_USERSSLCAFILE
132 , V_SSLCIPHERS
133 #endif
134 , V_BROWSER
135 , V_HISTORY
136 , V_MAXREMSTREAM
137 , V_PERMLOCKED
138 , V_INCCHECKTIMEO
139 , V_INCCHECKINTERVAL
140 , V_INC2NDCHECKINTERVAL
141 , V_INCCHECKLIST
142 , V_DEADLETS
143 #if !defined(DOS) && !defined(OS2) && !defined(LEAVEOUTFIFO)
144 , V_FIFOPATH
145 #endif
146 , V_NMW_WIDTH
148 * Starting here, the rest of the variables are hidden by default in config
149 * screen. They are exposed with expose-hidden-config feature.
151 , V_INCOMING_FOLDERS
152 , V_MAIL_DIRECTORY
153 , V_FOLDER_SPEC
154 , V_NEWS_SPEC
155 , V_ADDRESSBOOK
156 , V_GLOB_ADDRBOOK
157 , V_STANDARD_PRINTER
158 , V_LAST_TIME_PRUNE_QUESTION
159 , V_LAST_VERS_USED
160 , V_SENDMAIL_PATH
161 , V_OPER_DIR
162 , V_USERINPUTTIMEO
163 #ifdef DEBUGJOURNAL
164 , V_DEBUGMEM /* obsolete */
165 #endif
166 , V_TCPOPENTIMEO
167 , V_TCPREADWARNTIMEO
168 , V_TCPWRITEWARNTIMEO
169 , V_TCPQUERYTIMEO
170 , V_QUITQUERYTIMEO
171 , V_RSHCMD
172 , V_RSHPATH
173 , V_RSHOPENTIMEO
174 , V_SSHCMD
175 , V_SSHPATH
176 , V_SSHOPENTIMEO
177 , V_NEW_VER_QUELL
178 , V_DISABLE_DRIVERS
179 , V_DISABLE_AUTHS
180 #ifdef DF_ENCRYPTION_RANGE
181 , V_ENCRYPTION_RANGE
182 #endif /* DF_ENCRYPTION_RANGE */
183 , V_REMOTE_ABOOK_METADATA
184 , V_REMOTE_ABOOK_HISTORY
185 , V_REMOTE_ABOOK_VALIDITY
186 , V_PRINTER
187 , V_PERSONAL_PRINT_COMMAND
188 , V_PERSONAL_PRINT_CATEGORY
189 , V_XOAUTH2_INFO
190 , V_PATTERNS /* obsolete */
191 , V_PAT_ROLES
192 , V_PAT_FILTS
193 , V_PAT_FILTS_OLD /* obsolete */
194 , V_PAT_SCORES
195 , V_PAT_SCORES_OLD /* obsolete */
196 , V_PAT_INCOLS
197 , V_PAT_OTHER
198 , V_PAT_SRCH
199 , V_ELM_STYLE_SAVE /* obsolete */
200 , V_HEADER_IN_REPLY /* obsolete */
201 , V_FEATURE_LEVEL /* obsolete */
202 , V_OLD_STYLE_REPLY /* obsolete */
203 , V_COMPOSE_MIME /* obsolete */
204 , V_SHOW_ALL_CHARACTERS /* obsolete */
205 , V_SAVE_BY_SENDER /* obsolete */
206 #if defined(DOS) || defined(OS2)
207 , V_FILE_DIR
208 , V_FOLDER_EXTENSION
209 #endif
210 #ifndef _WINDOWS
211 , V_COLOR_STYLE
212 #endif
213 , V_INDEX_COLOR_STYLE
214 , V_TITLEBAR_COLOR_STYLE
215 , V_NORM_FORE_COLOR
216 , V_NORM_BACK_COLOR
217 , V_REV_FORE_COLOR
218 , V_REV_BACK_COLOR
219 , V_TITLE_FORE_COLOR
220 , V_TITLE_BACK_COLOR
221 , V_TITLECLOSED_FORE_COLOR
222 , V_TITLECLOSED_BACK_COLOR
223 , V_FOLDER_FORE_COLOR
224 , V_FOLDER_BACK_COLOR
225 , V_DIRECTORY_FORE_COLOR
226 , V_DIRECTORY_BACK_COLOR
227 , V_FOLDER_LIST_FORE_COLOR
228 , V_FOLDER_LIST_BACK_COLOR
229 , V_STATUS_FORE_COLOR
230 , V_STATUS_BACK_COLOR
231 , V_KEYLABEL_FORE_COLOR
232 , V_KEYLABEL_BACK_COLOR
233 , V_KEYNAME_FORE_COLOR
234 , V_KEYNAME_BACK_COLOR
235 , V_SLCTBL_FORE_COLOR
236 , V_SLCTBL_BACK_COLOR
237 , V_METAMSG_FORE_COLOR
238 , V_METAMSG_BACK_COLOR
239 , V_QUOTE1_FORE_COLOR
240 , V_QUOTE1_BACK_COLOR
241 , V_QUOTE2_FORE_COLOR
242 , V_QUOTE2_BACK_COLOR
243 , V_QUOTE3_FORE_COLOR
244 , V_QUOTE3_BACK_COLOR
245 , V_INCUNSEEN_FORE_COLOR
246 , V_INCUNSEEN_BACK_COLOR
247 , V_SIGNATURE_FORE_COLOR
248 , V_SIGNATURE_BACK_COLOR
249 , V_PROMPT_FORE_COLOR
250 , V_PROMPT_BACK_COLOR
251 , V_HEADER_GENERAL_FORE_COLOR
252 , V_HEADER_GENERAL_BACK_COLOR
253 , V_IND_PLUS_FORE_COLOR
254 , V_IND_PLUS_BACK_COLOR
255 , V_IND_IMP_FORE_COLOR
256 , V_IND_IMP_BACK_COLOR
257 , V_IND_DEL_FORE_COLOR
258 , V_IND_DEL_BACK_COLOR
259 , V_IND_ANS_FORE_COLOR
260 , V_IND_ANS_BACK_COLOR
261 , V_IND_NEW_FORE_COLOR
262 , V_IND_NEW_BACK_COLOR
263 , V_IND_REC_FORE_COLOR
264 , V_IND_REC_BACK_COLOR
265 , V_IND_FWD_FORE_COLOR
266 , V_IND_FWD_BACK_COLOR
267 , V_IND_UNS_FORE_COLOR
268 , V_IND_UNS_BACK_COLOR
269 , V_IND_HIPRI_FORE_COLOR
270 , V_IND_HIPRI_BACK_COLOR
271 , V_IND_LOPRI_FORE_COLOR
272 , V_IND_LOPRI_BACK_COLOR
273 , V_IND_ARR_FORE_COLOR
274 , V_IND_ARR_BACK_COLOR
275 , V_IND_SUBJ_FORE_COLOR
276 , V_IND_SUBJ_BACK_COLOR
277 , V_IND_FROM_FORE_COLOR
278 , V_IND_FROM_BACK_COLOR
279 , V_IND_OP_FORE_COLOR
280 , V_IND_OP_BACK_COLOR
281 , V_INDEX_TOKEN_COLORS
282 , V_VIEW_HDR_COLORS
283 , V_KW_COLORS
284 #if defined(DOS) || defined(OS2)
285 #ifdef _WINDOWS
286 , V_FONT_NAME
287 , V_FONT_SIZE
288 , V_FONT_STYLE
289 , V_FONT_CHAR_SET
290 , V_PRINT_FONT_NAME
291 , V_PRINT_FONT_SIZE
292 , V_PRINT_FONT_STYLE
293 , V_PRINT_FONT_CHAR_SET
294 , V_WINDOW_POSITION
295 , V_CURSOR_STYLE
296 #endif
297 #endif
298 , V_HTML_DIRECTORY
299 #ifdef SMIME
300 , V_PUBLICCERT_DIR
301 , V_PUBLICCERT_CONTAINER
302 , V_PRIVATEKEY_DIR
303 , V_PRIVATEKEY_CONTAINER
304 , V_CACERT_DIR
305 , V_CACERT_CONTAINER
306 #endif
307 #ifdef ENABLE_LDAP
308 , V_LDAP_SERVERS /* should be last so make will work right */
309 #endif
310 , V_RSS_NEWS
311 , V_RSS_WEATHER
312 , V_WP_INDEXHEIGHT
313 , V_WP_INDEXLINES
314 , V_WP_AGGSTATE
315 , V_WP_STATE
316 , V_WP_COLUMNS
317 , V_DUMMY
318 } VariableIndex;
320 #define V_LAST_VAR (V_DUMMY - 1)
324 * The list of feature numbers (which bit goes with which feature).
325 * The order of the features is not significant.
327 typedef enum {
328 F_OLD_GROWTH = 0,
329 F_ENABLE_FULL_HDR,
330 F_ENABLE_PIPE,
331 F_ENABLE_TAB_COMPLETE,
332 F_QUIT_WO_CONFIRM,
333 F_ENABLE_JUMP,
334 F_ENABLE_ALT_ED,
335 F_ENABLE_BOUNCE,
336 F_ENABLE_AGG_OPS,
337 F_ENABLE_FLAG,
338 F_CAN_SUSPEND,
339 F_USE_FK,
340 F_INCLUDE_HEADER,
341 F_SIG_AT_BOTTOM,
342 F_DEL_SKIPS_DEL,
343 F_AUTO_EXPUNGE,
344 F_FULL_AUTO_EXPUNGE,
345 F_EXPUNGE_MANUALLY,
346 F_AUTO_READ_MSGS,
347 F_AUTO_FCC_ONLY,
348 F_READ_IN_NEWSRC_ORDER,
349 F_SELECT_WO_CONFIRM,
350 F_SAVE_PARTIAL_WO_CONFIRM,
351 F_NEXT_THRD_WO_CONFIRM,
352 F_USE_CURRENT_DIR,
353 F_STARTUP_STAYOPEN,
354 F_USE_RESENTTO,
355 F_SAVE_WONT_DELETE,
356 F_SAVE_ADVANCES,
357 F_UNSELECT_WONT_ADVANCE,
358 F_FORCE_LOW_SPEED,
359 F_FORCE_ARROW,
360 F_PRUNE_USES_ISO,
361 F_ALT_ED_NOW,
362 F_IGNORE_SIZE,
363 F_SHOW_DELAY_CUE,
364 F_CANCEL_CONFIRM,
365 F_AUTO_OPEN_NEXT_UNREAD,
366 F_DISABLE_INDEX_LOCALE_DATES,
367 F_SELECTED_SHOWN_BOLD,
368 F_QUOTE_ALL_FROMS,
369 F_AUTO_INCLUDE_IN_REPLY,
370 F_DISABLE_CONFIG_SCREEN,
371 F_DISABLE_PASSWORD_CACHING,
372 #ifdef LOCAL_PASSWD_CACHE
373 F_DISABLE_PASSWORD_FILE_SAVING,
374 #endif /* LOCAL_PASSWD_CACHE */
375 F_DISABLE_REGEX,
376 F_DISABLE_PASSWORD_CMD,
377 F_DISABLE_UPDATE_CMD,
378 F_DISABLE_KBLOCK_CMD,
379 F_DISABLE_SIGEDIT_CMD,
380 F_ENABLE_DEL_WHEN_WRITING,
381 F_DISABLE_ROLES_SETUP,
382 F_DISABLE_ROLES_SIGEDIT,
383 F_DISABLE_ROLES_TEMPLEDIT,
384 F_DISABLE_PIPES_IN_SIGS,
385 F_DISABLE_PIPES_IN_TEMPLATES,
386 F_ATTACHMENTS_IN_REPLY,
387 F_ENABLE_INCOMING,
388 F_ENABLE_INCOMING_CHECKING,
389 F_INCOMING_CHECKING_TOTAL,
390 F_INCOMING_CHECKING_RECENT,
391 F_NO_NEWS_VALIDATION,
392 F_QUELL_EXTRA_POST_PROMPT,
393 F_DISABLE_TAKE_LASTFIRST,
394 F_DISABLE_TAKE_FULLNAMES,
395 F_DISABLE_TERM_RESET_DISP,
396 F_DISABLE_SENDER,
397 F_ROT13_MESSAGE_ID,
398 F_QUELL_LOCAL_LOOKUP,
399 F_COMPOSE_TO_NEWSGRP,
400 F_PRESERVE_START_STOP,
401 F_COMPOSE_REJECTS_UNQUAL,
402 F_FAKE_NEW_IN_NEWS,
403 F_SUSPEND_SPAWNS,
404 F_ENABLE_8BIT,
405 F_COMPOSE_MAPS_DEL,
406 F_ENABLE_8BIT_NNTP,
407 F_ENABLE_MOUSE,
408 F_SHOW_CURSOR,
409 F_PASS_CONTROL_CHARS,
410 F_PASS_C1_CONTROL_CHARS,
411 F_SINGLE_FOLDER_LIST,
412 F_VERTICAL_FOLDER_LIST,
413 F_TAB_CHK_RECENT,
414 F_AUTO_REPLY_TO,
415 F_VERBOSE_POST,
416 F_FCC_ON_BOUNCE,
417 F_SEND_WO_CONFIRM,
418 F_USE_SENDER_NOT_X,
419 F_BLANK_KEYMENU,
420 F_DISABLE_SAVE_INPUT_HISTORY,
421 F_CUSTOM_PRINT,
422 F_DEL_FROM_DOT,
423 F_AUTO_ZOOM,
424 F_AUTO_UNZOOM,
425 F_PRINT_INDEX,
426 F_ALLOW_TALK,
427 F_AGG_PRINT_FF,
428 F_ENABLE_DOT_FILES,
429 F_ENABLE_DOT_FOLDERS,
430 F_FIRST_SEND_FILTER_DFLT,
431 F_ALWAYS_LAST_FLDR_DFLT,
432 F_TAB_TO_NEW,
433 F_MARK_FOR_CC,
434 F_WARN_ABOUT_NO_SUBJECT,
435 F_WARN_ABOUT_NO_FCC,
436 F_WARN_ABOUT_NO_TO_OR_CC,
437 F_QUELL_DEAD_LETTER,
438 F_QUELL_BEEPS,
439 F_QUELL_LOCK_FAILURE_MSGS,
440 F_ENABLE_SPACE_AS_TAB,
441 F_USE_BORING_SPINNER,
442 F_ENABLE_TAB_DELETES,
443 F_FLAG_SCREEN_KW_SHORTCUT,
444 F_FLAG_SCREEN_DFLT,
445 F_ENABLE_XTERM_NEWMAIL,
446 F_ENABLE_NEWMAIL_SHORT_TEXT,
447 F_EXPANDED_DISTLISTS,
448 F_AGG_SEQ_COPY,
449 F_DISABLE_ALARM,
450 F_DISABLE_SETLOCALE_COLLATE,
451 F_FROM_DELIM_IN_PRINT,
452 F_BACKGROUND_POST,
453 F_ALLOW_GOTO,
454 F_DSN,
455 F_ENABLE_SEARCH_AND_REPL,
456 F_ARROW_NAV,
457 F_RELAXED_ARROW_NAV,
458 F_TCAP_WINS,
459 F_ENABLE_SIGDASHES,
460 F_ENABLE_STRIP_SIGDASHES,
461 F_NEW_THREAD_ON_BLANK_SUBJECT,
462 F_QUELL_PARTIAL_FETCH,
463 F_QUELL_PERSONAL_NAME_PROMPT,
464 F_QUELL_USER_ID_PROMPT,
465 F_VIEW_SEL_ATTACH,
466 F_VIEW_SEL_URL,
467 F_VIEW_SEL_URL_HOST,
468 F_SCAN_ADDR,
469 F_FORCE_ARROWS,
470 F_EXTERNAL_INLINE_IMAGES,
471 F_PREFER_PLAIN_TEXT,
472 F_QUELL_CHARSET_WARNING,
473 F_COPY_TO_TO_FROM,
474 F_ENABLE_EDIT_REPLY_INDENT,
475 F_ENABLE_PRYNT,
476 F_ALLOW_CHANGING_FROM,
477 F_ENABLE_SUB_LISTS,
478 F_ENABLE_LESSTHAN_EXIT,
479 F_ENABLE_FAST_RECENT,
480 F_TAB_USES_UNSEEN,
481 F_ENABLE_ROLE_TAKE,
482 F_ENABLE_TAKE_EXPORT,
483 F_QUELL_ATTACH_EXTRA_PROMPT,
484 F_QUELL_ASTERISKS,
485 F_QUELL_ATTACH_EXT_WARN,
486 F_QUELL_FILTER_MSGS,
487 F_QUELL_FILTER_DONE_MSG,
488 F_SHOW_SORT,
489 F_FIX_BROKEN_LIST,
490 F_ENABLE_MULNEWSRCS,
491 F_PREDICT_NNTP_SERVER,
492 F_NEWS_CROSS_DELETE,
493 F_NEWS_CATCHUP,
494 F_QUELL_INTERNAL_MSG,
495 F_QUELL_IMAP_ENV_CB,
496 F_QUELL_NEWS_ENV_CB,
497 F_SEPARATE_FLDR_AS_DIR,
498 F_CMBND_ABOOK_DISP,
499 F_CMBND_FOLDER_DISP,
500 F_CMBND_SUBDIR_DISP,
501 F_EXPANDED_ADDRBOOKS,
502 F_EXPANDED_FOLDERS,
503 F_QUELL_EMPTY_DIRS,
504 F_SHOW_TEXTPLAIN_INT,
505 F_ROLE_CONFIRM_DEFAULT,
506 F_TAB_NO_CONFIRM,
507 F_DATES_TO_LOCAL,
508 F_RET_INBOX_NO_CONFIRM,
509 F_CHECK_MAIL_ONQUIT,
510 F_PREOPEN_STAYOPENS,
511 F_EXPUNGE_STAYOPENS,
512 F_EXPUNGE_INBOX,
513 F_NO_FCC_ATTACH,
514 F_DO_MAILCAP_PARAM_SUBST,
515 F_PREFER_ALT_AUTH,
516 F_SLCTBL_ITEM_NOBOLD,
517 F_QUELL_PINGS_COMPOSING,
518 F_QUELL_PINGS_COMPOSING_INBOX,
519 F_QUELL_BEZERK_TIMEZONE,
520 F_QUELL_CONTENT_ID,
521 F_QUELL_MAILDOMAIN_WARNING,
522 F_DISABLE_SHARED_NAMESPACES,
523 F_HIDE_NNTP_PATH,
524 F_MAILDROPS_PRESERVE_STATE,
525 F_EXPOSE_HIDDEN_CONFIG,
526 F_ALT_COMPOSE_MENU,
527 F_ALT_REPLY_MENU,
528 F_ALT_ROLE_MENU,
529 F_ALWAYS_SPELL_CHECK,
530 F_QUELL_TIMEZONE,
531 F_QUELL_USERAGENT,
532 F_COLOR_LINE_IMPORTANT,
533 F_SLASH_COLL_ENTIRE,
534 F_ENABLE_FULL_HDR_AND_TEXT,
535 F_QUELL_FULL_HDR_RESET,
536 F_MARK_FCC_SEEN,
537 F_MULNEWSRC_HOSTNAMES_AS_TYPED,
538 F_STRIP_WS_BEFORE_SEND,
539 F_QUELL_FLOWED_TEXT,
540 F_COMPOSE_ALWAYS_DOWNGRADE,
541 F_SORT_DEFAULT_FCC_ALPHA,
542 F_SORT_DEFAULT_SAVE_ALPHA,
543 F_QUOTE_REPLACE_NOFLOW,
544 F_AUTO_UNSELECT,
545 F_SEND_CONFIRM_ON_EXPAND,
546 F_ENABLE_NEWMAIL_SOUND,
547 F_RENDER_HTML_INTERNALLY,
548 F_ENABLE_JUMP_CMD,
549 F_FORWARD_AS_ATTACHMENT,
550 F_PRESERVE_ORIGINAL_FIELD,
551 #ifndef _WINDOWS
552 F_USE_SYSTEM_TRANS,
553 #endif /* ! _WINDOWS */
554 F_QUELL_HOST_AFTER_URL,
555 F_NNTP_SEARCH_USES_OVERVIEW,
556 F_THREAD_SORTS_BY_ARRIVAL,
557 #ifdef _WINDOWS
558 F_ENABLE_TRAYICON,
559 F_QUELL_SSL_LARGEBLOCKS,
560 F_STORE_WINPOS_IN_CONFIG,
561 #endif
562 #ifdef ENABLE_LDAP
563 F_ADD_LDAP_TO_ABOOK,
564 #endif
565 #ifdef SMIME
566 F_DONT_DO_SMIME,
567 F_SIGN_DEFAULT_ON,
568 F_ENCRYPT_DEFAULT_ON,
569 F_REMEMBER_SMIME_PASSPHRASE,
570 F_USE_CERT_STORE_ONLY,
571 #ifdef APPLEKEYCHAIN
572 F_PUBLICCERTS_IN_KEYCHAIN,
573 #endif
574 #endif
575 F_FEATURE_LIST_COUNT /* Number of features */
576 } FeatureList;
579 typedef struct init_err {
580 int flags, min_time, max_time;
581 char *message;
582 } INIT_ERR_S;
585 struct variable {
586 char *name;
587 unsigned is_obsolete:1; /* variable read in, not written unless set */
588 unsigned is_used:1; /* Some variables are disabled */
589 unsigned been_written:1;
590 unsigned is_user:1;
591 unsigned is_global:1;
592 unsigned is_list:1; /* flag indicating variable is a list */
593 unsigned is_fixed:1; /* sys mgr has fixed this variable */
594 unsigned is_onlymain:1; /* read and written from main_user_val */
595 unsigned is_outermost:1; /* read and written from outermost pinerc */
596 unsigned del_quotes:1; /* remove double quotes */
597 unsigned is_changed_val:1; /* WP: use the changed val instead of cur val */
598 char *dname; /* display name */
599 char *descrip; /* description */
600 union {
601 char *p; /* pointer to single string value */
602 char **l; /* pointer to list of string values */
603 } current_val;
604 union {
605 char *p; /* pointer to single string value */
606 char **l; /* pointer to list of string values */
607 } main_user_val; /* from pinerc */
608 union {
609 char *p; /* pointer to single string value */
610 char **l; /* pointer to list of string values */
611 } changed_val; /* currently different from pinerc */
612 union {
613 char *p; /* pointer to single string value */
614 char **l; /* pointer to list of string values */
615 } post_user_val; /* from pinerc */
616 union {
617 char *p; /* pointer to single string value */
618 char **l; /* pointer to list of string values */
619 } global_val; /* from default or pine.conf */
620 union {
621 char *p; /* pointer to single string value */
622 char **l; /* pointer to list of string values */
623 } fixed_val; /* fixed value assigned in pine.conf.fixed */
624 union {
625 char *p; /* pointer to single string value */
626 char **l; /* pointer to list of string values */
627 } cmdline_val; /* user typed as cmdline arg */
631 typedef struct feature_entry {
632 char *name;
633 char *dname; /* display name, same as name if NULL */
634 int id;
635 HelpType help;
636 int section; /* for grouping in config screen */
637 int defval; /* default value, 0 or 1 */
638 } FEATURE_S;
641 typedef struct pinerc_line {
642 char *line;
643 struct variable *var;
644 unsigned int is_var:1;
645 unsigned int is_quoted:1;
646 unsigned int obsolete_var:1;
647 } PINERC_LINE;
651 * Each pinerc has one of these.
653 typedef struct pinerc_s {
654 RemType type; /* type of pinerc, remote or local */
655 char *name; /* file name or remote name */
656 REMDATA_S *rd; /* remote data structure */
657 time_t pinerc_written;
658 unsigned readonly:1;
659 unsigned outstanding_pinerc_changes:1;
660 unsigned quit_to_edit:1;
661 PINERC_LINE *pinerc_lines;
662 } PINERC_S;
665 typedef enum {ParsePers, ParsePersPost, ParseGlobal, ParseFixed} ParsePinerc;
668 /* data stored in a line in the metadata file */
669 typedef struct remote_data_meta {
670 char *local_cache_file;
671 imapuid_t uidvalidity;
672 imapuid_t uidnext;
673 imapuid_t uid;
674 unsigned long nmsgs;
675 char read_status; /* 'R' for readonly, 'W' for readwrite */
676 char *date;
677 } REMDATA_META_S;
681 * Generic name/value pair structure
683 typedef struct nameval {
684 char *name; /* the name that goes on the screen */
685 char *shortname; /* if non-NULL, name that goes in config file */
686 int value; /* the internal bit number */
687 } NAMEVAL_S;
690 typedef enum {Main, Post, None} EditWhich;
693 #ifdef SMIME
695 typedef enum {Directory, Container, Keychain, Nada} SmimeHolderType;
697 typedef enum {Public, Private, CACert, Password} WhichCerts;
699 typedef struct certdata {
700 unsigned deleted:1; /* certificate is marked deleted */
701 unsigned renew:1; /* we must renew this list, set at top cert */
702 char *date_from; /* date from which certificate is valid */
703 char *date_to; /* date certificate expires */
704 char *md5; /* MD5 Hash */
705 } CertData;
707 typedef struct certlist {
708 char *name; /* file name */
709 char *cn; /* CN field from certificate */
710 void *x509_cert; /* this is type (X509 *) */
711 CertData data;
712 struct certlist *next;
713 } CertList;
715 typedef struct smime_stuff {
716 unsigned inited:1;
717 unsigned do_sign:1; /* set true if signing */
718 unsigned do_encrypt:1; /* set true if encrypting */
719 unsigned need_passphrase:1; /* set true if loading a key failed due to lack of passphrase */
720 unsigned entered_passphrase:1; /* user entered a passphrase */
721 unsigned already_auto_asked:1; /* asked for passphrase automatically, not again */
722 volatile char passphrase[100]; /* storage for the entered passphrase */
723 char **passphrase_emailaddr; /* pointer to allocated storage */
726 * If we are using the Container type it is easiest if we
727 * read in and maintain a list of certs and then write them
728 * out all at once. For Directory type we just leave the data
729 * in the individual files and read the list of files in the
730 * directory.
732 SmimeHolderType publictype;
733 char *publicpath;
734 char *publiccontent;
735 CertList *publiccertlist;
736 CertList *backuppubliccertlist;
738 SmimeHolderType privatetype;
739 char *privatepath;
740 char *privatecontent;
741 CertList *privatecertlist;
742 CertList *backupprivatecertlist;
743 void *personal_certs; /* this is type (PERSONAL_CERT *) */
745 SmimeHolderType catype;
746 char *capath;
747 char *cacontent;
748 CertList *cacertlist;
749 CertList *backupcacertlist;
751 } SMIME_STUFF_S;
753 #define BACKUPDATACERT(X) ((X) == Public ? ps_global->smime->backuppubliccertlist : \
754 (X) == Private ? ps_global->smime->backupprivatecertlist : \
755 (X) == CACert ? ps_global->smime->backupcacertlist : \
756 (X) == Password ? (CertList *) ps_global->backuppassword : \
757 NULL)
759 #define DATACERT(X) ((X) == Public ? ps_global->smime->publiccertlist : \
760 (X) == Private ? ps_global->smime->privatecertlist : \
761 (X) == CACert ? ps_global->smime->cacertlist : \
762 (X) == Password ? (CertList *) ps_global->pwdcertlist : \
763 NULL)
765 #define PATHCERTDIR(X) ((X) == Public ? ps_global->smime->publicpath : \
766 (X) == Private ? ps_global->smime->privatepath : \
767 (X) == CACert ? ps_global->smime->capath : \
768 (X) == Password ? ps_global->pwdcertdir : \
769 NULL)
771 #define CONTENTCERTLIST(X) ((X) == Public ? ps_global->smime->publiccontent : \
772 (X) == Private ? ps_global->smime->privatecontent : \
773 (X) == CACert ? ps_global->smime->cacontent : \
774 (X) == Password ? ps_global->pwdcertcontent : \
775 NULL)
777 #define SMHOLDERTYPE(X) ((X) == Public ? ps_global->smime->publictype : \
778 (X) == Private ? ps_global->smime->privatetype : \
779 (X) == CACert ? ps_global->smime->catype : \
780 (X) == Password ? Directory : \
781 Nada)
783 #define EXTCERT(X) (((X) == Public ? ".crt" \
784 : ((X) == Private ? ".key" \
785 : ((X) == CACert ? ".crt" : ""))))
787 #define DELETEDCERT(X) ((X)->data.deleted)
788 #define RENEWCERT(X) ((X)->data.renew)
789 #define DATEFROMCERT(X) ((X)->data.date_from)
790 #define DATETOCERT(X) ((X)->data.date_to)
791 #define MD5CERT(X) ((X)->data.md5)
793 #endif /* SMIME */
796 /* exported prototypes */
799 #endif /* PITH_CONFTYPE_INCLUDED */