summaryrefslogtreecommitdiff
path: root/src/proto.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/proto.h')
-rw-r--r--src/proto.h257
1 files changed, 127 insertions, 130 deletions
diff --git a/src/proto.h b/src/proto.h
index e05eefe..aa79c56 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -1,9 +1,9 @@
-/* $Id: proto.h 4460 2009-12-09 16:51:43Z astyanax $ */
+/* $Id: proto.h 5133 2015-03-08 12:10:52Z bens $ */
/**************************************************************************
* proto.h *
* *
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, *
- * 2008, 2009 Free Software Foundation, Inc. *
+ * 2008, 2009, 2010, 2011, 2013, 2014 Free Software Foundation, Inc. *
* This program 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, or (at your option) *
@@ -30,9 +30,11 @@
#ifndef NANO_TINY
extern sigjmp_buf jump_buf;
extern bool jump_buf_main;
-extern bool use_undo;
#endif
+extern bool meta_key;
+extern bool func_key;
+
#ifndef DISABLE_WRAPJUSTIFY
extern ssize_t fill;
extern ssize_t wrap_at;
@@ -60,13 +62,16 @@ extern openfilestruct *openfile;
extern char *matchbrackets;
#endif
-#if !defined(NANO_TINY) && defined(ENABLE_NANORC)
+#if !defined(NANO_TINY) && !defined(DISABLE_NANORC)
extern char *whitespace;
extern int whitespace_len[2];
-extern undo_type last_action;
#endif
+extern const char *exit_tag;
+extern const char *close_tag;
+extern const char *uncut_tag;
#ifndef DISABLE_JUSTIFY
+extern const char *unjust_tag;
extern char *punct;
extern char *brackets;
extern char *quotestr;
@@ -77,7 +82,8 @@ extern char *quoteerr;
#else
extern size_t quotelen;
#endif
-#endif
+#endif /* !DISABLE_JUSTIFY */
+
extern bool nodelay_mode;
extern char *answer;
@@ -85,6 +91,8 @@ extern ssize_t tabsize;
#ifndef NANO_TINY
extern char *backup_dir;
+extern const char *locking_prefix;
+extern const char *locking_suffix;
#endif
#ifndef DISABLE_OPERATINGDIR
extern char *operating_dir;
@@ -95,24 +103,27 @@ extern char *full_operating_dir;
extern char *alt_speller;
#endif
-extern sc *sclist;
-extern subnfunc *allfuncs;
-#ifdef ENABLE_COLOR
+#ifndef DISABLE_COLOR
extern syntaxtype *syntaxes;
extern char *syntaxstr;
#endif
extern bool edit_refresh_needed;
-extern const shortcut *currshortcut;
+
extern int currmenu;
+extern sc *sclist;
+extern subnfunc *allfuncs;
+extern subnfunc *exitfunc;
+extern subnfunc *uncutfunc;
-#ifndef NANO_TINY
+#ifndef DISABLE_HISTORIES
extern filestruct *search_history;
extern filestruct *searchage;
extern filestruct *searchbot;
extern filestruct *replace_history;
extern filestruct *replaceage;
extern filestruct *replacebot;
+extern poshiststruct *poshistory;
#endif
#ifdef HAVE_REGEX_H
@@ -120,16 +131,22 @@ extern regex_t search_regexp;
extern regmatch_t regmatches[10];
#endif
-extern int reverse_attr;
+extern int hilite_attribute;
+#ifndef DISABLE_COLOR
+extern char* specified_color_combo[NUMBER_OF_ELEMENTS];
+#endif
+extern color_pair interface_color_pair[NUMBER_OF_ELEMENTS];
extern char *homedir;
+typedef void (*functionptrtype)(void);
+
/* All functions in browser.c. */
#ifndef DISABLE_BROWSER
char *do_browser(char *path, DIR *dir);
char *do_browse_from(const char *inpath);
void browser_init(const char *path, DIR *dir);
-void parse_browser_input(int *kbinput, bool *meta_key, bool *func_key);
+functionptrtype parse_browser_input(int *kbinput);
void browser_refresh(void);
bool browser_select_filename(const char *needle);
int filesearch_init(void);
@@ -148,6 +165,7 @@ char *striponedir(const char *path);
void utf8_init(void);
bool using_utf8(void);
#endif
+char *addstrings(char* str1, size_t len1, char* str2, size_t len2);
#ifndef HAVE_ISBLANK
bool nisblank(int c);
#endif
@@ -214,19 +232,19 @@ char *revstrpbrk(const char *s, const char *accept, const char
char *mbrevstrpbrk(const char *s, const char *accept, const char
*rev_start);
#endif
-#if defined(ENABLE_NANORC) && (!defined(NANO_TINY) || !defined(DISABLE_JUSTIFY))
+#if !defined(DISABLE_NANORC) && (!defined(NANO_TINY) || !defined(DISABLE_JUSTIFY))
bool has_blank_chars(const char *s);
bool has_blank_mbchars(const char *s);
#endif
#ifdef ENABLE_UTF8
bool is_valid_unicode(wchar_t wc);
#endif
-#ifdef ENABLE_NANORC
+#ifndef DISABLE_NANORC
bool is_valid_mbstring(const char *s);
#endif
/* All functions in color.c. */
-#ifdef ENABLE_COLOR
+#ifndef DISABLE_COLOR
void set_colorpairs(void);
void color_init(void);
void color_update(void);
@@ -234,6 +252,7 @@ void color_update(void);
/* All functions in cut.c. */
void cutbuffer_reset(void);
+bool keeping_cutbuffer(void);
void cut_line(void);
#ifndef NANO_TINY
void cut_marked(void);
@@ -242,7 +261,7 @@ void cut_to_eof(void);
#endif
void do_cut_text(
#ifndef NANO_TINY
- bool copy_text, bool cut_till_end, bool undoing
+ bool copy_text, bool cut_till_eof, bool undoing
#else
void
#endif
@@ -250,7 +269,7 @@ void do_cut_text(
void do_cut_text_void(void);
#ifndef NANO_TINY
void do_copy_text(void);
-void do_cut_till_end(void);
+void do_cut_till_eof(void);
#endif
void do_uncut_text(void);
@@ -263,16 +282,16 @@ void open_buffer(const char *filename, bool undoable);
void replace_buffer(const char *filename);
#endif
void display_buffer(void);
-#ifdef ENABLE_MULTIBUFFER
-void switch_to_prevnext_buffer(bool next);
+#ifndef DISABLE_MULTIBUFFER
+void switch_to_prevnext_buffer(bool next, bool quiet);
void switch_to_prev_buffer_void(void);
void switch_to_next_buffer_void(void);
-bool close_buffer(void);
+bool close_buffer(bool quiet);
#endif
filestruct *read_line(char *buf, filestruct *prevnode, bool
*first_line_ins, size_t buf_len);
void read_file(FILE *f, int fd, const char *filename, bool undoable, bool checkwritable);
-int open_file(const char *filename, bool newfie, FILE **f);
+int open_file(const char *filename, bool newfie, bool quiet, FILE **f);
char *get_next_filename(const char *name, const char *suffix);
void do_insertfile(
#ifndef NANO_TINY
@@ -291,6 +310,8 @@ bool check_operating_dir(const char *currpath, bool allow_tabcomp);
#endif
#ifndef NANO_TINY
void init_backup_dir(void);
+int delete_lockfile(const char *lockfilename);
+int write_lockfile(const char *lockfilename, const char *origfilename, bool modified);
#endif
int copy_file(FILE *inn, FILE *out);
bool write_file(const char *name, FILE *f_open, bool tmp, append_type
@@ -316,46 +337,47 @@ char *input_tab(char *buf, bool allow_files, size_t *place, bool
*lastwastab, void (*refresh_func)(void), bool *list);
#endif
const char *tail(const char *foo);
-#if !defined(NANO_TINY) && defined(ENABLE_NANORC)
+#ifndef DISABLE_HISTORIES
char *histfilename(void);
void load_history(void);
bool writehist(FILE *hist, filestruct *histhead);
void save_history(void);
+int check_dotnano(void);
+void load_poshistory(void);
+void save_poshistory(void);
+void update_poshistory(char *filename, ssize_t lineno, ssize_t xpos);
+int check_poshistory(const char *file, ssize_t *line, ssize_t *column);
#endif
-/* All functions in global.c. */
+/* Some functions in global.c. */
size_t length_of_list(int menu);
-#ifndef NANO_TINY
-void toggle_init_one(int val
-#ifndef DISABLE_HELP
- , const char *desc, bool blank_after
-#endif
- , long flag);
-void toggle_init(void);
-#endif
-void sc_init_one(shortcut **shortcutage, int ctrlval, const char *desc
-#ifndef DISABLE_HELP
- , const char *help, bool blank_after
+key_type strtokeytype(const char *str);
+const sc *first_sc_for(int menu, void (*func)(void));
+int sc_seq_or(void (*func)(void), int defaultval);
+functionptrtype func_from_key(int *kbinput);
+void assign_keyinfo(sc *s);
+void print_sclist(void);
+void shortcut_init(void);
+#ifndef DISABLE_COLOR
+void set_lint_or_format_shortcuts(void);
+void set_spell_shortcuts(void);
#endif
- , int metaval, int funcval, int miscval, bool view, void
- (*func)(void));
-void shortcut_init(bool unjustify);
-void free_shortcutage(shortcut **shortcutage);
+const subnfunc *sctofunc(sc *s);
+const char *flagtostr(int flag);
+sc *strtosc(char *input);
+int strtomenu(char *input);
#ifdef DEBUG
void thanks_for_all_the_fish(void);
#endif
/* All functions in help.c. */
-#ifndef DISABLE_BROWSER
-void do_browser_help(void);
-#endif
-void do_help_void(void);
#ifndef DISABLE_HELP
void do_help(void (*refresh_func)(void));
void help_init(void);
-void parse_help_input(int *kbinput, bool *meta_key, bool *func_key);
+functionptrtype parse_help_input(int *kbinput);
size_t help_line_len(const char *ptr);
#endif
+void do_help_void(void);
/* All functions in move.c. */
void do_first_line(void);
@@ -416,7 +438,7 @@ partition *partition_filestruct(filestruct *top, size_t top_x,
void unpartition_filestruct(partition **p);
void move_to_filestruct(filestruct **file_top, filestruct **file_bot,
filestruct *top, size_t top_x, filestruct *bot, size_t bot_x);
-void copy_from_filestruct(filestruct *file_top, filestruct *file_bot);
+void copy_from_filestruct(filestruct *somebuffer);
openfilestruct *make_new_opennode(void);
void splice_opennode(openfilestruct *begin, openfilestruct *newnode,
openfilestruct *end);
@@ -446,7 +468,7 @@ void print_opt_full(const char *shortflag
, const char *desc);
void usage(void);
void version(void);
-int no_more_space(void);
+int more_space(void);
int no_help(void);
void nano_disabled_msg(void);
void do_exit(void);
@@ -457,10 +479,9 @@ RETSIGTYPE do_continue(int signal);
#ifndef NANO_TINY
RETSIGTYPE handle_sigwinch(int signal);
void allow_pending_sigwinch(bool allow);
-#endif
-#ifndef NANO_TINY
void do_toggle(int flag);
#endif
+void do_toggle_void(void);
void disable_extended_io(void);
#ifdef USE_SLANG
void disable_signals(void);
@@ -471,17 +492,15 @@ void enable_signals(void);
void disable_flow_control(void);
void enable_flow_control(void);
void terminal_init(void);
-int do_input(bool *meta_key, bool *func_key, bool *have_shortcut, bool
- *ran_func, bool *finished, bool allow_funcs);
+int do_input(bool allow_funcs);
#ifndef DISABLE_MOUSE
int do_mouse(void);
#endif
void do_output(char *output, size_t output_len, bool allow_cntrls);
/* All functions in prompt.c. */
-int do_statusbar_input(bool *meta_key, bool *func_key, bool *have_shortcut,
- bool *ran_func, bool *finished, bool allow_funcs, void
- (*refresh_func)(void));
+int do_statusbar_input(bool *ran_func, bool *finished,
+ void (*refresh_func)(void));
#ifndef DISABLE_MOUSE
int do_statusbar_mouse(void);
#endif
@@ -499,66 +518,59 @@ bool do_statusbar_next_word(bool allow_punct);
bool do_statusbar_prev_word(bool allow_punct);
#endif
void do_statusbar_verbatim_input(bool *got_enter);
-#ifndef NANO_TINY
-bool find_statusbar_bracket_match(bool reverse, const char
- *bracket_set);
-void do_statusbar_find_bracket(void);
-#endif
size_t statusbar_xplustabs(void);
size_t get_statusbar_page_start(size_t start_col, size_t column);
void reset_statusbar_cursor(void);
void update_statusbar_line(const char *curranswer, size_t index);
bool need_statusbar_horizontal_update(size_t pww_save);
void total_statusbar_refresh(void (*refresh_func)(void));
-const sc *get_prompt_string(int *value, bool allow_tabs,
+functionptrtype get_prompt_string(int *value, bool allow_tabs,
#ifndef DISABLE_TABCOMP
bool allow_files,
+ bool *list,
#endif
const char *curranswer,
- bool *meta_key, bool *func_key,
-#ifndef NANO_TINY
+#ifndef DISABLE_HISTORIES
filestruct **history_list,
#endif
- void (*refresh_func)(void), int menu
-#ifndef DISABLE_TABCOMP
- , bool *list
-#endif
- );
+ void (*refresh_func)(void));
int do_prompt(bool allow_tabs,
#ifndef DISABLE_TABCOMP
bool allow_files,
#endif
int menu, const char *curranswer,
- bool *meta_key, bool *func_key,
-#ifndef NANO_TINY
+#ifndef DISABLE_HISTORIES
filestruct **history_list,
#endif
void (*refresh_func)(void), const char *msg, ...);
void do_prompt_abort(void);
int do_yesno_prompt(bool all, const char *msg);
-/* All functions in rcfile.c. */
-#ifdef ENABLE_NANORC
-void rcfile_error(const char *msg, ...);
+/* Most functions in rcfile.c. */
+#if !defined(DISABLE_NANORC) || !defined(DISABLE_HISTORIES)
char *parse_next_word(char *ptr);
+#endif
+#ifndef DISABLE_NANORC
+void rcfile_error(const char *msg, ...);
char *parse_argument(char *ptr);
-#ifdef ENABLE_COLOR
+#ifndef DISABLE_COLOR
char *parse_next_regex(char *ptr);
bool nregcomp(const char *regex, int eflags);
void parse_syntax(char *ptr);
void parse_include(char *ptr);
short color_to_short(const char *colorname, bool *bright);
void parse_colors(char *ptr, bool icase);
+bool parse_color_names(char *combostr, short *fg, short *bg, bool *bright);
void reset_multis(filestruct *fileptr, bool force);
void alloc_multidata_if_needed(filestruct *fileptr);
#endif
void parse_rcfile(FILE *rcstream
-#ifdef ENABLE_COLOR
+#ifndef DISABLE_COLOR
, bool syntax_only
#endif
);
void do_rcfile(void);
-#endif
+#endif /* !DISABLE_NANORC */
/* All functions in search.c. */
#ifdef HAVE_REGEX_H
@@ -577,7 +589,7 @@ bool findnextstr(
char *needle, size_t *needle_len);
void findnextstr_wrap_reset(void);
void do_search(void);
-#ifndef NANO_TINY
+#if !defined(NANO_TINY) || !defined(DISABLE_BROWSER)
void do_research(void);
#endif
#ifdef HAVE_REGEX_H
@@ -598,12 +610,16 @@ void do_gotolinecolumn_void(void);
void do_gotopos(ssize_t pos_line, size_t pos_x, ssize_t pos_y, size_t
pos_pww);
#endif
+void goto_line_posx(ssize_t line, size_t pos_x);
#ifndef NANO_TINY
bool find_bracket_match(bool reverse, const char *bracket_set);
void do_find_bracket(void);
-#ifdef ENABLE_NANORC
-bool history_has_changed(void);
+#ifndef DISABLE_TABCOMP
+char *get_history_completion(filestruct **h, const char *s, size_t len);
+#endif
#endif
+#ifndef DISABLE_HISTORIES
+bool history_has_changed(void);
void history_init(void);
void history_reset(const filestruct *h);
filestruct *find_history(const filestruct *h_start, const filestruct
@@ -611,9 +627,8 @@ filestruct *find_history(const filestruct *h_start, const filestruct
void update_history(filestruct **h, const char *s);
char *get_history_older(filestruct **h);
char *get_history_newer(filestruct **h);
-#ifndef DISABLE_TABCOMP
-char *get_history_completion(filestruct **h, const char *s, size_t len);
-#endif
+void get_history_older_void(void);
+void get_history_newer_void(void);
#endif
/* All functions in text.c. */
@@ -631,13 +646,14 @@ void do_undo(void);
void do_redo(void);
#endif
void do_enter(bool undoing);
+void do_enter_void(void);
#ifndef NANO_TINY
RETSIGTYPE cancel_command(int signal);
bool execute_command(const char *command);
#endif
#ifndef DISABLE_WRAPPING
void wrap_reset(void);
-bool do_wrap(filestruct *line, bool undoing);
+bool do_wrap(filestruct *line);
#endif
#if !defined(DISABLE_HELP) || !defined(DISABLE_WRAPJUSTIFY)
ssize_t break_line(const char *line, ssize_t goal
@@ -670,6 +686,10 @@ const char *do_int_speller(const char *tempfile_name);
const char *do_alt_speller(char *tempfile_name);
void do_spell(void);
#endif
+#ifndef DISABLE_COLOR
+void do_linter(void);
+void do_formatter(void);
+#endif
#ifndef NANO_TINY
void do_wordlinechar_count(void);
#endif
@@ -684,7 +704,7 @@ void align(char **str);
void null_at(char **data, size_t index);
void unsunder(char *str, size_t true_len);
void sunder(char *str);
-#if !defined(NANO_TINY) && defined(ENABLE_NANORC)
+#if !defined(NANO_TINY) && !defined(DISABLE_NANORC)
#ifndef HAVE_GETLINE
ssize_t ngetline(char **lineptr, size_t *n, FILE *stream);
#endif
@@ -731,10 +751,10 @@ void dump_filestruct_reverse(void);
void get_key_buffer(WINDOW *win);
size_t get_key_buffer_len(void);
void unget_input(int *input, size_t input_len);
-void unget_kbinput(int kbinput, bool meta_key, bool func_key);
+void unget_kbinput(int kbinput, bool metakey, bool funckey);
int *get_input(WINDOW *win, size_t input_len);
-int get_kbinput(WINDOW *win, bool *meta_key, bool *func_key);
-int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key);
+int get_kbinput(WINDOW *win);
+int parse_kbinput(WINDOW *win);
int get_escape_seq_kbinput(const int *seq, size_t seq_len);
int get_escape_seq_abcd(int kbinput);
int parse_escape_seq_kbinput(WINDOW *win, int kbinput);
@@ -750,9 +770,7 @@ int *parse_verbatim_kbinput(WINDOW *win, size_t *kbinput_len);
#ifndef DISABLE_MOUSE
int get_mouseinput(int *mouse_x, int *mouse_y, bool allow_shortcuts);
#endif
-const sc *get_shortcut(int menu, int *kbinput, bool
- *meta_key, bool *func_key);
-const sc *first_sc_for(int menu, short func);
+const sc *get_shortcut(int *kbinput);
void blank_line(WINDOW *win, int y, int x, int n);
void blank_titlebar(void);
void blank_topbar(void);
@@ -763,7 +781,7 @@ void check_statusblank(void);
char *display_string(const char *buf, size_t start_col, size_t len, bool
dollars);
void titlebar(const char *path);
-void set_modified(void);
+extern void set_modified(void);
void statusbar(const char *msg, ...);
void bottombars(int menu);
void onekey(const char *keystroke, const char *desc, size_t len);
@@ -783,53 +801,32 @@ void display_main_list(void);
void do_cursorpos(bool constant);
void do_cursorpos_void(void);
void do_replace_highlight(bool highlight, const char *word);
-const char *flagtostr(int flag);
-const subnfunc *sctofunc(sc *s);
-const subnfunc *getfuncfromkey(WINDOW *win);
-void print_sclist(void);
-sc *strtosc(int menu, char *input);
-function_type strtokeytype(const char *str);
-int strtomenu(char *input);
-void assign_keyinfo(sc *s);
void xon_complaint(void);
void xoff_complaint(void);
-int sc_seq_or (short func, int defaultval);
void do_suspend_void(void);
-
-extern const char *cancel_msg;
-#ifndef NANO_TINY
-extern const char *case_sens_msg;
-extern const char *backwards_msg;
-extern const char *prev_history_msg;
-extern const char *next_history_msg;
-#endif
-extern const char *replace_msg;
-extern const char *no_replace_msg;
-extern const char *go_to_line_msg;
-extern const char *whereis_next_msg;
-extern const char *first_file_msg;
-extern const char *last_file_msg;
-extern const char *goto_dir_msg;
-extern const char *ext_cmd_msg;
-extern const char *to_files_msg;
-extern const char *dos_format_msg;
-extern const char *mac_format_msg;
-extern const char *append_msg;
-extern const char *prepend_msg;
-extern const char *backup_file_msg;
-extern const char *gototext_msg;
-extern const char *new_buffer_msg;
-
-void iso_me_harder_funcmap(short func);
void enable_nodelay(void);
void disable_nodelay(void);
-
-#ifdef HAVE_REGEX_H
-extern const char *regexp_msg;
-#endif
-
-#ifdef NANO_EXTRA
+#ifndef DISABLE_EXTRA
void do_credits(void);
#endif
+/* May as well throw these here, since they are just placeholders. */
+void do_cancel(void);
+void do_page_up(void);
+void do_page_down(void);
+void case_sens_void(void);
+void regexp_void(void);
+void gototext_void(void);
+void to_files_void(void);
+void dos_format_void(void);
+void mac_format_void(void);
+void append_void(void);
+void prepend_void(void);
+void backup_file_void(void);
+void new_buffer_void(void);
+void backwards_void(void);
+void goto_dir_void(void);
+void flip_replace_void(void);
+void flip_execute_void(void);
+
#endif /* !PROTO_H */