view mcabber/src/hbuf.h @ 824:37ef269330f0

Show incomplete subscriptions in the roster When the "from" subscription is missing, curly braces are used. When the "to" subscription is missing, the status is replaced by '?'. Thanks to pmw for the suggestion.
author Mikael Berthe <mikael@lilotux.net>
date Tue, 25 Apr 2006 07:13:43 +0200
parents b16acadd7d53
children e1b7f71b0b1c
line wrap: on
line source

#ifndef __HBUF_H__
#define __HBUF_H__ 1

#include <time.h>
#include <glib.h>

// With current implementation a message must fit in a hbuf block,
// so we shouldn't choose a too small size.
#define HBB_BLOCKSIZE   8192    // > 20 please

// Flags:
// - ALLOC: the ptr data has been allocated, it can be freed
// - PERSISTENT: this is a new history line
#define HBB_FLAG_ALLOC      1
#define HBB_FLAG_PERSISTENT 2

#define HBB_PREFIX_IN       1
#define HBB_PREFIX_OUT      2
#define HBB_PREFIX_STATUS   4
#define HBB_PREFIX_AUTH     8
#define HBB_PREFIX_INFO    16
#define HBB_PREFIX_ERR     32
#define HBB_PREFIX_NOFLAG  64
#define HBB_PREFIX_HLIGHT 128

typedef struct {
  time_t timestamp;
  guchar flags;
  char *text;
} hbb_line;

void hbuf_add_line(GList **p_hbuf, const char *text, time_t timestamp,
        guint prefix_flags, guint width);
void hbuf_free(GList **p_hbuf);
void hbuf_rebuild(GList **p_hbuf, unsigned int width);
GList *hbuf_previous_persistent(GList *l_line);

hbb_line **hbuf_get_lines(GList *hbuf, unsigned int n);
GList *hbuf_search(GList *hbuf, int direction, const char *string);
GList *hbuf_jump_date(GList *hbuf, time_t t);
GList *hbuf_jump_percent(GList *hbuf, int pc);

#endif /* __HBUF_H__ */

/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */