aboutsummaryrefslogtreecommitdiff
path: root/register.h
blob: d66e5574e0be8c85bdc6b5141a8965b2aaba8cb4 (plain) (blame)
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
#ifndef REGISTER_H
#define REGISTER_H

#include <stddef.h>
#include <stdbool.h>
#include "buffer.h"
#include "text-util.h"

#ifndef VIS_H
typedef struct Vis Vis;
#endif

typedef struct {
	Buffer buf;
	bool linewise; /* place register content on a new line when inserting? */
	bool append;
	enum {
		REGISTER_NORMAL,
		REGISTER_BLACKHOLE,
		REGISTER_CLIPBOARD,
	} type;
} Register;

void register_release(Register *reg);
const char *register_get(Vis*, Register*reg, size_t *len);
bool register_put(Vis*, Register *reg, const char *data, size_t len);
bool register_put_range(Vis*, Register *reg, Text *txt, Filerange *range);
bool register_append_range(Register *reg, Text *txt, Filerange *range);

#endif