From: Andre Noll Date: Thu, 18 May 2017 18:58:42 +0000 (+0200) Subject: doxygen: Add \ref to references. X-Git-Tag: v0.6.1~52^2~4 X-Git-Url: http://git.tue.mpg.de/?a=commitdiff_plain;h=f90e920b43eb4035ded061bb889c8e4d819a2a97;p=paraslash.git doxygen: Add \ref to references. This way doxygen issues a warning if the file/function/structure no longer exists and a stale reference remains. --- diff --git a/aacdec_filter.c b/aacdec_filter.c index 26d5f652..ce3eb3bd 100644 --- a/aacdec_filter.c +++ b/aacdec_filter.c @@ -28,7 +28,7 @@ /** * data specific to the aacdec filter * - * \sa filter, filter_node + * \sa \ref filter, \ref filter_node. */ struct private_aacdec_data { /** the return value of aac_open */ diff --git a/afh.h b/afh.h index 6dc5a3fc..20c61dba 100644 --- a/afh.h +++ b/afh.h @@ -103,7 +103,7 @@ struct audio_format_handler { * success, the function must return a positive value and fill in the * given struct afh_info. * - * \sa struct afh_info + * \sa struct \ref afh_info. */ int (*get_file_info)(char *map, size_t numbytes, int fd, struct afh_info *afhi); diff --git a/afs.c b/afs.c index b73fe3d4..59595567 100644 --- a/afs.c +++ b/afs.c @@ -37,22 +37,22 @@ #include "sideband.h" #include "command.h" -/** The osl tables used by afs. \sa blob.c. */ +/** The osl tables used by afs. \sa \ref blob.c. */ enum afs_table_num { - /** Contains audio file information. See aft.c. */ + /** Contains audio file information. See \ref aft.c. */ TBLNUM_AUDIO_FILES, - /** The table for the paraslash attributes. See attribute.c. */ + /** The table for the paraslash attributes. See \ref attribute.c. */ TBLNUM_ATTRIBUTES, /** * Paraslash's scoring system is based on Gaussian normal * distributions, and the relevant data is stored in the rbtrees of an - * osl table containing only volatile columns. See score.c for + * osl table containing only volatile columns. See \ref score.c for * details. */ TBLNUM_SCORES, /** * A standard blob table containing the mood definitions. For details - * see mood.c. + * see \ref mood.c. */ TBLNUM_MOODS, /** A blob table containing lyrics on a per-song basis. */ @@ -130,7 +130,7 @@ extern uint32_t afs_socket_cookie; * command socket, so that the handler process can read the id, attach the * shared memory area and use the result. * - * \sa struct callback_result. + * \sa \ref struct callback_result. */ struct callback_query { /** The function to be called. */ @@ -146,7 +146,7 @@ struct callback_query { * into the shared memory area holding the result, mainly to let the command * handler know the size of the result. * - * \sa struct callback_query. + * \sa \ref struct callback_query. */ struct callback_result { /** The number of bytes of the result. */ @@ -432,7 +432,7 @@ static int pass_afd(int fd, char *buf, size_t size) * * \return Standard. * - * \sa open_and_update_audio_file(). + * \sa \ref open_and_update_audio_file(). */ static int open_next_audio_file(void) { diff --git a/afs.h b/afs.h index 879331ec..e113915c 100644 --- a/afs.h +++ b/afs.h @@ -141,7 +141,7 @@ struct pattern_match_data { unsigned loop_col_num; /** Data from this column is matched against the given patterns. */ unsigned match_col_num; - /** \see pattern_match_flags. */ + /** \see \ref pattern_match_flags. */ unsigned pm_flags; /** This value is passed verbatim to fnmatch(). */ int fnmatch_flags; @@ -174,7 +174,7 @@ struct afs_callback_arg { * Therefore afs commands typically consist of two functions: The command * handler and the corresponding callback function that runs in afs context. * - * \sa send_callback_request(). + * \sa \ref send_callback_request(). */ typedef int afs_callback(struct afs_callback_arg *aca); diff --git a/aft.c b/aft.c index 2d5bbe8d..99d53393 100644 --- a/aft.c +++ b/aft.c @@ -138,7 +138,7 @@ struct ls_options { /** * Describes the layout of the mmapped-afs info struct. * - * \sa struct afs_info. + * \sa struct \ref afs_info. */ enum afsi_offsets { /** Where .last_played is stored. */ @@ -167,7 +167,7 @@ enum afsi_offsets { * \param afsi Pointer to the audio file info to be converted. * \param obj Result pointer. * - * \sa load_afsi(). + * \sa \ref load_afsi(). */ static void save_afsi(struct afs_info *afsi, struct osl_object *obj) { @@ -192,7 +192,7 @@ static void save_afsi(struct afs_info *afsi, struct osl_object *obj) * * \return Standard. * - * \sa save_afsi(). + * \sa \ref save_afsi(). */ static int load_afsi(struct afs_info *afsi, struct osl_object *obj) { @@ -552,7 +552,7 @@ int get_audio_file_path_of_row(const struct osl_row *row, char **path) * * \return The return value of the underlying call to osl_get_object(). * - * \sa get_hash_of_row(). + * \sa \ref get_hash_of_row(). */ static int get_hash_object_of_aft_row(const struct osl_row *row, struct osl_object *obj) @@ -2459,7 +2459,7 @@ int aft_check_attributes(uint64_t att_mask, struct para_buffer *pb) * * \param flags Usual flags that are passed to osl_close_table(). * - * \sa osl_close_table(). + * \sa \ref osl_close_table(). */ static void aft_close(void) { @@ -2474,7 +2474,7 @@ static void aft_close(void) * * \return Standard. * - * \sa osl_open_table(). + * \sa \ref osl_open_table(). */ static int aft_open(const char *dir) { diff --git a/attribute.c b/attribute.c index 637e1f51..2ea73a6a 100644 --- a/attribute.c +++ b/attribute.c @@ -476,7 +476,7 @@ int attribute_check_callback(struct afs_callback_arg *aca) /** * Close the attribute table. * - * \sa osl_close_table(). + * \sa \ref osl_close_table(). */ static void attribute_close(void) { @@ -491,7 +491,7 @@ static void attribute_close(void) * * \return Positive on success, negative on errors. * - * \sa osl_open_table(). + * \sa \ref osl_open_table(). */ static int attribute_open(const char *dir) { diff --git a/audioc.c b/audioc.c index 38a8db5d..503afc57 100644 --- a/audioc.c +++ b/audioc.c @@ -332,7 +332,7 @@ static void handle_help_flag(void) * * \return EXIT_SUCCESS or EXIT_FAILURE. * - * \sa send_cred_buffer(), para_audioc(1), para_audiod(1). + * \sa \ref send_cred_buffer(), para_audioc(1), para_audiod(1). */ int main(int argc, char *argv[]) { diff --git a/audiod.c b/audiod.c index 52728900..defd673d 100644 --- a/audiod.c +++ b/audiod.c @@ -179,7 +179,7 @@ static uid_t *uid_whitelist; /** * The task that calls the status command of para_server. * - * \sa struct status_task + * \sa \ref struct status_task. */ static struct status_task *stat_task = &status_task_struct; diff --git a/audiod_command.c b/audiod_command.c index 9623c4f5..cccc2a89 100644 --- a/audiod_command.c +++ b/audiod_command.c @@ -416,7 +416,7 @@ EXPORT_AUDIOD_CMD_HANDLER(version) * \return Positive on success, negative on errors, zero if there was no * connection to accept. * - * \sa para_accept(), recv_cred_buffer() + * \sa \ref para_accept(), \ref recv_cred_buffer(). * */ int handle_connect(int accept_fd, fd_set *rfds) { diff --git a/buffer_tree.c b/buffer_tree.c index b0cd6665..9b5bcda1 100644 --- a/buffer_tree.c +++ b/buffer_tree.c @@ -905,7 +905,7 @@ size_t btr_get_output_queue_size(struct btr_node *btrn) * \return \p -ENOTSUP if no parent node of \a btrn understands \a command. * Otherwise the return value of the command handler is returned. * - * \sa \ref receiver::execute, filter::execute, writer::execute. + * \sa \ref receiver::execute, \ref filter::execute, \ref writer::execute. */ int btr_exec_up(struct btr_node *btrn, const char *command, char **value_result) { @@ -935,7 +935,7 @@ int btr_exec_up(struct btr_node *btrn, const char *command, char **value_result) * * \return A pointer to the \a context address specified at node creation time. * - * \sa btr_new_node(), struct \ref btr_node_description. + * \sa \ref btr_new_node(), struct \ref btr_node_description. */ void *btr_context(struct btr_node *btrn) { diff --git a/client.c b/client.c index 68d8a7ef..3cb00e8b 100644 --- a/client.c +++ b/client.c @@ -616,7 +616,8 @@ static struct supervisor_task supervisor_task; * * \return EXIT_SUCCESS or EXIT_FAILURE * - * \sa client_open(), stdin.c, stdout.c, para_client(1), para_server(1) + * \sa \ref client_open(), \ref stdin.c, \ref stdout.c, para_client(1), + * para_server(1). */ int main(int argc, char *argv[]) { diff --git a/close_on_fork.c b/close_on_fork.c index c606d98c..655dbc56 100644 --- a/close_on_fork.c +++ b/close_on_fork.c @@ -19,7 +19,7 @@ static int initialized; /** * Describes an element of the close-on-fork list. * - * \sa list.h + * \sa \ref list.h. */ struct close_on_fork { /** The file descriptor which should be closed after fork(). */ diff --git a/command.c b/command.c index d0aeea3d..5802d37a 100644 --- a/command.c +++ b/command.c @@ -107,8 +107,8 @@ static unsigned get_status(struct misc_meta_data *nmmd, bool parser_friendly, clock_get_realtime(¤t_time); /* * The calls to WRITE_STATUS_ITEM() below never fail because - * b->max_size is zero (unlimited), see para_printf(). However, clang - * is not smart enough to prove this and complains nevertheless. + * b->max_size is zero (unlimited), see \ref para_printf(). However, + * clang is not smart enough to prove this and complains nevertheless. * Casting the return value to void silences clang. */ (void)WRITE_STATUS_ITEM(&b, SI_STATUS, "%s\n", status); @@ -884,7 +884,7 @@ static int run_command(struct command_context *cc, struct iovec *iov, * the function if the connection was not authenticated when the timeout * expires. * - * \sa alarm(2), crypt.c, crypt.h + * \sa alarm(2), \ref crypt.c, \ref crypt.h. */ __noreturn void handle_connect(int fd, const char *peername) { diff --git a/dccp_send.c b/dccp_send.c index 61d42126..4ad25e73 100644 --- a/dccp_send.c +++ b/dccp_send.c @@ -138,7 +138,7 @@ static void dccp_post_select(fd_set *rfds, __a_unused fd_set *wfds) /* * Bypass unused CCID paths: the sender does not receive application data * from the client; by shutting down this unused communication path we can - * reduce processing costs a bit. See analogous comment in dccp_recv.c. + * reduce processing costs a bit. See analogous comment in \ref dccp_recv.c. */ if (shutdown(sc->fd, SHUT_RD) < 0) { PARA_WARNING_LOG("%s\n", strerror(errno)); diff --git a/error.h b/error.h index ea8f82c4..ea25f8cc 100644 --- a/error.h +++ b/error.h @@ -338,8 +338,8 @@ _static_inline_ int osl(int ret) /** * Wrapper for lopsub library calls. * - * \param ret See osl(). - * \return See osl(). + * \param ret See \ref osl(). + * \return See \ref osl(). */ _static_inline_ int lls(int ret) { diff --git a/fd.c b/fd.c index 09332be0..dc4fd59c 100644 --- a/fd.c +++ b/fd.c @@ -405,7 +405,7 @@ __must_check int mark_fd_nonblocking(int fd) * This wrapper for FD_SET() passes its first two arguments to \p FD_SET. Upon * return, \a max_fileno contains the maximum of the old_value and \a fd. * - * \sa para_select. + * \sa \ref para_select. */ void para_fd_set(int fd, fd_set *fds, int *max_fileno) { @@ -674,7 +674,7 @@ out: * * \return Standard. * - * \sa munmap(2), mmap_full_file(). + * \sa munmap(2), \ref mmap_full_file(). */ int para_munmap(void *start, size_t length) { diff --git a/filter.h b/filter.h index 4537b220..75ab48b7 100644 --- a/filter.h +++ b/filter.h @@ -41,7 +41,7 @@ struct filter_node { * time, all these filter functions must be reentrant; no static non-constant * variables may be used. * - * \sa mp3dec_filter.c, oggdec_filter.c, wav_filter.c, compress_filter.c, filter_node + * \sa \ref filter_node. */ struct filter { /** diff --git a/http_recv.c b/http_recv.c index a5bbed63..67691a34 100644 --- a/http_recv.c +++ b/http_recv.c @@ -30,7 +30,7 @@ /** * the possible states of a http receiver node * - * \sa receiver_node + * \sa \ref receiver_node. */ enum http_recv_status {HTTP_CONNECTED, HTTP_SENT_GET_REQUEST, HTTP_STREAMING}; @@ -46,7 +46,7 @@ struct private_http_recv_data { * It gets initialized to \p HTTP_CONNECTED by the open function of the * http receiver. * - * \sa receiver::open, receiver_node. + * \sa \ref receiver::open, \ref receiver_node. */ enum http_recv_status status; }; diff --git a/ipc.c b/ipc.c index d7f515df..3cc5c156 100644 --- a/ipc.c +++ b/ipc.c @@ -68,7 +68,7 @@ static void para_semop(int id, struct sembuf *sops, int num) * * This function either succeeds or aborts. * - * \sa semop(2), struct misc_meta_data. + * \sa semop(2), struct \ref misc_meta_data. */ void mutex_lock(int id) { @@ -94,7 +94,7 @@ void mutex_lock(int id) * * This function either succeeds or aborts. * - * \sa semop(2), struct misc_meta_data. + * \sa semop(2), struct \ref misc_meta_data. */ void mutex_unlock(int id) { diff --git a/mm.h b/mm.h index bc1e9f2b..e6c0d125 100644 --- a/mm.h +++ b/mm.h @@ -17,7 +17,7 @@ * Mood score functions must return values between -100 and +100 inclusively. * Boolean score functions should always return either -100 or +100. * - * \sa struct mood_method, mood_parser. + * \sa struct \ref mood_method, \ref mood_parser. */ typedef int mood_score_function(const char *path, const struct afs_info *afsi, const struct afh_info *afhi, const void *data); @@ -36,7 +36,7 @@ typedef int mood_score_function(const char *path, const struct afs_info *afsi, * later in the mood_score_function of the mood_method. The mood_parser may * store a pointer to its structure via the void** pointer. * - * \sa mood_open(), mood_cleanup_function, mood_score_function. + * \sa \ref mood_cleanup_function, \ref mood_score_function. */ typedef int mood_parser(int, char **, void **); diff --git a/mood.c b/mood.c index 42f6421c..92bef0fa 100644 --- a/mood.c +++ b/mood.c @@ -60,7 +60,7 @@ struct mood_item { }; /* - * Created from the mood definition by change_current_mood(). + * Created from the mood definition by \ref change_current_mood(). * * When a mood is opened, each line of its definition is investigated, and a * corresponding mood item is produced. Each mood line starts with accept, @@ -673,7 +673,7 @@ static int delete_from_statistics_and_score_table(const struct osl_row *aft_row) * * \return Positive on success, negative on errors. * - * \sa score_delete(). + * \sa \ref score_delete(). */ static int mood_delete_audio_file(const struct osl_row *aft_row) { @@ -798,8 +798,7 @@ void close_current_mood(void) * \return Positive on success, negative on errors. Loading the dummy mood * always succeeds. * - * \sa struct admissible_file_info, struct admissible_array, struct - * afs_info::last_played, mood_close(). + * \sa struct \ref afs_info::last_played. */ int change_current_mood(const char *mood_name) { diff --git a/net.c b/net.c index 983ab0c0..a58d84ef 100644 --- a/net.c +++ b/net.c @@ -247,7 +247,7 @@ static const char *layer4_name(const unsigned l4type) * directly after makesock(). The 'pre_conn_opt' structure is for internal use * only and should not be visible elsewhere. * - * \sa setsockopt(2), makesock() + * \sa setsockopt(2), \ref makesock(). */ struct pre_conn_opt { int sock_level; /**< Second argument to setsockopt() */ @@ -624,7 +624,7 @@ int generic_max_transport_msg_size(int sockfd) * \return A static character string identifying hostname and port of the * chosen side in numeric host:port format. * - * \sa getsockname(2), getpeername(2), parse_url(), getnameinfo(3), + * \sa getsockname(2), getpeername(2), \ref parse_url(), getnameinfo(3), * services(5), nsswitch.conf(5). */ char *remote_name(int fd) @@ -735,7 +735,7 @@ __must_check int recv_bin_buffer(int fd, char *buf, size_t size) * * \return The return value of the underlying call to \a recv_bin_buffer(). * - * \sa recv_bin_buffer() + * \sa \ref recv_bin_buffer() */ int recv_buffer(int fd, char *buf, size_t size) { @@ -914,7 +914,7 @@ err: * \return The file descriptor of the connected socket on success, negative on * errors. * - * \sa create_local_socket(), unix(7), connect(2). + * \sa \ref create_local_socket(), unix(7), connect(2). */ int connect_local_socket(const char *name) { @@ -956,8 +956,7 @@ int recv_cred_buffer(int fd, char *buf, size_t size) * \return On success, this call returns the number of bytes sent. On errors, * \p -E_SENDMSG is returned. * - * \sa \ref recv_cred_buffer, sendmsg(2), socket(7), unix(7), okir's Black Hats - * Manual. + * \sa \ref recv_cred_buffer, sendmsg(2), socket(7), unix(7). */ ssize_t send_cred_buffer(int sock, char *buf) { diff --git a/play.c b/play.c index 4bd32a67..7ffcd9ed 100644 --- a/play.c +++ b/play.c @@ -86,7 +86,7 @@ struct play_task { struct filter_node fn; struct writer_node wn; - /* See comment to enum state_change_request_type above */ + /* See comment to enum \ref state_change_request_type above. */ enum state_change_request_type rq; /* only relevant if rq == CRT_FILE_CHANGE */ unsigned next_file; diff --git a/playlist.c b/playlist.c index b9e52c75..55a83436 100644 --- a/playlist.c +++ b/playlist.c @@ -140,7 +140,7 @@ int playlist_check_callback(struct afs_callback_arg *aca) /** * Close the current playlist. * - * \sa playlist_open(). + * \sa \ref playlist_open(). */ void playlist_close(void) { diff --git a/recv.h b/recv.h index a53781fc..f1e2fc45 100644 --- a/recv.h +++ b/recv.h @@ -40,7 +40,7 @@ struct receiver_node { /** * Describes one supported paraslash receiver. * - * \sa http_recv.c, udp_recv.c + * \sa \ref http_recv.c, \ref udp_recv.c. */ struct receiver { /** @@ -67,7 +67,7 @@ struct receiver { * It should free all resources associated with given receiver node * that were allocated during the corresponding open call. * - * \sa receiver_node. + * \sa \ref receiver_node. */ void (*close)(struct receiver_node *rn); /** @@ -78,7 +78,7 @@ struct receiver { * add any file descriptors to the sets of file descriptors given by \a * s. * - * \sa select(2), time.c struct task, struct sched. + * \sa select(2), \ref time.c, struct \ref sched. */ void (*pre_select)(struct sched *s, void *context); /** @@ -90,7 +90,7 @@ struct receiver { * then use any non-blocking I/O to establish a connection or to * receive the audio data. * - * \sa select(2), struct receiver. + * \sa select(2), struct \ref receiver. */ int (*post_select)(struct sched *s, void *context); diff --git a/sched.c b/sched.c index bc301778..297348a1 100644 --- a/sched.c +++ b/sched.c @@ -387,7 +387,7 @@ void sched_min_delay(struct sched *s) * function does nothing. Otherwise the timeout for the next select() call is * set to the given value. * - * \sa sched_request_timeout_ms(). + * \sa \ref sched_request_timeout_ms(). */ void sched_request_timeout(struct timeval *to, struct sched *s) { @@ -420,7 +420,7 @@ void sched_request_timeout_ms(long unsigned ms, struct sched *s) * \return If \a barrier is in the past, this function does nothing and returns * zero. Otherwise it returns one. * - * \sa sched_request_barrier_or_min_delay(). + * \sa \ref sched_request_barrier_or_min_delay(). */ int sched_request_barrier(struct timeval *barrier, struct sched *s) { @@ -441,7 +441,7 @@ int sched_request_barrier(struct timeval *barrier, struct sched *s) * \return If \a barrier is in the past, this function requests a minimal * timeout and returns zero. Otherwise it returns one. * - * \sa sched_min_delay(), sched_request_barrier(). + * \sa \ref sched_min_delay(), \ref sched_request_barrier(). */ int sched_request_barrier_or_min_delay(struct timeval *barrier, struct sched *s) { diff --git a/score.c b/score.c index 97013ed9..30761e75 100644 --- a/score.c +++ b/score.c @@ -280,7 +280,7 @@ int score_get_best(struct osl_row **aft_row, long *score) * \return Positive on success, negative on errors. Possible errors: * Errors returned by osl_get_row() and osl_del_row(). * - * \sa score_add(), score_shutdown(). + * \sa \ref score_add(). */ int score_delete(const struct osl_row *aft_row) { diff --git a/send.h b/send.h index 54205234..b70ba094 100644 --- a/send.h +++ b/send.h @@ -25,7 +25,7 @@ enum sender_subcommand { /** * Describes one supported sender of para_server. * - * \sa http_send.c udp_send.c, dccp_send.c. + * \sa \ref http_send.c \ref udp_send.c, \ref dccp_send.c. */ struct sender { /** The name of the sender. */ diff --git a/send_common.c b/send_common.c index 988e8d48..b03be877 100644 --- a/send_common.c +++ b/send_common.c @@ -72,7 +72,7 @@ static int open_sender(unsigned l4type, int port) * list, destroy the chunk queue of this client, delete the client from the * list of connected clients and free the sender_client struct. * - * \sa shutdown_clients(). + * \sa \ref shutdown_clients(). */ void shutdown_client(struct sender_client *sc, struct sender_status *ss) { @@ -212,7 +212,7 @@ char *generic_sender_status(struct sender_status *ss, const char *name) * \param scd Contains the IP and the netmask. * \param ss The sender. * - * \sa generic_com_deny(). + * \sa \ref generic_com_deny(). */ void generic_com_allow(struct sender_command_data *scd, struct sender_status *ss) @@ -226,7 +226,7 @@ void generic_com_allow(struct sender_command_data *scd, * \param scd see \ref generic_com_allow(). * \param ss see \ref generic_com_allow(). * - * \sa generic_com_allow(). + * \sa \ref generic_com_allow(). */ void generic_com_deny(struct sender_command_data *scd, struct sender_status *ss) @@ -262,7 +262,7 @@ int generic_com_on(struct sender_status *ss, unsigned protocol) * * \param ss The sender to deactivate. * - * \sa \ref del_close_on_fork_list(), shutdown_clients(). + * \sa \ref del_close_on_fork_list(), \ref shutdown_clients(). */ void generic_com_off(struct sender_status *ss) { diff --git a/stdout.c b/stdout.c index 29db2b7e..43e194db 100644 --- a/stdout.c +++ b/stdout.c @@ -89,7 +89,7 @@ void stdout_task_register(struct stdout_task *sot, struct sched *s) .name = "stdout", }; - /* See stdin.c for details. */ + /* See \ref stdin.c for details. */ ret = fcntl(STDOUT_FILENO, F_GETFL); if (ret < 0) { PARA_EMERG_LOG("F_GETFL: %s\n", strerror(errno)); diff --git a/string.c b/string.c index 7b80e1b4..5eb1606e 100644 --- a/string.c +++ b/string.c @@ -190,7 +190,7 @@ __printf_2_3 unsigned xasprintf(char **result, const char *fmt, ...) * \return This function either returns a pointer to a string that must be * freed by the caller or aborts without returning. * - * \sa printf(3), xasprintf(). + * \sa printf(3), \ref xasprintf(). */ __must_check __printf_1_2 __malloc char *make_message(const char *fmt, ...) { @@ -548,7 +548,7 @@ __printf_2_3 int para_printf(struct para_buffer *b, const char *fmt, ...) * * \return Standard. * - * \sa para_atoi32(), strtol(3), atoi(3). + * \sa \ref para_atoi32(), strtol(3), atoi(3). */ int para_atoi64(const char *str, int64_t *value) { @@ -585,7 +585,7 @@ int para_atoi64(const char *str, int64_t *value) * * \return Standard. * - * \sa para_atoi64(). + * \sa \ref para_atoi64(). */ int para_atoi32(const char *str, int32_t *value) { diff --git a/string.h b/string.h index 52f98941..93bb6cba 100644 --- a/string.h +++ b/string.h @@ -20,7 +20,7 @@ struct para_buffer { size_t size; /** The maximal size this buffer may grow. Zero means unlimited. */ size_t max_size; - /** \sa para_buffer_flags. */ + /** \sa \ref para_buffer_flags. */ unsigned flags; /** The next para_printf() will write at this offset. */ size_t offset; @@ -37,7 +37,7 @@ struct para_buffer { /** * Controls the behavior of for_each_line(). * - * \sa for_each_line(). + * \sa \ref for_each_line(). */ enum for_each_line_flags { /** Activate read-only mode. */