aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-03-28 15:11:53 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-03-29 09:18:04 +0200
commit422ed7b63331d1cbf8f58dcc694404bbb8b4a335 (patch)
tree7096eebe8b2f036c2d8e75657138ca055452fe09
parent4bc990ce7678117bf3ecba6646e0df06d03c0f2f (diff)
libmm-common,location-gps-nmea: ensure traces get separated with \r\n
-rw-r--r--libmm-common/mm-location-gps-nmea.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/libmm-common/mm-location-gps-nmea.c b/libmm-common/mm-location-gps-nmea.c
index 46c685c2..7ef478ff 100644
--- a/libmm-common/mm-location-gps-nmea.c
+++ b/libmm-common/mm-location-gps-nmea.c
@@ -77,14 +77,18 @@ location_gps_nmea_take_trace (MMLocationGpsNmea *self,
if (check_append_or_replace (self, trace)) {
/* Append */
const gchar *previous;
- gchar *sequence;
previous = g_hash_table_lookup (self->priv->traces, trace_type);
- sequence = g_strdup_printf ("%s%s",
- previous ? previous : "",
- trace);
- g_free (trace);
- trace = sequence;
+ if (previous) {
+ gchar *sequence;
+
+ sequence = g_strdup_printf ("%s%s%s",
+ previous,
+ g_str_has_suffix (previous, "\r\n") ? "" : "\r\n",
+ trace);
+ g_free (trace);
+ trace = sequence;
+ }
}
g_hash_table_replace (self->priv->traces,
@@ -116,7 +120,10 @@ build_full_foreach (const gchar *trace_type,
const gchar *trace,
GString **built)
{
- g_string_append (*built, trace);
+ if ((*built)->len == 0 || g_str_has_suffix ((*built)->str, "\r\n"))
+ g_string_append (*built, trace);
+ else
+ g_string_append_printf (*built, "\r\n%s", trace);
}
gchar *