File: charstring.h

package info (click to toggle)
nmh 1.8-4
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 7,860 kB
  • sloc: ansic: 50,445; sh: 22,697; makefile: 1,138; lex: 740; perl: 509; yacc: 265
file content (36 lines) | stat: -rw-r--r-- 1,701 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* charstring.h -- dynamically-sized char array that can report size
 *               in both characters and bytes
 *
 * This code is Copyright (c) 2017, by the authors of nmh.  See the
 * COPYRIGHT file in the root directory of the nmh distribution for
 * complete copyright information. */

/*
 * char array that keeps track of size in both bytes and characters
 * Usage note:
 *    Don't store return value of charstring_buffer() and use later
 *    after intervening push_back's; use charstring_buffer_copy()
 *    instead.
 */

typedef struct charstring *charstring_t;

charstring_t charstring_create(size_t);
charstring_t charstring_copy(const charstring_t) NONNULL(1);
void charstring_free(charstring_t);
/* Append a single-byte character: */
void charstring_push_back(charstring_t, const char) NONNULL(1);
/* Append possibly multi-byte character(s): */
void charstring_push_back_chars(charstring_t, const char [], size_t, size_t) NONNULL(1);
void charstring_append(charstring_t, const charstring_t) NONNULL(2);
void charstring_append_cstring(charstring_t, const char []) NONNULL(2);
void charstring_clear(charstring_t) NONNULL(1);
/* Don't store return value of charstring_buffer() and use later after
   intervening push_back's; use charstring_buffer_copy() instead. */
const char *charstring_buffer(const charstring_t) NONNULL(1);
/* User is responsible for free'ing result of buffer copy. */
char *charstring_buffer_copy(const charstring_t) NONNULL(1);
size_t charstring_bytes(const charstring_t) NONNULL(1) PURE;
size_t charstring_chars(const charstring_t) NONNULL(1) PURE;
/* Length of the last character in the charstring. */
int charstring_last_char_len(const charstring_t) NONNULL(1);