|
Defines |
#define | srandom(x) srand(x) |
#define | random() rand() |
#define | RANDOM_MASK 0xffffffff |
#define | RANDOM_MAXV RAND_MAX |
#define | TM_YEAR_BASE 1900 |
#define | ESCAPE_CHAR '\\' |
#define | CHAR_IS_SPACE(c) ((c) == ' ' || (c) == '\t' || (c) == '\n') |
#define | CHAR_IS_SAFE(c, strict) (isprint((c)) || (!(strict) && CHAR_IS_SPACE(c))) |
#define | GENERATE_PARSE_UNSIGNED(NAME, TYPE) |
#define | GENERATE_PARSE_UINTX(bits) GENERATE_PARSE_UNSIGNED(CAT2(parse_uint,bits), CAT2(guint,bits)) |
#define | REPLACE(x) { *len = CONST_STRLEN(x); return (x); } |
Functions |
| RCSID ("$Id:misc.c, v 1.114 2005/12/27 13:10:50 cbiere Exp $") |
size_t | strlcpy (gchar *dst, const gchar *src, size_t dst_size) |
| Needs to be defined if we are not using Glib 2.
|
size_t | strlcat (gchar *dst, const gchar *src, size_t dst_size) |
size_t | concat_strings (gchar *dst, size_t size, const gchar *s,...) |
| Concatenates a variable number of NUL-terminated strings into ``dst''.
|
size_t | w_concat_strings (gchar **dst_ptr, const gchar *first,...) |
| Concatenates a variable number of NUL-terminated strings into buffer which will be allocated using walloc().
|
gchar * | is_strprefix (const gchar *str, const gchar *prefix) |
| Checks whether ``prefix'' is a prefix of ``str''.
|
gchar * | is_strcaseprefix (const gchar *str, const gchar *prefix) |
| Checks whether ``prefix'' is a prefix of ``str'' performing an case-insensitive (ASCII only) check.
|
gboolean | file_exists (const gchar *f) |
| Check for file existence.
|
size_t | print_uint16_hex (gchar *dst, guint16 v) |
| Prints the unsigned 16-bit value ``v'' in hexadecimal presentation as NUL-terminated string to ``dst'' and returns the length of the resulting string.
|
size_t | ipv6_to_string_buf (const uint8_t *ipv6, gchar *dst, size_t size) |
| Prints the IPv6 address ``ipv6'' to ``dst''.
|
const gchar * | ipv6_to_string (const guint8 *ipv6) |
| Prints the IPv6 address ``ipv6'' to a static buffer.
|
size_t | ip_to_string_buf (guint32 ip, gchar *buf, size_t size) |
const gchar * | ip_to_string (guint32 ip) |
const gchar * | ip_to_string2 (guint32 ip) |
const gchar * | ip_port_to_string (guint32 ip, guint16 port) |
const gchar * | hostname_port_to_string (const gchar *hostname, guint16 port) |
guint32 | string_to_ip (const gchar *s) |
gboolean | parse_ipv6_addr (const gchar *s, guint8 *dst, const gchar **endptr) |
| Parses an IPv6 address.
|
gboolean | string_to_ip_strict (const gchar *s, guint32 *addr, const gchar **endptr) |
| A strict string to IP address conversion; when other stuff from misc.[ch] is not sufficient.
|
gboolean | string_to_ip_port (const gchar *s, guint32 *ip_ptr, guint16 *port_ptr) |
| Decompiles ip:port into ip and port.
|
const gchar * | local_hostname (void) |
gint | str_chomp (gchar *str, gint len) |
| Remove antepenultimate char of string if it is a "\r" followed by "\n".
|
gboolean | is_absolute_path (const char *path) |
| Check whether path is an absolute path.
|
gboolean | is_directory (const gchar *path) |
| Check whether path is a directory.
|
gboolean | is_regular (const gchar *path) |
| Check whether path points to a regular file.
|
gboolean | is_symlink (const gchar *path) |
| Check whether path is a symbolic link.
|
gchar | size_scale (guint64 v, guint *q, guint *r, const gchar *s) |
| Scales v so that quotient and reminder are both in the range "0..1023".
|
gchar | norm_size_scale (guint64 v, guint *q, guint *r) |
gchar | kb_size_scale (guint64 v, guint *q, guint *r) |
| Same as norm_size_scale() but assumes v is already divided by 1024.
|
const gchar * | short_size (guint64 size) |
const gchar * | short_html_size (guint64 size) |
| Like short_size() but with unbreakable space between the digits and unit.
|
const gchar * | short_kb_size (guint64 size) |
const gchar * | compact_kb_size (guint32 size) |
gchar * | compact_value (gchar *buf, size_t size, guint64 v) |
gchar * | short_value (gchar *buf, size_t size, guint64 v) |
const gchar * | compact_size (guint64 size) |
const gchar * | compact_rate (guint64 rate) |
const gchar * | short_rate (guint64 rate) |
gchar * | short_time (gint t) |
gchar * | short_uptime (gint uptime) |
| Alternate time formatter for uptime.
|
gchar * | guid_hex_str (const gchar *guid) |
gchar * | data_hex_str (const gchar *data, size_t len) |
gint | hex2int (guchar c) |
| Converts a hexadecimal char (0-9, A-F, a-f) to an integer.
|
gint | dec2int (guchar c) |
| Converts a decimal char (0-9) to an integer.
|
gint | alnum2int (guchar c) |
| Converts an alphanumeric char (0-9, A-Z, a-z) to an integer.
|
void | hex2int_init (void) |
| Initializes the lookup table for hex2int().
|
void | dec2int_init (void) |
| Initializes the lookup table for dec2int().
|
void | alnum2int_init (void) |
| Initializes the lookup table for alnum2int().
|
gboolean | hex_to_guid (const gchar *hexguid, gchar *guid) |
| Converts hexadecimal string into a GUID.
|
gchar * | guid_base32_str (const gchar *guid) |
| Converts GUID into its base32 representation, without the trailing padding.
|
gchar * | base32_to_guid (const gchar *base32) |
| Decode the base32 representation of a GUID.
|
gchar * | sha1_base32 (const gchar *sha1) |
| Convert binary SHA1 into a base32 string.
|
gchar * | base32_sha1 (const gchar *base32) |
| Convert base32 string into binary SHA1.
|
const gchar * | timestamp_utc_to_string (time_t date) |
| Convert time to an ISO 8601 timestamp, e.g.
|
size_t | timestamp_to_string_buf (time_t date, gchar *dst, size_t size) |
| Convert time to ISO 8601 date plus time, e.g.
|
const gchar * | timestamp_to_string (time_t date) |
| Convert time to ISO 8601 date plus time, e.g.
|
size_t | time_locale_to_string_buf (time_t t, gchar *dst, size_t size) |
| Convert time (without the date) to a human-readable string using the time representation of the current locale.
|
gint | tm_diff (const struct tm *a, const struct tm *b) |
| Compute the difference in seconds between two tm structs (a - b).
|
size_t | timestamp_rfc822_to_string_buf (time_t date, gchar *buf, size_t size) |
| Convert time to RFC-822 style date, into supplied string buffer.
|
const gchar * | timestamp_rfc822_to_string (time_t date) |
| Convert time to RFC-822 style date.
|
const gchar * | timestamp_rfc822_to_string2 (time_t date) |
| Same as date_to_rfc822_gchar(), to be able to use the two in the same printf() line.
|
size_t | timestamp_rfc1123_to_string_buf (time_t date, gchar *buf, size_t size) |
| Convert time to RFC-1123 style date, into supplied string buffer.
|
const gchar * | timestamp_rfc1123_to_string (time_t date) |
| Convert time to RFC-1123 style date.
|
guint32 | next_pow2 (guint32 n) |
gint | highest_bit_set (guint32 n) |
| Determine the highest bit set in `n', -1 if value was 0.
|
gfloat | force_range (gfloat val, gfloat min, gfloat max) |
| Enforce range boundaries on a given floating point number.
|
guint32 | random_value (guint32 max) |
void | random_init (void) |
| Initialize random number generator.
|
gboolean | is_printable (const gchar *buf, gint len) |
| Check whether buffer contains printable data, suitable for "%s" printing.
|
void | dump_hex_header (FILE *out) |
| Display header line for hex dumps.
|
void | dump_hex (FILE *out, const gchar *title, gconstpointer data, gint b) |
| Displays hex & ascii lines to the terminal (for debug) Displays the "title" then the characters in "s", # of bytes to print in "b".
|
void | locale_strlower (gchar *dst, const gchar *src) |
| Copies ``src'' to ``dst'', converting all upper-case characters to lower-case.
|
void | ascii_strlower (gchar *dst, const gchar *src) |
| Copies ``src'' to ``dst'', converting all ASCII upper-case characters to ASCII lower-case.
|
gint | ascii_strcasecmp (const gchar *s1, const gchar *s2) |
| Same as strcasecmp() but only case-insensitive for ASCII characters.
|
gint | ascii_strncasecmp (const gchar *s1, const gchar *s2, size_t len) |
| Same as strncasecmp() but only case-insensitive for ASCII characters.
|
gchar * | ascii_strcasestr (const gchar *haystack, const gchar *needle) |
| Same as strstr() but case-insensitive with respect to ASCII characters.
|
gint | strcmp_delimit_full (const gchar *a, const gchar *b, const gchar *delimit, gboolean case_sensitive) |
| Compare two strings up to the specified delimiters.
|
gint | strcmp_delimit (const gchar *a, const gchar *b, const gchar *delimit) |
| Compare two strings case-senstive up to the specified delimiters.
|
gint | strcasecmp_delimit (const gchar *a, const gchar *b, const gchar *delimit) |
| Compare two strings case-insensitive up to the specified delimiters.
|
void | guid_random_fill (gchar *xuid) |
| Generate a new random GUID within given `xuid'.
|
gchar * | unique_filename (const gchar *path, const gchar *file, const gchar *ext) |
| Determine unique filename for `file' in `path', with optional trailing extension `ext'.
|
gchar * | hex_escape (const gchar *name, gboolean strict) |
| Escape all non-printable chars into the hexadecimal "\xhh" form.
|
gboolean | escape_control_char (guchar c) |
| Checks whether the given character is a control character that should be escaped.
|
gchar * | control_escape (const gchar *s) |
| Escape all ASCII control chars (except into the hexadecimal "\xhh" form.
|
guint | char_to_printf_escape (guchar c, gchar *esc) |
const gchar * | lazy_string_to_printf_escape (const gchar *src) |
| Escapes a string so that it can be used careless with the POSIX printf tool.
|
gboolean | string_to_ip_and_mask (const gchar *str, guint32 *ip, guint32 *netmask) |
| Extracts the IP address into `ip' and the netmask into `netmask'.
|
gint | do_stat (const gchar *path, struct stat *buf) |
| Wrapper for the stat() system call.
|
gchar * | make_pathname (const gchar *dir, const gchar *file) |
| Create new pathname from the concatenation of the dirname and the basename of the file.
|
gchar * | short_filename (gchar *fullname) |
| Determine stripped down path, removing SRC_PREFIX if present.
|
gint | create_directory (const gchar *dir) |
| Creates the given directory including sub-directories if necessary.
|
gboolean | filepath_exists (const gchar *dir, const gchar *file) |
| Check whether file given by its dirname and its basename exists.
|
size_t | uint32_to_string_buf (guint64 v, gchar *dst, size_t size) |
size_t | uint64_to_string_buf (guint64 v, gchar *dst, size_t size) |
const gchar * | uint32_to_string (guint32 v) |
const gchar * | uint64_to_string (guint64 v) |
const gchar * | uint64_to_string2 (guint64 v) |
gint | parse_major_minor (const gchar *src, gchar const **endptr, guint *major, guint *minor) |
guint8 | find_common_leading (guint32 ip1, guint32 ip2) |
| Find amount of common leading bits between two IP addresses.
|
void | ip_range_split (guint32 lower_ip, guint32 upper_ip, cidr_split_t cb, gpointer udata) |
| Computes the set of CIDR ranges that make up the set of IPs between two boundary IPs, included.
|
signal_handler_t | set_signal (gint signo, signal_handler_t handler) |
| Installs a signal handler.
|
const gchar * | html_escape_replacement (gchar c, size_t *len) |
size_t | html_escape (const gchar *src, gchar *dst, size_t dst_size) |
| Copies the NUL-terminated string ``src'' to ``dst'' replacing all characters which are reserved in HTML with a replacement string.
|
gint | canonize_path (gchar *dst, const gchar *path) |
| Creates the canonical representation of a path.
|
guint | compat_max_fd (void) |
gint | compat_mkdir (const gchar *path, mode_t mode) |
glong | compat_pagesize_intern (void) |
size_t | compat_pagesize (void) |
gpointer | compat_page_align (size_t size) |
| Allocates a page-aligned memory chunk.
|
void | compat_page_free (gpointer p, size_t size) |
gboolean | compat_is_superuser (void) |
void | misc_init (void) |
Variables |
const char | hex_alphabet [] = "0123456789ABCDEF" |
const char | hex_alphabet_lower [] = "0123456789abcdef" |
gint8 | char2int_tabs [3][(size_t)(guchar)-1+1] |
const gint8 * | hex2int_tab = char2int_tabs[0] |
const gint8 * | dec2int_tab = char2int_tabs[1] |
const gint8 * | alnum2int_tab = char2int_tabs[2] |
const gchar | days [7][4] |
const gchar | months [12][4] |
gint | do_errno |