gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r1523 - Extractor/src/plugins/exiv2


From: grothoff
Subject: [GNUnet-SVN] r1523 - Extractor/src/plugins/exiv2
Date: Thu, 14 Jul 2005 09:53:21 -0700 (PDT)

Author: grothoff
Date: 2005-07-14 09:53:13 -0700 (Thu, 14 Jul 2005)
New Revision: 1523

Removed:
   Extractor/src/plugins/exiv2/doxygen.hpp
   Extractor/src/plugins/exiv2/exifprint.cpp
   Extractor/src/plugins/exiv2/exiv2.cpp
   Extractor/src/plugins/exiv2/exiv2.hpp
   Extractor/src/plugins/exiv2/getopt_win32.h
   Extractor/src/plugins/exiv2/iptceasy.cpp
   Extractor/src/plugins/exiv2/iptcprint.cpp
   Extractor/src/plugins/exiv2/metacopy.cpp
   Extractor/src/plugins/exiv2/metacopy.hpp
   Extractor/src/plugins/exiv2/private.h
   Extractor/src/plugins/exiv2/taglist.cpp
   Extractor/src/plugins/exiv2/timegm.h
   Extractor/src/plugins/exiv2/tzfile.h
   Extractor/src/plugins/exiv2/utils.cpp
   Extractor/src/plugins/exiv2/utils.hpp
Modified:
   Extractor/src/plugins/exiv2/Makefile.am
Log:
dead code elimination, thanks to Andreas Huggel

Modified: Extractor/src/plugins/exiv2/Makefile.am
===================================================================
--- Extractor/src/plugins/exiv2/Makefile.am     2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/Makefile.am     2005-07-14 16:53:13 UTC (rev 
1523)
@@ -28,7 +28,6 @@
 canonmn.hpp \
 datasets.cpp \
 datasets.hpp \
-doxygen.hpp \
 error.cpp \
 error.hpp \
 exif.cpp \
@@ -47,8 +46,6 @@
 jpgimage.hpp \
 makernote.cpp \
 makernote.hpp \
-metacopy.cpp \
-metacopy.hpp \
 metadatum.cpp \
 metadatum.hpp \
 mn.hpp \
@@ -67,8 +64,6 @@
 tags.hpp \
 types.cpp \
 types.hpp \
-utils.cpp \
-utils.hpp \
 value.cpp \
 value.hpp 
 

Deleted: Extractor/src/plugins/exiv2/doxygen.hpp
===================================================================
--- Extractor/src/plugins/exiv2/doxygen.hpp     2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/doxygen.hpp     2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,133 +0,0 @@
-// ***************************************************************** -*- C++ 
-*-
-/*!
-  @file    doxygen.hpp
-  @brief   Additional documentation, this file contains no source code
-  @version $Rev: 581 $
-  @author  Andreas Huggel (ahu)
-           <a href="mailto:address@hidden";>address@hidden</a>
-  @date    07-Feb-04, ahu: created
- */
-/*!
-  @mainpage Exif and Iptc metadata manipulation library and tools v0.7
-
-  @section overview Exiv2 Overview
-
-  %Exiv2 comprises of a C++ library and a command line utility to access image 
-  metadata. %Exiv2 is free software. The homepage of %Exiv2 is at
-  <A 
HREF="http://home.arcor.de/ahuggel/exiv2";>http://home.arcor.de/ahuggel/exiv2</A>.
-
-  The %Exiv2 library provides
-  - full read and write access to the Exif and Iptc metadata of an image 
through 
-    %Exiv2 keys and standard C++ iterators 
-  - a smart Iptc implementation that does not effect data that programs like 
-    Photoshop store in the same image segment
-  - Exif %MakerNote support:
-    - %MakerNote tags can be accessed just like any other Exif metadata
-    - a sophisticated write algorithm avoids corrupting the %MakerNote: 
-      <br>&nbsp;&nbsp;1) the %MakerNote is not re-located if possible at all, 
and 
-      <br>&nbsp;&nbsp;2) %MakerNote %Ifd offsets are re-calculated if the 
-                         %MakerNote needs to be moved (for known %Ifd 
%MakerNotes)
-    - new camera make/model specific %MakerNotes can be added to the library 
with 
-      minimum effort in OO-fashion (by subclassing %MakerNote or %IfdMakerNote)
-  - extract and delete methods for Exif thumbnails (both, Jpeg and Tiff 
thumbnails)
-  - set methods for Exif thumbnails (Jpeg only, Tiff thumbnails can be set 
from 
-    individual tags)
-  - complete API documentation (by Doxygen)
-  - generic lower-level classes to access %Ifd (%Image File Directory) data 
-    structures
-
-  @section getting-started Getting started
-
-  <A HREF="getting-started.html">A few pointers</A> to get you started with
-  the %Exiv2 library without delay.
-
-  @section metadata Supported Exif and MakerNote tags and Iptc datasets
-
-  - <A HREF="tags-exif.html">Standard Exif tags</A>
-  - <A HREF="tags-canon.html">Canon MakerNote tags</A>
-  - <A HREF="tags-fujifilm.html">Fujifilm MakerNote tags</A>
-  - <A HREF="tags-nikon.html">Nikon MakerNote tags</A>
-  - <A HREF="tags-olympus.html">Olympus MakerNote tags</A>
-  - <A HREF="tags-panasonic.html">Panasonic MakerNote tags</A>
-  - <A HREF="tags-sigma.html">Sigma/Foveon MakerNote tags</A>
-  - <A HREF="tags-sony.html">Sony MakerNote tags</A>
-  - <A HREF="tags-iptc.html">Iptc datasets</A>
-
-  @section makernote MakerNote Formats and Specifications
-
-  A summary of <A HREF="makernote.html">MakerNote structures</A> with links to 
-  publicly available specifications.
-
-  @section supp Support
-
-  <p>There is now a 
-  <a title="Exiv2 forum" href="http://uk.groups.yahoo.com/group/exiv2";>Yahoo! 
group for Exiv2 help and discussions</a>.</p> 
-  <p><a title="Join the Exiv2 forum" 
href="http://uk.groups.yahoo.com/group/exiv2/join";>Join the group</a> to post 
and receive messages or use <em><a title="Post to the Exiv2 forum" 
href="http://uk.groups.yahoo.com/group/exiv2/post";>exiv2user/password</a></em> 
to post anonymously. Bug reports can be submitted directly to the 
-<a title="Issue tracker" href="http://dev.robotbattle.com/bugs/main_page.php";
-  
onclick="document.images['tracker'].src='http://www.whatcounter.com/dlcount.php?id=ahu&amp;url='+this.href">
-bug tracking system</a>.</p>
-
-  @section devel Development
-
-  <p>%Exiv2 is maintained in a publicly available subversion repository. 
-  There is a <a title="Last 50 commits" 
href="http://dev.robotbattle.com/cmtinfo_svn.php?r=10";>
-  live list with the latest commits</a> to the repository, and you can 
-  <a title="Online source code repository" 
href="http://dev.robotbattle.com/~cvsuser/cgi-bin/ns_viewcvs.cgi/exiv2/trunk/";>
-  browse the source code</a> online.
-  </p>
-  <p>To check-out the current source code from the repository, you need a 
-  <a title="Get Subversion!"
-  href="http://subversion.tigris.org/project_packages.html";>subversion 
client</a>. 
-  If you use a command line client, change to the directory where you want to 
keep 
-  the source code and type:</p>
-  
-  @verbatim $ svn checkout svn://dev.robotbattle.com/exiv2/trunk . @endverbatim
-
-  <p>To download the test data and test drivers for version 0.7 from
-  the repository, change to your local exiv2-0.7 directory and use the
-  following command:
-  </p>
-  
-  @verbatim $ svn export svn://dev.robotbattle.com/exiv2/tags/0.7/test 
@endverbatim
-
-  <P>If you'd like to contribute code, please <A 
HREF="mailto:address@hidden";>contact me</A>.
-
-  @section license License
-
-  <P>Copyright (C) 2004, 2005 Andreas Huggel <address@hidden></P>
-
-  <P>%Exiv2 is free software; you can redistribute it and/or modify it under 
the
-  terms of the <a href="gpl-license.html">GNU General Public License</a> as
-  published by the Free Software Foundation; either version 2 of the License, 
or
-  (at your option) any later version.</P>
- 
-  <P>%Exiv2 is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-  A PARTICULAR PURPOSE.  See the GNU General Public License for more
-  details.</P>
- 
-  <P>You should have received a copy of the GNU General Public License along
-  with this program; if not, write to the Free Software Foundation, Inc., 59
-  Temple Place - Suite 330, Boston, MA 02111-1307, USA.</P>
-
-*/
-/*!
-  @example addmoddel.cpp
-  Sample usage of high-level metadata operations.
- */
-/*!
-  @example exifprint.cpp
-  Sample program to print Exif data from an image.
- */
-/*!
-  @example exifcomment.cpp
-  Sample program showing how to set the Exif comment of an image.
- */
-/*!
-  @example iptcprint.cpp
-  Sample program to print the Iptc metadata of an image
- */
-/*!
-  @example iptceasy.cpp
-  The quickest way to access, set or modify Iptc metadata
- */

Deleted: Extractor/src/plugins/exiv2/exifprint.cpp
===================================================================
--- Extractor/src/plugins/exiv2/exifprint.cpp   2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/exifprint.cpp   2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,49 +0,0 @@
-// ***************************************************************** -*- C++ 
-*-
-// exifprint.cpp, $Rev: 578 $
-// Sample program to print the Exif metadata of an image
-
-#include "image.hpp"
-#include "exif.hpp"
-#include <iostream>
-#include <iomanip>
-#include <cassert>
-
-int main(int argc, char* const argv[])
-try {
-
-    if (argc != 2) {
-        std::cout << "Usage: " << argv[0] << " file\n";
-        return 1;
-    }
-
-    Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(argv[1]);
-    assert(image.get() != 0);
-    image->readMetadata();
-
-    Exiv2::ExifData &exifData = image->exifData();
-    if (exifData.empty()) {
-        std::string error(argv[1]);
-        error += ": No Exif data found in the file";
-        throw Exiv2::Error(1, error);
-    }
-    Exiv2::ExifData::const_iterator end = exifData.end();
-    for (Exiv2::ExifData::const_iterator i = exifData.begin(); i != end; ++i) {
-        std::cout << std::setw(44) << std::setfill(' ') << std::left
-                  << i->key() << " "
-                  << "0x" << std::setw(4) << std::setfill('0') << std::right
-                  << std::hex << i->tag() << " " 
-                  << std::setw(9) << std::setfill(' ') << std::left
-                  << i->typeName() << " "
-                  << std::dec << std::setw(3) 
-                  << std::setfill(' ') << std::right
-                  << i->count() << "  "
-                  << std::dec << i->value() 
-                  << "\n";
-    }
-
-    return 0;
-}
-catch (Exiv2::AnyError& e) {
-    std::cout << "Caught Exiv2 exception '" << e << "'\n";
-    return -1;
-}

