mirror of
https://github.com/neovim/neovim.git
synced 2025-09-26 21:18:34 +00:00

Here's the list of squashed commits (for more info, see PR #378). - Define guicolor_T as a typedef in syntax.h - Move a big chunk of code from structs.h to buffer_defs.h - Move aco_save_T from structs.h to fileio.h - Move option_table_T from structs.h to hardcopy.h Aditionally: - Move the printer_opts global to hardcopy.c - Delete structs.h. Include buffer_defs.h where structs.h was included before. - Add header guards to option_defs.h - Put mark types and constants in new mark_defs.h - Move undo structs to undo_defs.h - Move memfile structs to new memfile_defs.h - Move expand_T and cmdmod_T to ex_cmds_defs.h - Move memline_T to memline_defs.h - Move many defs and types to ex_eval.h - Move syntax related types to syntax_defs.h - Move struct memfile to memfile_defs.h - struct buffblock and struct buffheader moved back to buffer_defs.h - Move some datatypes to hashtab.h and eval_defs.h - Move the buffer_defs.h include and TODOs for remaining unrelated types in buffer_defs.h
69 lines
2.6 KiB
C
69 lines
2.6 KiB
C
#ifndef NEOVIM_UNDO_DEFS_H
|
|
#define NEOVIM_UNDO_DEFS_H
|
|
|
|
#include "pos.h"
|
|
|
|
/* Structure to store info about the Visual area. */
|
|
typedef struct {
|
|
pos_T vi_start; /* start pos of last VIsual */
|
|
pos_T vi_end; /* end position of last VIsual */
|
|
int vi_mode; /* VIsual_mode of last VIsual */
|
|
colnr_T vi_curswant; /* MAXCOL from w_curswant */
|
|
} visualinfo_T;
|
|
|
|
typedef struct u_entry u_entry_T;
|
|
typedef struct u_header u_header_T;
|
|
struct u_entry {
|
|
u_entry_T *ue_next; /* pointer to next entry in list */
|
|
linenr_T ue_top; /* number of line above undo block */
|
|
linenr_T ue_bot; /* number of line below undo block */
|
|
linenr_T ue_lcount; /* linecount when u_save called */
|
|
char_u **ue_array; /* array of lines in undo block */
|
|
long ue_size; /* number of lines in ue_array */
|
|
#ifdef U_DEBUG
|
|
int ue_magic; /* magic number to check allocation */
|
|
#endif
|
|
};
|
|
|
|
struct u_header {
|
|
/* The following have a pointer and a number. The number is used when
|
|
* reading the undo file in u_read_undo() */
|
|
union {
|
|
u_header_T *ptr; /* pointer to next undo header in list */
|
|
long seq;
|
|
} uh_next;
|
|
union {
|
|
u_header_T *ptr; /* pointer to previous header in list */
|
|
long seq;
|
|
} uh_prev;
|
|
union {
|
|
u_header_T *ptr; /* pointer to next header for alt. redo */
|
|
long seq;
|
|
} uh_alt_next;
|
|
union {
|
|
u_header_T *ptr; /* pointer to previous header for alt. redo */
|
|
long seq;
|
|
} uh_alt_prev;
|
|
long uh_seq; /* sequence number, higher == newer undo */
|
|
int uh_walk; /* used by undo_time() */
|
|
u_entry_T *uh_entry; /* pointer to first entry */
|
|
u_entry_T *uh_getbot_entry; /* pointer to where ue_bot must be set */
|
|
pos_T uh_cursor; /* cursor position before saving */
|
|
long uh_cursor_vcol;
|
|
int uh_flags; /* see below */
|
|
pos_T uh_namedm[NMARKS]; /* marks before undo/after redo */
|
|
visualinfo_T uh_visual; /* Visual areas before undo/after redo */
|
|
time_t uh_time; /* timestamp when the change was made */
|
|
long uh_save_nr; /* set when the file was saved after the
|
|
changes in this block */
|
|
#ifdef U_DEBUG
|
|
int uh_magic; /* magic number to check allocation */
|
|
#endif
|
|
};
|
|
|
|
/* values for uh_flags */
|
|
#define UH_CHANGED 0x01 /* b_changed flag before undo/after redo */
|
|
#define UH_EMPTYBUF 0x02 /* buffer was empty */
|
|
|
|
#endif // NEOVIM_UNDO_DEFS_H
|