71 |
static gint adif_qso_foreach |
static gint adif_qso_foreach |
72 |
(LOGDB *handle, gint (*fn)(LOGDB*, qso_t*, gpointer arg), gpointer arg) |
(LOGDB *handle, gint (*fn)(LOGDB*, qso_t*, gpointer arg), gpointer arg) |
73 |
{ |
{ |
74 |
gchar line [1024], sdate[16], *buffer; |
gchar line [1024], sdate[16], *buffer, *p; |
75 |
gchar **adifline, **adifitem, **adifid; |
gchar **adifline, **adifitem, **adifid; |
76 |
gint ret, items, i=0; |
gint ret, items, i=0; |
77 |
struct tm timestruct; |
struct tm timestruct; |
102 |
if (items > 2) /* we have a valid adif line*/ |
if (items > 2) /* we have a valid adif line*/ |
103 |
{ |
{ |
104 |
for (i = 0; i < items; i++) |
for (i = 0; i < items; i++) |
105 |
if (g_strrstr (adifline[i], ">") && g_strrstr (adifline[i], ":")) |
if (g_strrstr (adifline[i], ">") |
106 |
|
&& g_strrstr (adifline[i], ":")) |
107 |
/* valid adif item */ |
/* valid adif item */ |
108 |
{ |
{ |
109 |
adifitem = g_strsplit (adifline[i], ">", 2); |
adifitem = g_strsplit (adifline[i], ">", 2); |
113 |
if (!strcasecmp (adifid[0], "CALL")) |
if (!strcasecmp (adifid[0], "CALL")) |
114 |
{ |
{ |
115 |
adif_field = CALL; |
adif_field = CALL; |
116 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
117 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
118 |
} |
} |
119 |
else if (!strcasecmp (adifid[0], "QSO_DATE")) |
else if (!strcasecmp (adifid[0], "QSO_DATE")) |
120 |
{ |
{ |
129 |
else if (!strcasecmp (adifid[0], "TIME_ON")) |
else if (!strcasecmp (adifid[0], "TIME_ON")) |
130 |
{ |
{ |
131 |
adif_field = GMT; |
adif_field = GMT; |
132 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
133 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
134 |
} |
} |
135 |
else if (!strcasecmp (adifid[0], "TIME_OFF")) |
else if (!strcasecmp (adifid[0], "TIME_OFF")) |
136 |
{ |
{ |
137 |
adif_field = GMTEND; |
adif_field = GMTEND; |
138 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
139 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
140 |
} |
} |
141 |
else if (!strcasecmp (adifid[0], "BAND")) |
else if (!strcasecmp (adifid[0], "BAND")) |
142 |
{ |
{ |
144 |
if (!q[BAND]) |
if (!q[BAND]) |
145 |
{ |
{ |
146 |
adif_field = BAND; |
adif_field = BAND; |
147 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
148 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
149 |
} |
} |
150 |
} |
} |
151 |
else if (!strcasecmp (adifid[0], "FREQ")) |
else if (!strcasecmp (adifid[0], "FREQ")) |
157 |
q[BAND] = NULL; |
q[BAND] = NULL; |
158 |
} |
} |
159 |
adif_field = BAND; |
adif_field = BAND; |
160 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
if ((p = g_strrstr(adifitem[1], ","))) |
161 |
|
*p = '.'; |
162 |
|
q[adif_field] = |
163 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
164 |
} |
} |
165 |
else if (!strcasecmp (adifid[0], "MODE")) |
else if (!strcasecmp (adifid[0], "MODE")) |
166 |
{ |
{ |
167 |
adif_field = MODE; |
adif_field = MODE; |
168 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
169 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
170 |
} |
} |
171 |
else if (!strcasecmp (adifid[0], "TX_PWR")) |
else if (!strcasecmp (adifid[0], "TX_PWR")) |
172 |
{ |
{ |
173 |
adif_field = POWER; |
adif_field = POWER; |
174 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
175 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
176 |
} |
} |
177 |
else if (!strcasecmp (adifid[0], "RST_SENT")) |
else if (!strcasecmp (adifid[0], "RST_SENT")) |
178 |
{ |
{ |
179 |
adif_field = RST; |
adif_field = RST; |
180 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
181 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
182 |
} |
} |
183 |
else if (!strcasecmp (adifid[0], "RST_RCVD")) |
else if (!strcasecmp (adifid[0], "RST_RCVD")) |
184 |
{ |
{ |
185 |
adif_field = MYRST; |
adif_field = MYRST; |
186 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
187 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
188 |
} |
} |
189 |
else if (!strcasecmp (adifid[0], "QSL_SENT")) |
else if (!strcasecmp (adifid[0], "QSL_SENT")) |
190 |
{ |
{ |
191 |
adif_field = QSLOUT; |
adif_field = QSLOUT; |
192 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
193 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
194 |
} |
} |
195 |
else if (!strcasecmp (adifid[0], "QSL_RCVD")) |
else if (!strcasecmp (adifid[0], "QSL_RCVD")) |
196 |
{ |
{ |
197 |
adif_field = QSLIN; |
adif_field = QSLIN; |
198 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
199 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
200 |
} |
} |
201 |
else if (!strcasecmp (adifid[0], "NAME")) |
else if (!strcasecmp (adifid[0], "NAME")) |
202 |
{ |
{ |
203 |
adif_field = NAME; |
adif_field = NAME; |
204 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
205 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
206 |
} |
} |
207 |
else if (!strcasecmp (adifid[0], "QTH")) |
else if (!strcasecmp (adifid[0], "QTH")) |
208 |
{ |
{ |
209 |
adif_field = QTH; |
adif_field = QTH; |
210 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
211 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
212 |
} |
} |
213 |
else if (!strcasecmp (adifid[0], "GRIDSQUARE")) |
else if (!strcasecmp (adifid[0], "GRIDSQUARE")) |
214 |
{ |
{ |
215 |
adif_field = LOCATOR; |
adif_field = LOCATOR; |
216 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
217 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
218 |
} |
} |
219 |
else if (!strcasecmp (adifid[0], "COMMENT")) |
else if (!strcasecmp (adifid[0], "COMMENT")) |
220 |
{ |
{ |
221 |
adif_field = REMARKS; |
adif_field = REMARKS; |
222 |
q[adif_field] = g_strndup (adifitem[1], atoi(adifid[1])); |
q[adif_field] = |
223 |
|
g_strndup (adifitem[1], atoi(adifid[1])); |
224 |
} |
} |
225 |
|
|
226 |
g_strfreev (adifid); |
g_strfreev (adifid); |
284 |
|
|
285 |
/* write header */ |
/* write header */ |
286 |
fprintf(fp, "ADIF Export from " PACKAGE " Version " VERSION "\n" |
fprintf(fp, "ADIF Export from " PACKAGE " Version " VERSION "\n" |
287 |
"Copyright (C) 2001-2004 Joop Stakenborg <pg4i@amsat.org>\n" |
"Copyright (C) 2001-2005 Joop Stakenborg <pg4i@amsat.org>\n" |
288 |
"Internet: http://www.qsl.net/pg4i/linux/xlog.html\n\n" |
"Internet: http://www.qsl.net/pg4i/linux/xlog.html\n\n" |
289 |
"Date of export: %s\n", |
"Date of export: %s\n", |
290 |
sdate); |
sdate); |