Deleted: Extractor/src/plugins/exiv2/exiv2.cpp
===================================================================
--- Extractor/src/plugins/exiv2/exiv2.cpp       2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/exiv2.cpp       2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,814 +0,0 @@
-// ***************************************************************** -*- C++ 
-*-
-/*
- * Copyright (C) 2004, 2005 Andreas Huggel <address@hidden>
- * 
- * This program is part of the Exiv2 distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-/*
-  Abstract:  Command line program to display and manipulate image %Exif data
-
-  File:      exiv2.cpp
-  Version:   $Rev: 598 $
-  Author(s): Andreas Huggel (ahu) <address@hidden>
-  History:   10-Dec-03, ahu: created
- */
-// 
*****************************************************************************
-#include "rcsid.hpp"
-EXIV2_RCSID("@(#) $Id: exiv2.cpp 598 2005-07-08 15:29:11Z ahuggel $");
-
-// 
*****************************************************************************
-// included header files
-#ifdef _MSC_VER
-# include "exv_msvc.h"
-#else
-# include "exv_conf.h"
-#endif
-
-#include "exiv2.hpp"
-#include "actions.hpp"
-#include "utils.hpp"
-
-#include <string>
-#include <iostream>
-#include <fstream>
-#include <iomanip>
-#include <cstring>
-#include <cassert>
-
-// 
*****************************************************************************
-// local declarations
-namespace {
-
-    //! List of all command identifiers and corresponding strings
-    static const CmdIdAndString cmdIdAndString[] = {
-        { add, "add" },
-        { set, "set" }, 
-        { del, "del" }, 
-        { invalidCmdId, "invalidCmd" }          // End of list marker
-    };
-
-    // Return a command Id for a command string 
-    CmdId commandId(const std::string& cmdString);
-
-    // Evaluate [-]HH[:MM[:SS]], returns true and sets time to the value
-    // in seconds if successful, else returns false.
-    bool parseTime(const std::string& ts, long& time);
-
-    /*!
-      @brief Parse the oparg string into a bitmap of common targets.
-      @param optarg Option arguments
-      @param action Action being processed
-      @return A bitmap of common targets or -1 in case of a parse error 
-     */
-    int parseCommonTargets(const std::string& optarg,
-                           const std::string& action);
-
-    /*!
-      @brief Parse metadata modification commands from multiple files
-      @param modifyCmds Reference to a structure to store the parsed commands
-      @param cmdFiles Container with the file names
-     */
-    bool parseCmdFiles(ModifyCmds& modifyCmds, 
-                       const Params::CmdFiles& cmdFiles);
-
-    /*!
-      @brief Parse metadata modification commands from a container of commands
-      @param modifyCmds Reference to a structure to store the parsed commands
-      @param cmdLines Container with the commands
-     */
-    bool parseCmdLines(ModifyCmds& modifyCmds, 
-                       const Params::CmdLines& cmdLines);
-
-    /*!
-      @brief Parse one line of the command file
-      @param modifyCmd Reference to a command structure to store the parsed 
-             command
-      @param line Input line
-      @param num Line number (used for error output)
-     */
-    bool parseLine(ModifyCmd& modifyCmd,
-                   const std::string& line, int num);
-
-}
-
-// 
*****************************************************************************
-// Main
-int main(int argc, char* const argv[])
-{
-    // Handle command line arguments
-    Params& params = Params::instance();
-    if (params.getopt(argc, argv)) {
-        params.usage();
-        return 1;
-    }
-    if (params.help_) {
-        params.help();
-        return 0;
-    }
-    if (params.version_) {
-        params.version();
-        return 0;
-    }
-
-    // Create the required action class
-    Action::TaskFactory& taskFactory = Action::TaskFactory::instance();
-    Action::Task::AutoPtr task 
-        = taskFactory.create(Action::TaskType(params.action_));
-    assert(task.get());
-
-    // Process all files
-    int n = 1;
-    int s = static_cast<int>(params.files_.size());
-    int w = s > 9 ? s > 99 ? 3 : 2 : 1;
-    Params::Files::const_iterator e = params.files_.end();
-    for (Params::Files::const_iterator i = params.files_.begin(); i != e; ++i) 
{
-        if (params.verbose_) {
-            std::cout << "File " << std::setw(w) << n++ << "/" << s << ": " 
-                      << *i << std::endl;
-        }
-        task->run(*i);
-    }
-
-    taskFactory.cleanup();
-    params.cleanup();
-
-    return 0;
-} // main
-
-// 
*****************************************************************************
-// class Params
-Params* Params::instance_ = 0;
-
-Params& Params::instance()
-{
-    if (0 == instance_) {
-        instance_ = new Params;
-    }
-    return *instance_;
-}
-
-void Params::cleanup()
-{
-    delete instance_;
-    instance_ = 0;
-}
-
-void Params::version(std::ostream& os) const
-{
-    os << EXV_PACKAGE_STRING << ", " 
-       << "Copyright (C) 2004, 2005 Andreas Huggel.\n\n"
-       << "This is free software; see the source for copying conditions.  "
-       << "There is NO \nwarranty; not even for MERCHANTABILITY or FITNESS FOR 
"
-       << "A PARTICULAR PURPOSE.\n";
-}
-
-void Params::usage(std::ostream& os) const
-{
-    os << "Usage: " << progname() 
-       << " [ options ] [ action ] file ...\n\n"
-       << "Manipulate the Exif metadata of images.\n";
-}
-
-void Params::help(std::ostream& os) const
-{
-    usage(os);
-    os << "\nActions:\n"
-       << "  ad | adjust   Adjust Exif timestamps by the given time. This\n"
-       << "                action requires the option -a time.\n"
-       << "  pr | print    Print image metadata.\n"
-       << "  rm | delete   Delete image metadata from the files.\n"
-       << "  in | insert   Insert metadata from corresponding *.exv files.\n"
-       << "  ex | extract  Extract metadata to *.exv and thumbnail image 
files.\n"
-       << "  mv | rename   Rename files according to the Exif create 
timestamp.\n"
-       << "                The filename format can be set with -r format.\n"
-       << "  mo | modify   Apply commands to modify (add, set, delete) the 
Exif\n"
-       << "                and Iptc metadata of image files. Requires option 
-m or -M\n"
-       << "\nOptions:\n"
-       << "   -h      Display this help and exit.\n"
-       << "   -V      Show the program version and exit.\n"
-       << "   -v      Be verbose during the program run.\n"
-       << "   -f      Do not prompt before overwriting existing files 
(force).\n"
-       << "   -F      Do not prompt before renaming existing files (Force).\n"
-       << "   -a time Time adjustment in the format [-]HH[:MM[:SS]]. This 
option\n"
-       << "           is only used with the `adjust' action.\n"
-       << "   -p mode Print mode for the `print' action. Possible modes are:\n"
-       << "             s : print a summary of the Exif metadata (the 
default)\n"
-       << "             t : interpreted (translated) Exif data\n"
-       << "             v : plain Exif data values\n"
-       << "             h : hexdump of the Exif data\n"
-       << "             i : Iptc data values\n"
-       << "             c : Jpeg comment\n"
-       << "   -d tgt  Delete target(s) for the `delete' action. Possible 
targets are:\n"
-       << "             a : all supported metadata (the default)\n"
-       << "             e : Exif section\n"
-       << "             t : Exif thumbnail only\n"
-       << "             i : Iptc data\n"
-       << "             c : Jpeg comment\n"
-       << "   -i tgt  Insert target(s) for the `insert' action. Possible 
targets are\n"
-       << "           the same as those for the -d option. Only Jpeg 
thumbnails can\n"
-       << "           be inserted, they need to be named <file>-thumb.jpg\n"
-       << "   -e tgt  Extract target(s) for the `extract' action. Possible 
targets\n"
-       << "           are the same as those for the -d option.\n"
-       << "   -r fmt  Filename format for the `rename' action. The format 
string\n"
-       << "           follows strftime(3). Default filename format is " 
-       <<             format_ << ".\n"
-       << "   -m file Command file for the modify action. The format for 
commands is\n"
-       << "           set|add|del <key> [[<type>] <value>].\n"
-       << "   -M cmd  Command line for the modify action. The format for the\n"
-       << "           commands is the same as that of the lines of a command 
file.\n"
-       << "   -l dir  Location (directory) for files to be inserted or 
extracted.\n\n";
-} // Params::help
-
-int Params::option(int opt, const std::string& optarg, int optopt)
-{
-    int rc = 0;
-    switch (opt) {
-    case 'h': help_ = true; break;
-    case 'V': version_ = true; break;
-    case 'v': verbose_ = true; break;
-    case 'f': force_ = true; fileExistsPolicy_ = overwritePolicy; break;
-    case 'F': force_ = true; fileExistsPolicy_ = renamePolicy; break;
-    case 'r': rc = evalRename(optarg); break;
-    case 'a': rc = evalAdjust(optarg); break;
-    case 'p': rc = evalPrint(optarg); break;
-    case 'd': rc = evalDelete(optarg); break;
-    case 'e': rc = evalExtract(optarg); break;
-    case 'i': rc = evalInsert(optarg); break;
-    case 'm': rc = evalModify(opt, optarg); break;
-    case 'M': rc = evalModify(opt, optarg); break;
-    case 'l': directory_ = optarg; break;
-    case ':':
-        std::cerr << progname() << ": Option -" << static_cast<char>(optopt) 
-                  << " requires an argument\n";
-        rc = 1;
-        break;
-    case '?':
-        std::cerr << progname() << ": Unrecognized option -" 
-                  << static_cast<char>(optopt) << "\n";
-        rc = 1;
-        break;
-    default:
-        std::cerr << progname() 
-                  << ": getopt returned unexpected character code " 
-                  << std::hex << opt << "\n";
-        rc = 1;
-        break;
-    }
-    return rc;
-} // Params::option
-
-int Params::evalRename(const std::string& optarg)
-{
-    int rc = 0;
-    switch (action_) {
-    case Action::none:
-        action_ = Action::rename;
-        format_ = optarg; 
-        break;
-    case Action::rename:
-        std::cerr << progname() 
-                  << ": Ignoring surplus option -r \"" << optarg << "\"\n";
-        break;
-    default:
-        std::cerr << progname() 
-                  << ": Option -r is not compatible with a previous option\n";
-        rc = 1;
-        break;
-    }
-    return rc;
-} // Params::evalRename
-
-int Params::evalAdjust(const std::string& optarg)
-{
-    int rc = 0;
-    switch (action_) {
-    case Action::none:
-        action_ = Action::adjust;
-        adjust_ = parseTime(optarg, adjustment_);
-        if (!adjust_) {
-            std::cerr << progname() << ": Error parsing -a option argument `" 
-                      << optarg << "'\n";
-            rc = 1;
-        }
-        break;
-    case Action::adjust:
-        std::cerr << progname() 
-                  << ": Ignoring surplus option -a " << optarg << "\n";
-        break;
-    default:
-        std::cerr << progname() 
-                  << ": Option -a is not compatible with a previous option\n";
-        rc = 1;
-        break;
-    }
-    return rc;
-} // Params::evalAdjust
-
-int Params::evalPrint(const std::string& optarg)
-{
-    int rc = 0;
-    switch (action_) {
-    case Action::none:
-        action_ = Action::print;
-        switch (optarg[0]) {
-        case 's': printMode_ = pmSummary; break;
-        case 't': printMode_ = pmInterpreted; break;
-        case 'v': printMode_ = pmValues; break;
-        case 'h': printMode_ = pmHexdump; break;
-        case 'i': printMode_ = pmIptc; break;
-        case 'c': printMode_ = pmComment; break;
-        default:
-            std::cerr << progname() << ": Unrecognized print mode `"
-                      << optarg << "'\n";
-            rc = 1;
-            break;
-        }
-        break;
-    case Action::print:
-        std::cerr << progname() 
-                  << ": Ignoring surplus option -p" << optarg << "\n";
-        break;
-    default:
-        std::cerr << progname() 
-                  << ": Option -p is not compatible with a previous option\n";
-        rc = 1;
-        break;
-    }
-    return rc;
-} // Params::evalPrint
-
-int Params::evalDelete(const std::string& optarg)
-{
-    int rc = 0;
-    switch (action_) {
-    case Action::none:
-        action_ = Action::erase;
-        target_ = 0;
-        // fallthrough
-    case Action::erase:
-        rc = parseCommonTargets(optarg, "erase");
-        if (rc > 0) {
-            target_ |= rc;
-            rc = 0;
-        }
-        else {    
-            rc = 1;
-        }
-        break;
-    default:
-        std::cerr << progname() 
-                  << ": Option -d is not compatible with a previous option\n";
-        rc = 1;
-        break;
-    }
-    return rc;
-} // Params::evalDelete
-
-int Params::evalExtract(const std::string& optarg)
-{
-    int rc = 0;
-    switch (action_) {
-    case Action::none:
-        action_ = Action::extract;
-        target_ = 0;
-        // fallthrough
-    case Action::extract:
-        rc = parseCommonTargets(optarg, "extract");
-        if (rc > 0) {
-            target_ |= rc;
-            rc = 0;
-        }
-        else {    
-            rc = 1;
-        }
-        break;
-    default:
-        std::cerr << progname() 
-                  << ": Option -e is not compatible with a previous option\n";
-        rc = 1;
-        break;
-    }
-    return rc;
-} // Params::evalExtract
-
-int Params::evalInsert(const std::string& optarg)
-{
-    int rc = 0;
-    switch (action_) {
-    case Action::none:
-        action_ = Action::insert;
-        target_ = 0;
-        // fallthrough
-    case Action::insert:
-        rc = parseCommonTargets(optarg, "insert");
-        if (rc > 0) {
-            target_ |= rc;
-            rc = 0;
-        }
-        else {    
-            rc = 1;
-        }
-        break;
-    default:
-        std::cerr << progname() 
-                  << ": Option -i is not compatible with a previous option\n";
-        rc = 1;
-        break;
-    }
-    return rc;
-} // Params::evalInsert
-
-int Params::evalModify(int opt, const std::string& optarg)
-{
-    int rc = 0;
-    switch (action_) {
-    case Action::none:
-        action_ = Action::modify;
-        // fallthrough
-    case Action::modify:
-        if (opt == 'm') cmdFiles_.push_back(optarg);  // parse the files later
-        if (opt == 'M') cmdLines_.push_back(optarg);  // parse the commands 
later
-        break;
-    default:
-        std::cerr << progname() 
-                  << ": Option -" << (char)opt
-                  << " is not compatible with a previous option\n";
-        rc = 1;
-        break;
-    }
-    return rc;
-} // Params::evalModify
-
-int Params::nonoption(const std::string& argv)
-{
-    int rc = 0;
-    bool action = false;
-    if (first_) {
-        // The first non-option argument must be the action
-        first_ = false;
-        if (argv == "ad" || argv == "adjust") {
-            if (action_ != Action::none && action_ != Action::adjust) {
-                std::cerr << progname() << ": Action adjust is not "
-                          << "compatible with the given options\n";
-                rc = 1;
-            }
-            action = true;
-            action_ = Action::adjust;
-        }
-        if (argv == "pr" || argv == "print") {
-            if (action_ != Action::none && action_ != Action::print) {
-                std::cerr << progname() << ": Action print is not "
-                          << "compatible with the given options\n";
-                rc = 1;
-            }
-            action = true;
-            action_ = Action::print;
-        }
-        if (argv == "rm" || argv == "delete") {
-            if (action_ != Action::none && action_ != Action::erase) {
-                std::cerr << progname() << ": Action delete is not "
-                          << "compatible with the given options\n";
-                rc = 1;
-            }
-            action = true;
-            action_ = Action::erase;
-        }
-        if (argv == "ex" || argv == "extract") {
-            if (action_ != Action::none && action_ != Action::extract) {
-                std::cerr << progname() << ": Action extract is not "
-                          << "compatible with the given options\n";
-                rc = 1;
-            }
-            action = true;
-            action_ = Action::extract;
-        }
-        if (argv == "in" || argv == "insert") {
-            if (action_ != Action::none && action_ != Action::insert) {
-                std::cerr << progname() << ": Action insert is not "
-                          << "compatible with the given options\n";
-                rc = 1;
-            }
-            action = true;
-            action_ = Action::insert;
-        }
-        if (argv == "mv" || argv == "rename") {
-            if (action_ != Action::none && action_ != Action::rename) {
-                std::cerr << progname() << ": Action rename is not "
-                          << "compatible with the given options\n";
-                rc = 1;
-            }
-            action = true;
-            action_ = Action::rename;
-        }
-        if (argv == "mo" || argv == "modify") {
-            if (action_ != Action::none && action_ != Action::modify) {
-                std::cerr << progname() << ": Action modify is not "
-                          << "compatible with the given options\n";
-                rc = 1;
-            }
-            action = true;
-            action_ = Action::modify;
-        }
-        if (action_ == Action::none) {
-            // if everything else fails, assume print as the default action
-            action_ = Action::print;
-        }
-    }
-    if (!action) {
-        files_.push_back(argv);
-    }
-    return rc;
-} // Params::nonoption
-
-int Params::getopt(int argc, char* const argv[])
-{ 
-    int rc = Util::Getopt::getopt(argc, argv, optstring_);
-    // Further consistency checks
-    if (help_ || version_) return 0;
-    if (action_ == Action::none) {
-        // This shouldn't happen since print is taken as default action
-        std::cerr << progname() << ": An action must be specified\n";
-        rc = 1;
-    }
-    if (action_ == Action::adjust && !adjust_) {
-        std::cerr << progname() 
-                  << ": Adjust action requires option -a time\n";
-        rc = 1;
-    }
-    if (action_ == Action::modify && cmdFiles_.empty() && cmdLines_.empty()) {
-        std::cerr << progname() 
-                  << ": Modify action requires at least one -m or -M option\n";
-        rc = 1;
-    }
-    if (0 == files_.size()) {
-        std::cerr << progname() << ": At least one file is required\n";
-        rc = 1;
-    }
-    if (rc == 0 && action_ == Action::modify) {
-        // Parse command files
-        if (!parseCmdFiles(modifyCmds_, cmdFiles_)) {
-            std::cerr << progname() << ": Error parsing -m option 
arguments\n"; 
-            rc = 1;
-        }
-    }
-    if (rc ==0 && action_ == Action::modify) {
-        // Parse command lines
-        if (!parseCmdLines(modifyCmds_, cmdLines_)) {
-            std::cerr << progname() << ": Error parsing -M option arguments\n";
-            rc = 1;
-        }
-    }
-    if (!directory_.empty() && !(action_ == Action::insert || action_ == 
Action::extract)) {
-        std::cerr << progname() << ": -l option can only be used with extract 
or insert actions\n"; 
-        rc = 1; 
-    }
-    return rc;
-} // Params::getopt
-
-// 
*****************************************************************************
-// local implementations
-namespace {
-
-    bool parseTime(const std::string& ts, long& time)
-    {
-        std::string hstr, mstr, sstr;
-        char *cts = new char[ts.length() + 1];
-        strcpy(cts, ts.c_str());
-        char *tmp = ::strtok(cts, ":");
-        if (tmp) hstr = tmp;
-        tmp = ::strtok(0, ":");
-        if (tmp) mstr = tmp;
-        tmp = ::strtok(0, ":");
-        if (tmp) sstr = tmp;
-        delete[] cts;
-
-        int sign = 1;
-        long hh(0), mm(0), ss(0);
-        // [-]HH part
-        if (!Util::strtol(hstr.c_str(), hh)) return false;
-        if (hh < 0) {
-            sign = -1;
-            hh *= -1;
-        }
-        // check for the -0 special case
-        if (hh == 0 && hstr.find('-') != std::string::npos) sign = -1;
-        // MM part, if there is one
-        if (mstr != "") {
-            if (!Util::strtol(mstr.c_str(), mm)) return false;
-            if (mm > 59) return false;
-            if (mm < 0) return false;
-        }
-        // SS part, if there is one
-        if (sstr != "") {
-            if (!Util::strtol(sstr.c_str(), ss)) return false;
-            if (ss > 59) return false;
-            if (ss < 0) return false;
-        }
-
-        time = sign * (hh * 3600 + mm * 60 + ss);
-        return true;
-    } // parseTime
-
-    int parseCommonTargets(const std::string& optarg, 
-                           const std::string& action)
-    {
-        int rc = 0;
-        int target = 0;
-        for (size_t i = 0; rc == 0 && i < optarg.size(); ++i) {
-            switch (optarg[i]) {
-            case 'e': target |= Params::ctExif; break;
-            case 'i': target |= Params::ctIptc; break;
-            case 'c': target |= Params::ctComment; break;
-            case 't': target |= Params::ctThumb; break;
-            case 'a': target |=   Params::ctExif 
-                                | Params::ctIptc
-                                | Params::ctComment; break;
-            default:
-                std::cerr << Params::instance().progname() << ": Unrecognized 
" 
-                          << action << " target `" << optarg[i] << "'\n";
-                rc = -1;
-                break;
-            }
-        }
-        return rc ? rc : target;
-    } // parseCommonTargets
-
-    bool parseCmdFiles(ModifyCmds& modifyCmds, 
-                       const Params::CmdFiles& cmdFiles)
-    {
-        Params::CmdFiles::const_iterator end = cmdFiles.end();
-        Params::CmdFiles::const_iterator filename = cmdFiles.begin();
-        for ( ; filename != end; ++filename) {
-            try {
-                std::ifstream file(filename->c_str());
-                if (!file) {
-                    std::cerr << *filename 
-                              << ": Failed to open command file for reading\n";
-                    return false;
-                }
-                int num = 0;
-                std::string line;
-                while (std::getline(file, line)) {
-                    ModifyCmd modifyCmd;
-                    if (parseLine(modifyCmd, line, ++num)) {
-                        modifyCmds.push_back(modifyCmd);
-                    }
-                }
-            }
-            catch (const Exiv2::AnyError& error) {
-                std::cerr << *filename << ", line " << error << "\n";
-                return false;
-            }
-        }
-        return true;
-    } // parseCmdFile
-
-    bool parseCmdLines(ModifyCmds& modifyCmds, 
-                       const Params::CmdLines& cmdLines)
-    {
-        try {
-            int num = 0;
-            Params::CmdLines::const_iterator end = cmdLines.end();
-            Params::CmdLines::const_iterator line = cmdLines.begin();
-            for ( ; line != end; ++line) {
-                ModifyCmd modifyCmd;
-                if (parseLine(modifyCmd, *line, ++num)) {
-                    modifyCmds.push_back(modifyCmd);
-                }
-            }
-            return true;
-        }
-        catch (const Exiv2::AnyError& error) {
-            std::cerr << "-M option " << error << "\n";
-            return false;
-       }
-    } // parseCmdLines
-
-    bool parseLine(ModifyCmd& modifyCmd, const std::string& line, int num)
-    {
-        const std::string delim = " \t";
-
-        // Skip empty lines and comments
-        std::string::size_type cmdStart = line.find_first_not_of(delim);
-        if (cmdStart == std::string::npos || line[cmdStart] == '#') return 
false;
-
-        // Get command and key 
-        std::string::size_type cmdEnd = line.find_first_of(delim, cmdStart+1);
-        std::string::size_type keyStart = line.find_first_not_of(delim, 
cmdEnd+1);
-        std::string::size_type keyEnd = line.find_first_of(delim, keyStart+1);
-        if (   cmdStart == std::string::npos
-            || cmdEnd == std::string::npos
-            || keyStart == std::string::npos) {
-            throw Exiv2::Error(1, Exiv2::toString(num) 
-                               + ": Invalid command line");
-        }
-
-        std::string cmd(line.substr(cmdStart, cmdEnd-cmdStart));
-        CmdId cmdId = commandId(cmd);
-        if (cmdId == invalidCmdId) {
-            throw Exiv2::Error(1, Exiv2::toString(num) 
-                               + ": Invalid command `" + cmd + "'");
-        }
-
-        Exiv2::TypeId defaultType = Exiv2::invalidTypeId;
-        std::string key(line.substr(keyStart, keyEnd-keyStart));
-        MetadataId metadataId = invalidMetadataId;
-        try {
-            Exiv2::IptcKey iptcKey(key);
-            metadataId = iptc;
-            defaultType = Exiv2::IptcDataSets::dataSetType(iptcKey.tag(), 
-                                                           iptcKey.record());
-        }
-        catch (const Exiv2::AnyError&) {}
-        if (metadataId == invalidMetadataId) {
-            try {
-                Exiv2::ExifKey exifKey(key);
-                metadataId = exif;
-                defaultType = Exiv2::ExifTags::tagType(exifKey.tag(),
-                                                       exifKey.ifdId());
-            }
-            catch (const Exiv2::AnyError&) {}
-        }
-        if (metadataId == invalidMetadataId) {
-            throw Exiv2::Error(1, Exiv2::toString(num) 
-                                + ": Invalid key `" + key + "'");
-        }
-
-        std::string value;
-        Exiv2::TypeId type = defaultType;
-        bool explicitType = false;
-        if (cmdId != del) {
-            // Get type and value
-            std::string::size_type typeStart 
-                = line.find_first_not_of(delim, keyEnd+1);
-            std::string::size_type typeEnd 
-                = line.find_first_of(delim, typeStart+1);
-            std::string::size_type valStart = typeStart;
-            std::string::size_type valEnd = line.find_last_not_of(delim);
-
-            if (   keyEnd == std::string::npos 
-                || typeStart == std::string::npos
-                || valStart == std::string::npos) {
-                throw Exiv2::Error(1, Exiv2::toString(num) 
-                                    + ": Invalid command line ");
-            }
-
-            if (typeEnd != std::string::npos) {
-                std::string typeStr(line.substr(typeStart, typeEnd-typeStart));
-                Exiv2::TypeId tmpType = Exiv2::TypeInfo::typeId(typeStr);
-                if (tmpType != Exiv2::invalidTypeId) {
-                    valStart = line.find_first_not_of(delim, typeEnd+1);
-                    if (valStart == std::string::npos) {
-                        throw Exiv2::Error(1, Exiv2::toString(num) 
-                                            + ": Invalid command line  ");
-                    }
-                    type = tmpType;
-                    explicitType = true;
-                }
-            }
-
-            value = line.substr(valStart, valEnd+1-valStart);
-            std::string::size_type last = value.length()-1;
-            if (  (value[0] == '"' || value[last] == '"') 
-                && value[0] != value[last]) {
-                throw Exiv2::Error(1, Exiv2::toString(num) 
-                                    + ": Unbalanced quotes");
-            }
-            if (value[0] == '"') {
-                value = value.substr(1, value.length()-2);
-            }
-        }
-
-        modifyCmd.cmdId_ = cmdId;
-        modifyCmd.key_ = key;
-        modifyCmd.metadataId_ = metadataId;
-        modifyCmd.typeId_ = type;
-        modifyCmd.explicitType_ = explicitType;
-        modifyCmd.value_ = value;
-
-        return true;
-    } // parseLine
-
-    CmdId commandId(const std::string& cmdString)
-    {
-        int i = 0;
-        for (;   cmdIdAndString[i].cmdId_ != invalidCmdId
-                 && cmdIdAndString[i].cmdString_ != cmdString; ++i) {}
-        return cmdIdAndString[i].cmdId_;
-    }
-
-}

