]> err.no Git - pkg-config/commitdiff
2008-03-23 Tollef Fog Heen <tfheen@err.no>
authorTollef Fog Heen <tfheen@err.no>
Sun, 23 Mar 2008 19:51:50 +0000 (20:51 +0100)
committerTollef Fog Heen <tfheen@err.no>
Sun, 23 Mar 2008 19:51:50 +0000 (20:51 +0100)
       * main.c (main): Add logging support from NetBSD.  Thanks to Julio
       M. Merino Vidal for forwarding the patch from ages ago.

ChangeLog
main.c

index 31498ef1ccc08455bf48208088c3ccc0bd9d7279..ab22df0af865a9999acd013b36cc2eeb2f06a106 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-03-23  Tollef Fog Heen  <tfheen@err.no>
+
+       * main.c (main): Add logging support from NetBSD.  Thanks to Julio
+       M. Merino Vidal for forwarding the patch from ages ago.
+
 2008-03-23  Stepan Kasal  <skasal@redhat.com>
 
        * pkg-config.1: Document "Requires.private" and recommend it
diff --git a/main.c b/main.c
index 253623d852c9311c77830878c49d13db5dd201ea..5ccb312c4aa5392ad7370fd62964ca4a9aa3b83a 100644 (file)
--- a/main.c
+++ b/main.c
@@ -206,7 +206,7 @@ main (int argc, char **argv)
   char **search_dirs;
   char **iter;
   gboolean need_newline;
-
+  FILE *log;
   const char *pkgname;
   Package *pkg;
 
@@ -421,6 +421,17 @@ main (int argc, char **argv)
 
   g_strstrip (str->str);
 
+  if (getenv("PKG_CONFIG_LOG") != NULL)
+    {
+      log = fopen (getenv ("PKG_CONFIG_LOG"), "a");
+      if (log == NULL)
+       {
+         fprintf (stderr, "Cannot open log file: %s\n",
+                  getenv ("PKG_CONFIG_LOG"));
+         exit (1);
+       }
+    }
+
   {
     gboolean failed = FALSE;
     GSList *reqs;
@@ -441,6 +452,17 @@ main (int argc, char **argv)
         else
           req = get_package (ver->name);
 
+       if (log != NULL)
+         {
+           if (req == NULL)
+             fprintf (log, "%s NOT-FOUND", ver->name);
+           else
+             fprintf (log, "%s %s %s", ver->name,
+                      comparison_to_str (ver->comparison),
+                      (ver->version == NULL) ? "(null)" : ver->version);
+           fprintf (log, "\n");
+         }
+
         if (req == NULL)
           {
             failed = TRUE;
@@ -471,6 +493,11 @@ main (int argc, char **argv)
         iter = g_slist_next (iter);
       }
 
+    if (log != NULL)
+      {
+       fclose (log);
+      }
+
     if (failed) {
       return 1;
     }