dc(1): Sync with OpenBSD
authorJoris Giovannangeli <joris@dragonflybsd.org>
Fri, 20 Sep 2013 21:31:56 +0000 (23:31 +0200)
committerJoris Giovannangeli <joris@dragonflybsd.org>
Fri, 20 Sep 2013 22:14:00 +0000 (00:14 +0200)
commita977bf879651837d1fcee810ad28506cb5334300
treedf441d5450f30ec019a8a160ffb8cc39f6735c25
parentcb7e3b3c9433ef3b14752f26e3bfdca1094c47e2
dc(1): Sync with OpenBSD

Changes include :

 * show an error message if the argument is a dir

 * check value against UINT_MAX before casting to u_int; while
   there fix a buglet in bexp(): x * UINT_MAX only overflows if x > 0

 * fix fractional number exponentiation

 * use BN_set_negative() and BN_is_negative() instead of subtracting or
   comparing to zero

 * For exponenttion, only warn if the fractional part of the exponent
   is non-zero and avoid div by zero.

 * let length(0.000) conform to what gnu bc does

 * check for unitialized elements when accessing an array

 * although there's no EOF condition defined for the handling of '?',
   but anyway reset the eof condition on stdin, so you don't get an
   infinite loop in the typical program after a ^D.

 * convert malloc to calloc

 * fix three leaks

 * use size_t as stack size and ssize_t as stack pointer

 * add missing bn_check

Revision for updated OpenBSD files are :

 - bcode.c : 1.45
 - bcode.h : 1.7
 - dc.c : 1.11
 - inout.c : 1.17
 - stack.c : 1.11

Obtained-from: OpenBSD
usr.bin/dc/bcode.c
usr.bin/dc/bcode.h
usr.bin/dc/dc.c
usr.bin/dc/extern.h
usr.bin/dc/inout.c
usr.bin/dc/stack.c