diff --git a/.gitignore b/.gitignore index 17978f5ab..e3b8a099e 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,31 @@ Release Release_Build Debug_Build __history + +#Ignore files built by Visual Studio +*.obj +*.exe +*.pdb +*.user +*.aps +*.pch +*.vspscc +*_i.c +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.cache +*.ilk +*.log +[Bb]in +[Dd]ebug*/ +*.lib +*.sbr +obj/ +[Rr]elease*/ +_ReSharper*/ +[Tt]est[Rr]esult* +.vs/ \ No newline at end of file diff --git a/app/convbin/convbin.c b/app/convbin/convbin.c index 2f5ffafe8..076cba918 100644 --- a/app/convbin/convbin.c +++ b/app/convbin/convbin.c @@ -599,7 +599,9 @@ int main(int argc, char **argv) signal(SIGINT, sigshut); /* keyboard interrupt */ signal(SIGTERM, sigshut); /* external shutdown signal */ +#ifndef WIN32 signal(SIGUSR2, sigshut); +#endif // !WIN32 stat=convbin(format,&opt,ifile,ofile,dir,&intflg,&stream); diff --git a/app/convbin/msc/clean.bat b/app/convbin/msc/clean.bat deleted file mode 100644 index cc57642c6..000000000 --- a/app/convbin/msc/clean.bat +++ /dev/null @@ -1,19 +0,0 @@ -del Release\*.obj -del Release\*.exe -del Release\*.res -del Release\*.manifest -del Release\*.pdb -del Release\*.idb -del Release\*.ilk -del Release\*.dep -del Release\*.htm -del Debug\*.obj -del Debug\*.exe -del Debug\*.res -del Debug\*.manifest -del Debug\*.pdb -del Debug\*.idb -del Debug\*.ilk -del Debug\*.dep -del Debug\*.htm -del *.ncb diff --git a/app/convbin/msc/install.bat b/app/convbin/msc/install.bat deleted file mode 100644 index 386e94f22..000000000 --- a/app/convbin/msc/install.bat +++ /dev/null @@ -1 +0,0 @@ -copy Release\convbin.exe ..\..\..\bin diff --git a/app/convbin/msc/msc.sln b/app/convbin/msc/msc.sln deleted file mode 100644 index 13ce11219..000000000 --- a/app/convbin/msc/msc.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msc", "msc.vcxproj", "{A9A9B274-2448-4FA0-AC05-857D411DCA48}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A9A9B274-2448-4FA0-AC05-857D411DCA48}.Debug|Win32.ActiveCfg = Debug|Win32 - {A9A9B274-2448-4FA0-AC05-857D411DCA48}.Debug|Win32.Build.0 = Debug|Win32 - {A9A9B274-2448-4FA0-AC05-857D411DCA48}.Release|Win32.ActiveCfg = Release|Win32 - {A9A9B274-2448-4FA0-AC05-857D411DCA48}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/app/convbin/msc/msc.suo b/app/convbin/msc/msc.suo deleted file mode 100644 index 4af7c253e..000000000 Binary files a/app/convbin/msc/msc.suo and /dev/null differ diff --git a/app/convbin/msc/msc.vcproj b/app/convbin/msc/msc.vcproj deleted file mode 100644 index 926cfab5f..000000000 --- a/app/convbin/msc/msc.vcproj +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/convbin/msc/msc.vcproj.falcon.ttaka.user b/app/convbin/msc/msc.vcproj.falcon.ttaka.user deleted file mode 100644 index 841eea91f..000000000 --- a/app/convbin/msc/msc.vcproj.falcon.ttaka.user +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - diff --git a/app/convbin/msc/msc.vcxproj b/app/convbin/msc/msc.vcxproj deleted file mode 100644 index ea0f6fd7f..000000000 --- a/app/convbin/msc/msc.vcxproj +++ /dev/null @@ -1,130 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {A9A9B274-2448-4FA0-AC05-857D411DCA48} - msc - Win32Proj - - - - Application - NotSet - true - - - Application - Unicode - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - convbin - convbin - - - - Disabled - ..\..\..\src;%(AdditionalIncludeDirectories) - WIN32;_CRT_SECURE_NO_DEPRECATE;ENAGLO;ENAQZS;ENAGAL;NFREQ=3;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - - - Level3 - EditAndContinue - - - winmm.lib;%(AdditionalDependencies) - $(OutDir)convbin.exe - true - Console - false - - - MachineX86 - - - - - ..\..\..\src;%(AdditionalIncludeDirectories) - WIN32;_CRT_SECURE_NO_DEPRECATE;ENAGLO;ENAQZS;ENAGAL;NFREQ=3;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - winmm.lib;%(AdditionalDependencies) - $(OutDir)convbin.exe - %(AdditionalLibraryDirectories) - true - Console - true - true - false - - - MachineX86 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/convbin/msvc/convbin.sln b/app/convbin/msvc/convbin.sln new file mode 100644 index 000000000..6648bca9e --- /dev/null +++ b/app/convbin/msvc/convbin.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msvc", "msvc.vcxproj", "{E3539363-F2A4-4CFE-9657-57BA1908919F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E3539363-F2A4-4CFE-9657-57BA1908919F}.Debug|x64.ActiveCfg = Debug|x64 + {E3539363-F2A4-4CFE-9657-57BA1908919F}.Debug|x64.Build.0 = Debug|x64 + {E3539363-F2A4-4CFE-9657-57BA1908919F}.Debug|x86.ActiveCfg = Debug|Win32 + {E3539363-F2A4-4CFE-9657-57BA1908919F}.Debug|x86.Build.0 = Debug|Win32 + {E3539363-F2A4-4CFE-9657-57BA1908919F}.Release|x64.ActiveCfg = Release|x64 + {E3539363-F2A4-4CFE-9657-57BA1908919F}.Release|x64.Build.0 = Release|x64 + {E3539363-F2A4-4CFE-9657-57BA1908919F}.Release|x86.ActiveCfg = Release|Win32 + {E3539363-F2A4-4CFE-9657-57BA1908919F}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/app/convbin/msvc/msvc.vcxproj b/app/convbin/msvc/msvc.vcxproj new file mode 100644 index 000000000..836613d38 --- /dev/null +++ b/app/convbin/msvc/msvc.vcxproj @@ -0,0 +1,168 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {E3539363-F2A4-4CFE-9657-57BA1908919F} + msvc + 8.1 + convbin + + + + Application + true + v140 + MultiByte + + + Application + false + v140 + true + MultiByte + + + Application + true + v140 + MultiByte + + + Application + false + v140 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + + + Level3 + Disabled + true + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + QT;ENAGLO;ENAGAL;ENAQZS;ENACMP;ENAIRN;ENALEO;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + winmm.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + Disabled + true + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + QT;ENAGLO;ENAGAL;ENAQZS;ENACMP;ENAIRN;ENALEO;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + winmm.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + true + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + QT;ENAGLO;ENAGAL;ENAQZS;ENACMP;ENAIRN;ENALEO;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + true + true + winmm.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + true + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + QT;ENAGLO;ENAGAL;ENAQZS;ENACMP;ENAIRN;ENALEO;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + true + true + winmm.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/convbin/msvc/msvc.vcxproj.filters b/app/convbin/msvc/msvc.vcxproj.filters new file mode 100644 index 000000000..e00431786 --- /dev/null +++ b/app/convbin/msvc/msvc.vcxproj.filters @@ -0,0 +1,120 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {b06b57d7-b06c-40d8-82ab-35265c0b3928} + + + + + Source Files + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/app/pos2kml/msc/Release/BuildLog.htm b/app/pos2kml/msc/Release/BuildLog.htm deleted file mode 100644 index 7b4523647..000000000 Binary files a/app/pos2kml/msc/Release/BuildLog.htm and /dev/null differ diff --git a/app/pos2kml/msc/clean.bat b/app/pos2kml/msc/clean.bat deleted file mode 100644 index cc57642c6..000000000 --- a/app/pos2kml/msc/clean.bat +++ /dev/null @@ -1,19 +0,0 @@ -del Release\*.obj -del Release\*.exe -del Release\*.res -del Release\*.manifest -del Release\*.pdb -del Release\*.idb -del Release\*.ilk -del Release\*.dep -del Release\*.htm -del Debug\*.obj -del Debug\*.exe -del Debug\*.res -del Debug\*.manifest -del Debug\*.pdb -del Debug\*.idb -del Debug\*.ilk -del Debug\*.dep -del Debug\*.htm -del *.ncb diff --git a/app/pos2kml/msc/install.bat b/app/pos2kml/msc/install.bat deleted file mode 100644 index 803077ce5..000000000 --- a/app/pos2kml/msc/install.bat +++ /dev/null @@ -1 +0,0 @@ -copy Release\pos2kml.exe ..\..\..\bin diff --git a/app/pos2kml/msc/msc.ncb b/app/pos2kml/msc/msc.ncb deleted file mode 100644 index 51c09e6fe..000000000 Binary files a/app/pos2kml/msc/msc.ncb and /dev/null differ diff --git a/app/pos2kml/msc/msc.sln b/app/pos2kml/msc/msc.sln deleted file mode 100644 index f9e243935..000000000 --- a/app/pos2kml/msc/msc.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msc", "msc.vcproj", "{E7D8F3E9-5363-4E31-8F16-4256E570767A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E7D8F3E9-5363-4E31-8F16-4256E570767A}.Debug|Win32.ActiveCfg = Debug|Win32 - {E7D8F3E9-5363-4E31-8F16-4256E570767A}.Debug|Win32.Build.0 = Debug|Win32 - {E7D8F3E9-5363-4E31-8F16-4256E570767A}.Release|Win32.ActiveCfg = Release|Win32 - {E7D8F3E9-5363-4E31-8F16-4256E570767A}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/app/pos2kml/msc/msc.suo b/app/pos2kml/msc/msc.suo deleted file mode 100644 index acb7d16be..000000000 Binary files a/app/pos2kml/msc/msc.suo and /dev/null differ diff --git a/app/pos2kml/msc/msc.vcproj b/app/pos2kml/msc/msc.vcproj deleted file mode 100644 index 893e8af7d..000000000 --- a/app/pos2kml/msc/msc.vcproj +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/pos2kml/msc/msc.vcproj.falcon.ttaka.user b/app/pos2kml/msc/msc.vcproj.falcon.ttaka.user deleted file mode 100644 index 841eea91f..000000000 --- a/app/pos2kml/msc/msc.vcproj.falcon.ttaka.user +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - diff --git a/app/pos2kml/msvc/msvc.vcxproj b/app/pos2kml/msvc/msvc.vcxproj new file mode 100644 index 000000000..ac58586f5 --- /dev/null +++ b/app/pos2kml/msvc/msvc.vcxproj @@ -0,0 +1,146 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {DB6F2EF2-5F17-41E6-B086-47C89FB4D823} + msvc + 8.1 + pos2kml + + + + Application + true + v140 + MultiByte + + + Application + false + v140 + true + MultiByte + + + Application + true + v140 + MultiByte + + + Application + false + v140 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + + + Level3 + Disabled + false + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + _CRT_SECURE_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + Disabled + false + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + _CRT_SECURE_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + false + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + _CRT_SECURE_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + true + true + winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + false + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + _CRT_SECURE_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + true + true + winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/pos2kml/msvc/msvc.vcxproj.filters b/app/pos2kml/msvc/msvc.vcxproj.filters new file mode 100644 index 000000000..8d1e81eb0 --- /dev/null +++ b/app/pos2kml/msvc/msvc.vcxproj.filters @@ -0,0 +1,51 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/app/pos2kml/msvc/pos2kml.sln b/app/pos2kml/msvc/pos2kml.sln new file mode 100644 index 000000000..e24aae46e --- /dev/null +++ b/app/pos2kml/msvc/pos2kml.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msvc", "msvc.vcxproj", "{DB6F2EF2-5F17-41E6-B086-47C89FB4D823}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DB6F2EF2-5F17-41E6-B086-47C89FB4D823}.Debug|x64.ActiveCfg = Debug|x64 + {DB6F2EF2-5F17-41E6-B086-47C89FB4D823}.Debug|x64.Build.0 = Debug|x64 + {DB6F2EF2-5F17-41E6-B086-47C89FB4D823}.Debug|x86.ActiveCfg = Debug|Win32 + {DB6F2EF2-5F17-41E6-B086-47C89FB4D823}.Debug|x86.Build.0 = Debug|Win32 + {DB6F2EF2-5F17-41E6-B086-47C89FB4D823}.Release|x64.ActiveCfg = Release|x64 + {DB6F2EF2-5F17-41E6-B086-47C89FB4D823}.Release|x64.Build.0 = Release|x64 + {DB6F2EF2-5F17-41E6-B086-47C89FB4D823}.Release|x86.ActiveCfg = Release|Win32 + {DB6F2EF2-5F17-41E6-B086-47C89FB4D823}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/app/rnx2rtkp/msc/clean.bat b/app/rnx2rtkp/msc/clean.bat deleted file mode 100644 index cc57642c6..000000000 --- a/app/rnx2rtkp/msc/clean.bat +++ /dev/null @@ -1,19 +0,0 @@ -del Release\*.obj -del Release\*.exe -del Release\*.res -del Release\*.manifest -del Release\*.pdb -del Release\*.idb -del Release\*.ilk -del Release\*.dep -del Release\*.htm -del Debug\*.obj -del Debug\*.exe -del Debug\*.res -del Debug\*.manifest -del Debug\*.pdb -del Debug\*.idb -del Debug\*.ilk -del Debug\*.dep -del Debug\*.htm -del *.ncb diff --git a/app/rnx2rtkp/msc/install.bat b/app/rnx2rtkp/msc/install.bat deleted file mode 100644 index 11bde2f69..000000000 --- a/app/rnx2rtkp/msc/install.bat +++ /dev/null @@ -1 +0,0 @@ -copy Release\rnx2rtkp.exe ..\..\..\bin diff --git a/app/rnx2rtkp/msc/msc.sln b/app/rnx2rtkp/msc/msc.sln deleted file mode 100644 index ec9b2db0f..000000000 --- a/app/rnx2rtkp/msc/msc.sln +++ /dev/null @@ -1,30 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msc", "msc.vcxproj", "{830901EE-9359-489F-BA7E-04289F28D5E0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {830901EE-9359-489F-BA7E-04289F28D5E0}.Debug|Win32.ActiveCfg = Debug|Win32 - {830901EE-9359-489F-BA7E-04289F28D5E0}.Debug|Win32.Build.0 = Debug|Win32 - {830901EE-9359-489F-BA7E-04289F28D5E0}.Debug|x64.ActiveCfg = Debug|x64 - {830901EE-9359-489F-BA7E-04289F28D5E0}.Debug|x64.Build.0 = Debug|x64 - {830901EE-9359-489F-BA7E-04289F28D5E0}.Release|Win32.ActiveCfg = Release|Win32 - {830901EE-9359-489F-BA7E-04289F28D5E0}.Release|Win32.Build.0 = Release|Win32 - {830901EE-9359-489F-BA7E-04289F28D5E0}.Release|x64.ActiveCfg = Release|x64 - {830901EE-9359-489F-BA7E-04289F28D5E0}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/app/rnx2rtkp/msc/msc.suo b/app/rnx2rtkp/msc/msc.suo deleted file mode 100644 index f1b1cf4b7..000000000 Binary files a/app/rnx2rtkp/msc/msc.suo and /dev/null differ diff --git a/app/rnx2rtkp/msc/msc.vcproj.falcon.ttaka.user b/app/rnx2rtkp/msc/msc.vcproj.falcon.ttaka.user deleted file mode 100644 index 841eea91f..000000000 --- a/app/rnx2rtkp/msc/msc.vcproj.falcon.ttaka.user +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - diff --git a/app/rnx2rtkp/msc/msc.vcxproj b/app/rnx2rtkp/msc/msc.vcxproj deleted file mode 100644 index aa39fb571..000000000 --- a/app/rnx2rtkp/msc/msc.vcxproj +++ /dev/null @@ -1,128 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {830901EE-9359-489F-BA7E-04289F28D5E0} - msc - Win32Proj - - - - Application - NotSet - true - - - Application - NotSet - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - rnx2rtkp - rnx2rtkp - - - - Disabled - ..\..\..\src;%(AdditionalIncludeDirectories) - WIN32;TRACE;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;ENAGLO;ENAQZS;ENAGAL;NFREQ=3;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - - - Level3 - EditAndContinue - - - $(OutDir)rnx2rtkp.exe - true - Console - false - - - MachineX86 - winmm.lib;%(AdditionalDependencies) - - - false - - - - - ..\..\..\src;%(AdditionalIncludeDirectories) - WIN32;TRACE;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;ENAGLO;ENAQZS;ENAGAL;NFREQ=3;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - winmm.lib;%(AdditionalDependencies) - $(OutDir)rnx2rtkp.exe - true - Console - true - true - false - - - MachineX86 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/rnx2rtkp/msvc/msvc.vcxproj b/app/rnx2rtkp/msvc/msvc.vcxproj new file mode 100644 index 000000000..778f6e811 --- /dev/null +++ b/app/rnx2rtkp/msvc/msvc.vcxproj @@ -0,0 +1,178 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {A6438F26-007D-4A79-A023-E0B87C98BE51} + msvc + 8.1 + rnx2rtkp + + + + Application + true + v140 + MultiByte + + + Application + false + v140 + true + MultiByte + + + Application + true + v140 + MultiByte + + + Application + false + v140 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + + + Level3 + Disabled + false + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + QT;ENAGLO;ENAGAL;ENAQZS;ENACMP;ENAIRN;ENALEO;_CRT_SECURE_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + winmm.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + Disabled + false + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + QT;ENAGLO;ENAGAL;ENAQZS;ENACMP;ENAIRN;ENALEO;_CRT_SECURE_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + winmm.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + false + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + QT;ENAGLO;ENAGAL;ENAQZS;ENACMP;ENAIRN;ENALEO;_CRT_SECURE_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + true + true + winmm.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + false + ..\..\..\src;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + QT;ENAGLO;ENAGAL;ENAQZS;ENACMP;ENAIRN;ENALEO;_CRT_SECURE_NO_WARNINGS;WIN32;_MBCS;%(PreprocessorDefinitions) + + + true + true + winmm.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/rnx2rtkp/msvc/msvc.vcxproj.filters b/app/rnx2rtkp/msvc/msvc.vcxproj.filters new file mode 100644 index 000000000..bc30fe6cc --- /dev/null +++ b/app/rnx2rtkp/msvc/msvc.vcxproj.filters @@ -0,0 +1,150 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {f32fbd4c-7632-42bd-904e-dfe0562dfa55} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files\Receiver Protocols + + + Source Files + + + Source Files\Receiver Protocols + + + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/app/rnx2rtkp/msvc/rnx2rtkp.sln b/app/rnx2rtkp/msvc/rnx2rtkp.sln new file mode 100644 index 000000000..cba518da8 --- /dev/null +++ b/app/rnx2rtkp/msvc/rnx2rtkp.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msvc", "msvc.vcxproj", "{A6438F26-007D-4A79-A023-E0B87C98BE51}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A6438F26-007D-4A79-A023-E0B87C98BE51}.Debug|x64.ActiveCfg = Debug|x64 + {A6438F26-007D-4A79-A023-E0B87C98BE51}.Debug|x64.Build.0 = Debug|x64 + {A6438F26-007D-4A79-A023-E0B87C98BE51}.Debug|x86.ActiveCfg = Debug|Win32 + {A6438F26-007D-4A79-A023-E0B87C98BE51}.Debug|x86.Build.0 = Debug|Win32 + {A6438F26-007D-4A79-A023-E0B87C98BE51}.Release|x64.ActiveCfg = Release|x64 + {A6438F26-007D-4A79-A023-E0B87C98BE51}.Release|x64.Build.0 = Release|x64 + {A6438F26-007D-4A79-A023-E0B87C98BE51}.Release|x86.ActiveCfg = Release|Win32 + {A6438F26-007D-4A79-A023-E0B87C98BE51}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/dirent.h b/src/dirent.h new file mode 100644 index 000000000..13aac959a --- /dev/null +++ b/src/dirent.h @@ -0,0 +1,1158 @@ +/* + * Dirent interface for Microsoft Visual Studio + * + * Copyright (C) 2006-2012 Toni Ronkko + * This file is part of dirent. Dirent may be freely distributed + * under the MIT license. For all details and documentation, see + * https://github.com/tronkko/dirent + */ +#ifndef DIRENT_H +#define DIRENT_H + +/* + * Include windows.h without Windows Sockets 1.1 to prevent conflicts with + * Windows Sockets 2.0. + */ +#ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +#endif +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Indicates that d_type field is available in dirent structure */ +#define _DIRENT_HAVE_D_TYPE + +/* Indicates that d_namlen field is available in dirent structure */ +#define _DIRENT_HAVE_D_NAMLEN + +/* Entries missing from MSVC 6.0 */ +#if !defined(FILE_ATTRIBUTE_DEVICE) +# define FILE_ATTRIBUTE_DEVICE 0x40 +#endif + +/* File type and permission flags for stat(), general mask */ +#if !defined(S_IFMT) +# define S_IFMT _S_IFMT +#endif + +/* Directory bit */ +#if !defined(S_IFDIR) +# define S_IFDIR _S_IFDIR +#endif + +/* Character device bit */ +#if !defined(S_IFCHR) +# define S_IFCHR _S_IFCHR +#endif + +/* Pipe bit */ +#if !defined(S_IFFIFO) +# define S_IFFIFO _S_IFFIFO +#endif + +/* Regular file bit */ +#if !defined(S_IFREG) +# define S_IFREG _S_IFREG +#endif + +/* Read permission */ +#if !defined(S_IREAD) +# define S_IREAD _S_IREAD +#endif + +/* Write permission */ +#if !defined(S_IWRITE) +# define S_IWRITE _S_IWRITE +#endif + +/* Execute permission */ +#if !defined(S_IEXEC) +# define S_IEXEC _S_IEXEC +#endif + +/* Pipe */ +#if !defined(S_IFIFO) +# define S_IFIFO _S_IFIFO +#endif + +/* Block device */ +#if !defined(S_IFBLK) +# define S_IFBLK 0 +#endif + +/* Link */ +#if !defined(S_IFLNK) +# define S_IFLNK 0 +#endif + +/* Socket */ +#if !defined(S_IFSOCK) +# define S_IFSOCK 0 +#endif + +/* Read user permission */ +#if !defined(S_IRUSR) +# define S_IRUSR S_IREAD +#endif + +/* Write user permission */ +#if !defined(S_IWUSR) +# define S_IWUSR S_IWRITE +#endif + +/* Execute user permission */ +#if !defined(S_IXUSR) +# define S_IXUSR 0 +#endif + +/* Read group permission */ +#if !defined(S_IRGRP) +# define S_IRGRP 0 +#endif + +/* Write group permission */ +#if !defined(S_IWGRP) +# define S_IWGRP 0 +#endif + +/* Execute group permission */ +#if !defined(S_IXGRP) +# define S_IXGRP 0 +#endif + +/* Read others permission */ +#if !defined(S_IROTH) +# define S_IROTH 0 +#endif + +/* Write others permission */ +#if !defined(S_IWOTH) +# define S_IWOTH 0 +#endif + +/* Execute others permission */ +#if !defined(S_IXOTH) +# define S_IXOTH 0 +#endif + +/* Maximum length of file name */ +#if !defined(PATH_MAX) +# define PATH_MAX MAX_PATH +#endif +#if !defined(FILENAME_MAX) +# define FILENAME_MAX MAX_PATH +#endif +#if !defined(NAME_MAX) +# define NAME_MAX FILENAME_MAX +#endif + +/* File type flags for d_type */ +#define DT_UNKNOWN 0 +#define DT_REG S_IFREG +#define DT_DIR S_IFDIR +#define DT_FIFO S_IFIFO +#define DT_SOCK S_IFSOCK +#define DT_CHR S_IFCHR +#define DT_BLK S_IFBLK +#define DT_LNK S_IFLNK + +/* Macros for converting between st_mode and d_type */ +#define IFTODT(mode) ((mode) & S_IFMT) +#define DTTOIF(type) (type) + +/* + * File type macros. Note that block devices, sockets and links cannot be + * distinguished on Windows and the macros S_ISBLK, S_ISSOCK and S_ISLNK are + * only defined for compatibility. These macros should always return false + * on Windows. + */ +#if !defined(S_ISFIFO) +# define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO) +#endif +#if !defined(S_ISDIR) +# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) +#endif +#if !defined(S_ISREG) +# define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) +#endif +#if !defined(S_ISLNK) +# define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK) +#endif +#if !defined(S_ISSOCK) +# define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK) +#endif +#if !defined(S_ISCHR) +# define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) +#endif +#if !defined(S_ISBLK) +# define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) +#endif + +/* Return the exact length of the file name without zero terminator */ +#define _D_EXACT_NAMLEN(p) ((p)->d_namlen) + +/* Return the maximum size of a file name */ +#define _D_ALLOC_NAMLEN(p) ((PATH_MAX)+1) + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Wide-character version */ +struct _wdirent { + /* Always zero */ + long d_ino; + + /* File position within stream */ + long d_off; + + /* Structure size */ + unsigned short d_reclen; + + /* Length of name without \0 */ + size_t d_namlen; + + /* File type */ + int d_type; + + /* File name */ + wchar_t d_name[PATH_MAX+1]; +}; +typedef struct _wdirent _wdirent; + +struct _WDIR { + /* Current directory entry */ + struct _wdirent ent; + + /* Private file data */ + WIN32_FIND_DATAW data; + + /* True if data is valid */ + int cached; + + /* Win32 search handle */ + HANDLE handle; + + /* Initial directory name */ + wchar_t *patt; +}; +typedef struct _WDIR _WDIR; + +/* Multi-byte character version */ +struct dirent { + /* Always zero */ + long d_ino; + + /* File position within stream */ + long d_off; + + /* Structure size */ + unsigned short d_reclen; + + /* Length of name without \0 */ + size_t d_namlen; + + /* File type */ + int d_type; + + /* File name */ + char d_name[PATH_MAX+1]; +}; +typedef struct dirent dirent; + +struct DIR { + struct dirent ent; + struct _WDIR *wdirp; +}; +typedef struct DIR DIR; + + +/* Dirent functions */ +static DIR *opendir (const char *dirname); +static _WDIR *_wopendir (const wchar_t *dirname); + +static struct dirent *readdir (DIR *dirp); +static struct _wdirent *_wreaddir (_WDIR *dirp); + +static int readdir_r( + DIR *dirp, struct dirent *entry, struct dirent **result); +static int _wreaddir_r( + _WDIR *dirp, struct _wdirent *entry, struct _wdirent **result); + +static int closedir (DIR *dirp); +static int _wclosedir (_WDIR *dirp); + +static void rewinddir (DIR* dirp); +static void _wrewinddir (_WDIR* dirp); + +static int scandir (const char *dirname, struct dirent ***namelist, + int (*filter)(const struct dirent*), + int (*compare)(const void *, const void *)); + +static int alphasort (const struct dirent **a, const struct dirent **b); + +static int versionsort (const struct dirent **a, const struct dirent **b); + + +/* For compatibility with Symbian */ +#define wdirent _wdirent +#define WDIR _WDIR +#define wopendir _wopendir +#define wreaddir _wreaddir +#define wclosedir _wclosedir +#define wrewinddir _wrewinddir + + +/* Internal utility functions */ +static WIN32_FIND_DATAW *dirent_first (_WDIR *dirp); +static WIN32_FIND_DATAW *dirent_next (_WDIR *dirp); + +static int dirent_mbstowcs_s( + size_t *pReturnValue, + wchar_t *wcstr, + size_t sizeInWords, + const char *mbstr, + size_t count); + +static int dirent_wcstombs_s( + size_t *pReturnValue, + char *mbstr, + size_t sizeInBytes, + const wchar_t *wcstr, + size_t count); + +static void dirent_set_errno (int error); + + +/* + * Open directory stream DIRNAME for read and return a pointer to the + * internal working area that is used to retrieve individual directory + * entries. + */ +static _WDIR* +_wopendir( + const wchar_t *dirname) +{ + _WDIR *dirp = NULL; + int error; + + /* Must have directory name */ + if (dirname == NULL || dirname[0] == '\0') { + dirent_set_errno (ENOENT); + return NULL; + } + + /* Allocate new _WDIR structure */ + dirp = (_WDIR*) malloc (sizeof (struct _WDIR)); + if (dirp != NULL) { + DWORD n; + + /* Reset _WDIR structure */ + dirp->handle = INVALID_HANDLE_VALUE; + dirp->patt = NULL; + dirp->cached = 0; + + /* Compute the length of full path plus zero terminator + * + * Note that on WinRT there's no way to convert relative paths + * into absolute paths, so just assume it is an absolute path. + */ +# if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) + n = wcslen(dirname); +# else + n = GetFullPathNameW (dirname, 0, NULL, NULL); +# endif + + /* Allocate room for absolute directory name and search pattern */ + dirp->patt = (wchar_t*) malloc (sizeof (wchar_t) * n + 16); + if (dirp->patt) { + + /* + * Convert relative directory name to an absolute one. This + * allows rewinddir() to function correctly even when current + * working directory is changed between opendir() and rewinddir(). + * + * Note that on WinRT there's no way to convert relative paths + * into absolute paths, so just assume it is an absolute path. + */ +# if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) + wcsncpy_s(dirp->patt, n+1, dirname, n); +# else + n = GetFullPathNameW (dirname, n, dirp->patt, NULL); +# endif + if (n > 0) { + wchar_t *p; + + /* Append search pattern \* to the directory name */ + p = dirp->patt + n; + if (dirp->patt < p) { + switch (p[-1]) { + case '\\': + case '/': + case ':': + /* Directory ends in path separator, e.g. c:\temp\ */ + /*NOP*/; + break; + + default: + /* Directory name doesn't end in path separator */ + *p++ = '\\'; + } + } + *p++ = '*'; + *p = '\0'; + + /* Open directory stream and retrieve the first entry */ + if (dirent_first (dirp)) { + /* Directory stream opened successfully */ + error = 0; + } else { + /* Cannot retrieve first entry */ + error = 1; + dirent_set_errno (ENOENT); + } + + } else { + /* Cannot retrieve full path name */ + dirent_set_errno (ENOENT); + error = 1; + } + + } else { + /* Cannot allocate memory for search pattern */ + error = 1; + } + + } else { + /* Cannot allocate _WDIR structure */ + error = 1; + } + + /* Clean up in case of error */ + if (error && dirp) { + _wclosedir (dirp); + dirp = NULL; + } + + return dirp; +} + +/* + * Read next directory entry. + * + * Returns pointer to static directory entry which may be overwritten by + * subsequent calls to _wreaddir(). + */ +static struct _wdirent* +_wreaddir( + _WDIR *dirp) +{ + struct _wdirent *entry; + + /* + * Read directory entry to buffer. We can safely ignore the return value + * as entry will be set to NULL in case of error. + */ + (void) _wreaddir_r (dirp, &dirp->ent, &entry); + + /* Return pointer to statically allocated directory entry */ + return entry; +} + +/* + * Read next directory entry. + * + * Returns zero on success. If end of directory stream is reached, then sets + * result to NULL and returns zero. + */ +static int +_wreaddir_r( + _WDIR *dirp, + struct _wdirent *entry, + struct _wdirent **result) +{ + WIN32_FIND_DATAW *datap; + + /* Read next directory entry */ + datap = dirent_next (dirp); + if (datap) { + size_t n; + DWORD attr; + + /* + * Copy file name as wide-character string. If the file name is too + * long to fit in to the destination buffer, then truncate file name + * to PATH_MAX characters and zero-terminate the buffer. + */ + n = 0; + while (n < PATH_MAX && datap->cFileName[n] != 0) { + entry->d_name[n] = datap->cFileName[n]; + n++; + } + entry->d_name[n] = 0; + + /* Length of file name excluding zero terminator */ + entry->d_namlen = n; + + /* File type */ + attr = datap->dwFileAttributes; + if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) { + entry->d_type = DT_CHR; + } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) { + entry->d_type = DT_DIR; + } else { + entry->d_type = DT_REG; + } + + /* Reset dummy fields */ + entry->d_ino = 0; + entry->d_off = 0; + entry->d_reclen = sizeof (struct _wdirent); + + /* Set result address */ + *result = entry; + + } else { + + /* Return NULL to indicate end of directory */ + *result = NULL; + + } + + return /*OK*/0; +} + +/* + * Close directory stream opened by opendir() function. This invalidates the + * DIR structure as well as any directory entry read previously by + * _wreaddir(). + */ +static int +_wclosedir( + _WDIR *dirp) +{ + int ok; + if (dirp) { + + /* Release search handle */ + if (dirp->handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->handle); + dirp->handle = INVALID_HANDLE_VALUE; + } + + /* Release search pattern */ + if (dirp->patt) { + free (dirp->patt); + dirp->patt = NULL; + } + + /* Release directory structure */ + free (dirp); + ok = /*success*/0; + + } else { + + /* Invalid directory stream */ + dirent_set_errno (EBADF); + ok = /*failure*/-1; + + } + return ok; +} + +/* + * Rewind directory stream such that _wreaddir() returns the very first + * file name again. + */ +static void +_wrewinddir( + _WDIR* dirp) +{ + if (dirp) { + /* Release existing search handle */ + if (dirp->handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->handle); + } + + /* Open new search handle */ + dirent_first (dirp); + } +} + +/* Get first directory entry (internal) */ +static WIN32_FIND_DATAW* +dirent_first( + _WDIR *dirp) +{ + WIN32_FIND_DATAW *datap; + + /* Open directory and retrieve the first entry */ + dirp->handle = FindFirstFileExW( + dirp->patt, FindExInfoStandard, &dirp->data, + FindExSearchNameMatch, NULL, 0); + if (dirp->handle != INVALID_HANDLE_VALUE) { + + /* a directory entry is now waiting in memory */ + datap = &dirp->data; + dirp->cached = 1; + + } else { + + /* Failed to re-open directory: no directory entry in memory */ + dirp->cached = 0; + datap = NULL; + + } + return datap; +} + +/* + * Get next directory entry (internal). + * + * Returns + */ +static WIN32_FIND_DATAW* +dirent_next( + _WDIR *dirp) +{ + WIN32_FIND_DATAW *p; + + /* Get next directory entry */ + if (dirp->cached != 0) { + + /* A valid directory entry already in memory */ + p = &dirp->data; + dirp->cached = 0; + + } else if (dirp->handle != INVALID_HANDLE_VALUE) { + + /* Get the next directory entry from stream */ + if (FindNextFileW (dirp->handle, &dirp->data) != FALSE) { + /* Got a file */ + p = &dirp->data; + } else { + /* The very last entry has been processed or an error occurred */ + FindClose (dirp->handle); + dirp->handle = INVALID_HANDLE_VALUE; + p = NULL; + } + + } else { + + /* End of directory stream reached */ + p = NULL; + + } + + return p; +} + +/* + * Open directory stream using plain old C-string. + */ +static DIR* +opendir( + const char *dirname) +{ + struct DIR *dirp; + int error; + + /* Must have directory name */ + if (dirname == NULL || dirname[0] == '\0') { + dirent_set_errno (ENOENT); + return NULL; + } + + /* Allocate memory for DIR structure */ + dirp = (DIR*) malloc (sizeof (struct DIR)); + if (dirp) { + wchar_t wname[PATH_MAX + 1]; + size_t n; + + /* Convert directory name to wide-character string */ + error = dirent_mbstowcs_s( + &n, wname, PATH_MAX + 1, dirname, PATH_MAX + 1); + if (!error) { + + /* Open directory stream using wide-character name */ + dirp->wdirp = _wopendir (wname); + if (dirp->wdirp) { + /* Directory stream opened */ + error = 0; + } else { + /* Failed to open directory stream */ + error = 1; + } + + } else { + /* + * Cannot convert file name to wide-character string. This + * occurs if the string contains invalid multi-byte sequences or + * the output buffer is too small to contain the resulting + * string. + */ + error = 1; + } + + } else { + /* Cannot allocate DIR structure */ + error = 1; + } + + /* Clean up in case of error */ + if (error && dirp) { + free (dirp); + dirp = NULL; + } + + return dirp; +} + +/* + * Read next directory entry. + */ +static struct dirent* +readdir( + DIR *dirp) +{ + struct dirent *entry; + + /* + * Read directory entry to buffer. We can safely ignore the return value + * as entry will be set to NULL in case of error. + */ + (void) readdir_r (dirp, &dirp->ent, &entry); + + /* Return pointer to statically allocated directory entry */ + return entry; +} + +/* + * Read next directory entry into called-allocated buffer. + * + * Returns zero on success. If the end of directory stream is reached, then + * sets result to NULL and returns zero. + */ +static int +readdir_r( + DIR *dirp, + struct dirent *entry, + struct dirent **result) +{ + WIN32_FIND_DATAW *datap; + + /* Read next directory entry */ + datap = dirent_next (dirp->wdirp); + if (datap) { + size_t n; + int error; + + /* Attempt to convert file name to multi-byte string */ + error = dirent_wcstombs_s( + &n, entry->d_name, PATH_MAX + 1, datap->cFileName, PATH_MAX + 1); + + /* + * If the file name cannot be represented by a multi-byte string, + * then attempt to use old 8+3 file name. This allows traditional + * Unix-code to access some file names despite of unicode + * characters, although file names may seem unfamiliar to the user. + * + * Be ware that the code below cannot come up with a short file + * name unless the file system provides one. At least + * VirtualBox shared folders fail to do this. + */ + if (error && datap->cAlternateFileName[0] != '\0') { + error = dirent_wcstombs_s( + &n, entry->d_name, PATH_MAX + 1, + datap->cAlternateFileName, PATH_MAX + 1); + } + + if (!error) { + DWORD attr; + + /* Length of file name excluding zero terminator */ + entry->d_namlen = n - 1; + + /* File attributes */ + attr = datap->dwFileAttributes; + if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) { + entry->d_type = DT_CHR; + } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) { + entry->d_type = DT_DIR; + } else { + entry->d_type = DT_REG; + } + + /* Reset dummy fields */ + entry->d_ino = 0; + entry->d_off = 0; + entry->d_reclen = sizeof (struct dirent); + + } else { + + /* + * Cannot convert file name to multi-byte string so construct + * an erroneous directory entry and return that. Note that + * we cannot return NULL as that would stop the processing + * of directory entries completely. + */ + entry->d_name[0] = '?'; + entry->d_name[1] = '\0'; + entry->d_namlen = 1; + entry->d_type = DT_UNKNOWN; + entry->d_ino = 0; + entry->d_off = -1; + entry->d_reclen = 0; + + } + + /* Return pointer to directory entry */ + *result = entry; + + } else { + + /* No more directory entries */ + *result = NULL; + + } + + return /*OK*/0; +} + +/* + * Close directory stream. + */ +static int +closedir( + DIR *dirp) +{ + int ok; + if (dirp) { + + /* Close wide-character directory stream */ + ok = _wclosedir (dirp->wdirp); + dirp->wdirp = NULL; + + /* Release multi-byte character version */ + free (dirp); + + } else { + + /* Invalid directory stream */ + dirent_set_errno (EBADF); + ok = /*failure*/-1; + + } + return ok; +} + +/* + * Rewind directory stream to beginning. + */ +static void +rewinddir( + DIR* dirp) +{ + /* Rewind wide-character string directory stream */ + _wrewinddir (dirp->wdirp); +} + +/* + * Scan directory for entries. + */ +static int +scandir( + const char *dirname, + struct dirent ***namelist, + int (*filter)(const struct dirent*), + int (*compare)(const void*, const void*)) +{ + struct dirent **files = NULL; + size_t size = 0; + size_t allocated = 0; + const size_t init_size = 1; + DIR *dir = NULL; + struct dirent *entry; + struct dirent *tmp = NULL; + size_t i; + int result = 0; + + /* Open directory stream */ + dir = opendir (dirname); + if (dir) { + + /* Read directory entries to memory */ + while (1) { + + /* Enlarge pointer table to make room for another pointer */ + if (size >= allocated) { + void *p; + size_t num_entries; + + /* Compute number of entries in the enlarged pointer table */ + if (size < init_size) { + /* Allocate initial pointer table */ + num_entries = init_size; + } else { + /* Double the size */ + num_entries = size * 2; + } + + /* Allocate first pointer table or enlarge existing table */ + p = realloc (files, sizeof (void*) * num_entries); + if (p != NULL) { + /* Got the memory */ + files = (dirent**) p; + allocated = num_entries; + } else { + /* Out of memory */ + result = -1; + break; + } + + } + + /* Allocate room for temporary directory entry */ + if (tmp == NULL) { + tmp = (struct dirent*) malloc (sizeof (struct dirent)); + if (tmp == NULL) { + /* Cannot allocate temporary directory entry */ + result = -1; + break; + } + } + + /* Read directory entry to temporary area */ + if (readdir_r (dir, tmp, &entry) == /*OK*/0) { + + /* Did we get an entry? */ + if (entry != NULL) { + int pass; + + /* Determine whether to include the entry in result */ + if (filter) { + /* Let the filter function decide */ + pass = filter (tmp); + } else { + /* No filter function, include everything */ + pass = 1; + } + + if (pass) { + /* Store the temporary entry to pointer table */ + files[size++] = tmp; + tmp = NULL; + + /* Keep up with the number of files */ + result++; + } + + } else { + + /* + * End of directory stream reached => sort entries and + * exit. + */ + qsort (files, size, sizeof (void*), compare); + break; + + } + + } else { + /* Error reading directory entry */ + result = /*Error*/ -1; + break; + } + + } + + } else { + /* Cannot open directory */ + result = /*Error*/ -1; + } + + /* Release temporary directory entry */ + if (tmp) { + free (tmp); + } + + /* Release allocated memory on error */ + if (result < 0) { + for (i = 0; i < size; i++) { + free (files[i]); + } + free (files); + files = NULL; + } + + /* Close directory stream */ + if (dir) { + closedir (dir); + } + + /* Pass pointer table to caller */ + if (namelist) { + *namelist = files; + } + return result; +} + +/* Alphabetical sorting */ +static int +alphasort( + const struct dirent **a, const struct dirent **b) +{ + return strcoll ((*a)->d_name, (*b)->d_name); +} + +/* Sort versions */ +static int +versionsort( + const struct dirent **a, const struct dirent **b) +{ + /* FIXME: implement strverscmp and use that */ + return alphasort (a, b); +} + + +/* Convert multi-byte string to wide character string */ +static int +dirent_mbstowcs_s( + size_t *pReturnValue, + wchar_t *wcstr, + size_t sizeInWords, + const char *mbstr, + size_t count) +{ + int error; + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + + /* Microsoft Visual Studio 2005 or later */ + error = mbstowcs_s (pReturnValue, wcstr, sizeInWords, mbstr, count); + +#else + + /* Older Visual Studio or non-Microsoft compiler */ + size_t n; + + /* Convert to wide-character string (or count characters) */ + n = mbstowcs (wcstr, mbstr, sizeInWords); + if (!wcstr || n < count) { + + /* Zero-terminate output buffer */ + if (wcstr && sizeInWords) { + if (n >= sizeInWords) { + n = sizeInWords - 1; + } + wcstr[n] = 0; + } + + /* Length of resulting multi-byte string WITH zero terminator */ + if (pReturnValue) { + *pReturnValue = n + 1; + } + + /* Success */ + error = 0; + + } else { + + /* Could not convert string */ + error = 1; + + } + +#endif + + return error; +} + +/* Convert wide-character string to multi-byte string */ +static int +dirent_wcstombs_s( + size_t *pReturnValue, + char *mbstr, + size_t sizeInBytes, /* max size of mbstr */ + const wchar_t *wcstr, + size_t count) +{ + int error; + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + + /* Microsoft Visual Studio 2005 or later */ + error = wcstombs_s (pReturnValue, mbstr, sizeInBytes, wcstr, count); + +#else + + /* Older Visual Studio or non-Microsoft compiler */ + size_t n; + + /* Convert to multi-byte string (or count the number of bytes needed) */ + n = wcstombs (mbstr, wcstr, sizeInBytes); + if (!mbstr || n < count) { + + /* Zero-terminate output buffer */ + if (mbstr && sizeInBytes) { + if (n >= sizeInBytes) { + n = sizeInBytes - 1; + } + mbstr[n] = '\0'; + } + + /* Length of resulting multi-bytes string WITH zero-terminator */ + if (pReturnValue) { + *pReturnValue = n + 1; + } + + /* Success */ + error = 0; + + } else { + + /* Cannot convert string */ + error = 1; + + } + +#endif + + return error; +} + +/* Set errno variable */ +static void +dirent_set_errno( + int error) +{ +#if defined(_MSC_VER) && _MSC_VER >= 1400 + + /* Microsoft Visual Studio 2005 and later */ + _set_errno (error); + +#else + + /* Non-Microsoft compiler or older Microsoft compiler */ + errno = error; + +#endif +} + + +#ifdef __cplusplus +} +#endif +#endif /*DIRENT_H*/ + diff --git a/src/ephemeris.c b/src/ephemeris.c index a98b4a9bd..d68f393ba 100644 --- a/src/ephemeris.c +++ b/src/ephemeris.c @@ -537,7 +537,7 @@ static int ephpos(gtime_t time, gtime_t teph, int sat, const nav_t *nav, static int satpos_sbas(gtime_t time, gtime_t teph, int sat, const nav_t *nav, double *rs, double *dts, double *var, int *svh) { - const sbssatp_t *sbs; + const sbssatp_t *sbs = NULL; int i; trace(4,"satpos_sbas: time=%s sat=%2d\n",time_str(time,3),sat);