!_TAG_FILE_FORMAT	2	/extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED	1	/0=unsorted, 1=sorted, 2=foldcase/
!_TAG_OUTPUT_EXCMD	mixed	/number, pattern, mixed, or combineV2/
!_TAG_OUTPUT_FILESEP	slash	/slash or backslash/
!_TAG_OUTPUT_MODE	u-ctags	/u-ctags or e-ctags/
!_TAG_PATTERN_LENGTH_LIMIT	96	/0 for no limit/
!_TAG_PROC_CWD	/home/viveur/stuff/c/tasks/shell.d/	//
!_TAG_PROGRAM_AUTHOR	Universal Ctags Team	//
!_TAG_PROGRAM_NAME	Universal Ctags	/Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL	https://ctags.io/	/official site/
!_TAG_PROGRAM_VERSION	5.9.0	//
AMPERSAND	define.h	/^#define AMPERSAND /;"	d
BACKSLASH	define.h	/^#define BACKSLASH /;"	d
DBL_QUOTE	define.h	/^#define DBL_QUOTE /;"	d
DEFAULT_BUFF_SIZE	define.h	/^#define DEFAULT_BUFF_SIZE /;"	d
DEFINE_H_SENTRY	define.h	/^#define DEFINE_H_SENTRY$/;"	d
FD_ERR	define.h	/^#define FD_ERR /;"	d
PATH_LEN_MAX	define.h	/^#define PATH_LEN_MAX /;"	d
QUOTE	define.h	/^#define QUOTE /;"	d
SEMICOL	define.h	/^#define SEMICOL /;"	d
SENTRY_CHAR_H	char.h	/^#define SENTRY_CHAR_H$/;"	d
SENTRY_EXEC_H	exec.h	/^#define SENTRY_EXEC_H$/;"	d
SENTRY_WORD_H	word.h	/^#define SENTRY_WORD_H$/;"	d
SPACE	define.h	/^#define SPACE /;"	d
SYNTAX_H_SENTRY	syntax.h	/^#define SYNTAX_H_SENTRY$/;"	d
_GNU_SOURCE	exec.c	/^#define _GNU_SOURCE /;"	d	file:
_POSIX_C_SOURCE	main.c	/^#define _POSIX_C_SOURCE /;"	d	file:
buff_find_next_token	syntax.c	/^static token_type buff_find_next_token(char *buff, int *buff_idx)$/;"	f	typeref:typename:token_type	file:
cmd_delim_handle_before_exec	exec.c	/^static void cmd_delim_handle_before_exec(delim dl, int *flag_wait,$/;"	f	typeref:typename:void	file:
cmd_exec_handle	exec.c	/^static int cmd_exec_handle(word *head, int cmd_len, int flag_wait,$/;"	f	typeref:typename:int	file:
cmd_process	exec.c	/^static word *cmd_process(word *head, int *cmd_len, int *cmd_fd, delim *dl)$/;"	f	typeref:typename:word *	file:
cur_path	main.c	/^char cur_path[PATH_LEN_MAX];$/;"	v	typeref:typename:char[]
def_delim	define.h	/^typedef enum def_delim {$/;"	g
def_delim_type	syntax.h	/^typedef enum def_delim_type {$/;"	g
def_fd_opt	exec.c	/^typedef enum def_fd_opt { opt_err, opt_r, opt_rr, opt_w, opt_a } fd_opt;$/;"	g	file:
def_syntax_state	syntax.h	/^typedef enum def_syntax_state {$/;"	g
def_token_type	syntax.h	/^typedef enum def_token_type {$/;"	g
def_word	word.h	/^typedef struct def_word {$/;"	s
def_word_list	word.h	/^typedef struct def_word_list {$/;"	s
delim	define.h	/^} delim;$/;"	t	typeref:enum:def_delim
delim_ampersand	define.h	/^    delim_ampersand,$/;"	e	enum:def_delim
delim_bside	syntax.h	/^    delim_bside,  \/* bside: both sided *\/$/;"	e	enum:def_delim_type
delim_err	define.h	/^    delim_err,$/;"	e	enum:def_delim
delim_gettype	syntax.c	/^static delim_type delim_gettype(char *buff, int idx, int *symcnt)$/;"	f	typeref:typename:delim_type	file:
delim_handle	syntax.c	/^static syntax_state delim_handle(char *buff, int *idx, int *symcnt,$/;"	f	typeref:typename:syntax_state	file:
delim_logical_and	define.h	/^    delim_logical_and,$/;"	e	enum:def_delim
delim_logical_or	define.h	/^    delim_logical_or,$/;"	e	enum:def_delim
delim_lside	syntax.h	/^    delim_lside,$/;"	e	enum:def_delim_type
delim_name_to_fd_opt	exec.c	/^static fd_opt delim_name_to_fd_opt(delim dl)$/;"	f	typeref:typename:fd_opt	file:
delim_pipe	define.h	/^    delim_pipe,$/;"	e	enum:def_delim
delim_redir_in	define.h	/^    delim_redir_in,$/;"	e	enum:def_delim
delim_redir_in2	define.h	/^    delim_redir_in2,$/;"	e	enum:def_delim
delim_redir_out	define.h	/^    delim_redir_out,$/;"	e	enum:def_delim
delim_redir_out2	define.h	/^    delim_redir_out2$/;"	e	enum:def_delim
delim_rside	syntax.h	/^    delim_rside,$/;"	e	enum:def_delim_type
delim_semi	define.h	/^    delim_semi,$/;"	e	enum:def_delim
delim_type	syntax.h	/^} delim_type;$/;"	t	typeref:enum:def_delim_type
delim_type_err	syntax.h	/^    delim_type_err$/;"	e	enum:def_delim_type
exec_get_current_path	exec.c	/^int exec_get_current_path(char *buff, int bufflen)$/;"	f	typeref:typename:int
exec_word_list_handle	exec.c	/^void exec_word_list_handle(word_list *list)$/;"	f	typeref:typename:void
fd_opt	exec.c	/^typedef enum def_fd_opt { opt_err, opt_r, opt_rr, opt_w, opt_a } fd_opt;$/;"	t	typeref:enum:def_fd_opt	file:
fd_pipe_arr_copy	exec.c	/^static void fd_pipe_arr_copy(int *src, int *dst)$/;"	f	typeref:typename:void	file:
fd_pipe_arr_move	exec.c	/^static void fd_pipe_arr_move(int *src, int *dst)$/;"	f	typeref:typename:void	file:
fork_exec_argv	exec.c	/^static int fork_exec_argv(char **argv, int *cmd_fd, int flag_wait)$/;"	f	typeref:typename:int	file:
get_file_fd	exec.c	/^static int get_file_fd(char *fname, fd_opt opt)$/;"	f	typeref:typename:int	file:
head	word.h	/^    word *head, *tail;$/;"	m	struct:def_word_list	typeref:typename:word *
input_state	main.c	/^typedef enum input_state {$/;"	g	file:
input_state	main.c	/^} input_state;$/;"	t	typeref:enum:input_state	file:
is_bothside_delim	char.c	/^int is_bothside_delim(char *token, int char_cnt, delim *dl)$/;"	f	typeref:typename:int
is_char_from_delim	char.c	/^int is_char_from_delim(char c)$/;"	f	typeref:typename:int
is_char_special	char.c	/^int is_char_special(char c)$/;"	f	typeref:typename:int
is_cmd_delim	char.c	/^int is_cmd_delim(char *token, int char_cnt, delim *dl)$/;"	f	typeref:typename:int
is_cmd_should_exec	exec.c	/^static int is_cmd_should_exec(delim prev_cmd_dl, int prev_cmd_ret)$/;"	f	typeref:typename:int	file:
is_delim	char.c	/^int is_delim(char *token, int char_cnt)$/;"	f	typeref:typename:int
is_delim	word.h	/^    short is_delim;$/;"	m	struct:def_word	typeref:typename:short
is_leftside_delim	char.c	/^int is_leftside_delim(char *token, int char_cnt, delim *dl)$/;"	f	typeref:typename:int
is_quote	char.c	/^int is_quote(char c)$/;"	f	typeref:typename:int
is_rightside_delim	char.c	/^int is_rightside_delim(char *token, int char_cnt, delim *dl)$/;"	f	typeref:typename:int
is_word_delim	char.c	/^int is_word_delim(char *token, int char_cnt, delim *dl)$/;"	f	typeref:typename:int
loop	main.c	/^static void loop()$/;"	f	typeref:typename:void	file:
main	main.c	/^int main(int argc, char* argv[])$/;"	f	typeref:typename:int
mem_free	main.c	/^static void mem_free(char ***argv, char **buff, word_list **wl)$/;"	f	typeref:typename:void	file:
next	word.h	/^    struct def_word *next, *prev;$/;"	m	struct:def_word	typeref:struct:def_word *
only_print_tokens	main.c	/^int only_print_tokens = 0;$/;"	v	typeref:typename:int
opt_a	exec.c	/^typedef enum def_fd_opt { opt_err, opt_r, opt_rr, opt_w, opt_a } fd_opt;$/;"	e	enum:def_fd_opt	file:
opt_err	exec.c	/^typedef enum def_fd_opt { opt_err, opt_r, opt_rr, opt_w, opt_a } fd_opt;$/;"	e	enum:def_fd_opt	file:
opt_r	exec.c	/^typedef enum def_fd_opt { opt_err, opt_r, opt_rr, opt_w, opt_a } fd_opt;$/;"	e	enum:def_fd_opt	file:
opt_rr	exec.c	/^typedef enum def_fd_opt { opt_err, opt_r, opt_rr, opt_w, opt_a } fd_opt;$/;"	e	enum:def_fd_opt	file:
opt_w	exec.c	/^typedef enum def_fd_opt { opt_err, opt_r, opt_rr, opt_w, opt_a } fd_opt;$/;"	e	enum:def_fd_opt	file:
prev	word.h	/^    struct def_word *next, *prev;$/;"	m	struct:def_word	typeref:struct:def_word *
print_invitation	main.c	/^static void print_invitation() { printf("%s> ", cur_path); }$/;"	f	typeref:typename:void	file:
proc_wait_later_handle	exec.c	/^static void proc_wait_later_handle(int *proc_cnt, delim dl, int flag_wait)$/;"	f	typeref:typename:void	file:
quote_set_flags	syntax.c	/^static void quote_set_flags(char c, int *sgl_quote, int *dbl_quote,$/;"	f	typeref:typename:void	file:
quote_set_flags	word.c	/^static void quote_set_flags(char c, int *sgl_quote, int *dbl_quote,$/;"	f	typeref:typename:void	file:
read_loop	main.c	/^static input_state read_loop(char **buffptr, int *size)$/;"	f	typeref:typename:input_state	file:
st_exe_cont	main.c	/^    st_exe_cont     \/* execute and continue *\/$/;"	e	enum:input_state	file:
st_exe_fin	main.c	/^    st_exe_fin,     \/* execute and finish *\/$/;"	e	enum:input_state	file:
st_fin	main.c	/^    st_fin,         \/* state finish (exit program) *\/$/;"	e	enum:input_state	file:
str	word.h	/^    char *str;$/;"	m	struct:def_word	typeref:typename:char *
syntax_cont_read	syntax.h	/^     syntax_cont_read,$/;"	e	enum:def_syntax_state
syntax_err	syntax.h	/^     syntax_err$/;"	e	enum:def_syntax_state
syntax_handle	syntax.c	/^syntax_state syntax_handle(char *buff, int *err_pos, int *symcnt)$/;"	f	typeref:typename:syntax_state
syntax_ok	syntax.h	/^     syntax_ok = 1,$/;"	e	enum:def_syntax_state
syntax_state	syntax.h	/^} syntax_state;$/;"	t	typeref:enum:def_syntax_state
tail	word.h	/^    word *head, *tail;$/;"	m	struct:def_word_list	typeref:typename:word *
tok_delim	syntax.h	/^    tok_delim,$/;"	e	enum:def_token_type
tok_delim_handle	word.c	/^static int tok_delim_handle(char *buff, int idx)$/;"	f	typeref:typename:int	file:
tok_none	syntax.h	/^    tok_none$/;"	e	enum:def_token_type
tok_space_handle	word.c	/^static int tok_space_handle(char *buff, int idx)$/;"	f	typeref:typename:int	file:
tok_word	syntax.h	/^    tok_word,$/;"	e	enum:def_token_type
tok_word_handle	word.c	/^static int tok_word_handle(char *buff, int buff_idx, char **token)$/;"	f	typeref:typename:int	file:
token_handle	word.c	/^static char *token_handle(char *buff, int *buff_idx, short *is_delim)$/;"	f	typeref:typename:char *	file:
token_type	syntax.h	/^} token_type;$/;"	t	typeref:enum:def_token_type
word	word.h	/^} word;$/;"	t	typeref:struct:def_word
word_delim_handle	exec.c	/^static void word_delim_handle(char *fname, delim dl, int *cmd_fd)$/;"	f	typeref:typename:void	file:
word_init	word.c	/^static word *word_init()$/;"	f	typeref:typename:word *	file:
word_list	word.h	/^} word_list;$/;"	t	typeref:struct:def_word_list
word_list_destroy	word.c	/^void word_list_destroy(word_list **wl)$/;"	f	typeref:typename:void
word_list_from_buff	word.c	/^word_list *word_list_from_buff(char *buff)$/;"	f	typeref:typename:word_list *
word_list_init	word.c	/^word_list *word_list_init()$/;"	f	typeref:typename:word_list *
word_list_part_to_argv	exec.c	/^static char **word_list_part_to_argv(word *head, int len)$/;"	f	typeref:typename:char **	file:
word_list_pop	word.c	/^static void word_list_pop(word_list *wl)$/;"	f	typeref:typename:void	file:
word_list_print	word.c	/^void word_list_print(word_list *wl)$/;"	f	typeref:typename:void
word_list_push	word.c	/^static void word_list_push(word_list *wl, char *str, short is_delim)$/;"	f	typeref:typename:void	file:
word_list_size	word.c	/^static int word_list_size(word_list *wl)$/;"	f	typeref:typename:int	file:
word_list_to_argv	word.c	/^char **word_list_to_argv(word_list *wl)$/;"	f	typeref:typename:char **
