annotate lib/c-vsnprintf.h @ 17363:5a51fb7777a9

sys_select, sys_time: port 2013-01-30 Solaris 2.6 fix to Cygwin Problem reported by Marco Atzeri in <http://lists.gnu.org/archive/html/bug-gnulib/2013-03/msg00000.html>. * lib/sys_select.in.h [HAVE_SYS_SELECT_H && _CYGWIN_SYS_TIME_H]: Simply delegate to the system <sys/select.h> in this case too. Also, pay attention to _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H only if OSF/1, since otherwise Cygwin breaks, and it doesn't seem to be needed on Solaris either. * lib/sys_time.in.h [_CYGWIN_SYS_TIME_H]: Simply delgate to the system <sys/time.h> in this case.
author Paul Eggert <eggert@cs.ucla.edu>
date Tue, 19 Mar 2013 09:08:47 -0700
parents e542fd46ad6f
children 344018b6e5d7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17212
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
1 /* vsnprintf in C locale.
17249
e542fd46ad6f maint: update all copyright year number ranges
Eric Blake <eblake@redhat.com>
parents: 17212
diff changeset
2 Copyright (C) 2012-2013 Free Software Foundation, Inc.
17212
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
3
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
4 This program is free software; you can redistribute it and/or modify
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
5 it under the terms of the GNU General Public License as published by
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
6 the Free Software Foundation; either version 3, or (at your option)
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
7 any later version.
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
8
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
12 GNU General Public License for more details.
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
13
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
14 You should have received a copy of the GNU General Public License along
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
15 with this program; if not, see <http://www.gnu.org/licenses/>. */
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
16
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
17 #ifndef _C_VSNPRINTF_H
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
18 #define _C_VSNPRINTF_H
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
19
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
20 /* Get size_t. */
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
21 #include <stddef.h>
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
22
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
23 /* Get va_list. */
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
24 #include <stdarg.h>
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
25
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
26 /* The __attribute__ feature is available in gcc versions 2.5 and later.
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
27 The __-protected variants of the attributes 'format' and 'printf' are
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
28 accepted by gcc versions 2.6.4 (effectively 2.7) and later.
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
29 We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
30 gnulib and libintl do '#define printf __printf__' when they override
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
31 the 'printf' function. */
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
32 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
33 # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
34 #else
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
35 # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
36 #endif
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
37
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
38 #ifdef __cplusplus
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
39 extern "C" {
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
40 #endif
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
41
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
42 int c_vsnprintf (char *str, size_t size, const char *format, va_list args)
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
43 _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 0));
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
44
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
45 #ifdef __cplusplus
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
46 }
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
47 #endif
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
48
46900f509454 New 'c-*printf' modules for formatted output in C locale.
Ben Pfaff <blp@cs.stanford.edu>
parents:
diff changeset
49 #endif /* _C_VSNPRINTF_H */