diff options
Diffstat (limited to 'src/core/core-config.h')
-rw-r--r-- | src/core/core-config.h | 424 |
1 files changed, 424 insertions, 0 deletions
diff --git a/src/core/core-config.h b/src/core/core-config.h new file mode 100644 index 000000000..55febe40f --- /dev/null +++ b/src/core/core-config.h @@ -0,0 +1,424 @@ +/* + * Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> + * Copyright (C) 2005-2006 Emmanuel Bouthenot <kolter@openics.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * WeeChat is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WeeChat. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef WEECHAT_CONFIG_H +#define WEECHAT_CONFIG_H + +#include <regex.h> +#include <wctype.h> + +#include "core-config-file.h" + +struct t_gui_buffer; + +#define WEECHAT_CONFIG_NAME "weechat" +#define WEECHAT_CONFIG_PRIO_NAME "110000|weechat" + +#define WEECHAT_CONFIG_VERSION 2 + +#define TAB_MAX_WIDTH 64 + +enum t_config_look_align_end_of_lines +{ + CONFIG_LOOK_ALIGN_END_OF_LINES_TIME = 0, + CONFIG_LOOK_ALIGN_END_OF_LINES_BUFFER, + CONFIG_LOOK_ALIGN_END_OF_LINES_PREFIX, + CONFIG_LOOK_ALIGN_END_OF_LINES_SUFFIX, + CONFIG_LOOK_ALIGN_END_OF_LINES_MESSAGE, +}; + +enum t_config_look_buffer_position +{ + CONFIG_LOOK_BUFFER_POSITION_END = 0, + CONFIG_LOOK_BUFFER_POSITION_FIRST_GAP, +}; + +enum t_config_look_buffer_search_history +{ + CONFIG_LOOK_BUFFER_SEARCH_HISTORY_LOCAL = 0, + CONFIG_LOOK_BUFFER_SEARCH_HISTORY_GLOBAL, +}; + +enum t_config_look_buffer_search_where +{ + CONFIG_LOOK_BUFFER_SEARCH_PREFIX = 0, + CONFIG_LOOK_BUFFER_SEARCH_MESSAGE, + CONFIG_LOOK_BUFFER_SEARCH_PREFIX_MESSAGE, +}; + +enum t_config_look_nick_color_hash +{ + CONFIG_LOOK_NICK_COLOR_HASH_DJB2 = 0, + CONFIG_LOOK_NICK_COLOR_HASH_SUM, + CONFIG_LOOK_NICK_COLOR_HASH_DJB2_32, + CONFIG_LOOK_NICK_COLOR_HASH_SUM_32, +}; + +enum t_config_look_prefix_align +{ + CONFIG_LOOK_PREFIX_ALIGN_NONE = 0, + CONFIG_LOOK_PREFIX_ALIGN_LEFT, + CONFIG_LOOK_PREFIX_ALIGN_RIGHT, +}; + +enum t_config_look_prefix_buffer_align +{ + CONFIG_LOOK_PREFIX_BUFFER_ALIGN_NONE = 0, + CONFIG_LOOK_PREFIX_BUFFER_ALIGN_LEFT, + CONFIG_LOOK_PREFIX_BUFFER_ALIGN_RIGHT, +}; + +enum t_config_look_hotlist_remove +{ + CONFIG_LOOK_HOTLIST_REMOVE_BUFFER = 0, + CONFIG_LOOK_HOTLIST_REMOVE_MERGED, +}; + +enum t_config_look_hotlist_sort +{ + CONFIG_LOOK_HOTLIST_SORT_GROUP_TIME_ASC = 0, + CONFIG_LOOK_HOTLIST_SORT_GROUP_TIME_DESC, + CONFIG_LOOK_HOTLIST_SORT_GROUP_NUMBER_ASC, + CONFIG_LOOK_HOTLIST_SORT_GROUP_NUMBER_DESC, + CONFIG_LOOK_HOTLIST_SORT_NUMBER_ASC, + CONFIG_LOOK_HOTLIST_SORT_NUMBER_DESC, +}; + +enum t_config_look_input_share +{ + CONFIG_LOOK_INPUT_SHARE_NONE = 0, + CONFIG_LOOK_INPUT_SHARE_COMMANDS, + CONFIG_LOOK_INPUT_SHARE_TEXT, + CONFIG_LOOK_INPUT_SHARE_ALL, +}; + +enum t_config_look_read_marker +{ + CONFIG_LOOK_READ_MARKER_NONE = 0, + CONFIG_LOOK_READ_MARKER_LINE, + CONFIG_LOOK_READ_MARKER_CHAR, +}; + +enum t_config_look_save_layout_on_exit +{ + CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_NONE = 0, + CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_BUFFERS, + CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_WINDOWS, + CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_ALL, +}; + +struct t_config_look_word_char_item +{ + char exclude; /* 1 if char is NOT a word char */ + wctype_t wc_class; /* class of wide characters (wctype) */ + wint_t char1; /* first char of range */ + wint_t char2; /* second char of range */ +}; + +extern struct t_config_file *weechat_config_file; + +extern struct t_config_section *weechat_config_section_debug; +extern struct t_config_section *weechat_config_section_startup; +extern struct t_config_section *weechat_config_section_look; +extern struct t_config_section *weechat_config_section_palette; +extern struct t_config_section *weechat_config_section_color; +extern struct t_config_section *weechat_config_section_completion; +extern struct t_config_section *weechat_config_section_history; +extern struct t_config_section *weechat_config_section_network; +extern struct t_config_section *weechat_config_section_proxy; +extern struct t_config_section *weechat_config_section_plugin; +extern struct t_config_section *weechat_config_section_signal; +extern struct t_config_section *weechat_config_section_bar; +extern struct t_config_section *weechat_config_section_custom_bar_item; +extern struct t_config_section *weechat_config_section_layout; +extern struct t_config_section *weechat_config_section_buffer; +extern struct t_config_section *weechat_config_section_notify; +extern struct t_config_section *weechat_config_section_filter; +extern struct t_config_section *weechat_config_section_key[]; + +extern struct t_config_option *config_startup_command_after_plugins; +extern struct t_config_option *config_startup_command_before_plugins; +extern struct t_config_option *config_startup_display_logo; +extern struct t_config_option *config_startup_display_version; +extern struct t_config_option *config_startup_sys_rlimit; + +extern struct t_config_option *config_look_align_end_of_lines; +extern struct t_config_option *config_look_align_multiline_words; +extern struct t_config_option *config_look_bar_more_down; +extern struct t_config_option *config_look_bar_more_left; +extern struct t_config_option *config_look_bar_more_right; +extern struct t_config_option *config_look_bar_more_up; +extern struct t_config_option *config_look_bare_display_exit_on_input; +extern struct t_config_option *config_look_bare_display_time_format; +extern struct t_config_option *config_look_buffer_auto_renumber; +extern struct t_config_option *config_look_buffer_notify_default; +extern struct t_config_option *config_look_buffer_position; +extern struct t_config_option *config_look_buffer_search_case_sensitive; +extern struct t_config_option *config_look_buffer_search_history; +extern struct t_config_option *config_look_buffer_search_force_default; +extern struct t_config_option *config_look_buffer_search_regex; +extern struct t_config_option *config_look_buffer_search_where; +extern struct t_config_option *config_look_buffer_time_format; +extern struct t_config_option *config_look_buffer_time_same; +extern struct t_config_option *config_look_chat_space_right; +extern struct t_config_option *config_look_color_basic_force_bold; +extern struct t_config_option *config_look_color_inactive_buffer; +extern struct t_config_option *config_look_color_inactive_message; +extern struct t_config_option *config_look_color_inactive_prefix; +extern struct t_config_option *config_look_color_inactive_prefix_buffer; +extern struct t_config_option *config_look_color_inactive_time; +extern struct t_config_option *config_look_color_inactive_window; +extern struct t_config_option *config_look_color_nick_offline; +extern struct t_config_option *config_look_color_pairs_auto_reset; +extern struct t_config_option *config_look_color_real_white; +extern struct t_config_option *config_look_command_chars; +extern struct t_config_option *config_look_command_incomplete; +extern struct t_config_option *config_look_confirm_quit; +extern struct t_config_option *config_look_confirm_upgrade; +extern struct t_config_option *config_look_day_change; +extern struct t_config_option *config_look_day_change_message_1date; +extern struct t_config_option *config_look_day_change_message_2dates; +extern struct t_config_option *config_look_eat_newline_glitch; +extern struct t_config_option *config_look_emphasized_attributes; +extern struct t_config_option *config_look_highlight; +extern struct t_config_option *config_look_highlight_disable_regex; +extern struct t_config_option *config_look_highlight_regex; +extern struct t_config_option *config_look_highlight_tags; +extern struct t_config_option *config_look_hotlist_add_conditions; +extern struct t_config_option *config_look_hotlist_buffer_separator; +extern struct t_config_option *config_look_hotlist_count_max; +extern struct t_config_option *config_look_hotlist_count_min_msg; +extern struct t_config_option *config_look_hotlist_names_count; +extern struct t_config_option *config_look_hotlist_names_length; +extern struct t_config_option *config_look_hotlist_names_level; +extern struct t_config_option *config_look_hotlist_names_merged_buffers; +extern struct t_config_option *config_look_hotlist_prefix; +extern struct t_config_option *config_look_hotlist_remove; +extern struct t_config_option *config_look_hotlist_short_names; +extern struct t_config_option *config_look_hotlist_sort; +extern struct t_config_option *config_look_hotlist_suffix; +extern struct t_config_option *config_look_hotlist_unique_numbers; +extern struct t_config_option *config_look_hotlist_update_on_buffer_switch; +extern struct t_config_option *config_look_input_cursor_scroll; +extern struct t_config_option *config_look_input_multiline_lead_linebreak; +extern struct t_config_option *config_look_input_share; +extern struct t_config_option *config_look_input_share_overwrite; +extern struct t_config_option *config_look_input_undo_max; +extern struct t_config_option *config_look_item_away_message; +extern struct t_config_option *config_look_item_buffer_filter; +extern struct t_config_option *config_look_item_buffer_zoom; +extern struct t_config_option *config_look_item_mouse_status; +extern struct t_config_option *config_look_item_time_format; +extern struct t_config_option *config_look_jump_current_to_previous_buffer; +extern struct t_config_option *config_look_jump_previous_buffer_when_closing; +extern struct t_config_option *config_look_jump_smart_back_to_buffer; +extern struct t_config_option *config_look_key_bind_safe; +extern struct t_config_option *config_look_key_grab_delay; +extern struct t_config_option *config_look_mouse; +extern struct t_config_option *config_look_nick_color_force; +extern struct t_config_option *config_look_nick_color_hash; +extern struct t_config_option *config_look_nick_color_hash_salt; +extern struct t_config_option *config_look_nick_color_stop_chars; +extern struct t_config_option *config_look_nick_prefix; +extern struct t_config_option *config_look_nick_suffix; +extern struct t_config_option *config_look_paste_auto_add_newline; +extern struct t_config_option *config_look_paste_bracketed; +extern struct t_config_option *config_look_paste_bracketed_timer_delay; +extern struct t_config_option *config_look_paste_max_lines; +extern struct t_config_option *config_look_prefix[]; +extern struct t_config_option *config_look_prefix_align; +extern struct t_config_option *config_look_prefix_align_max; +extern struct t_config_option *config_look_prefix_align_min; +extern struct t_config_option *config_look_prefix_align_more; +extern struct t_config_option *config_look_prefix_align_more_after; +extern struct t_config_option *config_look_prefix_buffer_align; +extern struct t_config_option *config_look_prefix_buffer_align_max; +extern struct t_config_option *config_look_prefix_buffer_align_more; +extern struct t_config_option *config_look_prefix_buffer_align_more_after; +extern struct t_config_option *config_look_prefix_same_nick; +extern struct t_config_option *config_look_prefix_same_nick_middle; +extern struct t_config_option *config_look_prefix_suffix; +extern struct t_config_option *config_look_quote_nick_prefix; +extern struct t_config_option *config_look_quote_nick_suffix; +extern struct t_config_option *config_look_quote_time_format; +extern struct t_config_option *config_look_read_marker; +extern struct t_config_option *config_look_read_marker_always_show; +extern struct t_config_option *config_look_read_marker_string; +extern struct t_config_option *config_look_read_marker_update_on_buffer_switch; +extern struct t_config_option *config_look_save_config_on_exit; +extern struct t_config_option *config_look_save_config_with_fsync; +extern struct t_config_option *config_look_save_layout_on_exit; +extern struct t_config_option *config_look_scroll_amount; +extern struct t_config_option *config_look_scroll_bottom_after_switch; +extern struct t_config_option *config_look_scroll_page_percent; +extern struct t_config_option *config_look_search_text_not_found_alert; +extern struct t_config_option *config_look_separator_horizontal; +extern struct t_config_option *config_look_separator_vertical; +extern struct t_config_option *config_look_tab_width; +extern struct t_config_option *config_look_time_format; +extern struct t_config_option *config_look_window_auto_zoom; +extern struct t_config_option *config_look_window_separator_horizontal; +extern struct t_config_option *config_look_window_separator_vertical; +extern struct t_config_option *config_look_window_title; +extern struct t_config_option *config_look_word_chars_highlight; +extern struct t_config_option *config_look_word_chars_input; + +extern struct t_config_option *config_color_bar_more; +extern struct t_config_option *config_color_chat; +extern struct t_config_option *config_color_chat_bg; +extern struct t_config_option *config_color_chat_buffer; +extern struct t_config_option *config_color_chat_channel; +extern struct t_config_option *config_color_chat_day_change; +extern struct t_config_option *config_color_chat_delimiters; +extern struct t_config_option *config_color_chat_highlight; +extern struct t_config_option *config_color_chat_highlight_bg; +extern struct t_config_option *config_color_chat_host; +extern struct t_config_option *config_color_chat_inactive_buffer; +extern struct t_config_option *config_color_chat_inactive_window; +extern struct t_config_option *config_color_chat_nick; +extern struct t_config_option *config_color_chat_nick_colors; +extern struct t_config_option *config_color_chat_nick_offline; +extern struct t_config_option *config_color_chat_nick_offline_highlight; +extern struct t_config_option *config_color_chat_nick_offline_highlight_bg; +extern struct t_config_option *config_color_chat_nick_other; +extern struct t_config_option *config_color_chat_nick_prefix; +extern struct t_config_option *config_color_chat_nick_self; +extern struct t_config_option *config_color_chat_nick_suffix; +extern struct t_config_option *config_color_chat_prefix[]; +extern struct t_config_option *config_color_chat_prefix_buffer; +extern struct t_config_option *config_color_chat_prefix_buffer_inactive_buffer; +extern struct t_config_option *config_color_chat_prefix_more; +extern struct t_config_option *config_color_chat_prefix_suffix; +extern struct t_config_option *config_color_chat_read_marker; +extern struct t_config_option *config_color_chat_read_marker_bg; +extern struct t_config_option *config_color_chat_server; +extern struct t_config_option *config_color_chat_status_disabled; +extern struct t_config_option *config_color_chat_status_enabled; +extern struct t_config_option *config_color_chat_tags; +extern struct t_config_option *config_color_chat_text_found; +extern struct t_config_option *config_color_chat_text_found_bg; +extern struct t_config_option *config_color_chat_time; +extern struct t_config_option *config_color_chat_time_delimiters; +extern struct t_config_option *config_color_chat_value; +extern struct t_config_option *config_color_chat_value_null; +extern struct t_config_option *config_color_emphasized; +extern struct t_config_option *config_color_emphasized_bg; +extern struct t_config_option *config_color_eval_syntax_colors; +extern struct t_config_option *config_color_input_actions; +extern struct t_config_option *config_color_input_text_not_found; +extern struct t_config_option *config_color_item_away; +extern struct t_config_option *config_color_nicklist_away; +extern struct t_config_option *config_color_nicklist_group; +extern struct t_config_option *config_color_separator; +extern struct t_config_option *config_color_status_count_highlight; +extern struct t_config_option *config_color_status_count_msg; +extern struct t_config_option *config_color_status_count_other; +extern struct t_config_option *config_color_status_count_private; +extern struct t_config_option *config_color_status_data_highlight; +extern struct t_config_option *config_color_status_data_msg; +extern struct t_config_option *config_color_status_data_other; +extern struct t_config_option *config_color_status_data_private; +extern struct t_config_option *config_color_status_filter; +extern struct t_config_option *config_color_status_more; +extern struct t_config_option *config_color_status_mouse; +extern struct t_config_option *config_color_status_name; +extern struct t_config_option *config_color_status_name_tls; +extern struct t_config_option *config_color_status_nicklist_count; +extern struct t_config_option *config_color_status_number; +extern struct t_config_option *config_color_status_time; + +extern struct t_config_option *config_completion_base_word_until_cursor; +extern struct t_config_option *config_completion_command_inline; +extern struct t_config_option *config_completion_default_template; +extern struct t_config_option *config_completion_nick_add_space; +extern struct t_config_option *config_completion_nick_case_sensitive; +extern struct t_config_option *config_completion_nick_completer; +extern struct t_config_option *config_completion_nick_first_only; +extern struct t_config_option *config_completion_nick_ignore_chars; +extern struct t_config_option *config_completion_partial_completion_alert; +extern struct t_config_option *config_completion_partial_completion_command; +extern struct t_config_option *config_completion_partial_completion_command_arg; +extern struct t_config_option *config_completion_partial_completion_count; +extern struct t_config_option *config_completion_partial_completion_other; +extern struct t_config_option *config_completion_partial_completion_templates; + +extern struct t_config_option *config_history_display_default; +extern struct t_config_option *config_history_max_buffer_lines_minutes; +extern struct t_config_option *config_history_max_buffer_lines_number; +extern struct t_config_option *config_history_max_commands; +extern struct t_config_option *config_history_max_visited_buffers; + +extern struct t_config_option *config_network_connection_timeout; +extern struct t_config_option *config_network_gnutls_ca_system; +extern struct t_config_option *config_network_gnutls_ca_user; +extern struct t_config_option *config_network_gnutls_handshake_timeout; +extern struct t_config_option *config_network_proxy_curl; + +extern struct t_config_option *config_plugin_autoload; +extern struct t_config_option *config_plugin_extension; +extern struct t_config_option *config_plugin_path; +extern struct t_config_option *config_plugin_save_config_on_unload; + +extern struct t_config_option *config_signal_sighup; +extern struct t_config_option *config_signal_sigquit; +extern struct t_config_option *config_signal_sigterm; +extern struct t_config_option *config_signal_sigusr1; +extern struct t_config_option *config_signal_sigusr2; + +extern int config_length_nick_prefix_suffix; +extern int config_length_prefix_same_nick; +extern int config_length_prefix_same_nick_middle; +extern int config_emphasized_attributes; +extern regex_t *config_highlight_disable_regex; +extern regex_t *config_highlight_regex; +extern char ***config_highlight_tags; +extern int config_num_highlight_tags; +extern char **config_plugin_extensions; +extern int config_num_plugin_extensions; +extern char config_tab_spaces[]; +extern struct t_config_look_word_char_item *config_word_chars_highlight; +extern int config_word_chars_highlight_count; +extern struct t_config_look_word_char_item *config_word_chars_input; +extern int config_word_chars_input_count; +extern char **config_nick_colors; +extern int config_num_nick_colors; +extern struct t_hashtable *config_hashtable_nick_color_force; +extern char **config_eval_syntax_colors; +extern int config_num_eval_syntax_colors; +extern char *config_buffer_time_same_evaluated; +extern struct t_hashtable *config_hashtable_completion_partial_templates; + +extern void config_set_nick_colors (); +extern struct t_config_option *config_weechat_debug_get (const char *plugin_name); +extern int config_weechat_debug_set (const char *plugin_name, + const char *value); +extern void config_weechat_debug_set_all (); +extern int config_weechat_buffer_set (struct t_gui_buffer *buffer, + const char *property, const char *value); +extern int config_weechat_notify_set (struct t_gui_buffer *buffer, + const char *notify); +extern void config_get_item_time (char *text_time, int max_length); +extern int config_weechat_get_key_context (struct t_config_section *section); +extern int config_weechat_init (); +extern int config_weechat_read (); +extern int config_weechat_write (); +extern void config_weechat_free (); + +#endif /* WEECHAT_CONFIG_H */ |