Mercurial > pidgin
annotate src/util.c @ 1250:b5783215b245
[gaim-migrate @ 1260]
decklin's clean up of the account editor, much needed.
indent -kr -i8 -l105 -ncs -cp7 -npcs -T GtkWidget -T gpointer -T AppletCallbackFunc -T GtkFunction -T gaim_plugin_remove -T name -T FILE -T gchar -T user_opts -T GdkEvent -T GtkObject ...
did about.c, aim.c, away.c, browser.c, buddy_chat.c, gaimrc.c, html.c, idle.c, multi.c. Need to do buddy.c, conversation.c, dialogs.c, oscar.c, perl.c, plugins.c, prefs.c, proxy.c, prpl.c, rvous.c, server.c, sound.c, toc.c, util.c. not doing gtkhtml.c because it's a piece of crap anyway, or *ticker.c because they're syd's.
got rid of debug_buff, just debug_printf now.
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Wed, 13 Dec 2000 20:18:35 +0000 |
| parents | 78c4f497db2b |
| children | 46c09828e929 |
| rev | line source |
|---|---|
| 1 | 1 /* |
| 2 * gaim | |
| 3 * | |
| 4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 5 * | |
| 6 * This program is free software; you can redistribute it and/or modify | |
| 7 * it under the terms of the GNU General Public License as published by | |
| 8 * the Free Software Foundation; either version 2 of the License, or | |
| 9 * (at your option) any later version. | |
| 10 * | |
| 11 * This program is distributed in the hope that it will be useful, | |
| 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 * GNU General Public License for more details. | |
| 15 * | |
| 16 * You should have received a copy of the GNU General Public License | |
| 17 * along with this program; if not, write to the Free Software | |
| 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 19 * | |
| 20 */ | |
| 21 | |
|
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
278
diff
changeset
|
22 #ifdef HAVE_CONFIG_H |
|
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
278
diff
changeset
|
23 #include "../config.h" |
|
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
278
diff
changeset
|
24 #endif |
| 1 | 25 #include <unistd.h> |
| 26 #include <errno.h> | |
| 27 #include <stdio.h> | |
| 28 #include <stdlib.h> | |
| 29 #include <sys/time.h> | |
| 30 #include <sys/types.h> | |
| 31 #include <sys/stat.h> | |
| 32 #include <string.h> | |
| 33 #include <sys/wait.h> | |
| 34 #include <gtk/gtk.h> | |
|
210
ec0686b3b03f
[gaim-migrate @ 220]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
209
diff
changeset
|
35 #include <ctype.h> |
| 1 | 36 #include <pixmaps/aimicon.xpm> |
| 37 #include "gaim.h" | |
| 38 | |
| 39 static GdkPixmap *icon_pm = NULL; | |
| 40 static GdkBitmap *icon_bm = NULL; | |
| 41 | |
| 70 | 42 char *full_date() { |
| 43 char * date; | |
| 44 time_t tme; | |
| 45 | |
| 46 time(&tme); | |
| 47 date = ctime(&tme); | |
| 48 date[strlen(date)-1] = '\0'; | |
| 49 return date; | |
| 50 } | |
| 51 | |
| 1 | 52 gint badchar(char c) |
| 53 { | |
| 970 | 54 switch(c) { |
| 55 case ' ': | |
| 56 case ',': | |
| 57 case '(': | |
| 58 case ')': | |
| 59 case '\0': | |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
970
diff
changeset
|
60 case '\n': |
| 970 | 61 case '<': |
| 62 case '>': | |
|
413
7ea55575cc01
[gaim-migrate @ 423]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
373
diff
changeset
|
63 return 1; |
| 970 | 64 default: |
| 65 return 0; | |
| 66 } | |
| 1 | 67 } |
| 68 | |
| 69 | |
| 970 | 70 gchar *sec_to_text(gint sec) |
| 1 | 71 { |
| 72 int hrs, min; | |
| 73 char minutes[64]; | |
| 74 char hours[64]; | |
| 970 | 75 char *sep; |
| 1 | 76 char *ret = g_malloc(256); |
| 77 | |
| 78 hrs = sec / 3600; | |
| 79 min = sec % 3600; | |
| 80 | |
| 81 min = min / 60; | |
| 82 sec = min % 60; | |
| 83 | |
| 84 if (min) { | |
| 85 if (min == 1) | |
| 86 g_snprintf(minutes, sizeof(minutes), "%d minute.", min); | |
| 87 else | |
| 88 g_snprintf(minutes, sizeof(minutes), "%d minutes.", min); | |
| 970 | 89 sep = ", "; |
| 1 | 90 } else { |
| 91 if (!hrs) | |
| 92 g_snprintf(minutes, sizeof(minutes), "%d minutes.", min); | |
| 93 else { | |
| 94 minutes[0] = '.'; | |
| 95 minutes[1] = '\0'; | |
| 96 } | |
| 970 | 97 sep = ""; |
| 1 | 98 } |
| 99 | |
| 100 if (hrs) { | |
| 101 if (hrs == 1) | |
| 102 g_snprintf(hours, sizeof(hours), "%d hour%s", hrs, sep); | |
| 103 else | |
| 104 g_snprintf(hours, sizeof(hours), "%d hours%s", hrs, sep); | |
| 105 } else | |
| 106 hours[0] = '\0'; | |
| 107 | |
| 108 | |
| 109 g_snprintf(ret, 256, "%s%s", hours, minutes); | |
| 110 | |
| 111 return ret; | |
| 112 } | |
| 113 | |
| 114 gint linkify_text(char *text) | |
| 115 { | |
| 116 char *c, *t; | |
|
845
647b110f7a1a
[gaim-migrate @ 855]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
831
diff
changeset
|
117 char *cpy = g_malloc(strlen(text) * 2 + 1); |
| 1 | 118 char url_buf[512]; |
| 119 int cnt=0; | |
| 120 /* Assumes you have a buffer able to cary at least BUF_LEN * 2 bytes */ | |
| 121 | |
| 122 strncpy(cpy, text, strlen(text)); | |
| 123 cpy[strlen(text)] = 0; | |
| 124 c = cpy; | |
| 125 while(*c) { | |
| 126 if (!strncasecmp(c, "<A", 2)) { | |
| 127 while(1) { | |
| 128 if (!strncasecmp(c, "/A>", 3)) { | |
| 129 break; | |
| 130 } | |
| 131 text[cnt++] = *c; | |
| 132 c++; | |
| 133 if (!(*c)) | |
| 134 break; | |
| 135 } | |
| 856 | 136 } else if ( (!strncasecmp(c, "http://", 7) || (!strncasecmp(c, "https://", 8)))) { |
| 1 | 137 t = c; |
| 138 while(1) { | |
| 139 if (badchar(*t)) { | |
| 925 | 140 |
| 141 if (*(t) == ',' && (*(t+1) != ' ')) | |
| 142 { | |
| 143 t++; | |
| 144 continue; | |
| 145 } | |
| 146 | |
| 1 | 147 if (*(t-1) == '.') |
| 148 t--; | |
| 149 strncpy(url_buf, c, t-c); | |
| 150 url_buf[t-c] = 0; | |
| 151 cnt += g_snprintf(&text[cnt++], 1024, "<A HREF=\"%s\">%s</A>", url_buf, url_buf); | |
| 152 cnt--; | |
| 153 c = t; | |
| 154 break; | |
| 155 } | |
| 156 if (!t) | |
| 157 break; | |
| 158 t++; | |
| 159 | |
| 160 } | |
| 161 } else if (!strncasecmp(c, "www.", 4)) { | |
| 162 if (strncasecmp(c, "www..", 5)) { | |
| 163 t = c; | |
| 164 while(1) { | |
| 165 if (badchar(*t)) { | |
| 166 if (t-c == 4) { | |
| 167 break; | |
| 168 } | |
| 925 | 169 |
| 170 if (*(t) == ',' && (*(t+1) != ' ')) | |
| 171 { | |
| 172 t++; | |
| 173 continue; | |
| 174 } | |
| 175 | |
| 1 | 176 if (*(t-1) == '.') |
| 177 t--; | |
| 178 strncpy(url_buf, c, t-c); | |
| 179 url_buf[t-c] = 0; | |
| 180 cnt += g_snprintf(&text[cnt++], 1024, "<A HREF=\"http://%s\">%s</A>", url_buf, url_buf); | |
| 181 cnt--; | |
| 182 c = t; | |
| 183 break; | |
| 184 } | |
| 185 if (!t) | |
| 186 break; | |
| 187 t++; | |
| 188 } | |
| 189 } | |
| 190 } else if (!strncasecmp(c, "ftp://", 6)) { | |
| 191 t = c; | |
| 192 while(1) { | |
| 193 if (badchar(*t)) { | |
| 194 if (*(t-1) == '.') | |
| 195 t--; | |
| 196 strncpy(url_buf, c, t-c); | |
| 197 url_buf[t-c] = 0; | |
| 198 cnt += g_snprintf(&text[cnt++], 1024, "<A HREF=\"%s\">%s</A>", url_buf, url_buf); | |
| 199 cnt--; | |
| 200 c = t; | |
| 201 break; | |
| 202 } | |
| 203 if (!t) | |
| 204 break; | |
| 205 t++; | |
| 206 | |
| 207 } | |
| 924 | 208 } else if (!strncasecmp(c, "ftp.", 4) ) { |
| 209 if (strncasecmp(c, "ftp..", 5)) { | |
| 1 | 210 t = c; |
| 211 while(1) { | |
| 212 if (badchar(*t)) { | |
| 213 if (t-c == 4) { | |
| 214 break; | |
| 215 } | |
| 216 if (*(t-1) == '.') | |
| 217 t--; | |
| 218 strncpy(url_buf, c, t-c); | |
| 219 url_buf[t-c] = 0; | |
| 220 cnt += g_snprintf(&text[cnt++], 1024, "<A HREF=\"ftp://%s\">%s</A>", url_buf, url_buf); | |
| 221 cnt--; | |
| 222 c = t; | |
| 223 break; | |
| 224 } | |
| 225 if (!t) | |
| 226 break; | |
| 227 t++; | |
| 228 } | |
| 924 | 229 } |
| 1 | 230 } else if (!strncasecmp(c, "mailto:", 7)) { |
| 231 t = c; | |
| 232 while(1) { | |
| 233 if (badchar(*t)) { | |
| 234 if (*(t-1) == '.') | |
| 235 t--; | |
| 236 strncpy(url_buf, c, t-c); | |
| 237 url_buf[t-c] = 0; | |
| 238 cnt += g_snprintf(&text[cnt++], 1024, "<A HREF=\"%s\">%s</A>", url_buf, url_buf); | |
| 239 cnt--; | |
| 240 c = t; | |
| 241 break; | |
| 242 } | |
| 243 if (!t) | |
| 244 break; | |
| 245 t++; | |
| 246 | |
| 247 } | |
| 248 } else if (!strncasecmp(c, "@", 1)) { | |
| 249 char *tmp; | |
| 250 int flag; | |
| 251 int len=0; | |
| 924 | 252 char illegal_chars[] = "!@#$%^&*()[]{}/\\<>\":;\0"; |
| 1 | 253 url_buf[0] = 0; |
| 254 | |
| 927 | 255 if (*(c-1) == ' ' || *(c+1) == ' ' || rindex(illegal_chars, *(c+1)) || *(c+1) == 13 || *(c+1) == 10) |
| 1 | 256 flag = 0; |
| 257 else | |
| 258 flag = 1; | |
| 259 | |
| 260 t = c; | |
| 261 while(flag) { | |
| 262 if (badchar(*t)) { | |
| 263 cnt -= (len - 1); | |
| 264 break; | |
| 265 } else { | |
| 266 len++; | |
| 267 tmp = g_malloc(len + 1); | |
| 268 tmp[len] = 0; | |
| 269 tmp[0] = *t; | |
| 270 strncpy(tmp + 1, url_buf, len - 1); | |
| 271 strcpy(url_buf, tmp); | |
| 272 url_buf[len] = 0; | |
| 273 g_free(tmp); | |
| 274 t--; | |
| 275 if (t < cpy) { | |
| 276 cnt = 0; | |
| 277 break; | |
| 278 } | |
| 279 } | |
| 280 } | |
| 281 | |
| 282 | |
| 283 t = c + 1; | |
| 284 | |
| 285 while(flag) { | |
| 286 if (badchar(*t)) { | |
| 287 if (*(t-1) == '.') | |
| 288 t--; | |
| 289 cnt += g_snprintf(&text[cnt++], 1024, "<A HREF=\"mailto:%s\">%s</A>", url_buf, url_buf); | |
| 290 text[cnt]=0; | |
| 291 | |
| 292 | |
| 293 cnt--; | |
| 294 c = t; | |
| 295 | |
| 296 break; | |
| 297 } else { | |
| 298 strncat(url_buf, t, 1); | |
| 299 len++; | |
| 300 url_buf[len] = 0; | |
| 301 } | |
| 302 | |
| 303 t++; | |
| 304 | |
| 305 } | |
| 306 | |
| 307 | |
| 308 } | |
| 309 | |
| 310 if (*c == 0) | |
| 311 break; | |
| 312 | |
| 313 text[cnt++] = *c; | |
| 314 c++; | |
| 315 | |
| 316 } | |
| 317 text[cnt]=0; | |
|
845
647b110f7a1a
[gaim-migrate @ 855]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
831
diff
changeset
|
318 g_free(cpy); |
| 1 | 319 return cnt; |
| 320 } | |
| 321 | |
| 322 | |
|
373
1d29321843b0
[gaim-migrate @ 383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
323 FILE *open_log_file (char *name) |
| 1 | 324 { |
| 79 | 325 char *buf; |
| 326 char *buf2; | |
| 1 | 327 char log_all_file[256]; |
| 328 struct log_conversation *l; | |
| 329 struct stat st; | |
| 330 int flag = 0; | |
| 331 FILE *fd; | |
| 332 int res; | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
333 gchar* gaim_dir; |
| 1 | 334 |
| 335 if (!(general_options & OPT_GEN_LOG_ALL)) { | |
| 336 | |
|
373
1d29321843b0
[gaim-migrate @ 383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
337 l = find_log_info(name); |
| 1 | 338 if (!l) |
| 339 return NULL; | |
| 340 | |
| 341 if (stat(l->filename, &st) < 0) | |
| 342 flag = 1; | |
| 343 | |
| 344 fd = fopen(l->filename, "a"); | |
| 345 | |
| 346 if (flag) { /* is a new file */ | |
| 347 fprintf(fd, "<HTML><HEAD><TITLE>" ); | |
|
373
1d29321843b0
[gaim-migrate @ 383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
348 fprintf(fd, "IM Sessions with %s", name ); |
| 1 | 349 fprintf(fd, "</TITLE></HEAD><BODY BGCOLOR=\"ffffff\">\n" ); |
| 350 } | |
| 351 | |
| 352 return fd; | |
| 353 } | |
| 354 | |
| 79 | 355 buf = g_malloc(BUF_LONG); |
| 356 buf2 = g_malloc(BUF_LONG); | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
357 gaim_dir = gaim_user_dir(); |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
358 |
| 1 | 359 /* Dont log yourself */ |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
360 strncpy(log_all_file, gaim_dir, 256); |
| 1 | 361 |
| 362 stat(log_all_file, &st); | |
| 363 if (!S_ISDIR(st.st_mode)) | |
| 364 unlink(log_all_file); | |
| 365 | |
| 366 fd = fopen(log_all_file, "r"); | |
| 367 | |
| 368 if (!fd) { | |
| 369 res = mkdir(log_all_file, S_IRUSR | S_IWUSR | S_IXUSR); | |
| 370 if (res < 0) { | |
| 371 g_snprintf(buf, BUF_LONG, "Unable to make directory %s for logging", log_all_file); | |
| 372 do_error_dialog(buf, "Error!"); | |
| 373 g_free(buf); | |
| 374 g_free(buf2); | |
| 375 return NULL; | |
| 376 } | |
| 377 } else | |
| 378 fclose(fd); | |
| 379 | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
380 g_snprintf(log_all_file, 256, "%s/logs", gaim_dir); |
| 1 | 381 |
| 382 if (stat(log_all_file, &st) < 0) | |
| 383 flag = 1; | |
| 384 if (!S_ISDIR(st.st_mode)) | |
| 385 unlink(log_all_file); | |
| 386 | |
| 387 fd = fopen(log_all_file, "r"); | |
| 388 if (!fd) { | |
| 389 res = mkdir(log_all_file, S_IRUSR | S_IWUSR | S_IXUSR); | |
| 390 if (res < 0) { | |
| 391 g_snprintf(buf, BUF_LONG, "Unable to make directory %s for logging", log_all_file); | |
| 392 do_error_dialog(buf, "Error!"); | |
| 393 g_free(buf); | |
| 394 g_free(buf2); | |
| 395 return NULL; | |
| 396 } | |
| 397 } else | |
| 398 fclose(fd); | |
| 399 | |
| 400 | |
| 401 | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
402 g_snprintf(log_all_file, 256, "%s/logs/%s.log", gaim_dir, normalize(name)); |
| 1 | 403 if (stat(log_all_file, &st) < 0) |
| 404 flag = 1; | |
| 405 | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1238
diff
changeset
|
406 debug_printf("Logging to: \"%s\"\n", log_all_file); |
| 1 | 407 |
| 408 fd = fopen(log_all_file, "a"); | |
| 409 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
927
diff
changeset
|
410 if (fd && flag) { /* is a new file */ |
| 1 | 411 fprintf(fd, "<HTML><HEAD><TITLE>" ); |
|
373
1d29321843b0
[gaim-migrate @ 383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
412 fprintf(fd, "IM Sessions with %s", name ); |
| 1 | 413 fprintf(fd, "</TITLE></HEAD><BODY BGCOLOR=\"ffffff\">\n" ); |
| 414 } | |
| 25 | 415 |
| 416 g_free(buf); | |
| 417 g_free(buf2); | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
418 g_free(gaim_dir); |
| 1 | 419 return fd; |
| 420 } | |
| 421 | |
| 422 | |
|
254
fa67d29b53d5
[gaim-migrate @ 264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
423 /* we only need this for TOC, because messages must be escaped */ |
| 1 | 424 int escape_message(char *msg) |
| 425 { | |
| 426 char *c, *cpy; | |
| 427 int cnt=0; | |
| 428 /* Assumes you have a buffer able to cary at least BUF_LEN * 2 bytes */ | |
| 429 if (strlen(msg) > BUF_LEN) { | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1238
diff
changeset
|
430 debug_printf("Warning: truncating message to 2048 bytes\n"); |
| 1 | 431 msg[2047]='\0'; |
| 432 } | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
433 |
| 1 | 434 cpy = g_strdup(msg); |
| 435 c = cpy; | |
| 436 while(*c) { | |
| 437 switch(*c) { | |
| 438 case '$': | |
| 439 case '[': | |
| 440 case ']': | |
| 441 case '(': | |
| 442 case ')': | |
| 443 case '#': | |
| 444 msg[cnt++]='\\'; | |
| 445 /* Fall through */ | |
| 446 default: | |
| 447 msg[cnt++]=*c; | |
| 448 } | |
| 449 c++; | |
| 450 } | |
| 451 msg[cnt]='\0'; | |
| 452 g_free(cpy); | |
| 453 return cnt; | |
| 454 } | |
| 455 | |
|
254
fa67d29b53d5
[gaim-migrate @ 264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
456 /* we don't need this for oscar either */ |
| 1 | 457 int escape_text(char *msg) |
| 458 { | |
| 459 char *c, *cpy; | |
| 460 int cnt=0; | |
| 79 | 461 /* Assumes you have a buffer able to cary at least BUF_LEN * 4 bytes */ |
| 1 | 462 if (strlen(msg) > BUF_LEN) { |
| 463 fprintf(stderr, "Warning: truncating message to 2048 bytes\n"); | |
| 464 msg[2047]='\0'; | |
| 465 } | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
466 |
| 1 | 467 cpy = g_strdup(msg); |
| 468 c = cpy; | |
| 469 while(*c) { | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
927
diff
changeset
|
470 switch(*c) { |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
927
diff
changeset
|
471 case '\n': |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
927
diff
changeset
|
472 msg[cnt++] = '<'; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
927
diff
changeset
|
473 msg[cnt++] = 'B'; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
927
diff
changeset
|
474 msg[cnt++] = 'R'; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
927
diff
changeset
|
475 msg[cnt++] = '>'; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
927
diff
changeset
|
476 break; |
| 1 | 477 case '{': |
| 478 case '}': | |
| 479 case '\\': | |
| 480 case '"': | |
| 481 msg[cnt++]='\\'; | |
| 482 /* Fall through */ | |
| 483 default: | |
| 484 msg[cnt++]=*c; | |
| 485 } | |
| 486 c++; | |
| 487 } | |
| 488 msg[cnt]='\0'; | |
| 489 g_free(cpy); | |
| 490 return cnt; | |
| 491 } | |
| 492 | |
| 493 char * escape_text2(char *msg) | |
| 494 { | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
495 char *c, *cpy; |
| 1 | 496 char *woo; |
| 497 int cnt=0; | |
| 498 /* Assumes you have a buffer able to cary at least BUF_LEN * 2 bytes */ | |
| 499 if (strlen(msg) > BUF_LEN) { | |
| 500 fprintf(stderr, "Warning: truncating message to 2048 bytes\n"); | |
| 501 msg[2047]='\0'; | |
| 502 } | |
| 503 | |
| 79 | 504 woo = malloc(strlen(msg) * 2); |
| 1 | 505 cpy = g_strdup(msg); |
| 506 c = cpy; | |
| 507 while(*c) { | |
| 508 switch(*c) { | |
| 509 case '\n': | |
| 510 woo[cnt++] = '<'; | |
| 511 woo[cnt++] = 'B'; | |
| 512 woo[cnt++] = 'R'; | |
| 513 woo[cnt++] = '>'; | |
| 514 break; | |
| 515 case '{': | |
| 516 case '}': | |
| 517 case '\\': | |
| 518 case '"': | |
| 519 woo[cnt++]='\\'; | |
| 520 /* Fall through */ | |
| 521 default: | |
| 522 woo[cnt++]=*c; | |
| 523 } | |
| 524 c++; | |
| 525 } | |
| 526 woo[cnt]='\0'; | |
| 26 | 527 |
| 528 g_free (cpy); | |
| 1 | 529 return woo; |
| 530 } | |
| 531 | |
| 532 | |
| 533 char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" | |
| 534 "0123456789+/"; | |
| 535 | |
| 536 | |
| 537 char *tobase64(char *text) | |
| 538 { | |
| 539 char *out = NULL; | |
| 540 char *c; | |
| 541 unsigned int tmp = 0; | |
| 542 int len = 0, n = 0; | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
543 |
| 1 | 544 c = text; |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
545 |
| 1 | 546 while(c) { |
| 547 tmp = tmp << 8; | |
| 548 tmp += *c; | |
| 549 n++; | |
| 550 | |
| 551 if (n == 3) { | |
| 552 out = g_realloc(out, len+4); | |
| 553 out[len] = alphabet[(tmp >> 18) & 0x3f]; | |
| 554 out[len+1] = alphabet[(tmp >> 12) & 0x3f]; | |
| 555 out[len+2] = alphabet[(tmp >> 6) & 0x3f]; | |
| 556 out[len+3] = alphabet[tmp & 0x3f]; | |
| 557 len += 4; | |
| 558 tmp = 0; | |
| 559 n = 0; | |
| 560 } | |
| 561 c++; | |
| 562 } | |
| 563 switch(n) { | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
564 |
| 1 | 565 case 2: |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
566 out = g_realloc(out, len+5); |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
567 out[len] = alphabet[(tmp >> 12) & 0x3f]; |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
568 out[len+1] = alphabet[(tmp >> 6) & 0x3f]; |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
569 out[len+2] = alphabet[tmp & 0x3f]; |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
570 out[len+3] = '='; |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
571 out[len+4] = 0; |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
572 break; |
| 1 | 573 case 1: |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
574 out = g_realloc(out, len+4); |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
575 out[len] = alphabet[(tmp >> 6) & 0x3f]; |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
576 out[len+1] = alphabet[tmp & 0x3f]; |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
577 out[len+2] = '='; |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
578 out[len+3] = 0; |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
579 break; |
| 1 | 580 case 0: |
| 581 out = g_realloc(out, len+2); | |
| 582 out[len] = '='; | |
| 583 out[len+1] = 0; | |
| 584 break; | |
| 585 } | |
| 586 return out; | |
| 587 } | |
| 588 | |
| 589 | |
| 590 char *frombase64(char *text) | |
| 591 { | |
| 592 char *out = NULL; | |
| 593 char tmp = 0; | |
| 594 char *c; | |
| 595 gint32 tmp2 = 0; | |
| 596 int len = 0, n = 0; | |
| 597 | |
| 598 c = text; | |
| 599 | |
| 600 while(*c) { | |
| 601 if (*c >= 'A' && *c <= 'Z') { | |
| 602 tmp = *c - 'A'; | |
| 603 } else if (*c >= 'a' && *c <= 'z') { | |
| 604 tmp = 26 + (*c - 'a'); | |
| 605 } else if (*c >= '0' && *c <= 57) { | |
| 606 tmp = 52 + (*c - '0'); | |
| 607 } else if (*c == '+') { | |
| 608 tmp = 62; | |
| 609 } else if (*c == '/') { | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
610 tmp = 63; |
| 1 | 611 } else if (*c == '=') { |
| 612 if (n == 3) { | |
| 613 out = g_realloc(out, len + 2); | |
| 614 out[len] = (char)(tmp2 >> 10) & 0xff; | |
| 615 len++; | |
| 616 out[len] = (char)(tmp2 >> 2) & 0xff; | |
| 617 len++; | |
| 618 } else if (n == 2) { | |
| 619 out = g_realloc(out, len + 1); | |
| 620 out[len] = (char)(tmp2 >> 4) & 0xff; | |
| 621 len++; | |
| 622 } | |
| 623 break; | |
| 624 } | |
| 625 tmp2 = ((tmp2 << 6) | (tmp & 0xff)); | |
| 626 n++; | |
| 627 if (n == 4) { | |
| 628 out = g_realloc(out, len + 3); | |
| 629 out[len] = (char)((tmp2 >> 16) & 0xff); | |
| 630 len++; | |
| 631 out[len] = (char)((tmp2 >> 8) & 0xff); | |
| 632 len++; | |
| 633 out[len] = (char)(tmp2 & 0xff); | |
| 634 len++; | |
| 635 tmp2 = 0; | |
| 636 n = 0; | |
| 637 } | |
| 638 c++; | |
| 639 } | |
| 640 | |
|
194
d7690984c0f1
[gaim-migrate @ 204]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
180
diff
changeset
|
641 out = g_realloc(out, len+1); |
| 1 | 642 out[len] = 0; |
| 643 | |
| 644 return out; | |
| 645 } | |
| 646 | |
| 647 | |
| 648 char *normalize(const char *s) | |
| 649 { | |
| 650 static char buf[BUF_LEN]; | |
| 651 char *t, *u; | |
| 652 int x=0; | |
| 653 | |
| 79 | 654 g_return_val_if_fail ((s != NULL), NULL); |
| 26 | 655 |
| 656 u = t = g_strdup(s); | |
| 1 | 657 |
| 658 strcpy(t, s); | |
| 659 g_strdown(t); | |
| 660 | |
| 26 | 661 while(*t && (x < BUF_LEN - 1)) { |
| 1 | 662 if (*t != ' ') { |
| 663 buf[x] = *t; | |
| 664 x++; | |
| 665 } | |
| 666 t++; | |
| 667 } | |
| 668 buf[x]='\0'; | |
| 669 g_free(u); | |
| 670 return buf; | |
| 671 } | |
| 672 | |
| 673 char *date() | |
| 674 { | |
| 675 static char date[80]; | |
| 676 time_t tme; | |
| 677 time(&tme); | |
| 678 strftime(date, sizeof(date), "%H:%M:%S", localtime(&tme)); | |
| 679 return date; | |
| 680 } | |
| 681 | |
| 682 | |
| 683 gint clean_pid(void *dummy) | |
| 684 { | |
| 685 int status; | |
| 686 pid_t pid; | |
| 687 | |
| 688 pid = waitpid(-1, &status, WNOHANG); | |
| 689 | |
| 690 if (pid == 0) | |
| 691 return TRUE; | |
| 692 | |
| 693 return FALSE; | |
| 694 } | |
| 695 | |
| 696 void aol_icon(GdkWindow *w) | |
| 697 { | |
| 698 #ifndef _WIN32 | |
| 699 if (icon_pm == NULL) { | |
| 700 icon_pm = gdk_pixmap_create_from_xpm_d(w, &icon_bm, | |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
701 NULL, (gchar **)aimicon_xpm); |
| 1 | 702 } |
| 703 gdk_window_set_icon(w, NULL, icon_pm, icon_bm); | |
| 10 | 704 if (mainwindow) gdk_window_set_group(w, mainwindow->window); |
| 1 | 705 #endif |
| 706 } | |
| 707 | |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
708 struct aim_user *find_user(const char *name, int protocol) |
| 1 | 709 { |
| 710 char *who = g_strdup(normalize(name)); | |
| 711 GList *usr = aim_users; | |
| 712 struct aim_user *u; | |
| 713 | |
| 714 while(usr) { | |
| 715 u = (struct aim_user *)usr->data; | |
| 716 if (!strcmp(normalize(u->username), who)) { | |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
717 if (protocol != -1) { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
718 if (u->protocol == protocol) { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
719 g_free(who); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
720 return u; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
721 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
722 } else { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
723 g_free(who); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
724 return u; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
725 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
726 |
| 1 | 727 } |
| 728 usr = usr->next; | |
| 729 } | |
| 730 g_free(who); | |
| 731 return NULL; | |
| 732 } | |
| 180 | 733 |
| 206 | 734 |
|
592
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
735 /* Look for %n, %d, or %t in msg, and replace with the sender's name, date, |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
736 or time */ |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
737 char *away_subs(char *msg, char *name) |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
738 { |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
739 char *c; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
740 static char cpy[BUF_LONG]; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
741 int cnt=0; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
742 time_t t = time(0); |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
743 struct tm *tme = localtime(&t); |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
744 char tmp[20]; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
745 |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
746 cpy[0] = '\0'; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
747 c = msg; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
748 while(*c) { |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
749 switch(*c) { |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
750 case '%': |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
751 if (*(c+1)) { |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
752 switch (*(c+1)) { |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
753 case 'n': |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
754 // append name |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
755 strcpy (cpy+cnt, name); |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
756 cnt += strlen(name); |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
757 c++; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
758 break; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
759 case 'd': |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
760 // append date |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
761 strftime (tmp, 20, "%D", tme); |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
762 strcpy (cpy+cnt, tmp); |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
763 cnt += strlen(tmp); |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
764 c++; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
765 break; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
766 case 't': |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
767 // append time |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
768 strftime (tmp, 20, "%r", tme); |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
769 strcpy (cpy+cnt, tmp); |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
770 cnt += strlen(tmp); |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
771 c++; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
772 break; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
773 default: |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
774 cpy[cnt++]=*c; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
775 } |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
776 } |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
777 break; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
778 default: |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
779 cpy[cnt++]=*c; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
780 } |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
781 c++; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
782 } |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
783 cpy[cnt]='\0'; |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
784 return(cpy); |
|
7c75d69a1129
[gaim-migrate @ 602]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
470
diff
changeset
|
785 } |
|
603
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
786 |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
787 GtkWidget *picture_button(GtkWidget *window, char *text, char **xpm) |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
788 { |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
789 GtkWidget *button; |
| 619 | 790 GtkWidget *button_box, *button_box_2, *button_box_3; |
|
603
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
791 GtkWidget *label; |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
792 GdkBitmap *mask; |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
793 GdkPixmap *pm; |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
794 GtkWidget *pixmap; |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
795 |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
796 button = gtk_button_new(); |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
797 if (display_options & OPT_DISP_COOL_LOOK) |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
798 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
799 |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
800 button_box = gtk_hbox_new(FALSE, 5); |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
801 gtk_container_add(GTK_CONTAINER(button), button_box); |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
802 |
| 619 | 803 button_box_2 = gtk_hbox_new(FALSE, 0); |
| 804 button_box_3 = gtk_hbox_new(FALSE, 0); | |
| 805 gtk_box_pack_start(GTK_BOX(button_box), button_box_2, TRUE, TRUE, 0); | |
| 806 gtk_box_pack_start(GTK_BOX(button_box), button_box_3, TRUE, TRUE, 0); | |
|
603
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
807 pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm); |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
808 pixmap = gtk_pixmap_new(pm, mask); |
| 619 | 809 gtk_box_pack_end(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0); |
|
603
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
810 |
| 623 | 811 if (text) |
| 812 { | |
| 813 label = gtk_label_new(text); | |
| 814 gtk_box_pack_start(GTK_BOX(button_box_3), label, FALSE, FALSE, 2); | |
|
967
17ff662183b2
[gaim-migrate @ 977]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
963
diff
changeset
|
815 gtk_widget_show(label); |
| 623 | 816 } |
| 619 | 817 |
| 818 gtk_widget_show(pixmap); | |
| 819 gtk_widget_show(button_box_2); | |
| 820 gtk_widget_show(button_box_3); | |
| 821 gtk_widget_show(button_box); | |
| 651 | 822 |
| 726 | 823 /* this causes clipping on lots of buttons with long text */ |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
824 /* gtk_widget_set_usize(button, 75, 30);*/ |
| 619 | 825 gtk_widget_show(button); |
|
644
b3900e312d8e
[gaim-migrate @ 654]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
623
diff
changeset
|
826 gdk_pixmap_unref(pm); |
|
804
17def2bb9720
[gaim-migrate @ 814]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
770
diff
changeset
|
827 gdk_bitmap_unref(mask); |
| 619 | 828 |
|
603
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
829 return button; |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
592
diff
changeset
|
830 } |
| 623 | 831 |
|
1152
201ec77f3a60
[gaim-migrate @ 1162]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
832 static GtkTooltips *button_tips = NULL; |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
833 GtkWidget *picture_button2(GtkWidget *window, char *text, char **xpm, short dispstyle) |
| 623 | 834 { |
| 835 GtkWidget *button; | |
| 836 GtkWidget *button_box, *button_box_2; | |
| 837 GdkBitmap *mask; | |
| 838 GdkPixmap *pm; | |
| 839 GtkWidget *pixmap; | |
| 754 | 840 GtkWidget *label; |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
841 |
|
1152
201ec77f3a60
[gaim-migrate @ 1162]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
842 if (!button_tips) button_tips = gtk_tooltips_new(); |
| 623 | 843 button = gtk_button_new(); |
| 844 if (display_options & OPT_DISP_COOL_LOOK) | |
| 845 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 846 | |
| 651 | 847 button_box = gtk_hbox_new(FALSE, 0); |
| 623 | 848 gtk_container_add(GTK_CONTAINER(button), button_box); |
| 849 | |
| 754 | 850 button_box_2 = gtk_vbox_new(FALSE, 0); |
| 623 | 851 |
| 852 gtk_box_pack_start(GTK_BOX(button_box), button_box_2, TRUE, TRUE, 0); | |
|
967
17ff662183b2
[gaim-migrate @ 977]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
963
diff
changeset
|
853 gtk_widget_show(button_box_2); |
|
17ff662183b2
[gaim-migrate @ 977]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
963
diff
changeset
|
854 gtk_widget_show(button_box); |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
855 if (dispstyle == 2 || dispstyle == 0) { |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
856 pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm); |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
857 pixmap = gtk_pixmap_new(pm, mask); |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
858 gtk_box_pack_start(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0); |
| 754 | 859 |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
860 gtk_widget_show(pixmap); |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
861 |
|
967
17ff662183b2
[gaim-migrate @ 977]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
963
diff
changeset
|
862 gdk_pixmap_unref(pm); |
|
17ff662183b2
[gaim-migrate @ 977]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
963
diff
changeset
|
863 gdk_bitmap_unref(mask); |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
864 } |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
865 |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
866 if (dispstyle == 2 || dispstyle == 1) |
| 754 | 867 { |
| 868 label = gtk_label_new(text); | |
| 869 gtk_widget_show(label); | |
| 870 gtk_box_pack_end(GTK_BOX(button_box_2), label, FALSE, FALSE, 0); | |
| 871 } | |
| 623 | 872 |
|
1152
201ec77f3a60
[gaim-migrate @ 1162]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
873 gtk_tooltips_set_tip(button_tips, button, text, "Gaim"); |
| 623 | 874 gtk_widget_show(button); |
| 875 return button; | |
| 876 } | |
| 877 | |
|
684
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
878 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
879 /* remove leading whitespace from a string */ |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
880 char *remove_spaces (char *str) |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
881 { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
882 int i; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
883 char *new; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
884 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
885 if (str == NULL) |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
886 return NULL; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
887 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
888 i = strspn (str, " \t\n\r\f"); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
889 new = &str[i]; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
890 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
891 return new; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
892 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
893 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
894 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
895 /* translate an AIM 3 buddylist (*.lst) to a GAIM buddylist */ |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
896 void translate_lst (FILE *src_fp, char *dest) |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
897 { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
898 char line[BUF_LEN], *line2; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
899 char *name; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
900 int i; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
901 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
902 sprintf (dest, "m 1\n"); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
903 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
904 while (fgets (line, BUF_LEN, src_fp)) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
905 line2 = remove_spaces (line); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
906 if (strstr (line2, "group") == line2) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
907 name = strpbrk (line2, " \t\n\r\f") + 1; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
908 strcat (dest, "g "); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
909 for (i = 0; i < strcspn (name, "\n\r"); i++) |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
910 if (name[i] != '\"') |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
911 strncat (dest, &name[i], 1); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
912 strcat (dest, "\n"); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
913 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
914 if (strstr (line2, "buddy") == line2) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
915 name = strpbrk (line2, " \t\n\r\f") + 1; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
916 strcat (dest, "b "); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
917 for (i = 0; i < strcspn (name, "\n\r"); i++) |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
918 if (name[i] != '\"') |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
919 strncat (dest, &name[i], 1); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
920 strcat (dest, "\n"); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
921 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
922 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
923 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
924 return; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
925 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
926 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
927 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
928 /* translate an AIM 4 buddylist (*.blt) to GAIM format */ |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
929 void translate_blt (FILE *src_fp, char *dest) |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
930 { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
931 int i; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
932 char line[BUF_LEN]; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
933 char *buddy; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
934 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
935 sprintf (dest, "m 1\n"); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
936 |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
937 while (strstr (fgets (line, BUF_LEN, src_fp), "Buddy") == NULL) ; |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
938 while (strstr (fgets (line, BUF_LEN, src_fp), "list") == NULL) ; |
|
684
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
939 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
940 while (1) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
941 fgets (line, BUF_LEN, src_fp); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
942 if (strchr (line, '}') != NULL) |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
943 break; |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
944 |
|
684
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
945 /* Syntax starting with "<group> {" */ |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
946 if (strchr (line, '{') != NULL) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
947 strcat (dest, "g "); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
948 buddy = remove_spaces (strtok (line, "{")); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
949 for (i = 0; i < strlen(buddy); i++) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
950 if (buddy[i] != '\"') |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
951 strncat (dest, &buddy[i], 1); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
952 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
953 strcat (dest, "\n"); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
954 while (strchr (fgets (line, BUF_LEN, src_fp), '}') == NULL) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
955 buddy = remove_spaces (line); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
956 strcat (dest, "b "); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
957 if (strchr (buddy, '\"') != NULL) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
958 strncat (dest, &buddy[1], strlen(buddy)-3); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
959 strcat (dest, "\n"); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
960 } else |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
961 strcat (dest, buddy); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
962 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
963 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
964 /* Syntax "group buddy buddy ..." */ |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
965 else { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
966 buddy = remove_spaces (strtok (line, " \n")); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
967 strcat (dest, "g "); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
968 if (strchr (buddy, '\"') != NULL) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
969 strcat (dest, &buddy[1]); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
970 strcat (dest, " "); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
971 buddy = remove_spaces (strtok (NULL, " \n")); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
972 while (strchr (buddy, '\"') == NULL) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
973 strcat (dest, buddy); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
974 strcat (dest, " "); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
975 buddy = remove_spaces (strtok (NULL, " \n")); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
976 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
977 strncat (dest, buddy, strlen(buddy)-1); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
978 } else { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
979 strcat (dest, buddy); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
980 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
981 strcat (dest, "\n"); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
982 while ((buddy = remove_spaces (strtok (NULL, " \n"))) != NULL) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
983 strcat (dest, "b "); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
984 if (strchr (buddy, '\"') != NULL) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
985 strcat (dest, &buddy[1]); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
986 strcat (dest, " "); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
987 buddy = remove_spaces (strtok (NULL, " \n")); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
988 while (strchr (buddy, '\"') == NULL) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
989 strcat (dest, buddy); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
990 strcat (dest, " "); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
991 buddy = remove_spaces (strtok (NULL, " \n")); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
992 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
993 strncat (dest, buddy, strlen(buddy)-1); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
994 } else { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
995 strcat (dest, buddy); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
996 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
997 strcat (dest, "\n"); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
998 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
999 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
1000 } |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
1001 |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
1002 return; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
651
diff
changeset
|
1003 } |
| 764 | 1004 |
|
765
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
1005 char *stylize(gchar *text, int length) |
| 764 | 1006 { |
| 1007 gchar *buf; | |
|
765
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
1008 char tmp[length]; |
| 764 | 1009 |
| 1010 buf = g_malloc(length); | |
|
765
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
1011 g_snprintf(buf, length, "%s", text); |
| 764 | 1012 |
|
831
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1013 if (font_options & OPT_FONT_BOLD) { |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1014 g_snprintf(tmp, length, "<B>%s</B>", buf); |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1015 strcpy(buf, tmp); |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1016 } |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1017 |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1018 if (font_options & OPT_FONT_ITALIC) { |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1019 g_snprintf(tmp, length, "<I>%s</I>", buf); |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1020 strcpy(buf, tmp); |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1021 } |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1022 |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1023 if (font_options & OPT_FONT_UNDERLINE) { |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1024 g_snprintf(tmp, length, "<U>%s</U>", buf); |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1025 strcpy(buf, tmp); |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1026 } |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1027 |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1028 if (font_options & OPT_FONT_STRIKE) { |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1029 g_snprintf(tmp, length, "<S>%s</S>", buf); |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1030 strcpy(buf, tmp); |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1031 } |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1032 |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1033 if (font_options & OPT_FONT_FACE) { |
|
765
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
1034 g_snprintf(tmp, length, "<FONT FACE=\"%s\">%s</FONT>", fontface, buf); |
|
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
1035 strcpy(buf, tmp); |
| 764 | 1036 } |
| 1037 | |
|
831
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1038 if (font_options & OPT_FONT_FGCOL) { |
|
765
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
1039 g_snprintf(tmp, length, "<FONT COLOR=\"#%02X%02X%02X\">%s</FONT>", fgcolor.red, fgcolor.green, fgcolor.blue, buf); |
|
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
1040 strcpy(buf, tmp); |
| 764 | 1041 } |
| 1042 | |
|
831
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
1043 if (font_options & OPT_FONT_BGCOL) { |
|
765
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
1044 g_snprintf(tmp, length, "<BODY BGCOLOR=\"#%02X%02X%02X\">%s</BODY>", bgcolor.red, bgcolor.green, bgcolor.blue, buf); |
|
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
1045 strcpy(buf, tmp); |
| 764 | 1046 } |
| 1047 | |
|
765
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
1048 return buf; |
|
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
1049 } |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1050 |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1051 int set_dispstyle (int chat) |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1052 { |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1053 int dispstyle; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1054 |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1055 if (chat) { |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1056 switch (display_options & (OPT_DISP_CHAT_BUTTON_TEXT | |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1057 OPT_DISP_CHAT_BUTTON_XPM)) { |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1058 case OPT_DISP_CHAT_BUTTON_TEXT: |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1059 dispstyle = 1; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1060 break; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1061 case OPT_DISP_CHAT_BUTTON_XPM: |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1062 dispstyle = 0; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1063 break; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1064 default: /* both or neither */ |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1065 dispstyle = 2; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1066 break; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1067 } |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1068 } else { |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1069 switch (display_options & (OPT_DISP_CONV_BUTTON_TEXT | |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1070 OPT_DISP_CONV_BUTTON_XPM)) { |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1071 case OPT_DISP_CONV_BUTTON_TEXT: |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1072 dispstyle = 1; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1073 break; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1074 case OPT_DISP_CONV_BUTTON_XPM: |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1075 dispstyle = 0; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1076 break; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1077 default: /* both or neither */ |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1078 dispstyle = 2; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1079 break; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1080 } |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1081 } |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1082 return dispstyle; |
|
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1083 } |
|
1009
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1084 |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1085 |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1086 void show_usage (int mode, char *name) |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1087 { |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1088 switch (mode) { |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1089 case 0: /* full help text */ |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1090 printf ("Usage: %s [OPTION]...\n\n" |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1091 " -a, --acct display account editor window\n" |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1092 " -l, --login[=NAME] automatically login (optional argument NAME specifies\n" |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1093 " account(s) to use)\n" |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1094 " -u, --user=NAME use account NAME\n" |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1095 " -v, --version display version information window\n" |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1096 " -h, --help display this help and exit\n", name); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1097 break; |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1098 case 1: /* short message */ |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1099 printf ("Try `%s -h' for more information.\n", name); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1100 break; |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1101 } |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1102 } |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1103 |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1104 |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1105 void set_first_user (char *name) |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1106 { |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1107 struct aim_user *u; |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1108 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
1109 u = find_user (name, -1); |
|
1009
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1110 |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1111 if (!u) { /* new user */ |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1112 u = g_new0(struct aim_user, 1); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1113 g_snprintf(u->username, sizeof(u->username), "%s", name); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1114 u->protocol = 0 /* PROTO_TOC */; |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1115 aim_users = g_list_prepend (aim_users, u); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1116 } else { /* user already exists */ |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1117 aim_users = g_list_remove (aim_users, u); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1118 aim_users = g_list_prepend (aim_users, u); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1119 } |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1120 save_prefs(); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1121 } |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1122 |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1123 |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1124 /* <name> is a comma-separated list of names, or NULL |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1125 if NULL and there is at least one user defined in .gaimrc, try to login. |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1126 if not NULL, parse <name> into separate strings, look up each one in |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1127 .gaimrc and, if it's there, try to login. |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1128 returns: 0 if successful |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1129 -1 if no user was found that had a saved password |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1130 */ |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1131 int do_auto_login (char *name) |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1132 { |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1133 struct aim_user *u; |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1134 char **names, **n, *first = NULL; |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1135 int retval = -1; |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1136 |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1137 if (name != NULL) { /* list of names given */ |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1138 names = g_strsplit (name, ",", 32); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1139 for (n = names; *n != NULL; n++) { |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1140 printf ("user %s...\n", *n); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
1141 u = find_user(*n, -1); |
|
1009
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1142 if (u) { /* found a user */ |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1143 if (first == NULL) |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1144 first = g_strdup (*n); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1145 if (u->options & OPT_USR_REM_PASS) { |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1146 printf ("got user %s\n", *n); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1147 retval = 0; |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1148 serv_login(u); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1149 } |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1150 } |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1151 } |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1152 /* make the first user listed the default */ |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1153 if (first != NULL) |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1154 set_first_user (first); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1155 g_strfreev (names); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1156 g_free (first); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1157 } else { /* no name given, use default */ |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1158 u = (struct aim_user *)aim_users->data; |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1159 if (u->options & OPT_USR_REM_PASS) { |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1160 retval = 0; |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1161 serv_login(u); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1162 } |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1163 } |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1164 |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1165 return retval; |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1166 } |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1167 |
|
1035
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1168 |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1169 int file_is_dir (char *path, GtkWidget *w) |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1170 { |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1171 struct stat st; |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1172 char *name; |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1173 |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1174 if (stat(path, &st) == 0 && S_ISDIR(st.st_mode)) { |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1175 /* append a / if needed */ |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1176 if (path[strlen(path)-1] != '/') |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1177 name = g_strconcat(path,"/",NULL); |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1178 else |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1179 name = g_strdup(path); |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1180 gtk_file_selection_set_filename(GTK_FILE_SELECTION(w), name); |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1181 g_free(name); |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1182 return 1; |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1183 } |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1184 |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1185 return 0; |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1186 } |
|
1100
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1187 |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1188 GSList *message_split(char *message, int limit) { |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1189 static GSList *ret = NULL; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1190 int lastgood = 0, curgood = 0, curpos = 0, len = strlen(message); |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1191 gboolean intag = FALSE; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1192 |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1193 if (ret) { |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1194 GSList *tmp = ret; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1195 while (tmp) { |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1196 g_free(tmp->data); |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1197 tmp = g_slist_remove(tmp, tmp->data); |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1198 } |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1199 ret = NULL; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1200 } |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1201 |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1202 while (TRUE) { |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1203 if (lastgood >= len) |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1204 return ret; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1205 |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1206 if (len - lastgood < limit) { |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1207 ret = g_slist_append(ret, g_strdup(&message[lastgood])); |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1208 return ret; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1209 } |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1210 |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1211 curgood = curpos = 0; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1212 intag = FALSE; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1213 while (curpos <= limit) { |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1214 if (isspace(message[curpos + lastgood]) && !intag) |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1215 curgood = curpos; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1216 if (message[curpos + lastgood] == '<') |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1217 intag = TRUE; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1218 if (message[curpos + lastgood] == '>') |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1219 intag = FALSE; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1220 curpos++; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1221 } |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1222 |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1223 if (curgood) { |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1224 ret = g_slist_append(ret, g_strndup(&message[lastgood], curgood)); |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1225 if (isspace(message[curgood + lastgood])) |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1226 lastgood += curgood + 1; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1227 else |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1228 lastgood += curgood; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1229 } else { |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1230 /* whoops, guess we have to fudge it here */ |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1231 ret = g_slist_append(ret, g_strndup(&message[lastgood], limit)); |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1232 lastgood += limit; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1233 } |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1234 } |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1235 } |
|
1191
4fd0d35826fe
[gaim-migrate @ 1201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
1236 |
|
1238
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
1237 /* returns a string of the form ~/.gaim, where ~ is replaced by the user's home |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
1238 * dir. this string should be freed after it's used. Note that there is no |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
1239 * trailing slash after .gaim. */ |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
1240 gchar* gaim_user_dir() { |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
1241 return g_strjoin(G_DIR_SEPARATOR_S, g_get_home_dir(), ".gaim", NULL); |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
1242 } |
|
78c4f497db2b
[gaim-migrate @ 1248]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1202
diff
changeset
|
1243 |
|
1191
4fd0d35826fe
[gaim-migrate @ 1201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
1244 void strncpy_withhtml(gchar *dest, const gchar *src, size_t destsize) |
|
4fd0d35826fe
[gaim-migrate @ 1201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
1245 { |
| 1202 | 1246 gchar *end = dest + destsize; |
|
1191
4fd0d35826fe
[gaim-migrate @ 1201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
1247 |
| 1202 | 1248 while (dest < end) { |
| 1249 if (*src == '\n' && dest < end - 4) { | |
| 1250 strcpy(dest, "<BR>"); | |
| 1251 src++; dest+=4; | |
|
1191
4fd0d35826fe
[gaim-migrate @ 1201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
1252 } |
| 1202 | 1253 else *dest++ = *src++; |
|
1191
4fd0d35826fe
[gaim-migrate @ 1201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
1254 } |
|
4fd0d35826fe
[gaim-migrate @ 1201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
1255 } |
