/* nevars.h: this header file was produced automatically by
 * the ./mktbls program, based on input from the file ./modetbl
 */

#if OPT_EVAL

/*	structure to hold temp variables and their definitions	*/

typedef struct UVAR {
	struct UVAR *next;
	char *u_name;		/* name of temp variable */
	char *u_value;		/* value (string) */
} UVAR;

decl_uninit( UVAR *temp_vars );	/* temporary variables */


/*	list of recognized state variables	*/

#ifdef realdef
EXTERN_CONST char *const statevars[] = {
	s_abufname__,
#if OPT_HOOKS&&OPT_COLOR
	s_autocolor_hook__,
#endif
	s_bchars__,
	s_bflags__,
	s_blines__,
#if DISP_NTWIN
	s_brightness__,
#endif
#if OPT_HOOKS
	s_buffer_hook__,
#endif
	s_bwindows__,
	s_cbufname__,
#if OPT_HOOKS
	s_cd_hook__,
#endif
#if OPT_PATHLOOKUP
	s_cdpath__,
#endif
	s_cfgopts__,
	s_cfilname__,
	s_char__,
#if OPT_EVAL
	s_cmd_count__,
#endif
#if OPT_ENCRYPT
	s_cryptkey__,
#endif
#if !SMALLER
	s_curchar__,
#endif
	s_curcol__,
	s_curline__,
#if OPT_SHELL
	s_cwd__,
#endif
	s_cwline__,
	s_debug__,
#if OPT_SHELL
	s_directory__,
#endif
	s_discmd__,
	s_disinp__,
	s_end_of_cmd__,
#if OPT_FINDERR
	s_error_buffer__,
	s_error_expr__,
	s_error_match__,
#endif
	s_exec_path__,
	s_exec_suffix__,
#if OPT_HOOKS
	s_exit_hook__,
#endif
#if SYS_WINNT
	s_favorites__,
#endif
#if OPT_FINDERR
	s_filename_expr__,
#endif
	s_filename_ic__,
#if OPT_FILTER
	s_filter_list__,
#endif
#if OPT_FINDPATH
	s_find_cmd__,
	s_findpath__,
#endif
#if DISP_X11||DISP_NTWIN
	s_font__,
#endif
	s_forward_search__,
	s_helpfile__,
#if DISP_X11
	s_iconname__,
#endif
	s_identifier__,
	s_kbd_macro__,
	s_kill__,
	s_lastkey__,
	s_lcols__,
	s_libdir_path__,
	s_line__,
	s_llength__,
#if OPT_MAJORMODE
	s_majormode__,
#endif
#if OPT_HOOKS&&OPT_MAJORMODE
	s_majormode_hook__,
#endif
	s_match__,
#if OPT_MENUS
	s_menu_file__,
#endif
	s_mode__,
#if OPT_MLFORMAT
	s_modeline_format__,
#endif
	s_modified__,
	s_ncolors__,
	s_ntildes__,
#if OPT_SHELL
	s_ocwd__,
#endif
	s_os__,
	s_pagelen__,
	s_pagewid__,
	s_palette__,
	s_patchlevel__,
	s_pathlist_separator__,
	s_pathname__,
	s_pathname_separator__,
	s_pending__,
	s_pid__,
#if OPT_POSFORMAT
	s_position_format__,
#endif
	s_progname__,
	s_prompt__,
	s_qidentifier__,
#if OPT_HOOKS
	s_read_hook__,
#endif
	s_replace__,
	s_search__,
	s_seed__,
#if OPT_SHELL
	s_shell__,
#endif
	s_sres__,
	s_startup_file__,
	s_startup_path__,
	s_status__,
#if OPT_TITLE
	s_title__,
	s_title_format__,
#endif
	s_tpause__,
	s_version__,
#if OPT_EVAL
	s_with_prefix__,
#endif
	s_wlines__,
	s_word__,
#if OPT_HOOKS
	s_write_hook__,
#endif
#if DISP_X11&&OPT_SHELL
	s_xdisplay__,
	s_xshell__,
	s_xshell_flags__,
#endif
	NULL	/* ends table for name-completion */
};
#else
extern const char *const statevars[];
#endif

