9310 Commits (9999608d349338230b19a384460eaa929b09ce4c)
 

Author SHA1 Message Date
Rosen Penev 100eabbc08 add std::byteswap support
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 8a4fa1c146 extra comma
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev c52bc0ff95 silence GCC8 warning on non default constructor
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev dae2b6dda8 more doxygen
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Ryan Friedman 368eab01db Downgrade required CMake version to consume exiv2
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Ryan Friedman eb05551ed2 Add Exiv2 namespace for exported targets
* This matches an alias target name
* Recommend using the namespaced target in the README

Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Ryan Friedman 5e1cf4dad9 Make ZLIB depend on EXIV2_ENABLE_PNG
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Ryan Friedman a8c3455e5c Add a cmake config file export
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Ryan Friedman 0e836eb50c Add inih_reader_LIBRARY too
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Ryan Friedman 16c533fc77 Make FindInih also make finding reader required
* Fixes issue on alpine where inih-dev is installed without inih-inireader-dev
* https://github.com/Exiv2/exiv2/pull/2443#issuecomment-1648144243

Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Miloš Komarčević b7c45b49aa Leverage global BUILD_TESTING option 2 years ago
kamiccolo 5631e84237 Switch to PROJECT_SOURCE_DIR for gcovr as well 2 years ago
kamiccolo e7cea4b2fd geotag sample does not require ROOT_PROJECT/src to be included. Switch for ROOT_PROJECT/include for <exiv2/exiv2.hpp> 2 years ago
kamiccolo 643165fda6 Add PROJECT_ROOT/app for inclusion for getopt_tests 2 years ago
kamiccolo e1efef9d84 unitTests includes PROJECT_ROOT/src (cr2header_int.hpp, etc) 2 years ago
kamiccolo 52fb9ee191 Revert "Isolate samples, unittests, coverage and overall build to PROJECT_BINARY_DIR"
This reverts commit 057ddfcf1755380583c6eb4ac97767a652fbfe9d.
2 years ago
kamiccolo c8e6ef2abe Use PROJECT_SOURCE_DIR while looking for root cmake subfolder 2 years ago
kamiccolo 6f5b1c94db Isolate samples, unittests, coverage and overall build to PROJECT_BINARY_DIR 2 years ago
kamiccolo 3dea23f0de app/CMakeLists: rely on PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR for i18n includes 2 years ago
kamiccolo b2b7b0dd01 cmake: switch from inclusion of CMAKE_SOURCE_DIR to CMAKE_CURRENT_SOURCE_DIR 2 years ago
Miloš Komarčević b42586b85f Streamline gtest dependencies 2 years ago
Miloš Komarčević 562ef57b4f Use CMake config mode for gMock detection 2 years ago
norbertwg 3e8e09d450 addition for documentation of isoSpeed 2 years ago
norbertwg f791388a93 clang-format 2 years ago
norbertwg 7d292c4dda Missing word added 2 years ago
norbertwg 836cce636a enhance API documentation 2 years ago
Rosen Penev a2d6996ca2 exiv2: fix compilation with GCC7
Needs experimental filesystem.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev c827648127 add missing commas
Formats the structs properly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev e1b3dfa278 fix toAscii function
c == 0 was a dead branch because of the way printable ascii was
calculated. Move it up instead.

While at it, replace std::transform with std::replace. Easier to read.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 22a4b71752 optimize other toAscii function with early exit
GCC is able to see that the branch is useless as it can be done at
compile time. Produces shorter assembly with both -O2 and -O3.

Assign the pointer to the std::string directly and use proper iterators
with std::transform. Also produces shorter assembly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Pino Toscano 7f997572f5 tests: do not hardcode ENOENT
The actual values of errno constants are not specified in POSIX, and
left as implementation details; hence, tweak the check for the ENOENT
description to not check for the actual value.
2 years ago
Pino Toscano b826a7d733 asf: fix GUID reading on big endian platforms
Setting the initial parts (data1_, data2_, data3_) from the bytes
directly using memcpy() means that they will be interpreted depending
on the platform endianness. For example, the initial 4 bytes of the ASF
header are 0x30, 0x26, 0xB2, 0x75, which will be read as 0x3026B275 on
big endian platforms, never matching the actual GUID (0x75B22630), which
is always specified in little endian format.

Hence, when reading a GUID from data, make sure to turn the GUID parts
to little endian. This fixes the reading of ASF files on big endian
platforms.

Fixes commit bed8d3d93c
2 years ago
Miloš Komarčević 029dc9f24a Add some Sony IDs 2 years ago
Rosen Penev 1837bf055e memcpy to copy_n conversions
The latter is more strict regarding types

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 640282f33b replace reinterpret_cast with copy_n
On mips64, this throws a cast-align warning. Silence it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev d4f6c9cf40 coverity fixes
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 7473b4a715 optimize toAscii function with early exit
GCC is able to see that the branch is useless as it can be done at
compile time. Produces shorter assembly with both -O2 and -O3.

https://godbolt.org/z/ejhfxh8Tx

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Miloš Komarčević c686bed5f8 Use compiler macros for endianness 2 years ago
Rosen Penev 50648dd4b0 use if constexpr instead of macros
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 7477293e41 avoid newer clang-format issue
More readable anyway.

Also remove specific version. Problems have been fixed already. All
versions should work the same now.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 50eca1696e github CI: remove msvcrt
msvcrt support was effectively killed when wstring support was removed.
No need to test for it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 8a09f2dee1 avoid LTO issues
Place structs inside the places where used.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Matthias Andree 901e8ba8c7 Fix preprocessor warnings about undefined _MSVC_LANG
Stricter compiler/settings, such as found during a build
on FreeBSD with clang 14, issue warnings of the kind below.

/usr/local/include/exiv2/value.hpp:1272:31: warning: '_MSVC_LANG' is not defined, evaluates to 0 [-Wundef]

Fix: Guard use of _MSVC_LANG by a check.

Personally, I found that MSVC has several feature-specific
checks in predefined macros which might allow for one
standards-based check that matches GCC/clang/MSVC rather than the
split check for C++ standard and MSVC language version settings.

See https://en.cppreference.com/w/cpp/feature_test

I am not building Exiv2 on MSVC, so I cannot test/suggest
anything here.
2 years ago
Matthias Andree 91af0905db FreeBSD Fix getLoadedLibraries() crash
FreeBSD's getLoadedLibraries() uses libprocstat(3) to obtain
the list of mapped files (libraries). However, the list
obtained from procstat_getfiles() does not only return regular files,
but might also return anonymous objects that have no fs->path.

With exiv2 v0.28, I had also observed crashes with a real TTY,
and the entry->fs_path dereference would crash, even if it
was only for a test "non-null", so we need something more thorough.

Add a check to only consider VNODEs (actual file system entries),
and also make sure that entry->fs_path is defined so we don't
pass a nullptr to the std::string(const char *) constructor when
we are reading corrupt data. std::string((const char *)0)
on FreeBSD 13.2 - calls strlen() and crashes there.
2 years ago
Rosen Penev d18a21847b avoid division by 0 false positive
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 4783581b27 add null dynamic_cast checks
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 4c4bf7c749 avoid copy_n
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Kevin Backhouse 9215f74000
Merge pull request #2663 from kevinbackhouse/fuzz-metadatum-print-nullptr
Fuzz Metadata::print() with nullptr parameter
2 years ago
Rosen Penev e4a4791b35 endian check from runtime to compile time
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Kevin Backhouse 469c76c838
Fuzz Metadata::print() with nullptr parameter. 2 years ago