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

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:43:32 UTC 2017


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

The following commit has been merged in the master branch:
commit 6119b4432b3f2bcb6e021703411861e7867a1e12
Author: Robin Mills <robin at clanmills.com>
Date:   Mon Nov 12 06:15:22 2012 +0000

    Updated src/exiv2.1 to cover -g option.  Simplified exiv2 -v -V support code.
---
 src/exiv2.1     | 16 +++++++++-
 src/version.cpp | 95 +++++++++++++++++++++++++++++----------------------------
 2 files changed, 64 insertions(+), 47 deletions(-)

diff --git a/src/exiv2.1 b/src/exiv2.1
index 160e320..e442568 100644
--- a/src/exiv2.1
+++ b/src/exiv2.1
@@ -3,7 +3,7 @@
 .\" First parameter, NAME, should be all caps
 .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
 .\" other parameters are allowed: see man(7), man(1)
-.TH EXIV2 1 "Oct 18, 2012"
+.TH EXIV2 1 "Nov 11, 2012"
 .\" Please adjust this date whenever revising the manpage.
 .\"
 .\" Some roff macros, for reference:
@@ -294,6 +294,20 @@ with the 'print' option -pp.
 X : Extract metadata to an XMP sidecar file <file>.xmp. The remaining
 extract targets determine what metadata to extract to the sidecar
 file. Possible are Exif, IPTC and XMP and the default is all of these.
+
+.TP
+.B \-g 
Imatch
P
+Report only keys which match.  This is sub-string match and not grep, although
+the -g option is intended to help you remember this as grep. The match is case-sensitive.
+.br
+.sp 1
+.nf
+exiv2 -g Date -pt R.jpg  
+Exif.Image.DateTime           Ascii      20  2012:08:07 16:01:05
+Exif.Photo.DateTimeOriginal   Ascii      20  2011:09:18 16:25:48
+Exif.Photo.DateTimeDigitized  Ascii      20  2011:09:18 16:25:48 
+.fi
+.sp 1
 .TP
 .B \-r 
Ifmt
P
 Filename format for the 'rename' action. The format string follows
diff --git a/src/version.cpp b/src/version.cpp
index 65a12c0..aad0569 100644
--- a/src/version.cpp
+++ b/src/version.cpp
@@ -71,8 +71,11 @@ namespace Exiv2 {
     }
 }                                       // namespace Exiv2
 
-
-#include <stdio.h>
+#include <string>
+#include <vector>
+using namespace std;
+typedef vector<string>      string_v;
+typedef string_v::iterator  string_i;
 
 #ifndef lengthof
 #define lengthof(x) sizeof(x)/sizeof(x[0])
