Provided by: allegro5-doc_5.2.3.0-1_all bug

NAME

       al_do_multiline_text - Allegro 5 API

SYNOPSIS

              #include <allegro5/allegro_font.h>

              void al_do_multiline_text(const ALLEGRO_FONT *font,
                 float max_width, const char *text,
                 bool (*cb)(int line_num, const char *line, int size, void *extra),
                 void *extra)

DESCRIPTION

       This  function  processes the text and splits it into lines as al_draw_multiline_text(3alleg5) would, and
       then calls the callback cb once for every line.  This is useful for custom drawing of multiline text,  or
       for   calculating   the   size   of   multiline   text   ahead   of   time.   See  the  documentation  on
       al_draw_multiline_text(3alleg5) for an explanation of the splitting algorithm.

       For every line that this function splits text into the callback cb will be called once with the following
       parameters:

       • line_num - the number of the line starting from zero and counting up

       • line - a pointer to the beginning character of the line (see below)

       • size - the size of the line (0 for empty lines)

       • extra - the same pointer that was passed to al_do_multiline_text

       Note  that  line  is  not  guaranteed to be a NUL-terminated string, but will merely point to a character
       within text or to an empty string in case of an empty line.  If you need  a  NUL-terminated  string,  you
       will  have  to  copy line to a buffer and NUL-terminate it yourself.  You will also have to make your own
       copy if you need the contents of line after cb has returned, as line is not guaranteed to be valid  after
       that.

       If  the callback cb returns false, al_do_multiline_text will stop immediately, otherwise it will continue
       on to the next line.

SINCE

       5.1.9

SEE ALSO

       al_draw_multiline_text(3alleg5)