Commit Graph

122 Commits

Author SHA1 Message Date
Robin Mills
99aa8881a2 $ make version_test segfaults on FreeBSD when called from an ssh script. 2020-05-04 19:09:24 +01:00
Robin Mills
2e568e762b Fix version= for Visual Studio 2019. 2020-05-04 12:20:33 +01:00
clanmills
13565be3d2 Change for solaris. 2020-04-15 16:53:03 +01:00
Luis Diaz Mas
43ed51f609 DLL information depends now on proper definition 2019-06-15 14:07:51 +02:00
Robin Mills
f4a37c63f2 version.cpp Pragma removed. Platform includes simplified.
cmake/packaging.cmake        Changed comment about VS version numbers
2019-05-12 16:41:58 +02:00
Robin Mills
b8af098285 Removed redundant _MSC_VER pragma to link psapi as the link is specified in CMakeLists.txt.
Simplified the platform include files required to support getLoadedLibraries()
2019-05-12 16:41:58 +02:00
Robin Mills
955962eaa8 Code revisions after review by @piponazo 2019-05-12 16:41:58 +02:00
Robin Mills
b0a9cb5624 NetBSD/FreeBSD Support 2019-05-12 16:41:58 +02:00
Robin Mills
514ae0fa89 Fix #780 2019-04-18 08:33:12 +01:00
Robin Mills
eab816fd32 src/version.cpp report enable_nls 2018-11-30 14:18:17 +01:00
Robin Mills
062bad7535 Adding output for have_regex to version.cpp 2018-11-30 14:18:17 +01:00
Robin Mills
89375979d8 https://github.com/Exiv2/exiv2/issues/555
I have restored the Macro EXIV2_TEST_VERSION in include/exiv2/version.hpp
I have added an option --version-test to exifprint.cpp to test/validate EXIV2_TEST_VERSION works as documented.
Version strings in Exiv2 v0.27 and later have a fourth digit to indicate the pre-release number of the build.
Pre-release builds should never be used for production purposes.
2018-11-19 11:38:26 +00:00
Luis Díaz Más
8e5ee7a0e6 Fix debug flag preprocessor condition 2018-11-16 18:13:59 +01:00
Luis Díaz Más
9547cddbd1 Add protection around EXV_LOCALEDIR definition 2018-11-16 17:23:47 +01:00
clanmills
2f70ae4305 Fix getProcessPath() 2018-11-16 17:23:47 +01:00
Luis Díaz Más
e20329b8e0 Remove EXV_HAVE_DLL and disable C4251 always on msvc. 2018-11-11 12:27:26 +01:00
Robin Mills
42084f2563 Add support for MinGW/msys2 in 32 bits + Updates in buildserver 2018-10-26 17:47:15 +02:00
Luis Díaz Más
812762cf5a Remove usage of CPLUSPLUS11 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
603692a1d8 Copyright to Exiv2 authors 2018-09-12 19:22:31 +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
a9c9451588 Remove localtime.c and any other trick to handle timegm 2018-08-27 13:33:02 +02:00
tbeu
75cdbc8b91 Use pre-increment on iterators
V803 Decreased performance. In case 'userEnd' is iterator it's more effective to use prefix form of increment. Replace iterator++ with ++iterator. futils.cpp 405
V803 Decreased performance. In case 'authEnd' is iterator it's more effective to use prefix form of increment. Replace iterator++ with ++iterator. futils.cpp 410
V803 Decreased performance. In case 'hostEnd' is iterator it's more effective to use prefix form of increment. Replace iterator++ with ++iterator. futils.cpp 428
V803 Decreased performance. In case 'e' is iterator it's more effective to use prefix form of increment. Replace iterator++ with ++iterator. epsimage.cpp 711
V803 Decreased performance. In case 'e' is iterator it's more effective to use prefix form of increment. Replace iterator++ with ++iterator. epsimage.cpp 841
V803 Decreased performance. In case 'e' is iterator it's more effective to use prefix form of increment. Replace iterator++ with ++iterator. epsimage.cpp 958
V803 Decreased performance. In case 'i' is iterator it's more effective to use prefix form of increment. Replace iterator++ with ++iterator. epsimage.cpp 855
V803 Decreased performance. In case 'it' is iterator it's more effective to use prefix form of increment. Replace iterator++ with ++iterator. jpgimage.cpp 817
V803 Decreased performance. In case 'lib' is iterator it's more effective to use prefix form of increment. Replace iterator++ with ++iterator. version.cpp 508
V803 Decreased performance. In case 'it' is iterator it's more effective to use prefix form of increment. Replace iterator++ with ++iterator. version.cpp 563
V803 Decreased performance. In case 'it' is iterator it's more effective to use prefix form of increment. Replace iterator++ with ++iterator. xmpsidecar.cpp 138
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
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
tbeu
2efc2e79da Remove obsolete id 2017-11-19 11:17:12 +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
d366943297 Refactoring EXV_USE_CURL and EXV_USE_SSH 2017-09-13 16:54:10 +01:00
clanmills
2828b11cf7 Build changes to support EXV_HAVE_REGEX and EXV_HAVE_REGEX_H 2017-09-11 16:09:24 +01:00
Robin Mills
aefa3e3d34 MacOSX --with-adobe link issue. Work in progress. Code and documentation update. 2017-08-18 08:19:07 +01:00
clanmills
935421c855 Refactoring autotools to support ADOBE_XMPSDK (Work in Progress) 2017-08-15 20:00:09 +01:00
clanmills
2e816165ea Changes to autotools to support C++11 (work in progress) 2017-08-12 14:48:38 +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
5c78c82f20 Handle ENABLE_WEBREADY variable in the new cmake file 2017-08-08 21:58:45 +02:00
Luis Diaz Mas
93835cd680 Handle correctly ENABLE_VIDEO the config.h.cmake file 2017-08-08 21:58:45 +02:00
Luis Diaz Mas
bba3cbb7fd Remove unused definition EXV_HAVE_DECL_STRERROR_R 2017-08-08 21:58:45 +02:00
clanmills
a9c9e8ff8e Remove svn_version.h 2017-06-06 15:33:50 +01:00
Robin Mills
559ace375b #1291 Reverting change in r4763 relating to windows.h as they break the Cygwin build. Retain changes in exiv2/exiv2.hpp and exv_msvc.h 2017-04-23 19:29:19 +00:00
Robin Mills
f36cccefa2 #1291 include header simplification 2017-04-23 17:31:57 +00:00
Robin Mills
6d5c2c3256 Getting ready to release v0.26 2017-03-08 20:42:28 +00:00
Robin Mills
0abf56f71b #1236 CMake build on MinGW. 2016-09-30 16:45:54 +00:00
Robin Mills
3c675f8e53 Build trigger. 2016-09-19 22:24:46 +00:00
Robin Mills
5f9807cbef #1216. Rollback r4448/6/2/1 r4439/38 to restabilize test suite on trunk. r4449 is copy of r4448 to branches/develop 2016-08-30 16:05:45 +00:00
sridharb
8a8ec67136 This is mainly a fix for #1206, but also interprets missing Canon Exif
Tags in exiv2 with the help of Phil Harvey's exiftool (see
http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Canon.html).

Even with these changes (toward #1204 and #1205), exiv2 lags behind
exiftool in some areas of interpretation of Canon tags. Ideally, a
catch-up effort to bring the code in source: canonmn.cpp in line with
lib/Image/ExifTool/Canon.pm. v10.25 of exiftool was used as reference
for this change.

#1206 seeks to address the fact that when Canon does not have data for
certain tags, they use specific default values in those fields. These
default values need to be ignored and not displayed. This change
brings this feature to exiv2, something that already exiftool does.

With regards to implementation, the struct TagInfo in source: tags.hpp
is extended with four new fields.

The first field is a bool that if set to true (default false), denotes
that this field has ignorable default values.

The second field is the default value that needs to be ignored. This
can be of four types (String, Long, Float, Rational). These four types
were chosen as they had conversion functions in the Value class.

The third field is the comparison type (default equal_to). There are
six comparison types possible (equal_to, not_equal_to, less,
less_equal, greater, greater_equal). This is the comparison applied to
the value stored in the tag's field and the default value specified
above. For e.g. if the value in the tag Exif.CanonCs.RecordMode is -1,
then it needs to be ignored.

The fourth field is the data type (default Long). This could have been
guessed from the type of the second field, but that would necessitate
making this structure into a template calling for changes in multitude
of files.

Usage: In source: canonmn.cpp, several exif tags now have ignorable
default properties. I will list a few examples.

1. Exif.CanonCs.FocusMode:        TagInfo(0x0007, "FocusMode", N_("Focus Mode"), N_("Focus mode setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFocusMode)),

There are no changes - i.e. this is an example of how the TagInfo
structure was being populated.

2. Exif.CanonCs.RecordMode:        TagInfo(0x0009, "RecordMode", N_("Record Mode"), N_("Record mode setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsRecordMode), true, s_1_),

Take a look at the two new arguments. The first one (true) specifies
that there is a default value that can be ignored. The second one s_1_
specifies the value (-1, in this case) to be ignored.

	const UShortValue CanonMakerNote::s_1_(65535, unsignedShort); // Till bug is resolved

Note s_1_ is temporarily having the value 65535 till #1203 that causes
signedShorts to be interpreted as unsignedShorts is resolved.


3. Exif.CanonSi.TargetAperture:         TagInfo(0x0004, "TargetAperture", N_("Target Aperture"), N_("Target Aperture"), canonSiId, makerTags, unsignedShort, 1, printSi0x0015, true, us0_, TagInfo::less_equal),

Note the third argument TagInfo::less_equal. This combined with the
second argument us0_ (the number 0) signifies that any values in this
tag that are less than or equal (<=) to 0 should be ignored.

4. 		TagInfo(0x0028, "ImageUniqueID", N_("Image Unique ID"), N_("Image Unique ID"), canonId, makerTags, asciiString, -1, printValue, true, s0x16_, TagInfo::equal_to, TagInfo::String),

The previous examples have all been of Long type. This shows a case
where the default value is a string.

	const AsciiValue CanonMakerNote::s0x16_("0000000000000000");

Once these tag values have been defined, the actual mechanics of
ignoring these default values happens in Image::exifData().

Before the exifData is returned, we loop through the data, ask the
data whether it needs to be ignored (which in turn checks its
underlying tagInfo and compares it with the default value, if
specified) and if so, deletes that element.

A compile-time switch called EXV_DONT_IGNORE_UNDEFINED which when set
to a non-zero value will cause the behavior to revert back to the
original where all values are reported irregardless of the fact that
they need to be ignored.
2016-08-26 05:36:05 +00:00
Robin Mills
b3c6de6274 #1210 C++11/regex build-breaker in src/version.cpp. Thank You to Zulan for reporting this and providing a patch. 2016-08-19 14:46:28 +00:00
Robin Mills
a04abc98c2 Build Trigger 2016-03-28 18:23:18 +00:00