~hamo/ubuntu/precise/grub2/grub2.hi_res

« back to all changes in this revision

Viewing changes to grub-core/gnulib/vasnprintf.h

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson, Colin Watson, Robert Millan, Updated translations
  • Date: 2010-11-22 12:24:56 UTC
  • mfrom: (1.26.4 upstream) (17.3.36 sid)
  • mto: (17.3.43 sid)
  • mto: This revision was merged to the branch mainline in revision 89.
  • Revision ID: james.westby@ubuntu.com-20101122122456-y82z3sfb7k4zfdcc
Tags: 1.99~20101122-1
[ Colin Watson ]
* New Bazaar snapshot.  Too many changes to list in full, but some of the
  more user-visible ones are as follows:
  - GRUB script:
    + Function parameters, "break", "continue", "shift", "setparams",
      "return", and "!".
    + "export" command supports multiple variable names.
    + Multi-line quoted strings support.
    + Wildcard expansion.
  - sendkey support.
  - USB hotunplugging and USB serial support.
  - Rename CD-ROM to cd on BIOS.
  - Add new --boot-directory option to grub-install, grub-reboot, and
    grub-set-default; the old --root-directory option is still accepted
    but was often confusing.
  - Basic btrfs detection/UUID support (but no file reading yet).
  - bash-completion for utilities.
  - If a device is listed in device.map, always assume that it is
    BIOS-visible rather than using extra layers such as LVM or RAID.
  - Add grub-mknetdir script (closes: #550658).
  - Remove deprecated "root" command.
  - Handle RAID devices containing virtio components.
  - GRUB Legacy configuration file support (via grub-menulst2cfg).
  - Keyboard layout support (via grub-mklayout and grub-kbdcomp).
  - Check generated grub.cfg for syntax errors before saving.
  - Pause execution for at most ten seconds if any errors are displayed,
    so that the user has a chance to see them.
  - Support submenus.
  - Write embedding zone using Reed-Solomon, so that it's robust against
    being partially overwritten (closes: #550702, #591416, #593347).
  - GRUB_DISABLE_LINUX_RECOVERY and GRUB_DISABLE_NETBSD_RECOVERY merged
    into a single GRUB_DISABLE_RECOVERY variable.
  - Fix loader memory allocation failure (closes: #551627).
  - Don't call savedefault on recovery entries (closes: #589325).
  - Support triple-indirect blocks on ext2 (closes: #543924).
  - Recognise DDF1 fake RAID (closes: #603354).

[ Robert Millan ]
* Use dpkg architecture wildcards.

[ Updated translations ]
* Slovenian (Vanja Cvelbar).  Closes: #604003
* Dzongkha (dawa pemo via Tenzin Dendup).  Closes: #604102

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* vsprintf with automatic memory allocation.
 
2
   Copyright (C) 2002-2004, 2007-2010 Free Software Foundation, Inc.
 
3
 
 
4
   This program is free software; you can redistribute it and/or modify
 
5
   it under the terms of the GNU General Public License as published by
 
6
   the Free Software Foundation; either version 3, or (at your option)
 
7
   any later version.
 
8
 
 
9
   This program is distributed in the hope that it will be useful,
 
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
   GNU General Public License for more details.
 
13
 
 
14
   You should have received a copy of the GNU General Public License along
 
15
   with this program; if not, write to the Free Software Foundation,
 
16
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
17
 
 
18
#ifndef _VASNPRINTF_H
 
19
#define _VASNPRINTF_H
 
20
 
 
21
/* Get va_list.  */
 
22
#include <stdarg.h>
 
23
 
 
24
/* Get size_t.  */
 
25
#include <stddef.h>
 
26
 
 
27
#ifndef __attribute__
 
28
/* The __attribute__ feature is available in gcc versions 2.5 and later.
 
29
   The __-protected variants of the attributes 'format' and 'printf' are
 
30
   accepted by gcc versions 2.6.4 (effectively 2.7) and later.
 
31
   We enable __attribute__ only if these are supported too, because
 
32
   gnulib and libintl do '#define printf __printf__' when they override
 
33
   the 'printf' function.  */
 
34
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
 
35
#  define __attribute__(Spec)   /* empty */
 
36
# endif
 
37
#endif
 
38
 
 
39
#ifdef __cplusplus
 
40
extern "C" {
 
41
#endif
 
42
 
 
43
/* Write formatted output to a string dynamically allocated with malloc().
 
44
   You can pass a preallocated buffer for the result in RESULTBUF and its
 
45
   size in *LENGTHP; otherwise you pass RESULTBUF = NULL.
 
46
   If successful, return the address of the string (this may be = RESULTBUF
 
47
   if no dynamic memory allocation was necessary) and set *LENGTHP to the
 
48
   number of resulting bytes, excluding the trailing NUL.  Upon error, set
 
49
   errno and return NULL.
 
50
 
 
51
   When dynamic memory allocation occurs, the preallocated buffer is left
 
52
   alone (with possibly modified contents).  This makes it possible to use
 
53
   a statically allocated or stack-allocated buffer, like this:
 
54
 
 
55
          char buf[100];
 
56
          size_t len = sizeof (buf);
 
57
          char *output = vasnprintf (buf, &len, format, args);
 
58
          if (output == NULL)
 
59
            ... error handling ...;
 
60
          else
 
61
            {
 
62
              ... use the output string ...;
 
63
              if (output != buf)
 
64
                free (output);
 
65
            }
 
66
  */
 
67
#if REPLACE_VASNPRINTF
 
68
# define asnprintf rpl_asnprintf
 
69
# define vasnprintf rpl_vasnprintf
 
70
#endif
 
71
extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
 
72
       __attribute__ ((__format__ (__printf__, 3, 4)));
 
73
extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
 
74
       __attribute__ ((__format__ (__printf__, 3, 0)));
 
75
 
 
76
#ifdef __cplusplus
 
77
}
 
78
#endif
 
79
 
 
80
#endif /* _VASNPRINTF_H */