#include <stdio.h>
#include "account.h"
Include dependency graph for util.h:
Go to the source code of this file.
Defines | |
#define | gaim_add_eight(x) ((x)+8) |
Adds 8 to something. | |
Functions | |
const char * | gaim_unescape_filename (const char *str) |
Does the reverse of gaim_escape_filename. | |
const char * | gaim_escape_filename (const char *str) |
Escapes filesystem-unfriendly characters from a filename. | |
Base16 Functions | |
unsigned char * | gaim_base16_encode (const unsigned char *str, int len) |
Converts a string to its base-16 equivalent. | |
int | gaim_base16_decode (const char *str, unsigned char **ret_str) |
Converts a string back from its base-16 equivalent. | |
Base64 Functions | |
unsigned char * | gaim_base64_encode (const unsigned char *buf, size_t len) |
Converts a string to its base-64 equivalent. | |
void | gaim_base64_decode (const char *str, char **ret_str, int *ret_len) |
Converts a string back from its base-64 equivalent. | |
Quoted Printable Functions | |
void | gaim_quotedp_decode (const char *str, char **ret_str, int *ret_len) |
Converts a quoted printable string back to its readable equivalent. | |
MIME Functions | |
char * | gaim_mime_decode_field (const char *str) |
Converts a MIME header field string back to its readable equivalent according to RFC 2047. | |
Date/Time Functions | |
const char * | gaim_date (void) |
Returns the current local time in hour:minute:second form. | |
const char * | gaim_date_full (void) |
Returns the date and time in human-readable form. | |
time_t | gaim_time_build (int year, int month, int day, int hour, int min, int sec) |
Builds a time_t from the supplied information. | |
time_t | gaim_str_to_time (const char *timestamp, gboolean utc) |
Parses a timestamp in jabber or ISO8601 format and returns a time_t. | |
Markup Functions | |
gboolean | gaim_markup_find_tag (const char *needle, const char *haystack, const char **start, const char **end, GData **attributes) |
Finds a HTML tag matching the given name. | |
gboolean | gaim_markup_extract_info_field (const char *str, int len, GString *dest, 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) |
Extracts a field of data from HTML. | |
void | gaim_markup_html_to_xhtml (const char *html, char **dest_xhtml, char **dest_plain) |
Converts HTML markup to XHTML. | |
char * | gaim_markup_strip_html (const char *str) |
Strips HTML tags from a string. | |
char * | gaim_markup_linkify (const char *str) |
Adds the necessary HTML code to turn URIs into HTML links in a string. | |
char * | gaim_escape_html (const char *html) |
Escapes HTML special characters to be displayed literally. | |
char * | gaim_unescape_html (const char *html) |
Unescapes HTML entities to their literal characters. | |
char * | gaim_markup_slice (const char *str, guint x, guint y) |
Returns a newly allocated substring of the HTML UTF-8 string "str". | |
char * | gaim_markup_get_tag_name (const char *tag) |
Returns a newly allocated string containing the name of the tag located at "tag". | |
Path/Filename Functions | |
const gchar * | gaim_home_dir (void) |
Returns the user's home directory. | |
char * | gaim_user_dir (void) |
Returns the gaim settings directory in the user's home directory. | |
void | set_gaim_user_dir (const char *dir) |
Define a custom gaim settings directory, overriding the default (user's home directory/.gaim). | |
int | gaim_build_dir (const char *path, int mode) |
Builds a complete path from the root, making any directories along the path which do not already exist. | |
FILE * | gaim_mkstemp (char **path) |
Creates a temporary file and returns a file pointer to it. | |
gboolean | gaim_program_is_valid (const char *program) |
Checks if the given program name is valid and executable. | |
char * | gaim_fd_get_ip (int fd) |
Returns the IP address from a socket file descriptor. | |
String Functions | |
const char * | gaim_normalize (const GaimAccount *account, const char *str) |
Normalizes a string, so that it is suitable for comparison. | |
const char * | gaim_normalize_nocase (const GaimAccount *account, const char *str) |
Normalizes a string, so that it is suitable for comparison. | |
gboolean | gaim_str_has_prefix (const char *s, const char *p) |
Compares two strings to see if the first contains the second as a proper prefix. | |
gboolean | gaim_str_has_suffix (const char *s, const char *x) |
Compares two strings to see if the second is a proper suffix of the first. | |
gchar * | gaim_str_sub_away_formatters (const char *str, const char *name) |
Looks for n, d, or t in a string, and replaces them with the specified name, date, and time, respectively. | |
gchar * | gaim_strdup_withhtml (const gchar *src) |
Duplicates a string and replaces all newline characters from the source string with HTML linebreaks. | |
char * | gaim_str_add_cr (const char *str) |
Ensures that all linefeeds have a matching carriage return. | |
void | gaim_str_strip_cr (char *str) |
Strips all carriage returns from a string. | |
gchar * | gaim_strreplace (const char *string, const char *delimiter, const char *replacement) |
Given a string, this replaces one substring with another and returns a newly allocated string. | |
char * | gaim_utf8_ncr_decode (const char *in) |
Given a string, this replaces any numerical character references in that string with the corresponding actual utf-8 substrings, and returns a newly allocated string. | |
gchar * | gaim_strcasereplace (const char *string, const char *delimiter, const char *replacement) |
Given a string, this replaces one substring with another ignoring case and returns a newly allocated string. | |
const char * | gaim_strcasestr (const char *haystack, const char *needle) |
This is like strstr, except that it ignores ASCII case in searching for the substring. | |
char * | gaim_str_size_to_units (size_t size) |
Returns a string representing a filesize in the appropriate units (MB, KB, GB, etc. | |
char * | gaim_str_seconds_to_string (guint sec) |
Converts seconds into a human-readable form. | |
char * | gaim_str_binary_to_ascii (const unsigned char *binary, guint len) |
Converts a binary string into a NUL terminated ascii string, replacing nonascii characters and characters below SPACE (including NUL) into \xyy, where yy are two hex digits. | |
URI/URL Functions | |
gboolean | gaim_url_parse (const char *url, char **ret_host, int *ret_port, char **ret_path, char **ret_user, char **ret_passwd) |
Parses a URL, returning its host, port, file path, username and password. | |
void | gaim_url_fetch (const char *url, gboolean full, const char *user_agent, gboolean http11, void(*cb)(void *, const char *, size_t), void *data) |
Fetches the data from a URL, and passes it to a callback function. | |
const char * | gaim_url_decode (const char *str) |
Decodes a URL into a plain string. | |
const char * | gaim_url_encode (const char *str) |
Encodes a URL into an escaped string. | |
gboolean | gaim_email_is_valid (const char *address) |
Checks if the given email address is syntactically valid. | |
GList * | gaim_uri_list_extract_uris (const gchar *uri_list) |
This function extracts a list of URIs from the a "text/uri-list" string It was "borrowed" from gnome_uri_list_extract_uris. | |
GList * | gaim_uri_list_extract_filenames (const gchar *uri_list) |
This function extracts a list of filenames from the a "text/uri-list" string It was "borrowed" from gnome_uri_list_extract_filenames. | |
gchar * | gaim_utf8_try_convert (const char *str) |
Attempts to convert a string to UTF-8 from an unknown encoding. | |
gchar * | gaim_utf8_salvage (const char *str) |
Salvages the valid UTF-8 characters from a string, replacing any invalid characters with a filler character (currently hardcoded to '?'). | |
int | gaim_utf8_strcasecmp (const char *a, const char *b) |
Compares two UTF-8 strings. | |
gboolean | gaim_message_meify (char *message, size_t len) |
Checks for messages starting with "/me ". | |
char * | gaim_text_strip_mnemonic (const char *in) |
Removes the underscore characters from a string used identify the mnemonic character. |
gaim
Gaim is the legal property of its developers, whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#define gaim_add_eight | ( | x | ) | ((x)+8) |
Adds 8 to something.
Blame SimGuy.
x | The number to add 8 to. |
int gaim_base16_decode | ( | const char * | str, | |
unsigned char ** | ret_str | |||
) |
Converts a string back from its base-16 equivalent.
str | The string to convert back. | |
ret_str | The returned, non-base-16 string. |
unsigned char* gaim_base16_encode | ( | const unsigned char * | str, | |
int | len | |||
) |
Converts a string to its base-16 equivalent.
str | The string to convert. | |
len | The length of the string. |
void gaim_base64_decode | ( | const char * | str, | |
char ** | ret_str, | |||
int * | ret_len | |||
) |
Converts a string back from its base-64 equivalent.
str | The string to convert back. | |
ret_str | The returned, non-base-64 string. | |
ret_len | The returned string length. |
unsigned char* gaim_base64_encode | ( | const unsigned char * | buf, | |
size_t | len | |||
) |
Converts a string to its base-64 equivalent.
buf | The data to convert. | |
len | The length of the data. |
int gaim_build_dir | ( | const char * | path, | |
int | mode | |||
) |
Builds a complete path from the root, making any directories along the path which do not already exist.
path | The path you wish to create. Note that it must start from the root or this function will fail. | |
mode | Unix-style permissions for this directory. |
const char* gaim_date | ( | void | ) |
Returns the current local time in hour:minute:second form.
The returned string is stored in a static buffer, so the result should be g_strdup()'d if it's intended to be used for long.
const char* gaim_date_full | ( | void | ) |
Returns the date and time in human-readable form.
The returned string is stored in a static buffer, so the result should be g_strdup()'d if it's intended to be used for long.
gboolean gaim_email_is_valid | ( | const char * | address | ) |
Checks if the given email address is syntactically valid.
address | The email address to validate. |
const char* gaim_escape_filename | ( | const char * | str | ) |
Escapes filesystem-unfriendly characters from a filename.
str | The string to translate. |
char* gaim_escape_html | ( | const char * | html | ) |
Escapes HTML special characters to be displayed literally.
For example '&' is replaced by "&" and so on
html | The string in which to escape any HTML special characters |
char* gaim_fd_get_ip | ( | int | fd | ) |
Returns the IP address from a socket file descriptor.
fd | The socket file descriptor. |
NULL
on error. const gchar* gaim_home_dir | ( | void | ) |
gboolean gaim_markup_extract_info_field | ( | const char * | str, | |
int | len, | |||
GString * | dest, | |||
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 | |||
) |
Extracts a field of data from HTML.
This is a scary function. See protocols/msn/msn.c and protocols/yahoo/yahoo_profile.c for example usage.
str | The string to parse. | |
len | The size of str. | |
dest | The destination GString to append the new field info to. | |
start_token | The beginning token. | |
skip | The number of characters to skip after the start token. | |
end_token | The ending token. | |
check_value | The value that the last character must meet. | |
no_value_token | The token indicating no value is given. | |
display_name | The short descriptive name to display for this token. | |
is_link | TRUE if this should be a link, or FALSE otherwise. | |
link_prefix | The prefix for the link. |
gboolean gaim_markup_find_tag | ( | const char * | needle, | |
const char * | haystack, | |||
const char ** | start, | |||
const char ** | end, | |||
GData ** | attributes | |||
) |
Finds a HTML tag matching the given name.
This locates an HTML tag's start and end, and stores its attributes in a GData hash table. The names of the attributes are lower-cased in the hash table, and the name of the tag is case insensitive.
needle | the name of the tag | |
haystack | the null-delimited string to search in | |
start | a pointer to the start of the tag if found | |
end | a pointer to the end of the tag if found | |
attributes | the attributes, if the tag was found |
char* gaim_markup_get_tag_name | ( | const char * | tag | ) |
Returns a newly allocated string containing the name of the tag located at "tag".
Tag is expected to point to a '<', and contain a '>' sometime after that. If there is no '>' and the string is not NUL terminated, this function can be expected to segfault.
tag | The string starting a HTML tag. |
void gaim_markup_html_to_xhtml | ( | const char * | html, | |
char ** | dest_xhtml, | |||
char ** | dest_plain | |||
) |
Converts HTML markup to XHTML.
html | The HTML markup. | |
dest_xhtml | The destination XHTML output. | |
dest_plain | The destination plain-text output. |
char* gaim_markup_linkify | ( | const char * | str | ) |
Adds the necessary HTML code to turn URIs into HTML links in a string.
str | The string to linkify. |
char* gaim_markup_slice | ( | const char * | str, | |
guint | x, | |||
guint | y | |||
) |
Returns a newly allocated substring of the HTML UTF-8 string "str".
The markup is preserved such that the substring will have the same formatting as original string, even though some tags may have been opened before "x", or may close after "y". All open tags are closed at the end of the returned string, in the proper order.
Note that x and y are in character offsets, not byte offsets, and are offsets into an unformatted version of str. Because of this, this function may be sensitive to changes in GtkIMHtml and may break when used with other UI's. libgaim users are encouraged to report and work out any problems encountered.
str | The input NUL terminated, HTML, UTF-8 (or ASCII) string. | |
x | The character offset into an unformatted version of str to begin at. | |
y | The character offset (into an unformatted vesion of str) of one past the last character to include in the slice. |
char* gaim_markup_strip_html | ( | const char * | str | ) |
Strips HTML tags from a string.
str | The string to strip HTML from. |
gboolean gaim_message_meify | ( | char * | message, | |
size_t | len | |||
) |
Checks for messages starting with "/me ".
message | The message to check | |
len | The message length, or -1 |
char* gaim_mime_decode_field | ( | const char * | str | ) |
Converts a MIME header field string back to its readable equivalent according to RFC 2047.
Basically, a header is plain ASCII and can contain any number of sections called "encoded-words." The format of an encoded word is =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= =? designates the beginning of the encoded-word ?= designates the end of the encoded-word ? segments the encoded word into three pieces. The first piece is the character set, the second piece is the encoding, and the third piece is the encoded text.
str | The string to convert back. |
FILE* gaim_mkstemp | ( | char ** | path | ) |
Creates a temporary file and returns a file pointer to it.
This is like mkstemp(), but returns a file pointer and uses a pre-set template. It uses the semantics of tempnam() for the directory to use and allocates the space for the file path.
The caller is responsible for closing the file and removing it when done, as well as freeing the space pointed to by path with g_free().
path | The returned path to the temp file. |
NULL
on failure. const char* gaim_normalize | ( | const GaimAccount * | account, | |
const char * | str | |||
) |
Normalizes a string, so that it is suitable for comparison.
The returned string will point to a static buffer, so if the string is intended to be kept long-term, you must g_strdup() it. Also, calling normalize() twice in the same line will lead to problems.
account | The account the string belongs to. | |
str | The string to normalize. |
const char* gaim_normalize_nocase | ( | const GaimAccount * | account, | |
const char * | str | |||
) |
Normalizes a string, so that it is suitable for comparison.
This is one possible implementation for the PRPL callback function "normalize." It returns a lowercase and UTF-8 normalized version of the string.
account | The account the string belongs to. | |
str | The string to normalize. |
gboolean gaim_program_is_valid | ( | const char * | program | ) |
Checks if the given program name is valid and executable.
program | The file name of the application. |
void gaim_quotedp_decode | ( | const char * | str, | |
char ** | ret_str, | |||
int * | ret_len | |||
) |
Converts a quoted printable string back to its readable equivalent.
str | The string to convert back. | |
ret_str | The returned, readable string. | |
ret_len | The returned string length. |
char* gaim_str_add_cr | ( | const char * | str | ) |
Ensures that all linefeeds have a matching carriage return.
str | The source string. |
char* gaim_str_binary_to_ascii | ( | const unsigned char * | binary, | |
guint | len | |||
) |
Converts a binary string into a NUL terminated ascii string, replacing nonascii characters and characters below SPACE (including NUL) into \xyy, where yy are two hex digits.
Also backslashes are changed into two backslashes (\\). The returned, newly allocated string can be outputted to the console, and must be g_free()d.
binary | A string of random data, possibly with embedded NULs and such. | |
len | The length in bytes of the input string. Must not be 0. |
gboolean gaim_str_has_prefix | ( | const char * | s, | |
const char * | p | |||
) |
Compares two strings to see if the first contains the second as a proper prefix.
s | The string to check. | |
p | The prefix in question. |
gboolean gaim_str_has_suffix | ( | const char * | s, | |
const char * | x | |||
) |
Compares two strings to see if the second is a proper suffix of the first.
s | The string to check. | |
x | The suffix in question. |
char* gaim_str_seconds_to_string | ( | guint | sec | ) |
Converts seconds into a human-readable form.
sec | The seconds. |
char* gaim_str_size_to_units | ( | size_t | size | ) |
Returns a string representing a filesize in the appropriate units (MB, KB, GB, etc.
)
size | The size |
void gaim_str_strip_cr | ( | char * | str | ) |
Strips all carriage returns from a string.
str | The string to strip carriage returns from. |
gchar* gaim_str_sub_away_formatters | ( | const char * | str, | |
const char * | name | |||
) |
Looks for n, d, or t in a string, and replaces them with the specified name, date, and time, respectively.
str | The string that may contain the special variables. | |
name | The sender name. |
time_t gaim_str_to_time | ( | const char * | timestamp, | |
gboolean | utc | |||
) |
Parses a timestamp in jabber or ISO8601 format and returns a time_t.
timestamp | The timestamp | |
utc | Assume UTC if no timezone specified |
gchar* gaim_strcasereplace | ( | const char * | string, | |
const char * | delimiter, | |||
const char * | replacement | |||
) |
Given a string, this replaces one substring with another ignoring case and returns a newly allocated string.
string | The string from which to replace stuff. | |
delimiter | The substring you want replaced. | |
replacement | The substring you want inserted in place of the delimiting substring. |
const char* gaim_strcasestr | ( | const char * | haystack, | |
const char * | needle | |||
) |
This is like strstr, except that it ignores ASCII case in searching for the substring.
haystack | The string to search in. | |
needle | The substring to find. |
gchar* gaim_strdup_withhtml | ( | const gchar * | src | ) |
Duplicates a string and replaces all newline characters from the source string with HTML linebreaks.
src | The source string. |
gchar* gaim_strreplace | ( | const char * | string, | |
const char * | delimiter, | |||
const char * | replacement | |||
) |
Given a string, this replaces one substring with another and returns a newly allocated string.
string | The string from which to replace stuff. | |
delimiter | The substring you want replaced. | |
replacement | The substring you want inserted in place of the delimiting substring. |
char* gaim_text_strip_mnemonic | ( | const char * | in | ) |
Removes the underscore characters from a string used identify the mnemonic character.
in | The string to strip |
time_t gaim_time_build | ( | int | year, | |
int | month, | |||
int | day, | |||
int | hour, | |||
int | min, | |||
int | sec | |||
) |
Builds a time_t from the supplied information.
year | The year. | |
month | The month. | |
day | The day. | |
hour | The hour. | |
min | The minute. | |
sec | The second. |
const char* gaim_unescape_filename | ( | const char * | str | ) |
Does the reverse of gaim_escape_filename.
This will change hex codes and such to their ascii equivalents.
str | The string to translate. |
char* gaim_unescape_html | ( | const char * | html | ) |
Unescapes HTML entities to their literal characters.
For example "&" is replaced by '&' and so on. Actually only "&", """, "<" and ">" are currently supported.
html | The string in which to unescape any HTML entities |
GList* gaim_uri_list_extract_filenames | ( | const gchar * | uri_list | ) |
This function extracts a list of filenames from the a "text/uri-list" string It was "borrowed" from gnome_uri_list_extract_filenames.
uri_list | an uri-list in the standard format. |
GList* gaim_uri_list_extract_uris | ( | const gchar * | uri_list | ) |
This function extracts a list of URIs from the a "text/uri-list" string It was "borrowed" from gnome_uri_list_extract_uris.
uri_list | an uri-list in the standard format. |
const char* gaim_url_decode | ( | const char * | str | ) |
Decodes a URL into a plain string.
This will change hex codes and such to their ascii equivalents.
str | The string to translate. |
const char* gaim_url_encode | ( | const char * | str | ) |
Encodes a URL into an escaped string.
This will change non-alphanumeric characters to hex codes.
str | The string to translate. |
void gaim_url_fetch | ( | const char * | url, | |
gboolean | full, | |||
const char * | user_agent, | |||
gboolean | http11, | |||
void(*)(void *, const char *, size_t) | cb, | |||
void * | data | |||
) |
Fetches the data from a URL, and passes it to a callback function.
url | The URL. | |
full | TRUE if this is the full URL, or FALSE if it's a partial URL. | |
user_agent | The user agent field to use, or NULL. | |
http11 | TRUE if HTTP/1.1 should be used to download the file. | |
cb | The callback function. | |
data | The user data to pass to the callback function. |
gboolean gaim_url_parse | ( | const char * | url, | |
char ** | ret_host, | |||
int * | ret_port, | |||
char ** | ret_path, | |||
char ** | ret_user, | |||
char ** | ret_passwd | |||
) |
Parses a URL, returning its host, port, file path, username and password.
The returned data must be freed.
url | The URL to parse. | |
ret_host | The returned host. | |
ret_port | The returned port. | |
ret_path | The returned path. | |
ret_user | The returned username. | |
ret_passwd | The returned password. |
char* gaim_user_dir | ( | void | ) |
Returns the gaim settings directory in the user's home directory.
char* gaim_utf8_ncr_decode | ( | const char * | in | ) |
Given a string, this replaces any numerical character references in that string with the corresponding actual utf-8 substrings, and returns a newly allocated string.
in | The string which might contain numerical character references. |
gchar* gaim_utf8_salvage | ( | const char * | str | ) |
Salvages the valid UTF-8 characters from a string, replacing any invalid characters with a filler character (currently hardcoded to '?').
str | The source string. |
int gaim_utf8_strcasecmp | ( | const char * | a, | |
const char * | b | |||
) |
Compares two UTF-8 strings.
a | The first string. | |
b | The second string. |
gchar* gaim_utf8_try_convert | ( | const char * | str | ) |
Attempts to convert a string to UTF-8 from an unknown encoding.
This function checks the locale and tries sane defaults.
str | The source string. |
NULL
if it could not be converted. void set_gaim_user_dir | ( | const char * | dir | ) |
Define a custom gaim settings directory, overriding the default (user's home directory/.gaim).
dir | The custom settings directory |