diff libpurple/plugins/perl/common/Util.xs @ 15373:5fe8042783c1

Rename gtk/ and libgaim/ to pidgin/ and libpurple/
author Sean Egan <seanegan@gmail.com>
date Sat, 20 Jan 2007 02:32:10 +0000
parents
children 2f8274ce570a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/plugins/perl/common/Util.xs	Sat Jan 20 02:32:10 2007 +0000
@@ -0,0 +1,267 @@
+#include "module.h"
+
+typedef struct {
+	char *cb;
+} GaimPerlUrlData;
+
+static void gaim_perl_util_url_cb(GaimUtilFetchUrlData *url_data, void *user_data, const gchar *url_text, size_t size, const gchar *error_message) {
+	GaimPerlUrlData *gpr = (GaimPerlUrlData *)user_data;
+	dSP;
+	ENTER;
+	SAVETMPS;
+	PUSHMARK(SP);
+
+	XPUSHs(sv_2mortal(newSVpvn(url_text, size)));
+	PUTBACK;
+
+	call_pv(gpr->cb, G_EVAL | G_SCALAR);
+	SPAGAIN;
+
+	g_free(gpr->cb);
+	g_free(gpr);
+
+	PUTBACK;
+	FREETMPS;
+	LEAVE;
+}
+
+MODULE = Gaim::Util  PACKAGE = Gaim::Util  PREFIX = gaim_
+PROTOTYPES: ENABLE
+
+void
+gaim_util_fetch_url(handle, url, full, user_agent, http11, cb)
+	Gaim::Plugin handle
+	const char *url
+	gboolean full
+	const char *user_agent
+	gboolean http11
+	SV * cb
+CODE:
+	GaimPerlUrlData *gpr;
+	STRLEN len;
+	char *basename;
+
+	basename = g_path_get_basename(handle->path);
+	gaim_perl_normalize_script_name(basename);
+	gpr = g_new(GaimPerlUrlData, 1);
+
+	gpr->cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(cb, len));
+	g_free(basename);
+	gaim_util_fetch_url(url, full, user_agent, http11, gaim_perl_util_url_cb, gpr);
+
+int
+gaim_build_dir(path, mode)
+	const char *path
+	int mode
+
+const char *
+gaim_date_format_full(tm)
+	const struct tm *tm
+
+const char *
+gaim_date_format_long(tm)
+	const struct tm *tm
+
+const char *
+gaim_date_format_short(tm)
+	const struct tm *tm
+
+gboolean
+gaim_email_is_valid(address)
+	const char *address
+
+const char *
+gaim_escape_filename(str)
+	const char *str
+
+gchar_own *
+gaim_fd_get_ip(fd)
+	int fd
+
+const gchar *
+gaim_home_dir()
+
+gboolean
+gaim_markup_extract_info_field(str, len, user_info, start_token, skip, end_token, check_value, no_value_token, display_name, is_link, link_prefix, format_cb)
+	const char *str
+	int len
+	Gaim::NotifyUserInfo user_info
+	const char *start_token
+	int skip
+	const char *end_token
+	char check_value
+	const char *no_value_token
+	const char *display_name
+	gboolean is_link
+	const char *link_prefix
+	Gaim::Util::InfoFieldFormatCallback format_cb
+
+gboolean
+gaim_markup_find_tag(needle, haystack, start, end, attributes)
+	const char *needle
+	const char *haystack
+	const char **start
+	const char **end
+	GData **attributes
+
+gchar_own *
+gaim_markup_get_tag_name(tag)
+	const char *tag
+
+void
+gaim_markup_html_to_xhtml(html, dest_xhtml, dest_plain)
+	const char *html
+	char **dest_xhtml
+	char **dest_plain
+
+gchar_own *
+gaim_markup_linkify(str)
+	const char *str
+
+gchar_own *
+gaim_markup_slice(str, x, y)
+	const char *str
+	guint x
+	guint y
+
+gchar_own *
+gaim_markup_strip_html(str)
+	const char *str
+
+gboolean
+gaim_message_meify(message, len)
+	char *message
+	size_t len
+
+FILE *
+gaim_mkstemp(path, binary)
+	char **path
+	gboolean binary
+
+const char *
+gaim_normalize(account, str)
+	Gaim::Account account
+	const char *str
+
+gboolean
+gaim_program_is_valid(program)
+	const char *program
+
+gchar_own *
+gaim_str_add_cr(str)
+	const char *str
+
+gchar_own *
+gaim_str_binary_to_ascii(binary, len)
+	const unsigned char *binary
+	guint len
+
+gboolean
+gaim_str_has_prefix(s, p)
+	const char *s
+	const char *p
+
+gboolean
+gaim_str_has_suffix(s, x)
+	const char *s
+	const char *x
+
+gchar_own *
+gaim_str_seconds_to_string(sec)
+	guint sec
+
+gchar_own *
+gaim_str_size_to_units(size)
+	size_t size
+
+void
+gaim_str_strip_char(str, thechar)
+	char *str
+	char thechar
+
+time_t
+gaim_str_to_time(timestamp, utc = FALSE, tm = NULL, tz_off = NULL, rest = NULL)
+	const char *timestamp
+	gboolean utc
+	struct tm *tm
+	long *tz_off
+	const char **rest
+
+gchar_own *
+gaim_strcasereplace(string, delimiter, replacement)
+	const char *string
+	const char *delimiter
+	const char *replacement
+
+const char *
+gaim_strcasestr(haystack, needle)
+	const char *haystack
+	const char *needle
+
+gchar_own *
+gaim_strdup_withhtml(src)
+	const gchar *src
+
+gchar_own *
+gaim_strreplace(string, delimiter, replacement)
+	const char *string
+	const char *delimiter
+	const char *replacement
+
+gchar_own *
+gaim_text_strip_mnemonic(in)
+	const char *in
+
+time_t
+gaim_time_build(year, month, day, hour, min, sec)
+	int year
+	int month
+	int day
+	int hour
+	int min
+	int sec
+
+const char *
+gaim_time_format(tm)
+	const struct tm *tm
+
+const char *
+gaim_unescape_filename(str)
+	const char *str
+
+gchar_own *
+gaim_unescape_html(html)
+	const char *html
+
+const char *
+gaim_url_decode(str)
+	const char *str
+
+const char *
+gaim_url_encode(str)
+	const char *str
+
+gboolean
+gaim_url_parse(url, ret_host, ret_port, ret_path, ret_user, ret_passwd)
+	const char *url
+	char **ret_host
+	int *ret_port
+	char **ret_path
+	char **ret_user
+	char **ret_passwd
+
+const char *
+gaim_user_dir()
+
+const char *
+gaim_utf8_strftime(const char *format, const struct tm *tm);
+
+void
+gaim_util_set_user_dir(dir)
+	const char *dir
+
+gboolean
+gaim_util_write_data_to_file(filename, data, size)
+	const char *filename
+	const char *data
+	size_t size