aboutsummaryrefslogtreecommitdiffstats
path: root/awk.h
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2010-07-16 12:33:03 +0300
committerArnold D. Robbins <arnold@skeeve.com>2010-07-16 12:33:03 +0300
commit2f83a4e72166e811a9f0b4726c19a3d5a0b17dcb (patch)
tree469bebda4e807139efb497edfca1ec0678b5ab8b /awk.h
parent66b0bdd602e952f20fa98f6ce5430cea68d4f598 (diff)
downloadegawk-2f83a4e72166e811a9f0b4726c19a3d5a0b17dcb.tar.gz
egawk-2f83a4e72166e811a9f0b4726c19a3d5a0b17dcb.tar.bz2
egawk-2f83a4e72166e811a9f0b4726c19a3d5a0b17dcb.zip
Move to gawk-2.15.5.
Diffstat (limited to 'awk.h')
-rw-r--r--awk.h57
1 files changed, 28 insertions, 29 deletions
diff --git a/awk.h b/awk.h
index 5db87c59..27118f9f 100644
--- a/awk.h
+++ b/awk.h
@@ -24,8 +24,12 @@
*/
/* ------------------------------ Includes ------------------------------ */
+#include "config.h"
+
#include <stdio.h>
+#ifndef LIMITS_H_MISSING
#include <limits.h>
+#endif
#include <ctype.h>
#include <setjmp.h>
#include <varargs.h>
@@ -53,8 +57,6 @@ extern int errno;
#include <signal.h>
-#include "config.h"
-
#ifdef __STDC__
#define P(s) s
#define MALLOC_ARG_T size_t
@@ -154,7 +156,7 @@ extern FILE *popen P((const char *,const char *));
extern int pclose P((FILE *));
extern void vms_arg_fixup P((int *,char ***));
/* some things not in STDC_HEADERS */
-extern int gnu_strftime P((char *,size_t,const char *,const struct tm *));
+extern size_t gnu_strftime P((char *,size_t,const char *,const struct tm *));
extern int unlink P((const char *));
extern int getopt P((int,char **,char *));
extern int isatty P((int));
@@ -196,21 +198,7 @@ extern int _text_read (int, char *, int);
#define ENVSEP ':'
#endif
-#define DEFAULT_G_PRECISION 6
-
-/* semi-temporary hack, mostly to gracefully handle VMS */
-#ifdef GFMT_WORKAROUND
-extern void sgfmt P((char *, const char *, int, int, int, double)); /* builtin.c */
-
-/* Partial fix, to handle the most common case. */
-#define NUMTOSTR(str, format, num) \
- if (strcmp((format), "%.6g") == 0 || strcmp((format), "%g") == 0) \
- sgfmt(str, "%*.*g", 0, 1, DEFAULT_G_PRECISION, num); \
- else \
- (void) sprintf(str, format, num) /* NOTE: no semi-colon! */
-#else
-#define NUMTOSTR(str, format, num) (void) sprintf(str, format, num)
-#endif /* GFMT_WORKAROUND */
+extern double double_to_int P((double d));
/* ------------------ Constants, Structures, Typedefs ------------------ */
#define AWKNUM double
@@ -460,8 +448,8 @@ typedef struct for_loop_header {
/* for "for(iggy in foo) {" */
struct search {
- NODE **arr_ptr;
- NODE **arr_end;
+ NODE *sym;
+ size_t idx;
NODE *bucket;
NODE *retval;
};
@@ -519,13 +507,25 @@ struct src {
/* Return means return from a function call; leave value in ret_node */
#define TAG_RETURN 3
+#ifndef INT_MAX
+#define INT_MAX (~(1 << (sizeof (int) * 8 - 1)))
+#endif
+#ifndef LONG_MAX
+#define LONG_MAX (~(1 << (sizeof (long) * 8 - 1)))
+#endif
+#ifndef ULONG_MAX
+#define ULONG_MAX (~(unsigned long)0)
+#endif
+#ifndef LONG_MIN
+#define LONG_MIN (-LONG_MAX - 1)
+#endif
#define HUGE INT_MAX
/* -------------------------- External variables -------------------------- */
/* gawk builtin variables */
-extern int NF;
-extern int NR;
-extern int FNR;
+extern long NF;
+extern long NR;
+extern long FNR;
extern int IGNORECASE;
extern char *RS;
extern char *OFS;
@@ -583,12 +583,11 @@ extern int in_end_rule;
#else
#define get_lhs(p, a) ((p)->type == Node_var ? (&(p)->var_value) : \
r_get_lhs((p), (a)))
-#define tree_eval(t) (_t = (t),(_t) == NULL ? Nnull_string : \
- ((_t)->type == Node_val ? (_t) : \
- ((_t)->type == Node_var ? (_t)->var_value : \
- ((_t)->type == Node_param_list ? \
- (stack_ptr[(_t)->param_cnt])->var_value : \
- r_tree_eval((_t))))))
+#define tree_eval(t) (_t = (t),_t == NULL ? Nnull_string : \
+ (_t->type == Node_param_list ? r_tree_eval(_t) : \
+ (_t->type == Node_val ? _t : \
+ (_t->type == Node_var ? _t->var_value : \
+ r_tree_eval(_t)))))
#endif
#define make_number(x) mk_number((x), (unsigned int)(MALLOC|NUM|NUMBER))