Commit Graph

164 Commits

Author SHA1 Message Date
Kevin Backhouse
67a46f742d
Type of escapeStart should be size_t. 2021-07-18 15:02:40 +01:00
Kevin Backhouse
69d82ffe01
Defensive coding changes to avoid integer overflow in loop conditions. 2021-07-18 15:02:35 +01:00
Luis Díaz Más
f30022d73d
Fix issues detected with PVS-Studio + other little improvements (#1689)
* avoid re-declaration of constant variables

* Replace pthreads critical section with std::mutex

* ci - better naming

* cmake - increase minimum version to 3.11. Use project DESCRIPTION

* fix - do not treat string::find() return type as bool

* remove conditions that were always true

* remove condition that were always false

* Remove EXV_HAVE_GMTIME_R which is not used anymore

* pixelWidth_ was inherited from Exiv2::Image

The width & height variables in the TiffImage class need to be mutable
to be able to change their values on the getters pixelHeight() and
pixelWidth() ... Do not ask me why ...

* Remove superfluous if

* pvs:V766 item with identical key added already

* pvs:V730 not all members were initialized (time)

* pvs:V730 not all members are initialized

* pvs:v668 no point in testing pointer against null after new

* pvs:V1048 variable assigned the same value

* replace c-style dynamic vector with std one

* pvs:547 fakeData is always true

* Remove useless constructor in derived class

* pvs:V690 modern way to disable copy-ctor

* Replace malloc/free with new/delete. No need to check for null

* pvs:V1028 cast operands and not result

* Remove custom MIN/MAX functions

* pvs:V595 pointer used before verified against null

* pvs: index used before being checked

* pvs:V1028 possible overflow. Cast operands

* pvs:v575 potential null pointer passed to other functions

* pvs:V547 deal with always true/false expressions

* pvs:V560 part of conditional expressions always false or true

* pvs:V701 possible break in realloc -> move to std::vector

* Make some classes 'final'

* Replace sprintf with std::to_string()

* fix compilation on windows
2021-06-01 12:39:10 +02:00
Rosen Penev
2c57f214c5 clang-tidy: use nullptr
Found with modernize-use-nullptr

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-26 08:31:45 +02:00
Rosen Penev
743da1a564 clang-tidy: use C++ casting
Found with google-readability-casting

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-20 07:29:02 +02:00
Rosen Penev
ff39473c18 clang-tidy: convert to static
Found with readability-convert-member-functions-to-static

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-19 14:45:20 +02:00
Rosen Penev
b8712188bb clang-tidy: use auto
Found with modernize-use-auto

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-17 21:52:03 +02:00
Rosen Penev
1b9b77c51f clang-tidy: add ending namespace comments
Found with google-readability-namespace-comments

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-14 17:34:09 +02:00
Rosen Penev
9642e3cceb clang-tidy: remove pointless string init
Found with readability-redundant-string-init

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-12 07:12:15 +02:00
Rosen Penev
143a1fbbe2 clang-tidy: don't use string compare
Found with readability-string-compare

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-12 07:12:15 +02:00
Rosen Penev
8337462032 clang-tidy: use empty() instead of comparing size
Found with readability-container-size-empty

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-11 22:02:47 +02:00
Rosen Penev
5a9c29303e clang-tidy: remove pointless static
Found with readability-static-definition-in-anonymous-namespace

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-09 17:44:37 +02:00
Rosen Penev
bd6a996181 clang-tidy: use using
Found with modernize-use-using

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-09 17:42:51 +02:00
Luis Díaz Más
1b4577904b Fix MSVC build 2021-05-03 17:41:55 +02:00
Rosen Penev
4ceb325c8f clang-tidy: range for loop conversions
Found with modernize-loop-convert

Ran through git clang-format.

Also removed several questionable loops and replaced with simpler
algorithms.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-03 14:50:04 +02:00
Luis Díaz Más
de4d43d4d1 Fix warnings EXIV2_TEAM_EXTRA_WARNINGS
Most of the warnings fixed were:
- Hiding of local variables
- Hiding of globals
- Useless casts
- Conversions between float/double
2021-04-18 18:49:58 +02:00
Luis Díaz Más
5fcea2b4e2 Use stack variables instead of java style 2021-04-15 06:56:37 +02:00
Luis Díaz Más
0bbaa6eff3 cpp: Replace auto_ptr by unique_ptr 2021-04-15 06:56:11 +02:00
Robin Mills
9da2aed5d2 Use the documented 5 line prolog in every sample application. Tidy up sample prologs and header code. 2021-04-02 16:58:20 +01:00
Robin Mills
d632988bbd Massive code prolog cleanup. 2021-03-17 13:34:21 +00:00
clanmills
b983a9db75 Re-awaken obsolete command-line argument --binary and store class Task. 2021-03-05 17:05:24 +00:00
Peter Kovář
f0a321dedb [WIP] Base Media File Format 2021-02-16 10:10:00 +01:00
Peter Kovář
92469f4c27 [WIP] Add ISO/IEC Base Media File Format 2021-01-24 15:09:57 +01:00
Jan Tojnar
48f2c9dbba
cmake: Fix paths with absolute GNUInstallDirs
It is not generally true that `CMAKE_INSTALL_<dir>` variables are relative paths:

https://github.com/jtojnar/cmake-snips#concatenating-paths-when-building-pkg-config-files
https://github.com/jtojnar/cmake-snips#assuming-cmake_install_dir-is-relative-path

Let's join them properly as paths, not strings.

On Windows, the absolute paths will likely remain unsupported as neither the CMake function,
nor the C++ code is able to detect absolute paths.

Signed-off-by: Jan Tojnar <jtojnar@gmail.com>
2020-09-05 11:18:46 +02:00
clanmills
904fa19d1c Code changes 2020-04-19 08:04:45 +01:00
clanmills
82087b58e4 fix_1099_0.27 2020-03-27 15:57:10 +00:00
Robin Mills
7844b11e4b
[xmpsdk] Add XMP Initialisation/Cleanup code to all main() programs
- update documentation
- Removed redundant calls to Exiv2::XmpParser::terminate() (legacy of our
  discusssion with @tester0077).
- this fixes #976
2019-10-05 10:19:53 +02:00
Luis Díaz Más
34e411d2fc Fix 547: option -pR only available in Debug mode.
Note that the method Params::evalPrint() has been clang-formatted.
2018-11-22 18:19:08 +01:00
Robin Mills
8a6cd5d24e Fix -vVg loops 2018-11-16 13:10:43 +01:00
Luis Díaz Más
d1c2e2f64f bindtextdomain point to relative path to bin directory 2018-11-11 12:27:26 +01:00
Robin Mills
5f6ef65695 Update PROJECT_VERSION & add install() commands for CPack
- Version updated to 0.27.0.1.
- Release notes for MacOS-X Package, Linux, CYGWIN, win64 and msvc
- Redmine Release Notes Updated.
2018-10-26 17:47:15 +02:00
Luis Díaz Más
c43d998457 Fix cppcheck issues: passedByValue 2018-10-11 13:40:03 +02:00
Luis Díaz Más
e5bcabd026 Do not print hexadecimal version value when running exiv2 --version 2018-09-14 07:43:21 +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
0bfa0168df Cleanup some of the PACKAGE_XXX variables and rely in the ones given by the project() command 2018-09-12 19:22:31 +02:00
Dan Čermák
1e23238fa4 Fix memory leak in Params::getopt() 2018-09-01 20:19:45 +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
Luis Diaz Mas
6e244f31d3 Cleanup fallthrough warning + clang-format parseCommonTargets function 2018-08-24 16:45:52 +02:00
Dan Čermák
f4e8ed2fd4 Catch all exceptions not caught in exiv2 cli-tool
It effectively looks the same as before, only now we don't call abort() but
instead clean up everything gracefully.
2018-06-11 22:55:49 +02:00
Dan Čermák
4b24e011dc Free potentially allocated regexes from Params::evalGrep
In Params::evalGrep regcomp allocates some internal space for the regex objects,
which must be freed manually via regfree(). This was however only done when the
call to regcomp() failed and not on success. As the regexes are needed later,
they have to be deallocated by the destructor.
2018-05-17 17:17:37 +02:00
Dan Čermák
efe2ccdcb6 Replaced all hardcoded error codes with ker... constants 2018-02-18 09:28:57 +01:00
tbeu
5b5987a596 Remove obsolete EXIV2_RCSID 2017-11-19 11:17:12 +01:00
tbeu
5df8b01b77 Remove obsolete svn revision 2017-11-19 11:17:11 +01:00
Luis Díaz Más
5b8894908b Remove all references to EXV_HAVE_REGEX and related code 2017-10-04 19:27:01 +02:00
clanmills
2828b11cf7 Build changes to support EXV_HAVE_REGEX and EXV_HAVE_REGEX_H 2017-09-11 16:09:24 +01:00
clanmills
935421c855 Refactoring autotools to support ADOBE_XMPSDK (Work in Progress) 2017-08-15 20:00:09 +01:00
Luis Diaz Mas
22efdffd1d Use #ifdef instead of #if for EXV_HAVE_REGEX 2017-08-08 22:15:17 +02:00
Luis Diaz Mas
1d327fba21 Correct usage of HAVE_REGEX 2017-08-08 21:58:45 +02:00
Robin Mills
6d5c2c3256 Getting ready to release v0.26 2017-03-08 20:42:28 +00:00
Robin Mills
5664393767 #1246 Fix submitted. 2016-10-19 14:57:18 +00:00