+typedef struct {
+ FILE *pipe;
+ PurpleConversation *conv;
+} answerscripts_job;
+
+int answerscripts_process_message_cb(answerscripts_job *job) {
+ FILE *pipe = job->pipe;
+ PurpleConversation *conv = job->conv;
+
+ if (pipe && !feof(pipe)) {
+ if(!fgets(response, ANSWERSCRIPTS_LINE_LENGTH, pipe)
+ && (errno == EWOULDBLOCK || errno == EAGAIN)
+ ) return 1;
+
+ for(i=0;response[i];i++) if(response[i]=='\n') response[i]=0;
+ purple_conv_im_send(purple_conversation_get_im_data(conv), response);
+
+ if(!feof(pipe)) return 1;
+ }
+ pclose(pipe);
+ free(job);
+ return 0;
+}
+