コード例 #1
0
ファイル: dviFile.cpp プロジェクト: JPriya/Okular
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();
}
コード例 #2
0
ファイル: xm_filesel.c プロジェクト: texlive/texlive-source
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);
}
コード例 #3
0
ファイル: dviFile.cpp プロジェクト: JPriya/Okular
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;
}