diff options
Diffstat (limited to 'src/peerinfo/gnunet-peerinfo-gtk-flags.c')
-rw-r--r-- | src/peerinfo/gnunet-peerinfo-gtk-flags.c | 46 |
1 files changed, 18 insertions, 28 deletions
diff --git a/src/peerinfo/gnunet-peerinfo-gtk-flags.c b/src/peerinfo/gnunet-peerinfo-gtk-flags.c index 6c45e97c..4970a098 100644 --- a/src/peerinfo/gnunet-peerinfo-gtk-flags.c +++ b/src/peerinfo/gnunet-peerinfo-gtk-flags.c | |||
@@ -81,10 +81,8 @@ GNUNET_PEERINFO_GTK_get_flag (const char *cc) | |||
81 | 81 | ||
82 | if (NULL == cc) | 82 | if (NULL == cc) |
83 | return NULL; | 83 | return NULL; |
84 | if ((0 == strcasecmp (cc, "edu")) || | 84 | if ((0 == strcasecmp (cc, "edu")) || (0 == strcasecmp (cc, "com")) || |
85 | (0 == strcasecmp (cc, "com")) || | 85 | (0 == strcasecmp (cc, "net")) || (0 == strcasecmp (cc, "org")) || |
86 | (0 == strcasecmp (cc, "net")) || | ||
87 | (0 == strcasecmp (cc, "org")) || | ||
88 | (0 == strcasecmp (cc, "gov")) || (0 == strcasecmp (cc, "mil"))) | 86 | (0 == strcasecmp (cc, "gov")) || (0 == strcasecmp (cc, "mil"))) |
89 | cc = "us"; | 87 | cc = "us"; |
90 | if (0 == strcasecmp (cc, "uk")) | 88 | if (0 == strcasecmp (cc, "uk")) |
@@ -93,51 +91,43 @@ GNUNET_PEERINFO_GTK_get_flag (const char *cc) | |||
93 | return NULL; | 91 | return NULL; |
94 | pos = flags_head; | 92 | pos = flags_head; |
95 | while (pos != NULL) | 93 | while (pos != NULL) |
96 | { | 94 | { |
97 | if (0 == strcmp (pos->cc, cc)) | 95 | if (0 == strcmp (pos->cc, cc)) |
98 | return pos->flag; | 96 | return pos->flag; |
99 | pos = pos->next; | 97 | pos = pos->next; |
100 | } | 98 | } |
101 | mcc = GNUNET_strdup (cc); | 99 | mcc = GNUNET_strdup (cc); |
102 | for (i = 0; i < strlen (mcc); i++) | 100 | for (i = 0; i < strlen (mcc); i++) |
103 | mcc[i] = tolower (mcc[i]); | 101 | mcc[i] = tolower (mcc[i]); |
104 | dir = GNUNET_GTK_installation_get_path (GNUNET_OS_IPK_DATADIR); | 102 | dir = GNUNET_GTK_installation_get_path (GNUNET_OS_IPK_DATADIR); |
105 | GNUNET_asprintf (&fn, | 103 | GNUNET_asprintf (&fn, "%sgnunet-gtk%sflags%s%s.png", dir, DIR_SEPARATOR_STR, |
106 | "%sgnunet-gtk%sflags%s%s.png", | 104 | DIR_SEPARATOR_STR, mcc); |
107 | dir, | ||
108 | DIR_SEPARATOR_STR, | ||
109 | DIR_SEPARATOR_STR, | ||
110 | mcc); | ||
111 | GNUNET_free (dir); | 105 | GNUNET_free (dir); |
112 | flagBuf = gdk_pixbuf_new_from_file (fn, NULL); | 106 | flagBuf = gdk_pixbuf_new_from_file (fn, NULL); |
113 | pos = GNUNET_malloc (sizeof (struct Flag)); | 107 | pos = GNUNET_malloc (sizeof (struct Flag)); |
114 | pos->cc = mcc; | 108 | pos->cc = mcc; |
115 | pos->flag = flagBuf; | 109 | pos->flag = flagBuf; |
116 | GNUNET_CONTAINER_DLL_insert (flags_head, | 110 | GNUNET_CONTAINER_DLL_insert (flags_head, flags_tail, pos); |
117 | flags_tail, | ||
118 | pos); | ||
119 | return flagBuf; | 111 | return flagBuf; |
120 | } | 112 | } |
121 | 113 | ||
122 | 114 | ||
123 | /** | 115 | /** |
124 | * Deallocate all cached flags. | 116 | * Deallocate all cached flags. |
125 | */ | 117 | */ |
126 | void | 118 | void |
127 | GNUNET_PEERINFO_GTK_flags_shutdown () | 119 | GNUNET_PEERINFO_GTK_flags_shutdown () |
128 | { | 120 | { |
129 | struct Flag *flag; | 121 | struct Flag *flag; |
130 | 122 | ||
131 | while (NULL != (flag = flags_head)) | 123 | while (NULL != (flag = flags_head)) |
132 | { | 124 | { |
133 | GNUNET_CONTAINER_DLL_remove (flags_head, | 125 | GNUNET_CONTAINER_DLL_remove (flags_head, flags_tail, flag); |
134 | flags_tail, | 126 | if (flag->flag != NULL) |
135 | flag); | 127 | g_object_unref (flag->flag); |
136 | if (flag->flag != NULL) | 128 | GNUNET_free (flag->cc); |
137 | g_object_unref (flag->flag); | 129 | GNUNET_free (flag); |
138 | GNUNET_free (flag->cc); | 130 | } |
139 | GNUNET_free (flag); | ||
140 | } | ||
141 | } | 131 | } |
142 | 132 | ||
143 | 133 | ||