aboutsummaryrefslogtreecommitdiffstats
path: root/extension
diff options
context:
space:
mode:
Diffstat (limited to 'extension')
-rw-r--r--extension/ChangeLog6
-rw-r--r--extension/Makefile.in16
-rwxr-xr-xextension/configure4
-rw-r--r--extension/configure.ac4
-rw-r--r--extension/intdiv.c15
5 files changed, 30 insertions, 15 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog
index 87d4358d..784daf21 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,9 @@
+2017-04-13 Arnold D. Robbins <arnold@skeeve.com>
+
+ * configure.ac: Alphabetize function list in AC_CHECK_FUNCS.
+ * intdiv.c: Add descriptive comments to some functions.
+ (do_intdiv): Make division by zero fatal in MPFR case.
+
2017-04-03 Arnold D. Robbins <arnold@skeeve.com>
* inplace.c (inplace_end): Correct the function name in the
diff --git a/extension/Makefile.in b/extension/Makefile.in
index c386eac6..000c3b78 100644
--- a/extension/Makefile.in
+++ b/extension/Makefile.in
@@ -284,16 +284,16 @@ am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(filefuncs_la_SOURCES) $(fnmatch_la_SOURCES) \
$(fork_la_SOURCES) $(inplace_la_SOURCES) $(intdiv_la_SOURCES) \
- $(ordchr_la_SOURCES) $(readdir_la_SOURCES) $(readdir_test_la_SOURCES) \
- $(readfile_la_SOURCES) $(revoutput_la_SOURCES) \
- $(revtwoway_la_SOURCES) $(rwarray_la_SOURCES) \
- $(testext_la_SOURCES) $(time_la_SOURCES)
+ $(ordchr_la_SOURCES) $(readdir_la_SOURCES) \
+ $(readdir_test_la_SOURCES) $(readfile_la_SOURCES) \
+ $(revoutput_la_SOURCES) $(revtwoway_la_SOURCES) \
+ $(rwarray_la_SOURCES) $(testext_la_SOURCES) $(time_la_SOURCES)
DIST_SOURCES = $(filefuncs_la_SOURCES) $(fnmatch_la_SOURCES) \
$(fork_la_SOURCES) $(inplace_la_SOURCES) $(intdiv_la_SOURCES) \
- $(ordchr_la_SOURCES) $(readdir_la_SOURCES) $(readdir_test_la_SOURCES) \
- $(readfile_la_SOURCES) $(revoutput_la_SOURCES) \
- $(revtwoway_la_SOURCES) $(rwarray_la_SOURCES) \
- $(testext_la_SOURCES) $(time_la_SOURCES)
+ $(ordchr_la_SOURCES) $(readdir_la_SOURCES) \
+ $(readdir_test_la_SOURCES) $(readfile_la_SOURCES) \
+ $(revoutput_la_SOURCES) $(revtwoway_la_SOURCES) \
+ $(rwarray_la_SOURCES) $(testext_la_SOURCES) $(time_la_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
diff --git a/extension/configure b/extension/configure
index 580cc150..7ae66543 100755
--- a/extension/configure
+++ b/extension/configure
@@ -12943,8 +12943,8 @@ $as_echo "#define HAVE_MPFR 1" >>confdefs.h
;;
esac
-for ac_func in fdopendir fnmatch gettimeofday fmod \
- getdtablesize nanosleep select statvfs GetSystemTimeAsFileTime
+for ac_func in fdopendir fmod fnmatch getdtablesize \
+ gettimeofday nanosleep select statvfs GetSystemTimeAsFileTime
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
diff --git a/extension/configure.ac b/extension/configure.ac
index 58935b69..bde6e3d3 100644
--- a/extension/configure.ac
+++ b/extension/configure.ac
@@ -78,8 +78,8 @@ case `uname -m` in
;;
esac
-AC_CHECK_FUNCS(fdopendir fnmatch gettimeofday fmod \
- getdtablesize nanosleep select statvfs GetSystemTimeAsFileTime)
+AC_CHECK_FUNCS(fdopendir fmod fnmatch getdtablesize \
+ gettimeofday nanosleep select statvfs GetSystemTimeAsFileTime)
GAWK_FUNC_DIRFD
GAWK_PREREQ_DIRFD
diff --git a/extension/intdiv.c b/extension/intdiv.c
index 2f446c47..bde92893 100644
--- a/extension/intdiv.c
+++ b/extension/intdiv.c
@@ -29,6 +29,8 @@ static const char *ext_version = "intdiv extension: version 1.0";
int plugin_is_GPL_compatible;
+/* double_to_int --- get the integer part of a double */
+
static double
double_to_int(double d)
{
@@ -39,6 +41,8 @@ double_to_int(double d)
return d;
}
+/* array_set_number --- set an array element to a numeric value */
+
static void
array_set_number(awk_array_t array, const char *sub, size_t sublen, double num)
{
@@ -49,6 +53,8 @@ array_set_number(awk_array_t array, const char *sub, size_t sublen, double num)
#ifdef HAVE_MPFR
+/* mpz_conv --- convert an awk_value_t to an MPZ value */
+
static mpz_ptr
mpz_conv(const awk_value_t *arg, mpz_ptr tmp)
{
@@ -71,6 +77,8 @@ mpz_conv(const awk_value_t *arg, mpz_ptr tmp)
}
}
+/* array_set_mpz --- set an array element to an MPZ value */
+
static void
array_set_mpz(awk_array_t array, const char *sub, size_t sublen, mpz_ptr num)
{
@@ -136,8 +144,7 @@ do_intdiv(int nargs, awk_value_t *result, struct awk_ext_func *unused)
array_set_number(array, "quotient", 8, quotient);
array_set_number(array, "remainder", 9, remainder);
#ifdef HAVE_MPFR
- }
- else {
+ } else {
/* extended precision */
mpz_ptr numer, denom;
mpz_t numer_tmp, denom_tmp;
@@ -155,11 +162,13 @@ do_intdiv(int nargs, awk_value_t *result, struct awk_ext_func *unused)
return make_number(-1, result);
}
if (mpz_sgn(denom) == 0) {
- warning(ext_id, _("intdiv: division by zero attempted"));
if (numer == numer_tmp)
mpz_clear(numer);
if (denom == denom_tmp)
mpz_clear(denom);
+
+ fatal(ext_id, _("intdiv: division by zero attempted"));
+ // won't get here, but keep the compiler happy
return make_number(-1, result);
}