Deleted: Extractor/src/plugins/exiv2/exiv2.hpp
===================================================================
--- Extractor/src/plugins/exiv2/exiv2.hpp       2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/exiv2.hpp       2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,219 +0,0 @@
-// ***************************************************************** -*- C++ 
-*-
-/*
- * Copyright (C) 2004, 2005 Andreas Huggel <address@hidden>
- * 
- * This program is part of the Exiv2 distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-/*!
-  @file    exiv2.hpp
-  @brief   Defines class Params, used for the command line handling of exiv2
-  @version $Rev: 598 $
-  @author  Andreas Huggel (ahu)
-           <a href="mailto:address@hidden";>address@hidden</a>
-  @date    08-Dec-03, ahu: created
- */
-#ifndef EXIV2_HPP_
-#define EXIV2_HPP_
-
-// 
*****************************************************************************
-// included header files
-#include "utils.hpp"
-#include "types.hpp"
-
-// + standard includes
-#include <string>
-#include <vector>
-#include <iostream>
-
-// 
*****************************************************************************
-// class definitions
-
-//! Command identifiers
-enum CmdId { invalidCmdId, add, set, del };
-//! Metadata identifiers
-enum MetadataId { invalidMetadataId, iptc, exif };
-//! Structure for one parsed modification command 
-struct ModifyCmd {
-    //! C'tor
-    ModifyCmd() :
-        cmdId_(invalidCmdId), metadataId_(invalidMetadataId), 
-        typeId_(Exiv2::invalidTypeId), explicitType_(false) {}
-    CmdId cmdId_;                               //!< Command identifier
-    std::string key_;                           //!< Exiv2 key string
-    MetadataId metadataId_;                     //!< Metadata identifier 
-    Exiv2::TypeId typeId_;                      //!< Exiv2 type identifier
-    //! Flag to indicate if the type was explicitely specified (true)
-    bool explicitType_;
-    std::string value_;                         //!< Data 
-};
-//! Container for modification commands
-typedef std::vector<ModifyCmd> ModifyCmds;
-//! Structure to link command identifiers to strings
-struct CmdIdAndString {
-    CmdId cmdId_;                               //!< Commands identifier
-    std::string cmdString_;                     //!< Command string
-};
-
-/*!
-  @brief Implements the command line handling for the program. 
-
-  Derives from Util::Getopt to use the command line argument parsing
-  functionalty provided there. This class is implemented as a Singleton,
-  i.e., there is only one global instance of it, which can be accessed
-  from everywhere.
-
-  <b>Usage example:</b> <br>
-  @code
-  #include "params.h"
-
-  int main(int argc, char* const argv[])
-  {
-      Params& params = Params::instance();
-      if (params.getopt(argc, argv)) {
-          params.usage();
-          return 1;
-      }
-      if (params.help_) {
-          params.help();
-          return 0;
-      }
-      if (params.version_) {
-          params.version();
-          return 0;
-      }
-
-      // do something useful here...
-
-      return 0;
-  }
-  @endcode
- */
-class Params : public Util::Getopt {
-private:
-    std::string optstring_;
-
-public:
-    //! Container for command files
-    typedef std::vector<std::string> CmdFiles;
-    //! Container for commands from the command line
-    typedef std::vector<std::string> CmdLines;
-    //! Container to store filenames.
-    typedef std::vector<std::string> Files;
-
-    /*!
-      @brief Controls all access to the global Params instance.
-      @return Reference to the global Params instance.
-    */
-    static Params& instance();
-    //! Destructor
-    void cleanup();
-
-    //! Enumerates print modes
-    enum PrintMode { pmSummary, pmInterpreted, pmValues, pmHexdump, pmIptc, 
-                     pmComment };
-    //! Enumerates common targets, bitmap
-    enum CommonTarget { ctExif = 1, ctIptc = 2, ctComment = 4, ctThumb = 8 };
-    //! Enumerates the policies to handle existing files in rename action
-    enum FileExistsPolicy { overwritePolicy, renamePolicy, askPolicy };
-
-    bool help_;                         //!< Help option flag.
-    bool version_;                      //!< Version option flag.
-    bool verbose_;                      //!< Verbose (talkative) option flag.
-    bool force_;                        //!< Force overwrites flag. 
-    FileExistsPolicy fileExistsPolicy_; //!< What to do if file to rename 
exists.
-    bool adjust_;                       //!< Adjustment flag.
-    PrintMode printMode_;               //!< Print mode. 
-    //! %Action (integer rather than TaskType to avoid dependency).
-    int  action_;
-    int  target_;                       //!< What common target to process.
-
-    long adjustment_;                   //!< Adjustment in seconds.
-    std::string format_;                //!< Filename format (-r option arg).
-    CmdFiles cmdFiles_;                 //!< Names of the modification command 
files
-    CmdLines cmdLines_;                 //!< Commands from the command line
-    ModifyCmds modifyCmds_;             //!< Parsed modification commands
-    std::string directory_;             //!< Location for files to 
extract/insert
-    Files files_;                       //!< List of non-option arguments.
-
-private:
-    /*!
-      @brief Default constructor. Note that optstring_ is initialized here.
-             The c'tor is private to force instantiation through instance().
-     */
-    Params() : optstring_(":hVvfFa:r:p:d:e:i:m:M:l:"),
-               help_(false), 
-               version_(false),
-               verbose_(false), 
-               force_(false), 
-               fileExistsPolicy_(askPolicy),
-               adjust_(false),
-               printMode_(pmSummary),
-               action_(0),
-               target_(ctExif|ctIptc|ctComment),
-               adjustment_(0),
-               format_("%Y%m%d_%H%M%S"),
-               first_(true) {}
-
-    //! Prevent copy-construction: not implemented.
-    Params(const Params& rhs);
-
-    //! @name Helpers
-    //@{
-    int evalRename(const std::string& optarg);
-    int evalAdjust(const std::string& optarg);
-    int evalPrint(const std::string& optarg);
-    int evalDelete(const std::string& optarg);
-    int evalExtract(const std::string& optarg);
-    int evalInsert(const std::string& optarg);
-    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
-             argument parsing, perform consistency checks after all command 
line
-             arguments are parsed.
-
-      @param argc Argument count as passed to main() on program invocation.
-      @param argv Argument array as passed to main() on program invocation.
-
-      @return 0 if successful, >0 in case of errors.
-     */
-    int getopt(int argc, char* const argv[]);
-
-    //! Handle options and their arguments.
-    virtual int option(int opt, const std::string& optarg, int optopt);
-
-    //! Handle non-option parameters.
-    virtual int nonoption(const std::string& argv);
-
-    //! Print a minimal usage note to an output stream.
-    void usage(std::ostream& os =std::cout) const;
-
-    //! Print further usage explanations to an output stream.
-    void help(std::ostream& os =std::cout) const;
-
-    //! Print version information to an output stream.
-    void version(std::ostream& os =std::cout) const;
-}; // class Params
-
-#endif                                  // #ifndef EXIV2_HPP_

