[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:39:08 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=7a8bf1d

The following commit has been merged in the master branch:
commit 7a8bf1dad860dde9b7ce73e11996f9b03dfd0a67
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Sat Dec 22 17:51:55 2007 +0000

    Added options -Y, -O and -D to the exiv2 tool to adjust Exif timestamps by years, months and days.
---
 src/actions.cpp          | 92 ++++++++++++++++++++++++++++++++++++------------
 src/actions.hpp          |  4 +++
 src/exiv2.1              | 19 ++++++++--
 src/exiv2.cpp            | 66 +++++++++++++++++++++++++++++-----
 src/exiv2.hpp            | 34 ++++++++++++++----
 test/data/exiv2-test.out | 87 +++++++++++++++++++++++----------------------
 6 files changed, 220 insertions(+), 82 deletions(-)

diff --git a/src/actions.cpp b/src/actions.cpp
index 28bdff1..5e57835 100644
--- a/src/actions.cpp
+++ b/src/actions.cpp
@@ -100,12 +100,12 @@ namespace {
     // returns 0 if successful
     int str2Tm(const std::string& timeStr, struct tm* tm);
 
-    // Convert a string "YYYY:MM:DD HH:MI:SS" to a UTC time, -1 on error
-    time_t str2Time(const std::string& timeStr);
-
     // Convert a UTC time to a string "YYYY:MM:DD HH:MI:SS", "" on error
     std::string time2Str(time_t time);
 
+    // Convert a tm structure to a string "YYYY:MM:DD HH:MI:SS", "" on error
+    std::string tm2Str(struct tm* tm);
+
     /*!
       @brief Copy metadata from source to target according to Params::copyXyz
 
@@ -1428,7 +1428,10 @@ namespace Action {
 
     int Adjust::run(const std::string& path)
     try {
-        adjustment_ = Params::instance().adjustment_;
+        adjustment_      = Params::instance().adjustment_;
+        yearAdjustment_  = Params::instance().yodAdjust_[Params::yodYear].adjustment_;
+        monthAdjustment_ = Params::instance().yodAdjust_[Params::yodMonth].adjustment_;
+        dayAdjustment_   = Params::instance().yodAdjust_[Params::yodDay].adjustment_;
 
         if (!Exiv2::fileExists(path, true)) {
             std::cerr << path
@@ -1491,21 +1494,69 @@ namespace Action {
                       << ek << "' " << _("not set
");
             return 1;
         }
-        time_t time = str2Time(timeStr);
-        if (time == (time_t)-1) {
-            std::cerr << path << ": " << _("Failed to parse or convert timestamp") << " `"
+        if (Params::instance().verbose_) {
+            bool comma = false;
+            std::cout << _("Adjusting") << " `" << ek << "' " << _("by");
+            if (yearAdjustment_ != 0) {
+                std::cout << (yearAdjustment_ < 0 ? " " : " +") << yearAdjustment_ << " ";
+                if (yearAdjustment_ < -1 || yearAdjustment_ > 1) {
+                    std::cout << _("years");
+                }
+                else {
+                    std::cout << _("year");
+                }
+                comma = true;
+            }
+            if (monthAdjustment_ != 0) {
+                if (comma) std::cout << ",";
+                std::cout << (monthAdjustment_ < 0 ? " " : " +") << monthAdjustment_ << " ";
+                if (monthAdjustment_ < -1 || monthAdjustment_ > 1) {
+                    std::cout << _("months");
+                }
+                else {
+                    std::cout << _("month");
+                }
+                comma = true;
+            }
+            if (dayAdjustment_ != 0) {
+                if (comma) std::cout << ",";
+                std::cout << (dayAdjustment_ < 0 ? " " : " +") << dayAdjustment_ << " ";
+                if (dayAdjustment_ < -1 || dayAdjustment_ > 1) {
+                    std::cout << _("days");
+                }
+                else {
+                    std::cout << _("day");
+                }
+                comma = true;
+            }
+            if (adjustment_ != 0) {
+                if (comma) std::cout << ",";
+                std::cout << " " << adjustment_ << _("s");
+            }
+        }
+        struct tm tm;
+        if (str2Tm(timeStr, &tm) != 0) {
+            if (Params::instance().verbose_) std::cout << std::endl;
+            std::cerr << path << ": " << _("Failed to parse timestamp") << " `"
                       << timeStr << "'
";
             return 1;
         }
-        if (Params::instance().verbose_) {
-            std::cout << _("Adjusting") << " `" << ek << "' " << _("by")
-                      << (adjustment_ < 0 ? " " : " +")
-                      << adjustment_ << _(" s to ");
+        const long monOverflow = (tm.tm_mon + monthAdjustment_) / 12;
+        tm.tm_mon = (tm.tm_mon + monthAdjustment_) % 12;
+        tm.tm_year += yearAdjustment_ + monOverflow;
+        // Let's not create files with non-4-digit years, we can't read them.
+        if (tm.tm_year > 9999 - 1900 || tm.tm_year < 1000 - 1900) {
+            if (Params::instance().verbose_) std::cout << std::endl;
+            std::cerr << path << ": " << _("Can't adjust timestamp by") << " "
+                      << yearAdjustment_ + monOverflow
+                      << " " << _("years") << "
";
+            return 1;
         }
-        time += adjustment_;
+        time_t time = timegm(&tm);
+        time += adjustment_ + dayAdjustment_ * 86400;
         timeStr = time2Str(time);
         if (Params::instance().verbose_) {
-            std::cout << timeStr << std::endl;
+            std::cout << " " << _("to") << " " << timeStr << std::endl;
         }
         md->setValue(timeStr);
         return 0;
@@ -1659,17 +1710,14 @@ namespace {
         return 0;
     } // str2Tm
 
-    time_t str2Time(const std::string& timeStr)
-    {
-        struct tm tm;
-        if (str2Tm(timeStr, &tm) != 0) return (time_t)-1;
-        time_t t = timegm(&tm);
-        return t;
-    }
-
     std::string time2Str(time_t time)
     {
         struct tm* tm = gmtime(&time);
+        return tm2Str(tm);
+    } // time2Str
+
+    std::string tm2Str(struct tm* tm)
+    {
         if (0 == tm) return "";
 
         std::ostringstream os;
@@ -1682,7 +1730,7 @@ namespace {
            << std::setw(2) << tm->tm_sec;
 
         return os.str();
-    } // time2Str
+    } // tm2Str
 
     int metacopy(const std::string& source,
                  const std::string& target,
diff --git a/src/actions.hpp b/src/actions.hpp
index 1eb10c8..835ff1e 100644
--- a/src/actions.hpp
+++ b/src/actions.hpp
@@ -218,6 +218,10 @@ namespace Action {
                            const std::string& path) const;
 
         long adjustment_;
+        long yearAdjustment_;
+        long monthAdjustment_;
+        long dayAdjustment_;
+
     }; // class Adjust
 
     /*!
diff --git a/src/exiv2.1 b/src/exiv2.1
index ec09e0e..0e7e1e4 100644
--- a/src/exiv2.1
+++ b/src/exiv2.1
@@ -3,7 +3,7 @@
 .\" First parameter, NAME, should be all caps
 .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
 .\" other parameters are allowed: see man(7), man(1)
-.TH EXIV2 1 "December 12th, 2007"
+.TH EXIV2 1 "December 23rd, 2007"
 .\" Please adjust this date whenever revising the manpage.
 .\"
 .\" Some roff macros, for reference:
@@ -57,8 +57,9 @@ different formats. Modification commands can be applied on-the-fly.
 Delete image metadata from the files.
 .TP
 .B ad | adjust
-Adjust Exif timestamps by the given time. Requires option 
B\-a
P
-
Itime
P.
+Adjust Exif timestamps by the given time. Requires at least one of the
+options 
B\-a
P 
Itime
P, 
B\-Y
P 
Iyrs
P, 
B\-O
P
+
Imon
P or 
B\-D
P 
Iday
P.
 .TP
 .B mo | modify
 Apply commands to modify (add, set, delete) the Exif, IPTC and XMP
@@ -122,6 +123,18 @@ Time adjustment in the format [\-]HH[:MM[:SS]]. This option is only
 used with the 'adjust' action. Examples: 1 adds one hour, 1:01 
 adds one hour and one minute, \-0:00:30 subtracts 30 seconds.
 .TP
+.B \-Y 
Iyrs
P
+Time adjustment by a positive or negative number of years, for
+the 'adjust' action.
+.TP
+.B \-O 
Imon
P
+Time adjustment by a positive or negative number of months, for
+the 'adjust' action.
+.TP
+.B \-D 
Iday
P
+Time adjustment by a positive or negative number of days, for
+the 'adjust' action.
+.TP
 .B \-p 
Imode
P
 Print mode for the 'print' action. Possible modes are:
 .br
diff --git a/src/exiv2.cpp b/src/exiv2.cpp
index 91784ab..c9f850a 100644
--- a/src/exiv2.cpp
+++ b/src/exiv2.cpp
@@ -165,6 +165,12 @@ int main(int argc, char* const argv[])
 // class Params
 Params* Params::instance_ = 0;
 
+const Params::YodAdjust Params::emptyYodAdjust_[] = {
+    { false, "-Y", 0 },
+    { false, "-O", 0 },
+    { false, "-D", 0 },            
+};
+
 Params& Params::instance()
 {
     if (0 == instance_) {
@@ -211,8 +217,8 @@ void Params::help(std::ostream& os) const
 {
     usage(os);
     os << _("
Actions:
")
-       << _("  ad | adjust   Adjust Exif timestamps by the given time. This
"
-            "                action requires the option -a time.
")
+       << _("  ad | adjust   Adjust Exif timestamps by the given time. This action
"
+            "                requires at least one of the -a, -Y, -O or -D options.
")
        << _("  pr | print    Print image metadata.
")
        << _("  rm | delete   Delete image metadata from the files.
")
        << _("  in | insert   Insert metadata from corresponding *.exv files.
"
@@ -240,6 +246,9 @@ void Params::help(std::ostream& os) const
        << _("   -F      Do not prompt before renaming files (Force).
")
        << _("   -a time Time adjustment in the format [-]HH[:MM[:SS]]. This option
"
             "           is only used with the 'adjust' action.
")
+       << _("   -Y yrs  Year adjustment with the 'adjust' action.
")
+       << _("   -O mon  Month adjustment with the 'adjust' action.
")
+       << _("   -D day  Day adjustment with the 'adjust' action.
")
        << _("   -p mode Print mode for the 'print' action. Possible modes are:
")
        << _("             s : print a summary of the Exif metadata (the default)
")
        << _("             t : interpreted (translated) Exif data (shortcut for -Pkyct)
")
@@ -307,6 +316,9 @@ int Params::option(int opt, const std::string& optarg, int optopt)
     case 't': rc = evalRename(opt, optarg); break;
     case 'T': rc = evalRename(opt, optarg); break;
     case 'a': rc = evalAdjust(optarg); break;
+    case 'Y': rc = evalYodAdjust(yodYear, optarg); break;
+    case 'O': rc = evalYodAdjust(yodMonth, optarg); break;
+    case 'D': rc = evalYodAdjust(yodDay, optarg); break;
     case 'p': rc = evalPrint(optarg); break;
     case 'P': rc = evalPrintCols(optarg); break;
     case 'd': rc = evalDelete(optarg); break;
@@ -377,6 +389,12 @@ int Params::evalAdjust(const std::string& optarg)
     int rc = 0;
     switch (action_) {
     case Action::none:
+    case Action::adjust:
+        if (adjust_) {
+            std::cerr << progname()
+                      << ": " << _("Ignoring surplus option -a")  << " " << optarg << "
";
+            break;
+        }
         action_ = Action::adjust;
         adjust_ = parseTime(optarg, adjustment_);
         if (!adjust_) {
@@ -385,10 +403,6 @@ int Params::evalAdjust(const std::string& optarg)
             rc = 1;
         }
         break;
-    case Action::adjust:
-        std::cerr << progname()
-                  << ": " << _("Ignoring surplus option -a")  << " " << optarg << "
";
-        break;
     default:
         std::cerr << progname()
                   << ": " << _("Option -a is not compatible with a previous option
");
@@ -398,6 +412,38 @@ int Params::evalAdjust(const std::string& optarg)
     return rc;
 } // Params::evalAdjust
 
+int Params::evalYodAdjust(const Yod& yod, const std::string& optarg)
+{
+    int rc = 0;
+    switch (action_) {
+    case Action::none: // fall-through
+    case Action::adjust:
+        if (yodAdjust_[yod].flag_) {
+            std::cerr << progname()
+                      << ": " << _("Ignoring surplus option") << " "
+                      << yodAdjust_[yod].option_ << " " << optarg << "
";
+            break;
+        }
+        action_ = Action::adjust;
+        yodAdjust_[yod].flag_ = true;
+        if (!Util::strtol(optarg.c_str(), yodAdjust_[yod].adjustment_)) {
+            std::cerr << progname() << ": " << _("Error parsing") << " "
+                      << yodAdjust_[yod].option_ << " "
+                      << _("option argument") << " `" << optarg << "'
";
+            rc = 1;
+        }
+        break;
+    default:
+        std::cerr << progname()
+                  << ": " << _("Option") << " "
+                  << yodAdjust_[yod].option_ << " "
+                  << _("is not compatible with a previous option
");
+        rc = 1;
+        break;
+    }
+    return rc;
+} // Params::evalYodAdjust
+
 int Params::evalPrint(const std::string& optarg)
 {
     int rc = 0;
@@ -683,9 +729,13 @@ int Params::getopt(int argc, char* const argv[])
         std::cerr << progname() << ": " << _("An action must be specified
");
         rc = 1;
     }
-    if (action_ == Action::adjust && !adjust_) {
+    if (   action_ == Action::adjust
+        && !adjust_
+        && !yodAdjust_[yodYear].flag_
+        && !yodAdjust_[yodMonth].flag_
+        && !yodAdjust_[yodDay].flag_) {
         std::cerr << progname() << ": "
-                  << _("Adjust action requires option -a time
");
+                  << _("Adjust action requires at least one -a, -Y, -O or -D option
");
         rc = 1;
     }
     if (   action_ == Action::modify
diff --git a/src/exiv2.hpp b/src/exiv2.hpp
index bce57dd..b284d6a 100644
--- a/src/exiv2.hpp
+++ b/src/exiv2.hpp
@@ -145,6 +145,16 @@ public:
     //! Enumerates the policies to handle existing files in rename action
     enum FileExistsPolicy { overwritePolicy, renamePolicy, askPolicy };
 
+    //! Enumerates year, month and day adjustments.
+    enum Yod { yodYear, yodMonth, yodDay };
+
+    //! Structure for year, month and day adjustment command line arguments.
+    struct YodAdjust {
+        bool        flag_;              //!< Adjustment flag.
+        const char* option_;            //!< Adjustment option string.
+        long        adjustment_;        //!< Adjustment value.
+    };
+
     bool help_;                         //!< Help option flag.
     bool version_;                      //!< Version option flag.
     bool verbose_;                      //!< Verbose (talkative) option flag.
@@ -163,6 +173,7 @@ public:
     int  target_;                       //!< What common target to process.
 
     long adjustment_;                   //!< Adjustment in seconds.
+    YodAdjust yodAdjust_[3];            //!< Year, month and day adjustment info.
     std::string format_;                //!< Filename format (-r option arg).
     bool formatSet_;                    //!< Whether the format is set with -r
     CmdFiles cmdFiles_;                 //!< Names of the modification command files
@@ -174,11 +185,19 @@ public:
     Files files_;                       //!< List of non-option arguments.
 
 private:
+    //! Pointer to the global Params object.
+    static Params* instance_;
+    //! Initializer for year, month and day adjustment info.
+    static const YodAdjust emptyYodAdjust_[];
+
+    bool first_;
+
+private:
     /*!
       @brief Default constructor. Note that optstring_ is initialized here.
              The c'tor is private to force instantiation through instance().
      */
-    Params() : optstring_(":hVvfbuktTFa:r:p:P:d:e:i:c:m:M:l:S:"),
+    Params() : optstring_(":hVvfbuktTFa:Y:O:D:r:p:P:d:e:i:c:m:M:l:S:"),
                help_(false),
                version_(false),
                verbose_(false),
@@ -197,7 +216,12 @@ private:
                adjustment_(0),
                format_("%Y%m%d_%H%M%S"),
                formatSet_(false),
-               first_(true) {}
+               first_(true)
+    {
+        yodAdjust_[yodYear]  = emptyYodAdjust_[yodYear];
+        yodAdjust_[yodMonth] = emptyYodAdjust_[yodMonth];
+        yodAdjust_[yodDay]   = emptyYodAdjust_[yodDay];
+    }
 
     //! Prevent copy-construction: not implemented.
     Params(const Params& rhs);
@@ -206,6 +230,7 @@ private:
     //@{
     int evalRename(int opt, const std::string& optarg);
     int evalAdjust(const std::string& optarg);
+    int evalYodAdjust(const Yod& yod, const std::string& optarg);
     int evalPrint(const std::string& optarg);
     int evalPrintCols(const std::string& optarg);
     int evalDelete(const std::string& optarg);
@@ -214,11 +239,6 @@ private:
     int evalModify(int opt, const std::string& optarg);
     //@}
 
-    //! Pointer to the global Params object.
-    static Params* instance_;
-
-    bool first_;
-
 public:
     /*!
       @brief Call Getopt::getopt() with optstring, to inititate command line
diff --git a/test/data/exiv2-test.out b/test/data/exiv2-test.out
index fc4abe5..6464a07 100644
--- a/test/data/exiv2-test.out
+++ b/test/data/exiv2-test.out
@@ -27,8 +27,8 @@ Usage: exiv2 [ options ] [ action ] file ...
 Manipulate the Exif metadata of images.
 
 Actions:
-  ad | adjust   Adjust Exif timestamps by the given time. This
-                action requires the option -a time.
+  ad | adjust   Adjust Exif timestamps by the given time. This action
+                requires at least one of the -a, -Y, -O or -D options.
   pr | print    Print image metadata.
   rm | delete   Delete image metadata from the files.
   in | insert   Insert metadata from corresponding *.exv files.
@@ -57,6 +57,9 @@ Options:
    -F      Do not prompt before renaming files (Force).
    -a time Time adjustment in the format [-]HH[:MM[:SS]]. This option
            is only used with the 'adjust' action.
+   -Y yrs  Year adjustment with the 'adjust' action.
+   -O mon  Month adjustment with the 'adjust' action.
+   -D day  Day adjustment with the 'adjust' action.
    -p mode Print mode for the 'print' action. Possible modes are:
              s : print a summary of the Exif metadata (the default)
              t : interpreted (translated) Exif data (shortcut for -Pkyct)
@@ -111,60 +114,60 @@ Adjust -------------------------------------------------------------------
 File  1/15: exiv2-empty.jpg
 exiv2-empty.jpg: No Exif data found in the file
 File  2/15: exiv2-canon-powershot-s40.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2003:12:14 00:00:43
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2003:12:14 00:00:43
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2003:12:14 00:00:43
+Adjusting `Exif.Image.DateTime' by -43261s to 2003:12:14 00:00:43
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2003:12:14 00:00:43
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2003:12:14 00:00:43
 File  3/15: exiv2-nikon-e990.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2000:05:06 02:05:44
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2000:05:06 02:05:44
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2000:05:06 02:05:44
+Adjusting `Exif.Image.DateTime' by -43261s to 2000:05:06 02:05:44
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2000:05:06 02:05:44
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2000:05:06 02:05:44
 File  4/15: exiv2-nikon-d70.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2004:03:29 22:42:45
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2004:03:29 22:42:45
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2004:03:29 22:42:45
+Adjusting `Exif.Image.DateTime' by -43261s to 2004:03:29 22:42:45
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2004:03:29 22:42:45
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2004:03:29 22:42:45
 File  5/15: exiv2-nikon-e950.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2001:04:05 23:50:39
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2001:04:05 23:50:39
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2001:04:05 23:50:39
+Adjusting `Exif.Image.DateTime' by -43261s to 2001:04:05 23:50:39
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2001:04:05 23:50:39
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2001:04:05 23:50:39
 File  6/15: exiv2-canon-eos-300d.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2003:09:25 20:18:50
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2003:09:25 20:18:50
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2003:09:25 20:18:50
+Adjusting `Exif.Image.DateTime' by -43261s to 2003:09:25 20:18:50
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2003:09:25 20:18:50
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2003:09:25 20:18:50
 File  7/15: exiv2-kodak-dc210.jpg
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2000:10:26 04:45:50
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2000:10:26 04:45:50
 File  8/15: exiv2-fujifilm-finepix-s2pro.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2003:09:26 11:15:35
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2003:09:26 11:15:35
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2003:09:26 11:15:35
+Adjusting `Exif.Image.DateTime' by -43261s to 2003:09:26 11:15:35
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2003:09:26 11:15:35
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2003:09:26 11:15:35
 File  9/15: exiv2-sigma-d10.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2004:03:18 11:39:25
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2004:03:16 07:51:37
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2004:03:18 11:39:25
+Adjusting `Exif.Image.DateTime' by -43261s to 2004:03:18 11:39:25
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2004:03:16 07:51:37
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2004:03:18 11:39:25
 File 10/15: exiv2-olympus-c8080wz.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2004:02:08 09:37:44
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2004:02:08 09:37:44
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2004:02:08 09:37:44
+Adjusting `Exif.Image.DateTime' by -43261s to 2004:02:08 09:37:44
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2004:02:08 09:37:44
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2004:02:08 09:37:44
 File 11/15: exiv2-panasonic-dmc-fz5.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2005:02:18 21:20:16
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2005:02:18 21:20:16
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2005:02:18 21:20:16
+Adjusting `Exif.Image.DateTime' by -43261s to 2005:02:18 21:20:16
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2005:02:18 21:20:16
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2005:02:18 21:20:16
 File 12/15: exiv2-sony-dsc-w7.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2005:05:27 05:18:33
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2005:05:27 05:18:33
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2005:05:27 05:18:33
+Adjusting `Exif.Image.DateTime' by -43261s to 2005:05:27 05:18:33
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2005:05:27 05:18:33
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2005:05:27 05:18:33
 File 13/15: exiv2-canon-eos-20d.jpg
 Warning: Makernote: Pointer to next IFD is out of bounds; ignored.
-Adjusting `Exif.Image.DateTime' by -43261 s to 2006:08:02 09:52:00
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2006:08:02 09:52:00
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2006:08:02 09:52:00
+Adjusting `Exif.Image.DateTime' by -43261s to 2006:08:02 09:52:00
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2006:08:02 09:52:00
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2006:08:02 09:52:00
 File 14/15: exiv2-canon-eos-d30.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2000:10:04 01:54:04
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2000:10:04 01:54:04
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2000:10:04 01:54:04
+Adjusting `Exif.Image.DateTime' by -43261s to 2000:10:04 01:54:04
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2000:10:04 01:54:04
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2000:10:04 01:54:04
 File 15/15: exiv2-canon-powershot-a520.jpg
-Adjusting `Exif.Image.DateTime' by -43261 s to 2006:01:27 22:50:27
-Adjusting `Exif.Photo.DateTimeOriginal' by -43261 s to 2006:01:27 22:50:27
-Adjusting `Exif.Photo.DateTimeDigitized' by -43261 s to 2006:01:27 22:50:27
+Adjusting `Exif.Image.DateTime' by -43261s to 2006:01:27 22:50:27
+Adjusting `Exif.Photo.DateTimeOriginal' by -43261s to 2006:01:27 22:50:27
+Adjusting `Exif.Photo.DateTimeDigitized' by -43261s to 2006:01:27 22:50:27
 
 Rename -------------------------------------------------------------------
 File  1/15: exiv2-empty.jpg

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list