Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/io/asprintf.c

    ra9763c6 rce52ae70  
    7676 *             the newly allocated string.
    7777 * @fmt        Format string.
    78  * @args       Variable argument list
    79  *
    80  * @return Number of characters printed or a negative error code.
    81  *
    82  */
    83 int vasprintf(char **strp, const char *fmt, va_list args)
    84 {
    85         va_list args2;
    86         va_copy(args2, args);
    87         int ret = vprintf_size(fmt, args2);
    88         va_end(args2);
    89        
    90         if (ret > 0) {
    91                 *strp = malloc(STR_BOUNDS(ret) + 1);
    92                 if (*strp == NULL)
    93                         return -1;
    94                
    95                 vsnprintf(*strp, STR_BOUNDS(ret) + 1, fmt, args);
    96         }
    97        
    98         return ret;
    99 }
    100 
    101 /** Allocate and print to string.
    102  *
    103  * @param strp Address of the pointer where to store the address of
    104  *             the newly allocated string.
    105  * @fmt        Format string.
    10678 *
    10779 * @return Number of characters printed or a negative error code.
     
    11284        va_list args;
    11385        va_start(args, fmt);
    114         int ret = vasprintf(strp, fmt, args);
     86        int ret = vprintf_size(fmt, args);
    11587        va_end(args);
     88       
     89        if (ret > 0) {
     90                *strp = malloc(STR_BOUNDS(ret) + 1);
     91                if (*strp == NULL)
     92                        return -1;
     93               
     94                va_start(args, fmt);
     95                vsnprintf(*strp, STR_BOUNDS(ret) + 1, fmt, args);
     96                va_end(args);
     97        }
    11698       
    11799        return ret;
Note: See TracChangeset for help on using the changeset viewer.