mirror of
https://github.com/qvacua/vimr.git
synced 2024-12-29 00:34:26 +03:00
106 lines
2.6 KiB
C
106 lines
2.6 KiB
C
#ifndef OPTIONS_H
|
|
#define OPTIONS_H
|
|
|
|
#include <getopt.h>
|
|
#include <sys/stat.h>
|
|
|
|
#include <pcre.h>
|
|
|
|
#define DEFAULT_AFTER_LEN 2
|
|
#define DEFAULT_BEFORE_LEN 2
|
|
#define DEFAULT_CONTEXT_LEN 2
|
|
#define DEFAULT_MAX_SEARCH_DEPTH 25
|
|
enum case_behavior {
|
|
CASE_DEFAULT, /* Changes to CASE_SMART at the end of option parsing */
|
|
CASE_SENSITIVE,
|
|
CASE_INSENSITIVE,
|
|
CASE_SMART,
|
|
CASE_SENSITIVE_RETRY_INSENSITIVE /* for future use */
|
|
};
|
|
|
|
enum path_print_behavior {
|
|
PATH_PRINT_DEFAULT, /* PRINT_TOP if > 1 file being searched, else PRINT_NOTHING */
|
|
PATH_PRINT_DEFAULT_EACH_LINE, /* PRINT_EACH_LINE if > 1 file being searched, else PRINT_NOTHING */
|
|
PATH_PRINT_TOP,
|
|
PATH_PRINT_EACH_LINE,
|
|
PATH_PRINT_NOTHING
|
|
};
|
|
|
|
typedef struct {
|
|
int ackmate;
|
|
pcre *ackmate_dir_filter;
|
|
pcre_extra *ackmate_dir_filter_extra;
|
|
size_t after;
|
|
size_t before;
|
|
enum case_behavior casing;
|
|
const char *file_search_string;
|
|
int match_files;
|
|
pcre *file_search_regex;
|
|
pcre_extra *file_search_regex_extra;
|
|
int color;
|
|
char *color_line_number;
|
|
char *color_match;
|
|
char *color_path;
|
|
int color_win_ansi;
|
|
int column;
|
|
int context;
|
|
int follow_symlinks;
|
|
int invert_match;
|
|
int literal;
|
|
int literal_starts_wordchar;
|
|
int literal_ends_wordchar;
|
|
size_t max_matches_per_file;
|
|
int max_search_depth;
|
|
int mmap;
|
|
int multiline;
|
|
int one_dev;
|
|
int only_matching;
|
|
char path_sep;
|
|
int path_to_ignore;
|
|
int print_break;
|
|
int print_count;
|
|
int print_filename_only;
|
|
int print_path;
|
|
int print_all_paths;
|
|
int print_line_numbers;
|
|
int print_long_lines; /* TODO: support this in print.c */
|
|
int passthrough;
|
|
pcre *re;
|
|
pcre_extra *re_extra;
|
|
int recurse_dirs;
|
|
int search_all_files;
|
|
int skip_vcs_ignores;
|
|
int search_binary_files;
|
|
int search_zip_files;
|
|
int search_hidden_files;
|
|
int search_stream; /* true if tail -F blah | ag */
|
|
int stats;
|
|
size_t stream_line_num; /* This should totally not be in here */
|
|
int match_found; /* This should totally not be in here */
|
|
ino_t stdout_inode;
|
|
char *query;
|
|
int query_len;
|
|
char *pager;
|
|
int paths_len;
|
|
int parallel;
|
|
int use_thread_affinity;
|
|
int vimgrep;
|
|
size_t width;
|
|
int word_regexp;
|
|
int workers;
|
|
} cli_options;
|
|
|
|
/* global options. parse_options gives it sane values, everything else reads from it */
|
|
cli_options opts;
|
|
|
|
typedef struct option option_t;
|
|
|
|
void usage(void);
|
|
void print_version(void);
|
|
|
|
void init_options(void);
|
|
void parse_options(int argc, char **argv, char **base_paths[], char **paths[]);
|
|
void cleanup_options(void);
|
|
|
|
#endif
|