]> err.no Git - pkg-config/commitdiff
2003-02-15 Havoc Pennington <hp@pobox.com>
authorArch Librarian <arch@canonical.com>
Thu, 14 Jul 2005 13:05:41 +0000 (13:05 +0000)
committerArch Librarian <arch@canonical.com>
Thu, 14 Jul 2005 13:05:41 +0000 (13:05 +0000)
Author: hp
Date: 2003-02-15 15:04:07 GMT
2003-02-15  Havoc Pennington  <hp@pobox.com>

Fixes suggested by Werner Trobin

* main.c (verbose_error): honor --errors-to-stdout and flush
the same stream we write to

* parse.c (parse_url): support an "url" field so if someone
has a .pc file they can figure out where to go for newer
versions and such

ChangeLog
main.c
parse.c
pkg-config.1
pkg.c
pkg.h

index 8f1aa0ee8156c458160ab3ac665365a2521f6a6e..648cd1de611b919c939f7fc23e43cbf2169067a4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2003-02-15  Havoc Pennington  <hp@pobox.com>
+
+       Fixes suggested by Werner Trobin
+       
+       * main.c (verbose_error): honor --errors-to-stdout and flush 
+       the same stream we write to
+
+       * parse.c (parse_url): support an "url" field so if someone 
+       has a .pc file they can figure out where to go for newer 
+       versions and such
+
 2003-01-16  Havoc Pennington  <hp@redhat.com>
 
        * configure.in: 0.15
diff --git a/main.c b/main.c
index 7f40703c21efc4cc7867be071dc41ef3ad226308..35062996347fd0434564ee7cb3406a45b0b624df 100644 (file)
--- a/main.c
+++ b/main.c
@@ -72,7 +72,8 @@ verbose_error (const char *format, ...)
 {
   va_list args;
   gchar *str;
-
+  FILE* stream;
+  
   g_return_if_fail (format != NULL);
 
   if (!want_verbose_errors)
@@ -82,8 +83,13 @@ verbose_error (const char *format, ...)
   str = g_strdup_vprintf (format, args);
   va_end (args);
 
-  fputs (str, stderr);
-  fflush (stdout);
+  if (want_stdout_errors)
+    stream = stdout;
+  else
+    stream = stderr;
+  
+  fputs (str, stream);
+  fflush (stream);
 
   g_free (str);
 }
diff --git a/parse.c b/parse.c
index 33337b120b78bfff9b27041de38b44b32ead332f..51109257e682d24d2acf65885d80144a2e777f0d 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -768,7 +768,20 @@ parse_cflags (Package *pkg, const char *str, const char *path)
   pkg->I_cflags = g_slist_reverse (pkg->I_cflags);
   pkg->other_cflags = g_slist_reverse (pkg->other_cflags);
 }
-     
+
+static void
+parse_url (Package *pkg, const char *str, const char *path)
+{
+  if (pkg->url != NULL)
+    {
+      verbose_error ("URL field occurs twice in '%s'\n", path);
+
+      exit (1);
+    }
+
+  pkg->url = trim_and_sub (pkg, str, path);
+}
+
 static void
 parse_line (Package *pkg, const char *untrimmed, const char *path)
 {
@@ -819,6 +832,8 @@ parse_line (Package *pkg, const char *untrimmed, const char *path)
         parse_cflags (pkg, p, path);
       else if (strcmp (tag, "Conflicts") == 0)
         parse_conflicts (pkg, p, path);
+      else if (strcmp (tag, "URL") == 0)
+        parse_url (pkg, p, path);
       else
         {
           verbose_error ("Unknown keyword '%s' in '%s'\n",
index 6efca1071d1f24fc107e8d455df23a49cf70dd52..b7e43b36e0fa6bfab982b589ca55ff79e4ce0778 100644 (file)
@@ -291,7 +291,8 @@ includedir=${prefix}/include
 
 Name: GObject                            # human-readable name
 Description: Object/type system for GLib # human-readable description
-Version: 1.3.1                           
+Version: 1.3.1
+URL: http://www.gtk.org
 Requires: glib-2.0 = 1.3.1
 Conflicts: foobar <= 4.5
 Libs: -L${libdir} -lgobject-1.3
@@ -322,6 +323,9 @@ it is not the name passed as an argument to \fIpkg-config\fP.
 .I "Description:"
 This should be a brief description of the package
 .TP
+.I "URL:"
+An URL where people can get more information about and download the package
+.TP
 .I "Version:"
 This should be the most-specific-possible package version string.
 .TP
diff --git a/pkg.c b/pkg.c
index 300e9242c4707d8be4d0be923d6171fb589dcdf5..3314891657ec6c691e0d27d9c36c36ea26d1f56e 100644 (file)
--- a/pkg.c
+++ b/pkg.c
@@ -730,6 +730,9 @@ verify_package (Package *pkg)
                              ver->version,
                              req->name,
                              req->version);
+              if (req->url)
+                verbose_error ("You may find new versions of %s at %s\n",
+                               req->name, req->url);
 
               exit (1);
             }
diff --git a/pkg.h b/pkg.h
index 2ab9f56b1cdd3bb2b08e1a4ccafb9191d1c36675..6c8cae06f5ebb283230c803c679639cfdc1e9305 100644 (file)
--- a/pkg.h
+++ b/pkg.h
@@ -54,6 +54,7 @@ struct _Package
   char *name; /* human-readable name */
   char *version;
   char *description;
+  char *url;
   char *pcfiledir; /* directory it was loaded from */
   GSList *requires;
   GSList *l_libs;