Deleted: Extractor/src/plugins/exiv2/getopt_win32.h
===================================================================
--- Extractor/src/plugins/exiv2/getopt_win32.h  2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/getopt_win32.h  2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,140 +0,0 @@
-/* Declarations for getopt.
-   Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any
-   later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-#ifndef _GETOPT_H
-#define _GETOPT_H 1
-
-#ifdef _MSC_VER
-
-#if defined(_MSC_VER) && !defined(BUILD_GETOPT)
-#  ifdef _DEBUG
-#    pragma comment(lib,"getopt_debug.lib") 
-#  else
-#    pragma comment(lib,"getopt.lib") 
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns EOF, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
-   for unrecognized options.  */
-
-extern int opterr;
-
-/* Set to an option character which was unrecognized.  */
-
-extern int optopt;
-
-/* Describe the long-named options requested by the application.
-   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
-   of `struct option' terminated by an element containing a name which is
-   zero.
-
-   The field `has_arg' is:
-   no_argument         (or 0) if the option does not take an argument,
-   required_argument   (or 1) if the option requires an argument,
-   optional_argument   (or 2) if the option takes an optional argument.
-
-   If the field `flag' is not NULL, it points to a variable that is set
-   to the value given in the field `val' when the option is found, but
-   left unchanged if the option is not found.
-
-   To have a long-named option do something other than set an `int' to
-   a compiled-in constant, such as set a value from `optarg', set the
-   option's `flag' field to zero and its `val' field to a nonzero
-   value (the equivalent single-letter option character, if there is
-   one).  For long options that have a zero `flag' field, `getopt'
-   returns the contents of the `val' field.  */
-
-struct option
-{
-#if    __STDC__ || _MSC_VER || defined(XP_OS2_VACPP)
-  const char *name;
-#else
-  char *name;
-#endif
-  /* has_arg can't be an enum because some compilers complain about
-     type mismatches in all the code that assumes it is an int.  */
-  int has_arg;
-  int *flag;
-  int val;
-};
-
-/* Names for the values of the `has_arg' field of `struct option'.  */
-
-#define        no_argument             0
-#define required_argument      1
-#define optional_argument      2
-
-#if __STDC__ || _MSC_VER || defined( XP_OS2_VACPP )
-#if defined(__GNU_LIBRARY__) || defined( XP_OS2_VACPP ) || defined(_MSC_VER)
-/* Many other libraries have conflicting prototypes for getopt, with
-   differences in the consts, in stdlib.h.  To avoid compilation
-   errors, only prototype getopt for the GNU C library.  */
-extern int getopt (int argc, char *const *argv, const char *shortopts);
-#else /* not __GNU_LIBRARY__ */
-extern int getopt ();
-#endif /* not __GNU_LIBRARY__ */
-extern int getopt_long (int argc, char *const *argv, const char *shortopts,
-                       const struct option *longopts, int *longind);
-extern int getopt_long_only (int argc, char *const *argv,
-                            const char *shortopts,
-                            const struct option *longopts, int *longind);
-
-/* Internal only.  Users should not call this directly.  */
-extern int _getopt_internal (int argc, char *const *argv,
-                            const char *shortopts,
-                            const struct option *longopts, int *longind,
-                            int long_only);
-#else /* not __STDC__ */
-extern int getopt ();
-extern int getopt_long ();
-extern int getopt_long_only ();
-
-extern int _getopt_internal ();
-#endif /* not __STDC__ */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _MSC_VER */
-#endif /* _GETOPT_H */

