Преглед на файлове

Provide own implementation of asprintf if it's missing.

master
Richard Nyberg преди 16 години
родител
ревизия
7b8644dcc1
променени са 2 файла, в които са добавени 27 реда и са изтрити 1 реда
  1. +20
    -0
      misc/subr.c
  2. +7
    -1
      misc/subr.h

+ 20
- 0
misc/subr.c Целия файл

@@ -14,6 +14,8 @@
#include <strings.h>
#include <unistd.h>

#include "subr.h"

void *
memfind(const void *sub, size_t sublen, const void *mem, size_t memlen)
{
@@ -443,3 +445,21 @@ end:
out[oi] = '\0';
return 0;
}

#ifndef HAVE_ASPRINTF
int
asprintf(char **strp, const char *fmt, ...)
{
int np;
va_list ap;
va_start(ap, fmt);
np = vsnprintf(NULL, 0, fmt, ap);
va_end(ap);
if ((*strp = malloc(np + 1)) == NULL)
return -1;
va_start(ap, fmt);
vsnprintf(*strp, np + 1, fmt, ap);
va_end(ap);
return np;
}
#endif

+ 7
- 1
misc/subr.h Целия файл

@@ -1,8 +1,9 @@
#ifndef BTPD_SUBR_H
#define BTPD_SUBR_H

#include <stdio.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdint.h>

#define max(x, y) ((x) >= (y) ? (x) : (y))
#define min(x, y) ((x) <= (y) ? (x) : (y))
@@ -47,4 +48,9 @@ void *read_file(const char *path, void *buf, size_t *size);
char *find_btpd_dir(void);
int make_abs_path(const char *in, char *out);

#ifndef HAVE_ASPRINTF
__attribute__((format (printf, 2, 3)))
int asprintf(char **strp, const char *fmt, ...);
#endif

#endif

Loading…
Отказ
Запис