changeset 1279:8bbc764139ef

Implement /buffer close|purge [jid]
author Mikael Berthe <mikael@lilotux.net>
date Sat, 25 Aug 2007 12:05:12 +0200
parents c3107650d165
children 8b621f980321
files mcabber/doc/help/de/hlp_buffer.txt mcabber/doc/help/en/hlp_buffer.txt mcabber/doc/help/fr/hlp_buffer.txt mcabber/doc/help/it/hlp_buffer.txt mcabber/doc/help/nl/hlp_buffer.txt mcabber/doc/help/pl/hlp_buffer.txt mcabber/doc/help/ru/hlp_buffer.txt mcabber/doc/help/uk/hlp_buffer.txt mcabber/src/commands.c mcabber/src/screen.c mcabber/src/screen.h
diffstat 11 files changed, 36 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
  Перемещает к концу буфера (истории переписки) с текущим пользователем
--- 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
  Перейти до початку буферу.
--- 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")) {
--- 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);
--- 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);