Blame


1 65c49665 2024-01-23 op /*
2 65c49665 2024-01-23 op * Copyright (c) 2021, 2024 Omar Polo <op@omarpolo.com>
3 65c49665 2024-01-23 op *
4 65c49665 2024-01-23 op * Permission to use, copy, modify, and distribute this software for any
5 65c49665 2024-01-23 op * purpose with or without fee is hereby granted, provided that the above
6 65c49665 2024-01-23 op * copyright notice and this permission notice appear in all copies.
7 65c49665 2024-01-23 op *
8 65c49665 2024-01-23 op * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 65c49665 2024-01-23 op * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 65c49665 2024-01-23 op * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 65c49665 2024-01-23 op * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 65c49665 2024-01-23 op * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 65c49665 2024-01-23 op * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 65c49665 2024-01-23 op * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 65c49665 2024-01-23 op */
16 65c49665 2024-01-23 op
17 65c49665 2024-01-23 op struct hist;
18 65c49665 2024-01-23 op
19 65c49665 2024-01-23 op #define HIST_LINEAR 0x0
20 65c49665 2024-01-23 op #define HIST_WRAP 0x1
21 65c49665 2024-01-23 op
22 65c49665 2024-01-23 op struct hist *hist_new(int);
23 65c49665 2024-01-23 op void hist_free(struct hist *);
24 65c49665 2024-01-23 op void hist_erase(struct hist *);
25 65c49665 2024-01-23 op
26 65c49665 2024-01-23 op size_t hist_size(struct hist *);
27 65c49665 2024-01-23 op size_t hist_off(struct hist *);
28 65c49665 2024-01-23 op
29 65c49665 2024-01-23 op const char *hist_cur(struct hist *);
30 65c49665 2024-01-23 op int hist_cur_offs(struct hist *, size_t *, size_t *);
31 65c49665 2024-01-23 op
32 65c49665 2024-01-23 op int hist_set_cur(struct hist *, const char *);
33 65c49665 2024-01-23 op int hist_set_offs(struct hist *, size_t, size_t);
34 65c49665 2024-01-23 op
35 65c49665 2024-01-23 op const char *hist_nth(struct hist *, size_t);
36 65c49665 2024-01-23 op const char *hist_prev(struct hist *);
37 65c49665 2024-01-23 op const char *hist_next(struct hist *);
38 65c49665 2024-01-23 op
39 65c49665 2024-01-23 op void hist_seek_start(struct hist *);
40 65c49665 2024-01-23 op
41 65c49665 2024-01-23 op int hist_push(struct hist *, const char *);
42 65c49665 2024-01-23 op int hist_prepend(struct hist *, const char *);
43 65c49665 2024-01-23 op int hist_append(struct hist *, const char *);
44 65c49665 2024-01-23 op