Mercurial > ~mikael > mcabber > hg
annotate mcabber/mcabber/hbuf.h @ 1961:39021fd6b0e1
Try to improve readmarks in some cases
This patch removes the readmark when entering chatmode if the mark is on the
last line. This should hopefully fix weird behavior seen under some
circumstances.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Tue, 15 Mar 2011 00:39:17 +0100 |
parents | f309f343070c |
children | f740c4128f76 |
rev | line source |
---|---|
1668
41c26b7d2890
Install mcabber headers
Myhailo Danylenko <isbear@ukrpost.net>
parents:
1602
diff
changeset
|
1 #ifndef __MCABBER_HBUF_H__ |
41c26b7d2890
Install mcabber headers
Myhailo Danylenko <isbear@ukrpost.net>
parents:
1602
diff
changeset
|
2 #define __MCABBER_HBUF_H__ 1 |
71 | 3 |
184 | 4 #include <time.h> |
71 | 5 #include <glib.h> |
6 | |
106 | 7 // With current implementation a message must fit in a hbuf block, |
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 | 10 |
11 // Flags: | |
12 // - ALLOC: the ptr data has been allocated, it can be freed | |
13 // - PERSISTENT: this is a new history line | |
14 #define HBB_FLAG_ALLOC 1 | |
15 #define HBB_FLAG_PERSISTENT 2 | |
184 | 16 |
1204
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
17 #define HBB_PREFIX_IN (1U<<0) |
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
18 #define HBB_PREFIX_OUT (1U<<1) |
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
19 #define HBB_PREFIX_STATUS (1U<<2) |
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
20 #define HBB_PREFIX_AUTH (1U<<3) |
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
21 #define HBB_PREFIX_INFO (1U<<4) |
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
22 #define HBB_PREFIX_ERR (1U<<5) |
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
23 #define HBB_PREFIX_NOFLAG (1U<<6) |
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
24 #define HBB_PREFIX_HLIGHT_OUT (1U<<7) |
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
25 #define HBB_PREFIX_HLIGHT (1U<<8) |
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
26 #define HBB_PREFIX_NONE (1U<<9) |
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
27 #define HBB_PREFIX_SPECIAL (1U<<10) |
e802ec0c02d2
Basic support for nick highlighting in MUC rooms (the whole line is colored)
Mikael Berthe <mikael@lilotux.net>
parents:
1141
diff
changeset
|
28 #define HBB_PREFIX_PGPCRYPT (1U<<11) |
1484
7b36b91a4388
New UI message flag (O) when OTR is used
Mikael Berthe <mikael@lilotux.net>
parents:
1424
diff
changeset
|
29 #define HBB_PREFIX_OTRCRYPT (1U<<12) |
7b36b91a4388
New UI message flag (O) when OTR is used
Mikael Berthe <mikael@lilotux.net>
parents:
1424
diff
changeset
|
30 #define HBB_PREFIX_CONT (1U<<13) |
1602 | 31 #define HBB_PREFIX_RECEIPT (1U<<14) |
1948 | 32 #define HBB_PREFIX_READMARK (1U<<15) |
71 | 33 |
184 | 34 typedef struct { |
35 time_t timestamp; | |
850
d0781ca2dd08
Use new status buffer window
Mikael Berthe <mikael@lilotux.net>
parents:
847
diff
changeset
|
36 guint flags; |
1290
e42f48103609
Drawing the MUC nicks by a different color
Michal 'vorner' Vaner <vorner@ucw.cz>
parents:
1268
diff
changeset
|
37 unsigned mucnicklen; |
184 | 38 char *text; |
39 } hbb_line; | |
40 | |
41 void hbuf_add_line(GList **p_hbuf, const char *text, time_t timestamp, | |
1290
e42f48103609
Drawing the MUC nicks by a different color
Michal 'vorner' Vaner <vorner@ucw.cz>
parents:
1268
diff
changeset
|
42 guint prefix_flags, guint width, guint maxhbufblocks, |
1602 | 43 unsigned mucnicklen, gpointer xep184); |
71 | 44 void hbuf_free(GList **p_hbuf); |
45 void hbuf_rebuild(GList **p_hbuf, unsigned int width); | |
189 | 46 GList *hbuf_previous_persistent(GList *l_line); |
71 | 47 |
184 | 48 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
|
49 GList *hbuf_search(GList *hbuf, int direction, const char *string); |
464 | 50 GList *hbuf_jump_date(GList *hbuf, time_t t); |
462 | 51 GList *hbuf_jump_percent(GList *hbuf, int pc); |
1956
f309f343070c
Add command /buffer readmark
Mikael Berthe <mikael@lilotux.net>
parents:
1948
diff
changeset
|
52 GList *hbuf_jump_readmark(GList *hbuf); |
1602 | 53 gboolean hbuf_remove_receipt(GList *hbuf, gpointer xep184); |
1948 | 54 void hbuf_set_readmark(GList *hbuf, gboolean action); |
1961
39021fd6b0e1
Try to improve readmarks in some cases
Mikael Berthe <mikael@lilotux.net>
parents:
1956
diff
changeset
|
55 void hbuf_remove_trailing_readmark(GList *hbuf); |
71 | 56 |
1485
0121b6f3047c
New command: /buffer save
Mikael Berthe <mikael@lilotux.net>
parents:
1484
diff
changeset
|
57 void hbuf_dump_to_file(GList *hbuf, const char *filename); |
0121b6f3047c
New command: /buffer save
Mikael Berthe <mikael@lilotux.net>
parents:
1484
diff
changeset
|
58 |
1227
79c396678f1b
Make buffer list display the number of allocated HBB blocks
Mikael Berthe <mikael@lilotux.net>
parents:
1204
diff
changeset
|
59 guint hbuf_get_blocks_number(GList *p_hbuf); |
79c396678f1b
Make buffer list display the number of allocated HBB blocks
Mikael Berthe <mikael@lilotux.net>
parents:
1204
diff
changeset
|
60 |
1668
41c26b7d2890
Install mcabber headers
Myhailo Danylenko <isbear@ukrpost.net>
parents:
1602
diff
changeset
|
61 #endif /* __MCABBER_HBUF_H__ */ |
576 | 62 |
1811 | 63 /* vim: set expandtab cindent cinoptions=>2\:2(0 sw=2 ts=2: For Vim users... */ |