| 3 typedef struct { |
3 typedef struct { |
| 4 char *cb; |
4 char *cb; |
| 5 } GaimPerlUrlData; |
5 } GaimPerlUrlData; |
| 6 |
6 |
| 7 static void gaim_perl_util_url_cb(void *data, const char *url_data, size_t size) { |
7 static void gaim_perl_util_url_cb(void *data, const char *url_data, size_t size) { |
| 8 GaimPerlUrlData *gpr = (GaimPerlUrlData *)data; |
8 GaimPerlUrlData *gpr = (GaimPerlUrlData *)data; |
| 9 dSP; |
9 dSP; |
| 10 ENTER; |
10 ENTER; |
| 11 SAVETMPS; |
11 SAVETMPS; |
| 12 PUSHMARK(sp); |
12 PUSHMARK(sp); |
| 13 |
13 |
| 14 XPUSHs(sv_2mortal(newSVpv(url_data, 0))); |
14 XPUSHs(sv_2mortal(newSVpv(url_data, 0))); |
| 15 PUTBACK; |
15 PUTBACK; |
| 16 |
16 |
| 17 call_pv(gpr->cb, G_EVAL | G_SCALAR); |
17 call_pv(gpr->cb, G_EVAL | G_SCALAR); |
| 18 SPAGAIN; |
18 SPAGAIN; |
| 19 |
19 |
| 20 PUTBACK; |
20 PUTBACK; |
| 21 FREETMPS; |
21 FREETMPS; |
| 22 LEAVE; |
22 LEAVE; |
| 23 } |
23 } |
| 24 |
24 |
| 25 |
|
| 26 MODULE = Gaim::Util PACKAGE = Gaim::Util PREFIX = gaim_ |
25 MODULE = Gaim::Util PACKAGE = Gaim::Util PREFIX = gaim_ |
| 27 PROTOTYPES: ENABLE |
26 PROTOTYPES: ENABLE |
| 28 |
27 |
| 29 void |
28 void |
| 30 gaim_url_fetch(handle, url, full, user_agent, http11, cb) |
29 gaim_url_fetch(handle, url, full, user_agent, http11, cb) |
| 31 Gaim::Plugin handle |
30 Gaim::Plugin handle |
| 32 const char *url |
31 const char *url |
| 33 gboolean full |
32 gboolean full |
| 34 const char *user_agent |
33 const char *user_agent |
| 35 gboolean http11 |
34 gboolean http11 |
| 36 SV * cb |
35 SV * cb |
| 37 CODE: |
36 CODE: |
| 38 GaimPerlUrlData *gpr; |
37 GaimPerlUrlData *gpr; |
| 39 STRLEN len; |
38 STRLEN len; |
| 40 char *basename, *package; |
39 char *basename, *package; |
| 41 |
40 |
| 42 basename = g_path_get_basename(handle->path); |
41 basename = g_path_get_basename(handle->path); |
| 43 gaim_perl_normalize_script_name(basename); |
42 gaim_perl_normalize_script_name(basename); |
| 44 package = g_strdup_printf("Gaim::Script::%s", basename); |
43 package = g_strdup_printf("Gaim::Script::%s", basename); |
| 45 gpr = g_new(GaimPerlUrlData, 1); |
44 gpr = g_new(GaimPerlUrlData, 1); |
| 46 |
45 |
| 47 gpr->cb = g_strdup_printf("%s::%s", package, SvPV(cb, len)); |
46 gpr->cb = g_strdup_printf("%s::%s", package, SvPV(cb, len)); |
| 48 gaim_url_fetch(url, full, user_agent, http11, gaim_perl_util_url_cb, gpr); |
47 gaim_url_fetch(url, full, user_agent, http11, gaim_perl_util_url_cb, gpr); |
| 49 |
48 |
| 50 int |
49 int |
| 51 gaim_build_dir(path, mode) |
50 gaim_build_dir(path, mode) |
| 52 const char *path |
51 const char *path |
| 53 int mode |
52 int mode |
| 54 |
53 |
| 55 const char * |
54 const char * |
| 56 gaim_date() |
55 gaim_date() |
| 57 |
|
| 58 |
56 |
| 59 const char * |
57 const char * |
| 60 gaim_date_full() |
58 gaim_date_full() |
| 61 |
59 |
| 62 |
60 gboolean |
| 63 gboolean |
|
| 64 gaim_email_is_valid(address) |
61 gaim_email_is_valid(address) |
| 65 const char *address |
62 const char *address |
| 66 |
63 |
| 67 const char * |
64 const char * |
| 68 gaim_escape_filename(str) |
65 gaim_escape_filename(str) |
| 72 gaim_fd_get_ip(fd) |
69 gaim_fd_get_ip(fd) |
| 73 int fd |
70 int fd |
| 74 |
71 |
| 75 const gchar * |
72 const gchar * |
| 76 gaim_home_dir() |
73 gaim_home_dir() |
| 77 |
74 |
| 78 |
75 gboolean |
| 79 gboolean |
|
| 80 gaim_markup_extract_info_field(str, len, dest, start_token, skip, end_token, check_value, no_value_token, display_name, is_link, link_prefix) |
76 gaim_markup_extract_info_field(str, len, dest, start_token, skip, end_token, check_value, no_value_token, display_name, is_link, link_prefix) |
| 81 const char *str |
77 const char *str |
| 82 int len |
78 int len |
| 83 GString *dest |
79 GString *dest |
| 84 const char *start_token |
80 const char *start_token |
| 88 const char *no_value_token |
84 const char *no_value_token |
| 89 const char *display_name |
85 const char *display_name |
| 90 gboolean is_link |
86 gboolean is_link |
| 91 const char *link_prefix |
87 const char *link_prefix |
| 92 |
88 |
| 93 gboolean |
89 gboolean |
| 94 gaim_markup_find_tag(needle, haystack, start, end, attributes) |
90 gaim_markup_find_tag(needle, haystack, start, end, attributes) |
| 95 const char *needle |
91 const char *needle |
| 96 const char *haystack |
92 const char *haystack |
| 97 const char **start |
93 const char **start |
| 98 const char **end |
94 const char **end |
| 166 |
162 |
| 167 char * |
163 char * |
| 168 gaim_str_size_to_units(size) |
164 gaim_str_size_to_units(size) |
| 169 size_t size |
165 size_t size |
| 170 |
166 |
| 171 void |
167 void |
| 172 gaim_str_strip_char(str, thechar) |
168 gaim_str_strip_char(str, thechar) |
| 173 char *str |
169 char *str |
| 174 char thechar |
170 char thechar |
| 175 |
171 |
| 176 gchar * |
172 gchar * |
| 177 gaim_str_sub_away_formatters(str, name) |
173 gaim_str_sub_away_formatters(str, name) |
| 178 const char *str |
174 const char *str |
| 179 const char *name |
175 const char *name |
| 180 |
176 |
| 181 time_t |
177 time_t |
| 182 gaim_str_to_time(timestamp, utc) |
178 gaim_str_to_time(timestamp, utc) |
| 183 const char *timestamp |
179 const char *timestamp |
| 184 gboolean utc |
180 gboolean utc |
| 185 |
181 |
| 186 gchar * |
182 gchar * |
| 238 |
234 |
| 239 const char * |
235 const char * |
| 240 gaim_url_encode(str) |
236 gaim_url_encode(str) |
| 241 const char *str |
237 const char *str |
| 242 |
238 |
| 243 |
239 gboolean |
| 244 |
|
| 245 gboolean |
|
| 246 gaim_url_parse(url, ret_host, ret_port, ret_path, ret_user, ret_passwd) |
240 gaim_url_parse(url, ret_host, ret_port, ret_path, ret_user, ret_passwd) |
| 247 const char *url |
241 const char *url |
| 248 char **ret_host |
242 char **ret_host |
| 249 int *ret_port |
243 int *ret_port |
| 250 char **ret_path |
244 char **ret_path |
| 251 char **ret_user |
245 char **ret_user |
| 252 char **ret_passwd |
246 char **ret_passwd |
| 253 |
247 |
| 254 const char * |
248 const char * |
| 255 gaim_user_dir() |
249 gaim_user_dir() |
| 256 |
250 |
| 257 |
251 void |
| 258 void |
|
| 259 gaim_util_set_user_dir(dir) |
252 gaim_util_set_user_dir(dir) |
| 260 const char *dir |
253 const char *dir |
| 261 |
254 |
| 262 gboolean |
255 gboolean |
| 263 gaim_util_write_data_to_file(filename, data, size) |
256 gaim_util_write_data_to_file(filename, data, size) |
| 264 const char *filename |
257 const char *filename |
| 265 const char *data |
258 const char *data |
| 266 size_t size |
259 size_t size |
| 267 |
|