diff options
| author | Franklin Wei <git@fwei.tk> | 2017-08-16 11:35:32 -0400 |
|---|---|---|
| committer | Franklin Wei <git@fwei.tk> | 2017-08-16 11:40:42 -0400 |
| commit | c78ff7f6153d2a787bfd8cb3410dff8db74b2789 (patch) | |
| tree | e3a507a1a25640d4c8e2cbedc464d38e6af5575c /apps/plugins/puzzles/src | |
| parent | bf25f3e6e7b1518b0dd499676ac298172dc25fa1 (diff) | |
| download | rockbox-c78ff7f6153d2a787bfd8cb3410dff8db74b2789.zip rockbox-c78ff7f6153d2a787bfd8cb3410dff8db74b2789.tar.gz rockbox-c78ff7f6153d2a787bfd8cb3410dff8db74b2789.tar.bz2 rockbox-c78ff7f6153d2a787bfd8cb3410dff8db74b2789.tar.xz | |
puzzles: fix floating-point formatting
This is pretty ad-hoc, but the only other ways are to rewrite
sprintf (which would use too much memory on the c200v2), or
implement support for floats in rockbox's formatter, neither of
which are acceptable.
Change-Id: I70d59fd3e90a16e2db9ae0a84cd8c14807f50b46
Diffstat (limited to 'apps/plugins/puzzles/src')
| -rw-r--r-- | apps/plugins/puzzles/src/midend.c | 2 | ||||
| -rw-r--r-- | apps/plugins/puzzles/src/net.c | 7 | ||||
| -rw-r--r-- | apps/plugins/puzzles/src/netslide.c | 7 | ||||
| -rw-r--r-- | apps/plugins/puzzles/src/rect.c | 7 |
4 files changed, 16 insertions, 7 deletions
diff --git a/apps/plugins/puzzles/src/midend.c b/apps/plugins/puzzles/src/midend.c index 2eb5ee9..6dbdd33 100644 --- a/apps/plugins/puzzles/src/midend.c +++ b/apps/plugins/puzzles/src/midend.c @@ -1701,7 +1701,7 @@ void midend_serialise(midend *me, */ if (me->ourgame->is_timed) { char buf[80]; - sprintf(buf, "%g", me->elapsed); + ftoa(buf, 80, me->elapsed); wr("TIME", buf); } diff --git a/apps/plugins/puzzles/src/net.c b/apps/plugins/puzzles/src/net.c index de51f82..9289afb 100644 --- a/apps/plugins/puzzles/src/net.c +++ b/apps/plugins/puzzles/src/net.c @@ -257,7 +257,10 @@ static char *encode_params(const game_params *params, int full) if (params->wrapping) ret[len++] = 'w'; if (full && params->barrier_probability) - len += sprintf(ret+len, "b%g", params->barrier_probability); + { + len += sprintf(ret+len, "b"); + len += ftoa(ret + len, 400, params->barrier_probability); + } if (full && !params->unique) ret[len++] = 'a'; assert(len < lenof(ret)); @@ -292,7 +295,7 @@ static config_item *game_configure(const game_params *params) ret[3].name = "Barrier probability"; ret[3].type = C_STRING; - sprintf(buf, "%g", params->barrier_probability); + ftoa(buf, 80, params->barrier_probability); ret[3].sval = dupstr(buf); ret[3].ival = 0; diff --git a/apps/plugins/puzzles/src/netslide.c b/apps/plugins/puzzles/src/netslide.c index c56e1ab..663febc 100644 --- a/apps/plugins/puzzles/src/netslide.c +++ b/apps/plugins/puzzles/src/netslide.c @@ -241,7 +241,10 @@ static char *encode_params(const game_params *params, int full) if (params->wrapping) ret[len++] = 'w'; if (full && params->barrier_probability) - len += sprintf(ret+len, "b%g", params->barrier_probability); + { + len += sprintf(ret+len, "b"); + len += ftoa(ret + len, 400, params->barrier_probability); + } /* Shuffle limit is part of the limited parameters, because we have to * provide the target move count. */ if (params->movetarget) @@ -278,7 +281,7 @@ static config_item *game_configure(const game_params *params) ret[3].name = "Barrier probability"; ret[3].type = C_STRING; - sprintf(buf, "%g", params->barrier_probability); + ftoa(buf, 80, params->barrier_probability); ret[3].sval = dupstr(buf); ret[3].ival = 0; diff --git a/apps/plugins/puzzles/src/rect.c b/apps/plugins/puzzles/src/rect.c index 465e143..0c06c74 100644 --- a/apps/plugins/puzzles/src/rect.c +++ b/apps/plugins/puzzles/src/rect.c @@ -163,7 +163,10 @@ static char *encode_params(const game_params *params, int full) sprintf(data, "%dx%d", params->w, params->h); if (full && params->expandfactor) - sprintf(data + strlen(data), "e%g", params->expandfactor); + { + sprintf(data + strlen(data), "e"); + ftoa(data + strlen(data), 256, params->expandfactor); + } if (full && !params->unique) strcat(data, "a"); @@ -191,7 +194,7 @@ static config_item *game_configure(const game_params *params) ret[2].name = "Expansion factor"; ret[2].type = C_STRING; - sprintf(buf, "%g", params->expandfactor); + ftoa(buf, 80, params->expandfactor); ret[2].sval = dupstr(buf); ret[2].ival = 0; |