typedef enum {
	VAR_ABUFNAME,
#if OPT_HOOKS&&OPT_COLOR
	VAR_AUTOCOLORHOOK,
#endif
	VAR_BCHARS,
	VAR_BFLAGS,
	VAR_BLINES,
#if DISP_NTWIN
	VAR_BRIGHTNESS,
#endif
#if OPT_HOOKS
	VAR_BUFHOOK,
#endif
	VAR_BWINDOWS,
	VAR_CBUFNAME,
#if OPT_HOOKS
	VAR_CDHOOK,
#endif
#if OPT_PATHLOOKUP
	VAR_CDPATH,
#endif
	VAR_CFGOPTS,
	VAR_CFNAME,
	VAR_CHAR,
#if OPT_EVAL
	VAR_CMD_COUNT,
#endif
#if OPT_ENCRYPT
	VAR_CRYPTKEY,
#endif
#if !SMALLER
	VAR_CURCHAR,
#endif
	VAR_CURCOL,
	VAR_CURLINE,
#if OPT_SHELL
	VAR_CWD,
#endif
	VAR_CWLINE,
	VAR_DEBUG,
#if OPT_SHELL
	VAR_DIRECTORY,
#endif
	VAR_DISCMD,
	VAR_DISINP,
	VAR_EOC,
#if OPT_FINDERR
	VAR_ERROR_BUFFER,
	VAR_ERROR_EXPR,
	VAR_ERROR_MATCH,
#endif
	VAR_EXEC_PATH,
	VAR_EXEC_SUFFIX,
#if OPT_HOOKS
	VAR_EXITHOOK,
#endif
#if SYS_WINNT
	VAR_FAVORITES,
#endif
#if OPT_FINDERR
	VAR_FILENAME_EXPR,
#endif
	VAR_FILENAME_IC,
#if OPT_FILTER
	VAR_FILTER_LIST,
#endif
#if OPT_FINDPATH
	VAR_FINDCMD,
	VAR_FINDPATH,
#endif
#if DISP_X11||DISP_NTWIN
	VAR_FONT,
#endif
	VAR_FWD_SEARCH,
	VAR_HELPFILE,
#if DISP_X11
	VAR_ICONNAM,
#endif
	VAR_IDENTIF,
	VAR_KBDMACRO,
	VAR_KILL,
	VAR_LASTKEY,
	VAR_LCOLS,
	VAR_LIBDIR_PATH,
	VAR_LINE,
	VAR_LLENGTH,
#if OPT_MAJORMODE
	VAR_MAJORMODE,
#endif
#if OPT_HOOKS&&OPT_MAJORMODE
	VAR_MAJORMODEHOOK,
#endif
	VAR_MATCH,
#if OPT_MENUS
	VAR_MENU_FILE,
#endif
	VAR_MODE,
#if OPT_MLFORMAT
	VAR_MLFORMAT,
#endif
	VAR_MODIFIED,
	VAR_NCOLORS,
	VAR_NTILDES,
#if OPT_SHELL
	VAR_OCWD,
#endif
	VAR_OS,
	VAR_PAGELEN,
	VAR_CURWIDTH,
	VAR_PALETTE,
	VAR_PATCHLEVEL,
	VAR_PATHCHR,
	VAR_PATHNAME,
	VAR_PATHSEP,
	VAR_PENDING,
	VAR_PROCESSID,
#if OPT_POSFORMAT
	VAR_POSFORMAT,
#endif
	VAR_PROGNAME,
	VAR_PROMPT,
	VAR_QIDENTIF,
#if OPT_HOOKS
	VAR_RDHOOK,
#endif
	VAR_REPLACE,
	VAR_SEARCH,
	VAR_SEED,
#if OPT_SHELL
	VAR_SHELL,
#endif
	VAR_SRES,
	VAR_STARTUP_FILE,
	VAR_STARTUP_PATH,
	VAR_STATUS,
#if OPT_TITLE
	VAR_TITLE,
	VAR_TITLEFORMAT,
#endif
	VAR_TPAUSE,
	VAR_VERSION,
#if OPT_EVAL
	VAR_WITHPREFIX,
#endif
	VAR_WLINES,
	VAR_WORD,
#if OPT_HOOKS
	VAR_WRHOOK,
#endif
#if DISP_X11&&OPT_SHELL
	VAR_XDISPLAY,
	VAR_XSHELL,
	VAR_XSHELLFLAGS,
#endif
	Num_StateVars
} enumStateVars;