Deleted: Extractor/src/plugins/exiv2/iptceasy.cpp
===================================================================
--- Extractor/src/plugins/exiv2/iptceasy.cpp    2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/iptceasy.cpp    2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,49 +0,0 @@
-// ***************************************************************** -*- C++ 
-*-
-// iptceasy.cpp, $Rev: 560 $
-// The quickest way to access, set or modify Iptc metadata.
-
-#include "iptc.hpp"
-#include "image.hpp"
-#include <iostream>
-#include <iomanip>
-#include <cassert>
-
-int main(int argc, char* const argv[])
-try {
-    if (argc != 2) {
-        std::cout << "Usage: " << argv[0] << " file\n";
-        return 1;
-    }
-    std::string file(argv[1]);
-
-    Exiv2::IptcData iptcData;
-
-    iptcData["Iptc.Application2.Headline"] = "The headline I am";
-    iptcData["Iptc.Application2.Keywords"] = "Yet another keyword";
-    iptcData["Iptc.Application2.DateCreated"] = "2004-8-3";
-    iptcData["Iptc.Application2.Urgency"] = uint16_t(1);
-    iptcData["Iptc.Envelope.ModelVersion"] = 42;
-    iptcData["Iptc.Envelope.TimeSent"] = "14:41:0-05:00";
-    iptcData["Iptc.Application2.RasterizedCaption"] = "230 42 34 2 90 84 23 
146";
-    iptcData["Iptc.0x0009.0x0001"] = "Who am I?";
-
-    Exiv2::StringValue value;
-    value.read("very!");
-    iptcData["Iptc.Application2.Urgency"] = value;
-
-    std::cout << "Time sent: " << iptcData["Iptc.Envelope.TimeSent"] << "\n";
-
-    // Open image file
-    Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(file);
-    assert (image.get() != 0);
-
-    // Set Iptc data and write it to the file
-    image->setIptcData(iptcData);
-    image->writeMetadata();
-
-    return 0;
-}
-catch (Exiv2::AnyError& e) {
-    std::cout << "Caught Exiv2 exception '" << e << "'\n";
-    return -1;
-}

Deleted: Extractor/src/plugins/exiv2/iptcprint.cpp
===================================================================
--- Extractor/src/plugins/exiv2/iptcprint.cpp   2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/iptcprint.cpp   2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,50 +0,0 @@
-// ***************************************************************** -*- C++ 
-*-
-// iptcprint.cpp, $Rev: 578 $
-// Sample program to print the Iptc metadata of an image
-
-#include "image.hpp"
-#include "iptc.hpp"
-#include <iostream>
-#include <iomanip>
-#include <cassert>
-
-int main(int argc, char* const argv[])
-try {
-
-    if (argc != 2) {
-        std::cout << "Usage: " << argv[0] << " file\n";
-        return 1;
-    }
-
-    Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(argv[1]);
-    assert (image.get() != 0);
-    image->readMetadata();
-
-    Exiv2::IptcData &iptcData = image->iptcData();
-    if (iptcData.empty()) {
-        std::string error(argv[1]);
-        error += ": No Iptc data found in the file";
-        throw Exiv2::Error(1, error);
-    }
-
-    Exiv2::IptcData::iterator end = iptcData.end();
-    for (Exiv2::IptcData::iterator md = iptcData.begin(); md != end; ++md) {
-        std::cout << std::setw(44) << std::setfill(' ') << std::left
-                  << md->key() << " "
-                  << "0x" << std::setw(4) << std::setfill('0') << std::right
-                  << std::hex << md->tag() << " " 
-                  << std::setw(9) << std::setfill(' ') << std::left
-                  << md->typeName() << " "
-                  << std::dec << std::setw(3) 
-                  << std::setfill(' ') << std::right
-                  << md->count() << "  "
-                  << std::dec << md->value() 
-                  << std::endl;
-    }
-
-    return 0;
-}
-catch (Exiv2::AnyError& e) {
-    std::cout << "Caught Exiv2 exception '" << e << "'\n";
-    return -1;
-}

Deleted: Extractor/src/plugins/exiv2/metacopy.cpp
===================================================================
--- Extractor/src/plugins/exiv2/metacopy.cpp    2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/metacopy.cpp    2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,182 +0,0 @@
-// ***************************************************************** -*- C++ 
-*-
-/*
- * Copyright (C) 2004, 2005 Andreas Huggel <address@hidden>
- * 
- * This program is part of the Exiv2 distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-/*
-  Abstract : Tester application for image file handling
-
-  File     : metacopy.cpp
-  Version  : $Rev: 560 $
-  Author(s): Brad Schick (brad) <address@hidden>
-  History  : 13-Jul-04, brad: created
- */
-// 
*****************************************************************************
-// included header files
-#include "image.hpp"
-#include "iptc.hpp"
-#include "exif.hpp"
-#include "types.hpp"
-#include "metacopy.hpp"
-#include <iostream>
-#include <fstream>
-#include <cassert>
-
-// 
*****************************************************************************
-// Main
-int main(int argc, char* const argv[])
-{
-try {
-    // Handle command line arguments
-    Params params;
-    if (params.getopt(argc, argv)) {
-        params.usage();
-        return 1;
-    }
-    if (params.help_) {
-        params.help();
-        return 2;
-    }
-
-    // Use MemIo to increase test coverage.
-    Exiv2::BasicIo::AutoPtr fileIo(new Exiv2::FileIo(params.read_));
-    Exiv2::BasicIo::AutoPtr memIo(new Exiv2::MemIo);
-    memIo->transfer(*fileIo);
-    
-    Exiv2::Image::AutoPtr readImg = Exiv2::ImageFactory::open(memIo);
-    assert(readImg.get() != 0);
-    readImg->readMetadata();
-
-    Exiv2::Image::AutoPtr writeImg = Exiv2::ImageFactory::open(params.write_);
-    assert(writeImg.get() != 0);
-    if (params.preserve_) writeImg->readMetadata();
-    if (params.iptc_) {
-        writeImg->setIptcData(readImg->iptcData());
-    }
-    if (params.exif_) {
-        writeImg->setExifData(readImg->exifData());
-    }
-    if (params.comment_) {
-        writeImg->setComment(readImg->comment());
-    }
-
-    try {
-        writeImg->writeMetadata();
-    }
-    catch (const Exiv2::AnyError&) {
-        std::cerr << params.progname() << 
-            ": Could not write metadata to (" << params.write_ << ")\n";
-        return 8;
-    }
-
-    return 0;
-}
-catch (Exiv2::AnyError& e) {
-    std::cerr << "Caught Exiv2 exception '" << e << "'\n";
-    return 10;
-}
-}
-
-int Params::option(int opt, const std::string& optarg, int optopt)
-{
-    int rc = 0;
-    switch (opt) {
-    case 'h': help_ = true; break;
-    case 'i': iptc_ = true; break;
-    case 'e': exif_ = true; break;
-    case 'c': comment_ = true; break;
-    case 'p': preserve_ = true; break;
-    case 'a': 
-        iptc_ =true; 
-        exif_ =true; 
-        comment_ =true; 
-        break;
-    case ':':
-        std::cerr << progname() << ": Option -" << static_cast<char>(optopt) 
-                  << " requires an argument\n";
-        rc = 1;
-        break;
-    case '?':
-        std::cerr << progname() << ": Unrecognized option -" 
-                  << static_cast<char>(optopt) << "\n";
-        rc = 1;
-        break;
-    default:
-        std::cerr << progname() 
-                  << ": getopt returned unexpected character code " 
-                  << std::hex << opt << "\n";
-        rc = 1;
-        break;
-    }
-
-    return rc;
-} 
-
-int Params::nonoption(const std::string& argv)
-{
-    if (!write_.empty()) {
-        std::cerr << progname() << ": Unexpected extra argument (" << argv << 
")\n";
-        return 1;
-    }
-    if (first_) read_ = argv;
-    else write_ = argv;
-    first_ = false;
-    return 0;
-} 
-
-int Params::getopt(int argc, char* const argv[])
-{ 
-    int rc = Util::Getopt::getopt(argc, argv, optstring_);
-    // Further consistency checks
-    if (help_==false) {
-        if (rc==0 && read_.empty() ) {
-            std::cerr << progname() << ": Read and write files must be 
specified\n";
-            rc = 1;
-        }
-        if (rc==0 && write_.empty() ) {
-            std::cerr << progname() << ": Write file must be specified\n";
-            rc = 1;
-        }
-        if (preserve_ && iptc_ && exif_ && comment_ ) {
-            std::cerr << progname() << ": Option -p has no effect when all 
metadata types are specified.\n";
-            rc = 1;
-        }
-    }
-    return rc;
-} // Params::getopt
-
-
-void Params::usage(std::ostream& os) const
-{
-    os << "\nReads and writes raw metadata. Use -h option for help.\n"
-       << "Usage: " << progname() 
-       << " [-iecaph] readfile writefile\n";
-}
-
-void Params::help(std::ostream& os) const
-{
-    usage(os);
-    os << "\nOptions:\n"
-       << "   -i      Read Iptc data from readfile and write to writefile.\n"
-       << "   -e      Read Exif data from readfile and write to writefile.\n"
-       << "   -c      Read Jpeg comment from readfile and write to 
writefile.\n"
-       << "   -a      Read all metadata from readfile and write to 
writefile.\n"
-       << "   -p      Preserve existing metadata in writefile if not 
replaced.\n"
-       << "   -h      Display this help and exit.\n\n";
-} // Params::help
-

