[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a
Maximiliano Curia
maxy at moszumanska.debian.org
Thu Jul 13 17:47:25 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=192a2a8
The following commit has been merged in the master branch:
commit 192a2a83cf0cedd67b88aef61a86d402e74717c9
Author: Robin Mills <robin at clanmills.com>
Date: Thu Mar 16 18:13:12 2017 +0000
#1279 Cleaned up doxygen warnings for doc and website.
---
config/Doxyfile | 15 +++--
include/exiv2/basicio.hpp | 1 +
include/exiv2/cr2image.hpp | 2 +-
include/exiv2/error.hpp | 12 ++--
include/exiv2/futils.hpp | 2 +-
include/exiv2/http.hpp | 7 +++
include/exiv2/image.hpp | 8 ++-
include/exiv2/jp2image.hpp | 2 +-
include/exiv2/jpgimage.hpp | 2 +-
include/exiv2/pngimage.hpp | 2 +-
include/exiv2/properties.hpp | 2 +
include/exiv2/rwlock.hpp | 17 ++++++
include/exiv2/tiffimage.hpp | 2 +-
include/exiv2/utilsvideo.hpp | 22 ++++++++
include/exiv2/value.hpp | 1 +
include/exiv2/version.hpp | 10 ++++
src/basicio.cpp | 2 +-
src/canonmn.cpp | 10 ++++
src/exiv2app.hpp | 2 +-
src/futils.cpp | 4 +-
src/ini_int.hpp | 129 ++++++++++++++++++++++++++++++-------------
src/jpgimage.cpp | 2 +-
src/minoltamn.cpp | 11 ++--
src/pentaxmn.cpp | 5 ++
src/properties.cpp | 9 ++-
website/Makefile | 2 +-
website/doxygen/Doxyfile | 4 +-
27 files changed, 212 insertions(+), 75 deletions(-)
diff --git a/config/Doxyfile b/config/Doxyfile
index f296988..db62e1d 100644
--- a/config/Doxyfile
+++ b/config/Doxyfile
@@ -343,7 +343,7 @@ TYPEDEF_HIDES_STRUCT = NO
# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
# corresponding to a cache size of 2^16 = 65536 symbols.
-SYMBOL_CACHE_SIZE = 0
+# SYMBOL_CACHE_SIZE = 0
# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be
# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given
@@ -709,7 +709,10 @@ EXCLUDE = ../samples/Jzon.h \
../src/getopt_win32.h \
../src/private.h \
../src/timegm.h \
- ../src/tzfile.h
+ ../src/tzfile.h \
+ ../src/fff.h \
+ ../include/exiv2/exv_msvc.h \
+ ../include/exiv2/exv_msvc-webready.h
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
@@ -1484,13 +1487,13 @@ XML_OUTPUT = xml
# which can be used by a validating XML parser to check the
# syntax of the XML files.
-XML_SCHEMA =
+# XML_SCHEMA =
# The XML_DTD tag can be used to specify an XML DTD,
# which can be used by a validating XML parser to check the
# syntax of the XML files.
-XML_DTD =
+# XML_DTD =
# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
# dump the program listings (including syntax highlighting
@@ -1702,7 +1705,7 @@ DOT_NUM_THREADS = 0
# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
# directory containing the font.
-DOT_FONTNAME = FreeSans
+DOT_FONTNAME = Arial
# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
# The default size is 10pt.
@@ -1838,7 +1841,7 @@ MSCFILE_DIRS =
# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-DOT_GRAPH_MAX_NODES = 50
+DOT_GRAPH_MAX_NODES = 100
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
# graphs generated by dot. A depth value of 3 means that only nodes reachable
diff --git a/include/exiv2/basicio.hpp b/include/exiv2/basicio.hpp
index 7c5e828..beb491c 100644
--- a/include/exiv2/basicio.hpp
+++ b/include/exiv2/basicio.hpp
@@ -1071,6 +1071,7 @@ namespace Exiv2 {
// Pimpl idiom
class Impl;
+ //! Pointer to implementation
Impl* p_;
}; // class RemoteIo
diff --git a/include/exiv2/cr2image.hpp b/include/exiv2/cr2image.hpp
index 672bc28..a6564ce 100644
--- a/include/exiv2/cr2image.hpp
+++ b/include/exiv2/cr2image.hpp
@@ -84,7 +84,7 @@ namespace Exiv2 {
@brief Print out the structure of image file.
@throw Error if reading of the file fails or the image data is
not valid (does not look like data of the specific image type).
- @caution This function is not thread safe and intended for exiv2 -pS for debugging.
+ @warning This function is not thread safe and intended for exiv2 -pS for debugging.
*/
void printStructure(std::ostream& out, PrintStructureOption option,int depth);
/*!
diff --git a/include/exiv2/error.hpp b/include/exiv2/error.hpp
index 7ce7f0f..01d23fc 100644
--- a/include/exiv2/error.hpp
+++ b/include/exiv2/error.hpp
@@ -142,13 +142,13 @@ namespace Exiv2 {
// Macros for simple access
//! Shorthand to create a temp debug log message object and return its ostringstream
-#define EXV_DEBUG if (LogMsg::debug >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::debug).os()
+#define EXV_DEBUG if (LogMsg::debug >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::debug).os()
//! Shorthand for a temp info log message object and return its ostringstream
-#define EXV_INFO if (LogMsg::info >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::info).os()
+#define EXV_INFO if (LogMsg::info >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::info).os()
//! Shorthand for a temp warning log message object and return its ostringstream
-#define EXV_WARNING if (LogMsg::warn >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::warn).os()
+#define EXV_WARNING if (LogMsg::warn >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::warn).os()
//! Shorthand for a temp error log message object and return its ostringstream
-#define EXV_ERROR if (LogMsg::error >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::error).os()
+#define EXV_ERROR if (LogMsg::error >= LogMsg::level() && LogMsg::handler()) LogMsg(LogMsg::error).os()
#ifdef _MSC_VER
// Disable MSVC warnings "non - DLL-interface classkey 'identifier' used as base
@@ -267,6 +267,7 @@ namespace Exiv2 {
EXIV2API const char* errMsg(int code);
template<typename charT>
+ //! BasicError constructor
BasicError<charT>::BasicError(int code)
: code_(code), count_(0)
{
@@ -274,6 +275,7 @@ namespace Exiv2 {
}
template<typename charT> template<typename A>
+ //! BasicError constructor
BasicError<charT>::BasicError(int code, const A& arg1)
: code_(code), count_(1), arg1_(toBasicString<charT>(arg1))
{
@@ -281,6 +283,7 @@ namespace Exiv2 {
}
template<typename charT> template<typename A, typename B>
+ //! BasicError constructor
BasicError<charT>::BasicError(int code, const A& arg1, const B& arg2)
: code_(code), count_(2),
arg1_(toBasicString<charT>(arg1)),
@@ -290,6 +293,7 @@ namespace Exiv2 {
}
template<typename charT> template<typename A, typename B, typename C>
+ //! BasicError constructor
BasicError<charT>::BasicError(int code, const A& arg1, const B& arg2, const C& arg3)
: code_(code), count_(3),
arg1_(toBasicString<charT>(arg1)),
diff --git a/include/exiv2/futils.hpp b/include/exiv2/futils.hpp
index db1dcd6..23c6a32 100644
--- a/include/exiv2/futils.hpp
+++ b/include/exiv2/futils.hpp
@@ -151,7 +151,7 @@ namespace Exiv2 {
/*!
@brief Get the path of file URL.
- @param url The file URL in the format file:///<path> or file://<host>/<path>.
+ @param url The file URL in the format file:///path or file://host/path
@return the path of file URL.
*/
EXIV2API std::string pathOfFileUrl(const std::string& url);
diff --git a/include/exiv2/http.hpp b/include/exiv2/http.hpp
index 6805f33..ccc27a1 100644
--- a/include/exiv2/http.hpp
+++ b/include/exiv2/http.hpp
@@ -8,6 +8,13 @@
#include "datasets.hpp"
namespace Exiv2 {
+ /*!
+ @brief execute an HTTP request
+ @param request - a Dictionary of headers to send to server
+ @param response - a Dictionary of response headers (dictionary is filled by the response)
+ @param errors - a String with an error
+ @return Server response 200 = OK, 404 = Not Found etc...
+ */
EXIV2API int http(Exiv2::Dictionary& request,Exiv2::Dictionary& response,std::string& errors);
}
diff --git a/include/exiv2/image.hpp b/include/exiv2/image.hpp
index e4e54b4..4040d52 100644
--- a/include/exiv2/image.hpp
+++ b/include/exiv2/image.hpp
@@ -104,8 +104,8 @@ namespace Exiv2 {
@brief Print out the structure of image file.
@throw Error if reading of the file fails or the image data is
not valid (does not look like data of the specific image type).
- @caution This function is not thread safe and intended for exiv2 -pS for debugging.
- @caution You may need to put the stream into binary mode (see src/actions.cpp)
+ @warning This function is not thread safe and intended for exiv2 -pS for debugging.
+ @warning You may need to put the stream into binary mode (see src/actions.cpp)
*/
virtual void printStructure(std::ostream& out, PrintStructureOption option =kpsNone, int depth=0);
/*!
@@ -224,6 +224,7 @@ namespace Exiv2 {
@brief Set the image iccProfile. The new profile is not written
to the image until the writeMetadata() method is called.
@param iccProfile DataBuf containing profile (binary)
+ @param bTestValid - tests that iccProfile contains credible data
*/
virtual void setIccProfile(DataBuf& iccProfile,bool bTestValid=true);
/*!
@@ -340,6 +341,7 @@ namespace Exiv2 {
@brief is the host platform littleEndian
*/
bool isLittleEndianPlatform();
+
bool isStringType(uint16_t type);
bool isShortType(uint16_t type);
bool isLongType(uint16_t type);
@@ -466,6 +468,7 @@ namespace Exiv2 {
const NativePreviewList& nativePreviews() const;
//@}
+ //! set type support for this image format
void setTypeSupported(
int imageType,
uint16_t supportedMetadata
@@ -474,6 +477,7 @@ namespace Exiv2 {
supportedMetadata_ = supportedMetadata;
}
+ //! set type support for this image format
int imageType() const { return imageType_; }
protected:
diff --git a/include/exiv2/jp2image.hpp b/include/exiv2/jp2image.hpp
index 51c99d2..d66ced4 100644
--- a/include/exiv2/jp2image.hpp
+++ b/include/exiv2/jp2image.hpp
@@ -84,7 +84,7 @@ namespace Exiv2
@brief Print out the structure of image file.
@throw Error if reading of the file fails or the image data is
not valid (does not look like data of the specific image type).
- @caution This function is not thread safe and intended for exiv2 -pS for debugging.
+ @warning This function is not thread safe and intended for exiv2 -pS for debugging.
*/
void printStructure(std::ostream& out, PrintStructureOption option,int depth);
diff --git a/include/exiv2/jpgimage.hpp b/include/exiv2/jpgimage.hpp
index 753c442..d0c802d 100644
--- a/include/exiv2/jpgimage.hpp
+++ b/include/exiv2/jpgimage.hpp
@@ -157,7 +157,7 @@ namespace Exiv2 {
@brief Print out the structure of image file.
@throw Error if reading of the file fails or the image data is
not valid (does not look like data of the specific image type).
- @caution This function is not thread safe and intended for exiv2 -pS for debugging.
+ @warning This function is not thread safe and intended for exiv2 -pS for debugging.
*/
void printStructure(std::ostream& out, PrintStructureOption option,int depth);
//@}
diff --git a/include/exiv2/pngimage.hpp b/include/exiv2/pngimage.hpp
index a70dabb..d064b4f 100644
--- a/include/exiv2/pngimage.hpp
+++ b/include/exiv2/pngimage.hpp
@@ -91,7 +91,7 @@ namespace Exiv2
@brief Print out the structure of image file.
@throw Error if reading of the file fails or the image data is
not valid (does not look like data of the specific image type).
- @caution This function is not thread safe and intended for exiv2 -pS for debugging.
+ @warning This function is not thread safe and intended for exiv2 -pS for debugging.
*/
void printStructure(std::ostream& out, PrintStructureOption option,int depth);
//@}
diff --git a/include/exiv2/properties.hpp b/include/exiv2/properties.hpp
index 18c61a8..415ab4a 100644
--- a/include/exiv2/properties.hpp
+++ b/include/exiv2/properties.hpp
@@ -213,6 +213,8 @@ namespace Exiv2 {
@note This invalidates XMP keys generated in this namespace.
*/
static void unregisterNs(const std::string& ns);
+
+ //! lock to be used while modifying properties
static Exiv2::RWLock rwLock_;
/*!
diff --git a/include/exiv2/rwlock.hpp b/include/exiv2/rwlock.hpp
index 4d5fcc9..caafb63 100644
--- a/include/exiv2/rwlock.hpp
+++ b/include/exiv2/rwlock.hpp
@@ -143,45 +143,56 @@ namespace Exiv2 {
class RWLock
{
public:
+ //! constructor (acquires the lock)
RWLock(const pthread_rwlockattr_t *attr = 0)
{
pthread_rwlock_init(&rwlock_, attr);
}
+ //! constructor (releases lock)
~RWLock()
{
pthread_rwlock_destroy(&rwlock_);
}
+ //! acquire rw lock
void wrlock()
{
pthread_rwlock_wrlock(&rwlock_);
}
+ //! test to see if the rw lock can be acquired
bool trywrlock()
{
return 0 == pthread_rwlock_trywrlock(&rwlock_);
}
+ //! acquire rd lock
void rdlock()
{
pthread_rwlock_rdlock(&rwlock_);
}
+ //! test to see if the rd lock can be acquired
bool tryrdlock()
{
return 0 == pthread_rwlock_tryrdlock(&rwlock_);
}
+ //! release rw lock
void unlock()
{
pthread_rwlock_unlock(&rwlock_);
}
+ //! unlock rd lock
void rdunlock() { unlock(); }
+
+ //! unlock rw lock
void wrunlock() { unlock(); }
private:
+ //! the lock itself
pthread_rwlock_t rwlock_;
};
#endif
@@ -193,15 +204,18 @@ namespace Exiv2 {
class ScopedReadLock
{
public:
+ //! constructor - locks the object
ScopedReadLock(RWLock &rwlock):
rwlock_(rwlock)
{
rwlock_.rdlock();
}
+ //! destructor - unlocks the object used in constructor
~ScopedReadLock() { rwlock_.rdunlock(); }
private:
+ //! object locked by the constructor (and released by destructor)
RWLock &rwlock_;
};
@@ -212,15 +226,18 @@ namespace Exiv2 {
class ScopedWriteLock
{
public:
+ //! constructor - locks the object
ScopedWriteLock(RWLock &rwlock):
rwlock_(rwlock)
{
rwlock_.wrlock();
}
+ //! destructor - unlocks the object used in constructor
~ScopedWriteLock() { rwlock_.wrunlock(); }
private:
+ //! object locked by the constructor (and released by destructor)
RWLock &rwlock_;
};
}
diff --git a/include/exiv2/tiffimage.hpp b/include/exiv2/tiffimage.hpp
index c0dc362..e74faba 100644
--- a/include/exiv2/tiffimage.hpp
+++ b/include/exiv2/tiffimage.hpp
@@ -88,7 +88,7 @@ namespace Exiv2 {
@brief Print out the structure of image file.
@throw Error if reading of the file fails or the image data is
not valid (does not look like data of the specific image type).
- @caution This function is not thread safe and intended for exiv2 -p{S|R} as a file debugging aid
+ @warning This function is not thread safe and intended for exiv2 -p{S|R} as a file debugging aid
*/
virtual void printStructure(std::ostream& out, PrintStructureOption option,int depth=-1);
diff --git a/include/exiv2/utilsvideo.hpp b/include/exiv2/utilsvideo.hpp
index 3eec31e..2f37f6d 100644
--- a/include/exiv2/utilsvideo.hpp
+++ b/include/exiv2/utilsvideo.hpp
@@ -30,8 +30,30 @@ namespace Exiv2
class UtilsVideo
{
public:
+ /*!
+ @brief compare a buffer and string
+ @param buf - binary buffer
+ @param str - nul terminated C string
+ @return true if match
+ */
static bool compareTagValue(Exiv2::DataBuf &buf, const char *str);
+
+ /*!
+ @brief compare a buffer and an array of strings
+ @param buf - binary buffer
+ @param arr - array of C strings C
+ @param arraysize - length of arr
+ @return true if match
+ */
static bool compareTagValue(Exiv2::DataBuf& buf,const char arr[][5],int32_t arraysize);
+
+ /*!
+ @brief compare a buffer and string
+ @param buf - binary buffer
+ @param str - C string (not guaranteed nul terminated)
+ @param size - number of bytes to compare
+ @return true if match
+ */
static bool simpleBytesComparison(Exiv2::DataBuf& buf ,const char* str,int32_t size);
}; // class UtilsVideo
diff --git a/include/exiv2/value.hpp b/include/exiv2/value.hpp
index 207b413..64a8ca7 100644
--- a/include/exiv2/value.hpp
+++ b/include/exiv2/value.hpp
@@ -879,6 +879,7 @@ namespace Exiv2 {
XMP spec chapter B.4 (page 42) the xml:lang qualifier is to be compared case insensitive.
*/
struct LangAltValueComparator {
+ //! LangAltValueComparator comparison case insensitive function
bool operator() (const std::string& str1, const std::string& str2) const
{
int result = str1.size() < str2.size() ? 1
diff --git a/include/exiv2/version.hpp b/include/exiv2/version.hpp
index 2c310bf..b141806 100644
--- a/include/exiv2/version.hpp
+++ b/include/exiv2/version.hpp
@@ -37,6 +37,9 @@
// + standard includes
#include <vector>
+/*!
+ @brief CPLUSPLUS11 is the value of macro --cplusplus for C++11
+*/
#define CPLUSPLUS11 201103L
#if __cplusplus >= CPLUSPLUS11
@@ -57,9 +60,16 @@
@brief exv_grep_key_t is a simple string and the ignore flag
*/
struct Exiv2_grep_key_t {
+ /*!
+ @brief Exiv2_grep_key_t constructor
+ */
Exiv2_grep_key_t(std::string pattern,bool bIgnoreCase)
:pattern_(pattern),bIgnoreCase_(bIgnoreCase) {}
+
+ //! simple string to match
std::string pattern_;
+
+ //! should we ignore cast in the match?
bool bIgnoreCase_;
};
/*!
diff --git a/src/basicio.cpp b/src/basicio.cpp
index b49d9c5..e899d8d 100644
--- a/src/basicio.cpp
+++ b/src/basicio.cpp
@@ -1483,7 +1483,7 @@ namespace Exiv2 {
bool isMalloced_; //!< Was the blocksMap_ allocated?
bool eof_; //!< EOF indicator
Protocol protocol_; //!< the protocol of url
- uint32_t totalRead_;
+ uint32_t totalRead_; //!< bytes requested from host
// METHODS
/*!
diff --git a/src/canonmn.cpp b/src/canonmn.cpp
index d6a78df..450c7d9 100644
--- a/src/canonmn.cpp
+++ b/src/canonmn.cpp
@@ -64,12 +64,15 @@ namespace Exiv2 {
std::ostream& printCsLensByFocalLengthAndMaxAperture(std::ostream& os,
const Value& value,
const ExifData* metadata);
+ //! Special treatment pretty-print function for non-unique lens ids.
std::ostream& printCsLensByFocalLength(std::ostream& os,
const Value& value,
const ExifData* metadata);
+ //! Special treatment pretty-print function for non-unique lens ids.
std::ostream& printCsLensByFocalLengthTC(std::ostream& os,
const Value& value,
const ExifData* metadata);
+ //! Special treatment pretty-print function for non-unique lens ids.
std::ostream& printCsLensFFFF(std::ostream& os,
const Value& value,
const ExifData* metadata);
@@ -1592,6 +1595,7 @@ namespace Exiv2 {
return tagInfoPr_;
}
+ //! canonTimeZoneCity - array of cityID/cityName used by Canon
extern const TagDetails canonTimeZoneCity[] = {
{ 0x0000, N_("n/a") },
{ 0x0001, N_("Chatham Islands") },
@@ -1797,6 +1801,7 @@ namespace Exiv2 {
&& std::string(td.label_).find(ltfl.maxAperture_) != std::string::npos);
}
+ //! extractLensFocalLength from metadata
void extractLensFocalLength(LensTypeAndFocalLengthAndMaxAperture& ltfl,
const ExifData* metadata)
{
@@ -1815,6 +1820,7 @@ namespace Exiv2 {
}
}
+ //! convertFocalLength to a human readable string
void convertFocalLength(LensTypeAndFocalLengthAndMaxAperture& ltfl,
double divisor)
{
@@ -1828,6 +1834,7 @@ namespace Exiv2 {
ltfl.focalLength_ = oss.str();
}
+ //! printCsLensByFocalLengthAndMaxAperture to human readable string
std::ostream& printCsLensByFocalLengthAndMaxAperture(std::ostream& os,
const Value& value,
const ExifData* metadata)
@@ -1864,6 +1871,7 @@ namespace Exiv2 {
return os << td->label_;
}
+ //! printCsLensByFocalLength to human readable string
std::ostream& printCsLensByFocalLength(std::ostream& os,
const Value& value,
const ExifData* metadata)
@@ -1885,6 +1893,7 @@ namespace Exiv2 {
return os << td->label_;
}
+ //! printCsLensByFocalLengthTC to human readable string
std::ostream& printCsLensByFocalLengthTC(std::ostream& os,
const Value& value,
const ExifData* metadata)
@@ -1911,6 +1920,7 @@ namespace Exiv2 {
return os << td->label_;
}
+ //! printCsLensType by searching the config file if necessary
std::ostream& CanonMakerNote::printCsLensType(std::ostream& os,
const Value& value,
const ExifData* metadata)
diff --git a/src/exiv2app.hpp b/src/exiv2app.hpp
index c1d9963..affbcb8 100644
--- a/src/exiv2app.hpp
+++ b/src/exiv2app.hpp
@@ -256,7 +256,7 @@ public:
Keys keys_; //!< List of keys to match from the metadata
std::string charset_; //!< Charset to use for UNICODE Exif user comment
- Exiv2::DataBuf stdinBuf; //! < DataBuf with the binary bytes from stdin
+ Exiv2::DataBuf stdinBuf; //!< DataBuf with the binary bytes from stdin
private:
//! Pointer to the global Params object.
diff --git a/src/futils.cpp b/src/futils.cpp
index e8744f6..d142718 100644
--- a/src/futils.cpp
+++ b/src/futils.cpp
@@ -58,8 +58,8 @@ extern int strerror_r(int errnum, char *buf, size_t n);
#endif
namespace Exiv2 {
- const char* ENVARDEF[] = {"/exiv2.php", "40"};
- const char* ENVARKEY[] = {"EXIV2_HTTP_POST", "EXIV2_TIMEOUT"};
+ const char* ENVARDEF[] = {"/exiv2.php", "40"}; //!< @brief default URL for http exiv2 handler and time-out
+ const char* ENVARKEY[] = {"EXIV2_HTTP_POST", "EXIV2_TIMEOUT"}; //!< @brief request keys for http exiv2 handler and time-out
// *****************************************************************************
// free functions
std::string getEnv(EnVar var) {
diff --git a/src/ini_int.hpp b/src/ini_int.hpp
index 52a4554..ac7e84e 100755
--- a/src/ini_int.hpp
+++ b/src/ini_int.hpp
@@ -14,7 +14,6 @@
namespace Exiv2 {
-
/* inih -- simple .INI file parser
inih is released under the New BSD license (see LICENSE.txt). Go to the project
@@ -32,15 +31,15 @@ https://github.com/benhoyt/inih
extern "C" {
#endif
-
-/* Typedef for prototype of handler function. */
+//! @brief typedef for prototype of handler function.
typedef int (*ini_handler)(void* user, const char* section,
const char* name, const char* value);
-/* Typedef for prototype of fgets-style reader function. */
+//! Typedef for prototype of fgets-style reader function.
typedef char* (*ini_reader)(char* str, int num, void* stream);
-/* Parse given INI-style file. May have [section]s, name=value pairs
+/*!
+ @brief Parse given INI-style file. May have [section]s, name=value pairs
(whitespace stripped), and comments starting with ';' (semicolon). Section
is "" if name=value pair parsed before any section heading. name:value
pairs are also supported as a concession to Python's configparser.
@@ -49,37 +48,58 @@ typedef char* (*ini_reader)(char* str, int num, void* stream);
pointer as well as section, name, and value (data only valid for duration
of handler call). Handler should return nonzero on success, zero on error.
- Returns 0 on success, line number of first error on parse error (doesn't
+ @param filename path to file
+ @param handler user defined handler
+ @param user void pointer passed to user handler
+
+ @return 0 on success, line number of first error on parse error (doesn't
stop on first error), -1 on file open error, or -2 on memory allocation
error (only when INI_USE_STACK is zero).
+
+ @return 0 on success
*/
int ini_parse(const char* filename, ini_handler handler, void* user);
-/* Same as ini_parse(), but takes a FILE* instead of filename. This doesn't
- close the file when it's finished -- the caller must do that. */
+/*! @brief Same as ini_parse(), but takes a FILE* instead of filename. This doesn't
+ close the file when it's finished -- the caller must do that.
+
+ @param file open "C" file
+ @param handler user defined handler
+ @param user void pointer passed to user handler
+ */
int ini_parse_file(FILE* file, ini_handler handler, void* user);
-/* Same as ini_parse(), but takes an ini_reader function pointer instead of
- filename. Used for implementing custom or string-based I/O. */
+/*! @brief Same as ini_parse(), but takes an ini_reader function pointer instead of
+ filename. Used for implementing custom or string-based I/O.
+ @param reader magic
+ @param stream more magic
+ @param handler user defined handler
+ @param user void pointer passed to user handler
+
+ @return 0 on success
+*/
int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler,
void* user);
-/* Nonzero to allow multi-line value parsing, in the style of Python's
- configparser. If allowed, ini_parse() will call the handler with the same
- name for each subsequent line parsed. */
+/*! @brief Nonzero to allow multi-line value parsing, in the style of Python's
+ configparser. If allowed, ini_parse() will call the handler with the same
+ name for each subsequent line parsed.
+*/
#ifndef INI_ALLOW_MULTILINE
#define INI_ALLOW_MULTILINE 1
#endif
-/* Nonzero to allow a UTF-8 BOM sequence (0xEF 0xBB 0xBF) at the start of
- the file. See http://code.google.com/p/inih/issues/detail?id=21 */
+/*! @brief Nonzero to allow a UTF-8 BOM sequence (0xEF 0xBB 0xBF) at the start of
+ the file. See http://code.google.com/p/inih/issues/detail?id=21
+*/
#ifndef INI_ALLOW_BOM
#define INI_ALLOW_BOM 1
#endif
-/* Nonzero to allow inline comments (with valid inline comment characters
+/*! @brief Nonzero to allow inline comments (with valid inline comment characters
specified by INI_INLINE_COMMENT_PREFIXES). Set to 0 to turn off and match
- Python 3.2+ configparser behaviour. */
+ Python 3.2+ configparser behaviour.
+*/
#ifndef INI_ALLOW_INLINE_COMMENTS
#define INI_ALLOW_INLINE_COMMENTS 1
#endif
@@ -87,17 +107,17 @@ int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler,
#define INI_INLINE_COMMENT_PREFIXES ";"
#endif
-/* Nonzero to use stack, zero to use heap (malloc/free). */
+//! @brief Nonzero to use stack, zero to use heap (malloc/free).
#ifndef INI_USE_STACK
#define INI_USE_STACK 1
#endif
-/* Stop parsing on first error (default is to keep parsing). */
+//! @brief Stop parsing on first error (default is to keep parsing).
#ifndef INI_STOP_ON_FIRST_ERROR
#define INI_STOP_ON_FIRST_ERROR 0
#endif
-/* Maximum line length for any line in INI file. */
+//! @brief Maximum line length for any line in INI file.
#ifndef INI_MAX_LINE
#define INI_MAX_LINE 200
#endif
@@ -109,43 +129,74 @@ int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler,
#endif /* __INI_H__ */
-// Read an INI file into easy-to-access name/value pairs. (Note that I've gone
-// for simplicity here rather than speed, but it should be pretty decent.)
+/*! @brief Read an INI file into easy-to-access name/value pairs. (Note that I've gone
+ for simplicity here rather than speed, but it should be pretty decent.)
+ */
class EXIV2API INIReader
{
public:
- // Construct INIReader and parse given filename. See ini.h for more info
- // about the parsing.
+ /*! @brief Construct INIReader and parse given filename. See ini.h for more info
+ about the parsing.
+ */
INIReader(std::string filename);
- // Return the result of ini_parse(), i.e., 0 on success, line number of
- // first error on parse error, or -1 on file open error.
+ /*! @brief Return the result of ini_parse(), i.e., 0 on success, line number of
+ first error on parse error, or -1 on file open error.
+ */
int ParseError();
- // Get a string value from INI file, returning default_value if not found.
+ /*! @brief Get a string value from INI file, returning default_value if not found.
+
+ @param section name of section
+ @param name name of key
+ @param default_value default if not found
+
+ @return value
+ */
std::string Get(std::string section, std::string name,
std::string default_value);
- // Get an integer (long) value from INI file, returning default_value if
- // not found or not a valid integer (decimal "1234", "-1234", or hex "0x4d2").
+ /*! @brief Get an integer (long) value from INI file, returning default_value if
+ not found or not a valid integer (decimal "1234", "-1234", or hex "0x4d2").
+
+ @param section name of section
+ @param name name of key
+ @param default_value default if not found
+
+ @return value
+ */
long GetInteger(std::string section, std::string name, long default_value);
- // Get a real (floating point double) value from INI file, returning
- // default_value if not found or not a valid floating point value
- // according to strtod().
+ /*! @brief Get a real (floating point double) value from INI file, returning
+ default_value if not found or not a valid floating point value
+ according to strtod().
+
+ @param section name of section
+ @param name name of key
+ @param default_value default if not found
+
+ @return value
+ */
double GetReal(std::string section, std::string name, double default_value);
- // Get a boolean value from INI file, returning default_value if not found or if
- // not a valid true/false value. Valid true values are "true", "yes", "on", "1",
- // and valid false values are "false", "no", "off", "0" (not case sensitive).
+ /*! @brief Get a boolean value from INI file, returning default_value if not found or if
+ not a valid true/false value. Valid true values are "true", "yes", "on", "1",
+ and valid false values are "false", "no", "off", "0" (not case sensitive).
+
+ @param section name of section
+ @param name name of key
+ @param default_value default if not found
+
+ @return value
+ */
bool GetBoolean(std::string section, std::string name, bool default_value);
private:
- int _error;
- std::map<std::string, std::string> _values;
- static std::string MakeKey(std::string section, std::string name);
+ int _error; //!< status
+ std::map<std::string, std::string> _values; //!< values from file
+ static std::string MakeKey(std::string section, std::string name); //!< return key encoded from section/name
static int ValueHandler(void* user, const char* section, const char* name,
- const char* value);
+ const char* value); //!< value handler
};
} // namespace Exiv2
diff --git a/src/jpgimage.cpp b/src/jpgimage.cpp
index 232ce0f..525f491 100644
--- a/src/jpgimage.cpp
+++ b/src/jpgimage.cpp
@@ -559,7 +559,7 @@ namespace Exiv2 {
}
} // JpegBase::readMetadata
- bool isBlank(std::string& s)
+ static bool isBlank(std::string& s) //!< predicate
{
for ( std::size_t i = 0 ; i < s.length() ; i++ )
if ( s[i] != ' ' )
diff --git a/src/minoltamn.cpp b/src/minoltamn.cpp
index e280e5e..e4d00b1 100644
--- a/src/minoltamn.cpp
+++ b/src/minoltamn.cpp
@@ -1994,28 +1994,29 @@ namespace Exiv2 {
return result;
}
- // http://stackoverflow.com/questions/1798112/removing-leading-and-trailing-spaces-from-a-string
- // trim from left
+ /*! http://stackoverflow.com/questions/1798112/removing-leading-and-trailing-spaces-from-a-string
+ trim from left
+ */
inline std::string& ltrim(std::string& s, const char* t = "
")
{
s.erase(0, s.find_first_not_of(t));
return s;
}
- // trim from right
+ //! trim from right
inline std::string& rtrim(std::string& s, const char* t = "
")
{
s.erase(s.find_last_not_of(t) + 1);
return s;
}
- // trim from left & right
+ //! trim from left & right
inline std::string& trim(std::string& s, const char* t = "
")
{
return ltrim(rtrim(s, t), t);
}
- // http://www.sbin.org/doc/HOWTO/C++Programming-HOWTO-7.html
+ //! http://www.sbin.org/doc/HOWTO/C++Programming-HOWTO-7.html
static void tokenize(const std::string& str,
std::vector<std::string>& tokens,
const std::string& delimiters = " ")
diff --git a/src/pentaxmn.cpp b/src/pentaxmn.cpp
index 26ec01d..a5e4e19 100644
--- a/src/pentaxmn.cpp
+++ b/src/pentaxmn.cpp
@@ -1207,6 +1207,7 @@ namespace Exiv2 {
return result;
}
+ //! resolveLens0x32c print lens in human format
std::ostream& resolveLens0x32c(std::ostream& os, const Value& value,
const ExifData* metadata)
{
@@ -1231,6 +1232,7 @@ namespace Exiv2 {
// #1144 end
// #816 begin
+ //! resolveLens0x3ff print lens in human format
std::ostream& resolveLens0x3ff(std::ostream& os, const Value& value,
const ExifData* metadata)
// ----------------------------------------------------------------------
@@ -1290,6 +1292,7 @@ namespace Exiv2 {
}
// #1155
+ //! resolveLens0x8ff print lens in human format
std::ostream& resolveLens0x8ff(std::ostream& os, const Value& value,
const ExifData* metadata)
// ----------------------------------------------------------------------
@@ -1317,6 +1320,7 @@ namespace Exiv2 {
}
// #1155
+ //! resolveLens0x319 print lens in human format
std::ostream& resolveLens0x319(std::ostream& os, const Value& value,
const ExifData* metadata)
// ----------------------------------------------------------------------
@@ -1351,6 +1355,7 @@ namespace Exiv2 {
return EXV_PRINT_COMBITAG_MULTI(pentaxLensType, 2, 1, 2)(os, value, metadata);
}
+ //! resolveLensType print lens in human format
std::ostream& resolveLensType(std::ostream& os, const Value& value,
const ExifData* metadata)
{
diff --git a/src/properties.cpp b/src/properties.cpp
index b5a7cca..0127382 100644
--- a/src/properties.cpp
+++ b/src/properties.cpp
@@ -2697,9 +2697,7 @@ namespace Exiv2 {
return fct(os, value, 0);
}
- //! @cond IGNORE
-
- //! Internal Pimpl structure with private members and data of class XmpKey.
+ //! @brief Internal Pimpl structure with private members and data of class XmpKey.
struct XmpKey::Impl {
Impl() {} //!< Default constructor
Impl(const std::string& prefix, const std::string& property); //!< Constructor
@@ -2711,7 +2709,7 @@ namespace Exiv2 {
@throw Error if the key cannot be decomposed.
*/
- void decomposeKey(const std::string& key);
+ void decomposeKey(const std::string& key); //!< Misterious magic
// DATA
static const char* familyName_; //!< "Xmp"
@@ -2719,8 +2717,8 @@ namespace Exiv2 {
std::string prefix_; //!< Prefix
std::string property_; //!< Property name
};
- //! @endcond
+ //! @brief Constructor for Internal Pimpl structure XmpKey::Impl::Impl
XmpKey::Impl::Impl(const std::string& prefix, const std::string& property)
{
// Validate prefix
@@ -2808,6 +2806,7 @@ namespace Exiv2 {
return XmpProperties::ns(p_->prefix_);
}
+ //! @cond IGNORE
void XmpKey::Impl::decomposeKey(const std::string& key)
{
// Get the family name, prefix and property name parts of the key
diff --git a/website/Makefile b/website/Makefile
index 451e6ea..bb7c779 100644
--- a/website/Makefile
+++ b/website/Makefile
@@ -108,7 +108,7 @@ html: news
@bin/download.sh
@bin/gen.py master/*.in
@echo "Moving files to html/ ..."
- - at mv -f master/*.html master/*.php html/
+ - at mv -f master/*.html html/
news: var/__whatsnew-latest__ var/__whatsnew-table__ html/rss.xml
diff --git a/website/doxygen/Doxyfile b/website/doxygen/Doxyfile
index b4df312..edab945 100644
--- a/website/doxygen/Doxyfile
+++ b/website/doxygen/Doxyfile
@@ -1487,13 +1487,13 @@ XML_OUTPUT = xml
# which can be used by a validating XML parser to check the
# syntax of the XML files.
-XML_SCHEMA =
+# XML_SCHEMA =
# The XML_DTD tag can be used to specify an XML DTD,
# which can be used by a validating XML parser to check the
# syntax of the XML files.
-XML_DTD =
+# XML_DTD =
# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
# dump the program listings (including syntax highlighting
--
exiv2 packaging
More information about the pkg-kde-commits
mailing list