137 |
FILE *fp = (FILE *) handle->priv; |
FILE *fp = (FILE *) handle->priv; |
138 |
gint i, ret; |
gint i, ret; |
139 |
qso_t q[QSO_FIELDS]; |
qso_t q[QSO_FIELDS]; |
140 |
gchar *field, *end, buffer[MAXROWLEN+1], *curlocale, *d, *res = NULL, |
gchar *field, *end, buffer[MAXROWLEN+1], *d, *res = NULL, buf[20]; |
|
buf[20]; |
|
141 |
const gint *widths = trlog_widths; |
const gint *widths = trlog_widths; |
142 |
struct tm tm_trlog; |
struct tm tm_trlog; |
143 |
|
|
144 |
/* get current language settings and set environment for trlog import */ |
/* get current language settings and set environment for trlog import */ |
145 |
curlocale = setlocale (LC_ALL, NULL); |
setlocale (LC_TIME, "C"); |
|
setlocale (LC_ALL, "C"); |
|
146 |
|
|
147 |
while (!feof (fp)) |
while (!feof (fp)) |
148 |
{ |
{ |
213 |
res = strptime (d, "%d %b %Y", &tm_trlog); |
res = strptime (d, "%d %b %Y", &tm_trlog); |
214 |
if (res != NULL) |
if (res != NULL) |
215 |
{ |
{ |
216 |
setlocale (LC_ALL, curlocale); |
setlocale (LC_TIME, ""); |
217 |
strftime (buf, 20, "%d %b %Y", &tm_trlog); |
strftime (buf, 20, "%d %b %Y", &tm_trlog); |
218 |
q[trlog_fields[i]] = g_strdup (buf); |
q[trlog_fields[i]] = g_strdup (buf); |
219 |
setlocale (LC_ALL, "C"); |
setlocale (LC_TIME, "C"); |
220 |
} |
} |
221 |
else |
else |
222 |
q[trlog_fields[i]] = g_strdup (d); |
q[trlog_fields[i]] = g_strdup (d); |
227 |
field = end + 1; |
field = end + 1; |
228 |
} |
} |
229 |
/* restore locale */ |
/* restore locale */ |
230 |
setlocale (LC_ALL, curlocale); |
setlocale (LC_TIME, ""); |
231 |
ret = (*fn) (handle, q, arg); |
ret = (*fn) (handle, q, arg); |
232 |
if (ret) return ret; |
if (ret) return ret; |
233 |
} |
} |
234 |
setlocale (LC_ALL, curlocale); |
setlocale (LC_TIME, ""); |
235 |
return 0; |
return 0; |
236 |
} |
} |