• Stars
    star
    198
  • Rank 196,898 (Top 4 %)
  • Language
    C
  • Created almost 12 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tiny C string library

buffer

Tiny C string manipulation library.

Installation

Install with clib:

$ clib install clibs/buffer

API

buffer_t *
buffer_new();

buffer_t *
buffer_new_with_size(size_t n);

buffer_t *
buffer_new_with_string(char *str);

buffer_t *
buffer_new_with_string_length(char *str, size_t len);

buffer_t *
buffer_new_with_copy(char *str);

size_t
buffer_size(buffer_t *self);

size_t
buffer_length(buffer_t *self);

void
buffer_free(buffer_t *self);

int
buffer_prepend(buffer_t *self, char *str);

int
buffer_append(buffer_t *self, char *str);

int
buffer_equals(buffer_t *self, buffer_t *other);

ssize_t
buffer_indexof(buffer_t *self, char *str);

buffer_t *
buffer_slice(buffer_t *self, size_t from, ssize_t to);

ssize_t
buffer_compact(buffer_t *self);

void
buffer_fill(buffer_t *self, int c);

void
buffer_clear(buffer_t *self);

void
buffer_trim_left(buffer_t *self);

void
buffer_trim_right(buffer_t *self);

void
buffer_trim(buffer_t *self);

void
buffer_print(buffer_t *self);

#define buffer_string(self) (self->data)

License

MIT

More Repositories

1

clib

Package manager for the C programming language.
C
4,863
star
2

entr

A utility for running arbitrary commands when files change. Uses kqueue(2) or inotify(7) to avoid polling. entr responds to file system events by executing command line arguments or by writing to a FIFO. entr was written to provide to make rapid feedback and automated testing natural and completely ordinary.
C
604
star
3

list

C doubly linked list
C
441
star
4

cmocka

An elegant unit testing framework for C with support for mock objects.
C
232
star
5

commander

Commander option parser ported to C - simple API, auto-generated --help
C
203
star
6

sha1

sha1 hash alogrithm
C
172
star
7

hash

C hash implementation based on khash
C
168
star
8

coro

Coroutines in C
C
121
star
9

flag

Go-style flag parsing for C
C
119
star
10

lmdb

Symas Lightning Memory-Mapped Database (LMDB)
77
star
11

red-black-tree

Generic red-black tree library (by Julienne Walker).
C
55
star
12

uv

A clib pointer to libuv: Cross-platform asychronous I/O http://libuv.org/
46
star
13

net

extends libuv to support tls/ssl in a simpler API for clibs
C
34
star
14

amp

Abstract Message Protocol C implementation
C
30
star
15

timer

Timer with microsecond resolution
C
30
star
16

logfmt

Fast C logfmt parser.
C
29
star
17

term

Terminal goodies
C
27
star
18

mt19937ar

Mersenne Twister random number generator
C
25
star
19

dumpasn1

Display the contents of ASN.1 encoded data
C
23
star
20

int

Binary integer representation utilities.
C
23
star
21

http-get.c

Simple HTTP GET requests backed by libcurl
C
23
star
22

rle

Run-length encoding.
C
21
star
23

rgba

RGB / RGBA parsing / formatting
C
20
star
24

container_of

Obtain a pointer to the struct that contains the struct member
C
20
star
25

wildcardcmp

Simple wildcard string comparison for C
C
19
star
26

readline

Tiny C readline library, note: this is not used in CLI-readline's one.
C
19
star
27

inih

Simple .INI file parser
C
19
star
28

ms

C str to us / ms utilities
C
18
star
29

debug

Conditional debug logging for C
C
17
star
30

zerodbg

Useful macros for debugging purposes.
C
16
star
31

unlikely

gcc branch prediction macros
C
16
star
32

bytes

byte <> string conversion utilities
C
14
star
33

which

Lookup executable via PATH or given path string
C
13
star
34

check

Super basic CHECK(), DCHECK(), and NOTREACHED() macro implementations.
Shell
12
star
35

strdup

Drop-in replacement for strdup(3) from libc
C
12
star
36

clib-uninstall

clib(1) plugin for uninstalling executables
C
11
star
37

trigger

Simple event handling library.
C
11
star
38

wiki-registry.c

C
11
star
39

timestamp

C timestamp util
C
11
star
40

leveldb

LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
C++
11
star
41

module

A set of macros and functions to make defining a C module easier
C
10
star
42

sqlite

Embedded SQL database
C
9
star
43

file

File utilities
C
9
star
44

bench

get wall and cpu time for benchmarking
C
9
star
45

clib-validate

clib(1) plugin for validating a package.json
C
9
star
46

strndup

Safe version of strndup
C
8
star
47

clib-makefile

Interactively generate a `Makefile' for your C lib project with clibs in mind
Shell
8
star
48

graph

Simple (directed) graph library.
C
7
star
49

logger

Logger used internally by clib(1)
C
7
star
50

clib-package

Internal bits of clib-install(1) for fetching packages
C
5
star
51

build_assert

Routines for build-time assertions
3
star
52

website

The source code for clibs.org.
TypeScript
3
star
53

tig

A clib pointer to https://github.com/jonas/tig
2
star
54

jsmn

A clib pointer to https://github.com/zserge/jsmn: Jsmn is a world fastest JSON parser/tokenizer.
1
star
55

buffet

A clib pointer to https://github.com/alcover/buffet
1
star
56

sodium

A clib pointer to libsodium: A modern, portable, easy to use crypto library.
1
star
57

discount

A clib (clib@next) pointer to https://github.com/Orc/discount
Shell
1
star
58

semver

A clib (clib@next) pointer to https://github.com/EddyLuten/lib-semver
JavaScript
1
star
59

packcc

A clib pointer for https://github.com/arithy/packcc
Shell
1
star