File: buffer.h

package info (click to toggle)
f-irc 1.36-1
  • links: PTS
  • area: main
  • in suites: buster, jessie, jessie-kfreebsd, stretch
  • size: 632 kB
  • ctags: 904
  • sloc: ansic: 12,538; makefile: 61
file content (43 lines) | stat: -rw-r--r-- 1,339 bytes parent folder | download | duplicates (2)
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
37
38
39
40
41
42
43
/* GPLv2 applies
 * SVN revision: $Revision: 798 $
 * (C) 2006-2014 by folkert@vanheusden.com
 */
#ifndef __BUFFER_H__
#define __BUFFER_H__

typedef enum { BET_REGULAR, BET_META, BET_MARKERLINE } be_type_t;

typedef struct
{
	const char *msg, *msg_from;
	be_type_t line_type;
	time_t when;
	int sr, ch; /* server/channel */
} buffer_element_t;

typedef struct
{
	int n_records;
	buffer_element_t *records;

	int max_n_elements;

	int last_shown;
} buffer;

buffer * create_buffer(const int max_channel_record_lines);
void truncate_buffer(buffer *pbuffer);
void free_buffer(buffer *pbuffer);
int get_buffer_n_elements(const buffer *pb);
buffer_element_t *get_from_buffer(const buffer *pb, int pos);
void add_buffer_to_buffer(buffer *target, const buffer *source);
void add_to_buffer(buffer *pbuffer, const char *what, const char *what_from, const BOOL is_meta, const int sr, const int ch);
void search_in_buffer(const buffer *in, buffer *result, const char *search_what, BOOL fuzzy);
buffer * search_in_buffer_new(const buffer *in, const char *search_what, BOOL fuzzy);
void sort_buffer(buffer *work, BOOL direction);
BOOL is_markerline(buffer *pbuffer, int pos);
BOOL latest_is_markerline(buffer *pb);
void delete_type(buffer *pb, be_type_t type);
int search_in_buffer_index(const buffer *in, const char *what, int search_offset);

#endif