plugins/perl/common/Util.xs

changeset 12783
b88a822b278b
parent 12412
8abe3226695e
child 13033
c98a5209f3b2
equal deleted inserted replaced
12782:b6f0819de992 12783:b88a822b278b
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
100 96
101 char * 97 char *
102 gaim_markup_get_tag_name(tag) 98 gaim_markup_get_tag_name(tag)
103 const char *tag 99 const char *tag
104 100
105 void 101 void
106 gaim_markup_html_to_xhtml(html, dest_xhtml, dest_plain) 102 gaim_markup_html_to_xhtml(html, dest_xhtml, dest_plain)
107 const char *html 103 const char *html
108 char **dest_xhtml 104 char **dest_xhtml
109 char **dest_plain 105 char **dest_plain
110 106
120 116
121 char * 117 char *
122 gaim_markup_strip_html(str) 118 gaim_markup_strip_html(str)
123 const char *str 119 const char *str
124 120
125 gboolean 121 gboolean
126 gaim_message_meify(message, len) 122 gaim_message_meify(message, len)
127 char *message 123 char *message
128 size_t len 124 size_t len
129 125
130 FILE * 126 FILE *
135 const char * 131 const char *
136 gaim_normalize(account, str) 132 gaim_normalize(account, str)
137 Gaim::Account account 133 Gaim::Account account
138 const char *str 134 const char *str
139 135
140 gboolean 136 gboolean
141 gaim_program_is_valid(program) 137 gaim_program_is_valid(program)
142 const char *program 138 const char *program
143 139
144 char * 140 char *
145 gaim_str_add_cr(str) 141 gaim_str_add_cr(str)
148 char * 144 char *
149 gaim_str_binary_to_ascii(binary, len) 145 gaim_str_binary_to_ascii(binary, len)
150 const unsigned char *binary 146 const unsigned char *binary
151 guint len 147 guint len
152 148
153 gboolean 149 gboolean
154 gaim_str_has_prefix(s, p) 150 gaim_str_has_prefix(s, p)
155 const char *s 151 const char *s
156 const char *p 152 const char *p
157 153
158 gboolean 154 gboolean
159 gaim_str_has_suffix(s, x) 155 gaim_str_has_suffix(s, x)
160 const char *s 156 const char *s
161 const char *x 157 const char *x
162 158
163 char * 159 char *
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 *
196 192
197 gchar * 193 gchar *
198 gaim_strdup_withhtml(src) 194 gaim_strdup_withhtml(src)
199 const gchar *src 195 const gchar *src
200 196
201 size_t 197 size_t
202 gaim_strftime(s, max, format, tm) 198 gaim_strftime(s, max, format, tm)
203 char *s 199 char *s
204 size_t max 200 size_t max
205 const char *format 201 const char *format
206 const struct tm *tm 202 const struct tm *tm
213 209
214 char * 210 char *
215 gaim_text_strip_mnemonic(in) 211 gaim_text_strip_mnemonic(in)
216 const char *in 212 const char *in
217 213
218 time_t 214 time_t
219 gaim_time_build(year, month, day, hour, min, sec) 215 gaim_time_build(year, month, day, hour, min, sec)
220 int year 216 int year
221 int month 217 int month
222 int day 218 int day
223 int hour 219 int hour
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

mercurial