1 /* Copyright 2014, 2015, 2016, 2018 Free Software Foundation, Inc. 2 3 This program is free software: you can redistribute it and/or modify 4 it under the terms of the GNU General Public License as published by 5 the Free Software Foundation, either version 3 of the License, or 6 (at your option) any later version. 7 8 This program is distributed in the hope that it will be useful, 9 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 GNU General Public License for more details. 12 13 You should have received a copy of the GNU General Public License 14 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 15 16 typedef struct TEXT { 17 char *text; 18 size_t space; 19 size_t end; 20 } TEXT; 21 22 void text_init (TEXT *t); 23 void text_reset (TEXT *t); 24 void text_append (TEXT *t, char *s); 25 void text_append_n (TEXT *t, char *s, size_t len); 26 void text_printf (TEXT *t, char *format, ...); 27 void text_destroy (TEXT *t); 28 29 #define text_base(t) ((t)->space ? (t)->text : (char *) 0) 30