From 8b863f8852067b0638e09dc7c82355b96381dc12 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Sat, 15 Nov 2014 18:35:45 +0200 Subject: Remove MBS_SUPPORT ifdefs. --- awk.h | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) (limited to 'awk.h') diff --git a/awk.h b/awk.h index 8bc393e7..9b72a53c 100644 --- a/awk.h +++ b/awk.h @@ -95,13 +95,11 @@ extern int errno; #include "missing_d/gawkbool.h" #endif -#include "mbsupport.h" /* defines MBS_SUPPORT */ - -#if MBS_SUPPORT /* We can handle multibyte strings. */ #include #include -#endif + +#include "mbsupport.h" /* defines stuff for DJGPP to fake MBS */ #ifdef STDC_HEADERS #include @@ -395,10 +393,8 @@ typedef struct exp_node { size_t slen; long sref; int idx; -#if MBS_SUPPORT wchar_t *wsp; size_t wslen; -#endif } val; } sub; NODETYPE type; @@ -1104,11 +1100,7 @@ extern int exit_val; #define do_lint (do_flags & (DO_LINT_INVALID|DO_LINT_ALL)) #define do_lint_old (do_flags & DO_LINT_OLD) #endif -#if MBS_SUPPORT extern int gawk_mb_cur_max; -#else -#define gawk_mb_cur_max (1) -#endif #if defined (HAVE_GETGROUPS) && defined(NGROUPS_MAX) && NGROUPS_MAX > 0 extern GETGROUPS_T *groupset; @@ -1416,10 +1408,8 @@ extern AWKNUM nondec2awknum(char *str, size_t len); extern NODE *do_dcgettext(int nargs); extern NODE *do_dcngettext(int nargs); extern NODE *do_bindtextdomain(int nargs); -#if MBS_SUPPORT extern int strncasecmpmbs(const unsigned char *, const unsigned char *, size_t); -#endif /* eval.c */ extern void PUSH_CODE(INSTRUCTION *cp); extern INSTRUCTION *POP_CODE(void); @@ -1602,7 +1592,6 @@ extern NODE *r_dupnode(NODE *n); extern NODE *make_str_node(const char *s, size_t len, int flags); extern void *more_blocks(int id); extern int parse_escape(const char **string_ptr); -#if MBS_SUPPORT extern NODE *str2wstr(NODE *n, size_t **ptr); extern NODE *wstr2str(NODE *n); #define force_wstring(n) str2wstr(n, NULL) @@ -1616,9 +1605,6 @@ extern wint_t btowc_cache[]; #define btowc_cache(x) btowc_cache[(x)&0xFF] extern void init_btowc_cache(); #define is_valid_character(b) (btowc_cache[(b)&0xFF] != WEOF) -#else -#define free_wstr(NODE) /* empty */ -#endif /* re.c */ extern Regexp *make_regexp(const char *s, size_t len, bool ignorecase, bool dfa, bool canfatal); extern int research(Regexp *rp, char *str, int start, size_t len, int flags); -- cgit v1.2.3 From 624caa19ebb5b5a19046f0b0deb96b2e6c093685 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Mon, 17 Nov 2014 17:05:14 +0200 Subject: Add runtime check to run old code. Easier to debug/test. --- awk.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'awk.h') diff --git a/awk.h b/awk.h index 9b72a53c..e788a5a8 100644 --- a/awk.h +++ b/awk.h @@ -1056,6 +1056,8 @@ extern bool field0_valid; extern int do_flags; +extern bool do_old_mem; /* XXX temporary */ + extern SRCFILE *srcfiles; /* source files */ enum do_flag_values { -- cgit v1.2.3 From a398513aadb70b98e6e0ad04e5821ea0b6eca00c Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Fri, 21 Nov 2014 10:53:34 +0200 Subject: Remove OLDMEM checks, preparatory to merging. --- awk.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'awk.h') diff --git a/awk.h b/awk.h index e788a5a8..9b72a53c 100644 --- a/awk.h +++ b/awk.h @@ -1056,8 +1056,6 @@ extern bool field0_valid; extern int do_flags; -extern bool do_old_mem; /* XXX temporary */ - extern SRCFILE *srcfiles; /* source files */ enum do_flag_values { -- cgit v1.2.3 From 838f65088cda84edc2df609d3e388acb3c8eb13d Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Sat, 22 Nov 2014 20:38:31 +0200 Subject: Dork around with xmalloc for z/OS. --- awk.h | 45 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 9 deletions(-) (limited to 'awk.h') diff --git a/awk.h b/awk.h index 9b72a53c..84c8ca0e 100644 --- a/awk.h +++ b/awk.h @@ -1245,13 +1245,42 @@ DEREF(NODE *r) #define cant_happen() r_fatal("internal error line %d, file: %s", \ __LINE__, __FILE__) -#define emalloc(var,ty,x,str) (void)((var=(ty)malloc((size_t)(x))) ||\ - (fatal(_("%s: %s: can't allocate %ld bytes of memory (%s)"),\ - (str), #var, (long) (x), strerror(errno)),0)) -#define erealloc(var,ty,x,str) (void)((var = (ty)realloc((char *)var, (size_t)(x))) \ - ||\ - (fatal(_("%s: %s: can't allocate %ld bytes of memory (%s)"),\ - (str), #var, (long) (x), strerror(errno)),0)) +#define fatal set_loc(__FILE__, __LINE__), r_fatal + +static inline void * +emalloc_real(size_t count, const char *where, const char *var, const char *file, int line) +{ + void *ret; + + if (count == 0) + fatal("%s:%d: emalloc called with zero bytes", file, line); + + ret = (void *) malloc(count); + if (ret == NULL) + fatal(_("%s:%d:%s: %s: can't allocate %ld bytes of memory (%s)"), + file, line, where, var, (long) count, strerror(errno)); + + return ret; +} + +static inline void * +erealloc_real(void *ptr, size_t count, const char *where, const char *var, const char *file, int line) +{ + void *ret; + + if (count == 0) + fatal("%s:%d: erealloc called with zero bytes", file, line); + + ret = (void *) realloc(ptr, count); + if (ret == NULL) + fatal(_("%s:%d:%s: %s: can't reallocate %ld bytes of memory (%s)"), + file, line, where, var, (long) count, strerror(errno)); + + return ret; +} + +#define emalloc(var,ty,x,str) (void) (var = (ty) emalloc_real((size_t)(x), str, #var, __FILE__, __LINE__)) +#define erealloc(var,ty,x,str) (void) (var = (ty) erealloc_real((void *) var, (size_t)(x), str, #var, __FILE__, __LINE__)) #define efree(p) free(p) @@ -1285,8 +1314,6 @@ force_number(NODE *n) #endif /* GAWKDEBUG */ -#define fatal set_loc(__FILE__, __LINE__), r_fatal - extern jmp_buf fatal_tag; extern bool fatal_tag_valid; -- cgit v1.2.3 From 2513062a4c89b0b60c3717d506fce841d44d871e Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Sun, 23 Nov 2014 19:56:27 +0200 Subject: Fix compile problems and warnings on current GCC (4.9.2). --- awk.h | 126 +++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 63 insertions(+), 63 deletions(-) (limited to 'awk.h') diff --git a/awk.h b/awk.h index 84c8ca0e..3abad6f8 100644 --- a/awk.h +++ b/awk.h @@ -1245,74 +1245,12 @@ DEREF(NODE *r) #define cant_happen() r_fatal("internal error line %d, file: %s", \ __LINE__, __FILE__) -#define fatal set_loc(__FILE__, __LINE__), r_fatal - -static inline void * -emalloc_real(size_t count, const char *where, const char *var, const char *file, int line) -{ - void *ret; - - if (count == 0) - fatal("%s:%d: emalloc called with zero bytes", file, line); - - ret = (void *) malloc(count); - if (ret == NULL) - fatal(_("%s:%d:%s: %s: can't allocate %ld bytes of memory (%s)"), - file, line, where, var, (long) count, strerror(errno)); - - return ret; -} - -static inline void * -erealloc_real(void *ptr, size_t count, const char *where, const char *var, const char *file, int line) -{ - void *ret; - - if (count == 0) - fatal("%s:%d: erealloc called with zero bytes", file, line); - - ret = (void *) realloc(ptr, count); - if (ret == NULL) - fatal(_("%s:%d:%s: %s: can't reallocate %ld bytes of memory (%s)"), - file, line, where, var, (long) count, strerror(errno)); - - return ret; -} - #define emalloc(var,ty,x,str) (void) (var = (ty) emalloc_real((size_t)(x), str, #var, __FILE__, __LINE__)) #define erealloc(var,ty,x,str) (void) (var = (ty) erealloc_real((void *) var, (size_t)(x), str, #var, __FILE__, __LINE__)) #define efree(p) free(p) -static inline NODE * -force_string(NODE *s) -{ - if ((s->flags & STRCUR) != 0 - && (s->stfmt == -1 || s->stfmt == CONVFMTidx) - ) - return s; - return format_val(CONVFMT, CONVFMTidx, s); -} - -#ifdef GAWKDEBUG -#define unref r_unref -#define force_number str2number -#else /* not GAWKDEBUG */ - -static inline void -unref(NODE *r) -{ - if (r != NULL && --r->valref <= 0) - r_unref(r); -} - -static inline NODE * -force_number(NODE *n) -{ - return (n->flags & NUMCUR) ? n : str2number(n); -} - -#endif /* GAWKDEBUG */ +#define fatal set_loc(__FILE__, __LINE__), r_fatal extern jmp_buf fatal_tag; extern bool fatal_tag_valid; @@ -1800,3 +1738,65 @@ dupnode(NODE *n) return r_dupnode(n); } #endif + +static inline NODE * +force_string(NODE *s) +{ + if ((s->flags & STRCUR) != 0 + && (s->stfmt == -1 || s->stfmt == CONVFMTidx) + ) + return s; + return format_val(CONVFMT, CONVFMTidx, s); +} + +#ifdef GAWKDEBUG +#define unref r_unref +#define force_number str2number +#else /* not GAWKDEBUG */ + +static inline void +unref(NODE *r) +{ + if (r != NULL && --r->valref <= 0) + r_unref(r); +} + +static inline NODE * +force_number(NODE *n) +{ + return (n->flags & NUMCUR) ? n : str2number(n); +} + +#endif /* GAWKDEBUG */ + +static inline void * +emalloc_real(size_t count, const char *where, const char *var, const char *file, int line) +{ + void *ret; + + if (count == 0) + fatal("%s:%d: emalloc called with zero bytes", file, line); + + ret = (void *) malloc(count); + if (ret == NULL) + fatal(_("%s:%d:%s: %s: can't allocate %ld bytes of memory (%s)"), + file, line, where, var, (long) count, strerror(errno)); + + return ret; +} + +static inline void * +erealloc_real(void *ptr, size_t count, const char *where, const char *var, const char *file, int line) +{ + void *ret; + + if (count == 0) + fatal("%s:%d: erealloc called with zero bytes", file, line); + + ret = (void *) realloc(ptr, count); + if (ret == NULL) + fatal(_("%s:%d:%s: %s: can't reallocate %ld bytes of memory (%s)"), + file, line, where, var, (long) count, strerror(errno)); + + return ret; +} -- cgit v1.2.3 From fa9d1a09cfe9e7386746a2c6523b5503d1b4aff9 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Fri, 12 Dec 2014 06:16:43 +0200 Subject: Improve comment handling in pretty printing. --- awk.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'awk.h') diff --git a/awk.h b/awk.h index a932b54d..41181529 100644 --- a/awk.h +++ b/awk.h @@ -530,6 +530,11 @@ typedef struct exp_node { #define adepth sub.nodep.l.ll #define alevel sub.nodep.x.xl +/* Op_comment */ +#define comment_type sub.val.idx +#define EOL_COMMENT 1 +#define FULL_COMMENT 2 + /* --------------------------------lint warning types----------------------------*/ typedef enum lintvals { LINT_illegal, -- cgit v1.2.3