# HG changeset patch # User Mikael Berthe # Date 1188036312 -7200 # Node ID 8bbc764139efb8bad475e91866ffdf2b4070d937 # Parent c3107650d165140078c4b2e80c9adf94aa766cfa Implement /buffer close|purge [jid] diff -r c3107650d165 -r 8bbc764139ef mcabber/doc/help/de/hlp_buffer.txt --- a/mcabber/doc/help/de/hlp_buffer.txt Sat Aug 25 11:06:28 2007 +0200 +++ b/mcabber/doc/help/de/hlp_buffer.txt Sat Aug 25 12:05:12 2007 +0200 @@ -7,11 +7,11 @@ /buffer clear Leere das gerade offene Chatfenster -/buffer close +/buffer close [jid] Leert den Inhalt des Puffers und schließt das momentan geöffnete Chatfenster /buffer close_all Leert alle Chatpuffer und schließt alle Chatfenster -/buffer purge +/buffer purge [jid] Leere das Chatfenster und lösche den Inhalt des Chatpuffers /buffer top Springe zum Anfang des momentanen Chat Puffers diff -r c3107650d165 -r 8bbc764139ef mcabber/doc/help/en/hlp_buffer.txt --- a/mcabber/doc/help/en/hlp_buffer.txt Sat Aug 25 11:06:28 2007 +0200 +++ b/mcabber/doc/help/en/hlp_buffer.txt Sat Aug 25 12:05:12 2007 +0200 @@ -7,11 +7,11 @@ /buffer clear Clear the current buddy chat window -/buffer close +/buffer close [jid] Empty all contents of the buffer and close the current buddy chat window /buffer close_all Empty all contents of the chat buffers and close the chat windows -/buffer purge +/buffer purge [jid] Clear the current buddy chat window and empty all contents of the chat buffer /buffer top Jump to the top of the current buddy chat buffer diff -r c3107650d165 -r 8bbc764139ef mcabber/doc/help/fr/hlp_buffer.txt --- a/mcabber/doc/help/fr/hlp_buffer.txt Sat Aug 25 11:06:28 2007 +0200 +++ b/mcabber/doc/help/fr/hlp_buffer.txt Sat Aug 25 12:05:12 2007 +0200 @@ -7,11 +7,11 @@ /buffer clear Efface la fenêtre du contact sélectionné -/buffer close +/buffer close [jid] Ferme la fenêtre du contact sélectionné après avoir vidé le contenu du tampon associé /buffer close_all Ferme les fenêtres dde tous les contacts après avoir vidé le contenu des tampons associés -/buffer purge +/buffer purge [jid] Efface la fenêtre du contact sélectionné et vide le contenu du tampon associé /buffer top Va au début du tampon diff -r c3107650d165 -r 8bbc764139ef mcabber/doc/help/it/hlp_buffer.txt --- a/mcabber/doc/help/it/hlp_buffer.txt Sat Aug 25 11:06:28 2007 +0200 +++ b/mcabber/doc/help/it/hlp_buffer.txt Sat Aug 25 12:05:12 2007 +0200 @@ -7,11 +7,11 @@ /buffer clear Pulisce la finestra di chat del contatto corrente -/buffer close +/buffer close [jid] Svuota tutti contenuti presenti nel buffer e chiude la finestra di chat del contatto corrente /buffer close_all Svuota tutti i contenuti presenti in tutti i buffer e chiude le finestre di chat -/buffer purge +/buffer purge [jid] Pulisce la finestra di chat del contatto corrente e svuota tutti i contenuti del buffer /buffer top Salta all'inizio del buffer di chat del contatto corrente diff -r c3107650d165 -r 8bbc764139ef mcabber/doc/help/nl/hlp_buffer.txt --- a/mcabber/doc/help/nl/hlp_buffer.txt Sat Aug 25 11:06:28 2007 +0200 +++ b/mcabber/doc/help/nl/hlp_buffer.txt Sat Aug 25 12:05:12 2007 +0200 @@ -7,11 +7,11 @@ /buffer clear Wis het chat venster van de actieve buddy -/buffer close +/buffer close [jid] Wis de volledige inhoud van de chat buffer en sluit het venster van de actieve buddy /buffer close_all Wis de volledige inhoud van alle chat buffers en sluit alle chat vensters -/buffer purge +/buffer purge [jid] Wis het chat venster van de actieve buddy en verwijder de volledige inhoud van de chat buffer /buffer top Spring naar het begin van de chat buffer van de actieve buddy diff -r c3107650d165 -r 8bbc764139ef mcabber/doc/help/pl/hlp_buffer.txt --- a/mcabber/doc/help/pl/hlp_buffer.txt Sat Aug 25 11:06:28 2007 +0200 +++ b/mcabber/doc/help/pl/hlp_buffer.txt Sat Aug 25 12:05:12 2007 +0200 @@ -7,11 +7,11 @@ /buffer clear Czyści okno rozmowy -/buffer close +/buffer close [jid] Czyści cały bufor rozmowy i zamyka aktualne okno z rozmową /buffer close_all Czyści wszystkie bufory rozmów i zamyka okna z rozmowami -/buffer purge +/buffer purge [jid] Czyści okno rozmowy i usuwa całą zawartość bufora rozmowy /buffer top Skacze na sam początek bufora rozmowy diff -r c3107650d165 -r 8bbc764139ef mcabber/doc/help/ru/hlp_buffer.txt --- a/mcabber/doc/help/ru/hlp_buffer.txt Sat Aug 25 11:06:28 2007 +0200 +++ b/mcabber/doc/help/ru/hlp_buffer.txt Sat Aug 25 12:05:12 2007 +0200 @@ -7,11 +7,11 @@ /buffer clear Отчищает текущее окно чата -/buffer close +/buffer close [jid] Отчищает весь контент текущего буфера и закрывает окно чата с текущим пользователем /buffer close_all Отчищает весь контент буфера чата и закрывает окно чата -/buffer purge +/buffer purge [jid] Очищает текущее окно чата и очищает все содержимое буфера (истории переписки) /buffer bottom Перемещает к концу буфера (истории переписки) с текущим пользователем diff -r c3107650d165 -r 8bbc764139ef mcabber/doc/help/uk/hlp_buffer.txt --- a/mcabber/doc/help/uk/hlp_buffer.txt Sat Aug 25 11:06:28 2007 +0200 +++ b/mcabber/doc/help/uk/hlp_buffer.txt Sat Aug 25 12:05:12 2007 +0200 @@ -7,11 +7,11 @@ /buffer clear Очистити поточне вікно діалогу. -/buffer close +/buffer close [jid] Закрити вікно діалогу і витерти вміст буферу на додачу. /buffer close_all Потерти всі буфери з пам'яті і позакривати вікна діалогу. -/buffer purge +/buffer purge [jid] Очистити вікно діалогу а також потерти його вміст з пам'яті. /buffer top Перейти до початку буферу. diff -r c3107650d165 -r 8bbc764139ef mcabber/src/commands.c --- a/mcabber/src/commands.c Sat Aug 25 11:06:28 2007 +0200 +++ b/mcabber/src/commands.c Sat Aug 25 12:05:12 2007 +0200 @@ -947,7 +947,7 @@ } // Close the buffer - scr_BufferPurge(1); + scr_BufferPurge(1, NULL); scr_LogPrint(LPRINT_LOGNORM, "Removing <%s>...", bjid); jb_delbuddy(bjid); @@ -1325,11 +1325,11 @@ } else if (!strcasecmp(subcmd, "clear")) { scr_BufferClear(); } else if (!strcasecmp(subcmd, "close")) { - scr_BufferPurge(1); + scr_BufferPurge(1, arg); } else if (!strcasecmp(subcmd, "close_all")) { scr_BufferPurgeAll(1); } else if (!strcasecmp(subcmd, "purge")) { - scr_BufferPurge(0); + scr_BufferPurge(0, arg); } else if (!strcasecmp(subcmd, "scroll_lock")) { scr_BufferScrollLock(1); } else if (!strcasecmp(subcmd, "scroll_unlock")) { diff -r c3107650d165 -r 8bbc764139ef mcabber/src/screen.c --- a/mcabber/src/screen.c Sat Aug 25 11:06:28 2007 +0200 +++ b/mcabber/src/screen.c Sat Aug 25 12:05:12 2007 +0200 @@ -2098,25 +2098,32 @@ } } -// scr_BufferPurge(closebuf) -// Purge/Drop the current buddy buffer +// scr_BufferPurge(closebuf, jid) +// Purge/Drop the current buddy buffer or jid's buffer if jid != NULL. // If closebuf is 1, close the buffer. -void scr_BufferPurge(int closebuf) +void scr_BufferPurge(int closebuf, const char *jid) { winbuf *win_entry; guint isspe; guint *p_closebuf; - - // Get win_entry - if (!current_buddy) return; - isspe = buddy_gettype(BUDDATA(current_buddy)) & ROSTER_TYPE_SPECIAL; - win_entry = scr_SearchWindow(CURRENT_JID, isspe); + const char *cjid; + + if (jid) { + cjid = jid; + isspe = FALSE; + } else { + // Get win_entry + if (!current_buddy) return; + cjid = CURRENT_JID; + isspe = buddy_gettype(BUDDATA(current_buddy)) & ROSTER_TYPE_SPECIAL; + } + win_entry = scr_SearchWindow(cjid, isspe); if (!win_entry) return; if (!isspe) { p_closebuf = g_new(guint, 1); *p_closebuf = closebuf; - buffer_purge((gpointer)CURRENT_JID, win_entry, p_closebuf); + buffer_purge((gpointer)cjid, win_entry, p_closebuf); g_free(p_closebuf); if (closebuf) { scr_set_chatmode(FALSE); diff -r c3107650d165 -r 8bbc764139ef mcabber/src/screen.h --- a/mcabber/src/screen.h Sat Aug 25 11:06:28 2007 +0200 +++ b/mcabber/src/screen.h Sat Aug 25 12:05:12 2007 +0200 @@ -148,7 +148,7 @@ void scr_BufferTopBottom(int topbottom); void scr_BufferClear(void); void scr_BufferScrollLock(int lock); -void scr_BufferPurge(int); +void scr_BufferPurge(int, const char*); void scr_BufferPurgeAll(int); void scr_BufferSearch(int direction, const char *text); void scr_BufferPercent(int pc);