| 1957 |
1957 |
| 1958 g_free(filename); |
1958 g_free(filename); |
| 1959 g_free(filename_real); |
1959 g_free(filename_real); |
| 1960 } |
1960 } |
| 1961 |
1961 |
| 1962 gboolean gaim_privacy_permit_add(GaimAccount *account, const char *who) { |
|
| 1963 GSList *d = account->permit; |
|
| 1964 char *n = g_strdup(normalize(who)); |
|
| 1965 while(d) { |
|
| 1966 if(!gaim_utf8_strcasecmp(n, normalize(d->data))) |
|
| 1967 break; |
|
| 1968 d = d->next; |
|
| 1969 } |
|
| 1970 g_free(n); |
|
| 1971 if(!d) { |
|
| 1972 account->permit = g_slist_append(account->permit, g_strdup(who)); |
|
| 1973 return TRUE; |
|
| 1974 } |
|
| 1975 |
|
| 1976 return FALSE; |
|
| 1977 } |
|
| 1978 |
|
| 1979 gboolean gaim_privacy_permit_remove(GaimAccount *account, const char *who) { |
|
| 1980 GSList *d = account->permit; |
|
| 1981 char *n = g_strdup(normalize(who)); |
|
| 1982 while(d) { |
|
| 1983 if(!gaim_utf8_strcasecmp(n, normalize(d->data))) |
|
| 1984 break; |
|
| 1985 d = d->next; |
|
| 1986 } |
|
| 1987 g_free(n); |
|
| 1988 if(d) { |
|
| 1989 account->permit = g_slist_remove(account->permit, d->data); |
|
| 1990 g_free(d->data); |
|
| 1991 return TRUE; |
|
| 1992 } |
|
| 1993 return FALSE; |
|
| 1994 } |
|
| 1995 |
|
| 1996 gboolean gaim_privacy_deny_add(GaimAccount *account, const char *who) { |
|
| 1997 GSList *d = account->deny; |
|
| 1998 char *n = g_strdup(normalize(who)); |
|
| 1999 while(d) { |
|
| 2000 if(!gaim_utf8_strcasecmp(n, normalize(d->data))) |
|
| 2001 break; |
|
| 2002 d = d->next; |
|
| 2003 } |
|
| 2004 g_free(n); |
|
| 2005 if(!d) { |
|
| 2006 account->deny = g_slist_append(account->deny, g_strdup(who)); |
|
| 2007 return TRUE; |
|
| 2008 } |
|
| 2009 |
|
| 2010 return FALSE; |
|
| 2011 } |
|
| 2012 |
|
| 2013 gboolean gaim_privacy_deny_remove(GaimAccount *account, const char *who) { |
|
| 2014 GSList *d = account->deny; |
|
| 2015 char *n = g_strdup(normalize(who)); |
|
| 2016 while(d) { |
|
| 2017 if(!gaim_utf8_strcasecmp(n, normalize(d->data))) |
|
| 2018 break; |
|
| 2019 d = d->next; |
|
| 2020 } |
|
| 2021 g_free(n); |
|
| 2022 if(d) { |
|
| 2023 account->deny = g_slist_remove(account->deny, d->data); |
|
| 2024 g_free(d->data); |
|
| 2025 return TRUE; |
|
| 2026 } |
|
| 2027 return FALSE; |
|
| 2028 } |
|
| 2029 |
|
| 2030 void gaim_group_set_setting(struct group *g, const char *key, |
1962 void gaim_group_set_setting(struct group *g, const char *key, |
| 2031 const char *value) { |
1963 const char *value) { |
| 2032 if(!g) |
1964 if(!g) |
| 2033 return; |
1965 return; |
| 2034 g_hash_table_replace(g->settings, g_strdup(key), g_strdup(value)); |
1966 g_hash_table_replace(g->settings, g_strdup(key), g_strdup(value)); |