Merged master 8748
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,15 +0,0 @@
|
||||
include::./links.adoc[]
|
||||
_{prog}_ is free software: you may redistribute and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
_{prog}_ is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this documentation. If not, see {gnu_gpl}.
|
||||
|
||||
Copyright (C) 2001-2017 Joseph H Taylor, Jr., K1JT.
|
||||
@@ -0,0 +1,268 @@
|
||||
2E0DGP IO83
|
||||
5P6MJ JO54
|
||||
AA2UK FM29
|
||||
AA4HV EM55
|
||||
AA4QE EM78
|
||||
AA7UN DN32
|
||||
AB6BT CM88
|
||||
AB9QZ EN41
|
||||
AC4VM EM78
|
||||
AC9QI EN52
|
||||
AD0PL EM48
|
||||
AD9H EN61
|
||||
AF5NP EM10
|
||||
AF7M DM42
|
||||
AG4QX EL87
|
||||
AH0U CM97
|
||||
AK3Q EM79
|
||||
CC6IJM FO03
|
||||
CE4SFG FF45
|
||||
CF7GEM CN89
|
||||
CO2DC EL83
|
||||
CO2ER EL83
|
||||
CO2YQ EL83
|
||||
CO3LT EL93
|
||||
CT1FIU IN50
|
||||
CT7AEL IM69
|
||||
CU2DX HM77
|
||||
DL5UZ JN49
|
||||
DL6BEN JO44
|
||||
EA1AAE IN81
|
||||
EA5IGV IM99
|
||||
EA5ISK IM99
|
||||
EA5WO IM99
|
||||
EA5YI IM99
|
||||
EA7OM IM87
|
||||
EB3ENW JN11
|
||||
F6CAX JO00
|
||||
F6GCP JN18
|
||||
G4IUA IO91
|
||||
GI4FUE IO74
|
||||
HK2PMR FJ29
|
||||
HK4SAN FJ26
|
||||
HK6JCF FJ25
|
||||
I3FGX JN55
|
||||
IK2DJV JN45
|
||||
IK5BSC JN53
|
||||
IK8IJN JM78
|
||||
IN3BJS JN55
|
||||
IS0FWY JM49
|
||||
IU8CNE JN71
|
||||
IW4EJK JN54
|
||||
JA9AVA PM86
|
||||
JA9LJS PM86
|
||||
JR3IIR PM74
|
||||
K0AY FN20
|
||||
K1BMW CM99
|
||||
K1GG EM97
|
||||
K1HTV FM18
|
||||
K1VOI FN32
|
||||
K2AK DM41
|
||||
K2RMA EM90
|
||||
K2SST EM85
|
||||
K2TE EL98
|
||||
K3DBD FN20
|
||||
K3ZGA EL98
|
||||
K4DL EM63
|
||||
K4ELI EM74
|
||||
K4OP EM77
|
||||
K4SHQ EM64
|
||||
K5CIA EM12
|
||||
K5EJ EM45
|
||||
K5KLA EL49
|
||||
K5RCD EL09
|
||||
K5RWD EL09
|
||||
K5WP EM71
|
||||
K6JQ CM88
|
||||
K6MKF CM97
|
||||
K6RIM CM87
|
||||
K6SJT DM13
|
||||
K7CAH CN87
|
||||
K7NN DM42
|
||||
K7VNE DM43
|
||||
K9LRE EM57
|
||||
K9PY EN61
|
||||
KA1AQP FN42
|
||||
KA4RSZ EM73
|
||||
KA5JTM EL29
|
||||
KA6A EM13
|
||||
KA8TBW EN61
|
||||
KA9KQH EM59
|
||||
KB2M EL99
|
||||
KB5IKR EM70
|
||||
KC6AWX CM88
|
||||
KC9H EN62
|
||||
KC9UPE EN53
|
||||
KC9WIB EN61
|
||||
KC9WNZ EM48
|
||||
KD9E EM58
|
||||
KE0HQZ EN12
|
||||
KE0N EN34
|
||||
KE7HHW DN13
|
||||
KF4ZLO EM78
|
||||
KG5GCC EM50
|
||||
KG6TT CM88
|
||||
KG7GPM DN17
|
||||
KI7JFH CN85
|
||||
KI7MT DN46
|
||||
KK0M CM97
|
||||
KK6PTO DM14
|
||||
KM2J EL87
|
||||
KM4DDJ EM76
|
||||
KM4PJJ EM72
|
||||
KN1SIX EM90
|
||||
KN4CRD EM73
|
||||
KN9TVE EN52
|
||||
KO4PU EM67
|
||||
KP2L EM93
|
||||
KP4KD EL95
|
||||
KP4PR FK68
|
||||
KP4SX FK78
|
||||
KR6EN EM59
|
||||
KS0CW FM16
|
||||
KS4OT EM83
|
||||
KW4HT EM64
|
||||
LA5SJA KQ50
|
||||
LU6UBM FF84
|
||||
LU8AFR GF05
|
||||
LU8DQS GF05
|
||||
LU8EKC GF05
|
||||
LV7QFH EM95
|
||||
LZ1OI KN22
|
||||
M0LVL IO84
|
||||
M0OIC IO92
|
||||
M6RUG IO83
|
||||
MI0KOA IO74
|
||||
MM0LGS IO85
|
||||
N0BAK EN34
|
||||
N1SER EM90
|
||||
N2BJ EN61
|
||||
N2PPI FN30
|
||||
N3HI DM03
|
||||
N3MK FM27
|
||||
N4HYK EL87
|
||||
N4LAG EM85
|
||||
N4MKA EM84
|
||||
N5AYB EL17
|
||||
N5BCA EM12
|
||||
N5BSA EM12
|
||||
N5SLY EM13
|
||||
N6GP DM13
|
||||
N6OJ CM88
|
||||
N6PM DM13
|
||||
N6QQ DM03
|
||||
N6UK DM14
|
||||
N7IP DN26
|
||||
N7IY CN84
|
||||
N7NT DM43
|
||||
N7ZO CN85
|
||||
N8EHW EN81
|
||||
N8HMG EN91
|
||||
N8JAF EM89
|
||||
N9MUF EN51
|
||||
N9NTC EN53
|
||||
NA6L DM12
|
||||
NE6I DM12
|
||||
NN3V DM13
|
||||
NQ6F DM12
|
||||
NS2X EM76
|
||||
NU4T EM74
|
||||
NV8B EN63
|
||||
NX8Y EN80
|
||||
NY4I EL87
|
||||
ON3BZ JO20
|
||||
ON3EA JO21
|
||||
ON3LMA JO20
|
||||
ON7ZV JO20
|
||||
OT1V JO20
|
||||
OX6EYS LB60
|
||||
OZ1FHU JO55
|
||||
PA2GP JO33
|
||||
PD0LH JO22
|
||||
PD9BG JO21
|
||||
PE2K JO22
|
||||
PR7MB HI22
|
||||
PY2LK GG66
|
||||
PY2RJ GG66
|
||||
PY2XIZ GG66
|
||||
PY2YZB GG66
|
||||
PY4OY GG78
|
||||
PY7BC HI21
|
||||
RW0SR OO22
|
||||
SM6THE JO68
|
||||
SV2WT KN10
|
||||
TI4DJ EK70
|
||||
UT7QF KN77
|
||||
VA3DAZ EN82
|
||||
VA3LU EN58
|
||||
VE7AHT CN89
|
||||
VE9GJ FN77
|
||||
W0OGH DM52
|
||||
W0TW EN74
|
||||
W0YF EN11
|
||||
W1PFZ FN42
|
||||
W2HRO FN20
|
||||
W2PKY EL88
|
||||
W3BI FN20
|
||||
W3BS EM55
|
||||
W3KM FN20
|
||||
W3MR FM18
|
||||
W4EIS EM13
|
||||
W4GE FM02
|
||||
W4JSI EM64
|
||||
W4SFG EM74
|
||||
W4WYI EM83
|
||||
W5JPT EM11
|
||||
W5ZTX EL29
|
||||
W6AER CM87
|
||||
W6AUN DM79
|
||||
W6NWS FM05
|
||||
W6RYO DM08
|
||||
W7AUF CN85
|
||||
W7CT DN41
|
||||
W7DMC CN85
|
||||
W7SUR DM49
|
||||
W7VP CN87
|
||||
W8AKS EM97
|
||||
W8FHF EN90
|
||||
W8HC EM98
|
||||
W8MSC EN82
|
||||
W8OI EM88
|
||||
W8RES EM79
|
||||
W8WEJ EM99
|
||||
W8WKE EL16
|
||||
W9CTH EM69
|
||||
W9EO DM04
|
||||
W9WB EN51
|
||||
W9YSX EM79
|
||||
WA0LIF EN35
|
||||
WA1SXK EM95
|
||||
WA2HIP FN54
|
||||
WA4MIT EM63
|
||||
WA4VJK EM66
|
||||
WA6PHR CM94
|
||||
WA7DVD DN40
|
||||
WA9DU EM69
|
||||
WA9EIC EN60
|
||||
WA9JWL EN70
|
||||
WA9NNN EN61
|
||||
WB2JEP DM33
|
||||
WB2KSP FN31
|
||||
WB2REM EL97
|
||||
WB3FSR FN20
|
||||
WB5OZA EM30
|
||||
WB5TKI EL29
|
||||
WB5UDI EM20
|
||||
WB5XX EM33
|
||||
WB7UZO CN78
|
||||
WD4KAV CN87
|
||||
WD5IQR EM10
|
||||
WE5EE EL49
|
||||
WL7CG BP61
|
||||
WP4NSE FK68
|
||||
WS5W EM13
|
||||
WV5Y EL29
|
||||
WV8DOH EM99
|
||||
WV9L EM59
|
||||
WW7B DM33
|
||||
YV5BM FK60
|
||||
@@ -1,136 +0,0 @@
|
||||
/*
|
||||
#Sov Mil Order of Malta: 15: 28: EU: 41.90: -12.43: -1.0: 1A:
|
||||
#1A;
|
||||
#Spratly Islands: 26: 50: AS: 9.88: -114.23: -8.0: 1S:
|
||||
#1S,9M0,BV9S;
|
||||
#Monaco: 14: 27: EU: 43.73: -7.40: -1.0: 3A:
|
||||
#3A;
|
||||
#Heard Island: 39: 68: AF: -53.08: -73.50: -5.0: VK0H:
|
||||
#=VK0IR;
|
||||
#Macquarie Island: 30: 60: OC: -54.60: -158.88: -10.0: VK0M:
|
||||
#=VK0KEV;
|
||||
#Cocos-Keeling: 29: 54: OC: -12.15: -96.82: -6.5: VK9C:
|
||||
#AX9C,AX9Y,VH9C,VH9Y,VI9C,VI9Y,VJ9C,VJ9Y,VK9C,VK9Y,VL9C,VL9Y,VM9C,VM9Y,
|
||||
#VN9C,VN9Y,VZ9C,VZ9Y,=VK9AA;
|
||||
*/
|
||||
|
||||
|
||||
#include "countrydat.h"
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
|
||||
|
||||
void CountryDat::init(const QString filename)
|
||||
{
|
||||
_filename = filename;
|
||||
_data.clear();
|
||||
}
|
||||
|
||||
QString CountryDat::_extractName(const QString line)
|
||||
{
|
||||
int s1 = line.indexOf(':');
|
||||
if (s1>=0)
|
||||
{
|
||||
QString name = line.mid(0,s1);
|
||||
return name;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
void CountryDat::_removeBrackets(QString &line, const QString a, const QString b)
|
||||
{
|
||||
int s1 = line.indexOf(a);
|
||||
while (s1 >= 0)
|
||||
{
|
||||
int s2 = line.indexOf(b);
|
||||
line = line.mid(0,s1) + line.mid(s2+1,-1);
|
||||
s1 = line.indexOf(a);
|
||||
}
|
||||
}
|
||||
|
||||
QStringList CountryDat::_extractPrefix(QString &line, bool &more)
|
||||
{
|
||||
line = line.remove(" \n");
|
||||
line = line.replace("=","");
|
||||
line = line.replace(" ","");
|
||||
|
||||
_removeBrackets(line,"(",")");
|
||||
_removeBrackets(line,"[","]");
|
||||
_removeBrackets(line,"<",">");
|
||||
_removeBrackets(line,"~","~");
|
||||
|
||||
int s1 = line.indexOf(';');
|
||||
more = true;
|
||||
if (s1 >= 0)
|
||||
{
|
||||
line = line.mid(0,s1);
|
||||
more = false;
|
||||
}
|
||||
|
||||
QStringList r = line.split(',');
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
void CountryDat::load()
|
||||
{
|
||||
_data.clear();
|
||||
_countryNames.clear(); //used by countriesWorked
|
||||
|
||||
QFile inputFile(_filename);
|
||||
if (inputFile.open(QIODevice::ReadOnly))
|
||||
{
|
||||
QTextStream in(&inputFile);
|
||||
while ( !in.atEnd() )
|
||||
{
|
||||
QString line1 = in.readLine();
|
||||
if ( !in.atEnd() )
|
||||
{
|
||||
QString line2 = in.readLine();
|
||||
|
||||
QString name = _extractName(line1);
|
||||
if (name.length()>0)
|
||||
{
|
||||
_countryNames << name;
|
||||
bool more = true;
|
||||
QStringList prefixs;
|
||||
while (more)
|
||||
{
|
||||
QStringList p = _extractPrefix(line2,more);
|
||||
prefixs += p;
|
||||
if (more)
|
||||
line2 = in.readLine();
|
||||
}
|
||||
|
||||
QString p;
|
||||
foreach(p,prefixs)
|
||||
{
|
||||
if (p.length() > 0)
|
||||
_data.insert(p,name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
inputFile.close();
|
||||
}
|
||||
}
|
||||
|
||||
// return country name else ""
|
||||
QString CountryDat::find(const QString prefix)
|
||||
{
|
||||
QString pf = prefix.toUpper();
|
||||
while(pf.length() >= 1)
|
||||
{
|
||||
if (_data.contains(pf))
|
||||
{
|
||||
QString country = _data.value(pf);
|
||||
return country;
|
||||
}
|
||||
pf = pf.left(pf.length()-1);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,168 @@
|
||||
# - Returns a version string from Git
|
||||
#
|
||||
# These functions force a re-configure on each git commit so that you can
|
||||
# trust the values of the variables in your build system.
|
||||
#
|
||||
# get_git_head_revision(<source_dir> <refspecvar> <hashvar> [<additional arguments to git describe> ...])
|
||||
#
|
||||
# Returns the refspec and sha hash of the current head revision
|
||||
#
|
||||
# git_describe(<source-dir> <var> [<additional arguments to git describe> ...])
|
||||
#
|
||||
# Returns the results of git describe on the source tree, and adjusting
|
||||
# the output so that it tests false if an error occurs.
|
||||
#
|
||||
# git_get_exact_tag(<source-dir> <var> [<additional arguments to git describe> ...])
|
||||
#
|
||||
# Returns the results of git describe --exact-match on the source tree,
|
||||
# and adjusting the output so that it tests false if there was no exact
|
||||
# matching tag.
|
||||
#
|
||||
# git_local_changes(<source-dir> <var>)
|
||||
#
|
||||
# Returns either "CLEAN" or "DIRTY" with respect to uncommitted changes.
|
||||
# Uses the return code of "git diff-index --quiet HEAD --".
|
||||
# Does not regard untracked files.
|
||||
#
|
||||
# Requires CMake 2.6 or newer (uses the 'function' command)
|
||||
#
|
||||
# Original Author:
|
||||
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
|
||||
# http://academic.cleardefinition.com
|
||||
# Iowa State University HCI Graduate Program/VRAC
|
||||
#
|
||||
# Copyright Iowa State University 2009-2010.
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
if(__get_git_revision_description)
|
||||
return()
|
||||
endif()
|
||||
set(__get_git_revision_description YES)
|
||||
|
||||
# We must run the following at "include" time, not at function call time,
|
||||
# to find the path to this module rather than the path to a calling list file
|
||||
get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH)
|
||||
|
||||
function(get_git_head_revision _source_dir _refspecvar _hashvar)
|
||||
set(GIT_PARENT_DIR "${_source_dir}")
|
||||
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
|
||||
while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories
|
||||
set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}")
|
||||
get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH)
|
||||
if(GIT_PARENT_DIR STREQUAL GIT_PREVIOUS_PARENT)
|
||||
# We have reached the root directory, we are not in git
|
||||
set(${_refspecvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
|
||||
set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
|
||||
endwhile()
|
||||
# check if this is a submodule
|
||||
if(NOT IS_DIRECTORY ${GIT_DIR})
|
||||
file(READ ${GIT_DIR} submodule)
|
||||
string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule})
|
||||
get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH)
|
||||
get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE)
|
||||
endif()
|
||||
set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data")
|
||||
if(NOT EXISTS "${GIT_DATA}")
|
||||
file(MAKE_DIRECTORY "${GIT_DATA}")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${GIT_DIR}/HEAD")
|
||||
return()
|
||||
endif()
|
||||
set(HEAD_FILE "${GIT_DATA}/HEAD")
|
||||
configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY)
|
||||
|
||||
configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in"
|
||||
"${GIT_DATA}/grabRef.cmake"
|
||||
@ONLY)
|
||||
include("${GIT_DATA}/grabRef.cmake")
|
||||
|
||||
set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE)
|
||||
set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(git_describe _source_dir _var)
|
||||
if(NOT GIT_FOUND)
|
||||
find_package(Git QUIET)
|
||||
endif()
|
||||
get_git_head_revision(${_source_dir} refspec hash)
|
||||
if(NOT GIT_FOUND)
|
||||
set(${_var} "GIT-NOTFOUND" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
if(NOT hash)
|
||||
set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
# TODO sanitize
|
||||
#if((${ARGN}" MATCHES "&&") OR
|
||||
# (ARGN MATCHES "||") OR
|
||||
# (ARGN MATCHES "\\;"))
|
||||
# message("Please report the following error to the project!")
|
||||
# message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}")
|
||||
#endif()
|
||||
|
||||
#message(STATUS "Arguments to execute_process: ${ARGN}")
|
||||
|
||||
execute_process(COMMAND
|
||||
"${GIT_EXECUTABLE}"
|
||||
describe
|
||||
${hash}
|
||||
${ARGN}
|
||||
WORKING_DIRECTORY
|
||||
"${_source_dir}"
|
||||
RESULT_VARIABLE
|
||||
res
|
||||
OUTPUT_VARIABLE
|
||||
out
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if(NOT res EQUAL 0)
|
||||
set(out "${out}-${res}-NOTFOUND")
|
||||
endif()
|
||||
|
||||
set(${_var} "${out}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(git_get_exact_tag _source_dir _var)
|
||||
git_describe(${_source_dir} out --exact-match ${ARGN})
|
||||
set(${_var} "${out}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(git_local_changes _source_dir _var)
|
||||
if(NOT GIT_FOUND)
|
||||
find_package(Git QUIET)
|
||||
endif()
|
||||
get_git_head_revision(${_source_dir} refspec hash)
|
||||
if(NOT GIT_FOUND)
|
||||
set(${_var} "GIT-NOTFOUND" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
if(NOT hash)
|
||||
set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
execute_process(COMMAND
|
||||
"${GIT_EXECUTABLE}"
|
||||
diff-index --quiet HEAD --
|
||||
WORKING_DIRECTORY
|
||||
"${_source_dir}"
|
||||
RESULT_VARIABLE
|
||||
res
|
||||
OUTPUT_VARIABLE
|
||||
out
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if(res EQUAL 0)
|
||||
set(${_var} "CLEAN" PARENT_SCOPE)
|
||||
else()
|
||||
set(${_var} "DIRTY" PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user