Commit Graph

231 Commits

Author SHA1 Message Date
Dan Čermák
98bca06592 Add Slices: views of STL containers & C-arrays and add unit tests
This commit adds a very simple implementation of std::span but with
mandatory range checks and only the most essential functionality.
2018-10-11 14:06:16 +02:00
Luis Díaz Más
19e740b447 Restore API functions remove in #450 2018-10-10 18:16:57 +02:00
Luis Díaz Más
18690f4c54 Provide default and copy constructor for AnyError 2018-09-14 13:20:08 +02:00
Luis Díaz Más
6e4404da81 Move implementation details from tags.cpp to tags_int.cpp 2018-09-14 13:20:08 +02:00
Luis Díaz Más
b9f913d5af Move implementation to .cpp files. Fix more issues related to visibility settings 2018-09-14 13:20:08 +02:00
Luis Díaz Más
4574a659cc Do not use EXIV2API where it is not needed 2018-09-14 13:20:08 +02:00
Luis Díaz Más
6ba4081f95 Use CMake-GenerateExportHeader to generate a macro to export symbols
- Delete the hardcoded macros in config.h taking care of that.
2018-09-14 13:20:08 +02:00
Luis Díaz Más
a0e7b7490f Add MSVC definitions back that are still needed 2018-09-14 07:43:21 +02:00
Luis Díaz Más
78c0efeaef Remove unused c++11 stuff from config.h 2018-09-14 07:43:21 +02:00
Luis Díaz Más
5c0a3b9786 Remove unused definitions from config.h 2018-09-14 07:43:21 +02:00
Luis Díaz Más
0da42d0399 Remove useless header inclusions from config.h 2018-09-14 07:43:21 +02:00
Luis Díaz Más
a6aeadc26b Remove unused definitions for MSVC 2018-09-14 07:43:21 +02:00
Luis Díaz Más
ab6aac054a Remove deprecated code from version source files 2018-09-14 07:43:21 +02:00
Luis Díaz Más
1871ce5acd Remove 'version.hpp' inclusion from places where it is not needed
By removing the inclusion from types.hpp we avoid lots of recompilation
of source files.
2018-09-14 07:43:21 +02:00
Luis Díaz Más
808de65c37 Use CMake PROJECT_VERSION components in version files 2018-09-14 07:43:21 +02:00
Luis Díaz Más
2b74ad4feb Default initialyze DataBuf::pData_ so that valgrind does not complain 2018-09-13 11:18:29 +02:00
Luis Díaz Más
603692a1d8 Copyright to Exiv2 authors 2018-09-12 19:22:31 +02:00
Luis Díaz Más
19d9ae844b Remove hardcoded CURL_STATICLIB definition in config.h 2018-09-12 19:22:31 +02:00
Luis Díaz Más
4161099b91 Fix warnings reported by MSVC 2018-09-10 10:31:00 +02:00
clanmills
3c42fdddeb Fix include <exiv2/exiv2.hpp> to include exiv2/config.h (and consequential changes)
Fix cltest.cpp and version.cpp to report MSVC 2017 in which _MSC_VER == 1910
2018-09-01 20:19:45 +02:00
Dan Čermák
9f1a5a1ebb [futils] Change signature of getEnv to take an int
While taking an EnVar as the parameter is more clear it has the
disadvantage, that passing anything outside of the range of the
enumeration is undefined behavior. The compiler could then optimize
the range check in getEnv away (perfectly legal due to UB), leading
to buffer overreads.
2018-08-27 17:22:33 +02:00
Dan Čermák
11df43be78 [types] Apply Safe::abs() in floatToRationalCast & gcd
Also check for infinity in floatToRationalCast as depending on the
compiler special values of floats are converted to either
LONGMAX/LONGMIN or +/-inf
2018-08-27 17:21:16 +02:00
Luis Diaz Mas
eb306fdbae Substitute malloc/free with new/delete 2018-08-27 13:24:47 +02:00
Luis Diaz Mas
08cbb0c206 Use header guards instead of pragma once 2018-08-27 13:24:47 +02:00
Luis Diaz Mas
5d76036af5 Add more tests for decoding and encoding URL functions 2018-08-27 13:24:47 +02:00
Luis Diaz Mas
eefee8125b to_hex and from_hex removed from API 2018-08-27 13:24:47 +02:00
Luis Diaz Mas
22d9ab82a7 Format futils.h for better readability (also pass clang-format to it) 2018-08-27 13:24:47 +02:00
Luis Diaz Mas
c82d875707 Use pragma once instead of guards 2018-08-27 13:24:47 +02:00
Luis Diaz Mas
a3c200a23e Remove useless header inclusions 2018-08-27 13:24:47 +02:00
Dan Čermák
b12a868454 Add EXV_WARN_UNUSED_RESULT macro & add it to DataBuf::release()
EXV_WARN_UNUSED_RESULT is a conditional macro that expands to either
__attribute__((warn_unused_result)) on gcc & clang or to _Check_return
for MSVC
=> Compiler warns if the return value is ignored
2018-07-29 00:20:43 +02:00
Dan Čermák
1b74db8f51 [types] Add DataBuf::free()
DataBuf::release() easily cause memory leaks, when the return value is
ignored. free() provides the desired behavior, when the internal data should
just be deleted and not used further.
2018-07-28 23:50:33 +02:00
Luis Diaz Mas
69ee165291 msvc: Remove manually generated configuration files for MSVC builds 2018-06-08 14:04:25 +02:00
tbeu
9c507b9d20 Fix function declaration
V762 It is possible a virtual function was overridden incorrectly. See third argument of function 'printStructure' in derived class 'TiffImage' and base class 'Image'. tiffimage.hpp 93
2018-06-02 09:43:20 +02:00
Luis Díaz Más
e32323d7c7 Simplify usage of strerror_r.
- Define STRERROR_R_CHAR_P properly on CMake and use it on futils.cpp
- We use now _GNU_SOURCE to determine which version of strerror_r to use
- strError only throws if ret==ERANGE
- Remove STRERROR_R_CHAR_P. It has been never used
- sort defines in config.h.cmake
- Remove EXV_HAVE_DECL_STRERROR_R that is not used anymore
- Remove EXV_HAVE_STRERROR. C++98 always will have it
2018-05-07 10:25:26 +02:00
Luis Díaz Más
f86542e5f6 Remove EXV_HAVE_STRTOL 2018-05-04 11:20:43 +02:00
Luis Díaz Más
d55b2b1b65 Remove HAVE_STDLIB_H check and replace stdlib.h by cstdlib 2018-05-04 11:20:43 +02:00
Luis Díaz Más
aded1965c5 Remove EXV_HAVE_MEMSET 2018-05-04 11:20:43 +02:00
Luis Díaz Más
abd28a6a9e Remove EXV_HAVE_STRCHR 2018-05-04 11:20:43 +02:00
Dan Čermák
b1a31352b6 Add default constructor for XmpData 2018-04-25 00:13:51 +02:00
Dan Čermák
2bf89f4854 Store pointers to Impl classes in auto_ptr
Pimpl class Impl is stored in raw pointers which are allocated on the heap in
the constructor. However, the constructor can throw an exception resulting in a
memory leak as the destructor is **not** invoked.
=> A smart pointer is however properly deallocated.
2018-04-25 00:13:26 +02:00
Luis Díaz Más
bf7047a71b clang-format XmpKey code 2018-04-07 20:04:22 +02:00
Luis Díaz Más
336b759cc0 Remove 'using namespace' from public header 2018-04-06 09:23:58 +02:00
Dan Čermák
22a7a8c2ed Fix outdated documentation of PngImage::doWriteMetadata()
The function does not return anything, it only throws exceptions.
2018-02-22 11:57:51 +01:00
Dan Čermák
efe2ccdcb6 Replaced all hardcoded error codes with ker... constants 2018-02-18 09:28:57 +01:00
Dan Čermák
d897997b29 Force error code usage to construct a Exiv2::BasicError
changed parameter code_'s type from int to ErrorCode => requires the
usage of the enum constants
2018-02-18 09:28:40 +01:00
Dan Čermák
b80fa1b4ed Added error codes from src/error.cpp into an enumeration 2018-02-18 09:26:32 +01:00
Luis Díaz Más
f36bea3801 exiv2::getEnv throws std::out_of_range on unexpected EnVar
This change define explicitly the behavior that exiv2::getEnv should have
on response to unexpected inputs.

There are some other minor changes:

- Use _putenv_s for the unit tests on Windows
- Add todo comment
- Remove deprecated note about freeing memory
2017-12-06 17:29:05 +01:00
Luis Díaz Más
8dc3c1f0a0 Replace malloc/free by new/delete. Use const char* for input arg 2017-12-06 17:29:05 +01:00
Luis Díaz Más
8b049922d7 Change exiv2::urlencode signature to return std::string
The goal of this change is to remove the responsibility from the client code to
free the memory of the returned string.
2017-12-06 17:29:05 +01:00
tbeu
5df8b01b77 Remove obsolete svn revision 2017-11-19 11:17:11 +01:00