# HG changeset patch # User Mikael Berthe # Date 1300471696 -3600 # Node ID 88dafee4ee497d9552e0177e4c39fbd1fa3e49f7 # Parent ec737f5f1d6fa88c79600ebec602a50a85ee93ab Hopefully fix previous commit diff -r ec737f5f1d6f -r 88dafee4ee49 mcabber/mcabber/hbuf.c --- a/mcabber/mcabber/hbuf.c Fri Mar 18 12:29:57 2011 +0100 +++ b/mcabber/mcabber/hbuf.c Fri Mar 18 19:08:16 2011 +0100 @@ -297,7 +297,8 @@ while (l_line) { hbuf_b_elt = (hbuf_block*)l_line->data; - if (hbuf_b_elt->flags & HBB_FLAG_PERSISTENT) + if (hbuf_b_elt->flags & HBB_FLAG_PERSISTENT && + (hbuf_b_elt->flags & ~HBB_PREFIX_READMARK)) return l_line; l_line = g_list_previous(l_line); } @@ -325,7 +326,8 @@ last_persist = hbuf_previous_persistent(hbuf); while (last_persist) { blk = (hbuf_block*)last_persist->data; - if ((blk->flags & HBB_FLAG_PERSISTENT) && blk->prefix.flags) { + if ((blk->flags & HBB_FLAG_PERSISTENT) && + (blk->prefix.flags & ~HBB_PREFIX_READMARK)) { last_persist_prefixflags = blk->prefix.flags; break; } @@ -362,7 +364,7 @@ (*array_elt)->flags |= HBB_PREFIX_CONT; (*array_elt)->mucnicklen = 0; // The nick is in the first one // Remove readmark flag from the previous line - if (last_persist_prefixflags & HBB_PREFIX_READMARK) + if (prev_array_elt && last_persist_prefixflags & HBB_PREFIX_READMARK) prev_array_elt->flags &= ~HBB_PREFIX_READMARK; } @@ -485,10 +487,11 @@ line.mucnicklen = blk->prefix.mucnicklen; line.text = g_strndup(blk->ptr, maxlen); - if ((blk->flags & HBB_FLAG_PERSISTENT) && blk->prefix.flags) { + if ((blk->flags & HBB_FLAG_PERSISTENT) && + (blk->prefix.flags & ~HBB_PREFIX_READMARK)) { last_persist_prefixflags = blk->prefix.flags; } else { - // Propagate highlighting flags + // Propagate necessary highlighting flags line.flags |= last_persist_prefixflags & (HBB_PREFIX_HLIGHT_OUT | HBB_PREFIX_HLIGHT | HBB_PREFIX_INFO | HBB_PREFIX_IN);