aboutsummaryrefslogtreecommitdiff
path: root/src/str.h
blob: 416a846cdfe279c2c1526614561413f222f42e31 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once

#include <stddef.h>
#include <stdio.h>

typedef struct {
  char *data;
  size_t length;
  size_t capacity;
} str;

void free_str(str *s);

void str_append(str *s, const char *from);
void str_append_c(str *s, char c);
void str_append_len(str *s, const char *from, size_t len);

void str_append_read(str *s, int fd);
void str_append_fread(str *s, FILE *file);
void str_append_fread_len(str *s, size_t size, FILE *file);

void str_appendf(str *s, const char *fmt, ...);