Provided by: allegro5-doc_5.2.9.1+dfsg-1.1build4_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_multi‐
       line_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)

Allegro reference manual                                                           al_do_multiline_text(3alleg5)