static void report_gui_view(report_gui_t *rg) { static int null_stdout = -1; static int null_stderr = -1; char *argv[] = {NULL, NULL, NULL}; char *url; int size; /* Open /dev/null if not already done */ if (null_stdout < 0) { null_stdout = open("/dev/null", O_WRONLY); if (null_stdout < 0) { perror("Cannot open '/dev/null' for stdout redirection"); } } if (null_stdout >= 0) { fprintf(stderr, "Browser stdout redirected to /dev/null (fd=%d)\n", null_stdout); } if (null_stderr < 0) { null_stderr = open("/dev/null", O_WRONLY); if (null_stderr < 0) { perror("Cannot open '/dev/null' for stderr redirection"); } } if (null_stderr >= 0) { fprintf(stderr, "Browser stderr redirected to /dev/null (fd=%d)\n", null_stderr); } /* Build URL */ size = strlen(rg->report_name) + 6; url = (char *) malloc(size); snprintf(url, size, "file:%s", rg->report_name); /* Spawn HTML browser */ argv[0] = get_browser(); argv[1] = url; fprintf(stderr, "Start Test Report viewer: %s %s\n", argv[0], argv[1]); if (child_spawn(argv, -1 /* stdin */, null_stdout /* stdout */, null_stderr /* stderr */, (child_handler_t *) NULL, NULL) == NULL) { status_mesg("Cannot execute browser \"%s\"", argv[0]); } free(url); }
void show_history(char * historyfile) { char workstring[1024]; // build the browser call string #ifdef __APPLE__ sprintf(workstring,"%s/html/%s",file_name,historyfile); void open_file_with_browser_mac(char *file); open_file_with_browser_mac(workstring); #else #ifdef USE_WIN sprintf(workstring,"%s/html/%s",file_name,historyfile); #else char callstring[1024]; get_browser(callstring); sprintf(workstring," %s%s/html/%s",callstring,file_name,historyfile); #endif launch_command(workstring); #endif }
void Gobby::OperationOpen::read_finish() { // If the last character is a newline character, remove it. GtkTextIter end_iter, test_iter; gtk_text_buffer_get_end_iter(m_content, &end_iter); test_iter = end_iter; if(gtk_text_iter_backward_char(&test_iter)) { if(gtk_text_iter_get_char(&test_iter) == '\n') { gtk_text_buffer_delete( m_content, &test_iter, &end_iter); } } gtk_text_buffer_set_modified(m_content, FALSE); GtkTextIter insert_iter; GtkTextMark* insert = gtk_text_buffer_get_insert(m_content); gtk_text_buffer_get_iter_at_mark(m_content, &insert_iter, insert); InfUser* user = INF_USER(g_object_new( INF_TEXT_TYPE_USER, "id", 1, "flags", INF_USER_LOCAL, "name", m_preferences.user.name.get().c_str(), /* The user is made active when the user * switches to the document. */ "status", INF_USER_INACTIVE, "hue", m_preferences.user.hue.get(), "caret-position", gtk_text_iter_get_offset(&insert_iter), static_cast<void*>(NULL))); InfUserTable* user_table = inf_user_table_new(); inf_user_table_add_user(user_table, user); g_object_unref(user); InfTextGtkBuffer* text_gtk_buffer = inf_text_gtk_buffer_new(m_content, user_table); g_object_unref(user_table); ConnectionManager& connection_manager = get_browser().get_connection_manager(); InfCommunicationManager* communication_manager = connection_manager.get_communication_manager(); InfBrowser* browser = m_parent.get_browser(); InfIo* io; g_object_get(G_OBJECT(browser), "io", &io, NULL); InfTextSession* session = inf_text_session_new_with_user_table( communication_manager, INF_TEXT_BUFFER(text_gtk_buffer), io, user_table, INF_SESSION_RUNNING, NULL, NULL); g_object_unref(io); g_object_unref(text_gtk_buffer); InfRequest* request = inf_browser_add_note( m_parent.get_browser(), m_parent.get_browser_iter(), m_name.c_str(), "InfText", NULL, INF_SESSION(session), TRUE, on_request_finished_static, this); g_object_unref(session); if(request != NULL) { m_request = request; g_object_ref(m_request); // TODO: We can remove the node watch here, but need to have // the browser available in on_request_finished then. Maybe // just disconnect the signal, or bind it. } }