New upstream version 5.2.5188

This commit is contained in:
geos_one
2025-08-08 12:40:03 +02:00
parent b1e9cf955b
commit e8b2c75644
5730 changed files with 1430965 additions and 238433 deletions

45
3rdparty/tinydir/samples/.gitignore vendored Normal file
View File

@@ -0,0 +1,45 @@
# Object files
*.o
# Libraries
*.lib
*.a
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*_sample
# CMake
CMakeFiles/
CMakeCache.txt
*.dir/
cmake_install.cmake
# Visual Studio
.vs/
Debug/
out/
Win32/
*.opensdf
*.sdf
*.suo
*.vcxproj.user
*.vcxproj
*.vcxproj.filters
*.VC.*
*.sln
# Linux
Makefile
# OS X
CMakeScripts/
*.xcodeproj

26
3rdparty/tinydir/samples/CMakeLists.txt vendored Normal file
View File

@@ -0,0 +1,26 @@
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
cmake_policy(VERSION 2.6)
project(tinydir)
INCLUDE_DIRECTORIES(..)
################################
# Add definitions
if(MSVC)
add_definitions(-W4 -WX -wd"4996")
else()
add_definitions(-fsigned-char -Wall -W -Wshadow -Wpointer-arith -Wcast-qual -Winline -Werror)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
endif()
################################
# Add targets
add_executable(file_open_sample file_open_sample.c)
add_executable(iterate_sample iterate_sample.c)
add_executable(random_access_sample random_access_sample.c)
add_executable(interactive_sample interactive_sample.c)
add_executable(cpp_sample cpp_sample.cpp)
add_executable(list_to_file list_to_file.c)

46
3rdparty/tinydir/samples/cpp_sample.cpp vendored Normal file
View File

@@ -0,0 +1,46 @@
#include <iostream>
#include <stdexcept>
#include <string>
struct tinydir_dir;
class TinyDir {
public:
TinyDir(const std::string& path);
~TinyDir();
std::string BaseName() const;
private:
tinydir_dir* dir;
};
#include <tinydir.h>
TinyDir::TinyDir(const std::string& path) : dir(new tinydir_dir) {
if (tinydir_open(dir, path.c_str()) == -1) {
throw std::invalid_argument{"path"};
}
}
TinyDir::~TinyDir() {
delete dir;
}
std::string TinyDir::BaseName() const {
const std::string path{dir->path};
auto lastSlash = path.find_last_of("/\\");
if (lastSlash == std::string::npos) {
return path;
}
return path.substr(lastSlash + 1);
}
int main(int argc, char* argv[]) {
if (argc != 2) {
std::cerr << "Usage: cpp_sample filename\n";
return 1;
}
TinyDir td{argv[1]};
std::cout << "Basename is " << td.BaseName() << "\n";
return 0;
}

View File

@@ -0,0 +1,21 @@
#include <stdio.h>
#include <tinydir.h>
int main(int argc, char *argv[])
{
tinydir_file file;
if (argc != 2)
{
fprintf(stderr, "Usage: test filename\n");
return 1;
}
if (tinydir_file_open(&file, argv[1]) == -1)
{
perror("Error opening file");
return 1;
}
printf("Path: %s\nName: %s\nExtension: %s\nIs dir? %s\nIs regular file? %s\n",
file.path, file.name, file.extension,
file.is_dir?"yes":"no", file.is_reg?"yes":"no");
return 0;
}

View File

@@ -0,0 +1,60 @@
#include <stdio.h>
#include <tinydir.h>
int main(void)
{
tinydir_dir dir;
if (tinydir_open_sorted(&dir, ".") == -1)
{
perror("Error opening file");
goto bail;
}
for (;;)
{
size_t i;
char input[256];
for (i = 0; i < dir.n_files; i++)
{
tinydir_file file;
if (tinydir_readfile_n(&dir, &file, i) == -1)
{
perror("Error getting file");
goto bail;
}
if (file.is_dir)
{
printf("[%u] ", (unsigned int)i);
}
printf("%s", file.name);
if (file.is_dir)
{
printf("/");
}
printf("\n");
}
printf("?");
if (fgets(input, 256, stdin) == NULL)
{
break;
}
else
{
int choice = atoi(input);
if (choice >= 0 && (size_t)choice < dir.n_files)
{
if (tinydir_open_subdir_n(&dir, choice) == -1)
{
perror("Error opening subdirectory");
goto bail;
}
}
}
}
bail:
tinydir_close(&dir);
return 0;
}

View File

@@ -0,0 +1,39 @@
#include <stdio.h>
#include <tinydir.h>
int main(void)
{
tinydir_dir dir;
if (tinydir_open(&dir, ".") == -1)
{
perror("Error opening file");
goto bail;
}
while (dir.has_next)
{
tinydir_file file;
if (tinydir_readfile(&dir, &file) == -1)
{
perror("Error getting file");
goto bail;
}
printf("%s", file.name);
if (file.is_dir)
{
printf("/");
}
printf("\n");
if (tinydir_next(&dir) == -1)
{
perror("Error getting next file");
goto bail;
}
}
bail:
tinydir_close(&dir);
return 0;
}

47
3rdparty/tinydir/samples/list_to_file.c vendored Normal file
View File

@@ -0,0 +1,47 @@
#include <stdio.h>
#define _UNICODE
#define UNICODE
#include "tinydir.h"
char bom[] = "\xFF\xFE";
int main(void) {
FILE *fp;
tinydir_dir dir;
tinydir_open(&dir, TINYDIR_STRING("/path/to/dir"));
fp =
#if ((defined _WIN32) && (defined _UNICODE))
_wfopen(
#else
fopen(
#endif
TINYDIR_STRING("/file/to/output"), TINYDIR_STRING("wb"));
#if ((defined _WIN32) && (defined _UNICODE))
fwrite(bom, 1, 2, fp);
#endif
while (dir.has_next)
{
tinydir_file file;
tinydir_readfile(&dir, &file);
fwrite(file.name, sizeof(_tinydir_char_t), _tinydir_strlen(file.name), fp);
if (file.is_dir)
{
fwrite(TINYDIR_STRING("/"), sizeof(_tinydir_char_t), _tinydir_strlen(TINYDIR_STRING("/")), fp);
}
fwrite(TINYDIR_STRING("\n"), sizeof(_tinydir_char_t), _tinydir_strlen(TINYDIR_STRING("/")), fp);
tinydir_next(&dir);
}
tinydir_close(&dir);
fclose(fp);
return 0;
}

View File

@@ -0,0 +1,34 @@
#include <stdio.h>
#include <tinydir.h>
int main(int argc, char *argv[])
{
tinydir_dir dir;
size_t i;
if (tinydir_open_sorted(&dir, argc >= 2 ? argv[1] : ".") == -1)
{
perror("Error opening file");
goto bail;
}
for (i = 0; i < dir.n_files; i++)
{
tinydir_file file;
if (tinydir_readfile_n(&dir, &file, i) == -1)
{
perror("Error getting file");
goto bail;
}
printf("%s", file.name);
if (file.is_dir)
{
printf("/");
}
printf("\n");
}
bail:
tinydir_close(&dir);
return 0;
}