aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/fileio.h
blob: d1f65615079c3c1497ce61f478e164cf8eb35261 (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#pragma once

#include <stdint.h>  // IWYU pragma: keep
#include <stdio.h>  // IWYU pragma: keep
#include <time.h>  // IWYU pragma: keep

#include "nvim/buffer_defs.h"  // IWYU pragma: keep
#include "nvim/eval/typval_defs.h"
#include "nvim/ex_cmds_defs.h"  // IWYU pragma: keep
#include "nvim/garray_defs.h"  // IWYU pragma: keep
#include "nvim/globals.h"
#include "nvim/os/fs_defs.h"  // IWYU pragma: keep
#include "nvim/pos_defs.h"

// Values for readfile() flags
#define READ_NEW        0x01    // read a file into a new buffer
#define READ_FILTER     0x02    // read filter output
#define READ_STDIN      0x04    // read from stdin
#define READ_BUFFER     0x08    // read from curbuf (converting stdin)
#define READ_DUMMY      0x10    // reading into a dummy buffer
#define READ_KEEP_UNDO  0x20    // keep undo info
#define READ_FIFO       0x40    // read from fifo or socket
#define READ_NOWINENTER 0x80    // do not trigger BufWinEnter
#define READ_NOFILE     0x100   // do not read a file, do trigger BufReadCmd

typedef varnumber_T (*CheckItem)(void *expr, const char *name);

enum {
  FIO_LATIN1 = 0x01,       // convert Latin1
  FIO_UTF8 = 0x02,         // convert UTF-8
  FIO_UCS2 = 0x04,         // convert UCS-2
  FIO_UCS4 = 0x08,         // convert UCS-4
  FIO_UTF16 = 0x10,        // convert UTF-16
  FIO_ENDIAN_L = 0x80,     // little endian
  FIO_NOCONVERT = 0x2000,  // skip encoding conversion
  FIO_UCSBOM = 0x4000,     // check for BOM at start of file
  FIO_ALL = -1,            // allow all formats
};

// When converting, a read() or write() may leave some bytes to be converted
// for the next call.  The value is guessed...
#define CONV_RESTLEN 30

#define WRITEBUFSIZE         8192    // size of normal write buffer

// We have to guess how much a sequence of bytes may expand when converting
// with iconv() to be able to allocate a buffer.
#define ICONV_MULT 8

#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "fileio.h.generated.h"
#endif