int var_ABUFNAME(TBUFF **resp, const char *valp);
#if OPT_HOOKS&&OPT_COLOR
int var_AUTOCOLORHOOK(TBUFF **resp, const char *valp);
#endif
int var_BCHARS(TBUFF **resp, const char *valp);
int var_BFLAGS(TBUFF **resp, const char *valp);
int var_BLINES(TBUFF **resp, const char *valp);
#if DISP_NTWIN
int var_BRIGHTNESS(TBUFF **resp, const char *valp);
#endif
#if OPT_HOOKS
int var_BUFHOOK(TBUFF **resp, const char *valp);
#endif
int var_BWINDOWS(TBUFF **resp, const char *valp);
int var_CBUFNAME(TBUFF **resp, const char *valp);
#if OPT_HOOKS
int var_CDHOOK(TBUFF **resp, const char *valp);
#endif
#if OPT_PATHLOOKUP
int var_CDPATH(TBUFF **resp, const char *valp);
#endif
int var_CFGOPTS(TBUFF **resp, const char *valp);
int var_CFNAME(TBUFF **resp, const char *valp);
int var_CHAR(TBUFF **resp, const char *valp);
#if OPT_EVAL
int var_CMD_COUNT(TBUFF **resp, const char *valp);
#endif
#if OPT_ENCRYPT
int var_CRYPTKEY(TBUFF **resp, const char *valp);
#endif
#if !SMALLER
int var_CURCHAR(TBUFF **resp, const char *valp);
#endif
int var_CURCOL(TBUFF **resp, const char *valp);
int var_CURLINE(TBUFF **resp, const char *valp);
#if OPT_SHELL
int var_CWD(TBUFF **resp, const char *valp);
#endif
int var_CWLINE(TBUFF **resp, const char *valp);
int var_DEBUG(TBUFF **resp, const char *valp);
#if OPT_SHELL
int var_DIRECTORY(TBUFF **resp, const char *valp);
#endif
int var_DISCMD(TBUFF **resp, const char *valp);
int var_DISINP(TBUFF **resp, const char *valp);
int var_EOC(TBUFF **resp, const char *valp);
#if OPT_FINDERR
int var_ERROR_BUFFER(TBUFF **resp, const char *valp);
int var_ERROR_EXPR(TBUFF **resp, const char *valp);
int var_ERROR_MATCH(TBUFF **resp, const char *valp);
#endif
int var_EXEC_PATH(TBUFF **resp, const char *valp);
int var_EXEC_SUFFIX(TBUFF **resp, const char *valp);
#if OPT_HOOKS
int var_EXITHOOK(TBUFF **resp, const char *valp);
#endif
#if SYS_WINNT
int var_FAVORITES(TBUFF **resp, const char *valp);
#endif
#if OPT_FINDERR
int var_FILENAME_EXPR(TBUFF **resp, const char *valp);
#endif
int var_FILENAME_IC(TBUFF **resp, const char *valp);
#if OPT_FILTER
int var_FILTER_LIST(TBUFF **resp, const char *valp);
#endif
#if OPT_FINDPATH
int var_FINDCMD(TBUFF **resp, const char *valp);
int var_FINDPATH(TBUFF **resp, const char *valp);
#endif
#if DISP_X11||DISP_NTWIN
int var_FONT(TBUFF **resp, const char *valp);
#endif
int var_FWD_SEARCH(TBUFF **resp, const char *valp);
int var_HELPFILE(TBUFF **resp, const char *valp);
#if DISP_X11
int var_ICONNAM(TBUFF **resp, const char *valp);
#endif
int var_IDENTIF(TBUFF **resp, const char *valp);
int var_KBDMACRO(TBUFF **resp, const char *valp);
int var_KILL(TBUFF **resp, const char *valp);
int var_LASTKEY(TBUFF **resp, const char *valp);
int var_LCOLS(TBUFF **resp, const char *valp);
int var_LIBDIR_PATH(TBUFF **resp, const char *valp);
int var_LINE(TBUFF **resp, const char *valp);
int var_LLENGTH(TBUFF **resp, const char *valp);
#if OPT_MAJORMODE
int var_MAJORMODE(TBUFF **resp, const char *valp);
#endif
#if OPT_HOOKS&&OPT_MAJORMODE
int var_MAJORMODEHOOK(TBUFF **resp, const char *valp);
#endif
int var_MATCH(TBUFF **resp, const char *valp);
#if OPT_MENUS
int var_MENU_FILE(TBUFF **resp, const char *valp);
#endif
int var_MODE(TBUFF **resp, const char *valp);
#if OPT_MLFORMAT
int var_MLFORMAT(TBUFF **resp, const char *valp);
#endif
int var_MODIFIED(TBUFF **resp, const char *valp);
int var_NCOLORS(TBUFF **resp, const char *valp);
int var_NTILDES(TBUFF **resp, const char *valp);
#if OPT_SHELL
int var_OCWD(TBUFF **resp, const char *valp);
#endif
int var_OS(TBUFF **resp, const char *valp);
int var_PAGELEN(TBUFF **resp, const char *valp);
int var_CURWIDTH(TBUFF **resp, const char *valp);
int var_PALETTE(TBUFF **resp, const char *valp);
int var_PATCHLEVEL(TBUFF **resp, const char *valp);
int var_PATHCHR(TBUFF **resp, const char *valp);
int var_PATHNAME(TBUFF **resp, const char *valp);
int var_PATHSEP(TBUFF **resp, const char *valp);
int var_PENDING(TBUFF **resp, const char *valp);
int var_PROCESSID(TBUFF **resp, const char *valp);
#if OPT_POSFORMAT
int var_POSFORMAT(TBUFF **resp, const char *valp);
#endif
int var_PROGNAME(TBUFF **resp, const char *valp);
int var_PROMPT(TBUFF **resp, const char *valp);
int var_QIDENTIF(TBUFF **resp, const char *valp);
#if OPT_HOOKS
int var_RDHOOK(TBUFF **resp, const char *valp);
#endif
int var_REPLACE(TBUFF **resp, const char *valp);
int var_SEARCH(TBUFF **resp, const char *valp);
int var_SEED(TBUFF **resp, const char *valp);
#if OPT_SHELL
int var_SHELL(TBUFF **resp, const char *valp);
#endif
int var_SRES(TBUFF **resp, const char *valp);
int var_STARTUP_FILE(TBUFF **resp, const char *valp);
int var_STARTUP_PATH(TBUFF **resp, const char *valp);
int var_STATUS(TBUFF **resp, const char *valp);
#if OPT_TITLE
int var_TITLE(TBUFF **resp, const char *valp);
int var_TITLEFORMAT(TBUFF **resp, const char *valp);
#endif
int var_TPAUSE(TBUFF **resp, const char *valp);
int var_VERSION(TBUFF **resp, const char *valp);
#if OPT_EVAL
int var_WITHPREFIX(TBUFF **resp, const char *valp);
#endif
int var_WLINES(TBUFF **resp, const char *valp);
int var_WORD(TBUFF **resp, const char *valp);
#if OPT_HOOKS
int var_WRHOOK(TBUFF **resp, const char *valp);
#endif
#if DISP_X11&&OPT_SHELL
int var_XDISPLAY(TBUFF **resp, const char *valp);
int var_XSHELL(TBUFF **resp, const char *valp);
int var_XSHELLFLAGS(TBUFF **resp, const char *valp);
#endif

