util.xs

来自「Linux下的多协议即时通讯程序源代码」· XS 代码 · 共 280 行

XS
280
字号
#include "module.h"typedef struct {	char *cb;} PurplePerlUrlData;static void purple_perl_util_url_cb(PurpleUtilFetchUrlData *url_data, void *user_data, const gchar *url_text, size_t size, const gchar *error_message) {	PurplePerlUrlData *gpr = (PurplePerlUrlData *)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 = Purple::Util  PACKAGE = Purple::Util  PREFIX = purple_PROTOTYPES: ENABLEintpurple_build_dir(path, mode)	const char *path	int modegbooleanpurple_email_is_valid(address)	const char *addressconst char *purple_escape_filename(str)	const char *strgchar_own *purple_fd_get_ip(fd)	int fdconst gchar *purple_home_dir()gbooleanpurple_message_meify(message, len)	char *message	size_t lenFILE *purple_mkstemp(path, binary)	char **path	gboolean binaryconst char *purple_normalize(account, str)	Purple::Account account	const char *strgbooleanpurple_program_is_valid(program)	const char *programgchar_own *purple_strcasereplace(string, delimiter, replacement)	const char *string	const char *delimiter	const char *replacementconst char *purple_strcasestr(haystack, needle)	const char *haystack	const char *needlegchar_own *purple_strdup_withhtml(src)	const gchar *srcgchar_own *purple_strreplace(string, delimiter, replacement)	const char *string	const char *delimiter	const char *replacementgchar_own *purple_text_strip_mnemonic(in)	const char *intime_tpurple_time_build(year, month, day, hour, min, sec)	int year	int month	int day	int hour	int min	int secconst char *purple_time_format(tm)	const struct tm *tmconst char *purple_unescape_filename(str)	const char *strgchar_own *purple_unescape_html(html)	const char *htmlconst char *purple_url_decode(str)	const char *strconst char *purple_url_encode(str)	const char *strgbooleanpurple_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_passwdconst char *purple_user_dir()const char *purple_utf8_strftime(const char *format, const struct tm *tm);MODULE = Purple::Util  PACKAGE = Purple::Util::Str  PREFIX = purple_str_PROTOTYPES: ENABLEgchar_own *purple_str_add_cr(str)	const char *strgchar_own *purple_str_binary_to_ascii(binary, len)	const unsigned char *binary	guint lengbooleanpurple_str_has_prefix(s, p)	const char *s	const char *pgbooleanpurple_str_has_suffix(s, x)	const char *s	const char *xgchar_own *purple_str_seconds_to_string(sec)	guint secgchar_own *purple_str_size_to_units(size)	size_t sizevoidpurple_str_strip_char(str, thechar)	char *str	char thechartime_tpurple_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 **restMODULE = Purple::Util  PACKAGE = Purple::Util::Date  PREFIX = purple_date_PROTOTYPES: ENABLEconst char *purple_date_format_full(tm)	const struct tm *tmconst char *purple_date_format_long(tm)	const struct tm *tmconst char *purple_date_format_short(tm)	const struct tm *tmMODULE = Purple::Util  PACKAGE = Purple::Util::Markup  PREFIX = purple_markup_PROTOTYPES: ENABLEgbooleanpurple_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	Purple::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	Purple::Util::InfoFieldFormatCallback format_cbgbooleanpurple_markup_find_tag(needle, haystack, start, end, attributes)	const char *needle	const char *haystack	const char **start	const char **end	GData **attributesgchar_own *purple_markup_get_tag_name(tag)	const char *tagvoidpurple_markup_html_to_xhtml(html, dest_xhtml, dest_plain)	const char *html	char **dest_xhtml	char **dest_plaingchar_own *purple_markup_linkify(str)	const char *strgchar_own *purple_markup_slice(str, x, y)	const char *str	guint x	guint ygchar_own *purple_markup_strip_html(str)	const char *strMODULE = Purple::Util  PACKAGE = Purple::Util  PREFIX = purple_util_PROTOTYPES: ENABLEvoidpurple_util_fetch_url(handle, url, full, user_agent, http11, cb)	Purple::Plugin handle	const char *url	gboolean full	const char *user_agent	gboolean http11	SV * cbCODE:	PurplePerlUrlData *gpr;	STRLEN len;	char *basename;	basename = g_path_get_basename(handle->path);	purple_perl_normalize_script_name(basename);	gpr = g_new(PurplePerlUrlData, 1);	gpr->cb = g_strdup_printf("Purple::Script::%s::%s", basename, SvPV(cb, len));	g_free(basename);	purple_util_fetch_url(url, full, user_agent, http11, purple_perl_util_url_cb, gpr);voidpurple_util_set_user_dir(dir)	const char *dirgbooleanpurple_util_write_data_to_file(filename, data, size)	const char *filename	const char *data	size_t size

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?