root/src/diffviewer/internal.h

/* [previous][next][first][last][top][bottom][index][help]  */

INCLUDED FROM


   1 #ifndef MC__DIFFVIEW_INTERNAL_H
   2 #define MC__DIFFVIEW_INTERNAL_H
   3 
   4 #include "lib/global.h"
   5 #include "lib/mcconfig.h"
   6 #include "lib/search.h"
   7 #include "lib/tty/color.h"
   8 #include "lib/widget.h"
   9 
  10 /*** typedefs(not structures) and defined constants **********************************************/
  11 
  12 typedef int (*DFUNC) (void *ctx, int ch, int line, off_t off, size_t sz, const char *str);
  13 typedef int PAIR[2];
  14 
  15 #define error_dialog(h, s) query_dialog(h, s, D_ERROR, 1, _("&Dismiss"))
  16 
  17 /*** enums ***************************************************************************************/
  18 
  19 typedef enum
  20 {
  21     DATA_SRC_MEM = 0,
  22     DATA_SRC_TMP = 1,
  23     DATA_SRC_ORG = 2
  24 } DSRC;
  25 
  26 typedef enum
  27 {
  28     DIFF_LEFT = 0,
  29     DIFF_RIGHT = 1,
  30     DIFF_COUNT = 2
  31 } diff_place_t;
  32 
  33 typedef enum
  34 {
  35     DIFF_NONE = 0,
  36     DIFF_ADD = 1,
  37     DIFF_DEL = 2,
  38     DIFF_CHG = 3
  39 } DiffState;
  40 
  41 /*** structures declarations (and typedefs of structures)*****************************************/
  42 
  43 typedef struct
  44 {
  45     int fd;
  46     int pos;
  47     int len;
  48     char *buf;
  49     int flags;
  50     void *data;
  51 } FBUF;
  52 
  53 typedef struct
  54 {
  55     int a[2][2];
  56     int cmd;
  57 } DIFFCMD;
  58 
  59 
  60 typedef struct
  61 {
  62     int off;
  63     int len;
  64 } BRACKET[DIFF_COUNT];
  65 
  66 typedef struct
  67 {
  68     int ch;
  69     int line;
  70     union
  71     {
  72         off_t off;
  73         size_t len;
  74     } u;
  75     void *p;
  76 } DIFFLN;
  77 
  78 typedef struct
  79 {
  80     FBUF *f;
  81     GArray *a;
  82     DSRC dsrc;
  83 } PRINTER_CTX;
  84 
  85 typedef struct WDiff
  86 {
  87     Widget widget;
  88 
  89     const char *args;           /* Args passed to diff */
  90     const char *file[DIFF_COUNT];       /* filenames */
  91     char *label[DIFF_COUNT];
  92     FBUF *f[DIFF_COUNT];
  93     const char *backup_sufix;
  94     gboolean merged[DIFF_COUNT];
  95     GArray *a[DIFF_COUNT];
  96     GPtrArray *hdiff;
  97     int ndiff;                  /* number of hunks */
  98     DSRC dsrc;                  /* data source: memory or temporary file */
  99 
 100     gboolean view_quit;         /* Quit flag */
 101 
 102     int height;
 103     int half1;
 104     int half2;
 105     int width1;
 106     int width2;
 107     int bias;
 108     gboolean new_frame;
 109     int skip_rows;
 110     int skip_cols;
 111     gboolean display_symbols;
 112     int display_numbers;
 113     gboolean show_cr;
 114     int tab_size;
 115     diff_place_t ord;
 116     gboolean full;
 117 
 118 #ifdef HAVE_CHARSET
 119     gboolean utf8;
 120     /* converter for translation of text */
 121     GIConv converter;
 122 #endif                          /* HAVE_CHARSET */
 123 
 124     struct
 125     {
 126         int quality;
 127         gboolean strip_trailing_cr;
 128         gboolean ignore_tab_expansion;
 129         gboolean ignore_space_change;
 130         gboolean ignore_all_space;
 131         gboolean ignore_case;
 132     } opt;
 133 
 134     /* Search variables */
 135     struct
 136     {
 137         mc_search_t *handle;
 138         gchar *last_string;
 139 
 140         ssize_t last_found_line;
 141         ssize_t last_accessed_num_line;
 142     } search;
 143 } WDiff;
 144 
 145 /*** global variables defined in .c file *********************************************************/
 146 
 147 /*** declarations of public functions ************************************************************/
 148 
 149 /* search.c */
 150 void dview_search_cmd (WDiff * dview);
 151 void dview_continue_search_cmd (WDiff * dview);
 152 
 153 #endif /* MC__DIFFVIEW_INTERNAL_H */

/* [previous][next][first][last][top][bottom][index][help]  */