mcabber/src/hbuf.h
author Mikael Berthe <mikael@lilotux.net>
Tue, 06 Feb 2007 00:21:42 +0100
changeset 1141 5be2408a6534
parent 1055 6eb1efea75d0
child 1204 e802ec0c02d2
permissions -rw-r--r--
Add option "max_history_blocks"
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
     1
#ifndef __HBUF_H__
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
     2
#define __HBUF_H__ 1
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
     3
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
     4
#include <time.h>
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
     5
#include <glib.h>
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
     6
106
9a31028e8095 [/trunk] Changeset 120 by mikael
mikael
parents: 75
diff changeset
     7
// With current implementation a message must fit in a hbuf block,
9a31028e8095 [/trunk] Changeset 120 by mikael
mikael
parents: 75
diff changeset
     8
// so we shouldn't choose a too small size.
795
b16acadd7d53 Improve support for long messages
Mikael Berthe <mikael@lilotux.net>
parents: 728
diff changeset
     9
#define HBB_BLOCKSIZE   8192    // > 20 please
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    10
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    11
// Flags:
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    12
// - ALLOC: the ptr data has been allocated, it can be freed
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    13
// - PERSISTENT: this is a new history line
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    14
#define HBB_FLAG_ALLOC      1
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    15
#define HBB_FLAG_PERSISTENT 2
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
    16
952
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 850
diff changeset
    17
#define HBB_PREFIX_IN          1U
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 850
diff changeset
    18
#define HBB_PREFIX_OUT         2U
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 850
diff changeset
    19
#define HBB_PREFIX_STATUS      4U
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 850
diff changeset
    20
#define HBB_PREFIX_AUTH        8U
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 850
diff changeset
    21
#define HBB_PREFIX_INFO       16U
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 850
diff changeset
    22
#define HBB_PREFIX_ERR        32U
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 850
diff changeset
    23
#define HBB_PREFIX_NOFLAG     64U
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 850
diff changeset
    24
#define HBB_PREFIX_HLIGHT    128U
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 850
diff changeset
    25
#define HBB_PREFIX_NONE      256U
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 850
diff changeset
    26
#define HBB_PREFIX_SPECIAL   512U
1055
6eb1efea75d0 PGP: Visual encryption flag
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
    27
#define HBB_PREFIX_PGPCRYPT 1024U
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    28
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
    29
typedef struct {
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
    30
  time_t timestamp;
850
d0781ca2dd08 Use new status buffer window
Mikael Berthe <mikael@lilotux.net>
parents: 847
diff changeset
    31
  guint flags;
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
    32
  char *text;
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
    33
} hbb_line;
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
    34
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
    35
void hbuf_add_line(GList **p_hbuf, const char *text, time_t timestamp,
1141
5be2408a6534 Add option "max_history_blocks"
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
    36
        guint prefix_flags, guint width, guint maxhbufblocks);
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    37
void hbuf_free(GList **p_hbuf);
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    38
void hbuf_rebuild(GList **p_hbuf, unsigned int width);
189
4f3975f1b852 [/trunk] Changeset 201 by mikael
mikael
parents: 186
diff changeset
    39
GList *hbuf_previous_persistent(GList *l_line);
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    40
184
b5aa2b9c425a [/trunk] Changeset 196 by mikael
mikael
parents: 106
diff changeset
    41
hbb_line **hbuf_get_lines(GList *hbuf, unsigned int n);
370
dd9e2eb52916 Add /buffer search_{backward,forward}
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
    42
GList *hbuf_search(GList *hbuf, int direction, const char *string);
464
e4840b288be0 Add "/buffer date"
Mikael Berthe <mikael@lilotux.net>
parents: 462
diff changeset
    43
GList *hbuf_jump_date(GList *hbuf, time_t t);
462
d580e87c11ed Add "/buffer %n"
Mikael Berthe <mikael@lilotux.net>
parents: 370
diff changeset
    44
GList *hbuf_jump_percent(GList *hbuf, int pc);
71
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    45
1e9d4949bcfd [/trunk] Changeset 85 by mikael
mikael
parents:
diff changeset
    46
#endif /* __HBUF_H__ */
576
8b3db0b555a1 Add Vim modelines
Mikael Berthe <mikael@lilotux.net>
parents: 513
diff changeset
    47
580
fed6d1e4d7a9 Fix modelines
Mikael Berthe <mikael@lilotux.net>
parents: 576
diff changeset
    48
/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */