[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a
Maximiliano Curia
maxy at moszumanska.debian.org
Thu Jul 13 17:42:02 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=c137bf6
The following commit has been merged in the master branch:
commit c137bf6afa44a8e621a360bf6a4a9cfd2fddd143
Author: Andreas Huggel <ahuggel at gmx.net>
Date: Sun Oct 31 09:09:17 2010 +0000
#727: Fixed -g option to print multiple matches.
---
src/actions.cpp | 79 ++++++++++-----------------------------------------------
src/actions.hpp | 4 +--
2 files changed, 16 insertions(+), 67 deletions(-)
diff --git a/src/actions.cpp b/src/actions.cpp
index 4a62aff..dab7ab4 100644
--- a/src/actions.cpp
+++ b/src/actions.cpp
@@ -481,11 +481,10 @@ namespace Action {
int Print::printList()
{
- int rc = 0;
if (!Exiv2::fileExists(path_, true)) {
std::cerr << path_
<< ": " << _("Failed to open the file
");
- rc = -1;
+ return -1;
}
Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(path_);
assert(image.get() != 0);
@@ -497,71 +496,9 @@ namespace Action {
if (Params::instance().printItems_ == 0) {
Params::instance().printItems_ = Params::prKey | Params::prType | Params::prCount | Params::prTrans;
}
- if (!Params::instance().keys_.empty()) {
- for (Params::Keys::const_iterator key = Params::instance().keys_.begin();
- key != Params::instance().keys_.end(); ++key) {
- rc |= grepTag(*key, image.get());
- }
- }
- else {
- rc = printMetadata(image.get());
- }
- return rc;
+ return printMetadata(image.get());
} // Print::printList
- int Print::grepTag(const std::string& key, const Exiv2::Image* image)
- {
- int rc = 0;
- if (key.empty()) return rc;
- switch (key[0]) {
- case 'E':
- if (Params::instance().printTags_ & Exiv2::mdExif) {
- Exiv2::ExifKey ek(key);
- const Exiv2::ExifData& exifData = image->exifData();
- Exiv2::ExifData::const_iterator md = exifData.findKey(ek);
- if (md != exifData.end()) printMetadatum(*md, image);
- if (exifData.empty()) {
- if (Params::instance().verbose_) {
- std::cerr << path_ << ": " << _("No Exif data found in the file
");
- }
- rc = -3;
- }
- }
- break;
- case 'I':
- if (Params::instance().printTags_ & Exiv2::mdIptc) {
- Exiv2::IptcKey ik(key);
- const Exiv2::IptcData& iptcData = image->iptcData();
- Exiv2::IptcData::const_iterator md = iptcData.findKey(ik);
- if (md != iptcData.end()) printMetadatum(*md, image);
- if (iptcData.empty()) {
- if (Params::instance().verbose_) {
- std::cerr << path_ << ": " << _("No IPTC data found in the file
");
- }
- rc = -3;
- }
- }
- break;
- case 'X':
- if (Params::instance().printTags_ & Exiv2::mdXmp) {
- Exiv2::XmpKey xk(key);
- const Exiv2::XmpData& xmpData = image->xmpData();
- Exiv2::XmpData::const_iterator md = xmpData.findKey(xk);
- if (md != xmpData.end()) printMetadatum(*md, image);
- if (xmpData.empty()) {
- if (Params::instance().verbose_) {
- std::cerr << path_ << ": " << _("No XMP data found in the file
");
- }
- rc = -3;
- }
- }
- break;
- default:
- throw Exiv2::Error(1, std::string(_("Invalid key")) + " `" + key + "'");
- }
- return rc;
- } // Print::grepTag
-
int Print::printMetadata(const Exiv2::Image* image)
{
int rc = 0;
@@ -607,8 +544,20 @@ namespace Action {
return rc;
} // Print::printMetadata
+ bool Print::grepTag(const std::string& key)
+ {
+ if (Params::instance().keys_.empty()) return true;
+ for (Params::Keys::const_iterator k = Params::instance().keys_.begin();
+ k != Params::instance().keys_.end(); ++k) {
+ if (*k == key) return true;
+ }
+ return false;
+ }
+
void Print::printMetadatum(const Exiv2::Metadatum& md, const Exiv2::Image* pImage)
{
+ if (!grepTag(md.key())) return;
+
if ( Params::instance().unknown_
&& md.tagName().substr(0, 2) == "0x") {
return;
diff --git a/src/actions.hpp b/src/actions.hpp
index b8aff91..14bf63e 100644
--- a/src/actions.hpp
+++ b/src/actions.hpp
@@ -170,8 +170,8 @@ namespace Action {
int printSummary();
//! Print Exif, IPTC and XMP metadata in user defined format
int printList();
- //! Print info for an individual tag specified by its key in a user defined format
- int grepTag(const std::string& key, const Exiv2::Image* image);
+ //! Return true if key should be printed, else false
+ bool grepTag(const std::string& key);
//! Print all metadata in a user defined format
int printMetadata(const Exiv2::Image* image);
//! Print a metadatum in a user defined format
--
exiv2 packaging
More information about the pkg-kde-commits
mailing list