typedef int (StateFunc)(TBUFF **resultp, const char *valuep);


#ifdef realdef
StateFunc *statevar_func[] = {

	var_ABUFNAME,
#if OPT_HOOKS&&OPT_COLOR
	var_AUTOCOLORHOOK,
#endif
	var_BCHARS,
	var_BFLAGS,
	var_BLINES,
#if DISP_NTWIN
	var_BRIGHTNESS,
#endif
#if OPT_HOOKS
	var_BUFHOOK,
#endif
	var_BWINDOWS,
	var_CBUFNAME,
#if OPT_HOOKS
	var_CDHOOK,
#endif
#if OPT_PATHLOOKUP
	var_CDPATH,
#endif
	var_CFGOPTS,
	var_CFNAME,
	var_CHAR,
#if OPT_EVAL
	var_CMD_COUNT,
#endif
#if OPT_ENCRYPT
	var_CRYPTKEY,
#endif
#if !SMALLER
	var_CURCHAR,
#endif
	var_CURCOL,
	var_CURLINE,
#if OPT_SHELL
	var_CWD,
#endif
	var_CWLINE,
	var_DEBUG,
#if OPT_SHELL
	var_DIRECTORY,
#endif
	var_DISCMD,
	var_DISINP,
	var_EOC,
#if OPT_FINDERR
	var_ERROR_BUFFER,
	var_ERROR_EXPR,
	var_ERROR_MATCH,
#endif
	var_EXEC_PATH,
	var_EXEC_SUFFIX,
#if OPT_HOOKS
	var_EXITHOOK,
#endif
#if SYS_WINNT
	var_FAVORITES,
#endif
#if OPT_FINDERR
	var_FILENAME_EXPR,
#endif
	var_FILENAME_IC,
#if OPT_FILTER
	var_FILTER_LIST,
#endif
#if OPT_FINDPATH
	var_FINDCMD,
	var_FINDPATH,
#endif
#if DISP_X11||DISP_NTWIN
	var_FONT,
#endif
	var_FWD_SEARCH,
	var_HELPFILE,
#if DISP_X11
	var_ICONNAM,
#endif
	var_IDENTIF,
	var_KBDMACRO,
	var_KILL,
	var_LASTKEY,
	var_LCOLS,
	var_LIBDIR_PATH,
	var_LINE,
	var_LLENGTH,
#if OPT_MAJORMODE
	var_MAJORMODE,
#endif
#if OPT_HOOKS&&OPT_MAJORMODE
	var_MAJORMODEHOOK,
#endif
	var_MATCH,
#if OPT_MENUS
	var_MENU_FILE,
#endif
	var_MODE,
#if OPT_MLFORMAT
	var_MLFORMAT,
#endif
	var_MODIFIED,
	var_NCOLORS,
	var_NTILDES,
#if OPT_SHELL
	var_OCWD,
#endif
	var_OS,
	var_PAGELEN,
	var_CURWIDTH,
	var_PALETTE,
	var_PATCHLEVEL,
	var_PATHCHR,
	var_PATHNAME,
	var_PATHSEP,
	var_PENDING,
	var_PROCESSID,
#if OPT_POSFORMAT
	var_POSFORMAT,
#endif
	var_PROGNAME,
	var_PROMPT,
	var_QIDENTIF,
#if OPT_HOOKS
	var_RDHOOK,
#endif
	var_REPLACE,
	var_SEARCH,
	var_SEED,
#if OPT_SHELL
	var_SHELL,
#endif
	var_SRES,
	var_STARTUP_FILE,
	var_STARTUP_PATH,
	var_STATUS,
#if OPT_TITLE
	var_TITLE,
	var_TITLEFORMAT,
#endif
	var_TPAUSE,
	var_VERSION,
#if OPT_EVAL
	var_WITHPREFIX,
#endif
	var_WLINES,
	var_WORD,
#if OPT_HOOKS
	var_WRHOOK,
#endif
#if DISP_X11&&OPT_SHELL
	var_XDISPLAY,
	var_XSHELL,
	var_XSHELLFLAGS,
#endif
	(StateFunc *)NULL
};
#else
extern StateFunc *statevar_func[];
#endif /* realdef */


