2 Syren -- a lightweight downloader for Linux/BSD/MacOSX
3 inspired by Axel Copyright 2001-2002 Wilmer van der Gaast
4 version 0.0.6 (atomic alien)
5 coded by Ketmar // Avalon Group
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License with
18 the Debian GNU/Linux distribution in file /usr/doc/copyright/GPL;
19 if not, write to the Free Software Foundation, Inc., 59 Temple Place,
20 Suite 330, Boston, MA 02111-1307 USA
23 Syren UI message service
28 #include "syren_msg.h"
31 void SyMessage (const TSyPrintStr
*pfn
, TSyMsgType msgtype
, const char *fmt
, ...) {
36 if (!pfn
|| !pfn
->print
) return;
37 if ((p
= malloc(size
)) == NULL
) return;
41 n
= vsnprintf(p
, size
, fmt
?fmt
:"", ap
);
43 if (n
> -1 && n
< size
) break;
44 if (n
> -1) size
= n
+1; else size
*= 2;
45 if ((np
= realloc(p
, size
)) == NULL
) { free(p
); return; }
49 while (np
>= p
&& (unsigned char)(*np
) <= ' ') np
--;
51 pfn
->print(pfn
->udata
, msgtype
, p
);