+ for (ptr = *token; *ptr; ptr++) /* token should contain no whitespace */
+ if (*ptr == ' ' || *ptr == '\t')
+ return FALSE;
+
+ for (ptr = *value; *ptr; ptr++) /* value should contain no whitespace */
+ if (*ptr == ' ' || *ptr == '\t')
+ return FALSE;
+
+ return TRUE;
+}
+
+static void DrawTextBuffer_Flush(int x, int y, char *buffer, int font_nr,
+ int line_length, int cut_length,
+ int line_spacing, int mask_mode,
+ boolean centered, int current_line)
+{
+ int buffer_len = strlen(buffer);
+ int font_width = getFontWidth(font_nr);
+ int font_height = getFontHeight(font_nr);
+ int offset_chars = (centered ? (line_length - buffer_len) / 2 : 0);
+ int offset_xsize =
+ (centered ? font_width * (line_length - buffer_len) / 2 : 0);
+ int final_cut_length = MAX(0, cut_length - offset_chars);
+ int xx = x + offset_xsize;
+ int yy = y + current_line * (font_height + line_spacing);
+
+ buffer[final_cut_length] = '\0';
+
+ if (mask_mode != -1)
+ DrawTextExt(drawto, xx, yy, buffer, font_nr, mask_mode);
+ else
+ DrawText(xx, yy, buffer, font_nr);
+}
+
+int DrawTextBuffer(int x, int y, char *text_buffer, int font_nr,
+ int line_length, int cut_length, int max_lines,
+ int line_spacing, int mask_mode, boolean autowrap,
+ boolean centered, boolean parse_comments)
+{
+ char buffer[line_length + 1];
+ int buffer_len;
+ int current_line = 0;
+
+ if (text_buffer == NULL || *text_buffer == '\0')
+ return 0;
+
+ if (current_line >= max_lines)
+ return 0;
+
+ if (cut_length == -1)
+ cut_length = line_length;
+
+ buffer[0] = '\0';
+ buffer_len = 0;
+
+ while (*text_buffer && current_line < max_lines)
+ {
+ char line[MAX_LINE_LEN + 1];
+ char *line_ptr;
+ boolean last_line_was_empty = TRUE;
+ int num_line_chars = MAX_LINE_LEN;
+ int i;
+
+ /* copy next line from text buffer to line buffer (nearly fgets() style) */
+ for (i = 0; i < num_line_chars && *text_buffer; i++)
+ if ((line[i] = *text_buffer++) == '\n')
+ break;
+ line[i] = '\0';
+
+ /* prevent 'num_line_chars' sized lines to cause additional empty line */
+ if (i == num_line_chars && *text_buffer == '\n')
+ text_buffer++;
+
+ /* skip comments (lines directly beginning with '#') */
+ if (line[0] == '#' && parse_comments)