Deleted: Extractor/src/plugins/exiv2/metacopy.hpp
===================================================================
--- Extractor/src/plugins/exiv2/metacopy.hpp    2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/metacopy.hpp    2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,86 +0,0 @@
-// ***************************************************************** -*- C++ 
-*-
-/*
- * Copyright (C) 2004, 2005 Andreas Huggel <address@hidden>
- * 
- * This program is part of the Exiv2 distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-/*!
-  @file    metacopy.hpp
-  @brief   Defines class Params, used for the command line handling
-  @version $Rev: 538 $
-  @author  Brad Schick (brad) <address@hidden>
-  @date    13-Jul-04, brad: created
- */
-#ifndef METACOPY_HPP_
-#define METACOPY_HPP_
-
-#include "utils.hpp"
-
-class Params : public Util::Getopt {
-private:
-    std::string optstring_;
-    bool first_;
-
-public:
-    bool help_;                    //!< Help option flag.
-    bool iptc_;                    //!< Iptc option flag.
-    bool exif_;                    //!< Exif option flag.
-    bool comment_;                 //!< JPEG comment option flag.
-    bool preserve_;                //!< Preserve existing metadata option flag.
-    std::string read_;             //!< Source file
-    std::string write_;            //!< Destination file
-
-public:
-    /*!
-      @brief Default constructor. Note that optstring_ is initialized here.
-     */
-    Params() : optstring_(":iecaph"),
-               first_(true),
-               help_(false), 
-               iptc_(false),
-               exif_(false),
-               comment_(false),
-               preserve_(false)
-        {}
-
-    /*!
-      @brief Call Getopt::getopt() with optstring, to initiate command line
-             argument parsing, perform consistency checks after all command 
line
-             arguments are parsed.
-
-      @param argc Argument count as passed to main() on program invocation.
-      @param argv Argument array as passed to main() on program invocation.
-
-      @return 0 if successful, >0 in case of errors.
-     */
-    int getopt(int argc, char* const argv[]);
-
-    //! Handle options and their arguments.
-    virtual int option(int opt, const std::string& optarg, int optopt);
-
-    //! Handle non-option parameters.
-    virtual int nonoption(const std::string& argv);
-
-    //! Print a minimal usage note to an output stream.
-    void usage(std::ostream& os =std::cout) const;
-
-    //! Print further usage explanations to an output stream.
-    void help(std::ostream& os =std::cout) const;
-
-}; // class Params
-
-#endif // METACOPY_HPP_

Deleted: Extractor/src/plugins/exiv2/private.h
===================================================================
--- Extractor/src/plugins/exiv2/private.h       2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/private.h       2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,235 +0,0 @@
-/*!
-  @file    private.h
-  @brief   This file is from the tz distribution at 
ftp://elsie.nci.nih.gov/pub/
-  @version $Rev: 544 $
-*/
-#ifndef PRIVATE_H
-
-#define PRIVATE_H
-
-/*
-** This file is in the public domain, so clarified as of
-** 1996-06-05 by Arthur David Olson (address@hidden).
-*/
-
-/*
-** This header is for use ONLY with the time conversion code.
-** There is no guarantee that it will remain unchanged,
-** or that it will remain at all.
-** Do NOT copy it to any system include directory.
-** Thank you!
-*/
-
-/*
-** ID
-*/
-
-#ifndef lint
-#ifndef NOID
-static char    privatehid[] = "@(#)private.h   7.53";
-#endif /* !defined NOID */
-#endif /* !defined lint */
-
-/* ahu: moved required preprocessor symbols to config.h */
-
-/* ahu: disable warnings */
-#ifdef _MSC_VER
-// disable warning 'uses old-style declarator' C4131
-#pragma warning (disable: 4131)
-#endif
-
-/*
-** Nested includes
-*/
-
-#include "sys/types.h" /* for time_t */
-#include "stdio.h"
-#include "errno.h"
-#include "string.h"
-#include "limits.h"    /* for CHAR_BIT */
-#include "time.h"
-#include "stdlib.h"
-
-/* ahu: added io.h for MSVC */
-#ifdef _MSC_VER
-# include "io.h"
-#endif
-
-/* ahu: deleted include libintl.h */
-
-/* ahu: deleted include sys/wait.h and WIFEXITED, WEXITSTATUS macros */
-
-#if EXV_HAVE_UNISTD_H - 0
-#include "unistd.h"    /* for F_OK and R_OK */
-#endif /* EXV_HAVE_UNISTD_H - 0 */
-
-#if !(EXV_HAVE_UNISTD_H - 0)
-#ifndef F_OK
-#define F_OK   0
-#endif /* !defined F_OK */
-#ifndef R_OK
-#define R_OK   4
-#endif /* !defined R_OK */
-#endif /* !(EXV_HAVE_UNISTD_H - 0) */
-
-/* Unlike <ctype.h>'s isdigit, this also works if c < 0 | c > UCHAR_MAX.  */
-#define is_digit(c) ((unsigned)(c) - '0' <= 9)
-
-/*
-** Workarounds for compilers/systems.
-*/
-
-/*
-** SunOS 4.1.1 cc lacks prototypes.
-*/
-
-#ifndef P
-#ifdef __STDC__
-#define P(x)   x
-#endif /* defined __STDC__ */
-#ifndef __STDC__
-#define P(x)   ()
-#endif /* !defined __STDC__ */
-#endif /* !defined P */
-
-/*
-** SunOS 4.1.1 headers lack EXIT_SUCCESS.
-*/
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS   0
-#endif /* !defined EXIT_SUCCESS */
-
-/*
-** SunOS 4.1.1 headers lack EXIT_FAILURE.
-*/
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE   1
-#endif /* !defined EXIT_FAILURE */
-
-/*
-** SunOS 4.1.1 headers lack FILENAME_MAX.
-*/
-
-#ifndef FILENAME_MAX
-
-#ifndef MAXPATHLEN
-#ifdef unix
-#include "sys/param.h"
-#endif /* defined unix */
-#endif /* !defined MAXPATHLEN */
-
-#ifdef MAXPATHLEN
-#define FILENAME_MAX   MAXPATHLEN
-#endif /* defined MAXPATHLEN */
-#ifndef MAXPATHLEN
-#define FILENAME_MAX   1024            /* Pure guesswork */
-#endif /* !defined MAXPATHLEN */
-
-#endif /* !defined FILENAME_MAX */
-
-/*
-** SunOS 4.1.1 libraries lack remove.
-*/
-
-#ifndef remove
-extern int     unlink P((const char * filename));
-#define remove unlink
-#endif /* !defined remove */
-
-/*
-** Some ancient errno.h implementations don't declare errno.
-** But some newer errno.h implementations define it as a macro.
-** Fix the former without affecting the latter.
-*/
-#ifndef errno
-extern int errno;
-#endif /* !defined errno */
-
-/*
-** Private function declarations.
-*/
-char * icalloc P((int nelem, int elsize));
-char * icatalloc P((char * old, const char * new));
-char * icpyalloc P((const char * string));
-char * imalloc P((int n));
-void * irealloc P((void * pointer, int size));
-void   icfree P((char * pointer));
-void   ifree P((char * pointer));
-char * scheck P((const char *string, const char *format));
-
-
-/*
-** Finally, some convenience items.
-*/
-
-#ifndef TRUE
-#define TRUE   1
-#endif /* !defined TRUE */
-
-#ifndef FALSE
-#define FALSE  0
-#endif /* !defined FALSE */
-
-#ifndef TYPE_BIT
-#define TYPE_BIT(type) (sizeof (type) * CHAR_BIT)
-#endif /* !defined TYPE_BIT */
-
-#ifndef TYPE_SIGNED
-#define TYPE_SIGNED(type) (((type) -1) < 0)
-#endif /* !defined TYPE_SIGNED */
-
-#ifndef INT_STRLEN_MAXIMUM
-/*
-** 302 / 1000 is log10(2.0) rounded up.
-** Subtract one for the sign bit if the type is signed;
-** add one for integer division truncation;
-** add one more for a minus sign if the type is signed.
-*/
-#define INT_STRLEN_MAXIMUM(type) \
-    ((TYPE_BIT(type) - TYPE_SIGNED(type)) * 302 / 1000 + 1 + TYPE_SIGNED(type))
-#endif /* !defined INT_STRLEN_MAXIMUM */
-
-/*
-** INITIALIZE(x)
-*/
-
-#ifndef GNUC_or_lint
-#ifdef lint
-#define GNUC_or_lint
-#endif /* defined lint */
-#ifndef lint
-#ifdef __GNUC__
-#define GNUC_or_lint
-#endif /* defined __GNUC__ */
-#endif /* !defined lint */
-#endif /* !defined GNUC_or_lint */
-
-#ifndef INITIALIZE
-#ifdef GNUC_or_lint
-#define INITIALIZE(x)  ((x) = 0)
-#endif /* defined GNUC_or_lint */
-#ifndef GNUC_or_lint
-#define INITIALIZE(x)
-#endif /* !defined GNUC_or_lint */
-#endif /* !defined INITIALIZE */
-
-/* ahu: deleted definition of _(msgid) macro */
-
-#ifndef TZ_DOMAIN
-#define TZ_DOMAIN "tz"
-#endif /* !defined TZ_DOMAIN */
-
-#if HAVE_INCOMPATIBLE_CTIME_R
-#undef asctime_r
-#undef ctime_r
-char *asctime_r P((struct tm const *, char *));
-char *ctime_r P((time_t const *, char *));
-#endif /* HAVE_INCOMPATIBLE_CTIME_R */
-
-/*
-** UNIX was a registered trademark of The Open Group in 2003.
-*/
-
-#endif /* !defined PRIVATE_H */

