void tm_server_rep::interpose_handler () { #ifdef QTTEXMACS // TeXmacs/Qt handles delayed messages and socket notification // in its own runloop #ifndef QTPIPES perform_select (); #endif process_all_pipes (); #else perform_select (); exec_pending_commands (); #endif int i, j; for (i=0; i<N(bufs); i++) { tm_buffer buf= (tm_buffer) bufs[i]; for (j=0; j<N(buf->vws); j++) { tm_view vw= (tm_view) buf->vws[j]; if (vw->win != NULL) vw->ed->apply_changes (); } for (j=0; j<N(buf->vws); j++) { tm_view vw= (tm_view) buf->vws[j]; if (vw->win != NULL) vw->ed->animate (); } } windows_refresh (); }
static tree connection_retrieve (string name, string session) { // cout << "Retrieve " << name << ", " << session << "\n"; connection con= connection (name * "-" * session); if (is_nil (con)) return ""; tree doc (DOCUMENT); while (true) { con->forced_eval= true; #ifndef QTTEXMACS perform_select (); #endif con->forced_eval= false; tree next= connection_read (name, session); if (next == ""); else if (is_document (next)) doc << A (next); else doc << next; if (con->status == WAITING_FOR_INPUT) break; } if (N(doc) == 0) return ""; // cout << "Retrieved " << doc << "\n"; return doc; }