added merge mechanism
[midnight-commander.git] / src / diffviewer / ydiff.h
blob543159c75bb516efb7896a5d7942063cdb820181
1 #ifndef MC_YDIFF_H
2 #define MC_YDIFF_H
4 typedef struct
6 int fd;
7 int pos;
8 int len;
9 char *buf;
10 int flags;
11 void *data;
12 } FBUF;
14 typedef struct
16 int a[2][2];
17 int cmd;
18 } DIFFCMD;
20 typedef int (*DFUNC) (void *ctx, int ch, int line, off_t off, size_t sz, const char *str);
22 typedef struct
24 int off;
25 int len;
26 } BRACKET[2];
28 typedef int PAIR[2];
30 typedef enum
32 DATA_SRC_MEM = 0,
33 DATA_SRC_TMP = 1,
34 DATA_SRC_ORG = 2
35 } DSRC;
37 typedef struct
39 int ch;
40 int line;
41 union
43 off_t off;
44 size_t len;
45 } u;
46 void *p;
47 } DIFFLN;
49 typedef struct
51 FBUF *f;
52 GArray *a;
53 DSRC dsrc;
54 } PRINTER_CTX;
56 typedef struct
58 Widget widget;
60 const char *args; /* Args passed to diff */
61 const char *file[2]; /* filenames */
62 const char *label[2];
63 FBUF *f[2];
64 const char *backup_sufix;
65 gboolean merged;
66 GArray *a[2];
67 GPtrArray *hdiff;
68 int ndiff; /* number of hunks */
69 DSRC dsrc; /* data source: memory or temporary file */
71 int view_quit:1; /* Quit flag */
73 int height;
74 int half1;
75 int half2;
76 int width1;
77 int width2;
78 int bias;
79 int new_frame;
80 int skip_rows;
81 int skip_cols;
82 int display_symbols;
83 int display_numbers;
84 int show_cr;
85 int tab_size;
86 int ord;
87 int full;
88 ssize_t last_found;
89 gboolean utf8;
90 /* converter for translation of text */
91 GIConv converter;
92 struct
94 int quality;
95 gboolean strip_trailing_cr;
96 gboolean ignore_tab_expansion;
97 gboolean ignore_space_change;
98 gboolean ignore_all_space;
99 gboolean ignore_case;
100 } opt;
101 } WDiff;
103 typedef enum
105 DIFF_NONE = 0,
106 DIFF_ADD = 1,
107 DIFF_DEL = 2,
108 DIFF_CHG = 3
109 } DiffState;
111 void dview_diff_cmd (WDiff * dview);
112 int diff_view (const char *file1, const char *file2, const char *label1, const char *label2);
114 #endif