Deleted: Extractor/src/plugins/exiv2/taglist.cpp
===================================================================
--- Extractor/src/plugins/exiv2/taglist.cpp     2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/taglist.cpp     2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,69 +0,0 @@
-// ***************************************************************** -*- C++ 
-*-
-/*
-  Abstract:  Print a simple comma separated list of tags defined in Exiv2
-
-  File:      taglist.cpp
-  Version:   $Rev: 570 $
-  Author(s): Andreas Huggel (ahu) <address@hidden>
-  History:   07-Jan-04, ahu: created
- */
-// 
*****************************************************************************
-#include "rcsid.hpp"
-EXIV2_RCSID("@(#) $Id: taglist.cpp 570 2005-05-28 15:35:08Z ahuggel $");
-
-#include "makernote.hpp"
-#include "tags.hpp"
-#include "datasets.hpp"
-#include "error.hpp"
-
-#include <string>
-#include <iostream>
-
-using namespace Exiv2;
-
-int main(int argc, char* argv[])
-try {
-    int rc = 0;
-
-    switch (argc) {
-    case 2:
-    {
-        std::string item(argv[1]);
-
-        if (item == "Exif") {
-            ExifTags::taglist(std::cout);
-            break;
-        }
-
-        if (item == "Iptc") {
-            IptcDataSets::dataSetList(std::cout);
-            break;
-        }
-
-        IfdId ifdId = ExifTags::ifdIdByIfdItem(item);
-        if (ExifTags::isMakerIfd(ifdId)) {
-            ExifTags::makerTaglist(std::cout, ifdId);
-        }
-        else {
-            rc = 2;
-        }
-        break;
-    }
-    case 1:
-        ExifTags::taglist(std::cout);
-        break;
-    default:
-        rc = 1;
-        break;
-    }
-    if (rc) {
-        std::cout << "Usage: " << argv[0] 
-                  << " 
[Exif|Canon|CanonCs1|CanonCs2|CanonCf|Fujifilm|Nikon1|Nikon2|Nikon3|Olympus|Sigma|Sony|Iptc]\n"
-                  << "Print Exif tags, MakerNote tags, or Iptc datasets\n";
-    }
-    return rc;
-}
-catch (AnyError& e) {
-    std::cout << "Caught Exiv2 exception '" << e << "'\n";
-    return 1;
-}

Deleted: Extractor/src/plugins/exiv2/timegm.h
===================================================================
--- Extractor/src/plugins/exiv2/timegm.h        2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/timegm.h        2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,88 +0,0 @@
-/*!
-  @file    timegm.h
-  @brief   Declaration of timegm(). The implementation is in localtime.c
-  @version $Rev: 392 $
-*/
-#ifndef TIMEGM_H_
-#define TIMEGM_H_
-
-#include <time.h>
-
-/*
- The following comments are copied from the Makefile of the tz distribution,
- available at ftp://elsie.nci.nih.gov/pub/:
-
- NIST-PCTS:151-2, Version 1.4, (1993-12-03) is a test suite put
- out by the National Institute of Standards and Technology
- which claims to test C and Posix conformance.  If you want to pass PCTS, add
-       -DPCTS
- to the end of the "CFLAGS=" line.
-
- If your system has a "zone abbreviation" field in its "struct tm"s
- (or if you decide to add such a field in your system's "time.h" file),
- add the name to a define such as
-       -DTM_ZONE=tm_zone
- or
-       -DTM_ZONE=_tm_zone
- to the end of the "CFLAGS=" line.
-
- If you want functions that were inspired by early versions of X3J11's work,
- add
-       -DSTD_INSPIRED
- to the end of the "CFLAGS=" line.
-
- If you want to allocate state structures in localtime, add
-       -DALL_STATE
- to the end of the "CFLAGS=" line.  Storage is obtained by calling malloc.
-
- If you want Source Code Control System ID's left out of object modules, add
-       -DNOID
-
- Add the following to the end of the "CFLAGS=" line as needed.
-  -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified
-       DST transitions if the time zone files cannot be accessed
-
- If you want to use System V compatibility code, add
-       -DUSG_COMPAT
- to the end of the "CFLAGS=" line.  This arrange for "timezone" and "daylight"
- variables to be kept up-to-date by the time conversion functions.  Neither
- "timezone" nor "daylight" is described in X3J11's work.
-
- If you want an "altzone" variable (a la System V Release 3.1), add
-       -DALTZONE
- to the end of the "CFLAGS=" line.
- This variable is not described in X3J11's work.
-
- If your system has a "GMT offset" field in its "struct tm"s
- (or if you decide to add such a field in your system's "time.h" file),
- add the name to a define such as
-       -DTM_GMTOFF=tm_gmtoff
- or
-       -DTM_GMTOFF=_tm_gmtoff
- to the end of the "CFLAGS=" line.
- Neither tm_gmtoff nor _tm_gmtoff is described in X3J11's work;
- in its work, use of "tm_gmtoff" is described as non-conforming.
- Both Linux and BSD have done the equivalent of defining TM_GMTOFF in
- their recent releases.
-
- If you want a "gtime" function (a la MACH), add
-       -DCMUCS
- to the end of the "CFLAGS=" line
- This function is not described in X3J11's work.
-*/
-
-#define STD_INSPIRED
-#define NOID
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-// The UTC version of mktime
-time_t timegm(struct tm * const tmp);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif                                  // #ifndef TIMEGM_H_

Deleted: Extractor/src/plugins/exiv2/tzfile.h
===================================================================
--- Extractor/src/plugins/exiv2/tzfile.h        2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/tzfile.h        2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,193 +0,0 @@
-/*!
-  @file    tzfile.h
-  @brief   This file is from the tz distribution at 
ftp://elsie.nci.nih.gov/pub/
-  @version $Rev: 392 $
-*/
-#ifndef TZFILE_H
-
-#define TZFILE_H
-
-/*
-** This file is in the public domain, so clarified as of
-** 1996-06-05 by Arthur David Olson (address@hidden).
-*/
-
-/*
-** This header is for use ONLY with the time conversion code.
-** There is no guarantee that it will remain unchanged,
-** or that it will remain at all.
-** Do NOT copy it to any system include directory.
-** Thank you!
-*/
-
-/*
-** ID
-*/
-
-#ifndef lint
-#ifndef NOID
-static char    tzfilehid[] = "@(#)tzfile.h     7.14";
-#endif /* !defined NOID */
-#endif /* !defined lint */
-
-/*
-** Information about time zone files.
-*/
-
-#ifndef TZDIR
-#define TZDIR  "/usr/local/etc/zoneinfo" /* Time zone object file directory */
-#endif /* !defined TZDIR */
-
-#ifndef TZDEFAULT
-#define TZDEFAULT      "localtime"
-#endif /* !defined TZDEFAULT */
-
-#ifndef TZDEFRULES
-#define TZDEFRULES     "posixrules"
-#endif /* !defined TZDEFRULES */
-
-/*
-** Each file begins with. . .
-*/
-
-#define        TZ_MAGIC        "TZif"
-
-struct tzhead {
-       char    tzh_magic[4];           /* TZ_MAGIC */
-       char    tzh_reserved[16];       /* reserved for future use */
-       char    tzh_ttisgmtcnt[4];      /* coded number of trans. time flags */
-       char    tzh_ttisstdcnt[4];      /* coded number of trans. time flags */
-       char    tzh_leapcnt[4];         /* coded number of leap seconds */
-       char    tzh_timecnt[4];         /* coded number of transition times */
-       char    tzh_typecnt[4];         /* coded number of local time types */
-       char    tzh_charcnt[4];         /* coded number of abbr. chars */
-};
-
-/*
-** . . .followed by. . .
-**
-**     tzh_timecnt (char [4])s         coded transition times a la time(2)
-**     tzh_timecnt (unsigned char)s    types of local time starting at above
-**     tzh_typecnt repetitions of
-**             one (char [4])          coded UTC offset in seconds
-**             one (unsigned char)     used to set tm_isdst
-**             one (unsigned char)     that's an abbreviation list index
-**     tzh_charcnt (char)s             '\0'-terminated zone abbreviations
-**     tzh_leapcnt repetitions of
-**             one (char [4])          coded leap second transition times
-**             one (char [4])          total correction after above
-**     tzh_ttisstdcnt (char)s          indexed by type; if TRUE, transition
-**                                     time is standard time, if FALSE,
-**                                     transition time is wall clock time
-**                                     if absent, transition times are
-**                                     assumed to be wall clock time
-**     tzh_ttisgmtcnt (char)s          indexed by type; if TRUE, transition
-**                                     time is UTC, if FALSE,
-**                                     transition time is local time
-**                                     if absent, transition times are
-**                                     assumed to be local time
-*/
-
-/*
-** In the current implementation, "tzset()" refuses to deal with files that
-** exceed any of the limits below.
-*/
-
-#ifndef TZ_MAX_TIMES
-/*
-** The TZ_MAX_TIMES value below is enough to handle a bit more than a
-** year's worth of solar time (corrected daily to the nearest second) or
-** 138 years of Pacific Presidential Election time
-** (where there are three time zone transitions every fourth year).
-*/
-#define TZ_MAX_TIMES   370
-#endif /* !defined TZ_MAX_TIMES */
-
-#ifndef TZ_MAX_TYPES
-#ifndef NOSOLAR
-#define TZ_MAX_TYPES   256 /* Limited by what (unsigned char)'s can hold */
-#endif /* !defined NOSOLAR */
-#ifdef NOSOLAR
-/*
-** Must be at least 14 for Europe/Riga as of Jan 12 1995,
-** as noted by Earl Chew <address@hidden>.
-*/
-#define TZ_MAX_TYPES   20      /* Maximum number of local time types */
-#endif /* !defined NOSOLAR */
-#endif /* !defined TZ_MAX_TYPES */
-
-#ifndef TZ_MAX_CHARS
-#define TZ_MAX_CHARS   50      /* Maximum number of abbreviation characters */
-                               /* (limited by what unsigned chars can hold) */
-#endif /* !defined TZ_MAX_CHARS */
-
-#ifndef TZ_MAX_LEAPS
-#define TZ_MAX_LEAPS   50      /* Maximum number of leap second corrections */
-#endif /* !defined TZ_MAX_LEAPS */
-
-#define SECSPERMIN     60
-#define MINSPERHOUR    60
-#define HOURSPERDAY    24
-#define DAYSPERWEEK    7
-#define DAYSPERNYEAR   365
-#define DAYSPERLYEAR   366
-#define SECSPERHOUR    (SECSPERMIN * MINSPERHOUR)
-#define SECSPERDAY     ((long) SECSPERHOUR * HOURSPERDAY)
-#define MONSPERYEAR    12
-
-#define TM_SUNDAY      0
-#define TM_MONDAY      1
-#define TM_TUESDAY     2
-#define TM_WEDNESDAY   3
-#define TM_THURSDAY    4
-#define TM_FRIDAY      5
-#define TM_SATURDAY    6
-
-#define TM_JANUARY     0
-#define TM_FEBRUARY    1
-#define TM_MARCH       2
-#define TM_APRIL       3
-#define TM_MAY         4
-#define TM_JUNE                5
-#define TM_JULY                6
-#define TM_AUGUST      7
-#define TM_SEPTEMBER   8
-#define TM_OCTOBER     9
-#define TM_NOVEMBER    10
-#define TM_DECEMBER    11
-
-#define TM_YEAR_BASE   1900
-
-#define EPOCH_YEAR     1970
-#define EPOCH_WDAY     TM_THURSDAY
-
-/*
-** Accurate only for the past couple of centuries;
-** that will probably do.
-*/
-
-#define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
-
-#ifndef USG
-
-/*
-** Use of the underscored variants may cause problems if you move your code to
-** certain System-V-based systems; for maximum portability, use the
-** underscore-free variants.  The underscored variants are provided for
-** backward compatibility only; they may disappear from future versions of
-** this file.
-*/
-
-#define SECS_PER_MIN   SECSPERMIN
-#define MINS_PER_HOUR  MINSPERHOUR
-#define HOURS_PER_DAY  HOURSPERDAY
-#define DAYS_PER_WEEK  DAYSPERWEEK
-#define DAYS_PER_NYEAR DAYSPERNYEAR
-#define DAYS_PER_LYEAR DAYSPERLYEAR
-#define SECS_PER_HOUR  SECSPERHOUR
-#define SECS_PER_DAY   SECSPERDAY
-#define MONS_PER_YEAR  MONSPERYEAR
-
-#endif /* !defined USG */
-
-#endif /* !defined TZFILE_H */

