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)
|
||||
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_pressure(struct membuffer *, pressure_t, 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
|
||||
}
|
||||
|
|
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)
|
||||
|
||||
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)
|
||||
{
|
||||
if (latitude.udeg || longitude.udeg) {
|
||||
put_string(b, "gps ");
|
||||
put_degrees(b, latitude, ' ');
|
||||
put_degrees(b, longitude, '\n');
|
||||
put_degrees(b, latitude, "gps ", " ");
|
||||
put_degrees(b, longitude, "", "\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -94,8 +94,8 @@ void writeMarkers(struct membuffer *b)
|
|||
if (dive->latitude.udeg == 0 && dive->longitude.udeg == 0)
|
||||
continue;
|
||||
|
||||
put_format(b, "temp = new google.maps.Marker({position: new google.maps.LatLng(%f,%f)});\n",
|
||||
dive->latitude.udeg / 1000000.0, dive->longitude.udeg / 1000000.0);
|
||||
put_degrees(b, dive->latitude, "temp = new google.maps.Marker({position: new google.maps.LatLng(", "");
|
||||
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_HTML_date(b, dive);
|
||||
put_duration(b, dive->duration, "<p>duration=", " min</p>");
|
||||
|
|
Loading…
Add table
Reference in a new issue