/*	list of recognized macro language functions	*/

typedef enum {
	 UFABS = 0
	,UFADD
	,UFAND
	,UFASCII
	,UFBIND
	,UFCAT
	,UFCCLASS
	,UFCHR
	,UFDATE
	,UFDEFAULT
	,UFDIV
	,UFDQUERY
	,UFENV
	,UFEQUAL
	,UFERROR
	,UFEXECABLE
	,UFFILTER
	,UFFTIME
	,UFGEQ
	,UFGLOBMODE
	,UFGREATER
	,UFGT
	,UFGTKEY
	,UFGTSEQ
	,UFINDIRECT
	,UFLEFT
	,UFLENGTH
	,UFLEQ
	,UFLESS
	,UFLOCMODE
	,UFLOOKUP
	,UFLOWER
	,UFLT
	,UFMID
	,UFMOD
	,UFNEG
	,UFNEQ
	,UFNOT
	,UFOR
	,UFPATH
	,UFPATHCAT
	,UFPATHQUOTE
	,UFQPASSWD
	,UFQUERY
	,UFRANDOM
	,UFRD
	,UFREADABLE
	,UFREGISTER
	,UFRIGHT
	,UFRND
	,UFSEQUAL
	,UFSGEQ
	,UFSGREAT
	,UFSGT
	,UFSINDEX
	,UFSLEQ
	,UFSLESS
	,UFSLT
	,UFSNEQ
	,UFSTIME
	,UFSTOKEN
	,UFSUB
	,UFTIMES
	,UFTOKEN
	,UFTRANS
	,UFTRIM
	,UFUPPER
	,UFWORD
	,UFWRITABLE

	,NFUNCS /* 69 */
} UFuncCode;

