File libgweather-LocationEntry-fix-database.patch of Package libgweather

From d9433617c7cd069d1f29993b34936a6fec843fe7 Mon Sep 17 00:00:00 2001
From: Giovanni Campagna <gcampagna@src.gnome.org>
Date: Thu, 16 Apr 2015 17:45:26 -0700
Subject: LocationEntry: fix database matching in the presence of whitespace

Trailing whitespace should prevent prefix matches but not cause
matching failures altoghether (trying to call find_word with
a length of 0)

diff --git a/libgweather/location-entry.c b/libgweather/location-entry.c
index d92d9dc..9994ea2 100644
--- a/libgweather/location-entry.c
+++ b/libgweather/location-entry.c
@@ -679,6 +679,9 @@ match_compare_name (const char *key, const char *name)
     gboolean is_first_word = TRUE;
     int len;
 
+    /* Ignore whitespace before the string */
+    key += strspn (key, " ");
+
     /* All but the last word in KEY must match a full word from NAME,
      * in order (but possibly skipping some words from NAME).
      */
@@ -699,7 +702,13 @@ match_compare_name (const char *key, const char *name)
     }
 
     /* The last word in KEY must match a prefix of a following word in NAME */
-    return find_word (name, key, strlen (key), FALSE, is_first_word) != NULL;
+    if (len == 0) {
+	return TRUE;
+    } else {
+	// if we get here, key[len] == 0, so...
+	g_assert (len == strlen(key));
+	return find_word (name, key, len, FALSE, is_first_word) != NULL;
+    }
 }
 
 static gboolean
-- 
cgit v0.10.2
openSUSE Build Service is sponsored by