@@ -116,13 +119,11 @@ namespace Exiv2 {
 
 EXIV2API void dumpLibraryInfo(std::ostream& os)
 {
-	char    path     [500];
-	char    szBuilder[200];
-	size_t  path_l   = 0  ;
-	size_t  path_max = sizeof(path) - 2;
-	bool    bReport  = false;
-	int     bits     = sizeof(void*);
+	string_v libs; // libs[0] == executable
+	char     builder[200];
+	builder[0] = 0  ;
 
+	int      bits     = sizeof(void*);
 #if defined(_DEBUG) || defined(DEBUG)
 	int debug=1;
 #else
@@ -136,75 +137,77 @@ EXIV2API void dumpLibraryInfo(std::ostream& os)
 #endif
 
 #if   defined(_MSC_VER)
-	  sprintf(szBuilder,"MSVC=%d,DEBUG=%d,DLL=%d,Bits=%d:",((_MSC_VER-600)/100),debug,dll,bits);
+	  sprintf(builder,"MSVC=%d,DEBUG=%d,DLL=%d,Bits=%d:",((_MSC_VER-600)/100),debug,dll,bits);
 #elif defined(__clang__)
-	  sprintf(szBuilder,"Clang=%s,DEBUG=%d,DLL=%d,Bits=%d:",__clang_version__,debug,dll,bits);
+	  sprintf(builder,"Clang=%s,DEBUG=%d,DLL=%d,Bits=%d:",__clang_version__,debug,dll,bits);
 #elif defined(__GNUG__)
-	  sprintf(szBuilder,"G++=%s,DEBUG=%d,DLL=%d,Bits=%d: ",__VERSION__,debug,dll,bits);
+	  sprintf(builder,"G++=%s,DEBUG=%d,DLL=%d,Bits=%d: ",__VERSION__,debug,dll,bits);
 #elif defined(__GNUC__)
-	  sprintf(szBuilder,"GCC=%s,DEBUG=%d,DLL=%d,Bits=%d: ",__VERSION__,debug,dll,bits);
+	  sprintf(builder,"GCC=%s,DEBUG=%d,DLL=%d,Bits=%d: ",__VERSION__,debug,dll,bits);
 #else
-	  sprintf(szBuilder,"???=%s,DEBUG=%d,DLL=%d,Bits=%d: ",__VERSION__,debug,dll,bits);
+	  sprintf(builder,"unknown=%s,DEBUG=%d,DLL=%d,Bits=%d: ",__VERSION__,debug,dll,bits);
+#endif
+
+	const char* platform = 
+#if defined(__CYGWIN__)	
+	"cygwin";
+#elif defined(__MSC_VER)
+	"windows";
+#elif defined(__APPLE__)
+	"apple";
+#elif defined(__linux__)
+	"linux";
+#else
+	"unknown";
 #endif
-	path[0]=0;
 
-	// enumerate loaded libraries and determine path to executable
 #if defined(WIN32) || defined(__CYGWIN__)
-	bReport = true;
-	HMODULE handles[100];
+	// enumerate loaded libraries and determine path to executable
+	HMODULE handles[200];
 	DWORD   cbNeeded;
 	if ( EnumProcessModules(GetCurrentProcess(),handles,lengthof(handles),&cbNeeded)) {
 		char szFilename[_MAX_PATH];
 		for ( DWORD h = 0 ; h < cbNeeded/sizeof(handles[0]) ; h++ ) {
 			GetModuleFileNameA(handles[h],szFilename,lengthof(szFilename)) ;
-			os << szBuilder << "module=" << szFilename << std::endl;
-			if ( h==0 ) {
-				path_l = strlen(szFilename);
-				if ( path_l > path_max ) path_l = 0;
-				if ( path_l > 0        ) strcpy(path,szFilename);
-			}
+			libs.push_back(szFilename);
 		}
 	}
 #elif defined(__APPLE__)
-	bReport = true;
 	// man 3 dyld
 	uint32_t count = _dyld_image_count();
 	for (uint32_t image = 0 ; image < count ; image++ ) {
-		 const char* image_path = _dyld_get_image_name(image);
-		 os << szBuilder << "library=" << image_path << std::endl;
-	     if ( image==0 ) {
-	     	path_l = strlen(image_path);
-	     	if ( path_l > path_max ) path_l = 0;
-	     	if ( path_l > 0        ) strcpy(path,image_path);
-	     }
+		const char* image_path = _dyld_get_image_name(image);
+		libs.push_back(image_path);
 	}
-
 #elif defined(__linux__)
- 	bReport = true;
+	// http://stackoverflow.com/questions/606041/how-do-i-get-the-path-of-a-process-in-unix-linux
+	char proc[100];
+	char path[500];
+	sprintf(proc,"/proc/%d/exe", getpid());
+	path_l = readlink (proc, path,sizeof(path));
+	libs.push_back(path);
+
 	// http://syprog.blogspot.com/2011/12/listing-loaded-shared-objects-in-linux.html
 	struct lmap* pl;
 	void* ph = dlopen(NULL, RTLD_NOW);
 	struct something* p = (struct something*)ph;
-	p = p->ptr;
+	p  = p->ptr;
 	pl = (struct lmap*)p->ptr;
 
 	while(NULL != pl)
 	{
-		os << szBuilder << "library=" << pl->path << std::endl;
+		libraries.push_back(pl->path);
 		pl = pl->next;
 	}
-	// http://stackoverflow.com/questions/606041/how-do-i-get-the-path-of-a-process-in-unix-linux
-	char proc[100];
-	sprintf(proc,"/proc/%d/exe", getpid());
-	path_l = readlink (proc, path, path_max);
 #endif
 
-	if ( bReport ) {
-		os << "builder=" << szBuilder << std::endl;
-		if ( path_l > 0 &&  path_l < path_max ) {
-			path[path_l]=0;
-			os << szBuilder << "executable=" << path << std::endl;
-		}
-		os << szBuilder << "date=\"" << __DATE__ << "\",time=" __TIME__ << std::endl;
+	os << "platform=" << platform << endl;
+	os << "builder="  << builder  << endl;
+	os << "date="     << __DATE__ << endl;
+	os << "time="     << __TIME__ << endl;
+	if ( libs.begin() != libs.end() ) {
+		os << "executable=" << *libs.begin() << endl;
+		for ( string_i lib = libs.begin()+1 ; lib != libs.end() ; lib++ )
+			os << "library=" << *lib << endl;
 	}
 }

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list