typedef struct UFUNC {
	const char *f_name;	/* name of function */
	UFuncCode f_code;
} UFUNC;

#define NARGMASK	0x000f
#define NUM		0x0010
#define BOOL		0x0020
#define STR		0x0040
#define NRET		0x0100
#define BRET		0x0200
#define SRET		0x0400

#ifdef realdef
EXTERN_CONST UFUNC vl_ufuncs[] = {
	{"abs", (UFuncCode)(1|NUM|NRET)}, /* absolute value of a number */
	{"add", (UFuncCode)(2|NUM|NRET)}, /* add two numbers together */
	{"and", (UFuncCode)(2|BOOL|BRET)}, /* logical and */
	{"ascii", (UFuncCode)(1|NRET)}, /* char to integer conversion */
	{"bind", (UFuncCode)(1|STR|SRET)}, /* lookup what function name is bound to a key */
	{"cat", (UFuncCode)(2|STR|SRET)}, /* concatenate string */
	{"cclass", (UFuncCode)(1|STR|SRET)}, /* character-class */
	{"chr", (UFuncCode)(1|NUM)}, /* integer to char conversion */
	{"date", (UFuncCode)(2|NUM|SRET)}, /* formatted date/timestamp */
	{"default", (UFuncCode)(1|STR|SRET)}, /* return initial/default value for mode or state-variable */
	{"divide", (UFuncCode)(2|NUM|NRET)}, /* division */
	{"dquery", (UFuncCode)(2|STR|SRET)}, /* query the user, given default value */
	{"env", (UFuncCode)(1|STR|SRET)}, /* retrieve a system environment var */
	{"equal", (UFuncCode)(2|NUM|BRET)}, /* logical equality check */
	{"error", (UFuncCode)(1|STR|BRET)}, /* check if parameter was the ERROR token */
	{"execable", (UFuncCode)(1|BRET)}, /* is a file executable? */
	{"filter", (UFuncCode)(1|STR|BRET)}, /* check if internal filter exists */
	{"ftime", (UFuncCode)(1|STR|NRET)}, /* file-timestamp (last-modified) */
	{"geq", (UFuncCode)(2|NUM|BRET)}, /* logical greater than or equal */
	{"global", (UFuncCode)(1|STR|SRET)}, /* retrieve global setting */
	{"greater", (UFuncCode)(2|NUM|BRET)}, /* logical greater than */
	{"gt", (UFuncCode)(2|NUM|BRET)}, /* logical greater than (greater) */
	{"gtkey", (UFuncCode)(0)}, /* get 1 character */
	{"gtsequence", (UFuncCode)(0)}, /* get keyboard-sequence (characters) */
	{"indirect", (UFuncCode)(1|STR|SRET)}, /* evaluate indirect value */
	{"left", (UFuncCode)(2|STR|SRET)}, /* left string(string, len) */
	{"length", (UFuncCode)(1|NRET)}, /* string length */
	{"leq", (UFuncCode)(2|NUM|BRET)}, /* logical less than or equal */
	{"lessthan", (UFuncCode)(2|NUM|BRET)}, /* logical less than */
	{"local", (UFuncCode)(1|STR|SRET)}, /* retrieve local setting */
	{"lookup", (UFuncCode)(2|STR|SRET)}, /* lookup an external file */
	{"lower", (UFuncCode)(1|STR|SRET)}, /* lower case string */
	{"lt", (UFuncCode)(2|NUM|BRET)}, /* logical less than (lessthan) */
	{"middle", (UFuncCode)(3|STR|SRET)}, /* mid string(string, pos, len) */
	{"modulo", (UFuncCode)(2|NUM|NRET)}, /* modulo */
	{"negate", (UFuncCode)(1|NUM|NRET)}, /* negate */
	{"neq", (UFuncCode)(2|NUM|BRET)}, /* logical not equal */
	{"not", (UFuncCode)(1|BOOL|BRET)}, /* logical not */
	{"or", (UFuncCode)(2|BOOL|BRET)}, /* logical or */
	{"path", (UFuncCode)(2|STR|SRET)}, /* transform pathnames */
	{"pcat", (UFuncCode)(2|STR|SRET)}, /* concat directory and filename */
	{"pquote", (UFuncCode)(1|STR|SRET)}, /* quote pathname if needed */
	{"qpasswd", (UFuncCode)(1|STR|SRET)}, /* query user for password, echo '*' */
	{"query", (UFuncCode)(1|STR|SRET)}, /* query the user */
	{"random", (UFuncCode)(1|NUM|NRET)}, /* get a random number */
	{"rd", (UFuncCode)(1|BRET)}, /* is a file readable? */
	{"readable", (UFuncCode)(1|BRET)}, /* is a file readable? */
	{"register", (UFuncCode)(1|STR|SRET)}, /* register, e.g. "a" */
	{"right", (UFuncCode)(2|STR|SRET)}, /* right string(string, pos) */
	{"rnd", (UFuncCode)(1|NUM|NRET)}, /* get a random number */
	{"sequal", (UFuncCode)(2|BRET)}, /* string logical equality check */
	{"sgeq", (UFuncCode)(2|NUM|BRET)}, /* string greater than or equal */
	{"sgreater", (UFuncCode)(2|BRET)}, /* string logical greater than */
	{"sgt", (UFuncCode)(2|BRET)}, /* string logical greater than (sgreater) */
	{"sindex", (UFuncCode)(2|NRET)}, /* find the index of one string in another */
	{"sleq", (UFuncCode)(2|NUM|BRET)}, /* string less than or equal */
	{"sless", (UFuncCode)(2|BRET)}, /* string logical less than */
	{"slt", (UFuncCode)(2|BRET)}, /* string logical less than (sless) */
	{"sneq", (UFuncCode)(2|NUM|BRET)}, /* string not equal */
	{"stime", (UFuncCode)(0|NRET)}, /* system-timestamp */
	{"stoken", (UFuncCode)(3|BRET)}, /* find a token in a string, given delims */
	{"subtract", (UFuncCode)(2|NUM|NRET)}, /* subtraction */
	{"times", (UFuncCode)(2|NUM|NRET)}, /* multiplication */
	{"token", (UFuncCode)(3|STR|SRET)}, /* select n'th token of string, given delims */
	{"translate", (UFuncCode)(3|STR|SRET)}, /* translate string, changing chars from 2nd to 3rd param */
	{"trim", (UFuncCode)(1|STR|SRET)}, /* trims leading/trailing/repeated whitespace */
	{"upper", (UFuncCode)(1|STR|SRET)}, /* uppercase string */
	{"word", (UFuncCode)(2|STR|SRET)}, /* select n'th word of string */
	{"writable", (UFuncCode)(1|BRET)}, /* is a file writeable? */
};
#else
extern const UFUNC vl_ufuncs[];
#endif


#endif /* OPT_EVAL */
