+ // In fact both kml & gpx files start the same as they are in xml
+ if ( check_file_ext ( filename, ".kml" ) && check_magic ( f, GPX_MAGIC ) ) {
+ // Implicit Conversion
+ if ( ! ( success = a_babel_convert_from ( VIK_TRW_LAYER(vtl), "-i kml", filename, NULL, NULL ) ) ) {
+ load_answer = LOAD_TYPE_GPSBABEL_FAILURE;
+ }
+ }
+ // NB use a extension check first, as a GPX file header may have a Byte Order Mark (BOM) in it
+ // - which currently confuses our check_magic function
+ else if ( check_file_ext ( filename, ".gpx" ) || check_magic ( f, GPX_MAGIC ) ) {
+ if ( ! ( success = a_gpx_read_file ( VIK_TRW_LAYER(vtl), f ) ) ) {
+ load_answer = LOAD_TYPE_GPX_FAILURE;
+ }
+ }
+ else {
+ // Try final supported file type
+ if ( ! ( success = a_gpspoint_read_file ( VIK_TRW_LAYER(vtl), f ) ) ) {
+ // Failure here means we don't know how to handle the file
+ load_answer = LOAD_TYPE_UNSUPPORTED_FAILURE;
+ }
+ }