Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package remind for openSUSE:Factory checked in at 2021-04-01 14:17:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/remind (Old) and /work/SRC/openSUSE:Factory/.remind.new.2401 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "remind" Thu Apr 1 14:17:39 2021 rev:18 rq:882232 version:3.3.6 Changes: -------- --- /work/SRC/openSUSE:Factory/remind/remind.changes 2021-01-22 21:52:49.197891282 +0100 +++ /work/SRC/openSUSE:Factory/.remind.new.2401/remind.changes 2021-04-01 14:18:55.812125520 +0200 @@ -1,0 +2,18 @@ +Tue Mar 30 21:48:24 UTC 2021 - Detlef Steuer <detlef.ste...@gmx.de> + +- CHANGES TO REMIND + +* VERSION 3.3 Patch 6 - 2021-03-30 + +- test/test.rem: Change local to en_US.utf-8 only if current locale + is not a UTF-8 locale. + +- MINOR CHANGE: Remind's arithemtic operators (+, -, *, /) give errors + on overflow rather than silently giving the wrong answer. + +- MINOR CHANGE: Add $IntMin and $IntMax system variables. + +- DOCUMENTATION FIX: Document that TkRemind now requires Tcl/Tk version + 8.5 or newer. + +------------------------------------------------------------------- Old: ---- remind-03.03.05.tar.gz remind-3.3.5-rpmlintrc New: ---- remind-03.03.06.tar.gz remind-3.3.6-rpmlintrc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ remind.spec ++++++ --- /var/tmp/diff_new_pack.A7IFi7/_old 2021-04-01 14:18:56.272126078 +0200 +++ /var/tmp/diff_new_pack.A7IFi7/_new 2021-04-01 14:18:56.276126082 +0200 @@ -17,9 +17,9 @@ Name: remind -Version: 3.3.5 +Version: 3.3.6 Release: 0 -%define tar_version 03.03.05 +%define tar_version 03.03.06 Summary: A sophisticated calendar and alarm program License: GPL-2.0-only Group: Productivity/Office/Organizers ++++++ remind-03.03.05.tar.gz -> remind-03.03.06.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/configure new/remind-03.03.06/configure --- old/remind-03.03.05/configure 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/configure 2021-03-30 22:34:24.000000000 +0200 @@ -3991,7 +3991,7 @@ fi done -VERSION=03.03.05 +VERSION=03.03.06 ac_config_files="$ac_config_files src/Makefile www/Makefile src/version.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/configure.in new/remind-03.03.06/configure.in --- old/remind-03.03.05/configure.in 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/configure.in 2021-03-30 22:34:24.000000000 +0200 @@ -75,6 +75,6 @@ fi AC_CHECK_FUNCS(setenv unsetenv glob mbstowcs setlocale) -VERSION=03.03.05 +VERSION=03.03.06 AC_SUBST(VERSION) AC_OUTPUT(src/Makefile www/Makefile src/version.h) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/docs/WHATSNEW new/remind-03.03.06/docs/WHATSNEW --- old/remind-03.03.05/docs/WHATSNEW 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/docs/WHATSNEW 2021-03-30 22:34:24.000000000 +0200 @@ -1,5 +1,18 @@ CHANGES TO REMIND +* VERSION 3.3 Patch 6 - 2021-03-30 + +- test/test.rem: Change local to en_US.utf-8 only if current locale + is not a UTF-8 locale. + +- MINOR CHANGE: Remind's arithemtic operators (+, -, *, /) give errors + on overflow rather than silently giving the wrong answer. + +- MINOR CHANGE: Add $IntMin and $IntMax system variables. + +- DOCUMENTATION FIX: Document that TkRemind now requires Tcl/Tk version + 8.5 or newer. + * VERSION 3.3 Patch 5 - 2021-01-21 - NEW FEATURE: tkremind: Add ability to change fonts and colors from diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/man/remind.1 new/remind-03.03.06/man/remind.1 --- old/remind-03.03.05/man/remind.1 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/man/remind.1 2021-03-30 22:34:24.000000000 +0200 @@ -1868,6 +1868,11 @@ .PP .B NOTES .PP +If the result of an addition, subtraction or multiplication operation +would not fit in a C "int" type, \fBRemind\fR issues a "Number too +high" error. Unlike C, integer operations will not simply give the +wrong answer in case of overflow. +.PP Operators of equal precedence are \fIalways\fR evaluated from left to right, except where parentheses dictate otherwise. This is important, because the enhanced "+" operator is not necessarily associative. @@ -2060,6 +2065,14 @@ .B $InfDelta (read-only) If non-zero, then the \fB\-t\fR option was supplied on the command line. .TP +.B $IntMax (read-only) +The largest representable \fBINT\fR. On a machine with 32-bit signed integers +using twos-complement representation, this will be 2147483647. +.TP +.B $IntMin (read-only) +The smallest representable \fBINT\fR. On a machine with 32-bit signed integers +using twos-complement representation, this will be -2147483648. +.TP .B $LatDeg, $LatMin, $LatSec These specify the latitude of your location. \fB$LatDeg\fR can range from \-90 to 90, and the others from \-59 to 59. Northern latitudes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/man/tkremind.1 new/remind-03.03.06/man/tkremind.1 --- old/remind-03.03.05/man/tkremind.1 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/man/tkremind.1 2021-03-30 22:34:24.000000000 +0200 @@ -13,8 +13,10 @@ it creates. This allows you to learn \fBRemind\fR's syntax and then add extra features as you become a more sophisticated \fBRemind\fR programmer. -\fBTkRemind\fR is written in Tcl, and requires version 8.0 -(or higher). It also requires a \fBwish\fR binary. +\fBTkRemind\fR is written in Tcl, and requires version 8.5 (or higher) +as well as the tcllib extension. It also requires a \fBwish\fR +binary. If you are using Tcl/Tk 8.5, you may also need either the Img +or the tkpng extension to handle PNG images. .SH OPTIONS \fBTkRemind\fR itself has no options. However, it passes certain options diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/scripts/tkremind new/remind-03.03.06/scripts/tkremind --- old/remind-03.03.05/scripts/tkremind 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/scripts/tkremind 2021-03-30 22:34:24.000000000 +0200 @@ -16,11 +16,22 @@ # We need at least version 8.5 because of {*} list expansion operator if {[catch {package require Tcl 8.5}]} { - puts "This program requires Tcl 8.5 or higher." - puts "You have version [info tclversion]" + puts stderr "This program requires Tcl 8.5 or higher." + puts stderr "You have version [info tclversion]" exit 1 } +# If it's 8.5, try using the Img or the TkPNG package to +# get PNG support +if {[info tclversion] == 8.5} { + if {[catch {package require Img}]} { + if {[catch {package require tkpng}]} { + puts stderr "Tcl/Tk version 8.5 might require either the Img or tkpng" + puts stderr "package to handle PNG images correctly. TkRemind may" + puts stderr "crash because neither of these packages was found." + } + } +} wm withdraw . set Hostname [exec hostname] @@ -113,13 +124,6 @@ missing_tcllib json } - -# Check that we have the right version of wish -if {$tcl_version < 8.0} { - tk_dialog .error Error "You need wish version 8.0 or higher to run TkRemind; you have $tcl_version" error 0 OK - exit 1 -} - if {$tcl_platform(platform) == "windows"} { tk_dialog .error Error "Please do not port Remind to Windows" error 0 OK exit 1 @@ -927,7 +931,7 @@ } foreach {key val} $line {} if {![info exists Option($key)]} { - puts "Unknown option in $ConfigFile: $key" + puts stderr "Unknown option in $ConfigFile: $key" continue } set Option($key) $val @@ -2569,7 +2573,7 @@ } } default { - puts "Unknown message from daemon: $line\n" + puts stderr "Unknown message from daemon: $line\n" } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/src/expr.c new/remind-03.03.06/src/expr.c --- old/remind-03.03.05/src/expr.c 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/src/expr.c 2021-03-30 22:34:24.000000000 +0200 @@ -13,6 +13,7 @@ #include <stdio.h> #include <ctype.h> #include <string.h> +#include <limits.h> #include <stdlib.h> @@ -493,6 +494,7 @@ int len; int h, m, r; int ampm = 0; + int prev_val; if (*s == '\"') { /* It's a literal string "*/ len = strlen(s)-1; @@ -519,9 +521,15 @@ return OK; } else if (isdigit(*s)) { /* It's a number - use len to hold it.*/ len = 0; + prev_val = 0; while (*s && isdigit(*s)) { len *= 10; len += (*s++ - '0'); + if (len < prev_val) { + /* We overflowed */ + return E_2HIGH; + } + prev_val = len; } if (*s == ':' || *s == '.' || *s == TimeSep) { /* Must be a literal time */ s++; @@ -758,15 +766,22 @@ /* If both are ints, just add 'em */ if (v2.type == INT_TYPE && v1.type == INT_TYPE) { - v2.v.val += v1.v.val; - PushValStack(v2); + int old = v1.v.val; + v1.v.val += v2.v.val; + /* Check for overflow */ + if (_private_add_overflow(v1.v.val, v2.v.val, old)) { + return E_2HIGH; + } + PushValStack(v1); return OK; } /* If it's a date plus an int, add 'em */ if ((v1.type == DATE_TYPE && v2.type == INT_TYPE) || (v1.type == INT_TYPE && v2.type == DATE_TYPE)) { + int old = v1.v.val; v1.v.val += v2.v.val; + if (_private_add_overflow(v1.v.val, v2.v.val, old)) return E_DATE_OVER; if (v1.v.val < 0) return E_DATE_OVER; v1.type = DATE_TYPE; PushValStack(v1); @@ -776,7 +791,9 @@ /* If it's a datetime plus an int or a time, add 'em */ if ((v1.type == DATETIME_TYPE && (v2.type == INT_TYPE || v2.type == TIME_TYPE)) || ((v1.type == INT_TYPE || v1.type == TIME_TYPE) && v2.type == DATETIME_TYPE)) { + int old = v1.v.val; v1.v.val += v2.v.val; + if (_private_add_overflow(v1.v.val, v2.v.val, old)) return E_DATE_OVER; if (v1.v.val < 0) return E_DATE_OVER; v1.type = DATETIME_TYPE; PushValStack(v1); @@ -788,7 +805,10 @@ if ((v1.type == TIME_TYPE && v2.type == INT_TYPE) || (v1.type == INT_TYPE && v2.type == TIME_TYPE) || (v1.type == TIME_TYPE && v2.type == TIME_TYPE)) { - v1.v.val = (v1.v.val + v2.v.val) % MINUTES_PER_DAY; + int old = v1.v.val; + v1.v.val += v2.v.val; + if (_private_add_overflow(v1.v.val, v2.v.val, old)) return E_DATE_OVER; + v1.v.val = v1.v.val % MINUTES_PER_DAY; if (v1.v.val < 0) v1.v.val += MINUTES_PER_DAY; v1.type = TIME_TYPE; PushValStack(v1); @@ -848,14 +868,18 @@ /* If they're both INTs, do subtraction */ if (v1.type == INT_TYPE && v2.type == INT_TYPE) { + int old = v1.v.val; v1.v.val -= v2.v.val; + if (_private_sub_overflow(v1.v.val, v2.v.val, old)) return E_2HIGH; PushValStack(v1); return OK; } /* If it's a date minus an int, do subtraction, checking for underflow */ if (v1.type == DATE_TYPE && v2.type == INT_TYPE) { + int old = v1.v.val; v1.v.val -= v2.v.val; + if (_private_sub_overflow(v1.v.val, v2.v.val, old)) return E_DATE_OVER; if (v1.v.val < 0) return E_DATE_OVER; PushValStack(v1); return OK; @@ -864,7 +888,9 @@ /* If it's a datetime minus an int or a time, do subtraction, * checking for underflow */ if (v1.type == DATETIME_TYPE && (v2.type == INT_TYPE || v2.type == TIME_TYPE)) { + int old = v1.v.val; v1.v.val -= v2.v.val; + if (_private_sub_overflow(v1.v.val, v2.v.val, old)) return E_DATE_OVER; if (v1.v.val < 0) return E_DATE_OVER; PushValStack(v1); return OK; @@ -882,7 +908,9 @@ if ((v1.type == TIME_TYPE && v2.type == TIME_TYPE) || (v1.type == DATETIME_TYPE && v2.type == DATETIME_TYPE) || (v1.type == DATE_TYPE && v2.type == DATE_TYPE)) { + int old = v1.v.val; v1.v.val -= v2.v.val; + if (_private_sub_overflow(v1.v.val, v2.v.val, old)) return E_DATE_OVER; v1.type = INT_TYPE; PushValStack(v1); return OK; @@ -912,7 +940,11 @@ } if (v1.type == INT_TYPE && v2.type == INT_TYPE) { + int old = v1.v.val; v1.v.val *= v2.v.val; + if (v2.v.val != 0) { + if (_private_div(v1.v.val, v2.v.val) != old) return E_2HIGH; + } PushValStack(v1); return OK; } @@ -940,6 +972,10 @@ if (v1.type == INT_TYPE && v2.type == INT_TYPE) { if (v2.v.val == 0) return E_DIV_ZERO; + /* This is the only way it can overflow */ + if (v2.v.val == -1 && v1.v.val == INT_MIN) { + return E_2HIGH; + } v1.v.val /= v2.v.val; PushValStack(v1); return OK; @@ -1114,7 +1150,9 @@ { Value *v = &ValStack[ValStackPtr-1]; if (v->type != INT_TYPE) return E_BAD_TYPE; + int old = v->v.val; v->v.val = -v->v.val; + if (_private_unminus_overflow(old, v->v.val)) return E_2HIGH; return OK; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/src/expr.h new/remind-03.03.06/src/expr.h --- old/remind-03.03.05/src/expr.h 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/src/expr.h 2021-03-30 22:34:24.000000000 +0200 @@ -5,7 +5,7 @@ /* Contains a few definitions used by expression evaluator. */ /* */ /* This file is part of REMIND. */ -/* Copyright (C) 1992-2020 by Dianne Skoll */ +/* Copyright (C) 1992-2021 by Dianne Skoll */ /* */ /***************************************************************/ @@ -53,3 +53,12 @@ return E_VA_STK_UNDER; \ else \ (val) = ValStack[--ValStackPtr] + +/* These functions are in utils.c and are used to detect overflow + in various arithmetic operators. They have to be in separate + functions with extern linkage to defeat compiler optimizations + that would otherwise break the overflow checks. */ +extern int _private_div(int a, int b); +extern int _private_add_overflow(int result, int b, int old); +extern int _private_sub_overflow(int result, int b, int old); +extern int _private_unminus_overflow(int a, int b); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/src/funcs.c new/remind-03.03.06/src/funcs.c --- old/remind-03.03.05/src/funcs.c 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/src/funcs.c 2021-03-30 22:34:24.000000000 +0200 @@ -866,12 +866,14 @@ /***************************************************************/ static int FAbs(func_info *info) { - int v; + volatile int v; ASSERT_TYPE(0, INT_TYPE); v = ARGV(0); RetVal.type = INT_TYPE; RETVAL = (v < 0) ? (-v) : v; + v = RETVAL; + if (v < 0) return E_2HIGH; return OK; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/src/utils.c new/remind-03.03.06/src/utils.c --- old/remind-03.03.05/src/utils.c 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/src/utils.c 2021-03-30 22:34:24.000000000 +0200 @@ -123,3 +123,26 @@ d > DaysInMonth(m, y) ) return 0; else return 1; } + +/* Functions designed to defeat gcc optimizer */ + +int _private_div(int a, int b) { return a/b; } +int _private_add_overflow(int result, int b, int old) +{ + if (b > 0 && result < old) return 1; + if (b < 0 && result > old) return 1; + return 0; +} +int _private_sub_overflow(int result, int b, int old) +{ + if (b < 0 && result < old) return 1; + if (b > 0 && result > old) return 1; + return 0; +} + +int _private_unminus_overflow(int a, int b) +{ + if (a > 0 && b > 0) return 1; + if (a < 0 && b < 0) return 1; + return 0; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/src/var.c new/remind-03.03.06/src/var.c --- old/remind-03.03.05/src/var.c 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/src/var.c 2021-03-30 22:34:24.000000000 +0200 @@ -17,6 +17,7 @@ #include <ctype.h> #include <stdlib.h> +#include <limits.h> #include "types.h" #include "expr.h" #include "globals.h" @@ -31,6 +32,9 @@ #define VALUE ErrMsg[E_VAL] #define UNDEF ErrMsg[E_UNDEF] +static int IntMin = INT_MIN; +static int IntMax = INT_MAX; + static Var *VHashTbl[VAR_HASH_SIZE]; typedef int (*SysVarFunc)(int, Value *); @@ -661,6 +665,8 @@ {"HushMode", 0, INT_TYPE, &Hush, 0, 0 }, {"IgnoreOnce", 0, INT_TYPE, &IgnoreOnce, 0, 0 }, {"InfDelta", 0, INT_TYPE, &InfiniteDelta, 0, 0 }, + {"IntMax", 0, INT_TYPE, &IntMax, 0, 0 }, + {"IntMin", 0, INT_TYPE, &IntMin, 0, 0 }, {"LatDeg", 1, INT_TYPE, &LatDeg, -90, 90 }, {"LatMin", 1, INT_TYPE, &LatMin, -59, 59 }, {"LatSec", 1, INT_TYPE, &LatSec, -59, 59 }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/tests/test-rem new/remind-03.03.06/tests/test-rem --- old/remind-03.03.05/tests/test-rem 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/tests/test-rem 2021-03-30 22:34:24.000000000 +0200 @@ -289,8 +289,17 @@ rem 25 SPECIAL COLOR 200 200 200 BRIGHT WHITE EOF -export LC_ALL=en_US.utf-8 -export LANG=en_US.utf-8 +# If we're already in a utf-8 locale, do +# nothing + +if ! echo $LC_ALL | grep -i utf-8 > /dev/null 2>&1 ; then + export LC_ALL=en_US.utf-8 +fi + +if ! echo $LANG | grep -i utf-8 > /dev/null 2>&1 ; then + export LANG=en_US.utf-8 +fi + ../src/remind -w128 -c ../tests/utf-8.rem 1 Nov 2019 >> ../tests/test.out cmp -s ../tests/test.out ../tests/test.cmp if [ "$?" = "0" ]; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/tests/test.cmp new/remind-03.03.06/tests/test.cmp --- old/remind-03.03.05/tests/test.cmp 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/tests/test.cmp 2021-03-30 22:34:24.000000000 +0200 @@ -857,7 +857,7 @@ "a05" + "6" => "a056" value("a056") => "SDFJHSDF KSJDFH KJSDFH KSJDFH" set a058 version() -version() => "03.03.05" +version() => "03.03.06" set a059 wkday(today()) today() => 1991-02-16 wkday(1991-02-16) => "Saturday" @@ -2426,7 +2426,7 @@ a109 2012-01-01 a128 2018-02-03@16:45 a039 "February" -a058 "03.03.05" +a058 "03.03.06" a077 "1992 92 " a096 -4 @@ -3043,6 +3043,85 @@ set x coerce("DATETIME", "2020-05-05@1:45pm") coerce("DATETIME", "2020-05-05@1:45pm") => 2020-05-05@13:45 +# Overflow - these tests only work on machines with 32-bit +# twos-complement signed integers. You may get test failures on +# machines with different architectures. +set a $IntMin - 1 +$IntMin => -2147483648 +-2147483648 - 1 => Number too high +../tests/test.rem(539): `-': Number too high +set a $IntMin - $IntMax +$IntMin => -2147483648 +$IntMax => 2147483647 +-2147483648 - 2147483647 => Number too high +../tests/test.rem(540): `-': Number too high +set a $IntMax - $IntMin +$IntMax => 2147483647 +$IntMin => -2147483648 +2147483647 - -2147483648 => Number too high +../tests/test.rem(541): `-': Number too high +set a $IntMax - (-1) +$IntMax => 2147483647 +- 1 => -1 +2147483647 - -1 => Number too high +../tests/test.rem(542): `-': Number too high +set a $IntMax + 1 +$IntMax => 2147483647 +2147483647 + 1 => Number too high +../tests/test.rem(543): `+': Number too high +set a $IntMax + $IntMax +$IntMax => 2147483647 +$IntMax => 2147483647 +2147483647 + 2147483647 => Number too high +../tests/test.rem(544): `+': Number too high +set a $IntMin + (-1) +$IntMin => -2147483648 +- 1 => -1 +-2147483648 + -1 => Number too high +../tests/test.rem(545): `+': Number too high +set a $IntMin + $IntMin +$IntMin => -2147483648 +$IntMin => -2147483648 +-2147483648 + -2147483648 => Number too high +../tests/test.rem(546): `+': Number too high +set a $IntMax * 2 +$IntMax => 2147483647 +2147483647 * 2 => Number too high +../tests/test.rem(547): `*': Number too high +set a $IntMax * $IntMax +$IntMax => 2147483647 +$IntMax => 2147483647 +2147483647 * 2147483647 => Number too high +../tests/test.rem(548): `*': Number too high +set a $IntMax * $IntMin +$IntMax => 2147483647 +$IntMin => -2147483648 +2147483647 * -2147483648 => Number too high +../tests/test.rem(549): `*': Number too high +set a $IntMin * 2 +$IntMin => -2147483648 +-2147483648 * 2 => Number too high +../tests/test.rem(550): `*': Number too high +set a $IntMin * $IntMin +$IntMin => -2147483648 +$IntMin => -2147483648 +-2147483648 * -2147483648 => Number too high +../tests/test.rem(551): `*': Number too high +set a $IntMin * $IntMax +$IntMin => -2147483648 +$IntMax => 2147483647 +-2147483648 * 2147483647 => Number too high +../tests/test.rem(552): `*': Number too high +set a $IntMin / (-1) +$IntMin => -2147483648 +- 1 => -1 +-2147483648 / -1 => Number too high +../tests/test.rem(553): `/': Number too high +set a abs($IntMin) +$IntMin => -2147483648 +abs(-2147483648) => Number too high +../tests/test.rem(554): Number too high + # Don't want Remind to queue reminders EXIT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/remind-03.03.05/tests/test.rem new/remind-03.03.06/tests/test.rem --- old/remind-03.03.05/tests/test.rem 2021-01-21 21:48:26.000000000 +0100 +++ new/remind-03.03.06/tests/test.rem 2021-03-30 22:34:24.000000000 +0200 @@ -533,6 +533,26 @@ set x coerce("DATETIME", "2020-05-05@12:45") set x coerce("DATETIME", "2020-05-05@1:45pm") +# Overflow - these tests only work on machines with 32-bit +# twos-complement signed integers. You may get test failures on +# machines with different architectures. +set a $IntMin - 1 +set a $IntMin - $IntMax +set a $IntMax - $IntMin +set a $IntMax - (-1) +set a $IntMax + 1 +set a $IntMax + $IntMax +set a $IntMin + (-1) +set a $IntMin + $IntMin +set a $IntMax * 2 +set a $IntMax * $IntMax +set a $IntMax * $IntMin +set a $IntMin * 2 +set a $IntMin * $IntMin +set a $IntMin * $IntMax +set a $IntMin / (-1) +set a abs($IntMin) + # Don't want Remind to queue reminders EXIT ++++++ remind-3.3.5-rpmlintrc -> remind-3.3.6-rpmlintrc ++++++