Skip to content

Commit

Permalink
lib: Make str_*() inline which are simple buffer_* wrappers.
Browse files Browse the repository at this point in the history
  • Loading branch information
sirainen authored and GitLab committed May 3, 2016
1 parent b88c43d commit 53e9cbd
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 54 deletions.
45 changes: 0 additions & 45 deletions src/lib/str.c
Expand Up @@ -67,22 +67,12 @@ const char *str_c(string_t *str)
return str->data;
}

const unsigned char *str_data(const string_t *str)
{
return str->data;
}

char *str_c_modifiable(string_t *str)
{
str_add_nul(str);
return buffer_get_modifiable_data(str, NULL);
}

size_t str_len(const string_t *str)
{
return str->used;
}

bool str_equals(const string_t *str1, const string_t *str2)
{
if (str1->used != str2->used)
Expand All @@ -91,11 +81,6 @@ bool str_equals(const string_t *str1, const string_t *str2)
return memcmp(str1->data, str2->data, str1->used) == 0;
}

void str_append(string_t *str, const char *cstr)
{
buffer_append(str, cstr, strlen(cstr));
}

void str_append_n(string_t *str, const void *cstr, size_t max_len)
{
size_t len;
Expand All @@ -107,21 +92,6 @@ void str_append_n(string_t *str, const void *cstr, size_t max_len)
buffer_append(str, cstr, len);
}

void str_append_data(string_t *str, const void *data, size_t len)
{
buffer_append(str, data, len);
}

void str_append_c(string_t *str, unsigned char chr)
{
buffer_append_c(str, chr);
}

void str_append_str(string_t *dest, const string_t *src)
{
buffer_append(dest, src->data, src->used);
}

void str_printfa(string_t *str, const char *fmt, ...)
{
va_list args;
Expand Down Expand Up @@ -171,18 +141,3 @@ void str_vprintfa(string_t *str, const char *fmt, va_list args)
/* drop the unused data, including terminating NUL */
buffer_set_used_size(str, pos + ret);
}

void str_insert(string_t *str, size_t pos, const char *cstr)
{
buffer_insert(str, pos, cstr, strlen(cstr));
}

void str_delete(string_t *str, size_t pos, size_t len)
{
buffer_delete(str, pos, len);
}

void str_truncate(string_t *str, size_t len)
{
buffer_set_used_size(str, len);
}
53 changes: 44 additions & 9 deletions src/lib/str.h
@@ -1,6 +1,8 @@
#ifndef STR_H
#define STR_H

#include "buffer.h"

string_t *str_new(pool_t pool, size_t initial_size);
string_t *t_str_new(size_t initial_size);
/* Allocate a constant string using the given str as the input data.
Expand All @@ -12,26 +14,59 @@ void str_free(string_t **str);
char *str_free_without_data(string_t **str);

const char *str_c(string_t *str);
const unsigned char *str_data(const string_t *str) ATTR_PURE;
char *str_c_modifiable(string_t *str);
size_t str_len(const string_t *str) ATTR_PURE;
bool str_equals(const string_t *str1, const string_t *str2) ATTR_PURE;

static inline const unsigned char *str_data(const string_t *str)
{
return str->data;
}
static inline size_t str_len(const string_t *str)
{
return str->used;
}

/* Append string/character */
void str_append(string_t *str, const char *cstr);
void str_append_n(string_t *str, const void *cstr, size_t max_len);
void str_append_data(string_t *str, const void *data, size_t len);
void str_append_c(string_t *str, unsigned char chr);
void str_append_str(string_t *dest, const string_t *src);

static inline void str_append(string_t *str, const char *cstr)
{
buffer_append(str, cstr, strlen(cstr));
}
static inline void str_append_data(string_t *str, const void *data, size_t len)
{
buffer_append(str, data, len);
}

static inline void str_append_c(string_t *str, unsigned char chr)
{
buffer_append_c(str, chr);
}

static inline void str_append_str(string_t *dest, const string_t *src)
{
buffer_append(dest, src->data, src->used);
}

/* Append printf()-like data */
void str_printfa(string_t *str, const char *fmt, ...)
ATTR_FORMAT(2, 3);
void str_vprintfa(string_t *str, const char *fmt, va_list args)
ATTR_FORMAT(2, 0);

void str_insert(string_t *str, size_t pos, const char *cstr);
void str_delete(string_t *str, size_t pos, size_t len);
void str_truncate(string_t *str, size_t len);
static inline void str_insert(string_t *str, size_t pos, const char *cstr)
{
buffer_insert(str, pos, cstr, strlen(cstr));
}

static inline void str_delete(string_t *str, size_t pos, size_t len)
{
buffer_delete(str, pos, len);
}

static inline void str_truncate(string_t *str, size_t len)
{
buffer_set_used_size(str, len);
}

#endif

0 comments on commit 53e9cbd

Please sign in to comment.