Fri, 23 Dec 2005 06:48:27 +0000
[gaim-migrate @ 14976]
Yahoo profiles use links of this form:
<a href="http://gaim.sf.net">gaim.sf.net</a>
The Yahoo prpl strips HTML, manipulates the text, then passes it to the core, which passes to the UI, which calls another UI function which calls ...linkify. This leads to these URLs looking quite odd.
The fix is to have the HTML stripping function deal properly with URLs of the above format. With HTTP being the most common type of URL these days, that's probably a good plan anyway.
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
1 | #define DBUS_API_SUBJECT_TO_CHANGE |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
2 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
3 | #include <dbus/dbus-glib.h> |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
4 | #include <stdio.h> |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
5 | #include <stdlib.h> |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
6 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
7 | #include "dbus-gaim.h" |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
8 | #include "gaim-client-bindings.h" |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
9 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
10 | static DBusGConnection *bus; |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
11 | static DBusGProxy *gaim_proxy; |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
12 | |
|
11277
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
13 | static GList *garray_int_to_glist(GArray *array) { |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
14 | GList *list = NULL; |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
15 | int i; |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
16 | |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
17 | for(i = 0; i < array->len; i++) |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
18 | list = g_list_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
19 | |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
20 | g_array_free(array, TRUE); |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
21 | return list; |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
22 | } |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
23 | |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
24 | static GSList *garray_int_to_gslist(GArray *array) { |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
25 | GSList *list = NULL; |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
26 | int i; |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
27 | |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
28 | for(i = 0; i < array->len; i++) |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
29 | list = g_slist_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
30 | |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
31 | g_array_free(array, TRUE); |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
32 | return list; |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
33 | } |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
34 | |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
35 | #include "gaim-client-bindings.c" |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
36 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
37 | static void lose (const char *fmt, ...) G_GNUC_NORETURN G_GNUC_PRINTF (1, 2); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
38 | static void lose_gerror (const char *prefix, GError *error) G_GNUC_NORETURN; |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
39 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
40 | static void |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
41 | lose (const char *str, ...) |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
42 | { |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
43 | va_list args; |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
44 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
45 | va_start (args, str); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
46 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
47 | vfprintf (stderr, str, args); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
48 | fputc ('\n', stderr); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
49 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
50 | va_end (args); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
51 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
52 | exit (1); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
53 | } |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
54 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
55 | static void |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
56 | lose_gerror (const char *prefix, GError *error) |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
57 | { |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
58 | lose ("%s: %s", prefix, error->message); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
59 | } |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
60 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
61 | void gaim_init(void) { |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
62 | GError *error = NULL; |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
63 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
64 | g_type_init (); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
65 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
66 | bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
67 | if (!bus) |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
68 | lose_gerror ("Couldn't connect to session bus", error); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
69 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
70 | gaim_proxy = dbus_g_proxy_new_for_name (bus, |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
71 | DBUS_SERVICE_GAIM, |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
72 | DBUS_PATH_GAIM, |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
73 | DBUS_INTERFACE_GAIM); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
74 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
75 | if (!gaim_proxy) |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
76 | lose_gerror ("Couldn't connect to the Gaim Service", error); |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
77 | } |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
78 |