al_do_multiline_text(3alleg5)                    al_do_multiline_text(3alleg5)

       al_do_multiline_text - Allegro 5 API

              #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)

       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.



Allegro reference manual                         al_do_multiline_text(3alleg5)