| 110 "<>\\\\|-]+$", password, 0, 0); |
110 "<>\\\\|-]+$", password, 0, 0); |
| 111 } |
111 } |
| 112 |
112 |
| 113 gchar * ggp_utf8_strndup(const gchar *str, gsize n) |
113 gchar * ggp_utf8_strndup(const gchar *str, gsize n) |
| 114 { |
114 { |
| 115 int raw_len = strlen(str); |
115 size_t raw_len = strlen(str); |
| 116 gchar *end_ptr; |
116 gchar *end_ptr; |
| 117 if (str == NULL) |
117 if (str == NULL) |
| 118 return NULL; |
118 return NULL; |
| 119 if (raw_len <= n) |
119 if (raw_len <= n) |
| 120 return g_strdup(str); |
120 return g_strdup(str); |
| 188 g_free(str_array); |
188 g_free(str_array); |
| 189 |
189 |
| 190 return joined; |
190 return joined; |
| 191 } |
191 } |
| 192 |
192 |
| 193 GList * ggp_list_truncate(GList *list, gint length, GDestroyNotify free_func) |
193 GList * ggp_list_truncate(GList *list, guint length, GDestroyNotify free_func) |
| 194 { |
194 { |
| 195 while (g_list_length(list) > length) |
195 while (g_list_length(list) > length) |
| 196 { |
196 { |
| 197 GList *last = g_list_last(list); |
197 GList *last = g_list_last(list); |
| 198 free_func(last->data); |
198 free_func(last->data); |