mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Use helper function to write decimal numbers
Never ever use '%f' to write floating point data to a file. The stupid locale handling creates useless comma-infested output in some locales. Instead use one of our clever helper functions to do the right thing. Original patch by Gehad, modified by Linus to be a little more generic. Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
62e4c4069b
commit
cb3436b42e
4 changed files with 17 additions and 17 deletions
12
membuffer.c
12
membuffer.c
|
@ -164,3 +164,15 @@ void put_salinity(struct membuffer *b, int salinity, const char *pre, const char
|
||||||
if (salinity)
|
if (salinity)
|
||||||
put_format(b, "%s%d%s", pre, salinity / 10, post);
|
put_format(b, "%s%d%s", pre, salinity / 10, post);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void put_degrees(struct membuffer *b, degrees_t value, const char *pre, const char *post)
|
||||||
|
{
|
||||||
|
int udeg = value.udeg;
|
||||||
|
const char *sign = "";
|
||||||
|
|
||||||
|
if (udeg < 0) {
|
||||||
|
udeg = -udeg;
|
||||||
|
sign = "-";
|
||||||
|
}
|
||||||
|
put_format(b,"%s%s%u.%06u%s", pre, sign, FRACTION(udeg, 1000000), post);
|
||||||
|
}
|
||||||
|
|
|
@ -56,6 +56,7 @@ extern void put_depth(struct membuffer *, depth_t, const char *, const char *);
|
||||||
extern void put_duration(struct membuffer *, duration_t, const char *, const char *);
|
extern void put_duration(struct membuffer *, duration_t, const char *, const char *);
|
||||||
extern void put_pressure(struct membuffer *, pressure_t, const char *, const char *);
|
extern void put_pressure(struct membuffer *, pressure_t, const char *, const char *);
|
||||||
extern void put_salinity(struct membuffer *, int, const char *, const char *);
|
extern void put_salinity(struct membuffer *, int, const char *, const char *);
|
||||||
|
extern void put_degrees(struct membuffer *b, degrees_t value, const char *, const char *);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
17
save-git.c
17
save-git.c
|
@ -38,24 +38,11 @@ static void cond_put_format(int cond, struct membuffer *b, const char *fmt, ...)
|
||||||
|
|
||||||
#define SAVE(str, x) cond_put_format(dive->x, b, str " %d\n", dive->x)
|
#define SAVE(str, x) cond_put_format(dive->x, b, str " %d\n", dive->x)
|
||||||
|
|
||||||
static void put_degrees(struct membuffer *b, degrees_t value, const char sep)
|
|
||||||
{
|
|
||||||
int udeg = value.udeg;
|
|
||||||
const char *sign = "";
|
|
||||||
|
|
||||||
if (udeg < 0) {
|
|
||||||
udeg = -udeg;
|
|
||||||
sign = "-";
|
|
||||||
}
|
|
||||||
put_format(b,"%s%u.%06u%c", sign, FRACTION(udeg, 1000000), sep);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void show_gps(struct membuffer *b, degrees_t latitude, degrees_t longitude)
|
static void show_gps(struct membuffer *b, degrees_t latitude, degrees_t longitude)
|
||||||
{
|
{
|
||||||
if (latitude.udeg || longitude.udeg) {
|
if (latitude.udeg || longitude.udeg) {
|
||||||
put_string(b, "gps ");
|
put_degrees(b, latitude, "gps ", " ");
|
||||||
put_degrees(b, latitude, ' ');
|
put_degrees(b, longitude, "", "\n");
|
||||||
put_degrees(b, longitude, '\n');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,8 +94,8 @@ void writeMarkers(struct membuffer *b)
|
||||||
if (dive->latitude.udeg == 0 && dive->longitude.udeg == 0)
|
if (dive->latitude.udeg == 0 && dive->longitude.udeg == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
put_format(b, "temp = new google.maps.Marker({position: new google.maps.LatLng(%f,%f)});\n",
|
put_degrees(b, dive->latitude, "temp = new google.maps.Marker({position: new google.maps.LatLng(", "");
|
||||||
dive->latitude.udeg / 1000000.0, dive->longitude.udeg / 1000000.0);
|
put_degrees(b, dive->longitude, ",", ")});\n");
|
||||||
put_string(b, "markers.push(temp);\ntempinfowindow = new google.maps.InfoWindow({content: '<div id=\"content\">'+'<div id=\"siteNotice\">'+'</div>'+'<div id=\"bodyContent\">");
|
put_string(b, "markers.push(temp);\ntempinfowindow = new google.maps.InfoWindow({content: '<div id=\"content\">'+'<div id=\"siteNotice\">'+'</div>'+'<div id=\"bodyContent\">");
|
||||||
put_HTML_date(b, dive);
|
put_HTML_date(b, dive);
|
||||||
put_duration(b, dive->duration, "<p>duration=", " min</p>");
|
put_duration(b, dive->duration, "<p>duration=", " min</p>");
|
||||||
|
|
Loading…
Add table
Reference in a new issue