Mon, 30 Sep 2002 01:05:18 +0000
[gaim-migrate @ 3670]
Phase II. No longer do you have to worry about protocol plugins. When
Gaim probes plugins on load, it will detect protocol plugins and add them
to the list of available protocols. When you try to log an account on with
one of them, Gaim will automatically load the plugin--when no more accounts
need the protocol--Gaim will automatically unload it. Protocol plugins are
no longer available in the plugins ui, and no protocols are compiled statically
by default.
| 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
6f7d28b0f98d
[gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
278
diff
changeset
|
22 | #ifdef HAVE_CONFIG_H |
|
2090
bab8b7e309db
[gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
23 | #include <config.h> |
|
349
6f7d28b0f98d
[gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
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> | |
|
210
4226cbf12850
[gaim-migrate @ 220]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
209
diff
changeset
|
34 | #include <ctype.h> |
| 3478 | 35 | #ifdef HAVE_ICONV |
| 3361 | 36 | #include <iconv.h> |
| 3478 | 37 | #endif |
|
1376
06cf71686faf
[gaim-migrate @ 1386]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1293
diff
changeset
|
38 | #include <math.h> |
| 1 | 39 | #include "gaim.h" |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
40 | #include "prpl.h" |
|
3105
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
41 | #include "gtkspell.h" |
| 1 | 42 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
43 | char *full_date() |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
44 | { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
45 | char *date; |
| 70 | 46 | time_t tme; |
| 47 | ||
| 48 | time(&tme); | |
| 49 | date = ctime(&tme); | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
50 | date[strlen(date) - 1] = '\0'; |
| 70 | 51 | return date; |
| 52 | } | |
| 53 | ||
| 1 | 54 | gint badchar(char c) |
| 55 | { | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
56 | switch (c) { |
| 970 | 57 | case ' ': |
| 58 | case ',': | |
| 59 | case '(': | |
| 60 | case ')': | |
| 61 | case '\0': | |
|
976
553a33f54fe2
[gaim-migrate @ 986]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
970
diff
changeset
|
62 | case '\n': |
| 970 | 63 | case '<': |
| 64 | case '>': | |
|
1706
fb78a15b2872
[gaim-migrate @ 1716]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1622
diff
changeset
|
65 | case '"': |
|
413
5b6c63b5ba38
[gaim-migrate @ 423]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
373
diff
changeset
|
66 | return 1; |
| 970 | 67 | default: |
| 68 | return 0; | |
| 69 | } | |
| 1 | 70 | } |
| 71 | ||
| 72 | ||
|
1376
06cf71686faf
[gaim-migrate @ 1386]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1293
diff
changeset
|
73 | gchar *sec_to_text(guint sec) |
| 1 | 74 | { |
|
1826
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
75 | int daze, hrs, min; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
76 | char *ret = g_malloc(256); |
| 1 | 77 | |
|
1826
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
78 | daze = sec / (60 * 60 * 24); |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
79 | hrs = (sec % (60 * 60 * 24)) / (60 * 60); |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
80 | min = (sec % (60 * 60)) / 60; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
81 | sec = min % 60; |
| 1 | 82 | |
|
1826
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
83 | if (daze) { |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
84 | if (hrs || min) { |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
85 | if (hrs) { |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
86 | if (min) { |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
87 | g_snprintf(ret, 256, |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
88 | "%d day%s, %d hour%s, %d minute%s.", |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
89 | daze, daze == 1 ? "" : "s", |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
90 | hrs, hrs == 1 ? "" : "s", min, min == 1 ? "" : "s"); |
|
1826
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
91 | } else { |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
92 | g_snprintf(ret, 256, |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
93 | "%d day%s, %d hour%s.", |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
94 | daze, daze == 1 ? "" : "s", hrs, hrs == 1 ? "" : "s"); |
|
1826
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
95 | } |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
96 | } else { |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
97 | g_snprintf(ret, 256, |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
98 | "%d day%s, %d minute%s.", |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
99 | daze, daze == 1 ? "" : "s", min, min == 1 ? "" : "s"); |
|
1826
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
100 | } |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
101 | } else |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
102 | g_snprintf(ret, 256, "%d day%s.", daze, daze == 1 ? "" : "s"); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
103 | } else { |
|
1826
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
104 | if (hrs) { |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
105 | if (min) { |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
106 | g_snprintf(ret, 256, |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
107 | "%d hour%s, %d minute%s.", |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
108 | hrs, hrs == 1 ? "" : "s", min, min == 1 ? "" : "s"); |
|
1826
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
109 | } else { |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
110 | g_snprintf(ret, 256, "%d hour%s.", hrs, hrs == 1 ? "" : "s"); |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
111 | } |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
112 | } else { |
|
2353dd376dcf
[gaim-migrate @ 1836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
113 | g_snprintf(ret, 256, "%d minute%s.", min, min == 1 ? "" : "s"); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
114 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
115 | } |
| 1 | 116 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
117 | return ret; |
| 1 | 118 | } |
| 119 | ||
| 120 | gint linkify_text(char *text) | |
| 121 | { | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
122 | char *c, *t; |
|
1622
baf5ef62fb5c
[gaim-migrate @ 1632]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1609
diff
changeset
|
123 | char *cpy = g_malloc(strlen(text) * 3 + 1); |
|
baf5ef62fb5c
[gaim-migrate @ 1632]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1609
diff
changeset
|
124 | char url_buf[BUF_LEN * 4]; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
125 | int cnt = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
126 | /* Assumes you have a buffer able to cary at least BUF_LEN * 2 bytes */ |
| 1 | 127 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
128 | strncpy(cpy, text, strlen(text)); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
129 | cpy[strlen(text)] = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
130 | c = cpy; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
131 | while (*c) { |
|
2048
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2043
diff
changeset
|
132 | if (!g_strncasecmp(c, "<A", 2)) { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
133 | while (1) { |
|
2596
03bec8fb035f
[gaim-migrate @ 2609]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2397
diff
changeset
|
134 | if (!g_strncasecmp(c, "/A>", 3)) { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
135 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
136 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
137 | text[cnt++] = *c; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
138 | c++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
139 | if (!(*c)) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
140 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
141 | } |
|
2048
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2043
diff
changeset
|
142 | } else if ((!g_strncasecmp(c, "http://", 7) || (!g_strncasecmp(c, "https://", 8)))) { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
143 | t = c; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
144 | while (1) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
145 | if (badchar(*t)) { |
| 925 | 146 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
147 | if (*(t) == ',' && (*(t + 1) != ' ')) { |
| 925 | 148 | t++; |
| 149 | continue; | |
| 150 | } | |
| 151 | ||
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
152 | if (*(t - 1) == '.') |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
153 | t--; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
154 | strncpy(url_buf, c, t - c); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
155 | url_buf[t - c] = 0; |
|
2614
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
156 | cnt += g_snprintf(&text[cnt], 1024, "<A HREF=\"%s\">%s</A>", |
|
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
157 | url_buf, url_buf); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
158 | c = t; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
159 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
160 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
161 | if (!t) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
162 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
163 | t++; |
| 1 | 164 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
165 | } |
|
2048
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2043
diff
changeset
|
166 | } else if (!g_strncasecmp(c, "www.", 4)) { |
|
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2043
diff
changeset
|
167 | if (g_strncasecmp(c, "www..", 5)) { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
168 | t = c; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
169 | while (1) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
170 | if (badchar(*t)) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
171 | if (t - c == 4) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
172 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
173 | } |
| 925 | 174 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
175 | if (*(t) == ',' && (*(t + 1) != ' ')) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
176 | t++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
177 | continue; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
178 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
179 | |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
180 | if (*(t - 1) == '.') |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
181 | t--; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
182 | strncpy(url_buf, c, t - c); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
183 | url_buf[t - c] = 0; |
|
2614
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
184 | cnt += g_snprintf(&text[cnt], 1024, |
|
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
185 | "<A HREF=\"http://%s\">%s</A>", url_buf, |
|
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
186 | url_buf); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
187 | c = t; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
188 | break; |
| 925 | 189 | } |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
190 | if (!t) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
191 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
192 | t++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
193 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
194 | } |
|
2048
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2043
diff
changeset
|
195 | } else if (!g_strncasecmp(c, "ftp://", 6)) { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
196 | t = c; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
197 | while (1) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
198 | if (badchar(*t)) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
199 | if (*(t - 1) == '.') |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
200 | t--; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
201 | strncpy(url_buf, c, t - c); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
202 | url_buf[t - c] = 0; |
|
2614
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
203 | cnt += g_snprintf(&text[cnt], 1024, "<A HREF=\"%s\">%s</A>", |
|
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
204 | url_buf, url_buf); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
205 | c = t; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
206 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
207 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
208 | if (!t) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
209 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
210 | t++; |
| 1 | 211 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
212 | } |
|
2048
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2043
diff
changeset
|
213 | } else if (!g_strncasecmp(c, "ftp.", 4)) { |
|
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2043
diff
changeset
|
214 | if (g_strncasecmp(c, "ftp..", 5)) { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
215 | t = c; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
216 | while (1) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
217 | if (badchar(*t)) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
218 | if (t - c == 4) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
219 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
220 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
221 | if (*(t - 1) == '.') |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
222 | t--; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
223 | strncpy(url_buf, c, t - c); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
224 | url_buf[t - c] = 0; |
|
2614
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
225 | cnt += g_snprintf(&text[cnt], 1024, |
|
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
226 | "<A HREF=\"ftp://%s\">%s</A>", url_buf, |
|
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
227 | url_buf); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
228 | c = t; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
229 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
230 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
231 | if (!t) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
232 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
233 | t++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
234 | } |
| 924 | 235 | } |
|
2048
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2043
diff
changeset
|
236 | } else if (!g_strncasecmp(c, "mailto:", 7)) { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
237 | t = c; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
238 | while (1) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
239 | if (badchar(*t)) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
240 | if (*(t - 1) == '.') |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
241 | t--; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
242 | strncpy(url_buf, c, t - c); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
243 | url_buf[t - c] = 0; |
|
2614
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
244 | cnt += g_snprintf(&text[cnt], 1024, "<A HREF=\"%s\">%s</A>", |
|
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
245 | url_buf, url_buf); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
246 | c = t; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
247 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
248 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
249 | if (!t) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
250 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
251 | t++; |
| 1 | 252 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
253 | } |
|
2048
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2043
diff
changeset
|
254 | } else if (c != cpy && !g_strncasecmp(c, "@", 1)) { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
255 | char *tmp; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
256 | int flag; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
257 | int len = 0; |
|
3330
fc82ec88ac96
[gaim-migrate @ 3348]
Christian Hammond <chipx86@chipx86.com>
parents:
3279
diff
changeset
|
258 | char illegal_chars[] = "!@#$%^&*()[]{}/|\\<>\":;\0"; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
259 | url_buf[0] = 0; |
| 1 | 260 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
261 | if (*(c - 1) == ' ' || *(c + 1) == ' ' || rindex(illegal_chars, *(c + 1)) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
262 | || *(c + 1) == 13 || *(c + 1) == 10) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
263 | flag = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
264 | else |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
265 | flag = 1; |
| 1 | 266 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
267 | t = c; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
268 | while (flag) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
269 | if (badchar(*t)) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
270 | cnt -= (len - 1); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
271 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
272 | } else { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
273 | len++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
274 | tmp = g_malloc(len + 1); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
275 | tmp[len] = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
276 | tmp[0] = *t; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
277 | strncpy(tmp + 1, url_buf, len - 1); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
278 | strcpy(url_buf, tmp); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
279 | url_buf[len] = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
280 | g_free(tmp); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
281 | t--; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
282 | if (t < cpy) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
283 | cnt = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
284 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
285 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
286 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
287 | } |
| 1 | 288 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
289 | t = c + 1; |
| 1 | 290 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
291 | while (flag) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
292 | if (badchar(*t)) { |
|
3331
524e2b90c255
[gaim-migrate @ 3349]
Christian Hammond <chipx86@chipx86.com>
parents:
3330
diff
changeset
|
293 | char *d; |
|
524e2b90c255
[gaim-migrate @ 3349]
Christian Hammond <chipx86@chipx86.com>
parents:
3330
diff
changeset
|
294 | |
|
524e2b90c255
[gaim-migrate @ 3349]
Christian Hammond <chipx86@chipx86.com>
parents:
3330
diff
changeset
|
295 | for (d = url_buf + strlen(url_buf) - 1; *d == '.'; d--, t--) |
|
524e2b90c255
[gaim-migrate @ 3349]
Christian Hammond <chipx86@chipx86.com>
parents:
3330
diff
changeset
|
296 | *d = '\0'; |
|
3330
fc82ec88ac96
[gaim-migrate @ 3348]
Christian Hammond <chipx86@chipx86.com>
parents:
3279
diff
changeset
|
297 | |
|
2614
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
298 | cnt += g_snprintf(&text[cnt], 1024, |
|
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
299 | "<A HREF=\"mailto:%s\">%s</A>", url_buf, |
|
713a3ec40c7e
[gaim-migrate @ 2627]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2603
diff
changeset
|
300 | url_buf); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
301 | text[cnt] = 0; |
| 1 | 302 | |
| 303 | ||
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
304 | c = t; |
| 1 | 305 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
306 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
307 | } else { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
308 | strncat(url_buf, t, 1); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
309 | len++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
310 | url_buf[len] = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
311 | } |
| 1 | 312 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
313 | t++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
314 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
315 | } |
| 1 | 316 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
317 | if (*c == 0) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
318 | break; |
| 1 | 319 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
320 | text[cnt++] = *c; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
321 | c++; |
| 1 | 322 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
323 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
324 | text[cnt] = 0; |
|
845
6e0bd2401bed
[gaim-migrate @ 855]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
831
diff
changeset
|
325 | g_free(cpy); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
326 | return cnt; |
| 1 | 327 | } |
| 328 | ||
| 329 | ||
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
330 | FILE *open_gaim_log_file(char *name, int *flag) |
| 1 | 331 | { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
332 | char *buf; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
333 | char *buf2; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
334 | char log_all_file[256]; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
335 | struct stat st; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
336 | FILE *fd; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
337 | int res; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
338 | gchar *gaim_dir; |
| 1 | 339 | |
| 79 | 340 | buf = g_malloc(BUF_LONG); |
| 341 | buf2 = g_malloc(BUF_LONG); | |
| 1238 | 342 | gaim_dir = gaim_user_dir(); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
343 | |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
344 | /* Dont log yourself */ |
| 1238 | 345 | strncpy(log_all_file, gaim_dir, 256); |
| 1 | 346 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
347 | stat(log_all_file, &st); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
348 | if (!S_ISDIR(st.st_mode)) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
349 | unlink(log_all_file); |
| 1 | 350 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
351 | fd = fopen(log_all_file, "r"); |
| 1 | 352 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
353 | if (!fd) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
354 | res = mkdir(log_all_file, S_IRUSR | S_IWUSR | S_IXUSR); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
355 | if (res < 0) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
356 | g_snprintf(buf, BUF_LONG, "Unable to make directory %s for logging", |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
357 | log_all_file); |
| 3427 | 358 | do_error_dialog(buf, NULL, GAIM_ERROR); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
359 | g_free(buf); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
360 | g_free(buf2); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
361 | g_free(gaim_dir); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
362 | return NULL; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
363 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
364 | } else |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
365 | fclose(fd); |
| 1 | 366 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
367 | g_snprintf(log_all_file, 256, "%s/logs", gaim_dir); |
| 1 | 368 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
369 | if (stat(log_all_file, &st) < 0) |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
370 | *flag = 1; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
371 | if (!S_ISDIR(st.st_mode)) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
372 | unlink(log_all_file); |
| 1 | 373 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
374 | fd = fopen(log_all_file, "r"); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
375 | if (!fd) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
376 | res = mkdir(log_all_file, S_IRUSR | S_IWUSR | S_IXUSR); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
377 | if (res < 0) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
378 | g_snprintf(buf, BUF_LONG, "Unable to make directory %s for logging", |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
379 | log_all_file); |
| 3427 | 380 | do_error_dialog(buf, NULL, GAIM_ERROR); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
381 | g_free(buf); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
382 | g_free(buf2); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
383 | g_free(gaim_dir); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
384 | return NULL; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
385 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
386 | } else |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
387 | fclose(fd); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
388 | |
| 1 | 389 | |
| 390 | ||
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
391 | g_snprintf(log_all_file, 256, "%s/logs/%s", gaim_dir, name); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
392 | if (stat(log_all_file, &st) < 0) |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
393 | *flag = 1; |
| 1 | 394 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
395 | debug_printf("Logging to: \"%s\"\n", log_all_file); |
| 1 | 396 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
397 | fd = fopen(log_all_file, "a"); |
| 1 | 398 | |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
399 | g_free(buf); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
400 | g_free(buf2); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
401 | g_free(gaim_dir); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
402 | return fd; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
403 | } |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
404 | |
| 3457 | 405 | FILE *open_log_file(char *name, int is_chat) |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
406 | { |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
407 | struct stat st; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
408 | char realname[256]; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
409 | struct log_conversation *l; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
410 | FILE *fd; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
411 | int flag = 0; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
412 | |
| 3457 | 413 | if (((is_chat == 2) && !(logging_options & OPT_LOG_INDIVIDUAL)) |
| 414 | || ((is_chat == 1) && !(logging_options & OPT_LOG_CHATS)) | |
| 415 | || ((is_chat == 0) && !(logging_options & OPT_LOG_CONVOS))) { | |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
416 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
417 | l = find_log_info(name); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
418 | if (!l) |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
419 | return NULL; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
420 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
421 | if (stat(l->filename, &st) < 0) |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
422 | flag = 1; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
423 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
424 | fd = fopen(l->filename, "a"); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
425 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
426 | if (flag) { /* is a new file */ |
| 1856 | 427 | if (logging_options & OPT_LOG_STRIP_HTML) { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
428 | fprintf(fd, "IM Sessions with %s\n", name); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
429 | } else { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
430 | fprintf(fd, "<HTML><HEAD><TITLE>"); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
431 | fprintf(fd, "IM Sessions with %s", name); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
432 | fprintf(fd, "</TITLE></HEAD><BODY BGCOLOR=\"ffffff\">\n"); |
| 1856 | 433 | } |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
434 | } |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
435 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
436 | return fd; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
437 | } |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
438 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
439 | g_snprintf(realname, sizeof(realname), "%s.log", normalize(name)); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
440 | fd = open_gaim_log_file(realname, &flag); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
441 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
442 | if (fd && flag) { /* is a new file */ |
| 1856 | 443 | if (logging_options & OPT_LOG_STRIP_HTML) { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
444 | fprintf(fd, "IM Sessions with %s\n", name); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
445 | } else { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
446 | fprintf(fd, "<HTML><HEAD><TITLE>"); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
447 | fprintf(fd, "IM Sessions with %s", name); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
448 | fprintf(fd, "</TITLE></HEAD><BODY BGCOLOR=\"ffffff\">\n"); |
| 1856 | 449 | } |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
450 | } |
| 25 | 451 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
452 | return fd; |
| 1 | 453 | } |
| 454 | ||
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
455 | FILE *open_system_log_file(char *name) |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
456 | { |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
457 | int x; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
458 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
459 | if (name) |
| 3457 | 460 | return open_log_file(name, 2); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
461 | else |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
462 | return open_gaim_log_file("system", &x); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
463 | } |
| 1 | 464 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
465 | char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" "0123456789+/"; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
466 | |
| 3147 | 467 | /* XXX Find bug */ |
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1878
diff
changeset
|
468 | char *tobase64(const char *text) |
| 1 | 469 | { |
| 470 | char *out = NULL; | |
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1878
diff
changeset
|
471 | const char *c; |
| 1 | 472 | unsigned int tmp = 0; |
| 473 | int len = 0, n = 0; | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
474 | |
| 1 | 475 | c = text; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
476 | |
|
1829
e9d6f01e9fc9
[gaim-migrate @ 1839]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1826
diff
changeset
|
477 | while (*c) { |
| 1 | 478 | tmp = tmp << 8; |
| 479 | tmp += *c; | |
| 480 | n++; | |
| 481 | ||
| 482 | if (n == 3) { | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
483 | out = g_realloc(out, len + 4); |
| 1 | 484 | out[len] = alphabet[(tmp >> 18) & 0x3f]; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
485 | out[len + 1] = alphabet[(tmp >> 12) & 0x3f]; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
486 | out[len + 2] = alphabet[(tmp >> 6) & 0x3f]; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
487 | out[len + 3] = alphabet[tmp & 0x3f]; |
| 1 | 488 | len += 4; |
| 489 | tmp = 0; | |
| 490 | n = 0; | |
| 491 | } | |
| 492 | c++; | |
| 493 | } | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
494 | switch (n) { |
| 1238 | 495 | |
| 1 | 496 | case 2: |
|
1829
e9d6f01e9fc9
[gaim-migrate @ 1839]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1826
diff
changeset
|
497 | tmp <<= 8; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
498 | out = g_realloc(out, len + 5); |
|
1829
e9d6f01e9fc9
[gaim-migrate @ 1839]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1826
diff
changeset
|
499 | out[len] = alphabet[(tmp >> 18) & 0x3f]; |
|
e9d6f01e9fc9
[gaim-migrate @ 1839]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1826
diff
changeset
|
500 | out[len + 1] = alphabet[(tmp >> 12) & 0x3f]; |
|
e9d6f01e9fc9
[gaim-migrate @ 1839]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1826
diff
changeset
|
501 | out[len + 2] = alphabet[(tmp >> 6) & 0x3f]; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
502 | out[len + 3] = '='; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
503 | out[len + 4] = 0; |
| 1238 | 504 | break; |
| 1 | 505 | case 1: |
|
1829
e9d6f01e9fc9
[gaim-migrate @ 1839]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1826
diff
changeset
|
506 | tmp <<= 16; |
|
1843
aeeac3ee7ac5
[gaim-migrate @ 1853]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1829
diff
changeset
|
507 | out = g_realloc(out, len + 5); |
|
aeeac3ee7ac5
[gaim-migrate @ 1853]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1829
diff
changeset
|
508 | out[len] = alphabet[(tmp >> 18) & 0x3f]; |
|
aeeac3ee7ac5
[gaim-migrate @ 1853]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1829
diff
changeset
|
509 | out[len + 1] = alphabet[(tmp >> 12) & 0x3f]; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
510 | out[len + 2] = '='; |
|
1843
aeeac3ee7ac5
[gaim-migrate @ 1853]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1829
diff
changeset
|
511 | out[len + 3] = '='; |
|
aeeac3ee7ac5
[gaim-migrate @ 1853]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1829
diff
changeset
|
512 | out[len + 4] = 0; |
| 1238 | 513 | break; |
| 1 | 514 | case 0: |
|
1843
aeeac3ee7ac5
[gaim-migrate @ 1853]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1829
diff
changeset
|
515 | out = g_realloc(out, len + 1); |
|
aeeac3ee7ac5
[gaim-migrate @ 1853]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1829
diff
changeset
|
516 | out[len] = 0; |
| 1 | 517 | break; |
| 518 | } | |
| 519 | return out; | |
| 520 | } | |
| 521 | ||
| 522 | ||
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1878
diff
changeset
|
523 | void frombase64(const char *text, char **data, int *size) |
| 1 | 524 | { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
525 | char *out = NULL; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
526 | char tmp = 0; |
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1878
diff
changeset
|
527 | const char *c; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
528 | gint32 tmp2 = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
529 | int len = 0, n = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
530 | |
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1878
diff
changeset
|
531 | if (!text || !data) |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1878
diff
changeset
|
532 | return; |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1878
diff
changeset
|
533 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
534 | c = text; |
| 1 | 535 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
536 | while (*c) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
537 | if (*c >= 'A' && *c <= 'Z') { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
538 | tmp = *c - 'A'; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
539 | } else if (*c >= 'a' && *c <= 'z') { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
540 | tmp = 26 + (*c - 'a'); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
541 | } else if (*c >= '0' && *c <= 57) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
542 | tmp = 52 + (*c - '0'); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
543 | } else if (*c == '+') { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
544 | tmp = 62; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
545 | } else if (*c == '/') { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
546 | tmp = 63; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
547 | } else if (*c == '=') { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
548 | if (n == 3) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
549 | out = g_realloc(out, len + 2); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
550 | out[len] = (char)(tmp2 >> 10) & 0xff; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
551 | len++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
552 | out[len] = (char)(tmp2 >> 2) & 0xff; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
553 | len++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
554 | } else if (n == 2) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
555 | out = g_realloc(out, len + 1); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
556 | out[len] = (char)(tmp2 >> 4) & 0xff; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
557 | len++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
558 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
559 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
560 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
561 | tmp2 = ((tmp2 << 6) | (tmp & 0xff)); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
562 | n++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
563 | if (n == 4) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
564 | out = g_realloc(out, len + 3); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
565 | out[len] = (char)((tmp2 >> 16) & 0xff); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
566 | len++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
567 | out[len] = (char)((tmp2 >> 8) & 0xff); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
568 | len++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
569 | out[len] = (char)(tmp2 & 0xff); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
570 | len++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
571 | tmp2 = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
572 | n = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
573 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
574 | c++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
575 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
576 | |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
577 | out = g_realloc(out, len + 1); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
578 | out[len] = 0; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
579 | |
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1878
diff
changeset
|
580 | *data = out; |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1878
diff
changeset
|
581 | if (size) |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1878
diff
changeset
|
582 | *size = len; |
| 1 | 583 | } |
| 584 | ||
| 585 | ||
| 586 | char *normalize(const char *s) | |
| 587 | { | |
| 588 | static char buf[BUF_LEN]; | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
589 | char *t, *u; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
590 | int x = 0; |
| 1 | 591 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
592 | g_return_val_if_fail((s != NULL), NULL); |
| 26 | 593 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
594 | u = t = g_strdup(s); |
| 1 | 595 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
596 | strcpy(t, s); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
597 | g_strdown(t); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
598 | |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
599 | while (*t && (x < BUF_LEN - 1)) { |
| 1 | 600 | if (*t != ' ') { |
| 601 | buf[x] = *t; | |
| 602 | x++; | |
| 603 | } | |
| 604 | t++; | |
| 605 | } | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
606 | buf[x] = '\0'; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
607 | g_free(u); |
| 1 | 608 | return buf; |
| 609 | } | |
| 610 | ||
| 611 | char *date() | |
| 612 | { | |
| 613 | static char date[80]; | |
| 614 | time_t tme; | |
| 615 | time(&tme); | |
| 616 | strftime(date, sizeof(date), "%H:%M:%S", localtime(&tme)); | |
| 617 | return date; | |
| 618 | } | |
| 619 | ||
| 620 | ||
| 3076 | 621 | void clean_pid(void) |
| 1 | 622 | { |
| 623 | int status; | |
|
3105
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
624 | pid_t pid, spell_pid; |
| 1 | 625 | |
|
3105
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
626 | while((pid = waitpid(-1, &status, WNOHANG)) > 0) { |
|
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
627 | if((spell_pid = gtkspell_running()) != 0 && pid == spell_pid) { |
|
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
628 | gtkspell_notrunning(); |
|
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
629 | } |
|
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
630 | } |
|
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
631 | if(pid < 0 && errno != ECHILD) { |
|
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
632 | char errmsg[BUFSIZ]; |
|
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
633 | sprintf(errmsg, "Warning: waitpid() returned %d", pid); |
|
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
634 | perror(errmsg); |
|
8c23b0ec1036
[gaim-migrate @ 3119]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3076
diff
changeset
|
635 | } |
| 1 | 636 | } |
| 637 | ||
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
638 | struct aim_user *find_user(const char *name, int protocol) |
| 1 | 639 | { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
640 | char *who = g_strdup(normalize(name)); |
|
2397
432ccc0c7f18
[gaim-migrate @ 2410]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2382
diff
changeset
|
641 | GSList *usr = aim_users; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
642 | struct aim_user *u; |
| 1 | 643 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
644 | while (usr) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
645 | u = (struct aim_user *)usr->data; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
646 | if (!strcmp(normalize(u->username), who)) { |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
647 | if (protocol != -1) { |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
648 | if (u->protocol == protocol) { |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
649 | g_free(who); |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
650 | return u; |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
651 | } |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
652 | } else { |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
653 | g_free(who); |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
654 | return u; |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
655 | } |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
656 | |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
657 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
658 | usr = usr->next; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
659 | } |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
660 | g_free(who); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
661 | return NULL; |
| 1 | 662 | } |
| 180 | 663 | |
| 206 | 664 | |
|
592
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
665 | /* Look for %n, %d, or %t in msg, and replace with the sender's name, date, |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
666 | or time */ |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
667 | char *away_subs(char *msg, char *name) |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
668 | { |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
669 | char *c; |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
670 | static char cpy[BUF_LONG]; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
671 | int cnt = 0; |
|
592
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
672 | time_t t = time(0); |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
673 | struct tm *tme = localtime(&t); |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
674 | char tmp[20]; |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
675 | |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
676 | cpy[0] = '\0'; |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
677 | c = msg; |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
678 | while (*c) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
679 | switch (*c) { |
|
592
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
680 | case '%': |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
681 | if (*(c + 1)) { |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
682 | switch (*(c + 1)) { |
|
592
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
683 | case 'n': |
| 1976 | 684 | /* append name */ |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
685 | strcpy(cpy + cnt, name); |
|
592
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
686 | cnt += strlen(name); |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
687 | c++; |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
688 | break; |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
689 | case 'd': |
| 1976 | 690 | /* append date */ |
|
2161
aaa15bb4d65e
[gaim-migrate @ 2171]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2155
diff
changeset
|
691 | strftime(tmp, 20, "%m/%d/%Y", tme); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
692 | strcpy(cpy + cnt, tmp); |
|
592
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
693 | cnt += strlen(tmp); |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
694 | c++; |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
695 | break; |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
696 | case 't': |
| 1976 | 697 | /* append time */ |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
698 | strftime(tmp, 20, "%r", tme); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
699 | strcpy(cpy + cnt, tmp); |
|
592
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
700 | cnt += strlen(tmp); |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
701 | c++; |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
702 | break; |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
703 | default: |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
704 | cpy[cnt++] = *c; |
|
592
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
705 | } |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
706 | } |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
707 | break; |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
708 | default: |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
709 | cpy[cnt++] = *c; |
|
592
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
710 | } |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
711 | c++; |
|
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
712 | } |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
713 | cpy[cnt] = '\0'; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
714 | return (cpy); |
|
592
9cd04eefc8ca
[gaim-migrate @ 602]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
470
diff
changeset
|
715 | } |
|
603
58bf0003d8a4
[gaim-migrate @ 613]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
592
diff
changeset
|
716 | |
|
765
048901ebbb85
[gaim-migrate @ 775]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
764
diff
changeset
|
717 | char *stylize(gchar *text, int length) |
|
764
92f08820867b
[gaim-migrate @ 774]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
759
diff
changeset
|
718 | { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
719 | gchar *buf; |
|
2016
6ff4dc6efef3
[gaim-migrate @ 2026]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1985
diff
changeset
|
720 | char *tmp = g_malloc(length); |
|
764
92f08820867b
[gaim-migrate @ 774]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
759
diff
changeset
|
721 | |
|
92f08820867b
[gaim-migrate @ 774]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
759
diff
changeset
|
722 | buf = g_malloc(length); |
|
765
048901ebbb85
[gaim-migrate @ 775]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
764
diff
changeset
|
723 | g_snprintf(buf, length, "%s", text); |
|
764
92f08820867b
[gaim-migrate @ 774]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
759
diff
changeset
|
724 | |
|
831
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
725 | if (font_options & OPT_FONT_BOLD) { |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
726 | g_snprintf(tmp, length, "<B>%s</B>", buf); |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
727 | strcpy(buf, tmp); |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
728 | } |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
729 | |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
730 | if (font_options & OPT_FONT_ITALIC) { |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
731 | g_snprintf(tmp, length, "<I>%s</I>", buf); |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
732 | strcpy(buf, tmp); |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
733 | } |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
734 | |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
735 | if (font_options & OPT_FONT_UNDERLINE) { |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
736 | g_snprintf(tmp, length, "<U>%s</U>", buf); |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
737 | strcpy(buf, tmp); |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
738 | } |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
739 | |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
740 | if (font_options & OPT_FONT_STRIKE) { |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
741 | g_snprintf(tmp, length, "<S>%s</S>", buf); |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
742 | strcpy(buf, tmp); |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
743 | } |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
744 | |
|
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
745 | if (font_options & OPT_FONT_FACE) { |
|
765
048901ebbb85
[gaim-migrate @ 775]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
764
diff
changeset
|
746 | g_snprintf(tmp, length, "<FONT FACE=\"%s\">%s</FONT>", fontface, buf); |
|
048901ebbb85
[gaim-migrate @ 775]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
764
diff
changeset
|
747 | strcpy(buf, tmp); |
|
764
92f08820867b
[gaim-migrate @ 774]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
759
diff
changeset
|
748 | } |
|
92f08820867b
[gaim-migrate @ 774]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
759
diff
changeset
|
749 | |
|
1441
71e46d36113b
[gaim-migrate @ 1451]
Decklin Foster <decklin@red-bean.com>
parents:
1376
diff
changeset
|
750 | if (font_options & OPT_FONT_SIZE) { |
|
71e46d36113b
[gaim-migrate @ 1451]
Decklin Foster <decklin@red-bean.com>
parents:
1376
diff
changeset
|
751 | g_snprintf(tmp, length, "<FONT SIZE=\"%d\">%s</FONT>", fontsize, buf); |
|
71e46d36113b
[gaim-migrate @ 1451]
Decklin Foster <decklin@red-bean.com>
parents:
1376
diff
changeset
|
752 | strcpy(buf, tmp); |
|
71e46d36113b
[gaim-migrate @ 1451]
Decklin Foster <decklin@red-bean.com>
parents:
1376
diff
changeset
|
753 | } |
|
71e46d36113b
[gaim-migrate @ 1451]
Decklin Foster <decklin@red-bean.com>
parents:
1376
diff
changeset
|
754 | |
|
831
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
755 | if (font_options & OPT_FONT_FGCOL) { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
756 | g_snprintf(tmp, length, "<FONT COLOR=\"#%02X%02X%02X\">%s</FONT>", fgcolor.red, |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
757 | fgcolor.green, fgcolor.blue, buf); |
|
765
048901ebbb85
[gaim-migrate @ 775]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
764
diff
changeset
|
758 | strcpy(buf, tmp); |
|
764
92f08820867b
[gaim-migrate @ 774]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
759
diff
changeset
|
759 | } |
|
92f08820867b
[gaim-migrate @ 774]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
759
diff
changeset
|
760 | |
|
831
b1d5ab85f4e7
[gaim-migrate @ 841]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
761 | if (font_options & OPT_FONT_BGCOL) { |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
762 | g_snprintf(tmp, length, "<BODY BGCOLOR=\"#%02X%02X%02X\">%s</BODY>", bgcolor.red, |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
763 | bgcolor.green, bgcolor.blue, buf); |
|
765
048901ebbb85
[gaim-migrate @ 775]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
764
diff
changeset
|
764 | strcpy(buf, tmp); |
|
764
92f08820867b
[gaim-migrate @ 774]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
759
diff
changeset
|
765 | } |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
766 | |
|
2016
6ff4dc6efef3
[gaim-migrate @ 2026]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1985
diff
changeset
|
767 | g_free(tmp); |
|
765
048901ebbb85
[gaim-migrate @ 775]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
764
diff
changeset
|
768 | return buf; |
|
048901ebbb85
[gaim-migrate @ 775]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
764
diff
changeset
|
769 | } |
| 915 | 770 | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
771 | void show_usage(int mode, char *name) |
| 1009 | 772 | { |
| 773 | switch (mode) { | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
774 | case 0: /* full help text */ |
|
3474
83f382019594
[gaim-migrate @ 3525]
Robert McQueen <robot101@debian.org>
parents:
3466
diff
changeset
|
775 | printf("Gaim %s\n" |
|
83f382019594
[gaim-migrate @ 3525]
Robert McQueen <robot101@debian.org>
parents:
3466
diff
changeset
|
776 | "Usage: %s [OPTION]...\n\n" |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
777 | " -a, --acct display account editor window\n" |
| 1254 | 778 | " -w, --away[=MESG] make away on signon (optional argument MESG specifies\n" |
| 779 | " name of away message to use)\n" | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
780 | " -l, --login[=NAME] automatically login (optional argument NAME specifies\n" |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
781 | " account(s) to use)\n" |
|
3530
505094bab9bb
[gaim-migrate @ 3603]
John Silvestri <john.silvestri@gmail.com>
parents:
3479
diff
changeset
|
782 | " -n, --loginwin don't automatically login; show login window\n" |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
783 | " -u, --user=NAME use account NAME\n" |
| 1560 | 784 | " -f, --file=FILE use FILE as config\n" |
|
2823
ff84f755cfb3
[gaim-migrate @ 2836]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2662
diff
changeset
|
785 | " -d, --debug print debugging messages to stdout\n" |
|
3474
83f382019594
[gaim-migrate @ 3525]
Robert McQueen <robot101@debian.org>
parents:
3466
diff
changeset
|
786 | " -v, --version display the current version and exit\n" |
|
83f382019594
[gaim-migrate @ 3525]
Robert McQueen <robot101@debian.org>
parents:
3466
diff
changeset
|
787 | " -h, --help display this help and exit\n", VERSION, name); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
788 | break; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
789 | case 1: /* short message */ |
|
3474
83f382019594
[gaim-migrate @ 3525]
Robert McQueen <robot101@debian.org>
parents:
3466
diff
changeset
|
790 | printf("Gaim %s. Try `%s -h' for more information.\n", VERSION, name); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
791 | break; |
| 1009 | 792 | } |
| 793 | } | |
| 794 | ||
| 795 | ||
| 796 | /* <name> is a comma-separated list of names, or NULL | |
| 797 | if NULL and there is at least one user defined in .gaimrc, try to login. | |
| 798 | if not NULL, parse <name> into separate strings, look up each one in | |
| 799 | .gaimrc and, if it's there, try to login. | |
| 800 | returns: 0 if successful | |
| 801 | -1 if no user was found that had a saved password | |
| 802 | */ | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
803 | int do_auto_login(char *name) |
| 1009 | 804 | { |
| 805 | struct aim_user *u; | |
|
2042
6d3b14464f48
[gaim-migrate @ 2052]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2039
diff
changeset
|
806 | char **names, **n; |
| 1009 | 807 | int retval = -1; |
| 808 | ||
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
809 | if (name !=NULL) { /* list of names given */ |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
810 | names = g_strsplit(name, ",", 32); |
| 1009 | 811 | for (n = names; *n != NULL; n++) { |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
812 | u = find_user(*n, -1); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
813 | if (u) { /* found a user */ |
| 1009 | 814 | if (u->options & OPT_USR_REM_PASS) { |
| 815 | retval = 0; | |
| 816 | serv_login(u); | |
| 817 | } | |
| 818 | } | |
| 819 | } | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
820 | g_strfreev(names); |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
821 | } else { /* no name given, use default */ |
| 1009 | 822 | u = (struct aim_user *)aim_users->data; |
| 823 | if (u->options & OPT_USR_REM_PASS) { | |
| 824 | retval = 0; | |
| 825 | serv_login(u); | |
| 826 | } | |
| 827 | } | |
| 828 | ||
| 829 | return retval; | |
| 830 | } | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
831 | |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
832 | GSList *message_split(char *message, int limit) |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
833 | { |
|
1100
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
834 | static GSList *ret = NULL; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
835 | int lastgood = 0, curgood = 0, curpos = 0, len = strlen(message); |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
836 | gboolean intag = FALSE; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
837 | |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
838 | if (ret) { |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
839 | GSList *tmp = ret; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
840 | while (tmp) { |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
841 | g_free(tmp->data); |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
842 | tmp = g_slist_remove(tmp, tmp->data); |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
843 | } |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
844 | ret = NULL; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
845 | } |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
846 | |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
847 | while (TRUE) { |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
848 | if (lastgood >= len) |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
849 | return ret; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
850 | |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
851 | if (len - lastgood < limit) { |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
852 | ret = g_slist_append(ret, g_strdup(&message[lastgood])); |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
853 | return ret; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
854 | } |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
855 | |
|
1100
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
856 | curgood = curpos = 0; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
857 | intag = FALSE; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
858 | while (curpos <= limit) { |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
859 | if (isspace(message[curpos + lastgood]) && !intag) |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
860 | curgood = curpos; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
861 | if (message[curpos + lastgood] == '<') |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
862 | intag = TRUE; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
863 | if (message[curpos + lastgood] == '>') |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
864 | intag = FALSE; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
865 | curpos++; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
866 | } |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
867 | |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
868 | if (curgood) { |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
869 | ret = g_slist_append(ret, g_strndup(&message[lastgood], curgood)); |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
870 | if (isspace(message[curgood + lastgood])) |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
871 | lastgood += curgood + 1; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
872 | else |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
873 | lastgood += curgood; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
874 | } else { |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
875 | /* whoops, guess we have to fudge it here */ |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
876 | ret = g_slist_append(ret, g_strndup(&message[lastgood], limit)); |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
877 | lastgood += limit; |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
878 | } |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
879 | } |
|
efc7d10c7826
[gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1087
diff
changeset
|
880 | } |
|
1191
073d1f197255
[gaim-migrate @ 1201]
Decklin Foster <decklin@red-bean.com>
parents:
1152
diff
changeset
|
881 | |
| 1238 | 882 | /* returns a string of the form ~/.gaim, where ~ is replaced by the user's home |
| 883 | * dir. this string should be freed after it's used. Note that there is no | |
| 884 | * trailing slash after .gaim. */ | |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
885 | gchar *gaim_user_dir() |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
886 | { |
| 1238 | 887 | return g_strjoin(G_DIR_SEPARATOR_S, g_get_home_dir(), ".gaim", NULL); |
| 888 | } | |
| 889 | ||
|
1292
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
890 | /* |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
891 | * rcg10312000 This could be more robust, but it works for my current |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
892 | * goal: to remove those annoying <BR> tags. :) |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
893 | * dtf12162000 made the loop more readable. i am a neat freak. ;) */ |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
894 | void strncpy_nohtml(gchar *dest, const gchar *src, size_t destsize) |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
895 | { |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
896 | gchar *ptr; |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
897 | g_snprintf(dest, destsize, "%s", src); |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
898 | |
|
1815
e2b090284b19
[gaim-migrate @ 1825]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1805
diff
changeset
|
899 | while ((ptr = strstr(dest, "<BR>")) != NULL) { |
|
1292
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
900 | /* replace <BR> with a newline. */ |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
901 | *ptr = '\n'; |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
902 | memmove(ptr + 1, ptr + 4, strlen(ptr + 4) + 1); |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
903 | } |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
904 | } |
|
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1269
diff
changeset
|
905 | |
|
1191
073d1f197255
[gaim-migrate @ 1201]
Decklin Foster <decklin@red-bean.com>
parents:
1152
diff
changeset
|
906 | void strncpy_withhtml(gchar *dest, const gchar *src, size_t destsize) |
|
073d1f197255
[gaim-migrate @ 1201]
Decklin Foster <decklin@red-bean.com>
parents:
1152
diff
changeset
|
907 | { |
|
1202
5f470d8479af
[gaim-migrate @ 1212]
Decklin Foster <decklin@red-bean.com>
parents:
1197
diff
changeset
|
908 | gchar *end = dest + destsize; |
|
1191
073d1f197255
[gaim-migrate @ 1201]
Decklin Foster <decklin@red-bean.com>
parents:
1152
diff
changeset
|
909 | |
| 1293 | 910 | while (dest < end) { |
| 911 | if (*src == '\n' && dest < end - 5) { | |
|
1202
5f470d8479af
[gaim-migrate @ 1212]
Decklin Foster <decklin@red-bean.com>
parents:
1197
diff
changeset
|
912 | strcpy(dest, "<BR>"); |
|
1252
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
913 | src++; |
|
94fbface2d84
[gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
914 | dest += 4; |
| 1293 | 915 | } else { |
| 916 | *dest++ = *src; | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
917 | if (*src == '\0') |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
918 | return; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
919 | else |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
920 | src++; |
| 1293 | 921 | } |
|
1191
073d1f197255
[gaim-migrate @ 1201]
Decklin Foster <decklin@red-bean.com>
parents:
1152
diff
changeset
|
922 | } |
|
073d1f197255
[gaim-migrate @ 1201]
Decklin Foster <decklin@red-bean.com>
parents:
1152
diff
changeset
|
923 | } |
| 1254 | 924 | |
| 925 | ||
| 2956 | 926 | /* |
| 927 | * Like strncpy_withhtml (above), but malloc()'s the necessary space | |
| 928 | * | |
| 929 | * The caller is responsible for freeing the space pointed to by the | |
| 930 | * return value. | |
| 931 | */ | |
| 932 | ||
| 933 | gchar *strdup_withhtml(const gchar *src) | |
| 934 | { | |
| 3279 | 935 | gchar *sp, *dest; |
| 2956 | 936 | gulong destsize; |
| 937 | ||
| 938 | /* | |
| 939 | * All we need do is multiply the number of newlines by 3 (the | |
| 940 | * additional length of "<BR>" over "\n"), account for the | |
| 941 | * terminator, malloc the space and call strncpy_withhtml. | |
| 942 | */ | |
| 3279 | 943 | for(destsize = 0, sp = (gchar *)src; (sp = strchr(sp, '\n')) != NULL; ++sp, ++destsize) |
| 2956 | 944 | ; |
| 945 | destsize *= 3; | |
| 946 | destsize += strlen(src) + 1; | |
| 947 | dest = g_malloc(destsize); | |
| 948 | strncpy_withhtml(dest, src, destsize); | |
| 949 | ||
| 950 | return(dest); | |
| 951 | } | |
| 952 | ||
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
953 | void away_on_login(char *mesg) |
| 1254 | 954 | { |
| 955 | GSList *awy = away_messages; | |
| 956 | struct away_message *a, *message = NULL; | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
957 | |
| 1254 | 958 | if (!blist) { |
| 959 | return; | |
| 960 | } | |
| 961 | ||
| 962 | if (mesg == NULL) { | |
| 963 | /* Use default message */ | |
|
2379
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
964 | do_away_message(NULL, default_away); |
| 1254 | 965 | } else { |
| 966 | /* Use argument */ | |
| 967 | while (awy) { | |
| 968 | a = (struct away_message *)awy->data; | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
969 | if (strcmp(a->name, mesg) == 0) { |
| 1254 | 970 | message = a; |
| 971 | break; | |
| 972 | } | |
| 973 | awy = awy->next; | |
| 974 | } | |
| 975 | if (message == NULL) | |
| 976 | message = default_away; | |
|
2379
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
977 | do_away_message(NULL, message); |
| 1254 | 978 | } |
| 979 | return; | |
| 980 | } | |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
981 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
982 | void system_log(enum log_event what, struct gaim_connection *gc, struct buddy *who, int why) |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
983 | { |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
984 | FILE *fd; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
985 | char text[256], html[256]; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
986 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
987 | if ((logging_options & why) != why) |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
988 | return; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
989 | |
|
1609
bc625a40db70
[gaim-migrate @ 1619]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1575
diff
changeset
|
990 | if (logging_options & OPT_LOG_INDIVIDUAL) { |
|
bc625a40db70
[gaim-migrate @ 1619]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1575
diff
changeset
|
991 | if (why & OPT_LOG_MY_SIGNON) |
|
bc625a40db70
[gaim-migrate @ 1619]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1575
diff
changeset
|
992 | fd = open_system_log_file(gc ? gc->username : NULL); |
|
bc625a40db70
[gaim-migrate @ 1619]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1575
diff
changeset
|
993 | else |
|
bc625a40db70
[gaim-migrate @ 1619]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1575
diff
changeset
|
994 | fd = open_system_log_file(who->name); |
|
bc625a40db70
[gaim-migrate @ 1619]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1575
diff
changeset
|
995 | } else |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
996 | fd = open_system_log_file(NULL); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
997 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
998 | if (!fd) |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
999 | return; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1000 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1001 | if (why & OPT_LOG_MY_SIGNON) { |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1002 | switch (what) { |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1003 | case log_signon: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1004 | g_snprintf(text, sizeof(text), "+++ %s (%s) signed on @ %s", |
| 3572 | 1005 | gc->username, gc->prpl->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1006 | g_snprintf(html, sizeof(html), "<B>%s</B>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1007 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1008 | case log_signoff: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1009 | g_snprintf(text, sizeof(text), "+++ %s (%s) signed off @ %s", |
| 3572 | 1010 | gc->username, gc->prpl->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1011 | g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1012 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1013 | case log_away: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1014 | g_snprintf(text, sizeof(text), "+++ %s (%s) changed away state @ %s", |
| 3572 | 1015 | gc->username, gc->prpl->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1016 | g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1017 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1018 | case log_back: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1019 | g_snprintf(text, sizeof(text), "+++ %s (%s) came back @ %s", |
| 3572 | 1020 | gc->username, gc->prpl->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1021 | g_snprintf(html, sizeof(html), "%s", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1022 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1023 | case log_idle: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1024 | g_snprintf(text, sizeof(text), "+++ %s (%s) became idle @ %s", |
| 3572 | 1025 | gc->username, gc->prpl->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1026 | g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1027 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1028 | case log_unidle: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1029 | g_snprintf(text, sizeof(text), "+++ %s (%s) returned from idle @ %s", |
| 3572 | 1030 | gc->username, gc->prpl->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1031 | g_snprintf(html, sizeof(html), "%s", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1032 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1033 | case log_quit: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1034 | g_snprintf(text, sizeof(text), "+++ Program exit @ %s", full_date()); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1035 | g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1036 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1037 | } |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1038 | } else if (strcmp(who->name, who->show)) { |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1039 | switch (what) { |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1040 | case log_signon: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1041 | g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) signed on @ %s", |
| 3572 | 1042 | gc->username, gc->prpl->name, who->show, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1043 | g_snprintf(html, sizeof(html), "<B>%s</B>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1044 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1045 | case log_signoff: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1046 | g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) signed off @ %s", |
| 3572 | 1047 | gc->username, gc->prpl->name, who->show, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1048 | g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1049 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1050 | case log_away: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1051 | g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) went away @ %s", |
| 3572 | 1052 | gc->username, gc->prpl->name, who->show, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1053 | g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1054 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1055 | case log_back: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1056 | g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) came back @ %s", |
| 3572 | 1057 | gc->username, gc->prpl->name, who->show, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1058 | g_snprintf(html, sizeof(html), "%s", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1059 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1060 | case log_idle: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1061 | g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) became idle @ %s", |
| 3572 | 1062 | gc->username, gc->prpl->name, who->show, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1063 | g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1064 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1065 | case log_unidle: |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1066 | g_snprintf(text, sizeof(text), |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1067 | "%s (%s) reported that %s (%s) returned from idle @ %s", gc->username, |
| 3572 | 1068 | gc->prpl->name, who->show, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1069 | g_snprintf(html, sizeof(html), "%s", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1070 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1071 | default: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1072 | fclose(fd); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1073 | return; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1074 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1075 | } |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1076 | } else { |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1077 | switch (what) { |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1078 | case log_signon: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1079 | g_snprintf(text, sizeof(text), "%s (%s) reported that %s signed on @ %s", |
| 3572 | 1080 | gc->username, gc->prpl->name, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1081 | g_snprintf(html, sizeof(html), "<B>%s</B>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1082 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1083 | case log_signoff: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1084 | g_snprintf(text, sizeof(text), "%s (%s) reported that %s signed off @ %s", |
| 3572 | 1085 | gc->username, gc->prpl->name, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1086 | g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1087 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1088 | case log_away: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1089 | g_snprintf(text, sizeof(text), "%s (%s) reported that %s went away @ %s", |
| 3572 | 1090 | gc->username, gc->prpl->name, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1091 | g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1092 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1093 | case log_back: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1094 | g_snprintf(text, sizeof(text), "%s (%s) reported that %s came back @ %s", |
| 3572 | 1095 | gc->username, gc->prpl->name, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1096 | g_snprintf(html, sizeof(html), "%s", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1097 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1098 | case log_idle: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1099 | g_snprintf(text, sizeof(text), "%s (%s) reported that %s became idle @ %s", |
| 3572 | 1100 | gc->username, gc->prpl->name, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1101 | g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1102 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1103 | case log_unidle: |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1104 | g_snprintf(text, sizeof(text), |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1105 | "%s (%s) reported that %s returned from idle @ %s", gc->username, |
| 3572 | 1106 | gc->prpl->name, who->name, full_date()); |
|
1575
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1107 | g_snprintf(html, sizeof(html), "%s", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1108 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1109 | default: |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1110 | fclose(fd); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1111 | return; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1112 | break; |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1113 | } |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1114 | } |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1115 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1116 | if (logging_options & OPT_LOG_STRIP_HTML) { |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1117 | fprintf(fd, "---- %s ----\n", text); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1118 | } else { |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1119 | if (logging_options & OPT_LOG_INDIVIDUAL) |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1120 | fprintf(fd, "<HR>%s<BR><HR><BR>\n", html); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1121 | else |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1122 | fprintf(fd, "%s<BR>\n", html); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1123 | } |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1124 | |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1125 | fclose(fd); |
|
220b4d845309
[gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1560
diff
changeset
|
1126 | } |
|
1805
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1127 | |
| 3361 | 1128 | char *convert_string(char *str, const char *destset, const char *srcset) |
|
1985
f40ea0fc5fb1
[gaim-migrate @ 1995]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1976
diff
changeset
|
1129 | { |
| 3370 | 1130 | #ifdef HAVE_ICONV |
| 3361 | 1131 | char *buf; |
| 1132 | iconv_t cd; | |
| 1133 | size_t insize = 0; | |
| 1134 | size_t outsize = 0; | |
| 1135 | size_t nconv = 0; | |
| 1136 | char *inptr; | |
| 1137 | char *outptr; | |
| 1138 | char *ret; | |
|
1985
f40ea0fc5fb1
[gaim-migrate @ 1995]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1976
diff
changeset
|
1139 | |
| 3361 | 1140 | if (!str) |
| 3373 | 1141 | return NULL; |
| 3361 | 1142 | buf = g_malloc(strlen(str)*4); |
| 1143 | insize = strlen(str); | |
| 1144 | inptr = str; | |
| 1145 | outsize = strlen(str)*4; | |
| 1146 | outptr = buf; | |
|
2039
6bffb24afda8
[gaim-migrate @ 2049]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2016
diff
changeset
|
1147 | |
| 3361 | 1148 | cd = iconv_open(destset, srcset); |
| 1149 | if (cd == (iconv_t) -1) { | |
| 1150 | g_free(buf); | |
| 1151 | debug_printf("iconv_open(%s, %s) Error\n",destset, srcset); | |
| 1152 | return g_strdup(str); | |
| 1153 | } | |
|
1985
f40ea0fc5fb1
[gaim-migrate @ 1995]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1976
diff
changeset
|
1154 | |
| 3361 | 1155 | nconv = iconv(cd, &inptr, &insize, &outptr, &outsize); |
| 1156 | if (nconv == (size_t) -1) { | |
| 1157 | debug_printf("iconv Error\n"); | |
| 1158 | g_free(buf); | |
| 1159 | return g_strdup(str); | |
|
2039
6bffb24afda8
[gaim-migrate @ 2049]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2016
diff
changeset
|
1160 | } |
| 3361 | 1161 | *outptr = '\0'; |
| 1162 | iconv_close(cd); | |
|
2039
6bffb24afda8
[gaim-migrate @ 2049]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2016
diff
changeset
|
1163 | |
| 3361 | 1164 | ret = g_strdup(buf); |
| 1165 | g_free(buf); | |
| 1166 | ||
| 1167 | return ret; | |
| 3370 | 1168 | #else |
| 1169 | return g_strdup(str); | |
| 3371 | 1170 | #endif |
|
1985
f40ea0fc5fb1
[gaim-migrate @ 1995]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1976
diff
changeset
|
1171 | } |
|
f40ea0fc5fb1
[gaim-migrate @ 1995]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1976
diff
changeset
|
1172 | |
|
2603
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1173 | void strip_linefeed(gchar *text) |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1174 | { |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1175 | int i, j; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1176 | gchar *text2 = g_malloc(strlen(text) + 1); |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1177 | |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1178 | for (i = 0, j = 0; text[i]; i++) |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1179 | if (text[i] != '\r') |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1180 | text2[j++] = text[i]; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1181 | text2[j] = '\0'; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1182 | |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1183 | strcpy(text, text2); |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1184 | g_free(text2); |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1185 | } |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1186 | |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1187 | char *add_cr(char *text) |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1188 | { |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1189 | char *ret = NULL; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1190 | int count = 0, i, j; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1191 | |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1192 | if (text[0] == '\n') |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1193 | count++; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1194 | for (i = 1; i < strlen(text); i++) |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1195 | if (text[i] == '\n' && text[i - 1] != '\r') |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1196 | count++; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1197 | |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1198 | if (count == 0) |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1199 | return g_strdup(text); |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1200 | |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1201 | ret = g_malloc0(strlen(text) + count + 1); |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1202 | |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1203 | i = 0; j = 0; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1204 | if (text[i] == '\n') |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1205 | ret[j++] = '\r'; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1206 | ret[j++] = text[i++]; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1207 | for (; i < strlen(text); i++) { |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1208 | if (text[i] == '\n' && text[i - 1] != '\r') |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1209 | ret[j++] = '\r'; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1210 | ret[j++] = text[i]; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1211 | } |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1212 | |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1213 | debug_printf("got: %s, leaving with %s\n", text, ret); |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1214 | |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1215 | return ret; |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1216 | } |
|
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2596
diff
changeset
|
1217 | |
|
1805
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1218 | time_t get_time(int year, int month, int day, int hour, int min, int sec) |
|
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1219 | { |
|
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1220 | struct tm tm; |
|
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1221 | |
|
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1222 | tm.tm_year = year - 1900; |
|
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1223 | tm.tm_mon = month - 1; |
|
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1224 | tm.tm_mday = day; |
|
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1225 | tm.tm_hour = hour; |
|
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1226 | tm.tm_min = min; |
|
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1227 | tm.tm_sec = sec >= 0 ? sec : time(NULL) % 60; |
|
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1228 | return mktime(&tm); |
|
c2aeee08d50e
[gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1753
diff
changeset
|
1229 | } |
|
3230
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1230 | |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1231 | /* |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1232 | * Like mkstemp() but returns a file pointer, uses a pre-set template, |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1233 | * uses the semantics of tempnam() for the directory to use and allocates |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1234 | * the space for the filepath. |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1235 | * |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1236 | * Caller is responsible for closing the file and removing it when done, |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1237 | * as well as freeing the space pointed-to by "path" with g_free(). |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1238 | * |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1239 | * Returns NULL on failure and cleans up after itself if so. |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1240 | */ |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1241 | static const char *gaim_mkstemp_templ = {"gaimXXXXXX"}; |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1242 | |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1243 | FILE *gaim_mkstemp(gchar **fpath) |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1244 | { |
| 3466 | 1245 | const gchar *tmpdir; |
|
3230
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1246 | int fd; |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1247 | FILE *fp = NULL; |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1248 | |
|
3233
c735f7dccfab
[gaim-migrate @ 3250]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3232
diff
changeset
|
1249 | if((tmpdir = g_get_tmp_dir()) != NULL) { |
|
3230
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1250 | if((*fpath = g_strdup_printf("%s/%s", tmpdir, gaim_mkstemp_templ)) != NULL) { |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1251 | if((fd = mkstemp(*fpath)) == -1) { |
|
3232
5250b27f846e
[gaim-migrate @ 3249]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3230
diff
changeset
|
1252 | debug_printf("Error: Couldn't make \"%s\", error: %d\n", *fpath, errno); |
|
3230
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1253 | } else { |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1254 | if((fp = fdopen(fd, "r+")) == NULL) { |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1255 | close(fd); |
|
3232
5250b27f846e
[gaim-migrate @ 3249]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3230
diff
changeset
|
1256 | debug_printf("Error: Couldn't fdopen(), error: %d\n", errno); |
|
3230
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1257 | } |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1258 | } |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1259 | if(!fp) { |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1260 | g_free(*fpath); |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1261 | *fpath = NULL; |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1262 | } |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1263 | } |
|
3233
c735f7dccfab
[gaim-migrate @ 3250]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3232
diff
changeset
|
1264 | } else { |
|
c735f7dccfab
[gaim-migrate @ 3250]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3232
diff
changeset
|
1265 | debug_printf("Error: g_get_tmp_dir() failed in gaim_mkstemp()!\n"); |
|
3230
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1266 | } |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1267 | |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1268 | return fp; |
|
6d0e07333504
[gaim-migrate @ 3247]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3153
diff
changeset
|
1269 | } |
| 3478 | 1270 | |
| 1271 | /* AIM URI's ARE FUN :-D */ | |
| 1272 | const char *handle_uri(char *uri) { | |
| 1273 | GString *str; | |
| 1274 | GSList *conn = connections; | |
| 1275 | struct gaim_connection *gc; | |
| 1276 | ||
| 1277 | debug_printf("Handling URI: %s\n", uri); | |
| 1278 | ||
| 1279 | /* Well, we'd better check to make sure we have at least one | |
| 1280 | AIM account connected. */ | |
| 1281 | while (gc = conn->data) { | |
| 1282 | if (gc->protocol == PROTO_TOC) { | |
| 1283 | break; | |
| 1284 | } | |
| 1285 | conn = conn->next; | |
| 1286 | } | |
| 1287 | ||
| 1288 | if (gc == NULL) | |
| 1289 | return "Not connected to AIM"; | |
| 1290 | ||
| 3479 | 1291 | /* aim:goim?screenname=screenname&message=message */ |
| 1292 | if (!g_strncasecmp(uri, "aim:goim?", strlen("aim:goim?"))) { | |
| 3478 | 1293 | char *who, *what; |
| 1294 | struct conversation *c; | |
| 3479 | 1295 | uri = uri + strlen("aim:goim?"); |
| 3478 | 1296 | |
| 1297 | if (!(who = strstr(uri, "screenname="))) { | |
| 1298 | return "No screenname given."; | |
| 1299 | } | |
| 1300 | /* spaces are encoded as +'s */ | |
| 1301 | who = who + strlen("screenname="); | |
| 1302 | str = g_string_new(NULL); | |
| 1303 | while (*who && (*who != '&')) { | |
| 1304 | g_string_append_c(str, *who == '+' ? ' ' : *who); | |
| 1305 | who++; | |
| 1306 | } | |
| 1307 | who = g_strdup(str->str); | |
| 1308 | g_string_free(str, TRUE); | |
| 1309 | ||
| 1310 | what = strstr(uri, "message="); | |
| 1311 | if (what) { | |
| 1312 | what = what + strlen("message="); | |
| 1313 | str = g_string_new(NULL); | |
| 1314 | while (*what && (*what != '&' || !g_strncasecmp(what, "&", 5))) { | |
| 1315 | g_string_append_c(str, *what == '+' ? ' ' : *what); | |
| 1316 | what++; | |
| 1317 | } | |
| 1318 | what = g_strdup(str->str); | |
| 1319 | g_string_free(str, TRUE); | |
| 1320 | } | |
| 1321 | ||
| 1322 | c = new_conversation(who); | |
|
3530
505094bab9bb
[gaim-migrate @ 3603]
John Silvestri <john.silvestri@gmail.com>
parents:
3479
diff
changeset
|
1323 | set_convo_gc(c, gc); |
| 3478 | 1324 | g_free(who); |
| 1325 | if (what) { | |
| 1326 | int finish; | |
| 1327 | gtk_editable_insert_text(GTK_EDITABLE(c->entry), | |
| 1328 | what, strlen(what), &finish); | |
| 1329 | g_free(what); | |
| 1330 | } | |
| 3479 | 1331 | } else if (!g_strncasecmp(uri, "aim:addbuddy?", strlen("aim:addbuddy?"))) { |
| 3478 | 1332 | char *who, *group; |
| 3479 | 1333 | uri = uri + strlen("aim:addbuddy?"); |
| 3478 | 1334 | /* spaces are encoded as +'s */ |
| 1335 | ||
| 1336 | if (!(who = strstr(uri, "screenname="))) { | |
| 1337 | return "No screenname given."; | |
| 1338 | } | |
| 1339 | who = who + strlen("screenname="); | |
| 1340 | str = g_string_new(NULL); | |
| 1341 | while (*who && (*who != '&')) { | |
| 1342 | g_string_append_c(str, *who == '+' ? ' ' : *who); | |
| 1343 | who++; | |
| 1344 | } | |
| 1345 | who = g_strdup(str->str); | |
| 1346 | g_string_free(str, TRUE); | |
| 1347 | ||
| 1348 | group = strstr(uri, "group="); | |
| 1349 | if (group) { | |
| 1350 | group = group + strlen("group="); | |
| 1351 | str = g_string_new(NULL); | |
| 1352 | while (*group && (*group != '&' || !g_strncasecmp(group, "&", 5))) { | |
| 1353 | g_string_append_c(str, *group == '+' ? ' ' : *group); | |
| 1354 | group++; | |
| 1355 | } | |
| 1356 | group = g_strdup(str->str); | |
| 1357 | g_string_free(str, TRUE); | |
| 1358 | } | |
| 1359 | debug_printf("who: %s\n", who); | |
| 1360 | show_add_buddy(gc, who, group, NULL); | |
| 1361 | g_free(who); | |
| 1362 | if (group) | |
| 1363 | g_free(group); | |
| 3479 | 1364 | } else if (!g_strncasecmp(uri, "aim:gochat?", strlen("aim:gochat?"))) { |
| 3478 | 1365 | char *room; |
| 1366 | GList *chat=NULL; | |
| 1367 | int exch = 5; | |
| 1368 | ||
| 3479 | 1369 | uri = uri + strlen("aim:gochat?"); |
| 3478 | 1370 | /* spaces are encoded as +'s */ |
| 1371 | ||
| 1372 | if (!(room = strstr(uri, "roomname="))) { | |
| 1373 | return "No roomname given."; | |
| 1374 | } | |
| 1375 | room = room + strlen("roomname="); | |
| 1376 | str = g_string_new(NULL); | |
| 1377 | while (*room && (*room != '&')) { | |
| 1378 | g_string_append_c(str, *room == '+' ? ' ' : *room); | |
| 1379 | room++; | |
| 1380 | } | |
| 1381 | room = g_strdup(str->str); | |
| 1382 | g_string_free(str, TRUE); | |
| 1383 | chat = g_list_append(NULL, room); | |
| 1384 | chat = g_list_append(chat, &exch); | |
| 1385 | serv_join_chat(gc, chat); | |
| 1386 | g_free(room); | |
| 1387 | g_list_free(chat); | |
| 1388 | } else { | |
| 1389 | return "Invalid AIM URI"; | |
| 1390 | } | |
| 1391 | ||
| 1392 | ||
| 1393 | return NULL; | |
| 1394 | } |