diff options
-rw-r--r-- | ChangeLog | 28 | ||||
-rw-r--r-- | ChangeLog.0 | 2 | ||||
-rw-r--r-- | NEWS | 10 | ||||
-rw-r--r-- | awk.h | 12 | ||||
-rw-r--r-- | awkgram.c | 31 | ||||
-rw-r--r-- | awkgram.y | 31 | ||||
-rw-r--r-- | configh.in | 12 | ||||
-rwxr-xr-x | configure | 34 | ||||
-rw-r--r-- | configure.ac | 20 | ||||
-rw-r--r-- | custom.h | 5 | ||||
-rw-r--r-- | doc/ChangeLog | 7 | ||||
-rw-r--r-- | doc/gawk.info | 114 | ||||
-rw-r--r-- | doc/gawk.texi | 6 | ||||
-rw-r--r-- | doc/gawktexi.in | 6 | ||||
-rw-r--r-- | doc/it/ChangeLog | 4 | ||||
-rw-r--r-- | doc/it/gawktexi.in | 81 | ||||
-rw-r--r-- | missing_d/ChangeLog | 4 | ||||
-rw-r--r-- | missing_d/gawkbool.h | 40 | ||||
-rw-r--r-- | support/ChangeLog | 2 | ||||
-rw-r--r-- | support/dfa.h | 4 | ||||
-rw-r--r-- | support/regex.c | 3 |
21 files changed, 198 insertions, 258 deletions
@@ -69,6 +69,25 @@ * field.c (do_split): Simplify the lint warnings. Based on suggested code by Eric Pruitt <eric.pruitt@gmail.com>. + Unrelated: + + * awkgram.y (check_funcs): Remove the REALLYMEAN ifdef and + simplify the lint checking code for function defined but not + called or called but not defined. + +2017-10-13 Arnold D. Robbins <arnold@skeeve.com> + + Assume a more C99 environment: + + * awk.h: Assume we have limits.h, stdarg.h and stdbool.h. + * configure.ac: Remove checks for limits.h and stdarg.h. + +2017-10-10 Arnold D. Robbins <arnold@skeeve.com> + + * configure.ac: Remove --with-whiny-user-strftime option. + * NEWS: Updated. + * ChangeLog.0: Fix a typo. :-) + 2017-10-08 Arnold D. Robbins <arnold@skeeve.com> * command.y: Fix the FSF's address. @@ -88,6 +107,14 @@ 2017-10-02 Arnold D. Robbins <arnold@skeeve.com> + Undo change of 2014-09-07: + + * configure.ac: Remove the undocumented option to enable locale + letters in identifiers. + * awkgram.y (is_alpha): Remove related code. + +2017-10-02 Arnold D. Robbins <arnold@skeeve.com> + * config.guess, config.sub: Updated. 2017-09-28 Arnold D. Robbins <arnold@skeeve.com> @@ -3776,6 +3803,7 @@ * configure.ac: Add an option to enable locale letters in identifiers. Undocumented and subject to being rescinded at any time in the future. + * awkgram.y (is_alpha): Actual code is here. * NEWS: Mention to look at configure --help. Unrelated: diff --git a/ChangeLog.0 b/ChangeLog.0 index af6bd99f..595442d4 100644 --- a/ChangeLog.0 +++ b/ChangeLog.0 @@ -7020,7 +7020,7 @@ Tue Dec 4 17:54:30 2001 Arnold D. Robbins <arnold@skeeve.com> * configure.in (AC_ARG_WITH): Add appropriate code for autoconf. * accondig.h (USE_INCLUDED_STRFTIME): Add #undef for it. - * custom.h (USE_INCLUDED_STRFTIME): Set things up write. + * custom.h (USE_INCLUDED_STRFTIME): Set things up right. Tue Dec 4 16:44:07 2001 Andreas Buening <andreas.buening@nexgo.de> @@ -5,6 +5,16 @@ are permitted in any medium without royalty provided the copyright notice and this notice are preserved. +Changes from 4.2.x to 5.0.0 +--------------------------- + +1. The undocumented configure option and code that enabled the use of + non-English "letters" in identifiers is now gone. + +2. The `--with-whiny-user-strftime' configuration option is now gone. + +3. The code now makes some stronger assumptions about a C99 environment. + Changes from 4.2.0 to 4.2.1 --------------------------- @@ -53,9 +53,7 @@ #include <stdio.h> #include <assert.h> -#ifdef HAVE_LIMITS_H #include <limits.h> -#endif /* HAVE_LIMITS_H */ #include <ctype.h> #include <setjmp.h> @@ -73,11 +71,8 @@ #error "gawk no longer supports non-C89 environments (no __STDC__ or __STDC__ < 1)" #endif -#if defined(HAVE_STDARG_H) #include <stdarg.h> -#else -#error "gawk no longer supports <varargs.h>. Please update your compiler and runtime" -#endif +#include <stdbool.h> #include <signal.h> #include <time.h> #include <errno.h> @@ -89,11 +84,6 @@ extern int errno; #include <stdlib.h> #endif /* not STDC_HEADERS */ -#ifdef HAVE_STDBOOL_H -#include <stdbool.h> -#else -#include "missing_d/gawkbool.h" -#endif /* We can handle multibyte strings. */ #include <wchar.h> @@ -7358,22 +7358,19 @@ check_funcs() for (i = 0; i < HASHSIZE; i++) { for (fp = ftable[i]; fp != NULL; fp = fp->next) { -#ifdef REALLYMEAN - /* making this the default breaks old code. sigh. */ - if (fp->defined == 0 && ! fp->extension) { - error( - _("function `%s' called but never defined"), fp->name); - errcount++; - } -#else - if (do_lint && fp->defined == 0 && ! fp->extension) - lintwarn( - _("function `%s' called but never defined"), fp->name); -#endif + if (do_lint && ! fp->extension) { + /* + * Making this not a lint check and + * incrementing * errcount breaks old code. + * Sigh. + */ + if (fp->defined == 0) + lintwarn(_("function `%s' called but never defined"), + fp->name); - if (do_lint && fp->used == 0 && ! fp->extension) { - lintwarn(_("function `%s' defined but never called directly"), - fp->name); + if (fp->used == 0) + lintwarn(_("function `%s' defined but never called directly"), + fp->name); } } } @@ -8703,9 +8700,6 @@ install_builtins(void) bool is_alpha(int c) { -#ifdef I_DONT_KNOW_WHAT_IM_DOING - return isalpha(c); -#else /* ! I_DONT_KNOW_WHAT_IM_DOING */ switch (c) { case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': @@ -8720,7 +8714,6 @@ is_alpha(int c) return true; } return false; -#endif /* ! I_DONT_KNOW_WHAT_IM_DOING */ } /* is_alnum --- return true for alphanumeric, English only letters */ @@ -4938,22 +4938,19 @@ check_funcs() for (i = 0; i < HASHSIZE; i++) { for (fp = ftable[i]; fp != NULL; fp = fp->next) { -#ifdef REALLYMEAN - /* making this the default breaks old code. sigh. */ - if (fp->defined == 0 && ! fp->extension) { - error( - _("function `%s' called but never defined"), fp->name); - errcount++; - } -#else - if (do_lint && fp->defined == 0 && ! fp->extension) - lintwarn( - _("function `%s' called but never defined"), fp->name); -#endif + if (do_lint && ! fp->extension) { + /* + * Making this not a lint check and + * incrementing * errcount breaks old code. + * Sigh. + */ + if (fp->defined == 0) + lintwarn(_("function `%s' called but never defined"), + fp->name); - if (do_lint && fp->used == 0 && ! fp->extension) { - lintwarn(_("function `%s' defined but never called directly"), - fp->name); + if (fp->used == 0) + lintwarn(_("function `%s' defined but never called directly"), + fp->name); } } } @@ -6283,9 +6280,6 @@ install_builtins(void) bool is_alpha(int c) { -#ifdef I_DONT_KNOW_WHAT_IM_DOING - return isalpha(c); -#else /* ! I_DONT_KNOW_WHAT_IM_DOING */ switch (c) { case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': @@ -6300,7 +6294,6 @@ is_alpha(int c) return true; } return false; -#endif /* ! I_DONT_KNOW_WHAT_IM_DOING */ } /* is_alnum --- return true for alphanumeric, English only letters */ @@ -108,9 +108,6 @@ /* Define if you have the libsigsegv library. */ #undef HAVE_LIBSIGSEGV -/* Define to 1 if you have the <limits.h> header file. */ -#undef HAVE_LIMITS_H - /* Define to 1 if you have the <locale.h> header file. */ #undef HAVE_LOCALE_H @@ -186,9 +183,6 @@ /* we have sockets on this system */ #undef HAVE_SOCKETS -/* 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 @@ -341,9 +335,6 @@ /* Define to 1 if you have the `__etoa_l' function. */ #undef HAVE___ETOA_L -/* enable severe portability problems */ -#undef I_DONT_KNOW_WHAT_IM_DOING - /* disable lint checks */ #undef NO_LINT @@ -395,9 +386,6 @@ /* Define to 1 if the character set is EBCDIC */ #undef USE_EBCDIC -/* force use of our version of strftime */ -#undef USE_INCLUDED_STRFTIME - /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE @@ -763,9 +763,7 @@ ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules -with_whiny_user_strftime enable_lint -enable_severe_portability_problems enable_builtin_intdiv0 enable_mpfr enable_dependency_tracking @@ -1412,8 +1410,6 @@ Optional Features: --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --disable-lint do not compile in gawk lint checking - --enable-severe-portability-problems - allow really nasty portability problems --enable-builtin-intdiv0 enable built-in intdiv0 function --disable-mpfr do not check for MPFR @@ -1429,9 +1425,6 @@ Optional Features: Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-whiny-user-strftime - force use of included version of strftime for - deficient systems --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir @@ -3214,18 +3207,6 @@ fi - -# Check whether --with-whiny-user-strftime was given. -if test "${with_whiny_user_strftime+set}" = set; then : - withval=$with_whiny_user_strftime; if test "$withval" = yes - then - -$as_echo "#define USE_INCLUDED_STRFTIME 1" >>confdefs.h - - fi - -fi - # Check whether --enable-lint was given. if test "${enable_lint+set}" = set; then : enableval=$enable_lint; if test "$enableval" = no @@ -3237,17 +3218,6 @@ $as_echo "#define NO_LINT 1" >>confdefs.h fi -# Check whether --enable-severe-portability-problems was given. -if test "${enable_severe_portability_problems+set}" = set; then : - enableval=$enable_severe_portability_problems; if test "$enableval" = yes - then - -$as_echo "#define I_DONT_KNOW_WHAT_IM_DOING 1" >>confdefs.h - - fi - -fi - # Check whether --enable-builtin-intdiv0 was given. if test "${enable_builtin_intdiv0+set}" = set; then : enableval=$enable_builtin_intdiv0; if test "$enableval" = yes @@ -8029,8 +7999,8 @@ $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi -for ac_header in arpa/inet.h fcntl.h limits.h locale.h libintl.h mcheck.h \ - netdb.h netinet/in.h stdarg.h stddef.h string.h \ +for ac_header in arpa/inet.h fcntl.h locale.h libintl.h mcheck.h \ + netdb.h netinet/in.h stddef.h string.h \ sys/ioctl.h sys/param.h sys/select.h sys/socket.h sys/time.h unistd.h \ termios.h stropts.h wchar.h wctype.h do : diff --git a/configure.ac b/configure.ac index abd977c7..8503c421 100644 --- a/configure.ac +++ b/configure.ac @@ -44,15 +44,6 @@ AM_INIT_AUTOMAKE([1.15 dist-xz dist-lzip]) AC_CONFIG_MACRO_DIR([m4]) -dnl Additional argument stuff -AC_ARG_WITH(whiny-user-strftime, - [AS_HELP_STRING([--with-whiny-user-strftime], [force use of included version of strftime for deficient systems])], - if test "$withval" = yes - then - AC_DEFINE(USE_INCLUDED_STRFTIME, 1, - [force use of our version of strftime]) - fi -) AC_ARG_ENABLE([lint], [AS_HELP_STRING([--disable-lint],[do not compile in gawk lint checking])], if test "$enableval" = no @@ -60,13 +51,6 @@ AC_ARG_ENABLE([lint], AC_DEFINE(NO_LINT, 1, [disable lint checks]) fi ) -AC_ARG_ENABLE([severe-portability-problems], - [AS_HELP_STRING([--enable-severe-portability-problems],[allow really nasty portability problems])], - if test "$enableval" = yes - then - AC_DEFINE(I_DONT_KNOW_WHAT_IM_DOING, 1, [enable severe portability problems]) - fi -) AC_ARG_ENABLE([builtin-intdiv0], [AS_HELP_STRING([--enable-builtin-intdiv0],[enable built-in intdiv0 function])], if test "$enableval" = yes @@ -158,8 +142,8 @@ AM_LANGINFO_CODESET gt_LC_MESSAGES dnl checks for header files -AC_CHECK_HEADERS(arpa/inet.h fcntl.h limits.h locale.h libintl.h mcheck.h \ - netdb.h netinet/in.h stdarg.h stddef.h string.h \ +AC_CHECK_HEADERS(arpa/inet.h fcntl.h locale.h libintl.h mcheck.h \ + netdb.h netinet/in.h stddef.h string.h \ sys/ioctl.h sys/param.h sys/select.h sys/socket.h sys/time.h unistd.h \ termios.h stropts.h wchar.h wctype.h) AC_HEADER_STDC @@ -48,11 +48,6 @@ #define HAVE_MKTIME 1 #endif -/* For whiny users */ -#ifdef USE_INCLUDED_STRFTIME -#undef HAVE_STRFTIME -#endif - /* For HP/UX with gcc */ #if defined(hpux) || defined(_HPUX_SOURCE) #undef HAVE_TZSET diff --git a/doc/ChangeLog b/doc/ChangeLog index d73f9392..02cc0dd4 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -70,7 +70,12 @@ function to be syntactically and semantically correct. Thanks to Jaromir Obr <jaromir.obr@gmail.com> for the report. (POSIX String Comparison): Add some URL references in @ignore. - + + Unrelated: + + * gawktexi.in: Remove description of --with-whiny-user-strftime + configuration option. + 2017-10-08 Andrew J. Schorr <aschorr@telemetry-investments.com> * gawktexi.in: Fix discussion of AWKPATH in section on @include. diff --git a/doc/gawk.info b/doc/gawk.info index e93b4d37..a60904e7 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -28971,10 +28971,6 @@ command line when compiling 'gawk' from scratch, including: desirable, but it may bring you some slight performance improvement. -'--with-whiny-user-strftime' - Force use of the included version of the C 'strftime()' function - for deficient systems. - Use the command './configure --help' to see the full list of options supplied by 'configure'. @@ -32913,8 +32909,6 @@ Index * --traditional option, --posix option and: Options. (line 286) * --use-lc-numeric option: Options. (line 232) * --version option: Options. (line 318) -* --with-whiny-user-strftime configuration option: Additional Configuration Options. - (line 42) * -b option: Options. (line 69) * -c option: Options. (line 82) * -C option: Options. (line 89) @@ -33619,8 +33613,6 @@ Index (line 32) * configuration option, --disable-nls: Additional Configuration Options. (line 37) -* configuration option, --with-whiny-user-strftime: Additional Configuration Options. - (line 42) * configuration options, gawk: Additional Configuration Options. (line 6) * constant regexps: Regexp Usage. (line 57) @@ -36459,58 +36451,58 @@ Node: Unix Installation1163323 Node: Quick Installation1164005 Node: Shell Startup Files1166419 Node: Additional Configuration Options1167508 -Node: Configuration Philosophy1169497 -Node: Non-Unix Installation1171866 -Node: PC Installation1172326 -Node: PC Binary Installation1173164 -Node: PC Compiling1173599 -Node: PC Using1174716 -Node: Cygwin1177761 -Node: MSYS1178531 -Node: VMS Installation1179032 -Node: VMS Compilation1179823 -Ref: VMS Compilation-Footnote-11181052 -Node: VMS Dynamic Extensions1181110 -Node: VMS Installation Details1182795 -Node: VMS Running1185048 -Node: VMS GNV1189327 -Node: VMS Old Gawk1190062 -Node: Bugs1190533 -Node: Bug address1191196 -Node: Usenet1193988 -Node: Maintainers1194765 -Node: Other Versions1196026 -Node: Installation summary1202788 -Node: Notes1203990 -Node: Compatibility Mode1204855 -Node: Additions1205637 -Node: Accessing The Source1206562 -Node: Adding Code1207999 -Node: New Ports1214218 -Node: Derived Files1218706 -Ref: Derived Files-Footnote-11224352 -Ref: Derived Files-Footnote-21224387 -Ref: Derived Files-Footnote-31224985 -Node: Future Extensions1225099 -Node: Implementation Limitations1225757 -Node: Extension Design1226940 -Node: Old Extension Problems1228094 -Ref: Old Extension Problems-Footnote-11229612 -Node: Extension New Mechanism Goals1229669 -Ref: Extension New Mechanism Goals-Footnote-11233033 -Node: Extension Other Design Decisions1233222 -Node: Extension Future Growth1235335 -Node: Old Extension Mechanism1236171 -Node: Notes summary1237934 -Node: Basic Concepts1239116 -Node: Basic High Level1239797 -Ref: figure-general-flow1240079 -Ref: figure-process-flow1240764 -Ref: Basic High Level-Footnote-11244065 -Node: Basic Data Typing1244250 -Node: Glossary1247578 -Node: Copying1279416 -Node: GNU Free Documentation License1316955 -Node: Index1342073 +Node: Configuration Philosophy1169369 +Node: Non-Unix Installation1171738 +Node: PC Installation1172198 +Node: PC Binary Installation1173036 +Node: PC Compiling1173471 +Node: PC Using1174588 +Node: Cygwin1177633 +Node: MSYS1178403 +Node: VMS Installation1178904 +Node: VMS Compilation1179695 +Ref: VMS Compilation-Footnote-11180924 +Node: VMS Dynamic Extensions1180982 +Node: VMS Installation Details1182667 +Node: VMS Running1184920 +Node: VMS GNV1189199 +Node: VMS Old Gawk1189934 +Node: Bugs1190405 +Node: Bug address1191068 +Node: Usenet1193860 +Node: Maintainers1194637 +Node: Other Versions1195898 +Node: Installation summary1202660 +Node: Notes1203862 +Node: Compatibility Mode1204727 +Node: Additions1205509 +Node: Accessing The Source1206434 +Node: Adding Code1207871 +Node: New Ports1214090 +Node: Derived Files1218578 +Ref: Derived Files-Footnote-11224224 +Ref: Derived Files-Footnote-21224259 +Ref: Derived Files-Footnote-31224857 +Node: Future Extensions1224971 +Node: Implementation Limitations1225629 +Node: Extension Design1226812 +Node: Old Extension Problems1227966 +Ref: Old Extension Problems-Footnote-11229484 +Node: Extension New Mechanism Goals1229541 +Ref: Extension New Mechanism Goals-Footnote-11232905 +Node: Extension Other Design Decisions1233094 +Node: Extension Future Growth1235207 +Node: Old Extension Mechanism1236043 +Node: Notes summary1237806 +Node: Basic Concepts1238988 +Node: Basic High Level1239669 +Ref: figure-general-flow1239951 +Ref: figure-process-flow1240636 +Ref: Basic High Level-Footnote-11243937 +Node: Basic Data Typing1244122 +Node: Glossary1247450 +Node: Copying1279288 +Node: GNU Free Documentation License1316827 +Node: Index1341945 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 781f157e..dec51695 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -39551,12 +39551,6 @@ MPFR support is not available. Disable all message-translation facilities. This is usually not desirable, but it may bring you some slight performance improvement. - -@cindex @option{--with-whiny-user-strftime} configuration option -@cindex configuration option, @code{--with-whiny-user-strftime} -@item --with-whiny-user-strftime -Force use of the included version of the C @code{strftime()} -function for deficient systems. @end table Use the command @samp{./configure --help} to see the full list of diff --git a/doc/gawktexi.in b/doc/gawktexi.in index 7596bd95..654fa3eb 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -38564,12 +38564,6 @@ MPFR support is not available. Disable all message-translation facilities. This is usually not desirable, but it may bring you some slight performance improvement. - -@cindex @option{--with-whiny-user-strftime} configuration option -@cindex configuration option, @code{--with-whiny-user-strftime} -@item --with-whiny-user-strftime -Force use of the included version of the C @code{strftime()} -function for deficient systems. @end table Use the command @samp{./configure --help} to see the full list of diff --git a/doc/it/ChangeLog b/doc/it/ChangeLog index d38f9860..7cfe6a07 100644 --- a/doc/it/ChangeLog +++ b/doc/it/ChangeLog @@ -2,6 +2,10 @@ * gawk.1: New file. (Italian translation of the man page.) +2017-12-05 Antonio Giovanni Colombo <azc100@gmail.com> + + * gawktexi.in: Italian translation updated. + 2017-10-19 Arnold D. Robbins <arnold@skeeve.com> * 4.2.0: Release tar ball made. diff --git a/doc/it/gawktexi.in b/doc/it/gawktexi.in index aa99d614..c3cd68f3 100644 --- a/doc/it/gawktexi.in +++ b/doc/it/gawktexi.in @@ -14916,8 +14916,8 @@ awk ' @end example @noindent -Questo programma stampa i primi tre campi di ogni record in input, mettendo -un campo su ogni riga. +Questo programma stampa i primi tre campi di ogni record in input, +mettendo un unico campo in una riga in output. Non @`e possibile impostare pi@`u di una variabile nella parte di @@ -33385,14 +33385,15 @@ La corrispondenza tra @code{ROUNDMODE} e le modalit@`a di arrotondamento IEEE @item Arrotonda verso infinito @tab @code{roundTowardPositive} @tab @code{"U"} o @code{"u"} @item Arrotonda verso meno infinito @tab @code{roundTowardNegative} @tab @code{"D"} o @code{"d"} @item Arrotonda verso zero (troncamento) @tab @code{roundTowardZero} @tab @code{"Z"} o @code{"z"} -@item Arrotonda al pi@`u vicino, o per eccesso @tab @code{roundTiesToAway} @tab @code{"A"} o @code{"a"} +@item Arrotonda lontano da zero (per eccesso) @tab @tab @code{"A"} o @code{"a"} @end multitable @end float @code{ROUNDMODE} ha @code{"N"} come valore di default, ovvero si usa la modalit@`a di arrotondamento IEEE 754 @code{roundTiesToEven}. In @ref{table-gawk-rounding-modes}, il valore @code{"A"} seleziona -@code{roundTiesToAway}. Questo @`e applicabile solo se la versione in uso +l'arrotondamento lontano da zero (per eccesso). +Questo @`e applicabile solo se la versione in uso della libreria MPFR lo supporta; altrimenti, l'impostazione di @code{ROUNDMODE} ad @code{"A"} non ha alcun effetto. @@ -33455,9 +33456,8 @@ intervalli, dove si adotta questa modalit@`a di arrotondamento per calcolare i limiti superiore e inferiore per l'intervallo di valori in uscita. La modalit@`a @code{roundTowardZero} pu@`o essere usata per convertire numeri a virgola mobile -in numeri interi. La modalit@`a di arrotondamento @code{roundTiesToAway} -arrotonda il risultato al numero pi@`u vicino, e in caso di equidistanza -arrotonda per eccesso. +in numeri interi. Quando si arrotonda lontano da zero (per eccesso), viene +scelto il numero pi@`u vicino di grandezza maggiore o uguale al valore. Qualche esperto di analisi numerica dir@`a che la scelta dello stile di arrotondamento ha un grandissimo impatto sul risultato finale, e consiglier@`a @@ -34524,13 +34524,19 @@ e ogni campo @`e del tipo appropriato. L'uso di queste macro rende pi@`u facile da seguire l'accesso ai campi di @code{awk_value_t}. +@item enum AWK_NUMBER_TYPE @{ +@itemx @ @ @ @ AWK_NUMBER_TYPE_DOUBLE, +@itemx @ @ @ @ AWK_NUMBER_TYPE_MPFR, +@itemx @ @ @ @ AWK_NUMBER_TYPE_MPZ +@itemx @}; +La lista @code{enum} @`e usata nella struttura seguente per definire +il tipo di valore numerico con cui si ha a che fare. Va dichiarata al +livello pi@`u alto del file, in modo da poter essere usata sia con il +linguaggio C++ che con il C. + @item typedef struct awk_number @{ @itemx @ @ @ @ double d; -@itemx @ @ @ @ enum AWK_NUMBER_TYPE @{ -@itemx @ @ @ @ @ @ @ @ AWK_NUMBER_TYPE_DOUBLE, -@itemx @ @ @ @ @ @ @ @ AWK_NUMBER_TYPE_MPFR, -@itemx @ @ @ @ @ @ @ @ AWK_NUMBER_TYPE_MPZ -@itemx @ @ @ @ @} type; +@itemx @ @ @ @ enum AWK_NUMBER_TYPE type; @itemx @ @ @ @ void *ptr; @itemx @} awk_number_t; Questo rappresenta un valore numerico. Internamente, @command{gawk} @@ -34547,7 +34553,6 @@ da @code{ptr} sia un numero intero GMP (tipo @code{mpz_ptr}), o un numero MPFR a virgola mobile (tipo @code{mpfr_ptr_t}), e trasformarlo a seconda delle necessit@`a. - @item typedef void *awk_scalar_t; La variabili scalari possono essere rappresentate da un tipo opaco. Questi valori sono ottenuti da @command{gawk} e in seguito gli vengono restituiti. @@ -37236,6 +37241,49 @@ compilazione, l'API rimane compatibile a livello di codice sorgente con la precedente versione API. Le differenze pi@`u rilevanti sono gli ulteriori campi nella struttura @code{awk_ext_func_t}, e l'aggiunta del terzo argomento nella funzione di implementazione in linguaggio C. +(@pxref{Funzioni di estensione}). + +Quella che segue @`e una lista di singole funzionalit@`a che sono +state modificate nella versione 2 rispetto alla versione 1 dell'API: + +@itemize @bullet + +@item +I valori numerici possono ora essere anche di tipo MPFR/MPZ +(@pxref{Tipi di dati generali}). + +@item +Ci sono nuovi tipi di stringa: @code{AWK_REGEX} e @code{AWK_STRNUM} +(@pxref{Tipi di dati generali}). + +@item +@`E disponibile la nuova macro @code{ezalloc()} +(@pxref{Funzioni di allocazione memoria}). + +@item +La struttura @code{awk_ext_func_t} @`e stata modificata. Invece del +parametro @code{num_expected_args}, ha ora i due parametri +@code{max_expected} e @code{min_required} +(@pxref{Funzioni di estensione}). + +@item +In @code{get_record()}, un analizzatore di input pu@`o ora specificare +l'ampiezza dei campi +(@pxref{Analizzatori di input}). + +@item +Le estensioni possono ora inviare messaggi di errore non fatali +(@pxref{Stampare messaggi}). + +@item +Quando di appiattisce un vettore, si pu@`o ora specificare il tipo +dell'indice e quello dei valori +(@pxref{Funzioni per i vettori}). + +@item +C'@`e una nuova API, @code{get_file()} +(@pxref{Ridirezione API}). +@end itemize @node Trovare le estensioni @section Come @command{gawk} trova le estensioni compilate @@ -41603,13 +41651,6 @@ il supporto MPFR non sia disponibile. Non attiva la traduzione automatica dei messaggi. Ci@`o normalmente non @`e consigliabile, ma pu@`o apportare qualche lieve miglioramento nei tempi di esecuzione di un programma. - -@cindex @option{--with-whiny-user-strftime}, opzione di configurazione -@cindex opzione di configurazione @code{--with-whiny-user-strftime} -@item --with-whiny-user-strftime -Forza l'uso della versione della funzione C @code{strftime()} inclusa nella -distribuzione di @command{gawk}, per i sistemi in cui la funzione stessa -non sia disponibile. @end table Si usi il comando @samp{./configure --help} per ottenere la lista completa diff --git a/missing_d/ChangeLog b/missing_d/ChangeLog index 871f5e50..8043677a 100644 --- a/missing_d/ChangeLog +++ b/missing_d/ChangeLog @@ -6,6 +6,10 @@ * 4.2.0: Release tar ball made. +2017-10-13 Arnold D. Robbins <arnold@skeeve.com> + + * gawkbool.h: Removed. + 2017-10-08 Arnold D. Robbins <arnold@skeeve.com> * strncasecmp.c: Fix FSF's address. diff --git a/missing_d/gawkbool.h b/missing_d/gawkbool.h deleted file mode 100644 index c75a5a10..00000000 --- a/missing_d/gawkbool.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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/support/ChangeLog b/support/ChangeLog index d580505f..ac5468dc 100644 --- a/support/ChangeLog +++ b/support/ChangeLog @@ -7,6 +7,8 @@ * intprops.h: Sync with GNULIB. * regcomp.c (init_word): Move general_case label inside ifdef. * regex.h: Don't define __USE_GNU. Brings closer to GLIBC regex. + * regex.c: Don't include gawkbool.h, we don't use it anymore. + * dfa.h: Ditto. 2017-11-26 Arnold D. Robbins <arnold@skeeve.com> diff --git a/support/dfa.h b/support/dfa.h index 7d11f05d..79ada1e2 100644 --- a/support/dfa.h +++ b/support/dfa.h @@ -19,11 +19,7 @@ /* Written June, 1988 by Mike Haertel */ #include <regex.h> -#ifdef HAVE_STDBOOL_H #include <stdbool.h> -#else -#include "missing_d/gawkbool.h" -#endif /* HAVE_STDBOOL_H */ #include <stddef.h> #if 3 <= __GNUC__ diff --git a/support/regex.c b/support/regex.c index d3a44851..dc8caf69 100644 --- a/support/regex.c +++ b/support/regex.c @@ -69,9 +69,6 @@ #include "regex_internal.h" #include "regex_internal.c" -#ifndef HAVE_STDBOOL_H -#include "missing_d/gawkbool.h" -#endif #include "regcomp.c" #include "regexec.c" |