1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-12-04 14:46:47 -05:00

Doxygen: @relates

This commit is contained in:
Kalle Olavi Niemitalo 2007-07-27 14:14:00 +03:00 committed by Kalle Olavi Niemitalo
parent b70aa312d0
commit 54dfa64c04
20 changed files with 173 additions and 61 deletions

View File

@ -36,6 +36,7 @@ free_history(LIST_OF(struct location) *history)
} }
/** @relates ses_history */
void void
create_history(struct ses_history *history) create_history(struct ses_history *history)
{ {
@ -43,6 +44,7 @@ create_history(struct ses_history *history)
history->current = NULL; history->current = NULL;
} }
/** @relates ses_history */
void void
destroy_history(struct ses_history *history) destroy_history(struct ses_history *history)
{ {
@ -50,6 +52,7 @@ destroy_history(struct ses_history *history)
history->current = NULL; history->current = NULL;
} }
/** @relates ses_history */
void void
clean_unhistory(struct ses_history *history) clean_unhistory(struct ses_history *history)
{ {
@ -63,6 +66,7 @@ clean_unhistory(struct ses_history *history)
} }
} }
/** @relates ses_history */
void void
add_to_history(struct ses_history *history, struct location *loc) add_to_history(struct ses_history *history, struct location *loc)
{ {
@ -75,6 +79,7 @@ add_to_history(struct ses_history *history, struct location *loc)
history->current = loc; history->current = loc;
} }
/** @relates ses_history */
void void
del_from_history(struct ses_history *history, struct location *loc) del_from_history(struct ses_history *history, struct location *loc)
{ {

View File

@ -15,6 +15,7 @@
#include "util/string.h" #include "util/string.h"
/** @relates location */
void void
copy_location(struct location *dst, struct location *src) copy_location(struct location *dst, struct location *src)
{ {

View File

@ -16,7 +16,8 @@ struct location {
void copy_location(struct location *, struct location *); void copy_location(struct location *, struct location *);
/** You probably want to call del_from_history() first! */ /** You probably want to call del_from_history() first!
* @relates location */
void destroy_location(struct location *); void destroy_location(struct location *);
#endif #endif

View File

@ -228,6 +228,7 @@ get_master_session(void)
return NULL; return NULL;
} }
/** @relates session */
struct download * struct download *
get_current_download(struct session *ses) get_current_download(struct session *ses)
{ {
@ -849,6 +850,7 @@ setup_session(struct session *ses, struct uri *uri, struct session *base)
} }
} }
/** @relates session */
struct session * struct session *
init_session(struct session *base_session, struct terminal *term, init_session(struct session *base_session, struct terminal *term,
struct uri *uri, int in_background) struct uri *uri, int in_background)
@ -1282,6 +1284,7 @@ tabwin_func(struct window *tab, struct term_event *ev)
/** /**
* Gets the url being viewed by this session. Writes it into @a str. * Gets the url being viewed by this session. Writes it into @a str.
* A maximum of @a str_size bytes (including null) will be written. * A maximum of @a str_size bytes (including null) will be written.
* @relates session
*/ */
unsigned char * unsigned char *
get_current_url(struct session *ses, unsigned char *str, size_t str_size) get_current_url(struct session *ses, unsigned char *str, size_t str_size)
@ -1307,6 +1310,7 @@ get_current_url(struct session *ses, unsigned char *str, size_t str_size)
/** /**
* Gets the title of the page being viewed by this session. Writes it into * Gets the title of the page being viewed by this session. Writes it into
* @a str. A maximum of @a str_size bytes (including null) will be written. * @a str. A maximum of @a str_size bytes (including null) will be written.
* @relates session
*/ */
unsigned char * unsigned char *
get_current_title(struct session *ses, unsigned char *str, size_t str_size) get_current_title(struct session *ses, unsigned char *str, size_t str_size)
@ -1326,6 +1330,7 @@ get_current_title(struct session *ses, unsigned char *str, size_t str_size)
/** /**
* Gets the url of the link currently selected. Writes it into @a str. * Gets the url of the link currently selected. Writes it into @a str.
* A maximum of @a str_size bytes (including null) will be written. * A maximum of @a str_size bytes (including null) will be written.
* @relates session
*/ */
unsigned char * unsigned char *
get_current_link_url(struct session *ses, unsigned char *str, size_t str_size) get_current_link_url(struct session *ses, unsigned char *str, size_t str_size)
@ -1341,7 +1346,8 @@ get_current_link_url(struct session *ses, unsigned char *str, size_t str_size)
/** get_current_link_name: returns the name of the current link /** get_current_link_name: returns the name of the current link
* (the text between <A> and </A>), @a str is a preallocated string, * (the text between <A> and </A>), @a str is a preallocated string,
* @a str_size includes the null char. */ * @a str_size includes the null char.
* @relates session */
unsigned char * unsigned char *
get_current_link_name(struct session *ses, unsigned char *str, size_t str_size) get_current_link_name(struct session *ses, unsigned char *str, size_t str_size)
{ {
@ -1375,12 +1381,14 @@ get_current_link_in_view(struct document_view *doc_view)
return link && !link_is_form(link) ? link : NULL; return link && !link_is_form(link) ? link : NULL;
} }
/** @relates session */
struct link * struct link *
get_current_session_link(struct session *ses) get_current_session_link(struct session *ses)
{ {
return get_current_link_in_view(current_frame(ses)); return get_current_link_in_view(current_frame(ses));
} }
/** @relates session */
int int
eat_kbd_repeat_count(struct session *ses) eat_kbd_repeat_count(struct session *ses)
{ {

View File

@ -213,14 +213,16 @@ extern enum remote_session_flags remote_session_flags;
* That's nice for encapsulation and already paid out once ;-). */ * That's nice for encapsulation and already paid out once ;-). */
#define cur_loc(x) ((x)->history.current) #define cur_loc(x) ((x)->history.current)
/** Return if we have anything being loaded in this session already. */ /** Return if we have anything being loaded in this session already.
* @relates session */
static inline int static inline int
have_location(struct session *ses) { have_location(struct session *ses) {
return !!cur_loc(ses); return !!cur_loc(ses);
} }
/** Swaps the current session referrer with the new one passed as @a referrer. /** Swaps the current session referrer with the new one passed as @a referrer.
* @a referrer may be NULL. */ * @a referrer may be NULL.
* @relates session */
void set_session_referrer(struct session *ses, struct uri *referrer); void set_session_referrer(struct session *ses, struct uri *referrer);
void void
@ -258,7 +260,8 @@ void free_files(struct session *);
void display_timer(struct session *ses); void display_timer(struct session *ses);
/** session_is_loading() is like !!get_current_download() but doesn't take /** session_is_loading() is like !!get_current_download() but doesn't take
* session.req_sent into account. */ * session.req_sent into account.
* @relates session */
int session_is_loading(struct session *ses); int session_is_loading(struct session *ses);
struct download *get_current_download(struct session *ses); struct download *get_current_download(struct session *ses);

View File

@ -13,14 +13,17 @@ struct bitfield {
unsigned char bits[1]; /**< Strawberry bitfields forever. */ unsigned char bits[1]; /**< Strawberry bitfields forever. */
}; };
/** @relates bitfield */
#define foreach_bitfield_set(bit, bitfield) \ #define foreach_bitfield_set(bit, bitfield) \
for ((bit) = 0; (bit) < (bitfield)->bitsize; (bit)++) \ for ((bit) = 0; (bit) < (bitfield)->bitsize; (bit)++) \
if (test_bitfield_bit(bitfield, bit)) if (test_bitfield_bit(bitfield, bit))
/** @relates bitfield */
#define foreachback_bitfield_set(bit, bitfield) \ #define foreachback_bitfield_set(bit, bitfield) \
for ((bit) = (bitfield)->bitsize; (bit) > 0;) \ for ((bit) = (bitfield)->bitsize; (bit) > 0;) \
if (test_bitfield_bit(bitfield, --bit)) if (test_bitfield_bit(bitfield, --bit))
/** @relates bitfield */
#define foreach_bitfield_cleared(bit, bitfield) \ #define foreach_bitfield_cleared(bit, bitfield) \
for ((bit) = 0; (bit) < (bitfield)->bitsize; (bit)++) \ for ((bit) = 0; (bit) < (bitfield)->bitsize; (bit)++) \
if (!test_bitfield_bit(bitfield, bit)) if (!test_bitfield_bit(bitfield, bit))
@ -32,7 +35,8 @@ struct bitfield {
/* +7 to round up to nearest byte. */ /* +7 to round up to nearest byte. */
#define get_bitfield_byte_size(bits) ((size_t) (((bits) + 7) / 8)) #define get_bitfield_byte_size(bits) ((size_t) (((bits) + 7) / 8))
/** Allocate a bitfield containing @a bits number of bits. */ /** Allocate a bitfield containing @a bits number of bits.
* @relates bitfield */
static inline struct bitfield * static inline struct bitfield *
init_bitfield(size_t bits) init_bitfield(size_t bits)
{ {
@ -45,7 +49,9 @@ init_bitfield(size_t bits)
return bitfield; return bitfield;
} }
/** Update @a bitfield with the @a bytesize bytes from the bit string in @a bits. */ /** Update @a bitfield with the @a bytesize bytes from the bit string
* in @a bits.
* @relates bitfield */
static inline void static inline void
copy_bitfield(struct bitfield *bitfield, copy_bitfield(struct bitfield *bitfield,
const unsigned char *bits, unsigned int bytesize) const unsigned char *bits, unsigned int bytesize)
@ -55,7 +61,8 @@ copy_bitfield(struct bitfield *bitfield,
memcpy(bitfield->bits, bits, bytesize); memcpy(bitfield->bits, bits, bytesize);
} }
/** Test whether @a bit is set in the @a bitfield. */ /** Test whether @a bit is set in the @a bitfield.
* @relates bitfield */
static inline int static inline int
test_bitfield_bit(struct bitfield *bitfield, unsigned int bit) test_bitfield_bit(struct bitfield *bitfield, unsigned int bit)
{ {
@ -70,7 +77,8 @@ test_bitfield_bit(struct bitfield *bitfield, unsigned int bit)
return !!(bitfield->bits[byte_offset] & bit_offset); return !!(bitfield->bits[byte_offset] & bit_offset);
} }
/** Set @a bit in the @a bitfield. */ /** Set @a bit in the @a bitfield.
* @relates bitfield */
static inline void static inline void
set_bitfield_bit(struct bitfield *bitfield, unsigned int bit) set_bitfield_bit(struct bitfield *bitfield, unsigned int bit)
{ {
@ -85,7 +93,8 @@ set_bitfield_bit(struct bitfield *bitfield, unsigned int bit)
bitfield->bits[byte_offset] |= bit_offset; bitfield->bits[byte_offset] |= bit_offset;
} }
/** Unset @a bit in the @a bitfield. */ /** Unset @a bit in the @a bitfield.
* @relates bitfield */
static inline void static inline void
clear_bitfield_bit(struct bitfield *bitfield, unsigned int bit) clear_bitfield_bit(struct bitfield *bitfield, unsigned int bit)
{ {
@ -100,7 +109,8 @@ clear_bitfield_bit(struct bitfield *bitfield, unsigned int bit)
bitfield->bits[byte_offset] &= ~bit_offset; bitfield->bits[byte_offset] &= ~bit_offset;
} }
/** Count the set bits in @a bitfield. */ /** Count the set bits in @a bitfield.
* @relates bitfield */
static inline unsigned int static inline unsigned int
get_bitfield_set_count(struct bitfield *bitfield) get_bitfield_set_count(struct bitfield *bitfield)
{ {
@ -112,7 +122,8 @@ get_bitfield_set_count(struct bitfield *bitfield)
return count; return count;
} }
/** Count the unset bits in @a bitfield. */ /** Count the unset bits in @a bitfield.
* @relates bitfield */
static inline unsigned int static inline unsigned int
get_bitfield_cleared_count(struct bitfield *bitfield) get_bitfield_cleared_count(struct bitfield *bitfield)
{ {
@ -124,7 +135,8 @@ get_bitfield_cleared_count(struct bitfield *bitfield)
return count; return count;
} }
/** Check whether all bits of @a bitfield are set. */ /** Check whether all bits of @a bitfield are set.
* @relates bitfield */
static inline unsigned int static inline unsigned int
bitfield_is_set(struct bitfield *bitfield) bitfield_is_set(struct bitfield *bitfield)
{ {
@ -136,7 +148,8 @@ bitfield_is_set(struct bitfield *bitfield)
return 1; return 1;
} }
/** Check whether all bits of @a bitfield are unset. */ /** Check whether all bits of @a bitfield are unset.
* @relates bitfield */
static inline unsigned int static inline unsigned int
bitfield_is_cleared(struct bitfield *bitfield) bitfield_is_cleared(struct bitfield *bitfield)
{ {

View File

@ -9,6 +9,7 @@ struct box {
int height; int height;
}; };
/** @relates box */
static inline int static inline int
is_in_box(struct box *box, int x, int y) is_in_box(struct box *box, int x, int y)
{ {
@ -17,12 +18,14 @@ is_in_box(struct box *box, int x, int y)
&& y < box->y + box->height); && y < box->y + box->height);
} }
/** @relates box */
static inline int static inline int
row_is_in_box(struct box *box, int y) row_is_in_box(struct box *box, int y)
{ {
return (y >= box->y && y < box->y + box->height); return (y >= box->y && y < box->y + box->height);
} }
/** @relates box */
static inline int static inline int
col_is_in_box(struct box *box, int x) col_is_in_box(struct box *box, int x)
{ {
@ -30,7 +33,8 @@ col_is_in_box(struct box *box, int x)
} }
/** Check whether a span of columns is in @a box. /** Check whether a span of columns is in @a box.
* Mainly intended for use with double-width characters. */ * Mainly intended for use with double-width characters.
* @relates box */
static inline int static inline int
colspan_is_in_box(struct box *box, int x, int span) colspan_is_in_box(struct box *box, int x, int span)
{ {
@ -38,6 +42,7 @@ colspan_is_in_box(struct box *box, int x, int span)
} }
/** @relates box */
static inline void static inline void
set_box(struct box *box, int x, int y, int width, int height) set_box(struct box *box, int x, int y, int width, int height)
{ {
@ -47,6 +52,7 @@ set_box(struct box *box, int x, int y, int width, int height)
box->height = height; box->height = height;
} }
/** @relates box */
static inline void static inline void
copy_box(struct box *dst, struct box *src) copy_box(struct box *dst, struct box *src)
{ {

View File

@ -127,6 +127,7 @@ elinks_longcat(unsigned char *s, unsigned int *slen,
} }
/** @relates string */
struct string * struct string *
add_long_to_string(struct string *string, long number) add_long_to_string(struct string *string, long number)
{ {
@ -143,6 +144,7 @@ add_long_to_string(struct string *string, long number)
return add_bytes_to_string(string, buffer, length); return add_bytes_to_string(string, buffer, length);
} }
/** @relates string */
struct string * struct string *
add_knum_to_string(struct string *string, long num) add_knum_to_string(struct string *string, long num)
{ {
@ -169,6 +171,7 @@ add_knum_to_string(struct string *string, long num)
return string; return string;
} }
/** @relates string */
struct string * struct string *
add_xnum_to_string(struct string *string, off_t xnum) add_xnum_to_string(struct string *string, off_t xnum)
{ {
@ -202,6 +205,7 @@ add_xnum_to_string(struct string *string, off_t xnum)
return string; return string;
} }
/** @relates string */
struct string * struct string *
add_duration_to_string(struct string *string, long seconds) add_duration_to_string(struct string *string, long seconds)
{ {
@ -236,6 +240,7 @@ add_duration_to_string(struct string *string, long seconds)
return string; return string;
} }
/** @relates string */
struct string * struct string *
add_timeval_to_string(struct string *string, timeval_T *timeval) add_timeval_to_string(struct string *string, timeval_T *timeval)
{ {

View File

@ -53,7 +53,8 @@ struct string *add_timeval_to_string(struct string *string, timeval_T *timeval);
#ifdef HAVE_STRFTIME #ifdef HAVE_STRFTIME
/** Uses strftime() to format @a time according to @a format and adds /** Uses strftime() to format @a time according to @a format and adds
* the result to @a string. If @a time is NULL, time(NULL) will be * the result to @a string. If @a time is NULL, time(NULL) will be
* used. */ * used.
* @relates string */
struct string *add_date_to_string(struct string *string, struct string *add_date_to_string(struct string *string,
const unsigned char *format, const unsigned char *format,
const time_t *time); const time_t *time);
@ -67,16 +68,19 @@ struct string *add_date_to_string(struct string *string,
* @{ */ * @{ */
/** A simple generic encoder. Should maybe take @a replaceable as a /** A simple generic encoder. Should maybe take @a replaceable as a
* string so we could also use it for adding shell safe strings. */ * string so we could also use it for adding shell safe strings.
* @relates string */
struct string * struct string *
add_string_replace(struct string *string, unsigned char *src, int len, add_string_replace(struct string *string, unsigned char *src, int len,
unsigned char replaceable, unsigned char replacement); unsigned char replaceable, unsigned char replacement);
/** @relates string */
#define add_optname_to_string(str, src, len) \ #define add_optname_to_string(str, src, len) \
add_string_replace(str, src, len, '.', '*') add_string_replace(str, src, len, '.', '*')
/** Maybe a bad name but it is actually the real name, but you may /** Maybe a bad name but it is actually the real name, but you may
* also think of it as adding the decoded option name. */ * also think of it as adding the decoded option name.
* @relates string */
#define add_real_optname_to_string(str, src, len) \ #define add_real_optname_to_string(str, src, len) \
add_string_replace(str, src, len, '*', '.') add_string_replace(str, src, len, '*', '.')
@ -85,24 +89,29 @@ add_string_replace(struct string *string, unsigned char *src, int len,
* resulting HTML will be parsed with the same charset as the original * resulting HTML will be parsed with the same charset as the original
* string. (This function cannot use the @&@#160; syntax for non-ASCII, * string. (This function cannot use the @&@#160; syntax for non-ASCII,
* because HTML wants Unicode numbers there and this function does not * because HTML wants Unicode numbers there and this function does not
* know the charset of the input data.) */ * know the charset of the input data.)
* @relates string */
struct string *add_html_to_string(struct string *string, const unsigned char *html, int htmllen); struct string *add_html_to_string(struct string *string, const unsigned char *html, int htmllen);
/** Convert reserved or non-ASCII chars to html @&@#xx;. The resulting /** Convert reserved or non-ASCII chars to html @&@#xx;. The resulting
* string can be correctly parsed in any charset where bytes * string can be correctly parsed in any charset where bytes
* 0x20...0x7E match ASCII. */ * 0x20...0x7E match ASCII.
* @relates string */
struct string *add_cp_html_to_string(struct string *string, int src_codepage, struct string *add_cp_html_to_string(struct string *string, int src_codepage,
const unsigned char *html, int htmllen); const unsigned char *html, int htmllen);
/** Escapes @\ and " with a @\ */ /** Escapes @\ and " with a @\
* @relates string */
struct string *add_quoted_to_string(struct string *string, const unsigned char *q, int qlen); struct string *add_quoted_to_string(struct string *string, const unsigned char *q, int qlen);
/** Adds ', @a len bytes of @a src with all single-quotes converted to '\'', /** Adds ', @a len bytes of @a src with all single-quotes converted to '\'',
* and ' to @a string. */ * and ' to @a string.
* @relates string */
struct string *add_shell_quoted_to_string(struct string *string, struct string *add_shell_quoted_to_string(struct string *string,
unsigned char *src, int len); unsigned char *src, int len);
/* Escapes non shell safe chars with '_'. */ /* Escapes non shell safe chars with '_'.
* @relates string */
struct string *add_shell_safe_to_string(struct string *string, unsigned char *cmd, int cmdlen); struct string *add_shell_safe_to_string(struct string *string, unsigned char *cmd, int cmdlen);
/** @} */ /** @} */

View File

@ -41,16 +41,19 @@ struct fastfind_index {
* @param flags control case sensitivity, compression * @param flags control case sensitivity, compression
* *
* This function must be called once and only once per list. * This function must be called once and only once per list.
* Failure is not an option, so call it at startup. */ * Failure is not an option, so call it at startup.
* @relates fastfind_index */
struct fastfind_index *fastfind_index(struct fastfind_index *index, enum fastfind_flags flags); struct fastfind_index *fastfind_index(struct fastfind_index *index, enum fastfind_flags flags);
/* The main reason of all that stuff is here. */ /* The main reason of all that stuff is here. */
/** Search the index for @a key with length @a key_len using the /** Search the index for @a key with length @a key_len using the
* @a index' handle created with fastfind_index(). */ * @a index' handle created with fastfind_index().
* @relates fastfind_index */
void *fastfind_search(struct fastfind_index *index, unsigned char *key, int key_len); void *fastfind_search(struct fastfind_index *index, unsigned char *key, int key_len);
/** Fastfind cleanup. It frees the given @a index. /** Fastfind cleanup. It frees the given @a index.
* Must be called once per list. */ * Must be called once per list.
* @relates fastfind_index */
void fastfind_done(struct fastfind_index *index); void fastfind_done(struct fastfind_index *index);
#endif #endif

View File

@ -51,12 +51,14 @@ init_hash(unsigned int width, hash_func_T func)
return hash; return hash;
} }
/** @relates hash */
struct hash * struct hash *
init_hash8(void) init_hash8(void)
{ {
return init_hash(8, &strhash); return init_hash(8, &strhash);
} }
/** @relates hash */
void void
free_hash(struct hash **hashp) free_hash(struct hash **hashp)
{ {
@ -77,7 +79,8 @@ free_hash(struct hash **hashp)
* anyway.. ;) --pasky */ * anyway.. ;) --pasky */
#define HASH_MAGIC 0xdeadbeef #define HASH_MAGIC 0xdeadbeef
/** @returns hash_item if ok, NULL if error. */ /** @returns hash_item if ok, NULL if error.
* @relates hash */
struct hash_item * struct hash_item *
add_hash_item(struct hash *hash, unsigned char *key, unsigned int keylen, add_hash_item(struct hash *hash, unsigned char *key, unsigned int keylen,
void *value) void *value)
@ -98,6 +101,7 @@ add_hash_item(struct hash *hash, unsigned char *key, unsigned int keylen,
return item; return item;
} }
/** @relates hash */
struct hash_item * struct hash_item *
get_hash_item(struct hash *hash, unsigned char *key, unsigned int keylen) get_hash_item(struct hash *hash, unsigned char *key, unsigned int keylen)
{ {
@ -127,7 +131,8 @@ get_hash_item(struct hash *hash, unsigned char *key, unsigned int keylen)
/** Delete @a item from @a hash. /** Delete @a item from @a hash.
* If key and/or value were dynamically allocated, think about freeing them. * If key and/or value were dynamically allocated, think about freeing them.
* This function doesn't do that. */ * This function doesn't do that.
* @relates hash */
void void
del_hash_item(struct hash *hash, struct hash_item *item) del_hash_item(struct hash *hash, struct hash_item *item)
{ {

View File

@ -31,6 +31,7 @@ struct hash_item *add_hash_item(struct hash *hash, unsigned char *key, unsigned
struct hash_item *get_hash_item(struct hash *hash, unsigned char *key, unsigned int keylen); struct hash_item *get_hash_item(struct hash *hash, unsigned char *key, unsigned int keylen);
void del_hash_item(struct hash *hash, struct hash_item *item); void del_hash_item(struct hash *hash, struct hash_item *item);
/** @relates hash */
#define foreach_hash_item(item, hash_table, iterator) \ #define foreach_hash_item(item, hash_table, iterator) \
for (iterator = 0; iterator < (1 << (hash_table).width); iterator++) \ for (iterator = 0; iterator < (1 << (hash_table).width); iterator++) \
foreach (item, (hash_table).hash[iterator]) foreach (item, (hash_table).hash[iterator])

View File

@ -44,7 +44,8 @@ reverse_md5_bytes(unsigned char *buf, unsigned int longs)
} }
/** Start MD5 accumulation. Set bit count to 0 and buffer to mysterious /** Start MD5 accumulation. Set bit count to 0 and buffer to mysterious
* initialization constants. */ * initialization constants.
* @relates md5_context */
void void
init_md5(struct md5_context *ctx) init_md5(struct md5_context *ctx)
{ {
@ -58,7 +59,8 @@ init_md5(struct md5_context *ctx)
} }
/** Update context to reflect the concatenation of another buffer full /** Update context to reflect the concatenation of another buffer full
* of bytes. */ * of bytes.
* @relates md5_context */
void void
update_md5(struct md5_context *ctx, const unsigned char *buf, unsigned long len) update_md5(struct md5_context *ctx, const unsigned char *buf, unsigned long len)
{ {
@ -106,7 +108,8 @@ update_md5(struct md5_context *ctx, const unsigned char *buf, unsigned long len)
} }
/** Final wrapup - pad to 64-byte boundary with the bit pattern 1 0* (64-bit /** Final wrapup - pad to 64-byte boundary with the bit pattern 1 0* (64-bit
* count of bits processed, MSB-first) */ * count of bits processed, MSB-first)
* @relates md5_context */
void void
done_md5(struct md5_context *ctx, md5_digest_bin_T digest) done_md5(struct md5_context *ctx, md5_digest_bin_T digest)
{ {

View File

@ -27,7 +27,8 @@
/** Create a memory list. If @a p is NULL or allocation fails, it will /** Create a memory list. If @a p is NULL or allocation fails, it will
* return NULL. * return NULL.
* It always stops at first NULL element. */ * It always stops at first NULL element.
* @relates memory_list */
#if defined(DEBUG_MEMLIST) && defined(HAVE_VARIADIC_MACROS) #if defined(DEBUG_MEMLIST) && defined(HAVE_VARIADIC_MACROS)
struct memory_list * struct memory_list *
debug_getml(unsigned char *file, int line, void *p, ...) debug_getml(unsigned char *file, int line, void *p, ...)
@ -70,7 +71,8 @@ getml(void *p, ...)
/** Add elements to a memory list. /** Add elements to a memory list.
* If memory list exists, it enlarges it, else it creates it. * If memory list exists, it enlarges it, else it creates it.
* if there's no elements or first element is NULL, it does nothing. * if there's no elements or first element is NULL, it does nothing.
* It always stops at first NULL element. */ * It always stops at first NULL element.
* @relates memory_list */
#if defined(DEBUG_MEMLIST) && defined(HAVE_VARIADIC_MACROS) #if defined(DEBUG_MEMLIST) && defined(HAVE_VARIADIC_MACROS)
void void
debug_add_to_ml(unsigned char *file, int line, struct memory_list **ml, ...) debug_add_to_ml(unsigned char *file, int line, struct memory_list **ml, ...)
@ -124,6 +126,7 @@ add_to_ml(struct memory_list **ml, ...)
va_end(ap); va_end(ap);
} }
/** @relates memory_list */
#ifdef DEBUG_MEMLIST #ifdef DEBUG_MEMLIST
void void
debug_add_one_to_ml(unsigned char *file, int line, struct memory_list **ml, void *p) debug_add_one_to_ml(unsigned char *file, int line, struct memory_list **ml, void *p)
@ -164,7 +167,8 @@ add_one_to_ml(struct memory_list **ml, void *p)
/** Free elements and memory list. /** Free elements and memory list.
* It returns safely if passed a NULL pointer. */ * It returns safely if passed a NULL pointer.
* @relates memory_list */
void void
freeml(struct memory_list *ml) freeml(struct memory_list *ml)
{ {

View File

@ -84,7 +84,8 @@ struct scanner_info {
}; };
/** Initializes the scanner. */ /** Initializes the scanner.
* @relates scanner */
void init_scanner(struct scanner *scanner, struct scanner_info *scanner_info, void init_scanner(struct scanner *scanner, struct scanner_info *scanner_info,
unsigned char *string, unsigned char *end); unsigned char *string, unsigned char *end);
@ -129,12 +130,14 @@ struct scanner {
struct scanner_token table[SCANNER_TOKENS]; struct scanner_token table[SCANNER_TOKENS];
}; };
/** @relates scanner */
#define scanner_has_tokens(scanner) \ #define scanner_has_tokens(scanner) \
((scanner)->tokens > 0 && (scanner)->current < (scanner)->table + (scanner)->tokens) ((scanner)->tokens > 0 && (scanner)->current < (scanner)->table + (scanner)->tokens)
/** This macro checks if the current scanner state is valid. Meaning if the /** This macro checks if the current scanner state is valid. Meaning if the
* scanners table is full the last token skipping or get_next_scanner_token() * scanners table is full the last token skipping or get_next_scanner_token()
* call made it possible to get the type of the next token. */ * call made it possible to get the type of the next token.
* @relates scanner */
#define check_scanner(scanner) \ #define check_scanner(scanner) \
(scanner->tokens < SCANNER_TOKENS \ (scanner->tokens < SCANNER_TOKENS \
|| scanner->current + 1 < scanner->table + scanner->tokens) || scanner->current + 1 < scanner->table + scanner->tokens)
@ -143,7 +146,8 @@ struct scanner {
/** @name Scanner table accessors and mutators /** @name Scanner table accessors and mutators
* @{ */ * @{ */
/** Checks the type of the next token */ /** Checks the type of the next token
* @relates scanner */
#define check_next_scanner_token(scanner, token_type) \ #define check_next_scanner_token(scanner, token_type) \
(scanner_has_tokens(scanner) \ (scanner_has_tokens(scanner) \
&& ((scanner)->current + 1 < (scanner)->table + (scanner)->tokens) \ && ((scanner)->current + 1 < (scanner)->table + (scanner)->tokens) \
@ -151,14 +155,16 @@ struct scanner {
/** Access current and next token. Getting the next token might cause /** Access current and next token. Getting the next token might cause
* a rescan so any token pointers that has been stored in a local variable * a rescan so any token pointers that has been stored in a local variable
* might not be valid after the call. */ * might not be valid after the call.
* @relates scanner */
static inline struct scanner_token * static inline struct scanner_token *
get_scanner_token(struct scanner *scanner) get_scanner_token(struct scanner *scanner)
{ {
return scanner_has_tokens(scanner) ? scanner->current : NULL; return scanner_has_tokens(scanner) ? scanner->current : NULL;
} }
/** Do a scanning if we do not have also have access to next token. */ /** Do a scanning if we do not have also have access to next token.
* @relates scanner */
static inline struct scanner_token * static inline struct scanner_token *
get_next_scanner_token(struct scanner *scanner) get_next_scanner_token(struct scanner *scanner)
{ {
@ -167,30 +173,35 @@ get_next_scanner_token(struct scanner *scanner)
? scanner->info->scan(scanner) : get_scanner_token(scanner)); ? scanner->info->scan(scanner) : get_scanner_token(scanner));
} }
/** This should just make the code more understandable .. hopefully */ /** This should just make the code more understandable .. hopefully
* @relates scanner */
#define skip_scanner_token(scanner) get_next_scanner_token(scanner) #define skip_scanner_token(scanner) get_next_scanner_token(scanner)
/** Removes tokens from the scanner until it meets a token of the given type. /** Removes tokens from the scanner until it meets a token of the given type.
* This token will then also be skipped. */ * This token will then also be skipped.
* @relates scanner */
struct scanner_token * struct scanner_token *
skip_scanner_tokens(struct scanner *scanner, int skipto, int precedence); skip_scanner_tokens(struct scanner *scanner, int skipto, int precedence);
/** @} */ /** @} */
/** Looks up the string from @a ident to @a end to in the scanners /** Looks up the string from @a ident to @a end to in the scanners
* string mapping table */ * string mapping table
* @relates scanner */
int int
map_scanner_string(struct scanner *scanner, map_scanner_string(struct scanner *scanner,
unsigned char *ident, unsigned char *end, int base_type); unsigned char *ident, unsigned char *end, int base_type);
#ifdef DEBUG_SCANNER #ifdef DEBUG_SCANNER
/** @relates scanner */
void dump_scanner(struct scanner *scanner); void dump_scanner(struct scanner *scanner);
#endif #endif
/* The begin_token_scanning() and end_token_scanning() functions provide the /* The begin_token_scanning() and end_token_scanning() functions provide the
* basic setup and teardown for the rescan function made public via the * basic setup and teardown for the rescan function made public via the
* scanner_info->scan member. * scanner_info->scan member.
* @returns NULL if it is not necessary to try to scan for more tokens */ * @returns NULL if it is not necessary to try to scan for more tokens
* @relates scanner */
static inline struct scanner_token * static inline struct scanner_token *
begin_token_scanning(struct scanner *scanner) begin_token_scanning(struct scanner *scanner)
{ {
@ -228,7 +239,8 @@ begin_token_scanning(struct scanner *scanner)
* _after_ the last valid token is taken as the @a end argument. * _after_ the last valid token is taken as the @a end argument.
* *
* It is ok for @a end to be < scanner->table since scanner->tokens * It is ok for @a end to be < scanner->table since scanner->tokens
* will become <= 0 anyway. */ * will become <= 0 anyway.
* @relates scanner */
static inline struct scanner_token * static inline struct scanner_token *
end_token_scanning(struct scanner *scanner, struct scanner_token *end) end_token_scanning(struct scanner *scanner, struct scanner_token *end)
{ {

View File

@ -201,6 +201,7 @@ end:
return NULL; return NULL;
} }
/* @relates secure_save_info */
struct secure_save_info * struct secure_save_info *
secure_open(unsigned char *file_name) secure_open(unsigned char *file_name)
{ {
@ -221,7 +222,8 @@ secure_open(unsigned char *file_name)
} }
/** Close a file opened with secure_open(). @returns 0 on success, /** Close a file opened with secure_open(). @returns 0 on success,
* errno or -1 on failure. */ * errno or -1 on failure.
* @relates secure_save_info */
int int
secure_close(struct secure_save_info *ssi) secure_close(struct secure_save_info *ssi)
{ {
@ -300,7 +302,8 @@ free:
/** fputs() wrapper, set ssi->err to errno on error. If ssi->err is set when /** fputs() wrapper, set ssi->err to errno on error. If ssi->err is set when
* called, it immediatly returns EOF. */ * called, it immediatly returns EOF.
* @relates secure_save_info */
int int
secure_fputs(struct secure_save_info *ssi, const char *s) secure_fputs(struct secure_save_info *ssi, const char *s)
{ {
@ -319,7 +322,8 @@ secure_fputs(struct secure_save_info *ssi, const char *s)
/** fputc() wrapper, set ssi->err to errno on error. If ssi->err is set when /** fputc() wrapper, set ssi->err to errno on error. If ssi->err is set when
* called, it immediatly returns EOF. */ * called, it immediatly returns EOF.
* @relates secure_save_info */
int int
secure_fputc(struct secure_save_info *ssi, int c) secure_fputc(struct secure_save_info *ssi, int c)
{ {
@ -337,7 +341,8 @@ secure_fputc(struct secure_save_info *ssi, int c)
} }
/** fprintf() wrapper, set ssi->err to errno on error and return a negative /** fprintf() wrapper, set ssi->err to errno on error and return a negative
* value. If ssi->err is set when called, it immediatly returns -1. */ * value. If ssi->err is set when called, it immediatly returns -1.
* @relates secure_save_info */
int int
secure_fprintf(struct secure_save_info *ssi, const char *format, ...) secure_fprintf(struct secure_save_info *ssi, const char *format, ...)
{ {

View File

@ -287,6 +287,7 @@ done_string(struct string *string)
memset(string, 0, sizeof(*string)); memset(string, 0, sizeof(*string));
} }
/** @relates string */
inline struct string * inline struct string *
add_to_string(struct string *string, const unsigned char *source) add_to_string(struct string *string, const unsigned char *source)
{ {
@ -300,6 +301,7 @@ add_to_string(struct string *string, const unsigned char *source)
return add_bytes_to_string(string, source, strlen(source)); return add_bytes_to_string(string, source, strlen(source));
} }
/** @relates string */
inline struct string * inline struct string *
add_crlf_to_string(struct string *string) add_crlf_to_string(struct string *string)
{ {
@ -318,6 +320,7 @@ add_crlf_to_string(struct string *string)
return string; return string;
} }
/** @relates string */
inline struct string * inline struct string *
add_string_to_string(struct string *string, const struct string *from) add_string_to_string(struct string *string, const struct string *from)
{ {
@ -332,6 +335,7 @@ add_string_to_string(struct string *string, const struct string *from)
return add_bytes_to_string(string, from->source, from->length); return add_bytes_to_string(string, from->source, from->length);
} }
/** @relates string */
struct string * struct string *
add_file_to_string(struct string *string, const unsigned char *filename) add_file_to_string(struct string *string, const unsigned char *filename)
{ {
@ -393,6 +397,7 @@ string_concat(struct string *string, ...)
return string; return string;
} }
/** @relates string */
inline struct string * inline struct string *
add_char_to_string(struct string *string, unsigned char character) add_char_to_string(struct string *string, unsigned char character)
{ {
@ -494,6 +499,7 @@ add_to_string_list(LIST_OF(struct string_list_item) *list,
return string; return string;
} }
/** @relates string_list_item */
void void
free_string_list(LIST_OF(struct string_list_item) *list) free_string_list(LIST_OF(struct string_list_item) *list)
{ {

View File

@ -162,7 +162,8 @@ struct string {
/** Initializes the passed string struct by preallocating the /** Initializes the passed string struct by preallocating the
* string.source member. * string.source member.
* @returns @a string if successful, or NULL if out of memory. * @returns @a string if successful, or NULL if out of memory.
* @post done_string(@a string) is safe, even if this returned NULL. */ * @post done_string(@a string) is safe, even if this returned NULL.
* @relates string */
#ifdef DEBUG_MEMLEAK #ifdef DEBUG_MEMLEAK
struct string *init_string__(const unsigned char *file, int line, struct string *string); struct string *init_string__(const unsigned char *file, int line, struct string *string);
#define init_string(string) init_string__(__FILE__, __LINE__, string) #define init_string(string) init_string__(__FILE__, __LINE__, string)
@ -170,7 +171,8 @@ struct string *init_string__(const unsigned char *file, int line, struct string
struct string *init_string(struct string *string); struct string *init_string(struct string *string);
#endif #endif
/** Resets @a string and free()s the string.source member. */ /** Resets @a string and free()s the string.source member.
* @relates string */
void done_string(struct string *string); void done_string(struct string *string);
@ -182,16 +184,20 @@ struct string *add_file_to_string(struct string *string, const unsigned char *fi
struct string *add_crlf_to_string(struct string *string); struct string *add_crlf_to_string(struct string *string);
/** Adds each C string to @a string until a terminating /** Adds each C string to @a string until a terminating
* (unsigned char *) NULL is met. */ * (unsigned char *) NULL is met.
* @relates string */
struct string *string_concat(struct string *string, ...); struct string *string_concat(struct string *string, ...);
/** Extends the string with @a times number of @a character. */ /** Extends the string with @a times number of @a character.
* @relates string */
struct string *add_xchar_to_string(struct string *string, unsigned char character, int times); struct string *add_xchar_to_string(struct string *string, unsigned char character, int times);
/** Add printf()-style format string to @a string. */ /** Add printf()-style format string to @a string.
* @relates string */
struct string *add_format_to_string(struct string *string, const unsigned char *format, ...); struct string *add_format_to_string(struct string *string, const unsigned char *format, ...);
/** Get a regular newly allocated stream of bytes from @a string. */ /** Get a regular newly allocated stream of bytes from @a string.
* @relates string */
static unsigned char *squeezastring(struct string *string); static unsigned char *squeezastring(struct string *string);
@ -262,7 +268,8 @@ struct string_list_item {
}; };
/** Adds @a string with @a length chars to the list. If @a length is -1 /** Adds @a string with @a length chars to the list. If @a length is -1
* it will be set to the return value of strlen(). */ * it will be set to the return value of strlen().
* @relates string_list_item */
struct string * struct string *
add_to_string_list(LIST_OF(struct string_list_item) *list, add_to_string_list(LIST_OF(struct string_list_item) *list,
const unsigned char *string, int length); const unsigned char *string, int length);

View File

@ -20,7 +20,8 @@
/** Get the current time. /** Get the current time.
* It attempts to use available functions, granularity * It attempts to use available functions, granularity
* may be as worse as 1 second if time() is used. */ * may be as worse as 1 second if time() is used.
* @relates timeval_T */
timeval_T * timeval_T *
timeval_now(timeval_T *t) timeval_now(timeval_T *t)
{ {
@ -47,7 +48,8 @@ timeval_now(timeval_T *t)
} }
/** Subtract an interval to a timeval, it ensures that /** Subtract an interval to a timeval, it ensures that
* result is never negative. */ * result is never negative.
* @relates timeval_T */
timeval_T * timeval_T *
timeval_sub_interval(timeval_T *t, timeval_T *interval) timeval_sub_interval(timeval_T *t, timeval_T *interval)
{ {
@ -73,6 +75,7 @@ timeval_sub_interval(timeval_T *t, timeval_T *interval)
return t; return t;
} }
/** @relates timeval_T */
timeval_T * timeval_T *
timeval_sub(timeval_T *res, timeval_T *older, timeval_T *newer) timeval_sub(timeval_T *res, timeval_T *older, timeval_T *newer)
{ {
@ -87,6 +90,7 @@ timeval_sub(timeval_T *res, timeval_T *older, timeval_T *newer)
return res; return res;
} }
/** @relates timeval_T */
timeval_T * timeval_T *
timeval_add(timeval_T *res, timeval_T *base, timeval_T *t) timeval_add(timeval_T *res, timeval_T *base, timeval_T *t)
{ {
@ -101,6 +105,7 @@ timeval_add(timeval_T *res, timeval_T *base, timeval_T *t)
return res; return res;
} }
/** @relates timeval_T */
timeval_T * timeval_T *
timeval_add_interval(timeval_T *t, timeval_T *interval) timeval_add_interval(timeval_T *t, timeval_T *interval)
{ {
@ -115,6 +120,7 @@ timeval_add_interval(timeval_T *t, timeval_T *interval)
return t; return t;
} }
/** @relates timeval_T */
timeval_T * timeval_T *
timeval_from_double(timeval_T *t, double x) timeval_from_double(timeval_T *t, double x)
{ {
@ -124,6 +130,7 @@ timeval_from_double(timeval_T *t, double x)
return t; return t;
} }
/** @relates timeval_T */
timeval_T * timeval_T *
timeval_from_milliseconds(timeval_T *t, milliseconds_T milliseconds) timeval_from_milliseconds(timeval_T *t, milliseconds_T milliseconds)
{ {
@ -136,7 +143,8 @@ timeval_from_milliseconds(timeval_T *t, milliseconds_T milliseconds)
} }
/** @bug 923: Assumes time_t values fit in long. (This function is used /** @bug 923: Assumes time_t values fit in long. (This function is used
* for both timestamps and durations.) */ * for both timestamps and durations.)
* @relates timeval_T */
timeval_T * timeval_T *
timeval_from_seconds(timeval_T *t, long seconds) timeval_from_seconds(timeval_T *t, long seconds)
{ {
@ -178,6 +186,7 @@ mult_ms(milliseconds_T a, long lb)
return (milliseconds_T) (la * lb); return (milliseconds_T) (la * lb);
} }
/** @relates timeval_T */
milliseconds_T milliseconds_T
timeval_to_milliseconds(timeval_T *t) timeval_to_milliseconds(timeval_T *t)
{ {
@ -188,20 +197,23 @@ timeval_to_milliseconds(timeval_T *t)
} }
/** @bug 923: Assumes time_t values fit in long. (This function is used /** @bug 923: Assumes time_t values fit in long. (This function is used
* for both timestamps and durations.) */ * for both timestamps and durations.)
* @relates timeval_T */
long long
timeval_to_seconds(timeval_T *t) timeval_to_seconds(timeval_T *t)
{ {
return t->sec + t->usec / 1000000L; return t->sec + t->usec / 1000000L;
} }
/** @relates timeval_T */
int int
timeval_is_positive(timeval_T *t) timeval_is_positive(timeval_T *t)
{ {
return (t->sec > 0 || (t->sec == 0 && t->usec > 0)); return (t->sec > 0 || (t->sec == 0 && t->usec > 0));
} }
/** Be sure timeval is not negative. */ /** Be sure timeval is not negative.
* @relates timeval_T */
void void
timeval_limit_to_zero_or_one(timeval_T *t) timeval_limit_to_zero_or_one(timeval_T *t)
{ {
@ -216,7 +228,8 @@ timeval_limit_to_zero_or_one(timeval_T *t)
/** Compare time values. /** Compare time values.
* @returns 1 if t1 > t2; * @returns 1 if t1 > t2;
* -1 if t1 < t2; * -1 if t1 < t2;
* 0 if t1 == t2. */ * 0 if t1 == t2.
* @relates timeval_T */
int int
timeval_cmp(timeval_T *t1, timeval_T *t2) timeval_cmp(timeval_T *t1, timeval_T *t2)
{ {
@ -226,6 +239,7 @@ timeval_cmp(timeval_T *t1, timeval_T *t2)
return t1->usec - t2->usec; return t1->usec - t2->usec;
} }
/** @relates timeval_T */
int int
timeval_div_off_t(off_t n, timeval_T *t) timeval_div_off_t(off_t n, timeval_T *t)
{ {

View File

@ -53,6 +53,7 @@ timeval_T *timeval_sub_interval(timeval_T *t, timeval_T *interval);
timeval_T *timeval_add_interval(timeval_T *t, timeval_T *interval); timeval_T *timeval_add_interval(timeval_T *t, timeval_T *interval);
int timeval_div_off_t(off_t n, timeval_T *t); int timeval_div_off_t(off_t n, timeval_T *t);
/** @relates timeval_T */
#define timeval_copy(dst, src) copy_struct(dst, src) #define timeval_copy(dst, src) copy_struct(dst, src)
#endif #endif