dvifile::dvifile(const dvifile *old, fontPool *fp) { errorMsg.clear(); errorCounter = 0; page_offset.clear(); suggestedPageSize = 0; numberOfExternalPSFiles = 0; numberOfExternalNONPSFiles = 0; sourceSpecialMarker = old->sourceSpecialMarker; have_complainedAboutMissingPDF2PS = false; dviData = old->dviData; filename = old->filename; size_of_file = old->size_of_file; end_pointer = dvi_Data()+size_of_file; if (dvi_Data() == 0) { kError(kvs::dvi) << "Not enough memory to copy the DVI-file." << endl; return; } font_pool = fp; filename = old->filename; generatorString = old->generatorString; total_pages = old->total_pages; tn_table.clear(); process_preamble(); find_postamble(); read_postamble(); prepare_pages(); }
static void accept_callback(Widget w, XtPointer client_data, XtPointer call_data) { XmFileSelectionBoxCallbackStruct *fcb; struct filesel_callback *callback; UNUSED(w); ASSERT(client_data != NULL, "struct filesel_callback pointer expected in client data"); callback = (struct filesel_callback *)client_data; /* get the filename from the file selection box */ fcb = (XmFileSelectionBoxCallbackStruct *)call_data; if (callback->browse_fname != NULL) { XtFree(callback->browse_fname); callback->browse_fname = NULL; } XmStringGetLtoR(fcb->value, G_charset, &callback->browse_fname); if (0 && callback->must_exist) { FILE *tmp_fp = XFOPEN(callback->browse_fname, "r"); dviErrFlagT errflag = NO_ERROR; if (tmp_fp == NULL) { popup_message(XtParent(callback->shell), MSG_ERR, NULL, "Could not open %s: %s.\n", callback->browse_fname, strerror(errno)); /* leave file selection box open */ return; } else if (!process_preamble(tmp_fp, &errflag) || !find_postamble(tmp_fp, &errflag) || !read_postamble(tmp_fp, &errflag, True #if DELAYED_MKTEXPK , False #endif )) { popup_message(XtParent(callback->shell), MSG_ERR, NULL, "Error opening %s:\n%s.", callback->browse_fname, get_dvi_error(errflag)); fclose(tmp_fp); /* leave file selection box open */ return; } else { /* file is OK */ fclose(tmp_fp); } } /* success; close dialog, and call our callback */ XtUnmanageChild(callback->shell); callback->func_ptr(callback->browse_fname, callback->data); }
dvifile::dvifile(const QString& fname, fontPool* pool) { #ifdef DEBUG_DVIFILE kDebug(kvs::dvi) << "init_dvi_file: " << fname; #endif errorMsg.clear(); errorCounter = 0; page_offset.clear(); suggestedPageSize = 0; numberOfExternalPSFiles = 0; numberOfExternalNONPSFiles = 0; font_pool = pool; sourceSpecialMarker = true; have_complainedAboutMissingPDF2PS = false; QFile file(fname); filename = file.fileName(); file.open( QIODevice::ReadOnly ); size_of_file = file.size(); dviData.resize(size_of_file); // Sets the end pointer for the bigEndianByteReader so that the // whole memory buffer is readable end_pointer = dvi_Data()+size_of_file; if (dvi_Data() == 0) { kError(kvs::dvi) << "Not enough memory to load the DVI-file."; return; } file.read((char *)dvi_Data(), size_of_file); file.close(); if (file.error() != QFile::NoError) { kError(kvs::dvi) << "Could not load the DVI-file."; return; } tn_table.clear(); total_pages = 0; process_preamble(); find_postamble(); read_postamble(); prepare_pages(); return; }