diff options
-rw-r--r-- | ChangeLog | 38 | ||||
-rw-r--r-- | awk.h | 17 | ||||
-rw-r--r-- | builtin.c | 28 | ||||
-rw-r--r-- | configh.in | 6 | ||||
-rwxr-xr-x | configure | 93 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | debug.c | 3 | ||||
-rw-r--r-- | dfa.c | 64 | ||||
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/gawk.info | 955 | ||||
-rw-r--r-- | doc/gawk.texi | 3 | ||||
-rw-r--r-- | getopt.c | 2 | ||||
-rw-r--r-- | mbsupport.h | 4 | ||||
-rw-r--r-- | missing_d/ChangeLog | 4 | ||||
-rw-r--r-- | missing_d/gawkbool.h | 40 | ||||
-rw-r--r-- | missing_d/snprintf.c | 4 | ||||
-rw-r--r-- | pc/ChangeLog | 4 | ||||
-rw-r--r-- | pc/config.sed | 24 | ||||
-rw-r--r-- | po/it.po | 232 | ||||
-rw-r--r-- | regex.c | 6 | ||||
-rw-r--r-- | replace.c | 3 | ||||
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/Makefile.am | 10 | ||||
-rw-r--r-- | test/Makefile.in | 12 | ||||
-rw-r--r-- | test/Maketests | 2 | ||||
-rw-r--r-- | test/jarebug.awk | 1 | ||||
-rw-r--r-- | test/jarebug.in | 4 | ||||
-rw-r--r-- | test/jarebug.ok | 4 | ||||
-rw-r--r-- | xalloc.h | 10 |
29 files changed, 873 insertions, 710 deletions
@@ -1,3 +1,41 @@ +2012-05-09 Arnold D. Robbins <arnold@skeeve.com> + + * configure.ac: Added AC_HEADER_STDBOOL + * awk.h, dfa.c, regex.c: Reworked to use results + of test and include missing_d/gawkbool.h. + +2012-05-07 Arnold D. Robbins <arnold@skeeve.com> + + * array.c (prnode): Add casts to void* for %p format. + * debug.c (print_instruction): Ditto. + * builtin.c: Fix %lf format to be %f everywhere. + + Unrelated: + + * replace.c: Don't include "config.h", awk.h gets it for us. + +2012-05-04 Arnold D. Robbins <arnold@skeeve.com> + + * getopt.c [DJGPP]: Change to __DJGPP__. + * mbsupport.h [DJGPP]: Change to __DJGPP__. + + Unrelated: + + * awk.h: Workarounds for _TANDEM_SOURCE. + +2012-05-01 Arnold D. Robbins <arnold@skeeve.com> + + * dfa.c: Sync with GNU grep. RRI code now there, needed additional + change for gawk. + * configure.ac: Add check for stdbool.h. + * regex.c: Add check for if not have stdbool.h, then define the + bool stuff. + +2012-04-27 Arnold D. Robbins <arnold@skeeve.com> + + * dfa.c: Sync with GNU grep. + * xalloc.h (xmemdup): Added, from grep, for dfa.c. Sigh. + 2012-04-27 Arnold D. Robbins <arnold@skeeve.com> Update to autoconf 2.69, automake 1.12. @@ -30,6 +30,15 @@ * any system headers. Otherwise, extreme death, destruction * and loss of life results. */ +#if defined(_TANDEM_SOURCE) +/* + * config.h forces this even on non-tandem systems but it + * causes problems elsewhere if used in the check below. + * so workaround it. bleah. + */ +#define tandem_for_real 1 +#endif + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -38,7 +47,7 @@ #define _GNU_SOURCE 1 /* enable GNU extensions */ #endif /* _GNU_SOURCE */ -#if defined(_TANDEM_SOURCE) && ! defined(_SCO_DS) +#if defined(tandem_for_real) && ! defined(_SCO_DS) #define _XOPEN_SOURCE_EXTENDED 1 #endif @@ -80,6 +89,12 @@ extern int errno; #include <stdlib.h> #endif /* not STDC_HEADERS */ +#ifdef HAVE_STDBOOL_H +#include <stdbool.h> +#else +#include "missing_d/gawkbool.h" +#endif + #include "mbsupport.h" /* defines MBS_SUPPORT */ #if MBS_SUPPORT @@ -2962,11 +2962,11 @@ do_lshift(int nargs) shift = force_number(s2)->numbr; if (do_lint) { if (val < 0 || shift < 0) - lintwarn(_("lshift(%lf, %lf): negative values will give strange results"), val, shift); + lintwarn(_("lshift(%f, %f): negative values will give strange results"), val, shift); if (double_to_int(val) != val || double_to_int(shift) != shift) - lintwarn(_("lshift(%lf, %lf): fractional values will be truncated"), val, shift); + lintwarn(_("lshift(%f, %f): fractional values will be truncated"), val, shift); if (shift >= sizeof(uintmax_t) * CHAR_BIT) - lintwarn(_("lshift(%lf, %lf): too large shift value will give strange results"), val, shift); + lintwarn(_("lshift(%f, %f): too large shift value will give strange results"), val, shift); } DEREF(s1); @@ -2999,11 +2999,11 @@ do_rshift(int nargs) shift = force_number(s2)->numbr; if (do_lint) { if (val < 0 || shift < 0) - lintwarn(_("rshift(%lf, %lf): negative values will give strange results"), val, shift); + lintwarn(_("rshift(%f, %f): negative values will give strange results"), val, shift); if (double_to_int(val) != val || double_to_int(shift) != shift) - lintwarn(_("rshift(%lf, %lf): fractional values will be truncated"), val, shift); + lintwarn(_("rshift(%f, %f): fractional values will be truncated"), val, shift); if (shift >= sizeof(uintmax_t) * CHAR_BIT) - lintwarn(_("rshift(%lf, %lf): too large shift value will give strange results"), val, shift); + lintwarn(_("rshift(%f, %f): too large shift value will give strange results"), val, shift); } DEREF(s1); @@ -3036,9 +3036,9 @@ do_and(int nargs) right = force_number(s2)->numbr; if (do_lint) { if (left < 0 || right < 0) - lintwarn(_("and(%lf, %lf): negative values will give strange results"), left, right); + lintwarn(_("and(%f, %f): negative values will give strange results"), left, right); if (double_to_int(left) != left || double_to_int(right) != right) - lintwarn(_("and(%lf, %lf): fractional values will be truncated"), left, right); + lintwarn(_("and(%f, %f): fractional values will be truncated"), left, right); } DEREF(s1); @@ -3071,9 +3071,9 @@ do_or(int nargs) right = force_number(s2)->numbr; if (do_lint) { if (left < 0 || right < 0) - lintwarn(_("or(%lf, %lf): negative values will give strange results"), left, right); + lintwarn(_("or(%f, %f): negative values will give strange results"), left, right); if (double_to_int(left) != left || double_to_int(right) != right) - lintwarn(_("or(%lf, %lf): fractional values will be truncated"), left, right); + lintwarn(_("or(%f, %f): fractional values will be truncated"), left, right); } DEREF(s1); @@ -3107,9 +3107,9 @@ do_xor(int nargs) right = force_number(s2)->numbr; if (do_lint) { if (left < 0 || right < 0) - lintwarn(_("xor(%lf, %lf): negative values will give strange results"), left, right); + lintwarn(_("xor(%f, %f): negative values will give strange results"), left, right); if (double_to_int(left) != left || double_to_int(right) != right) - lintwarn(_("xor(%lf, %lf): fractional values will be truncated"), left, right); + lintwarn(_("xor(%f, %f): fractional values will be truncated"), left, right); } DEREF(s1); @@ -3139,9 +3139,9 @@ do_compl(int nargs) if (do_lint) { if (d < 0) - lintwarn(_("compl(%lf): negative value will give strange results"), d); + lintwarn(_("compl(%f): negative value will give strange results"), d); if (double_to_int(d) != d) - lintwarn(_("compl(%lf): fractional value will be truncated"), d); + lintwarn(_("compl(%f): fractional value will be truncated"), d); } uval = (uintmax_t) d; @@ -180,6 +180,9 @@ /* Define to 1 if you have the <stdarg.h> header file. */ #undef HAVE_STDARG_H +/* Define to 1 if stdbool.h conforms to C99. */ +#undef HAVE_STDBOOL_H + /* Define to 1 if you have the <stddef.h> header file. */ #undef HAVE_STDDEF_H @@ -315,6 +318,9 @@ /* systems should define this type here */ #undef HAVE_WINT_T +/* Define to 1 if the system has the type `_Bool'. */ +#undef HAVE__BOOL + /* disable lint checks */ #undef NO_LINT @@ -8148,6 +8148,99 @@ $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 +$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } +if ${ac_cv_header_stdbool_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <stdbool.h> + #ifndef bool + "error: bool is not defined" + #endif + #ifndef false + "error: false is not defined" + #endif + #if false + "error: false is not 0" + #endif + #ifndef true + "error: true is not defined" + #endif + #if true != 1 + "error: true is not 1" + #endif + #ifndef __bool_true_false_are_defined + "error: __bool_true_false_are_defined is not defined" + #endif + + struct s { _Bool s: 1; _Bool t; } s; + + char a[true == 1 ? 1 : -1]; + char b[false == 0 ? 1 : -1]; + char c[__bool_true_false_are_defined == 1 ? 1 : -1]; + char d[(bool) 0.5 == true ? 1 : -1]; + /* See body of main program for 'e'. */ + char f[(_Bool) 0.0 == false ? 1 : -1]; + char g[true]; + char h[sizeof (_Bool)]; + char i[sizeof s.t]; + enum { j = false, k = true, l = false * true, m = true * 256 }; + /* The following fails for + HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ + _Bool n[m]; + char o[sizeof n == m * sizeof n[0] ? 1 : -1]; + char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; + /* Catch a bug in an HP-UX C compiler. See + http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + */ + _Bool q = true; + _Bool *pq = &q; + +int +main () +{ + + bool e = &s; + *pq |= q; + *pq |= ! q; + /* Refer to every declared value, to avoid compiler optimizations. */ + return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + + !m + !n + !o + !p + !q + !pq); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdbool_h=yes +else + ac_cv_header_stdbool_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 +$as_echo "$ac_cv_header_stdbool_h" >&6; } + ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" +if test "x$ac_cv_type__Bool" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE__BOOL 1 +_ACEOF + + +fi + + +if test $ac_cv_header_stdbool_h = yes; then + +$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } if ${ac_cv_header_sys_wait_h+:} false; then : diff --git a/configure.ac b/configure.ac index dcf8c4b0..a13572bb 100644 --- a/configure.ac +++ b/configure.ac @@ -135,6 +135,7 @@ gt_LC_MESSAGES dnl checks for header files AC_HEADER_STDC +AC_HEADER_STDBOOL AC_HEADER_SYS_WAIT AC_HEADER_TIME AC_CHECK_HEADERS(arpa/inet.h fcntl.h limits.h locale.h libintl.h mcheck.h \ @@ -3717,7 +3717,8 @@ print_instruction(INSTRUCTION *pc, Func_print print_func, FILE *fp, int in_dump) if (noffset == 0) { static char buf[50]; /* offset for 2nd to last lines in a multi-line output */ - noffset = sprintf(buf, "[ :%p] %-20.20s: ", pc, opcode2str(pc->opcode)); + noffset = sprintf(buf, "[ :%p] %-20.20s: ", (void *) pc, + opcode2str(pc->opcode)); } if (pc->opcode == Op_func) { @@ -36,6 +36,12 @@ #if HAVE_SETLOCALE #include <locale.h> #endif +#ifdef HAVE_STDBOOL_H +#include <stdbool.h> +#else +#include "missing_d/gawkbool.h" +#endif /* HAVE_STDBOOL_H */ + #define STREQ(a, b) (strcmp (a, b) == 0) @@ -53,7 +59,7 @@ #include "gettext.h" #define _(str) gettext (str) -#include "mbsupport.h" /* defines MBS_SUPPORT to 1 or 0, as appropriate */ +#include "mbsupport.h" /* defines MBS_SUPPORT to 1 or 0, as appropriate */ #if MBS_SUPPORT /* We can handle multibyte strings. */ #include <wchar.h> @@ -61,10 +67,6 @@ #endif #ifdef GAWK -#define bool int -#define true (1) -#define false (0) - /* The __pure__ attribute was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) @@ -343,7 +345,7 @@ struct mb_char_classes wchar_t *range_sts; /* Range characters (start of the range). */ wchar_t *range_ends; /* Range characters (end of the range). */ size_t nranges; - char **equivs; /* Equivalent classes. */ + char **equivs; /* Equivalence classes. */ size_t nequivs; char **coll_elems; size_t ncoll_elems; /* Collating elements. */ @@ -1053,12 +1055,10 @@ parse_bracket_exp (void) else if (MBS_SUPPORT && (c1 == '=' || c1 == '.')) { - char *elem; - MALLOC (elem, len + 1); - strncpy (elem, str, len + 1); + char *elem = xmemdup (str, len + 1); if (c1 == '=') - /* build equivalent class. */ + /* build equivalence class. */ { REALLOC_IF_NECESSARY (work_mbc->equivs, equivs_al, work_mbc->nequivs + 1); @@ -1136,6 +1136,33 @@ parse_bracket_exp (void) } else { +#ifndef GAWK + /* Defer to the system regex library about the meaning + of range expressions. */ + regex_t re; + char pattern[6] = { '[', 0, '-', 0, ']', 0 }; + char subject[2] = { 0, 0 }; + c1 = c; + if (case_fold) + { + c1 = tolower (c1); + c2 = tolower (c2); + } + + pattern[1] = c1; + pattern[3] = c2; + regcomp (&re, pattern, REG_NOSUB); + for (c = 0; c < NOTCHAR; ++c) + { + if ((case_fold && isupper (c)) + || (MB_CUR_MAX > 1 && btowc (c) == WEOF)) + continue; + subject[0] = c; + if (regexec (&re, subject, 0, NULL, 0) != REG_NOMATCH) + setbit_case_fold_c (c, ccl); + } + regfree (&re); +#else c1 = c; if (case_fold) { @@ -1144,6 +1171,7 @@ parse_bracket_exp (void) } for (c = c1; c <= c2; c++) setbit_case_fold_c (c, ccl); +#endif } colon_warning_state |= 8; @@ -3021,7 +3049,7 @@ match_mb_charset (struct dfa *d, state_num s, position pos, size_t idx) strncpy (buffer, (char const *) buf_begin + idx, match_len); buffer[match_len] = '\0'; - /* match with an equivalent class? */ + /* match with an equivalence class? */ for (i = 0; i < work_mbc->nequivs; i++) { op_len = strlen (work_mbc->equivs[i]); @@ -3051,8 +3079,7 @@ match_mb_charset (struct dfa *d, state_num s, position pos, size_t idx) /* match with a range? */ for (i = 0; i < work_mbc->nranges; i++) { - if (work_mbc->range_sts[i] <= wc && - wc <= work_mbc->range_ends[i]) + if (work_mbc->range_sts[i] <= wc && wc <= work_mbc->range_ends[i]) goto charset_matched; } @@ -3151,6 +3178,8 @@ transit_state_consume_1char (struct dfa *d, state_num s, if (match_lens == NULL && work_mbls != NULL) free (work_mbls); + + /* FIXME: this return value is always ignored. */ return rs; } @@ -3195,7 +3224,7 @@ transit_state (struct dfa *d, state_num s, unsigned char const **pp) /* We must update the pointer if state transition succeeded. */ if (rs == TRANSIT_STATE_DONE) - ++ * pp; + ++*pp; free (match_lens); return s1; @@ -3408,7 +3437,7 @@ dfaexec (struct dfa *d, char const *begin, char *end, if ((char *) p <= end && p[-1] == eol) { if (count) - ++ * count; + ++*count; if (d->mb_cur_max > 1) prepare_wc_buf ((const char *) p, end); @@ -3669,7 +3698,7 @@ icatalloc (char *old, char const *new) if (newsize == 0) return old; result = xrealloc (old, oldsize + newsize + 1); - strcpy (result + oldsize, new); + memcpy (result + oldsize, new, newsize + 1); return result; } @@ -4062,8 +4091,7 @@ done: { MALLOC (dm, 1); dm->exact = exact; - MALLOC (dm->must, strlen (result) + 1); - strcpy (dm->must, result); + dm->must = xmemdup (result, strlen (result) + 1); dm->next = d->musts; d->musts = dm; } diff --git a/doc/ChangeLog b/doc/ChangeLog index 7ea0c491..240ca756 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,5 +1,9 @@ 2012-04-27 Arnold D. Robbins <arnold@skeeve.com> + * gawk.texi: Add that -b affects output. + +2012-04-27 Arnold D. Robbins <arnold@skeeve.com> + * texinfo.tex: Update to latest from automake 1.12. 2012-04-09 Arnold D. Robbins <arnold@skeeve.com> diff --git a/doc/gawk.info b/doc/gawk.info index bf279828..daae67b4 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -2203,6 +2203,9 @@ The following list describes options mandated by the POSIX standard: `-b' `--characters-as-bytes' Cause `gawk' to treat all input data as single-byte characters. + In addition, all output written with `print' or `printf' are + treated as single-byte characters. + Normally, `gawk' follows the POSIX standard and attempts to process its input data according to the current locale. This can often involve converting multibyte characters into wide characters @@ -25671,78 +25674,78 @@ Index * - (hyphen), filenames beginning with: Options. (line 59) * - (hyphen), in bracket expressions: Bracket Expressions. (line 17) * --assign option: Options. (line 32) -* --bignum option: Options. (line 182) -* --c option: Options. (line 78) +* --bignum option: Options. (line 185) +* --c option: Options. (line 81) * --characters-as-bytes option: Options. (line 68) -* --copyright option: Options. (line 85) -* --debug option: Options. (line 105) +* --copyright option: Options. (line 88) +* --debug option: Options. (line 108) * --disable-lint configuration option: Additional Configuration Options. (line 9) * --disable-nls configuration option: Additional Configuration Options. (line 24) * --dump-variables option <1>: Library Names. (line 45) -* --dump-variables option: Options. (line 90) -* --exec option: Options. (line 122) +* --dump-variables option: Options. (line 93) +* --exec option: Options. (line 125) * --field-separator option: Options. (line 21) * --file option: Options. (line 25) * --gen-pot option <1>: String Extraction. (line 6) -* --gen-pot option: Options. (line 144) -* --help option: Options. (line 151) -* --L option: Options. (line 269) -* --lint option <1>: Options. (line 163) +* --gen-pot option: Options. (line 147) +* --help option: Options. (line 154) +* --L option: Options. (line 272) +* --lint option <1>: Options. (line 166) * --lint option: Command Line. (line 20) -* --lint-old option: Options. (line 269) -* --load option: Options. (line 156) +* --lint-old option: Options. (line 272) +* --load option: Options. (line 159) * --non-decimal-data option <1>: Nondecimal Data. (line 6) -* --non-decimal-data option: Options. (line 188) +* --non-decimal-data option: Options. (line 191) * --non-decimal-data option, strtonum() function and: Nondecimal Data. (line 36) -* --optimize option: Options. (line 209) -* --posix option: Options. (line 228) -* --posix option, --traditional option and: Options. (line 247) -* --pretty-print option: Options. (line 201) +* --optimize option: Options. (line 212) +* --posix option: Options. (line 231) +* --posix option, --traditional option and: Options. (line 250) +* --pretty-print option: Options. (line 204) * --profile option <1>: Profiling. (line 12) -* --profile option: Options. (line 216) -* --re-interval option: Options. (line 253) -* --sandbox option: Options. (line 260) +* --profile option: Options. (line 219) +* --re-interval option: Options. (line 256) +* --sandbox option: Options. (line 263) * --sandbox option, disabling system() function: I/O Functions. (line 85) * --sandbox option, input redirection with getline: Getline. (line 19) * --sandbox option, output redirection with print, printf: Redirection. (line 6) -* --source option: Options. (line 114) -* --traditional option: Options. (line 78) -* --traditional option, --posix option and: Options. (line 247) -* --use-lc-numeric option: Options. (line 196) -* --version option: Options. (line 274) +* --source option: Options. (line 117) +* --traditional option: Options. (line 81) +* --traditional option, --posix option and: Options. (line 250) +* --use-lc-numeric option: Options. (line 199) +* --version option: Options. (line 277) * --with-whiny-user-strftime configuration option: Additional Configuration Options. (line 29) * -b option: Options. (line 68) -* -C option: Options. (line 85) -* -D option: Options. (line 105) -* -d option: Options. (line 90) -* -E option: Options. (line 122) -* -e option: Options. (line 114) +* -C option: Options. (line 88) +* -D option: Options. (line 108) +* -d option: Options. (line 93) +* -E option: Options. (line 125) +* -e option: Options. (line 117) * -F option: Command Line Field Separator. (line 6) * -f option: Options. (line 25) * -F option: Options. (line 21) * -f option: Long. (line 12) -* -F option, -Ft sets FS to TAB: Options. (line 282) -* -f option, on command line: Options. (line 287) -* -g option: Options. (line 144) -* -h option: Options. (line 151) -* -l option: Options. (line 156) -* -M option: Options. (line 182) -* -N option: Options. (line 196) -* -n option: Options. (line 188) -* -O option: Options. (line 209) -* -o option: Options. (line 201) -* -P option: Options. (line 228) -* -p option: Options. (line 216) -* -r option: Options. (line 253) -* -S option: Options. (line 260) -* -V option: Options. (line 274) +* -F option, -Ft sets FS to TAB: Options. (line 285) +* -f option, on command line: Options. (line 290) +* -g option: Options. (line 147) +* -h option: Options. (line 154) +* -l option: Options. (line 159) +* -M option: Options. (line 185) +* -N option: Options. (line 199) +* -n option: Options. (line 191) +* -O option: Options. (line 212) +* -o option: Options. (line 204) +* -P option: Options. (line 231) +* -p option: Options. (line 219) +* -r option: Options. (line 256) +* -S option: Options. (line 263) +* -V option: Options. (line 277) * -v option: Options. (line 32) * -v option, variables, assigning: Assignment Options. (line 12) * -W option: Options. (line 46) @@ -26000,10 +26003,10 @@ Index * asterisk (*), *= operator: Assignment Ops. (line 129) * atan2() function: Numeric Functions. (line 11) * awf (amazingly workable formatter) program: Glossary. (line 25) -* awk debugging, enabling: Options. (line 105) -* awk enabling: Options. (line 201) +* awk debugging, enabling: Options. (line 108) +* awk enabling: Options. (line 204) * awk language, POSIX version: Assignment Ops. (line 136) -* awk profiling, enabling: Options. (line 216) +* awk profiling, enabling: Options. (line 219) * awk programs <1>: Two Rules. (line 6) * awk programs <2>: Executable Scripts. (line 6) * awk programs: Getting Started. (line 12) @@ -26060,7 +26063,7 @@ Index * AWKPATH environment variable: AWKPATH Variable. (line 6) * awkprof.out file: Profiling. (line 6) * awksed.awk program: Simple Sed. (line 25) -* awkvars.out file: Options. (line 90) +* awkvars.out file: Options. (line 93) * b debugger command (alias for break): Breakpoint Control. (line 11) * backslash (\) <1>: Regexp Operators. (line 18) * backslash (\) <2>: Quoting. (line 31) @@ -26227,7 +26230,7 @@ Index * case sensitivity, regexps and <1>: User-modified. (line 82) * case sensitivity, regexps and: Case-sensitivity. (line 6) * case sensitivity, string comparisons and: User-modified. (line 82) -* CGI, awk scripts for: Options. (line 122) +* CGI, awk scripts for: Options. (line 125) * character lists, See bracket expressions: Regexp Operators. (line 55) * character sets (machine character encodings) <1>: Glossary. (line 141) * character sets (machine character encodings): Ordinal Functions. @@ -26313,7 +26316,7 @@ Index (line 60) * compatibility mode (gawk), octal numbers: Nondecimal-numbers. (line 60) -* compatibility mode (gawk), specifying: Options. (line 78) +* compatibility mode (gawk), specifying: Options. (line 81) * compiled programs <1>: Glossary. (line 161) * compiled programs: Basic High Level. (line 14) * compiling gawk for Cygwin: Cygwin. (line 6) @@ -26362,7 +26365,7 @@ Index * cos() function: Numeric Functions. (line 15) * counting: Wc Program. (line 6) * csh utility: Statements/Lines. (line 44) -* csh utility, POSIXLY_CORRECT environment variable: Options. (line 329) +* csh utility, POSIXLY_CORRECT environment variable: Options. (line 332) * csh utility, |& operator, comparison with: Two-way I/O. (line 44) * ctime() user-defined function: Function Example. (line 72) * currency symbols, localization: Explaining gettext. (line 103) @@ -26531,7 +26534,7 @@ Index (line 67) * debugging awk programs: Debugger. (line 6) * debugging gawk, bug reports: Bugs. (line 9) -* decimal point character, locale specific: Options. (line 244) +* decimal point character, locale specific: Options. (line 247) * decrement operators: Increment Ops. (line 35) * default keyword: Switch Statement. (line 6) * Deifik, Scott <1>: Bugs. (line 70) @@ -26826,7 +26829,7 @@ Index * files, as single records: Records. (line 196) * files, awk programs in: Long. (line 6) * files, awkprof.out: Profiling. (line 6) -* files, awkvars.out: Options. (line 90) +* files, awkvars.out: Options. (line 93) * files, closing: I/O Functions. (line 10) * files, descriptors, See file descriptors: Special FD. (line 6) * files, group: Group Functions. (line 6) @@ -26854,7 +26857,7 @@ Index * files, portable object template: Explaining gettext. (line 30) * files, portable object, converting to message object files: I18N Example. (line 62) -* files, portable object, generating: Options. (line 144) +* files, portable object, generating: Options. (line 147) * files, processing, ARGIND variable and: Auto-set. (line 47) * files, reading: Rewind Function. (line 6) * files, reading, multiline records: Multiple Line. (line 6) @@ -26912,7 +26915,7 @@ Index * FS variable, --field-separator option and: Options. (line 21) * FS variable, as null string: Single Character Fields. (line 20) -* FS variable, as TAB character: Options. (line 240) +* FS variable, as TAB character: Options. (line 243) * FS variable, changing value of: Field Separators. (line 34) * FS variable, running awk programs and: Cut Program. (line 68) * FS variable, setting from command line: Command Line Field Separator. @@ -26998,7 +27001,7 @@ Index (line 139) * gawk, ERRNO variable in: Getline. (line 19) * gawk, escape sequences: Escape Sequences. (line 125) -* gawk, extensions, disabling: Options. (line 228) +* gawk, extensions, disabling: Options. (line 231) * gawk, features, adding: Adding Code. (line 6) * gawk, features, advanced: Advanced Features. (line 6) * gawk, fflush() function in: I/O Functions. (line 44) @@ -27063,7 +27066,7 @@ Index * gawk, TEXTDOMAIN variable in: User-modified. (line 162) * gawk, timestamps: Time Functions. (line 6) * gawk, uses for: Preface. (line 36) -* gawk, versions of, information about, printing: Options. (line 274) +* gawk, versions of, information about, printing: Options. (line 277) * gawk, VMS version of: VMS Installation. (line 6) * gawk, word-boundary operator: GNU Regexp Operators. (line 63) @@ -27125,7 +27128,7 @@ Index * GNU Lesser General Public License: Glossary. (line 397) * GNU long options <1>: Options. (line 6) * GNU long options: Command Line. (line 13) -* GNU long options, printing list of: Options. (line 151) +* GNU long options, printing list of: Options. (line 154) * GNU Project <1>: Glossary. (line 319) * GNU Project: Manual History. (line 11) * GNU/Linux <1>: Glossary. (line 611) @@ -27133,7 +27136,7 @@ Index * GNU/Linux: Manual History. (line 28) * GPL (General Public License) <1>: Glossary. (line 310) * GPL (General Public License): Manual History. (line 11) -* GPL (General Public License), printing: Options. (line 85) +* GPL (General Public License), printing: Options. (line 88) * grcat program: Group Functions. (line 16) * Grigera, Juan: Contributors. (line 58) * group database, reading: Group Functions. (line 6) @@ -27156,7 +27159,7 @@ Index * help debugger command: Miscellaneous Debugger Commands. (line 68) * hexadecimal numbers: Nondecimal-numbers. (line 6) -* hexadecimal values, enabling interpretation of: Options. (line 188) +* hexadecimal values, enabling interpretation of: Options. (line 191) * histsort.awk program: History Sorting. (line 25) * Hughes, Phil: Acknowledgments. (line 43) * HUP signal: Profiling. (line 203) @@ -27385,9 +27388,9 @@ Index * lint checking, array subscripts: Uninitialized Subscripts. (line 43) * lint checking, empty programs: Command Line. (line 16) -* lint checking, issuing warnings: Options. (line 163) +* lint checking, issuing warnings: Options. (line 166) * lint checking, POSIXLY_CORRECT environment variable: Options. - (line 313) + (line 316) * lint checking, undefined functions: Pass By Value/Reference. (line 88) * LINT variable: User-modified. (line 98) @@ -27397,10 +27400,10 @@ Index * list debugger command: Miscellaneous Debugger Commands. (line 74) * loading extension: Loading Extensions. (line 6) -* loading, library: Options. (line 156) +* loading, library: Options. (line 159) * local variables: Variable Scope. (line 6) * locale categories: Explaining gettext. (line 80) -* locale decimal point character: Options. (line 244) +* locale decimal point character: Options. (line 247) * locale, definition of: Locales. (line 6) * localization: I18N and L10N. (line 6) * localization, See internationalization, localization: I18N and L10N. @@ -27472,7 +27475,7 @@ Index * networks, programming: TCP/IP Networking. (line 6) * networks, support for: Special Network. (line 6) * newlines <1>: Boolean Ops. (line 67) -* newlines <2>: Options. (line 234) +* newlines <2>: Options. (line 237) * newlines: Statements/Lines. (line 6) * newlines, as field separators: Default Field Splitting. (line 6) @@ -27552,7 +27555,7 @@ Index * oawk utility: Names. (line 17) * obsolete features: Obsolete. (line 6) * octal numbers: Nondecimal-numbers. (line 6) -* octal values, enabling interpretation of: Options. (line 188) +* octal values, enabling interpretation of: Options. (line 191) * OFMT variable <1>: User-modified. (line 115) * OFMT variable <2>: Conversion. (line 55) * OFMT variable: OFMT. (line 15) @@ -27605,7 +27608,7 @@ Index * options, deprecated: Obsolete. (line 6) * options, long <1>: Options. (line 6) * options, long: Command Line. (line 13) -* options, printing list of: Options. (line 151) +* options, printing list of: Options. (line 154) * OR bitwise operation: Bitwise Functions. (line 6) * or Boolean-logic operator: Boolean Ops. (line 6) * or() function (gawk): Bitwise Functions. (line 48) @@ -27697,13 +27700,13 @@ Index * portability, NF variable, decrementing: Changing Fields. (line 115) * portability, operators: Increment Ops. (line 61) * portability, operators, not in POSIX awk: Precedence. (line 98) -* portability, POSIXLY_CORRECT environment variable: Options. (line 334) +* portability, POSIXLY_CORRECT environment variable: Options. (line 337) * portability, substr() function: String Functions. (line 512) * portable object files <1>: Translator i18n. (line 6) * portable object files: Explaining gettext. (line 36) * portable object files, converting to message object files: I18N Example. (line 62) -* portable object files, generating: Options. (line 144) +* portable object files, generating: Options. (line 147) * portable object template files: Explaining gettext. (line 30) * porting gawk: New Ports. (line 6) * positional specifiers, printf statement <1>: Printf Ordering. @@ -27747,11 +27750,11 @@ Index * POSIX awk, regular expressions and: Regexp Operators. (line 161) * POSIX awk, timestamps and: Time Functions. (line 6) * POSIX awk, | I/O operator and: Getline/Pipe. (line 52) -* POSIX mode: Options. (line 228) +* POSIX mode: Options. (line 231) * POSIX, awk and: Preface. (line 23) * POSIX, gawk extensions not included in: POSIX/GNU. (line 6) * POSIX, programs, implementing in awk: Clones. (line 6) -* POSIXLY_CORRECT environment variable: Options. (line 313) +* POSIXLY_CORRECT environment variable: Options. (line 316) * PREC variable <1>: Setting Precision. (line 6) * PREC variable: User-modified. (line 134) * precedence <1>: Precedence. (line 6) @@ -27787,7 +27790,7 @@ Index * printf statement, sprintf() function and: Round Function. (line 6) * printf statement, syntax of: Basic Printf. (line 6) * printing: Printing. (line 6) -* printing, list of options: Options. (line 151) +* printing, list of options: Options. (line 154) * printing, mailing labels: Labels Program. (line 6) * printing, unduplicated lines of text: Uniq Program. (line 6) * printing, user information: Id Program. (line 6) @@ -27910,7 +27913,7 @@ Index (line 59) * regular expressions, gawk, command-line options: GNU Regexp Operators. (line 70) -* regular expressions, interval expressions and: Options. (line 253) +* regular expressions, interval expressions and: Options. (line 256) * regular expressions, leftmost longest match: Leftmost Longest. (line 6) * regular expressions, operators <1>: Regexp Operators. (line 6) @@ -27988,7 +27991,7 @@ Index * rvalues/lvalues: Assignment Ops. (line 32) * s debugger command (alias for step): Debugger Execution Control. (line 68) -* sandbox mode: Options. (line 260) +* sandbox mode: Options. (line 263) * scalar values: Basic Data Typing. (line 13) * Schorr, Andrew: Acknowledgments. (line 60) * Schreiber, Bert: Acknowledgments. (line 38) @@ -28084,7 +28087,7 @@ Index * source code, jawk: Other Versions. (line 97) * source code, libmawk: Other Versions. (line 105) * source code, mawk: Other Versions. (line 35) -* source code, mixing: Options. (line 114) +* source code, mixing: Options. (line 117) * source code, pawk: Other Versions. (line 69) * source code, QSE Awk: Other Versions. (line 109) * source code, QuikTrim Awk: Other Versions. (line 113) @@ -28224,7 +28227,7 @@ Index * trace debugger command: Miscellaneous Debugger Commands. (line 110) * translate.awk program: Translate Program. (line 55) -* troubleshooting, --non-decimal-data option: Options. (line 188) +* troubleshooting, --non-decimal-data option: Options. (line 191) * troubleshooting, == operator: Comparison Operators. (line 37) * troubleshooting, awk uses FS not IFS: Field Separators. (line 29) @@ -28256,7 +28259,7 @@ Index * troubleshooting, substr() function: String Functions. (line 499) * troubleshooting, system() function: I/O Functions. (line 85) * troubleshooting, typographical errors, global variables: Options. - (line 95) + (line 98) * true, logical: Truth Values. (line 6) * Trueman, David <1>: Contributors. (line 31) * Trueman, David <2>: Acknowledgments. (line 47) @@ -28327,7 +28330,7 @@ Index (line 6) * variables, getline command into, using: Getline/Variable. (line 6) * variables, global, for library functions: Library Names. (line 11) -* variables, global, printing list of: Options. (line 90) +* variables, global, printing list of: Options. (line 93) * variables, initializing: Using Variables. (line 20) * variables, local: Variable Scope. (line 6) * variables, names of: Arrays. (line 18) @@ -28357,7 +28360,7 @@ Index * Wall, Larry <1>: Future Extensions. (line 6) * Wall, Larry: Array Intro. (line 6) * Wallin, Anders: Acknowledgments. (line 60) -* warnings, issuing: Options. (line 163) +* warnings, issuing: Options. (line 166) * watch debugger command: Viewing And Changing Data. (line 67) * wc utility: Wc Program. (line 6) @@ -28369,7 +28372,7 @@ Index * whitespace, as field separators: Default Field Splitting. (line 6) * whitespace, functions, calling: Calling Built-in. (line 10) -* whitespace, newlines as: Options. (line 234) +* whitespace, newlines as: Options. (line 237) * Williams, Kent: Contributors. (line 35) * Woehlke, Matthew: Contributors. (line 79) * Woods, John: Contributors. (line 28) @@ -28465,400 +28468,400 @@ Node: When96426 Node: Invoking Gawk98573 Node: Command Line99958 Node: Options100741 -Ref: Options-Footnote-1115098 -Node: Other Arguments115123 -Node: Naming Standard Input117781 -Node: Environment Variables118875 -Node: AWKPATH Variable119319 -Ref: AWKPATH Variable-Footnote-1121916 -Node: Other Environment Variables122176 -Node: Exit Status124668 -Node: Include Files125343 -Node: Obsolete128828 -Node: Undocumented129514 -Node: Regexp129755 -Node: Regexp Usage131144 -Node: Escape Sequences133170 -Node: Regexp Operators138933 -Ref: Regexp Operators-Footnote-1146313 -Ref: Regexp Operators-Footnote-2146460 -Node: Bracket Expressions146558 -Ref: table-char-classes148448 -Node: GNU Regexp Operators150971 -Node: Case-sensitivity154694 -Ref: Case-sensitivity-Footnote-1157662 -Ref: Case-sensitivity-Footnote-2157897 -Node: Leftmost Longest158005 -Node: Computed Regexps159206 -Node: Reading Files162616 -Node: Records164620 -Ref: Records-Footnote-1173294 -Node: Fields173331 -Ref: Fields-Footnote-1176364 -Node: Nonconstant Fields176450 -Node: Changing Fields178652 -Node: Field Separators184633 -Node: Default Field Splitting187262 -Node: Regexp Field Splitting188379 -Node: Single Character Fields191721 -Node: Command Line Field Separator192780 -Node: Field Splitting Summary196221 -Ref: Field Splitting Summary-Footnote-1199413 -Node: Constant Size199514 -Node: Splitting By Content204098 -Ref: Splitting By Content-Footnote-1207824 -Node: Multiple Line207864 -Ref: Multiple Line-Footnote-1213711 -Node: Getline213890 -Node: Plain Getline216106 -Node: Getline/Variable218195 -Node: Getline/File219336 -Node: Getline/Variable/File220658 -Ref: Getline/Variable/File-Footnote-1222257 -Node: Getline/Pipe222344 -Node: Getline/Variable/Pipe224904 -Node: Getline/Coprocess226011 -Node: Getline/Variable/Coprocess227254 -Node: Getline Notes227968 -Node: Getline Summary229910 -Ref: table-getline-variants230253 -Node: Read Timeout231109 -Ref: Read Timeout-Footnote-1234854 -Node: Command line directories234911 -Node: Printing235541 -Node: Print237172 -Node: Print Examples238509 -Node: Output Separators241293 -Node: OFMT243053 -Node: Printf244411 -Node: Basic Printf245317 -Node: Control Letters246856 -Node: Format Modifiers250668 -Node: Printf Examples256677 -Node: Redirection259392 -Node: Special Files266376 -Node: Special FD266909 -Ref: Special FD-Footnote-1270534 -Node: Special Network270608 -Node: Special Caveats271458 -Node: Close Files And Pipes272254 -Ref: Close Files And Pipes-Footnote-1279277 -Ref: Close Files And Pipes-Footnote-2279425 -Node: Expressions279575 -Node: Values280707 -Node: Constants281383 -Node: Scalar Constants282063 -Ref: Scalar Constants-Footnote-1282922 -Node: Nondecimal-numbers283104 -Node: Regexp Constants286163 -Node: Using Constant Regexps286638 -Node: Variables289693 -Node: Using Variables290348 -Node: Assignment Options292072 -Node: Conversion293944 -Ref: table-locale-affects299320 -Ref: Conversion-Footnote-1299944 -Node: All Operators300053 -Node: Arithmetic Ops300683 -Node: Concatenation303188 -Ref: Concatenation-Footnote-1305981 -Node: Assignment Ops306101 -Ref: table-assign-ops311089 -Node: Increment Ops312497 -Node: Truth Values and Conditions315967 -Node: Truth Values317050 -Node: Typing and Comparison318099 -Node: Variable Typing318888 -Ref: Variable Typing-Footnote-1322785 -Node: Comparison Operators322907 -Ref: table-relational-ops323317 -Node: POSIX String Comparison326866 -Ref: POSIX String Comparison-Footnote-1327822 -Node: Boolean Ops327960 -Ref: Boolean Ops-Footnote-1332038 -Node: Conditional Exp332129 -Node: Function Calls333861 -Node: Precedence337455 -Node: Locales341124 -Node: Patterns and Actions342213 -Node: Pattern Overview343267 -Node: Regexp Patterns344936 -Node: Expression Patterns345479 -Node: Ranges349164 -Node: BEGIN/END352130 -Node: Using BEGIN/END352892 -Ref: Using BEGIN/END-Footnote-1355623 -Node: I/O And BEGIN/END355729 -Node: BEGINFILE/ENDFILE358011 -Node: Empty360904 -Node: Using Shell Variables361220 -Node: Action Overview363505 -Node: Statements365862 -Node: If Statement367716 -Node: While Statement369215 -Node: Do Statement371259 -Node: For Statement372415 -Node: Switch Statement375567 -Node: Break Statement377664 -Node: Continue Statement379654 -Node: Next Statement381447 -Node: Nextfile Statement383837 -Node: Exit Statement386382 -Node: Built-in Variables388798 -Node: User-modified389893 -Ref: User-modified-Footnote-1398248 -Node: Auto-set398310 -Ref: Auto-set-Footnote-1408156 -Node: ARGC and ARGV408361 -Node: Arrays412212 -Node: Array Basics413717 -Node: Array Intro414543 -Node: Reference to Elements418861 -Node: Assigning Elements421131 -Node: Array Example421622 -Node: Scanning an Array423354 -Node: Controlling Scanning425668 -Ref: Controlling Scanning-Footnote-1430601 -Node: Delete430917 -Ref: Delete-Footnote-1433352 -Node: Numeric Array Subscripts433409 -Node: Uninitialized Subscripts435592 -Node: Multi-dimensional437220 -Node: Multi-scanning440314 -Node: Arrays of Arrays441905 -Node: Functions446550 -Node: Built-in447372 -Node: Calling Built-in448450 -Node: Numeric Functions450438 -Ref: Numeric Functions-Footnote-1454270 -Ref: Numeric Functions-Footnote-2454627 -Ref: Numeric Functions-Footnote-3454675 -Node: String Functions454944 -Ref: String Functions-Footnote-1478441 -Ref: String Functions-Footnote-2478570 -Ref: String Functions-Footnote-3478818 -Node: Gory Details478905 -Ref: table-sub-escapes480584 -Ref: table-sub-posix-92481938 -Ref: table-sub-proposed483281 -Ref: table-posix-sub484631 -Ref: table-gensub-escapes486177 -Ref: Gory Details-Footnote-1487384 -Ref: Gory Details-Footnote-2487435 -Node: I/O Functions487586 -Ref: I/O Functions-Footnote-1494241 -Node: Time Functions494388 -Ref: Time Functions-Footnote-1505280 -Ref: Time Functions-Footnote-2505348 -Ref: Time Functions-Footnote-3505506 -Ref: Time Functions-Footnote-4505617 -Ref: Time Functions-Footnote-5505729 -Ref: Time Functions-Footnote-6505956 -Node: Bitwise Functions506222 -Ref: table-bitwise-ops506780 -Ref: Bitwise Functions-Footnote-1510940 -Node: Type Functions511124 -Node: I18N Functions511594 -Node: User-defined513221 -Node: Definition Syntax514025 -Ref: Definition Syntax-Footnote-1518935 -Node: Function Example519004 -Node: Function Caveats521598 -Node: Calling A Function522019 -Node: Variable Scope523134 -Node: Pass By Value/Reference525109 -Node: Return Statement528549 -Node: Dynamic Typing531530 -Node: Indirect Calls532265 -Node: Internationalization541950 -Node: I18N and L10N543389 -Node: Explaining gettext544075 -Ref: Explaining gettext-Footnote-1549141 -Ref: Explaining gettext-Footnote-2549325 -Node: Programmer i18n549490 -Node: Translator i18n553690 -Node: String Extraction554483 -Ref: String Extraction-Footnote-1555444 -Node: Printf Ordering555530 -Ref: Printf Ordering-Footnote-1558314 -Node: I18N Portability558378 -Ref: I18N Portability-Footnote-1560827 -Node: I18N Example560890 -Ref: I18N Example-Footnote-1563525 -Node: Gawk I18N563597 -Node: Arbitrary Precision Arithmetic564214 -Ref: Arbitrary Precision Arithmetic-Footnote-1567089 -Node: Floating-point Programming567237 -Node: Floating-point Representation572507 -Node: Floating-point Context573611 -Ref: table-ieee-formats574446 -Node: Rounding Mode575816 -Ref: table-rounding-modes576443 -Ref: Rounding Mode-Footnote-1579566 -Node: Arbitrary Precision Floats579747 -Ref: Arbitrary Precision Floats-Footnote-1581788 -Node: Setting Precision582099 -Node: Setting Rounding Mode584857 -Node: Floating-point Constants585774 -Node: Changing Precision587193 -Ref: Changing Precision-Footnote-1588593 -Node: Exact Arithmetic588766 -Node: Integer Programming591779 -Node: Arbitrary Precision Integers593559 -Ref: Arbitrary Precision Integers-Footnote-1596583 -Node: MPFR and GMP Libraries596729 -Node: Advanced Features597114 -Node: Nondecimal Data598637 -Node: Array Sorting600220 -Node: Controlling Array Traversal600917 -Node: Array Sorting Functions609154 -Ref: Array Sorting Functions-Footnote-1612828 -Ref: Array Sorting Functions-Footnote-2612921 -Node: Two-way I/O613115 -Ref: Two-way I/O-Footnote-1618547 -Node: TCP/IP Networking618617 -Node: Profiling621461 -Node: Library Functions628915 -Ref: Library Functions-Footnote-1631922 -Node: Library Names632093 -Ref: Library Names-Footnote-1635564 -Ref: Library Names-Footnote-2635784 -Node: General Functions635870 -Node: Strtonum Function636823 -Node: Assert Function639753 -Node: Round Function643079 -Node: Cliff Random Function644622 -Node: Ordinal Functions645638 -Ref: Ordinal Functions-Footnote-1648708 -Ref: Ordinal Functions-Footnote-2648960 -Node: Join Function649169 -Ref: Join Function-Footnote-1650940 -Node: Gettimeofday Function651140 -Node: Data File Management654855 -Node: Filetrans Function655487 -Node: Rewind Function659626 -Node: File Checking661013 -Node: Empty Files662107 -Node: Ignoring Assigns664337 -Node: Getopt Function665890 -Ref: Getopt Function-Footnote-1677194 -Node: Passwd Functions677397 -Ref: Passwd Functions-Footnote-1686372 -Node: Group Functions686460 -Node: Walking Arrays694544 -Node: Sample Programs696113 -Node: Running Examples696778 -Node: Clones697506 -Node: Cut Program698730 -Node: Egrep Program708575 -Ref: Egrep Program-Footnote-1716348 -Node: Id Program716458 -Node: Split Program720074 -Ref: Split Program-Footnote-1723593 -Node: Tee Program723721 -Node: Uniq Program726524 -Node: Wc Program733953 -Ref: Wc Program-Footnote-1738219 -Ref: Wc Program-Footnote-2738419 -Node: Miscellaneous Programs738511 -Node: Dupword Program739699 -Node: Alarm Program741730 -Node: Translate Program746479 -Ref: Translate Program-Footnote-1750866 -Ref: Translate Program-Footnote-2751094 -Node: Labels Program751228 -Ref: Labels Program-Footnote-1754599 -Node: Word Sorting754683 -Node: History Sorting758567 -Node: Extract Program760406 -Ref: Extract Program-Footnote-1767889 -Node: Simple Sed768017 -Node: Igawk Program771079 -Ref: Igawk Program-Footnote-1786236 -Ref: Igawk Program-Footnote-2786437 -Node: Anagram Program786575 -Node: Signature Program789643 -Node: Debugger790743 -Node: Debugging791695 -Node: Debugging Concepts792128 -Node: Debugging Terms793984 -Node: Awk Debugging796581 -Node: Sample Debugging Session797473 -Node: Debugger Invocation797993 -Node: Finding The Bug799322 -Node: List of Debugger Commands805810 -Node: Breakpoint Control807144 -Node: Debugger Execution Control810808 -Node: Viewing And Changing Data814168 -Node: Execution Stack817524 -Node: Debugger Info818991 -Node: Miscellaneous Debugger Commands822972 -Node: Readline Support828417 -Node: Limitations829248 -Node: Language History831500 -Node: V7/SVR3.1833012 -Node: SVR4835333 -Node: POSIX836775 -Node: BTL837783 -Node: POSIX/GNU838517 -Node: Common Extensions843668 -Node: Ranges and Locales844775 -Ref: Ranges and Locales-Footnote-1849379 -Node: Contributors849600 -Node: Installation853861 -Node: Gawk Distribution854755 -Node: Getting855239 -Node: Extracting856065 -Node: Distribution contents857757 -Node: Unix Installation862979 -Node: Quick Installation863596 -Node: Additional Configuration Options865558 -Node: Configuration Philosophy867035 -Node: Non-Unix Installation869377 -Node: PC Installation869835 -Node: PC Binary Installation871134 -Node: PC Compiling872982 -Node: PC Testing875926 -Node: PC Using877102 -Node: Cygwin881287 -Node: MSYS882287 -Node: VMS Installation882801 -Node: VMS Compilation883404 -Ref: VMS Compilation-Footnote-1884411 -Node: VMS Installation Details884469 -Node: VMS Running886104 -Node: VMS Old Gawk887711 -Node: Bugs888185 -Node: Other Versions892037 -Node: Notes897352 -Node: Compatibility Mode898044 -Node: Additions898827 -Node: Accessing The Source899639 -Node: Adding Code901064 -Node: New Ports907031 -Node: Dynamic Extensions911144 -Node: Internals912584 -Node: Plugin License921103 -Node: Loading Extensions921741 -Node: Sample Library923551 -Node: Internal File Description924241 -Node: Internal File Ops927956 -Ref: Internal File Ops-Footnote-1932680 -Node: Using Internal File Ops932820 -Node: Future Extensions935197 -Node: Basic Concepts937701 -Node: Basic High Level938458 -Ref: Basic High Level-Footnote-1942493 -Node: Basic Data Typing942678 -Node: Floating Point Issues947203 -Node: String Conversion Precision948286 -Ref: String Conversion Precision-Footnote-1949986 -Node: Unexpected Results950095 -Node: POSIX Floating Point Problems951921 -Ref: POSIX Floating Point Problems-Footnote-1955626 -Node: Glossary955664 -Node: Copying980640 -Node: GNU Free Documentation License1018197 -Node: Index1043334 +Ref: Options-Footnote-1115205 +Node: Other Arguments115230 +Node: Naming Standard Input117888 +Node: Environment Variables118982 +Node: AWKPATH Variable119426 +Ref: AWKPATH Variable-Footnote-1122023 +Node: Other Environment Variables122283 +Node: Exit Status124775 +Node: Include Files125450 +Node: Obsolete128935 +Node: Undocumented129621 +Node: Regexp129862 +Node: Regexp Usage131251 +Node: Escape Sequences133277 +Node: Regexp Operators139040 +Ref: Regexp Operators-Footnote-1146420 +Ref: Regexp Operators-Footnote-2146567 +Node: Bracket Expressions146665 +Ref: table-char-classes148555 +Node: GNU Regexp Operators151078 +Node: Case-sensitivity154801 +Ref: Case-sensitivity-Footnote-1157769 +Ref: Case-sensitivity-Footnote-2158004 +Node: Leftmost Longest158112 +Node: Computed Regexps159313 +Node: Reading Files162723 +Node: Records164727 +Ref: Records-Footnote-1173401 +Node: Fields173438 +Ref: Fields-Footnote-1176471 +Node: Nonconstant Fields176557 +Node: Changing Fields178759 +Node: Field Separators184740 +Node: Default Field Splitting187369 +Node: Regexp Field Splitting188486 +Node: Single Character Fields191828 +Node: Command Line Field Separator192887 +Node: Field Splitting Summary196328 +Ref: Field Splitting Summary-Footnote-1199520 +Node: Constant Size199621 +Node: Splitting By Content204205 +Ref: Splitting By Content-Footnote-1207931 +Node: Multiple Line207971 +Ref: Multiple Line-Footnote-1213818 +Node: Getline213997 +Node: Plain Getline216213 +Node: Getline/Variable218302 +Node: Getline/File219443 +Node: Getline/Variable/File220765 +Ref: Getline/Variable/File-Footnote-1222364 +Node: Getline/Pipe222451 +Node: Getline/Variable/Pipe225011 +Node: Getline/Coprocess226118 +Node: Getline/Variable/Coprocess227361 +Node: Getline Notes228075 +Node: Getline Summary230017 +Ref: table-getline-variants230360 +Node: Read Timeout231216 +Ref: Read Timeout-Footnote-1234961 +Node: Command line directories235018 +Node: Printing235648 +Node: Print237279 +Node: Print Examples238616 +Node: Output Separators241400 +Node: OFMT243160 +Node: Printf244518 +Node: Basic Printf245424 +Node: Control Letters246963 +Node: Format Modifiers250775 +Node: Printf Examples256784 +Node: Redirection259499 +Node: Special Files266483 +Node: Special FD267016 +Ref: Special FD-Footnote-1270641 +Node: Special Network270715 +Node: Special Caveats271565 +Node: Close Files And Pipes272361 +Ref: Close Files And Pipes-Footnote-1279384 +Ref: Close Files And Pipes-Footnote-2279532 +Node: Expressions279682 +Node: Values280814 +Node: Constants281490 +Node: Scalar Constants282170 +Ref: Scalar Constants-Footnote-1283029 +Node: Nondecimal-numbers283211 +Node: Regexp Constants286270 +Node: Using Constant Regexps286745 +Node: Variables289800 +Node: Using Variables290455 +Node: Assignment Options292179 +Node: Conversion294051 +Ref: table-locale-affects299427 +Ref: Conversion-Footnote-1300051 +Node: All Operators300160 +Node: Arithmetic Ops300790 +Node: Concatenation303295 +Ref: Concatenation-Footnote-1306088 +Node: Assignment Ops306208 +Ref: table-assign-ops311196 +Node: Increment Ops312604 +Node: Truth Values and Conditions316074 +Node: Truth Values317157 +Node: Typing and Comparison318206 +Node: Variable Typing318995 +Ref: Variable Typing-Footnote-1322892 +Node: Comparison Operators323014 +Ref: table-relational-ops323424 +Node: POSIX String Comparison326973 +Ref: POSIX String Comparison-Footnote-1327929 +Node: Boolean Ops328067 +Ref: Boolean Ops-Footnote-1332145 +Node: Conditional Exp332236 +Node: Function Calls333968 +Node: Precedence337562 +Node: Locales341231 +Node: Patterns and Actions342320 +Node: Pattern Overview343374 +Node: Regexp Patterns345043 +Node: Expression Patterns345586 +Node: Ranges349271 +Node: BEGIN/END352237 +Node: Using BEGIN/END352999 +Ref: Using BEGIN/END-Footnote-1355730 +Node: I/O And BEGIN/END355836 +Node: BEGINFILE/ENDFILE358118 +Node: Empty361011 +Node: Using Shell Variables361327 +Node: Action Overview363612 +Node: Statements365969 +Node: If Statement367823 +Node: While Statement369322 +Node: Do Statement371366 +Node: For Statement372522 +Node: Switch Statement375674 +Node: Break Statement377771 +Node: Continue Statement379761 +Node: Next Statement381554 +Node: Nextfile Statement383944 +Node: Exit Statement386489 +Node: Built-in Variables388905 +Node: User-modified390000 +Ref: User-modified-Footnote-1398355 +Node: Auto-set398417 +Ref: Auto-set-Footnote-1408263 +Node: ARGC and ARGV408468 +Node: Arrays412319 +Node: Array Basics413824 +Node: Array Intro414650 +Node: Reference to Elements418968 +Node: Assigning Elements421238 +Node: Array Example421729 +Node: Scanning an Array423461 +Node: Controlling Scanning425775 +Ref: Controlling Scanning-Footnote-1430708 +Node: Delete431024 +Ref: Delete-Footnote-1433459 +Node: Numeric Array Subscripts433516 +Node: Uninitialized Subscripts435699 +Node: Multi-dimensional437327 +Node: Multi-scanning440421 +Node: Arrays of Arrays442012 +Node: Functions446657 +Node: Built-in447479 +Node: Calling Built-in448557 +Node: Numeric Functions450545 +Ref: Numeric Functions-Footnote-1454377 +Ref: Numeric Functions-Footnote-2454734 +Ref: Numeric Functions-Footnote-3454782 +Node: String Functions455051 +Ref: String Functions-Footnote-1478548 +Ref: String Functions-Footnote-2478677 +Ref: String Functions-Footnote-3478925 +Node: Gory Details479012 +Ref: table-sub-escapes480691 +Ref: table-sub-posix-92482045 +Ref: table-sub-proposed483388 +Ref: table-posix-sub484738 +Ref: table-gensub-escapes486284 +Ref: Gory Details-Footnote-1487491 +Ref: Gory Details-Footnote-2487542 +Node: I/O Functions487693 +Ref: I/O Functions-Footnote-1494348 +Node: Time Functions494495 +Ref: Time Functions-Footnote-1505387 +Ref: Time Functions-Footnote-2505455 +Ref: Time Functions-Footnote-3505613 +Ref: Time Functions-Footnote-4505724 +Ref: Time Functions-Footnote-5505836 +Ref: Time Functions-Footnote-6506063 +Node: Bitwise Functions506329 +Ref: table-bitwise-ops506887 +Ref: Bitwise Functions-Footnote-1511047 +Node: Type Functions511231 +Node: I18N Functions511701 +Node: User-defined513328 +Node: Definition Syntax514132 +Ref: Definition Syntax-Footnote-1519042 +Node: Function Example519111 +Node: Function Caveats521705 +Node: Calling A Function522126 +Node: Variable Scope523241 +Node: Pass By Value/Reference525216 +Node: Return Statement528656 +Node: Dynamic Typing531637 +Node: Indirect Calls532372 +Node: Internationalization542057 +Node: I18N and L10N543496 +Node: Explaining gettext544182 +Ref: Explaining gettext-Footnote-1549248 +Ref: Explaining gettext-Footnote-2549432 +Node: Programmer i18n549597 +Node: Translator i18n553797 +Node: String Extraction554590 +Ref: String Extraction-Footnote-1555551 +Node: Printf Ordering555637 +Ref: Printf Ordering-Footnote-1558421 +Node: I18N Portability558485 +Ref: I18N Portability-Footnote-1560934 +Node: I18N Example560997 +Ref: I18N Example-Footnote-1563632 +Node: Gawk I18N563704 +Node: Arbitrary Precision Arithmetic564321 +Ref: Arbitrary Precision Arithmetic-Footnote-1567196 +Node: Floating-point Programming567344 +Node: Floating-point Representation572614 +Node: Floating-point Context573718 +Ref: table-ieee-formats574553 +Node: Rounding Mode575923 +Ref: table-rounding-modes576550 +Ref: Rounding Mode-Footnote-1579673 +Node: Arbitrary Precision Floats579854 +Ref: Arbitrary Precision Floats-Footnote-1581895 +Node: Setting Precision582206 +Node: Setting Rounding Mode584964 +Node: Floating-point Constants585881 +Node: Changing Precision587300 +Ref: Changing Precision-Footnote-1588700 +Node: Exact Arithmetic588873 +Node: Integer Programming591886 +Node: Arbitrary Precision Integers593666 +Ref: Arbitrary Precision Integers-Footnote-1596690 +Node: MPFR and GMP Libraries596836 +Node: Advanced Features597221 +Node: Nondecimal Data598744 +Node: Array Sorting600327 +Node: Controlling Array Traversal601024 +Node: Array Sorting Functions609261 +Ref: Array Sorting Functions-Footnote-1612935 +Ref: Array Sorting Functions-Footnote-2613028 +Node: Two-way I/O613222 +Ref: Two-way I/O-Footnote-1618654 +Node: TCP/IP Networking618724 +Node: Profiling621568 +Node: Library Functions629022 +Ref: Library Functions-Footnote-1632029 +Node: Library Names632200 +Ref: Library Names-Footnote-1635671 +Ref: Library Names-Footnote-2635891 +Node: General Functions635977 +Node: Strtonum Function636930 +Node: Assert Function639860 +Node: Round Function643186 +Node: Cliff Random Function644729 +Node: Ordinal Functions645745 +Ref: Ordinal Functions-Footnote-1648815 +Ref: Ordinal Functions-Footnote-2649067 +Node: Join Function649276 +Ref: Join Function-Footnote-1651047 +Node: Gettimeofday Function651247 +Node: Data File Management654962 +Node: Filetrans Function655594 +Node: Rewind Function659733 +Node: File Checking661120 +Node: Empty Files662214 +Node: Ignoring Assigns664444 +Node: Getopt Function665997 +Ref: Getopt Function-Footnote-1677301 +Node: Passwd Functions677504 +Ref: Passwd Functions-Footnote-1686479 +Node: Group Functions686567 +Node: Walking Arrays694651 +Node: Sample Programs696220 +Node: Running Examples696885 +Node: Clones697613 +Node: Cut Program698837 +Node: Egrep Program708682 +Ref: Egrep Program-Footnote-1716455 +Node: Id Program716565 +Node: Split Program720181 +Ref: Split Program-Footnote-1723700 +Node: Tee Program723828 +Node: Uniq Program726631 +Node: Wc Program734060 +Ref: Wc Program-Footnote-1738326 +Ref: Wc Program-Footnote-2738526 +Node: Miscellaneous Programs738618 +Node: Dupword Program739806 +Node: Alarm Program741837 +Node: Translate Program746586 +Ref: Translate Program-Footnote-1750973 +Ref: Translate Program-Footnote-2751201 +Node: Labels Program751335 +Ref: Labels Program-Footnote-1754706 +Node: Word Sorting754790 +Node: History Sorting758674 +Node: Extract Program760513 +Ref: Extract Program-Footnote-1767996 +Node: Simple Sed768124 +Node: Igawk Program771186 +Ref: Igawk Program-Footnote-1786343 +Ref: Igawk Program-Footnote-2786544 +Node: Anagram Program786682 +Node: Signature Program789750 +Node: Debugger790850 +Node: Debugging791802 +Node: Debugging Concepts792235 +Node: Debugging Terms794091 +Node: Awk Debugging796688 +Node: Sample Debugging Session797580 +Node: Debugger Invocation798100 +Node: Finding The Bug799429 +Node: List of Debugger Commands805917 +Node: Breakpoint Control807251 +Node: Debugger Execution Control810915 +Node: Viewing And Changing Data814275 +Node: Execution Stack817631 +Node: Debugger Info819098 +Node: Miscellaneous Debugger Commands823079 +Node: Readline Support828524 +Node: Limitations829355 +Node: Language History831607 +Node: V7/SVR3.1833119 +Node: SVR4835440 +Node: POSIX836882 +Node: BTL837890 +Node: POSIX/GNU838624 +Node: Common Extensions843775 +Node: Ranges and Locales844882 +Ref: Ranges and Locales-Footnote-1849486 +Node: Contributors849707 +Node: Installation853968 +Node: Gawk Distribution854862 +Node: Getting855346 +Node: Extracting856172 +Node: Distribution contents857864 +Node: Unix Installation863086 +Node: Quick Installation863703 +Node: Additional Configuration Options865665 +Node: Configuration Philosophy867142 +Node: Non-Unix Installation869484 +Node: PC Installation869942 +Node: PC Binary Installation871241 +Node: PC Compiling873089 +Node: PC Testing876033 +Node: PC Using877209 +Node: Cygwin881394 +Node: MSYS882394 +Node: VMS Installation882908 +Node: VMS Compilation883511 +Ref: VMS Compilation-Footnote-1884518 +Node: VMS Installation Details884576 +Node: VMS Running886211 +Node: VMS Old Gawk887818 +Node: Bugs888292 +Node: Other Versions892144 +Node: Notes897459 +Node: Compatibility Mode898151 +Node: Additions898934 +Node: Accessing The Source899746 +Node: Adding Code901171 +Node: New Ports907138 +Node: Dynamic Extensions911251 +Node: Internals912691 +Node: Plugin License921210 +Node: Loading Extensions921848 +Node: Sample Library923658 +Node: Internal File Description924348 +Node: Internal File Ops928063 +Ref: Internal File Ops-Footnote-1932787 +Node: Using Internal File Ops932927 +Node: Future Extensions935304 +Node: Basic Concepts937808 +Node: Basic High Level938565 +Ref: Basic High Level-Footnote-1942600 +Node: Basic Data Typing942785 +Node: Floating Point Issues947310 +Node: String Conversion Precision948393 +Ref: String Conversion Precision-Footnote-1950093 +Node: Unexpected Results950202 +Node: POSIX Floating Point Problems952028 +Ref: POSIX Floating Point Problems-Footnote-1955733 +Node: Glossary955771 +Node: Copying980747 +Node: GNU Free Documentation License1018304 +Node: Index1043441 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 8cd7e38e..22215d93 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -3078,6 +3078,9 @@ The following list describes @command{gawk}-specific options: @cindex @code{-b} option @cindex @code{--characters-as-bytes} option Cause @command{gawk} to treat all input data as single-byte characters. +In addition, all output written with @code{print} or @code{printf} +are treated as single-byte characters. + Normally, @command{gawk} follows the POSIX standard and attempts to process its input data according to the current locale. This can often involve converting multibyte characters into wide characters (internally), and @@ -58,7 +58,7 @@ /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ -#if defined (__GNU_LIBRARY__) || defined (__CYGWIN__) || defined(DJGPP) +#if defined (__GNU_LIBRARY__) || defined (__CYGWIN__) || defined(__DJGPP__) /* Don't include stdlib.h for * non-GNU C libraries * non-Cygwin diff --git a/mbsupport.h b/mbsupport.h index db6788ce..1eb1a444 100644 --- a/mbsupport.h +++ b/mbsupport.h @@ -71,7 +71,7 @@ /* All this glop is for dfa.c. Bleah. */ -#ifndef DJGPP +#ifndef __DJGPP__ #define wchar_t char #endif @@ -81,7 +81,7 @@ #define WEOF EOF #define towupper toupper #define towlower tolower -#ifndef DJGPP +#ifndef __DJGPP__ #define btowc(x) ((int)x) #endif #define iswalnum isalnum diff --git a/missing_d/ChangeLog b/missing_d/ChangeLog index c6913bc2..ff29a926 100644 --- a/missing_d/ChangeLog +++ b/missing_d/ChangeLog @@ -1,3 +1,7 @@ +2012-05-04 Arnold D. Robbins <arnold@skeeve.com> + + * snprintf.c [DJGPP]: Change to __DJGPP__. + 2012-03-28 Arnold D. Robbins <arnold@skeeve.com> * 4.0.1: Release tar ball made. diff --git a/missing_d/gawkbool.h b/missing_d/gawkbool.h new file mode 100644 index 00000000..c75a5a10 --- /dev/null +++ b/missing_d/gawkbool.h @@ -0,0 +1,40 @@ +/* + * gawkbool.h -- replacement definitions for bool. + */ + +/* + * Copyright (C) 2012 the Free Software Foundation, Inc. + * + * This file is part of GAWK, the GNU implementation of the + * AWK Programming Language. + * + * GAWK is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * GAWK is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* This stuff largely taken from the Autoconf doc. */ + +#ifndef __bool_true_false_are_defined +# ifndef HAVE__BOOL +# ifdef __cplusplus +typedef bool _Bool; +# else +# define _Bool signed char +# endif +# endif +# define bool _Bool +# define false 0 +# define true 1 +# define __bool_true_false_are_defined 1 +#endif diff --git a/missing_d/snprintf.c b/missing_d/snprintf.c index 254a8e0b..12e50925 100644 --- a/missing_d/snprintf.c +++ b/missing_d/snprintf.c @@ -86,10 +86,10 @@ safe_tmpfile (void) if ((fd = mkstemp (tmpfilename)) < 0) return NULL; -#if ! defined(DJGPP) && ! defined(MSDOS) && ! defined(_MSC_VER) \ +#if ! defined(__DJGPP__) && ! defined(MSDOS) && ! defined(_MSC_VER) \ && ! defined(_WIN32) && ! defined(__CRTRSXNT__) && ! defined(__EMX__) \ && ! defined(__MINGW32__) && ! defined(__WIN32__) - /* If not MS, unlink after opening. */ + /* If not MS or OS/2, unlink after opening. */ unlink (tmpfilename); free(tmpfilename); tmpfilename = NULL; diff --git a/pc/ChangeLog b/pc/ChangeLog index 8d340b45..8af4752e 100644 --- a/pc/ChangeLog +++ b/pc/ChangeLog @@ -1,3 +1,7 @@ +2012-05-06 Eli Zaretskii <eliz@gnu.org> + + * config.sed: Update DJGPP -> __DJGPP__. + 2012-04-16 Eli Zaretskii <eliz@gnu.org> * Makefile.tst (PGAWK): Redefine as "../gawk.exe -p". diff --git a/pc/config.sed b/pc/config.sed index 96b2c2d7..5e57e82b 100644 --- a/pc/config.sed +++ b/pc/config.sed @@ -29,7 +29,7 @@ s/^#undef GETPGRP_VOID *$/#define GETPGRP_VOID 1/ s/^#undef GETGROUPS_T *$/#define GETGROUPS_T gid_t/ /^#undef GETPGRP_VOID$/c\ -#ifdef DJGPP\ +#ifdef __DJGPP__\ #define GETPGRP_VOID 1\ #endif s/^#undef HAVE_ALARM *$/#define HAVE_ALARM 1/ @@ -100,7 +100,7 @@ s/^#undef HAVE_MEMCPY *$/#define HAVE_MEMCPY 1/ #endif s/^#undef HAVE_MEMSET *$/#define HAVE_MEMSET 1/ /^#undef HAVE_MKSTEMP *$/c\ -#ifdef DJGPP\ +#ifdef __DJGPP__\ #define HAVE_MKSTEMP 1\ #endif s/^#undef HAVE_MKTIME *$/#define HAVE_MKTIME 1/ @@ -160,7 +160,7 @@ s/^#undef HAVE_SYSTEM *$/#define HAVE_SYSTEM 1/ #define HAVE_SYS_STAT_H 1\ #endif /^#undef HAVE_SYS_TIME_H *$/c\ -#if defined(DJGPP) || defined(__MINGW32__)\ +#if defined(__DJGPP__) || defined(__MINGW32__)\ #define HAVE_SYS_TIME_H 1\ #endif s/^#undef HAVE_SYS_TYPES_H *$/#define HAVE_SYS_TYPES_H 1/ @@ -175,19 +175,19 @@ s/^#undef HAVE_SYS_TYPES_H *$/#define HAVE_SYS_TYPES_H 1/ s/^#undef HAVE_TZNAME *$/#define HAVE_TZNAME 1/ s/^#undef HAVE_TZSET *$/#define HAVE_TZSET 1/ /^#undef HAVE_UINTMAX_T *$/c\ -#if defined(DJGPP) || defined(__MINGW32__)\ +#if defined(__DJGPP__) || defined(__MINGW32__)\ #define HAVE_UINTMAX_T 1\ -#ifdef DJGPP\ +#ifdef __DJGPP__\ #define uintmax_t unsigned long long\ #endif\ #endif /^#undef HAVE_UNISTD_H *$/c\ -#if defined(DJGPP) || defined(__MINGW32__)\ +#if defined(__DJGPP__) || defined(__MINGW32__)\ #define HAVE_UNISTD_H 1\ #endif s/^#undef HAVE_UNSIGNED_LONG_LONG *$/#define HAVE_UNSIGNED_LONG_LONG 1/ /^#undef HAVE_USLEEP *$/c\ -#if defined(DJGPP) || defined(__MINGW32__)\ +#if defined(__DJGPP__) || defined(__MINGW32__)\ #define HAVE_USLEEP 1\ #endif s/^#undef HAVE_VPRINTF *$/#define HAVE_VPRINTF 1/ @@ -223,7 +223,7 @@ s/^#undef PROTOTYPES *$/#define PROTOTYPES 1/ s/^#undef RETSIGTYPE *$/#define RETSIGTYPE void/ /^#.*RETSIGTYPE /a\ \ -#if defined(DJGPP) || defined(__MINGW32__)\ +#if defined(__DJGPP__) || defined(__MINGW32__)\ #include <limits.h>\ #endif /^#undef SIZEOF_UNSIGNED_INT *$/c\ @@ -243,15 +243,15 @@ s/^#undef TIME_WITH_SYS_TIME *$/#define TIME_WITH_SYS_TIME 1/ #define inline __inline__\ #endif /^#undef intmax_t *$/c\ -#ifdef DJGPP\ +#ifdef __DJGPP__\ #define intmax_t long long\ #endif /^#undef restrict *$/c\ -#ifdef DJGPP\ +#ifdef __DJGPP__\ #define restrict\ #endif /^#undef uintmax_t *$/c\ -#ifdef DJGPP\ +#ifdef __DJGPP__\ #define uintmax_t unsigned long long\ #endif @@ -265,7 +265,7 @@ $a\ # define DEFPATH ".;c:/lib/awk;c:/gnu/lib/awk"\ #endif\ \ -#ifndef DJGPP\ +#ifndef __DJGPP__\ #define HAVE_POPEN_H 1\ #endif\ \ @@ -1,5 +1,5 @@ # Italian messages for GNU Awk -# Copyright (C) 2002-2011 Free Software Foundation, Inc. +# Copyright (C) 2002-2012 Free Software Foundation, Inc. # Antonio Colombo <azc100@gmail.com>. # msgid "" @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gawk 3.1.81\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" "POT-Creation-Date: 2012-04-27 10:06+0300\n" -"PO-Revision-Date: 2011-03-19 16:52+0100\n" +"PO-Revision-Date: 2012-05-08 16:11+0100\n" "Last-Translator: Antonio Colombo <azc100@gmail.com>\n" "Language-Team: Italian <it@li.org>\n" "Language: it\n" @@ -52,9 +52,8 @@ msgid "attempt to use scalar `%s[\"%.*s\"]' as an array" msgstr "tentativo di usare scalare`%s[\"%.*s\"]' come vettore" #: array.c:784 -#, fuzzy msgid "adump: first argument not an array" -msgstr "adump: l'argomento non è un vettore" +msgstr "adump: il primo argomento non è un vettore" #: array.c:823 msgid "asort: second argument not an array" @@ -73,38 +72,32 @@ msgid "asorti: first argument not an array" msgstr "asorti: il primo argomento non è un vettore" #: array.c:839 -#, fuzzy msgid "asort: cannot use a subarray of first arg for second arg" msgstr "" -"patsplit: non si può usare lo stesso vettore come secondo e quarto argomento" +"asort: non permesso un secondo argomento che sia un sottovettore del primo argomento" #: array.c:840 -#, fuzzy msgid "asorti: cannot use a subarray of first arg for second arg" msgstr "" -"patsplit: non si può usare lo stesso vettore come secondo e quarto argomento" +"asorti: non permesso un secondo argomento che sia un sottovettore del primo argomento" #: array.c:845 -#, fuzzy msgid "asort: cannot use a subarray of second arg for first arg" msgstr "" -"split: non si può usare lo stesso vettore come secondo e quarto argomento" +"asort: non permesso un primo argomento che sia un sottovettore del secondo argomento" #: array.c:846 -#, fuzzy msgid "asorti: cannot use a subarray of second arg for first arg" msgstr "" -"split: non si può usare lo stesso vettore come secondo e quarto argomento" +"asorti: non permesso un primo argomento che sia un sottovettore del secondo argomento" #: array.c:1314 -#, fuzzy, c-format msgid "`%s' is invalid as a function name" -msgstr "estensione: manca nome di funzione" +msgstr "`%s' non è un nome funzione valido" #: array.c:1318 -#, fuzzy, c-format msgid "sort comparison function `%s' is not defined" -msgstr "funzione `%s' non definita" +msgstr "funzione di confronto del sort `%s' non definita" #: awkgram.y:223 #, c-format @@ -422,9 +415,8 @@ msgid "could not open `%s' for writing (%s)" msgstr "non riesco ad aprire `%s' in scrittura (%s)" #: awkgram.y:3962 -#, fuzzy msgid "sending variable list to standard error" -msgstr "mando profilo a 'standard error'" +msgstr "mando lista variabili a 'standard error'" #: awkgram.y:3970 #, c-format @@ -512,7 +504,7 @@ msgstr "exp: argomento non numerico" #: builtin.c:143 #, c-format msgid "exp: argument %g is out of range" -msgstr "exp: argomento %g non accettabile" +msgstr "exp: argomento %g fuori dai limiti ammessi" #: builtin.c:202 #, c-format @@ -566,98 +558,97 @@ msgstr "log: argomento negativo %g" #: builtin.c:740 builtin.c:745 msgid "fatal: must use `count$' on all formats or none" -msgstr "" +msgstr "fatale: `count$' va usato per ogni 'format' o per nessuno"" #: builtin.c:815 #, c-format msgid "field width is ignored for `%%' specifier" -msgstr "" +msgstr "larghezza campo ignorata per la specifica `%%'" #: builtin.c:817 #, c-format msgid "precision is ignored for `%%' specifier" -msgstr "" +msgstr "precisione ignorata per la specifica `%%'" #: builtin.c:819 #, c-format msgid "field width and precision are ignored for `%%' specifier" -msgstr "" +msgstr "larghezza campo e precisone ignorate per la specifica `%%'" #: builtin.c:870 -#, fuzzy msgid "fatal: `$' is not permitted in awk formats" -msgstr "l'operatore `^' non è supportato nel vecchio awk" +msgstr "fatale: operatore `$' non consentito nei 'format' awk" #: builtin.c:879 msgid "fatal: arg count with `$' must be > 0" -msgstr "" +msgstr "fatale: numero argomenti con `$' dev'essere > 0" #: builtin.c:883 #, c-format msgid "fatal: arg count %ld greater than total number of supplied arguments" -msgstr "" +msgstr "fatale: numero argomenti %ld > del numero totale argomenti specificati" #: builtin.c:887 msgid "fatal: `$' not permitted after period in format" -msgstr "" +msgstr "fatale: `$' non permesso dopo il punto in un 'format'" #: builtin.c:903 msgid "fatal: no `$' supplied for positional field width or precision" -msgstr "" +msgstr "fatale: manca `$' per i campi posizionali larghezza o precisione" #: builtin.c:975 msgid "`l' is meaningless in awk formats; ignored" -msgstr "" +msgstr "`l' non ha senso nei 'format' awk; ignorato" #: builtin.c:979 msgid "fatal: `l' is not permitted in POSIX awk formats" -msgstr "" +msgstr "fatale: `l' non permesso nei 'format' POSIX awk" #: builtin.c:992 msgid "`L' is meaningless in awk formats; ignored" -msgstr "" +msgstr "`L' non ha senso nei 'format' awk; ignorato" #: builtin.c:996 msgid "fatal: `L' is not permitted in POSIX awk formats" -msgstr "" +msgstr "`L' non ha senso nei 'format' awk; ignorato" #: builtin.c:1009 msgid "`h' is meaningless in awk formats; ignored" -msgstr "" +msgstr "`h' non ha senso nei 'format' awk; ignorato" #: builtin.c:1013 msgid "fatal: `h' is not permitted in POSIX awk formats" -msgstr "" +msgstr "fatale: `h' non permesso nei 'format' POSIX awk" #: builtin.c:1408 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" -msgstr "" +msgstr "[s]printf: valore %g fuori dai limiti ammessi per il 'format' `%%%c'" #: builtin.c:1506 #, c-format msgid "ignoring unknown format specifier character `%c': no argument converted" -msgstr "" +msgstr "carattere di 'format' sconosciuto `%c' ignorato: nessun argomento convertito" #: builtin.c:1511 msgid "fatal: not enough arguments to satisfy format string" -msgstr "" +msgstr "fatale: argomenti in numero minore di quelli richiesti dalla stringa di 'format'" #: builtin.c:1513 msgid "^ ran out for this one" -msgstr "" +msgstr "^ esauriti a questo punto" #: builtin.c:1520 msgid "[s]printf: format specifier does not have control letter" -msgstr "" +msgstr "[s]printf: specifica di 'format' senza un carattere di controllo" #: builtin.c:1523 msgid "too many arguments supplied for format string" -msgstr "" +msgstr "troppi argomenti specificati per questa stringa di 'format'" #: builtin.c:1598 builtin.c:1609 msgid "printf: no arguments" -msgstr "printf: manca argomento" +msgstr "printf: mancano argomenti" #: builtin.c:1650 msgid "sqrt: received non-numeric argument" @@ -726,7 +717,7 @@ msgstr "strftime: il secondo argomento non è numerico" #: builtin.c:1866 msgid "strftime: second argument less than 0 or too big for time_t" -msgstr "" +msgstr "strftime: secondo argomento < 0 o troppo elevato per time_t" #: builtin.c:1873 msgid "strftime: received non-string first argument" @@ -1020,23 +1011,20 @@ msgid "`extension' is a gawk extension" msgstr "`extension' è un'estensione gawk" #: ext.c:80 -#, fuzzy, c-format msgid "extension: cannot open library `%s' (%s)\n" -msgstr "fatale: estensione: non riesco ad aprire `%s' (%s)\n" +msgstr "estensione: non riesco ad aprire libreria `%s' (%s)\n" #: ext.c:86 -#, fuzzy, c-format msgid "" "extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n" msgstr "" -"fatale: estensione: libreria `%s': non definisce " +"estensione: libreria `%s': non definisce " "`plugin_is_GPL_compatible' (%s)\n" #: ext.c:90 -#, fuzzy, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "" -"fatale: estensione: libreria `%s': non riesco a chiamare funzione `%s' (%s)\n" +"estensione: libreria `%s': non riesco a chiamare funzione `%s' (%s)\n" #: ext.c:118 msgid "extension: missing function name" @@ -1099,7 +1087,7 @@ msgstr "Operazione Non Supportata" #: ext.c:256 msgid "dynamic loading of library not supported" -msgstr "" +msgstr "caricamento dinamico di libreria non supportato" #: field.c:339 msgid "NF set to negative value" @@ -1118,22 +1106,19 @@ msgid "split: second argument is not an array" msgstr "split: il secondo argomento non è un vettore" #: field.c:984 -#, fuzzy msgid "split: cannot use the same array for second and fourth args" msgstr "" -"split: non si può usare lo stesso vettore come secondo e quarto argomento" +"split: non si può usare un unico vettore come secondo e quarto argomento" #: field.c:989 -#, fuzzy msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" -"split: non si può usare lo stesso vettore come secondo e quarto argomento" +"split: non permesso un quarto argomento che sia un sottovettore del secondo argomento" #: field.c:992 -#, fuzzy msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" -"split: non si può usare lo stesso vettore come secondo e quarto argomento" +"split: non permesso un secondo argomento che sia un sottovettore del quarto argomento" #: field.c:1021 msgid "split: null string for third arg is a gawk extension" @@ -1152,22 +1137,19 @@ msgid "patsplit: third argument must be non-null" msgstr "patsplit: il terzo argomento non può essere nullo" #: field.c:1076 -#, fuzzy msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" -"patsplit: non si può usare lo stesso vettore come secondo e quarto argomento" +"patsplit: non si può usare un unico vettore come secondo e quarto argomento" #: field.c:1081 -#, fuzzy msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" -"patsplit: non si può usare lo stesso vettore come secondo e quarto argomento" +"patsplit: non permesso un quarto argomento che sia un sottovettore del secondo argomento" #: field.c:1084 -#, fuzzy msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" -"patsplit: non si può usare lo stesso vettore come secondo e quarto argomento" +"patsplit: non permesso un secondo argomento che sia un sottovettore del quarto argomento" #: field.c:1122 msgid "`FIELDWIDTHS' is a gawk extension" @@ -1191,9 +1173,8 @@ msgid "`FPAT' is a gawk extension" msgstr "`FPAT' è un'estensione gawk" #: getopt.c:604 getopt.c:633 -#, fuzzy, c-format msgid "%s: option '%s' is ambiguous; possibilities:" -msgstr "%s: opzione '%s' ambigua\n" +msgstr "%s: opzione '%s' ambigua; possibilità:" #: getopt.c:679 getopt.c:683 #, c-format @@ -1630,14 +1611,12 @@ msgid "\t-C\t\t\t--copyright\n" msgstr "\t-C\t\t\t--copyright\n" #: main.c:778 -#, fuzzy msgid "\t-d[file]\t\t--dump-variables[=file]\n" -msgstr "\t-d [file]\t\t--dump-variables[=file]\n" +msgstr "\t-d[file]\t\t--dump-variables[=file]\n" #: main.c:779 -#, fuzzy msgid "\t-D[file]\t\t--debug[=file]\n" -msgstr "\t-p [file]\t\t--profile[=file]\n" +msgstr "\t-D[file]\t\t--debug[=file]\n" #: main.c:780 msgid "\t-e 'program-text'\t--source='program-text'\n" @@ -1657,7 +1636,7 @@ msgstr "\t-h\t\t\t--help\n" #: main.c:784 msgid "\t-l library\t\t--load=library\n" -msgstr "" +msgstr "\t-l libreria\t\t--load=libreria\n" #: main.c:785 msgid "\t-L [fatal]\t\t--lint[=fatal]\n" @@ -1668,27 +1647,24 @@ msgid "\t-n\t\t\t--non-decimal-data\n" msgstr "\t-n\t\t\t--non-decimal-data\n" #: main.c:787 -#, fuzzy msgid "\t-M\t\t\t--bignum\n" -msgstr "\t-g\t\t\t--gen-pot\n" +msgstr "\t-M\t\t\t--bignum\n" #: main.c:788 msgid "\t-N\t\t\t--use-lc-numeric\n" msgstr "\t-N\t\t\t--use-lc-numeric\n" #: main.c:789 -#, fuzzy msgid "\t-o[file]\t\t--pretty-print[=file]\n" -msgstr "\t-p [file]\t\t--profile[=file]\n" +msgstr "\t-o[file]\t\t--pretty-print[=file]\n" #: main.c:790 msgid "\t-O\t\t\t--optimize\n" msgstr "\t-O\t\t\t--optimize\n" #: main.c:791 -#, fuzzy msgid "\t-p[file]\t\t--profile[=file]\n" -msgstr "\t-p [file]\t\t--profile[=file]\n" +msgstr "\t-p[file]\t\t--profile[=file]\n" #: main.c:792 msgid "\t-P\t\t\t--posix\n" @@ -1733,6 +1709,7 @@ msgstr "" "\n" "Per segnalare problemi, vedi nodo `Bugs' in `gawk.info', oppure la\n" "sezione `Reporting Problems and Bugs' nella versione a stampa.\n" +"Problemi di traduzione, segnalare ad: azc100@gmail.com.\n" "\n" #: main.c:814 @@ -1826,15 +1803,13 @@ msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s' non è un nome di variabile, cerco il file `%s=%s'" #: main.c:1247 -#, fuzzy, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "" -"estensione: nome funzione interna gawk `%s' non ammesso come nome funzione" +"nome funzione interna gawk `%s' non ammesso come nome variabile" #: main.c:1252 -#, fuzzy, c-format msgid "cannot use function `%s' as variable name" -msgstr "non posso usare nome di funzione `%s' come variabile o vettore" +msgstr "non posso usare nome di funzione `%s' come nome di variabile" #: main.c:1305 msgid "floating point exception" @@ -1954,9 +1929,8 @@ msgid "internal error: %s with null vname" msgstr "errore interno: %s con 'vname' nullo" #: profile.c:528 -#, fuzzy msgid "internal error: builtin with null fname" -msgstr "errore interno: %s con 'vname' nullo" +msgstr "errore interno: funzione interna con 'fname' nullo" #: profile.c:943 #, c-format @@ -1970,7 +1944,7 @@ msgid "" "\t# Functions, listed alphabetically\n" msgstr "" "\n" -"\t# Funzioni, listate in ordine alfabetico\n" +"\t# Funzioni, in ordine alfabetico\n" #: profile.c:1366 #, c-format @@ -1978,9 +1952,8 @@ msgid "redir2str: unknown redirection type %d" msgstr "redir2str: tipo di re-direzione non noto %d" #: re.c:571 -#, fuzzy, c-format msgid "range of the form `[%c-%c]' is locale dependent" -msgstr "intervallo nella forma `[%c-%c]' dipende da 'locale'" +msgstr "intervallo della forma `[%c-%c]' dipende da 'locale'" #: re.c:598 #, c-format @@ -2060,94 +2033,3 @@ msgstr ") o \\) non aperta" msgid "No previous regular expression" msgstr "Nessuna espressione regolare precedente" -#~ msgid "attempt to use function `%s' as an array" -#~ msgstr "tentativo di usare funzione '%s' come vettore" - -#~ msgid "reference to uninitialized element `%s[\"%.*s\"]'" -#~ msgstr "riferimento a elemento non inizializzato `%s[\"%.*s\"]'" - -#~ msgid "subscript of array `%s' is null string" -#~ msgstr "l'indice del vettore '%s' è una stringa nulla" - -#~ msgid "%s: empty (null)\n" -#~ msgstr "%s: vuoto (nullo)\n" - -#~ msgid "%s: empty (zero)\n" -#~ msgstr "%s: vuoto (zero)\n" - -#~ msgid "%s: table_size = %d, array_size = %d\n" -#~ msgstr "%s: dimensione_tabella = %d, dimensione_vettore = %d\n" - -#~ msgid "%s: is parameter\n" -#~ msgstr "%s: è parametro\n" - -#~ msgid "%s: array_ref to %s\n" -#~ msgstr "%s: riferimento_vettoriale a %s\n" - -#~ msgid "use of non-array as array" -#~ msgstr "uso di non-vettore come vettore" - -#~ msgid "can't use function name `%s' as variable or array" -#~ msgstr "non posso usare nome di funzione `%s' come variabile o vettore" - -#, fuzzy -#~ msgid "attempt to use array `%s[\"%.*s\"]' in a scalar context" -#~ msgstr "tentativo di usare vettore `%s' in un contesto scalare" - -#~ msgid "assignment used in conditional context" -#~ msgstr "assegnamento usato nel contesto di un test condizionale" - -#~ msgid "statement has no effect" -#~ msgstr "istruzione che non fa nulla" - -#~ msgid "" -#~ "for loop: array `%s' changed size from %ld to %ld during loop execution" -#~ msgstr "" -#~ "ciclo for: vettore `%s' ha cambiato dimensione da %ld a %ld durante " -#~ "l'esecuzione del ciclo" - -#~ msgid "function called indirectly through `%s' does not exist" -#~ msgstr "la funzione chiamata indirettamente tramite `%s' non esiste" - -#~ msgid "function `%s' not defined" -#~ msgstr "funzione `%s' non definita" - -#~ msgid "non-redirected `getline' invalid inside `%s' rule" -#~ msgstr "`getline' non-diretta indefinita dentro regola '%s'" - -#~ msgid "error reading input file `%s': %s" -#~ msgstr "errore leggendo file di input `%s': %s" - -#~ msgid "`nextfile' cannot be called from a `%s' rule" -#~ msgstr "`nextfile' non può essere chiamato da una regola `%s'" - -#, fuzzy -#~ msgid "`exit' cannot be called in the current context" -#~ msgstr "`next' non può essere chiamato da una regola `%s'" - -#~ msgid "`next' cannot be called from a `%s' rule" -#~ msgstr "`next' non può essere chiamato da una regola `%s'" - -#~ msgid "Sorry, don't know how to interpret `%s'" -#~ msgstr "Spiacente, non so come interpretare `%s'" - -#~ msgid "\t-R file\t\t\t--command=file\n" -#~ msgstr "\t-R file\t\t\t--command=file\n" - -#~ msgid "could not find groups: %s" -#~ msgstr "non riesco a trovare gruppi: %s" - -#~ msgid "assignment is not allowed to result of builtin function" -#~ msgstr "assegnamento non permesso al risultato di una funzione interna" - -#~ msgid "attempt to use array in a scalar context" -#~ msgstr "tentativo di usare vettore in un contesto scalare" - -#~ msgid "sorted array traversal is a gawk extension" -#~ msgstr "`sorted array traversal' è un'estensione gawk" - -#~ msgid "`PROCINFO[\"sorted_in\"]' value is not recognized" -#~ msgstr "`PROCINFO[\"sorted_in\"]' valore non riconosciuto" - -#~ msgid "out of memory" -#~ msgstr "memoria esaurita" @@ -64,10 +64,8 @@ #include "regex_internal.h" #include "regex_internal.c" -#ifdef GAWK -#define bool int -#define true (1) -#define false (0) +#ifndef HAVE_STDBOOL_H +#include "missing_d/gawkbool.h" #endif #include "regcomp.c" #include "regexec.c" @@ -27,8 +27,7 @@ * Do all necessary includes here, so that we don't have to worry about * overlapping includes in the files in missing.d. */ -#include "config.h" -#include "awk.h" +#include "awk.h" /* includes config.h for us */ #ifndef HAVE_SYSTEM diff --git a/test/ChangeLog b/test/ChangeLog index 4a2c7b2b..e926adf1 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2012-05-09 Arnold D. Robbins <arnold@skeeve.com> + + * Makefile.am (jarebug): New test. + * jarebug.awk, jarebug.in, jarebug.ok: New files. + 2012-04-01 John Haque <j.eh@mchsi.com> * Makefile.am (mpfr-test): Add target for manual testing of MPFR diff --git a/test/Makefile.am b/test/Makefile.am index 54d48397..4b0bf819 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -376,6 +376,9 @@ EXTRA_DIST = \ intprec.ok \ iobug1.awk \ iobug1.ok \ + jarebug.awk \ + jarebug.in \ + jarebug.ok \ lc_num1.awk \ lc_num1.ok \ leaddig.awk \ @@ -806,6 +809,7 @@ BASIC_TESTS = \ getline getline2 getline3 getline4 getlnbuf getnr2tb getnr2tm \ gsubasgn gsubtest gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 \ gsubtst7 gsubtst8 \ + jarebug \ hex hsprint \ inputred intest intprec iobug1 \ leaddig leadnl litoct longsub longwrds \ @@ -1502,6 +1506,12 @@ mpfrbigint: @$(AWK) -M -f $(srcdir)/$@.awk > _$@ 2>&1 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +jarebug:: + @echo $@ + @GAWKLOCALE=ja_JP.EUC-JP ; export GAWKLOCALE ; \ + $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + # Targets generated for other tests: include Maketests diff --git a/test/Makefile.in b/test/Makefile.in index 50dff8b2..8a290cb4 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -582,6 +582,9 @@ EXTRA_DIST = \ intprec.ok \ iobug1.awk \ iobug1.ok \ + jarebug.awk \ + jarebug.in \ + jarebug.ok \ lc_num1.awk \ lc_num1.ok \ leaddig.awk \ @@ -1012,6 +1015,7 @@ BASIC_TESTS = \ getline getline2 getline3 getline4 getlnbuf getnr2tb getnr2tm \ gsubasgn gsubtest gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 \ gsubtst7 gsubtst8 \ + jarebug \ hex hsprint \ inputred intest intprec iobug1 \ leaddig leadnl litoct longsub longwrds \ @@ -1879,6 +1883,12 @@ mpfrbigint: @echo $@ @$(AWK) -M -f $(srcdir)/$@.awk > _$@ 2>&1 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +jarebug:: + @echo $@ + @GAWKLOCALE=ja_JP.EUC-JP ; export GAWKLOCALE ; \ + $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ Gt-dummy: # file Maketests, generated from Makefile.am by the Gentests program addcomma: @@ -2957,7 +2967,7 @@ printfbad1: @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ printfbad3: - @echo printfbad3 + @echo $@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ diff --git a/test/Maketests b/test/Maketests index 96825721..f179ab73 100644 --- a/test/Maketests +++ b/test/Maketests @@ -1076,7 +1076,7 @@ printfbad1: @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ printfbad3: - @echo printfbad3 + @echo $@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ diff --git a/test/jarebug.awk b/test/jarebug.awk new file mode 100644 index 00000000..906d1846 --- /dev/null +++ b/test/jarebug.awk @@ -0,0 +1 @@ +/.*/ { gsub ("·½", "ERROR"); print; } diff --git a/test/jarebug.in b/test/jarebug.in new file mode 100644 index 00000000..6ce66826 --- /dev/null +++ b/test/jarebug.in @@ -0,0 +1,4 @@ +aa·ïa¿·½è +aaa·ïa¿·½è +aaaa·ïa¿·½è +aaaaa·ïa¿·½è diff --git a/test/jarebug.ok b/test/jarebug.ok new file mode 100644 index 00000000..6ce66826 --- /dev/null +++ b/test/jarebug.ok @@ -0,0 +1,4 @@ +aa·ïa¿·½è +aaa·ïa¿·½è +aaaa·ïa¿·½è +aaaaa·ïa¿·½è @@ -169,6 +169,16 @@ xalloc_die (void) r_fatal(_("xalloc: malloc failed: %s"), strerror(errno)); } + +/* Clone an object P of size S, with error checking. There's no need + for xnmemdup (P, N, S), since xmemdup (P, N * S) works without any + need for an arithmetic overflow check. */ + +void * +xmemdup (void const *p, size_t s) +{ + return memcpy (xmalloc (s), p, s); +} #endif /* Change the size of an allocated block of memory P to an array of N |