diff options
author | Stephen Davies <sdavies@sdc.com.au> | 2014-09-11 16:26:34 +0930 |
---|---|---|
committer | Stephen Davies <sdavies@sdc.com.au> | 2014-09-11 16:26:34 +0930 |
commit | 33acaac51cd9087eb7a9b7e73c11f58da396df9a (patch) | |
tree | 31f31fcbddca399940865007322bdeea81f2f6f7 /awk.h | |
parent | 9b21de890a81179e951ffa5bea2099673f584b16 (diff) | |
parent | ca9f23d6c33c4b5cb3786d480948a42988ca99ac (diff) | |
download | egawk-33acaac51cd9087eb7a9b7e73c11f58da396df9a.tar.gz egawk-33acaac51cd9087eb7a9b7e73c11f58da396df9a.tar.bz2 egawk-33acaac51cd9087eb7a9b7e73c11f58da396df9a.zip |
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/gawk
Conflicts:
doc/gawk.info
Diffstat (limited to 'awk.h')
-rw-r--r-- | awk.h | 16 |
1 files changed, 6 insertions, 10 deletions
@@ -193,15 +193,6 @@ extern void *memset_ulong(void *dest, int val, unsigned long l); #define memset memset_ulong #endif -#ifdef HAVE_LIBSIGSEGV -#include <sigsegv.h> -#else -typedef void *stackoverflow_context_t; -#define sigsegv_install_handler(catchsegv) signal(SIGSEGV, catchsig) -/* define as 0 rather than empty so that (void) cast on it works */ -#define stackoverflow_install_handler(catchstackoverflow, extra_stack, STACK_SIZE) 0 -#endif - #if defined(__EMX__) || defined(__MINGW32__) #include "nonposix.h" #endif /* defined(__EMX__) || defined(__MINGW32__) */ @@ -297,6 +288,7 @@ typedef enum nodevals { Node_func, /* lnode is param. list, rnode is body */ Node_ext_func, /* extension function, code_ptr is builtin code */ Node_old_ext_func, /* extension function, code_ptr is builtin code */ + Node_builtin_func, /* built-in function, main use is for FUNCTAB */ Node_array_ref, /* array passed by ref as parameter */ Node_array_tree, /* Hashed array tree (HAT) */ @@ -1378,6 +1370,9 @@ extern void register_deferred_variable(const char *name, NODE *(*load_func)(void extern int files_are_same(char *path, SRCFILE *src); extern void valinfo(NODE *n, Func_print print_func, FILE *fp); extern void negate_num(NODE *n); +typedef NODE *(*builtin_func_t)(int); /* function that implements a built-in */ +extern builtin_func_t lookup_builtin(const char *name); +extern void install_builtins(void); /* builtin.c */ extern double double_to_int(double d); extern NODE *do_exp(int nargs); @@ -1473,6 +1468,7 @@ extern NODE *get_actual_argument(int, bool, bool); extern void init_fields(void); extern void set_record(const char *buf, int cnt); extern void reset_record(void); +extern void rebuild_record(void); extern void set_NF(void); extern NODE **get_field(long num, Func_ptr *assign); extern NODE *do_split(int nargs); @@ -1640,7 +1636,7 @@ extern void load_symbols(); extern void init_symbol_table(); extern NODE *symbol_table; extern NODE *func_table; -extern NODE *install_symbol(char *name, NODETYPE type); +extern NODE *install_symbol(const char *name, NODETYPE type); extern NODE *remove_symbol(NODE *r); extern void destroy_symbol(NODE *r); extern void release_symbols(NODE *symlist, int keep_globals); |