Deleted: Extractor/src/plugins/exiv2/utils.cpp
===================================================================
--- Extractor/src/plugins/exiv2/utils.cpp       2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/utils.cpp       2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,141 +0,0 @@
-// ***************************************************************** -*- C++ 
-*-
-/*
- * Copyright (C) 2004, 2005 Andreas Huggel <address@hidden>
- * 
- * This program is part of the Exiv2 distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-/*
-  File:      utils.cpp
-  Version:   $Rev: 560 $
-  Author(s): Andreas Huggel (ahu) <address@hidden>
-  History:   08-Dec-03, ahu: created
- */
-// 
*****************************************************************************
-#include "rcsid.hpp"
-EXIV2_RCSID("@(#) $Id: utils.cpp 560 2005-04-17 11:51:32Z ahuggel $");
-
-// 
*****************************************************************************
-// included header files
-#ifdef _MSC_VER
-# include "exv_msvc.h"
-#else
-# include "exv_conf.h"
-#endif
-
-#include "utils.hpp"
-
-// + standard includes
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef _MSC_VER
-# include "getopt_win32.h"
-# define S_ISREG(m)      (((m) & S_IFMT) == S_IFREG)
-#endif
-#ifdef EXV_HAVE_UNISTD_H
-# include <unistd.h>                     // for getopt(), stat()
-#endif
-
-#include <cerrno>
-#include <cstdlib>
-#include <cstring>
-#include <string>
-#include <iostream>
-#include <sstream>
-
-namespace Util {
-
-// 
*****************************************************************************
-// class Getopt
-int Getopt::getopt(int argc, char* const argv[], const std::string& optstring)
-{
-    progname_ = Util::basename(argv[0]);
-
-    for (;;) {
-        int c = ::getopt(argc, argv, optstring.c_str());
-        if (c == -1) break;
-        errcnt_ += option(c, ::optarg == 0 ? "" : ::optarg, ::optopt);
-    }
-    for (int i = ::optind; i < argc; i++) {
-        errcnt_ += nonoption(argv[i]);
-    }
-    return errcnt_; 
-}
-
-// 
*****************************************************************************
-// free functions
-
-    std::string dirname(const std::string& path)
-    {
-        if (path == "") return ".";
-        // Strip trailing slashes or backslashes
-        std::string p = path;
-        while (   p.length() > 1 
-               && (p[p.length()-1] == '\\' || p[p.length()-1] == '/')) {
-            p = p.substr(0, p.length()-1);
-        }
-        if (p == "\\" || p == "/") return p;
-        if (p.length() == 2 && p[1] == ':') return p; // For Windows paths
-        std::string::size_type idx = p.find_last_of("\\/");
-        if (idx == std::string::npos) return ".";
-        if (idx == 1 && p[0] == '\\' && p[1] == '\\') return p; // For Windows 
paths
-        p = p.substr(0, idx == 0 ? 1 : idx);
-        while (   p.length() > 1 
-               && (p[p.length()-1] == '\\' || p[p.length()-1] == '/')) {
-            p = p.substr(0, p.length()-1);
-        }
-        return p;
-    }
-
-    std::string basename(const std::string& path, bool delsuffix)
-    {
-        if (path == "") return ".";
-        // Strip trailing slashes or backslashes
-        std::string p = path;
-        while (   p.length() > 1 
-               && (p[p.length()-1] == '\\' || p[p.length()-1] == '/')) {
-            p = p.substr(0, p.length()-1);
-        }
-        if (p.length() == 2 && p[1] == ':') return ""; // For Windows paths
-        std::string::size_type idx = p.find_last_of("\\/");
-        if (idx == 1 && p[0] == '\\' && p[1] == '\\') return ""; // For 
Windows paths
-        if (idx != std::string::npos) p = p.substr(idx+1);
-        if (delsuffix) p = p.substr(0, p.length() - suffix(p).length());
-        return p;
-    }
-
-    std::string suffix(const std::string& path)
-    {
-        std::string b = basename(path);    
-        std::string::size_type idx = b.rfind('.');
-        if (idx == std::string::npos || idx == 0 || idx == b.length()-1) {
-            return "";
-        }
-        return b.substr(idx);
-    }
-
-    bool strtol(const char* nptr, long& n)
-    {
-        if (!nptr || *nptr == '\0') return false;
-        char* endptr = 0;
-        long tmp = ::strtol(nptr, &endptr, 10);
-        if (*endptr != '\0') return false;
-        if (tmp == LONG_MAX || tmp == LONG_MIN) return false;
-        n = tmp;
-        return true;
-    }
-
-}                                       // namespace Util

Deleted: Extractor/src/plugins/exiv2/utils.hpp
===================================================================
--- Extractor/src/plugins/exiv2/utils.hpp       2005-07-14 15:00:24 UTC (rev 
1522)
+++ Extractor/src/plugins/exiv2/utils.hpp       2005-07-14 16:53:13 UTC (rev 
1523)
@@ -1,165 +0,0 @@
-// ********************************************************* -*- C++ -*-
-/*
- * Copyright (C) 2004, 2005 Andreas Huggel <address@hidden>
- * 
- * This program is part of the Exiv2 distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-/*!
-  @file    utils.hpp
-  @brief   A collection of utility functions
-  @version $Rev: 560 $
-  @author  Andreas Huggel (ahu)
-           <a href="mailto:address@hidden";>address@hidden</a>
-  @date    12-Dec-03, ahu: created
- */
-#ifndef UTILS_HPP_
-#define UTILS_HPP_
-
-// *********************************************************************
-// included header files
-// + standard includes
-#include <string>
-
-// *********************************************************************
-// namespace extensions
-/*!
-  @brief Contains utility classes and functions. Most of these are 
-         wrappers for common C functions that do not require pointers 
-         and memory considerations.
-*/
-namespace Util {
-
-// *********************************************************************
-// class definitions
-
-/*!
-  @brief Parse the command line options of a program.
-
-  A wrapper around the POSIX %getopt(3) function.  Parses the command line
-  options and passes each option to virtual option().  A derived class
-  implements this method to handle options as needed.  Similarly,
-  remaining non-option parameters are passed to the virtual nonoption()
-  method.
- */
-class Getopt {
-public:
-    //! Default constructor.
-    Getopt() : errcnt_(0) {}
-
-    //! Destructor.
-    virtual ~Getopt() {}
-
-    /*!
-      @brief Parse command line arguments.
-
-      Parses the command line arguments. Calls option() with the
-      character value of the option and its argument (if any) for each
-      recognized option and with ':' or '?' for unrecognized options.
-      See the manual pages for %getopt(3) for details.  In addition,
-      nonoption() is invoked for each remaining non-option parameter on
-      the command line.
-
-      @param argc Argument count as passed to main() on  program invocation.
-      @param argv Argument array as passed to main() on  program invocation.
-      @param optstring String containing the legitimate option characters.
-
-      @return Number of errors (the sum of the return values from option() 
-              and nonoption()).
-     */
-    int getopt(int argc, char* const argv[], const std::string& optstring);
-
-    /*!
-      @brief Callback used by getopt() to pass on each option and its 
-             argument (if any).
-
-      Implement this method in a derived class to handle the options as
-      needed. See the manual pages for %getopt(3) for further details, in
-      particular, the semantics of optarg and optopt.
-
-      @param opt Value of the option character as returned by %getopt(3).
-      @param optarg The corresponding option argument.
-      @param optopt The actual option character in case of an unrecognized
-             option or a missing option argument (opt is '?' or ':').
-
-      @return 0 if successful, 1 in case of an error.
-     */
-    virtual int option(int opt, const std::string& optarg, int optopt) = 0;
-
-    /*!
-      @brief Callback used by getopt() to pass on each non-option parameter
-             found on the command line.
-
-      Implement this method in a derived class to handle the non-option
-      parameters as needed. The default implementation ignores all non-option
-      parameters.
-
-      @param argv The non-option parameter from the command line.
-
-      @return 0 if successful, 1 in case of an error.
-     */
-    virtual int nonoption(const std::string& argv) { return 0; }
-
-    //! Program name (argv[0])
-    const std::string& progname() const { return progname_; }
-
-    //! Total number of errors returned by calls to option()
-    int errcnt() const { return errcnt_; }
-
-private:
-    std::string progname_;
-    int errcnt_;
-};
-
-// *********************************************************************
-// free functions
-
-    /*!
-      @brief Get the directory component from the \em path string. 
-             See %dirname(3).
-
-      This function can handle Windows paths to some extent: c:\\bar should 
-      be fine, \\\\bigsrv\\foo also, but \\\\bigsrv alone doesn't work.
-     */
-    std::string dirname(const std::string& path);
-
-    /*!
-      @brief Get the filename component from the \em path string. 
-             See %basename(3). If the \em delsuffix parameter is true,
-             the suffix will be removed.
-
-      This function can handle Windows paths to some extent: c:\\bar should 
-      be fine, \\\\bigsrv\\foo also, but \\\\bigsrv alone doesn't work. 
-     */
-    std::string basename(const std::string& path, bool delsuffix =false);
-
-    /*!
-      @brief Get the suffix from the path string. Normally, the suffix
-             is the substring of the basename of path from the last '.' 
-             to the end of the string.
-     */
-    std::string suffix(const std::string& path);
-
-    /*! 
-      @brief Convert a C string to a long value, which is returned in n.
-             Returns true if the conversion is successful, else false.
-             n is not modified if the conversion is unsuccessful. See 
strtol(2).
-     */
-    bool strtol(const char* nptr, long& n);
-
-}                                       // namespace Util
-
-#endif                                  // #ifndef UTILS_HPP_





reply via email to

[Prev in Thread] Current Thread [Next in Thread]