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 + -
显示快捷键?