summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libmateweather/weather-metar.c176
1 files changed, 88 insertions, 88 deletions
diff --git a/libmateweather/weather-metar.c b/libmateweather/weather-metar.c
index 5bcabc3..89a1eb7 100644
--- a/libmateweather/weather-metar.c
+++ b/libmateweather/weather-metar.c
@@ -56,7 +56,7 @@ make_time (gint utcDate, gint utcHour, gint utcMin)
* 24 hrs old! */
if ((utcDate > tm.tm_mday) && (tm.tm_mday == 1)) {
tm.tm_mday = 0; /* mktime knows this is the last day of the previous
- * month. */
+ * month. */
} else {
tm.tm_mday = utcDate;
}
@@ -102,15 +102,15 @@ metar_tok_wind (gchar *tokp, WeatherInfo *info)
gustp = strchr (tokp, 'G');
if (gustp) {
memset (sgust, 0, sizeof (sgust));
- glen = strspn (gustp + 1, CONST_DIGITS);
+ glen = strspn (gustp + 1, CONST_DIGITS);
strncpy (sgust, gustp + 1, glen);
- tokp = gustp + 1 + glen;
+ tokp = gustp + 1 + glen;
}
if (!strcmp (tokp, "MPS"))
- info->windspeed = WINDSPEED_MS_TO_KNOTS ((WeatherWindSpeed)spd);
+ info->windspeed = WINDSPEED_MS_TO_KNOTS ((WeatherWindSpeed)spd);
else
- info->windspeed = (WeatherWindSpeed)spd;
+ info->windspeed = (WeatherWindSpeed)spd;
if ((349 <= dir) || (dir <= 11))
info->wind = WIND_N;
@@ -163,33 +163,33 @@ metar_tok_vis (gchar *tokp, WeatherInfo *info)
// US observation: field ends with "SM"
pfrac = strchr (tokp, '/');
if (pfrac) {
- if (*tokp == 'M') {
- info->visibility = 0.001;
- } else {
- num = (*(pfrac - 1) - '0');
- strncpy (sval, pfrac + 1, pend - pfrac - 1);
- den = atoi (sval);
- info->visibility =
- ((WeatherVisibility)num / ((WeatherVisibility)den));
-
- psp = strchr (tokp, ' ');
- if (psp) {
- *psp = '\0';
- val = atoi (tokp);
- info->visibility += (WeatherVisibility)val;
- }
- }
- } else {
- strncpy (sval, tokp, pend - tokp);
+ if (*tokp == 'M') {
+ info->visibility = 0.001;
+ } else {
+ num = (*(pfrac - 1) - '0');
+ strncpy (sval, pfrac + 1, pend - pfrac - 1);
+ den = atoi (sval);
+ info->visibility =
+ ((WeatherVisibility)num / ((WeatherVisibility)den));
+
+ psp = strchr (tokp, ' ');
+ if (psp) {
+ *psp = '\0';
+ val = atoi (tokp);
+ info->visibility += (WeatherVisibility)val;
+ }
+ }
+ } else {
+ strncpy (sval, tokp, pend - tokp);
val = atoi (sval);
info->visibility = (WeatherVisibility)val;
- }
+ }
} else {
// International observation: NNNN(DD NNNNDD)?
// For now: use only the minimum visibility and ignore its direction
strncpy (sval, tokp, strspn (tokp, CONST_DIGITS));
- val = atoi (sval);
- info->visibility = (WeatherVisibility)val / VISIBILITY_SM_TO_M (1.);
+ val = atoi (sval);
+ info->visibility = (WeatherVisibility)val / VISIBILITY_SM_TO_M (1.);
}
}
@@ -261,12 +261,12 @@ metar_tok_temp (gchar *tokp, WeatherInfo *info)
pdew = psep + 1;
info->temp = (*ptemp == 'M') ? TEMP_C_TO_F (-atoi (ptemp + 1))
- : TEMP_C_TO_F (atoi (ptemp));
+ : TEMP_C_TO_F (atoi (ptemp));
if (*pdew) {
- info->dew = (*pdew == 'M') ? TEMP_C_TO_F (-atoi (pdew + 1))
- : TEMP_C_TO_F (atoi (pdew));
+ info->dew = (*pdew == 'M') ? TEMP_C_TO_F (-atoi (pdew + 1))
+ : TEMP_C_TO_F (atoi (pdew));
} else {
- info->dew = -1000.0;
+ info->dew = -1000.0;
}
}
@@ -447,7 +447,7 @@ metar_parse (gchar *metar, WeatherInfo *info)
*/
if (0 != (p = strstr (metar, " RMK "))) {
*p = '\0';
- //rmk = p + 5; // uncomment this if RMK data becomes useful
+ //rmk = p + 5; // uncomment this if RMK data becomes useful
}
p = metar;
@@ -455,32 +455,32 @@ metar_parse (gchar *metar, WeatherInfo *info)
while (*p) {
i2 = RE_NUM;
- rm2.rm_so = strlen (p);
- rm2.rm_eo = rm2.rm_so;
+ rm2.rm_so = strlen (p);
+ rm2.rm_eo = rm2.rm_so;
for (i = 0; i < RE_NUM && rm2.rm_so > 0; i++) {
- if (0 == regexec (&metar_re[i], p, 1, &rm, 0)
- && rm.rm_so < rm2.rm_so)
- {
- i2 = i;
- /* Skip leading and trailing space characters, if present.
- (the regular expressions include those characters to
- only get matches limited to whole words). */
- if (p[rm.rm_so] == ' ') rm.rm_so++;
- if (p[rm.rm_eo - 1] == ' ') rm.rm_eo--;
- rm2.rm_so = rm.rm_so;
- rm2.rm_eo = rm.rm_eo;
- }
- }
-
- if (i2 != RE_NUM) {
- tokp = g_strndup (p + rm2.rm_so, rm2.rm_eo - rm2.rm_so);
- metar_f[i2] (tokp, info);
- g_free (tokp);
- }
-
- p += rm2.rm_eo;
- p += strspn (p, " ");
+ if (0 == regexec (&metar_re[i], p, 1, &rm, 0)
+ && rm.rm_so < rm2.rm_so)
+ {
+ i2 = i;
+ /* Skip leading and trailing space characters, if present.
+ (the regular expressions include those characters to
+ only get matches limited to whole words). */
+ if (p[rm.rm_so] == ' ') rm.rm_so++;
+ if (p[rm.rm_eo - 1] == ' ') rm.rm_eo--;
+ rm2.rm_so = rm.rm_so;
+ rm2.rm_eo = rm.rm_eo;
+ }
+ }
+
+ if (i2 != RE_NUM) {
+ tokp = g_strndup (p + rm2.rm_so, rm2.rm_eo - rm2.rm_so);
+ metar_f[i2] (tokp, info);
+ g_free (tokp);
+ }
+
+ p += rm2.rm_eo;
+ p += strspn (p, " ");
}
return TRUE;
}
@@ -497,15 +497,15 @@ metar_finish (SoupSession *session, SoupMessage *msg, gpointer data)
g_return_if_fail (info != NULL);
if (!SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) {
- if (SOUP_STATUS_IS_TRANSPORT_ERROR (msg->status_code))
- info->network_error = TRUE;
- else {
- /* Translators: %d is an error code, and %s the error string */
- g_warning (_("Failed to get METAR data: %d %s.\n"),
- msg->status_code, msg->reason_phrase);
- }
- request_done (info, FALSE);
- return;
+ if (SOUP_STATUS_IS_TRANSPORT_ERROR (msg->status_code))
+ info->network_error = TRUE;
+ else {
+ /* Translators: %d is an error code, and %s the error string */
+ g_warning (_("Failed to get METAR data: %d %s.\n"),
+ msg->status_code, msg->reason_phrase);
+ }
+ request_done (info, FALSE);
+ return;
}
loc = info->location;
@@ -514,20 +514,20 @@ metar_finish (SoupSession *session, SoupMessage *msg, gpointer data)
p = strstr (msg->response_body->data, searchkey);
g_free (searchkey);
if (p) {
- p += WEATHER_LOCATION_CODE_LEN + 2;
- eoln = strchr(p, '\n');
- if (eoln)
- metar = g_strndup (p, eoln - p);
- else
- metar = g_strdup (p);
- success = metar_parse (metar, info);
- g_free (metar);
+ p += WEATHER_LOCATION_CODE_LEN + 2;
+ eoln = strchr(p, '\n');
+ if (eoln)
+ metar = g_strndup (p, eoln - p);
+ else
+ metar = g_strdup (p);
+ success = metar_parse (metar, info);
+ g_free (metar);
} else if (!strstr (msg->response_body->data, "aviationweather.gov")) {
- /* The response doesn't even seem to have come from NOAA...
- * most likely it is a wifi hotspot login page. Call that a
- * network error.
- */
- info->network_error = TRUE;
+ /* The response doesn't even seem to have come from NOAA...
+ * most likely it is a wifi hotspot login page. Call that a
+ * network error.
+ */
+ info->network_error = TRUE;
}
info->valid = success;
@@ -545,20 +545,20 @@ metar_start_open (WeatherInfo *info)
info->valid = info->network_error = FALSE;
loc = info->location;
if (loc == NULL) {
- g_warning (_("WeatherInfo missing location"));
- return;
+ g_warning (_("WeatherInfo missing location"));
+ return;
}
msg = soup_form_request_new (
- "GET", "https://www.aviationweather.gov/adds/dataserver_current/httpparam",
- "dataSource", "metars",
- "requestType", "retrieve",
- "format", "xml",
- "hoursBeforeNow", "3",
- "mostRecent", "true",
- "fields", "raw_text",
- "stationString", loc->code,
- NULL);
+ "GET", "https://www.aviationweather.gov/adds/dataserver_current/httpparam",
+ "dataSource", "metars",
+ "requestType", "retrieve",
+ "format", "xml",
+ "hoursBeforeNow", "3",
+ "mostRecent", "true",
+ "fields", "raw_text",
+ "stationString", loc->code,
+ NULL);
soup_session_queue_message (info->session, msg, metar_finish, info);
info->requests_pending++;