diff options
| author | kx <kx@radix-linux.su> | 2026-10-01 12:02:28 +0300 |
|---|---|---|
| committer | kx <kx@radix-linux.su> | 2026-10-01 12:02:28 +0300 |
| commit | ba1b04d64bdfaf377915b22f77520216ebe47674 (patch) | |
| tree | 044343035c28b2b04ca9725f26e9b7c39342d19c /src/mcpp-source.h | |
| parent | 124b140798456778e2a96851cc7268aa9a726698 (diff) | |
| download | mcpu-cpp-1.0.2.tar.xz | |
Version 1.0.21.0.2
Diffstat (limited to 'src/mcpp-source.h')
| -rw-r--r-- | src/mcpp-source.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/mcpp-source.h b/src/mcpp-source.h new file mode 100644 index 0000000..9a7973a --- /dev/null +++ b/src/mcpp-source.h @@ -0,0 +1,35 @@ +#ifndef __MCPU_CPP_SOURCE_H__ +#define __MCPU_CPP_SOURCE_H__ 1 + +#include <defs.h> +#include <mcpp-text.h> + +#define MCPU_CPP_NON_UCS2_SENTINEL 0xd800 + +typedef struct mcpu_source mcpu_source; +struct mcpu_source +{ + char *filename; + mcpu_text text; + mcpu_text logical_line; + size_t *splice_offsets; + size_t splice_count; + size_t splice_capacity; + size_t offset; + unsigned line; +}; + +void mcpu_source_init( mcpu_source *source ); +void mcpu_source_free( mcpu_source *source ); +int mcpu_source_open( mcpu_source *source, const char *filename ); +int mcpu_source_open_stream( mcpu_source *source, FILE *stream, + const char *name ); +int mcpu_source_valid_ucs2( const __mpu_char16_t *text, size_t length ); +int mcpu_source_next_line( mcpu_source *source, + const __mpu_char16_t **line, + size_t *length, + unsigned *line_number, + unsigned *next_line_number, + int *spliced ); + +#endif /* __MCPU_CPP_SOURCE_H__ */ |
