Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Plugin zum Ersetzen des eigenen Texts
#1
Hallo!

Ich habe gerade angefangen an einem Plugin für Pidgin zu arbeiten.
Dieses soll zunächst den Text desjenigen, der eine Nachricht abschickt schon vorher durch einen anderen Text ersetzen.
Bei meinem aktuellen Plugin klappt das auch erst einmal, jedoch stürzt Pidgin nach mehrmaligem Senden einer Nachricht ab.

So sieht meine Callback-Funktion für das Signal "sending-im-msg" aus:

Code:
static gboolean sending_im_msg_cb(PurpleAccount *account, const char *receiver, char **message){

       //Neue Nachricht erstellen:
       char *msg = (char *)malloc(6);
       memset(msg, 0, 6);
       strcpy(msg,"hallo");

       //Speicher der alten Nachricht freigeben:
       free(*message);

       //Auf neue Nachricht zeigen:
       *message = msg;

       return TRUE;
}

Ich habe den Verdacht, dass ich Speicher falsch alloziere oder freigebe.
Könntet ihr mir sagen, wie das richtig geht?

EDIT von Freakazoid: Ich habe den Code in einen Code-Block gesetzt.
Zitieren
#2
hmm, ich versteh zwar nix vom Coden, aber ich weiß, dass Pidgin ein Text Replacement Plugin mitliefert. Entweder schaust du dir mal an, wie das gemacht ist, oder du benutzt gleich das Smile

--blubby
Hast du vor deiner Frage
… Google
… das Wiki
… die Forensuche benutzt?

[Bild: pidgin.gif]
Zitieren
#3
Ich sehe spontan keinen Fehler, der einen Absturz verursachen würde.

Aber du solltest:
  • einen Debugger verwenden,
  • nichts zurückgeben und
  • die übergebenen Parameter überprüfen (falls **message oder *message NULL ist, stürzt deine Funktion ab).
Welche Pidgin-Version setzt du ein?
Welches Betriebssystem?
Was sagt das Debug-Fenster?

[Bild: pidginbanner.png]
Zitieren
#4
Vielen Dank für eure Tipps!

Ich habe die Überprüfung eingebaut und eine void-Funktion daraus gemacht. Später habe ich gemerkt, dass eine von mir als nebensächlich abgestempelte Sache Pidgin zum Absturz gebracht hat.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste