|
Lines 2141-2148
gchar *
Link Here
|
| 2141 |
gaim_str_sub_away_formatters(const char *str, const char *name) |
2141 |
gaim_str_sub_away_formatters(const char *str, const char *name) |
| 2142 |
{ |
2142 |
{ |
| 2143 |
char *c; |
2143 |
char *c; |
| 2144 |
gchar *cpy; |
2144 |
GString *cpy; |
| 2145 |
int cnt = 0; |
|
|
| 2146 |
time_t t; |
2145 |
time_t t; |
| 2147 |
struct tm *tme; |
2146 |
struct tm *tme; |
| 2148 |
char tmp[20]; |
2147 |
char tmp[20]; |
|
Lines 2150-2161
gaim_str_sub_away_formatters(const char
Link Here
|
| 2150 |
g_return_val_if_fail(str != NULL, NULL); |
2149 |
g_return_val_if_fail(str != NULL, NULL); |
| 2151 |
g_return_val_if_fail(name != NULL, NULL); |
2150 |
g_return_val_if_fail(name != NULL, NULL); |
| 2152 |
|
2151 |
|
| 2153 |
cpy = g_malloc(BUF_LONG); |
2152 |
/* Create an empty GString that is hopefully big enough for most messages */ |
|
|
2153 |
cpy = g_string_sized_new(1024); |
| 2154 |
|
2154 |
|
| 2155 |
t = time(NULL); |
2155 |
t = time(NULL); |
| 2156 |
tme = localtime(&t); |
2156 |
tme = localtime(&t); |
| 2157 |
|
2157 |
|
| 2158 |
cpy[0] = '\0'; |
|
|
| 2159 |
c = (char *)str; |
2158 |
c = (char *)str; |
| 2160 |
while (*c) { |
2159 |
while (*c) { |
| 2161 |
switch (*c) { |
2160 |
switch (*c) { |
|
Lines 2164-2202
gaim_str_sub_away_formatters(const char
Link Here
|
| 2164 |
switch (*(c + 1)) { |
2163 |
switch (*(c + 1)) { |
| 2165 |
case 'n': |
2164 |
case 'n': |
| 2166 |
/* append name */ |
2165 |
/* append name */ |
| 2167 |
strcpy(cpy + cnt, name); |
2166 |
g_string_append(cpy, name); |
| 2168 |
cnt += strlen(name); |
|
|
| 2169 |
c++; |
2167 |
c++; |
| 2170 |
break; |
2168 |
break; |
| 2171 |
case 'd': |
2169 |
case 'd': |
| 2172 |
/* append date */ |
2170 |
/* append date */ |
| 2173 |
strftime(tmp, 20, "%m/%d/%Y", tme); |
2171 |
strftime(tmp, 20, "%m/%d/%Y", tme); |
| 2174 |
strcpy(cpy + cnt, tmp); |
2172 |
g_string_append(cpy, tmp); |
| 2175 |
cnt += strlen(tmp); |
|
|
| 2176 |
c++; |
2173 |
c++; |
| 2177 |
break; |
2174 |
break; |
| 2178 |
case 't': |
2175 |
case 't': |
| 2179 |
/* append time */ |
2176 |
/* append time */ |
| 2180 |
strftime(tmp, 20, "%I:%M:%S %p", tme); |
2177 |
strftime(tmp, 20, "%I:%M:%S %p", tme); |
| 2181 |
strcpy(cpy + cnt, tmp); |
2178 |
g_string_append(cpy, tmp); |
| 2182 |
cnt += strlen(tmp); |
|
|
| 2183 |
c++; |
2179 |
c++; |
| 2184 |
break; |
2180 |
break; |
| 2185 |
default: |
2181 |
default: |
| 2186 |
cpy[cnt++] = *c; |
2182 |
g_string_append_c(cpy, *c); |
| 2187 |
} |
2183 |
} |
| 2188 |
} else { |
2184 |
} else { |
| 2189 |
cpy[cnt++] = *c; |
2185 |
g_string_append_c(cpy, *c); |
| 2190 |
} |
2186 |
} |
| 2191 |
break; |
2187 |
break; |
| 2192 |
default: |
2188 |
default: |
| 2193 |
cpy[cnt++] = *c; |
2189 |
g_string_append_c(cpy, *c); |
| 2194 |
} |
2190 |
} |
| 2195 |
c++; |
2191 |
c++; |
| 2196 |
} |
2192 |
} |
| 2197 |
cpy[cnt] = '\0'; |
|
|
| 2198 |
|
2193 |
|
| 2199 |
return cpy; |
2194 |
return g_string_free(cpy, FALSE); |
| 2200 |
} |
2195 |
} |
| 2201 |
|
2196 |
|
| 2202 |
gchar * |
2197 |
gchar * |