2006-01-31 02:51:50 +10:00
/** \file parse_util.h
Various utility functions for parsing a command
*/
# ifndef FISH_PARSE_UTIL_H
# define FISH_PARSE_UTIL_H
# include <wchar.h>
2006-02-10 01:50:20 +10:00
2006-01-31 02:51:50 +10:00
/**
Locate the first subshell in the specified string .
\ param in the string to search for subshells
\ param begin the starting paranthesis of the subshell
\ param end the ending paranthesis of the subshell
\ param flags set this variable to ACCEPT_INCOMPLETE if in tab_completion mode
\ return - 1 on syntax error , 0 if no subshells exist and 1 on sucess
*/
int parse_util_locate_cmdsubst ( const wchar_t * in ,
const wchar_t * * begin ,
const wchar_t * * end ,
int allow_incomplete ) ;
2006-02-09 04:47:37 +10:00
/**
Find the beginning and end of the command substitution under the cursor
*/
2006-01-31 02:51:50 +10:00
void parse_util_cmdsubst_extent ( const wchar_t * buff ,
int cursor_pos ,
const wchar_t * * a ,
const wchar_t * * b ) ;
2006-02-09 04:47:37 +10:00
/**
Find the beginning and end of the process definition under the cursor
*/
2006-01-31 02:51:50 +10:00
void parse_util_process_extent ( const wchar_t * buff ,
int pos ,
const wchar_t * * a ,
const wchar_t * * b ) ;
2006-02-09 04:47:37 +10:00
/**
Find the beginning and end of the job definition under the cursor
*/
2006-01-31 02:51:50 +10:00
void parse_util_job_extent ( const wchar_t * buff ,
int pos ,
const wchar_t * * a ,
const wchar_t * * b ) ;
2006-02-09 04:47:37 +10:00
/**
Find the beginning and end of the token under the cursor
*/
2006-01-31 02:51:50 +10:00
void parse_util_token_extent ( const wchar_t * buff ,
int cursor_pos ,
const wchar_t * * tok_begin ,
const wchar_t * * tok_end ,
const wchar_t * * prev_begin ,
const wchar_t * * prev_end ) ;
2006-02-09 04:47:37 +10:00
/**
Get the linenumber at the specified character offset
*/
2006-02-05 23:10:35 +10:00
int parse_util_lineno ( const wchar_t * str , int len ) ;
2006-02-09 04:47:37 +10:00
/**
Autoload the specified file , if it exists in the specified path . Do
not load it multiple times unless it ' s timestamp changes .
\ param cmd the filename to search for . The suffix ' . fish ' is always added to this name
\ param path_var a list of paths to search in .
\ param on_load a callback function to run if a suitable file is found , which has not already been run
\ param reload wheter to recheck file timestamps on already loaded files
*/
2006-02-08 19:20:05 +10:00
int parse_util_load ( const wchar_t * cmd ,
const wchar_t * path_var ,
void ( * on_load ) ( const wchar_t * cmd ) ,
int reload ) ;
2006-02-15 12:46:44 +10:00
void parse_util_load_reset ( const wchar_t * path_var ) ;
2006-02-15 12:24:15 +10:00
/**
Set the argv environment variable to the specified null - terminated
array of strings
*/
void parse_util_set_argv ( wchar_t * * argv ) ;
2006-02-19 11:14:32 +10:00
/**
Make duplicate string , unescape wildcard characters but n ot performing any other character transformation
*/
wchar_t * parse_util_unescape_wildcards ( const wchar_t * in ) ;
2006-01-31 02:51:50 +10:00
# endif