diff -r cee8d6be04e1 -r b30df2ab457f mcabber/src/screen.c --- a/mcabber/src/screen.c Wed May 24 21:52:46 2006 +0200 +++ b/mcabber/src/screen.c Wed May 24 22:29:05 2006 +0200 @@ -1523,6 +1523,37 @@ doupdate(); } +// scr_BufferPurge() +// Purge/Drop the current buddy buffer +void scr_BufferPurge(void) +{ + winbuf *win_entry; + guint isspe; + + // Get win_entry + if (!current_buddy) return; + isspe = buddy_gettype(BUDDATA(current_buddy)) & ROSTER_TYPE_SPECIAL; + win_entry = scr_SearchWindow(CURRENT_JID, isspe); + if (!win_entry) return; + + // Delete the current hbuf + hbuf_free(&win_entry->hbuf); + if (isspe) { + // Currently it can only be the status buffer + statushbuf = NULL; + } + + win_entry->cleared = FALSE; + win_entry->top = NULL; + + // Refresh the window + scr_UpdateBuddyWindow(); + + // Finished :) + update_panels(); + doupdate(); +} + // scr_BufferTopBottom() // Jump to the head/tail of the current buddy window // (top if topbottom == -1, bottom topbottom == 1)