.\" Generated by the Allegro makedoc utility .TH adime_va_list 3 "version 2.2.1" "Adime" "Adime API Reference" .SH NAME adime_va_list, adime_va_start, adime_va_arg, adime_va_end .SH SYNOPSIS .B #include .sp .B typedef adime_va_list; .B void adime_va_start(adime_va_list ap, first_arg); .B TYPE adime_va_arg(adime_va_list ap, TYPE); .B void adime_va_end(adime_va_list ap); .SH DESCRIPTION Because of weirdnesses in the C language, some things that Adime does with va_lists would not be portable if it used a va_list directly. Instead you always have to use this replacement API, which works exactly like the standard API for va_lists, but is more portable. Also, if you pass an `adime_va_list\' to another function, which reads an argument with `adime_va_arg()\', then the `adime_va_list\' will have advanced to the same position in the calling function as in the called function. In particular, after calling `adime_vdialogf()\', the `adime_va_list\' will have advanced to after the last argument used by Adime. The following example shows how `adime_dialogf()\' is implemented in terms of `adime_vdialogf()\': .nf int adime_dialogf(char *title, int x, int y, int edit_w, char *format, ...) { int ret; va_list ap; va_start(ap, format); ret = adime_vdialogf(title, x, y, edit_w, format, ap); va_end(ap); return ret; } .fi See documentation for the standard `va_list\', `va_start()\', `va_arg()\' and `va_end()\' for more information. .SH SEE ALSO .BR adime_vdialogf (3), .BR adime_dialogf (3), .BR adime_lowlevel_vdialogf (3)