filter.h
author viric <viriketo@gmail.com>
Wed, 16 Feb 2011 21:07:11 +0100
branchsaveflie
changeset 95 13360d8af313
parent 76 5c0b9c9f9801
permissions -rw-r--r--
Fixing a problem on savefile (stdin was not saved well, and the file not truncated)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
     1
struct FilterRules;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
     2
struct FFilter;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
     3
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
     4
typedef void (*Fcallback)(struct FilterRules *fr, const struct FFilter *ff,
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
     5
        char *obuf, int *olen, const char *ibuf, int pos);
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
     6
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
     7
/* TRUE if match */
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
     8
typedef int (*Ffunction)(struct FFilter *ff, unsigned char c);
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
     9
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    10
typedef void (*Freset)(struct FFilter *ff);
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    11
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    12
struct FFilter {
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    13
    /* Static */
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    14
    Ffunction function;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    15
    Freset reset;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    16
    Fcallback callback;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    17
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    18
    int matched;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    19
};
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    20
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    21
struct FilterRules {
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    22
    int nfilters;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    23
    struct FFilter **filters;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    24
    unsigned char *fbuffer;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    25
    int fbuffer_len;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    26
    int fbuffer_allocated;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    27
};
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    28
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    29
void add_ffilter(struct FilterRules *fr, struct FFilter *ff);
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    30
struct FilterRules * new_filter_rules();
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    31
void filter_stream(struct FilterRules *fr, char *obuf, int *olen, const char *buffer, int len);
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    32
void filter_flush(struct FilterRules *fr, char *obuf, int *olen);
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    33
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    34
/* filter_string.c */
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents:
diff changeset
    35
struct FFilter *new_fstring(char *p);
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents: 34
diff changeset
    36
struct FFilter *new_fstring_len(char *p, int len);
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents: 34
diff changeset
    37
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents: 34
diff changeset
    38
/* filter_telnet.c */
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents: 34
diff changeset
    39
struct FFilter *new_ftelnet();
76
5c0b9c9f9801 Fixed filter, and the client now parses ~~~ and ~~. (closing client)
viric@llimona
parents: 36
diff changeset
    40
5c0b9c9f9801 Fixed filter, and the client now parses ~~~ and ~~. (closing client)
viric@llimona
parents: 36
diff changeset
    41
/* filter_tildes.c */
5c0b9c9f9801 Fixed filter, and the client now parses ~~~ and ~~. (closing client)
viric@llimona
parents: 36
diff changeset
    42
struct FFilter *new_ftildes();