summaryrefslogtreecommitdiff
path: root/apps/plugins/puzzles/rbwrappers.c
diff options
context:
space:
mode:
authorFranklin Wei <git@fwei.tk>2017-04-29 18:21:56 -0400
committerFranklin Wei <git@fwei.tk>2017-04-29 18:24:42 -0400
commit881746789a489fad85aae8317555f73dbe261556 (patch)
treecec2946362c4698c8db3c10f3242ef546c2c22dd /apps/plugins/puzzles/rbwrappers.c
parent03dd4b92be7dcd5c8ab06da3810887060e06abd5 (diff)
downloadrockbox-881746789a489fad85aae8317555f73dbe261556.zip
rockbox-881746789a489fad85aae8317555f73dbe261556.tar.gz
rockbox-881746789a489fad85aae8317555f73dbe261556.tar.bz2
rockbox-881746789a489fad85aae8317555f73dbe261556.tar.xz
puzzles: refactor and resync with upstream
This brings puzzles up-to-date with upstream revision 2d333750272c3967cfd5cd3677572cddeaad5932, though certain changes made by me, including cursor-only Untangle and some compilation fixes remain. Upstream code has been moved to its separate subdirectory and future syncs can be done by simply copying over the new sources. Change-Id: Ia6506ca5f78c3627165ea6791d38db414ace0804
Diffstat (limited to 'apps/plugins/puzzles/rbwrappers.c')
-rw-r--r--apps/plugins/puzzles/rbwrappers.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/apps/plugins/puzzles/rbwrappers.c b/apps/plugins/puzzles/rbwrappers.c
index e595cf9..4fbfdc4 100644
--- a/apps/plugins/puzzles/rbwrappers.c
+++ b/apps/plugins/puzzles/rbwrappers.c
@@ -1346,9 +1346,12 @@ double scalbn_wrapper (double x, int n)
if (k > 0) /* normal result */
{__HI(x) = (hx&0x800fffff)|(k<<20); return x;}
if (k <= -54)
+ {
if (n > 50000) /* in case integer overflow in n+k */
return huge*copysign_wrapper(huge,x); /*overflow*/
- else return tiny*copysign_wrapper(tiny,x); /*underflow*/
+ else
+ return tiny*copysign_wrapper(tiny,x); /*underflow*/
+ }
k += 54; /* subnormal result */
__HI(x) = (hx&0x800fffff)|(k<<20);
return x*twom54;
@@ -1608,18 +1611,6 @@ static void bcopy_wrapper(const void *src, void *dst, size_t n)
}
int
-sscanf_wrapper(const char *ibuf, const char *fmt, ...)
-{
- va_list ap;
- int ret;
-
- va_start(ap, fmt);
- ret = rb_vsscanf(ibuf, fmt, ap);
- va_end(ap);
- return(ret);
-}
-
-int
rb_vsscanf(const char *inp, char const *fmt0, va_list ap)
{
int inr;
@@ -2065,6 +2056,18 @@ match_failure:
return (nassigned);
}
+int
+sscanf_wrapper(const char *ibuf, const char *fmt, ...)
+{
+ va_list ap;
+ int ret;
+
+ va_start(ap, fmt);
+ ret = rb_vsscanf(ibuf, fmt, ap);
+ va_end(ap);
+ return(ret);
+}
+
/*
* Fill in the given table from the scanset at the given format
* (just after `['). Return a pointer to the character past the