aboutsummaryrefslogtreecommitdiffstats
path: root/awk.h
diff options
context:
space:
mode:
Diffstat (limited to 'awk.h')
-rw-r--r--awk.h36
1 files changed, 14 insertions, 22 deletions
diff --git a/awk.h b/awk.h
index f8696179..759fe838 100644
--- a/awk.h
+++ b/awk.h
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 1986, 1988, 1989, 1991-2013 the Free Software Foundation, Inc.
+ * Copyright (C) 1986, 1988, 1989, 1991-2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -180,10 +180,6 @@ typedef int off_t;
#define O_BINARY 0
#endif
-#ifndef HAVE_VPRINTF
-#error "you lose: you need a system with vfprintf"
-#endif /* HAVE_VPRINTF */
-
#ifndef HAVE_SETLOCALE
#define setlocale(locale, val) /* nothing */
#endif /* HAVE_SETLOCALE */
@@ -206,15 +202,15 @@ typedef void *stackoverflow_context_t;
#define stackoverflow_install_handler(catchstackoverflow, extra_stack, STACK_SIZE) 0
#endif
-/*
- * This is for fake directory file descriptors on systems that don't
- * allow to open() a directory.
- */
-#define FAKE_FD_VALUE 42
+#if defined(__EMX__) || defined(__MINGW32__)
+#include "nonposix.h"
+#endif /* defined(__EMX__) || defined(__MINGW32__) */
/* use this as lintwarn("...")
this is a hack but it gives us the right semantics */
#define lintwarn (*(set_loc(__FILE__, __LINE__),lintfunc))
+/* same thing for warning */
+#define warning (*(set_loc(__FILE__, __LINE__),r_warning))
#ifdef HAVE_MPFR
#include <gmp.h>
@@ -436,12 +432,13 @@ typedef struct exp_node {
# define MPFN 0x0800 /* arbitrary-precision floating-point number */
# define MPZN 0x1000 /* arbitrary-precision integer */
# define NO_EXT_SET 0x2000 /* extension cannot set a value for this variable */
+# define NULL_FIELD 0x4000 /* this is the null field */
/* type = Node_var_array */
-# define ARRAYMAXED 0x4000 /* array is at max size */
-# define HALFHAT 0x8000 /* half-capacity Hashed Array Tree;
+# define ARRAYMAXED 0x8000 /* array is at max size */
+# define HALFHAT 0x10000 /* half-capacity Hashed Array Tree;
* See cint_array.c */
-# define XARRAY 0x10000
+# define XARRAY 0x20000
} NODE;
#define vname sub.nodep.name
@@ -1330,6 +1327,7 @@ if (--val) \
/* array.c */
typedef enum { SORTED_IN = 1, ASORT, ASORTI } sort_context_t;
typedef enum {
+ ANONE = 0x00, /* "unused" value */
AINDEX = 0x001, /* list of indices */
AVALUE = 0x002, /* list of values */
AINUM = 0x004, /* numeric index */
@@ -1363,6 +1361,7 @@ extern NODE *do_aoption(int nargs);
extern NODE *do_asort(int nargs);
extern NODE *do_asorti(int nargs);
extern unsigned long (*hash)(const char *s, size_t len, unsigned long hsize, size_t *code);
+extern void init_env_array(NODE *env_node);
/* awkgram.c */
extern NODE *variable(int location, char *name, NODETYPE type);
extern int parse_program(INSTRUCTION **pcode);
@@ -1373,7 +1372,7 @@ extern const char *getfname(NODE *(*)(int));
extern NODE *stopme(int nargs);
extern void shadow_funcs(void);
extern int check_special(const char *name);
-extern SRCFILE *add_srcfile(int stype, char *src, SRCFILE *curr, bool *already_included, int *errcode);
+extern SRCFILE *add_srcfile(enum srctype stype, char *src, SRCFILE *curr, bool *already_included, int *errcode);
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);
@@ -1579,7 +1578,7 @@ extern void final_exit(int status) ATTRIBUTE_NORETURN;
extern void err(bool isfatal, const char *s, const char *emsg, va_list argp) ATTRIBUTE_PRINTF(3, 0);
extern void msg (const char *mesg, ...) ATTRIBUTE_PRINTF_1;
extern void error (const char *mesg, ...) ATTRIBUTE_PRINTF_1;
-extern void warning (const char *mesg, ...) ATTRIBUTE_PRINTF_1;
+extern void r_warning (const char *mesg, ...) ATTRIBUTE_PRINTF_1;
extern void set_loc (const char *file, int line);
extern void r_fatal (const char *mesg, ...) ATTRIBUTE_PRINTF_1;
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
@@ -1661,13 +1660,6 @@ extern NODE **function_list(bool sort);
extern void print_vars(NODE **table, Func_print print_func, FILE *fp);
/* floatcomp.c */
-#ifdef VMS /* VMS linker weirdness? */
-#define Ceil gawk_ceil
-#define Floor gawk_floor
-#endif
-
-extern AWKNUM Floor(AWKNUM n);
-extern AWKNUM Ceil(AWKNUM n);
#ifdef HAVE_UINTMAX_T
extern uintmax_t adjust_uint(uintmax_t n);
#else