]> www.fi.muni.cz Git - evince.git/commitdiff
Break everything except bonobo-image-x-pdf :-)
authorMichael Meeks <mmeeks@src.gnome.org>
Sun, 15 Aug 1999 21:06:36 +0000 (21:06 +0000)
committerMichael Meeks <mmeeks@src.gnome.org>
Sun, 15 Aug 1999 21:06:36 +0000 (21:06 +0000)
New cleaner xpdf IO code.
use make bonobo-image-x-pdf in xpdf to compile.

18 files changed:
pdf/goo/Makefile.in
pdf/xpdf/ChangeLog
pdf/xpdf/Makefile.am
pdf/xpdf/Makefile.in
pdf/xpdf/Object.h
pdf/xpdf/PDFDoc.cc
pdf/xpdf/PDFDoc.h
pdf/xpdf/Stream.cc
pdf/xpdf/Stream.h
pdf/xpdf/XRef.h
pdf/xpdf/bonobo-image-x-pdf.cc
pdf/xpdf/gpdf.cc
pdf/xpdf/pdfimages.cc
pdf/xpdf/pdfinfo.cc
pdf/xpdf/pdftopbm.cc
pdf/xpdf/pdftops.cc
pdf/xpdf/pdftotext.cc
pdf/xpdf/xpdf.cc

index 5881ce2f8e34a49896abf3b9bb2ced2644f9e441..e1c47240e292b49ef354fd7a6a206a52fae91b19 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4a from Makefile.am
 
 # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
@@ -46,9 +46,10 @@ AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_FLAG =
 transform = @program_transform_name@
 
 NORMAL_INSTALL = :
@@ -96,16 +97,13 @@ PACKAGE = @PACKAGE@
 PTHREAD_LIB = @PTHREAD_LIB@
 RANLIB = @RANLIB@
 STRIP = @STRIP@
+USE_SYMBOL_UNDERSCORE = @USE_SYMBOL_UNDERSCORE@
 VERSION = @VERSION@
 XPM_LIBS = @XPM_LIBS@
 YACC = @YACC@
 ZVT_LIBS = @ZVT_LIBS@
 cflags_set = @cflags_set@
 cxxflags_set = @cxxflags_set@
-t1_CFLAGS = @t1_CFLAGS@
-t1_LIBS = @t1_LIBS@
-t1x_CFLAGS = @t1x_CFLAGS@
-t1x_LIBS = @t1x_LIBS@
 
 lib_LIBRARIES = libgoo.a
 
@@ -145,7 +143,7 @@ DIST_COMMON =  Makefile.am Makefile.in
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 DEP_FILES =  .deps/GString.P .deps/gfile.P .deps/gmem.P .deps/gmempp.P \
 .deps/parseargs.P
@@ -278,7 +276,7 @@ distdir: $(DISTFILES)
        @for file in $(DISTFILES); do \
          d=$(srcdir); \
          if test -d $$d/$$file; then \
-           cp -pr $$/$$file $(distdir)/$$file; \
+           cp -pr $$d/$$file $(distdir)/$$file; \
          else \
            test -f $(distdir)/$$file \
            || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
@@ -358,7 +356,7 @@ uninstall: uninstall-am
 all-am: Makefile $(LIBRARIES)
 all-redirect: all-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
 installdirs:
        $(mkinstalldirs)  $(DESTDIR)$(libdir)
 
index 1e6617cac1e4b38069e2bebb9f342baf304df2ce..7989d7dbe57f6d07c460daf61bce5bf93b3ec52d 100644 (file)
@@ -1,3 +1,10 @@
+1999-08-15  Michael Meeks  <michael@imaginator.com>
+
+       * Now bonobo-image-x-pdf works, but everything else
+       is broken: use
+
+               make bonobo-image-xpdf to compile...
+
 1999-08-11  Michael Meeks  <michael@imaginator.com>
 
        * bonobo-image-x-pdf.cc: Fixed innumerable bugs,
index 6c6ceb0203904f27b254c018295a268a4d47b01e..7d2be720f199b67dc74df7ad3d327ea0c9237480 100644 (file)
@@ -13,8 +13,9 @@ endif
 
 bin_PROGRAMS = pdftops pdftotext pdfinfo pdftopbm pdfimages $(gui) bonobo-image-x-pdf
 
-common_sources =                       \
+common_sources =               \
        Array.cc                \
+       BaseFile.h              \
        Catalog.cc              \
        Dict.cc                 \
        Error.cc                \
@@ -51,9 +52,14 @@ gpdf_LDADD =                 \
 
 bonobo_image_x_pdf_SOURCES =   \
        $(common_sources)       \
+       BonoboFile.h            \
+       BonoboFile.cc           \
        GOutputDev.cc           \
        bonobo-image-x-pdf.cc
 
+bonobo_image_x_pdf_CFLAGS  =   \
+       -DBONOBO_IO
+
 bonobo_image_x_pdf_LDADD =     \
        ../goo/libgoo.a         \
        $(GTK_LIBS)             \
index d221b625a8e6e52959e37235ff4bf579bad71d54..10af0b63632ded7694743a5aa81ea73a4dcbf640 100644 (file)
@@ -112,7 +112,7 @@ INCLUDES =          -I$(top_srcdir)/goo             -I$(top_srcdir)/ltk             -DGPDF_GLADE_DIR=\""$(gla
 
 bin_PROGRAMS = pdftops pdftotext pdfinfo pdftopbm pdfimages $(gui) bonobo-image-x-pdf
 
-common_sources =       Array.cc                        Catalog.cc                      Dict.cc                         Error.cc                        FontEncoding.cc                 FontEncoding.h                  FontFile.cc                     FontFile.h                      FontInfo.h                      Gfx.cc                          GfxFont.cc                      GfxState.cc                     Lexer.cc                        Link.cc                         Object.cc                       OutputDev.cc                    Page.cc                         Params.cc                       Parser.cc                       PDFDoc.cc                       Stream.cc                       TextOutputDev.cc                XRef.cc
+common_sources =       Array.cc                        BaseFile.h                      Catalog.cc                      Dict.cc                         Error.cc                        FontEncoding.cc                 FontEncoding.h                  FontFile.cc                     FontFile.h                      FontInfo.h                      Gfx.cc                          GfxFont.cc                      GfxState.cc                     Lexer.cc                        Link.cc                         Object.cc                       OutputDev.cc                    Page.cc                         Params.cc                       Parser.cc                       PDFDoc.cc                       Stream.cc                       TextOutputDev.cc                XRef.cc
 
 
 gpdf_CFLAGS = 
@@ -123,7 +123,10 @@ gpdf_SOURCES =     $(common_sources)               GOutputDev.cc                   gpdf.cc
 gpdf_LDADD =   $(EXTRA_GNOME_LIBS)             ../goo/libgoo.a
 
 
-bonobo_image_x_pdf_SOURCES =   $(common_sources)               GOutputDev.cc                   bonobo-image-x-pdf.cc
+bonobo_image_x_pdf_SOURCES =   $(common_sources)               BonoboFile.h                    BonoboFile.cc                   GOutputDev.cc                   bonobo-image-x-pdf.cc
+
+
+bonobo_image_x_pdf_CFLAGS =    -DBONOBO_IO
 
 
 bonobo_image_x_pdf_LDADD =     ../goo/libgoo.a                 $(GTK_LIBS)                     $(GNOME_LIBDIR)                 -lbonobo                        $(GNOMEGNORBA_LIBS)             $(INTLLIBS)
@@ -227,7 +230,7 @@ xpdf_LDFLAGS =
 bonobo_image_x_pdf_OBJECTS =  Array.o Catalog.o Dict.o Error.o \
 FontEncoding.o FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o \
 Object.o OutputDev.o Page.o Params.o Parser.o PDFDoc.o Stream.o \
-TextOutputDev.o XRef.o GOutputDev.o bonobo-image-x-pdf.o
+TextOutputDev.o XRef.o BonoboFile.o GOutputDev.o bonobo-image-x-pdf.o
 bonobo_image_x_pdf_DEPENDENCIES =  ../goo/libgoo.a
 bonobo_image_x_pdf_LDFLAGS = 
 CXXFLAGS = @CXXFLAGS@
@@ -249,11 +252,11 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
 TAR = gtar
 GZIP_ENV = --best
-DEP_FILES =  .deps/Array.P .deps/Catalog.P .deps/Dict.P .deps/Error.P \
-.deps/FontEncoding.P .deps/FontFile.P .deps/GOutputDev.P .deps/Gfx.P \
-.deps/GfxFont.P .deps/GfxState.P .deps/ImageOutputDev.P \
-.deps/LTKOutputDev.P .deps/Lexer.P .deps/Link.P .deps/Object.P \
-.deps/OutputDev.P .deps/PBMOutputDev.P .deps/PDFDoc.P \
+DEP_FILES =  .deps/Array.P .deps/BonoboFile.P .deps/Catalog.P \
+.deps/Dict.P .deps/Error.P .deps/FontEncoding.P .deps/FontFile.P \
+.deps/GOutputDev.P .deps/Gfx.P .deps/GfxFont.P .deps/GfxState.P \
+.deps/ImageOutputDev.P .deps/LTKOutputDev.P .deps/Lexer.P .deps/Link.P \
+.deps/Object.P .deps/OutputDev.P .deps/PBMOutputDev.P .deps/PDFDoc.P \
 .deps/PSOutputDev.P .deps/Page.P .deps/Params.P .deps/Parser.P \
 .deps/Stream.P .deps/TextOutputDev.P .deps/XOutputDev.P .deps/XRef.P \
 .deps/bonobo-image-x-pdf.P .deps/gpdf.P .deps/pdfimages.P \
index 395096fb009e318bf8387f011569f12a378cd0fc..305d28a3e71a048cb13723afc0a829a706269236 100644 (file)
@@ -18,6 +18,7 @@
 #include "gtypes.h"
 #include "gmem.h"
 #include "GString.h"
+#include "BaseFile.h"
 
 class Array;
 class Dict;
@@ -177,7 +178,7 @@ public:
   char *streamGetLine(char *buf, int size);
   int streamGetPos();
   void streamSetPos(int pos);
-  FILE *streamGetFile();
+  BaseFile streamGetFile();
   Dict *streamGetDict();
 
   // Output.
@@ -290,7 +291,7 @@ inline int Object::streamGetPos()
 inline void Object::streamSetPos(int pos)
   { stream->setPos(pos); }
 
-inline FILE *Object::streamGetFile()
+inline BaseFile Object::streamGetFile()
   { return stream->getFile(); }
 
 inline Dict *Object::streamGetDict()
index 1537c6a32272da6f3dc87194751d9962619e8fda..599ceb1047256dbd9f6be5efdaf53a1cb7020e5f 100644 (file)
 // PDFDoc
 //------------------------------------------------------------------------
 
-PDFDoc::PDFDoc(GString *fileName1) {
+PDFDoc::PDFDoc(BaseFile file1, GString *fileName1) {
   FileStream *str;
   Object catObj;
   Object obj;
-  GString *fileName2;
 
   // setup
   ok = gFalse;
@@ -42,33 +41,14 @@ PDFDoc::PDFDoc(GString *fileName1) {
   file = NULL;
   links = NULL;
 
-  // try to open file
   fileName = fileName1;
-  fileName2 = NULL;
-#ifdef VMS
-  if (!(file = fopen(fileName->getCString(), "rb", "ctx=stm"))) {
-    error(-1, "Couldn't open file '%s'", fileName->getCString());
+  file = file1;
+  if (!file)
     return;
-  }
-#else
-  if (!(file = fopen(fileName->getCString(), "rb"))) {
-    fileName2 = fileName->copy();
-    fileName2->lowerCase();
-    if (!(file = fopen(fileName2->getCString(), "rb"))) {
-      fileName2->upperCase();
-      if (!(file = fopen(fileName2->getCString(), "rb"))) {
-       error(-1, "Couldn't open file '%s'", fileName->getCString());
-       delete fileName2;
-       return;
-      }
-    }
-    delete fileName2;
-  }
-#endif
 
   // create stream
   obj.initNull();
-  str = new FileStream(file, 0, -1, &obj);
+  str  = new FileStream(file, 0, -1, &obj);
 
   // check header
   str->checkHeader();
@@ -100,7 +80,7 @@ PDFDoc::~PDFDoc() {
   if (xref)
     delete xref;
   if (file)
-    fclose(file);
+    bfclose(file);
   if (fileName)
     delete fileName;
   if (links)
@@ -153,8 +133,8 @@ GBool PDFDoc::saveAs(GString *name) {
     error(-1, "Couldn't open file '%s'", name->getCString());
     return gFalse;
   }
-  rewind(file);
-  while ((n = fread(buf, 1, sizeof(buf), file)) > 0)
+  brewind(file);
+  while ((n = bfread(buf, 1, sizeof(buf), file)) > 0)
     fwrite(buf, 1, n, f);
   fclose(f);
   return gTrue;
index 5e28962eda9db8e57b013acd9d8a6e70e17da953..c5a247032350f21fd7ed2e3dd673d36e8a21a76a 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <stdio.h>
 #include "Link.h"
+#include "BaseFile.h"
 
 class GString;
 class XRef;
@@ -31,7 +32,7 @@ class LinkDest;
 class PDFDoc {
 public:
 
-  PDFDoc(GString *fileName1);
+  PDFDoc(BaseFile file, GString *fileName1);
   ~PDFDoc();
 
   // Was PDF document successfully opened?
@@ -96,7 +97,7 @@ private:
   void getLinks(int page);
 
   GString *fileName;
-  FILE *file;
+  BaseFile file;
   XRef *xref;
   Catalog *catalog;
   Links *links;
index 667d07c8ca37441423c86a55330f7a07f6a8ee76..6e52d791c5a6d0c8f1c9fe7a2091f943204bbb28 100644 (file)
@@ -511,7 +511,7 @@ GBool StreamPredictor::getNextLine() {
 // FileStream
 //------------------------------------------------------------------------
 
-FileStream::FileStream(FILE *f1, int start1, int length1, Object *dict1) {
+FileStream::FileStream(BaseFile f1, int start1, int length1, Object *dict1) {
   f = f1;
   start = start1;
   length = length1;
@@ -523,13 +523,13 @@ FileStream::FileStream(FILE *f1, int start1, int length1, Object *dict1) {
 
 FileStream::~FileStream() {
   if (savePos >= 0)
-    fseek(f, savePos, SEEK_SET);
+    bfseek(f, savePos, SEEK_SET);
   dict.free();
 }
 
 void FileStream::reset() {
-  savePos = (int)ftell(f);
-  fseek(f, start, SEEK_SET);
+  savePos = (int)bftell(f);
+  bfseek(f, start, SEEK_SET);
   bufPtr = bufEnd = buf;
   bufPos = start;
 }
@@ -545,7 +545,7 @@ GBool FileStream::fillBuf() {
     n = start + length - bufPos;
   else
     n = 256;
-  n = fread(buf, 1, n, f);
+  n = bfread(buf, 1, n, f);
   bufEnd = buf + n;
   if (bufPtr >= bufEnd)
     return gFalse;
@@ -556,15 +556,15 @@ void FileStream::setPos(int pos1) {
   long size;
 
   if (pos1 >= 0) {
-    fseek(f, pos1, SEEK_SET);
+    bfseek(f, pos1, SEEK_SET);
     bufPos = pos1;
   } else {
-    fseek(f, 0, SEEK_END);
-    size = ftell(f);
+    bfseek(f, 0, SEEK_END);
+    size = bftell(f);
     if (pos1 < -size)
       pos1 = (int)(-size);
-    fseek(f, pos1, SEEK_END);
-    bufPos = (int)ftell(f);
+    bfseek(f, pos1, SEEK_END);
+    bufPos = (int)bftell(f);
   }
   bufPtr = bufEnd = buf;
 }
index 3eb8160b6110e9df510b00c44d0dd404cbd58561..14e68eaa3f181ee7797f4cf35ad03d873140300b 100644 (file)
@@ -16,6 +16,7 @@
 #include <stdio.h>
 #include "gtypes.h"
 #include "Object.h"
+#include "BaseFile.h"
 
 //------------------------------------------------------------------------
 
@@ -83,7 +84,7 @@ public:
   virtual Stream *getBaseStream() = 0;
 
   // Get the base file of this stream.
-  virtual FILE *getFile() = 0;
+  virtual BaseFile getFile() = 0;
 
   // Get the dictionary associated with this stream.
   virtual Dict *getDict() = 0;
@@ -177,7 +178,7 @@ private:
 class FileStream: public Stream {
 public:
 
-  FileStream(FILE *f1, int start1, int length1, Object *dict1);
+  FileStream(BaseFile f1, int start1, int length1, Object *dict1);
   virtual ~FileStream();
   virtual StreamKind getKind() { return strFile; }
   virtual void reset();
@@ -189,7 +190,7 @@ public:
   virtual void setPos(int pos1);
   virtual GBool isBinary(GBool last = gTrue) { return last; }
   virtual Stream *getBaseStream() { return this; }
-  virtual FILE *getFile() { return f; }
+  virtual BaseFile getFile() { return f; }
   virtual Dict *getDict() { return dict.getDict(); }
 
   // Check for a PDF header on this stream.  Skip past some garbage
@@ -203,7 +204,7 @@ private:
 
   GBool fillBuf();
 
-  FILE *f;
+  BaseFile f;
   int start;
   int length;
   char buf[256];
@@ -230,7 +231,7 @@ public:
   virtual int getPos() { return str->getPos(); }
   virtual GBool isBinary(GBool last = gTrue) { return last; }
   virtual Stream *getBaseStream() { return this; }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return dict.getDict(); }
 
 private:
@@ -257,7 +258,7 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -285,7 +286,7 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -316,7 +317,7 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -358,7 +359,7 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -394,7 +395,7 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -461,7 +462,7 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return str->getDict(); }
   Stream *getRawStream() { return str; }
 
@@ -552,7 +553,7 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -606,7 +607,7 @@ public:
   virtual GString *getPSFilter(char *indent)  { return NULL; }
   virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -631,7 +632,7 @@ public:
   virtual GString *getPSFilter(char *indent) { return NULL; }
   virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return str->getDict(); }
   virtual GBool isEncoder() { return gTrue; }
 
@@ -661,7 +662,7 @@ public:
   virtual GString *getPSFilter(char *indent) { return NULL; }
   virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return str->getDict(); }
   virtual GBool isEncoder() { return gTrue; }
 
@@ -696,7 +697,7 @@ public:
   virtual GString *getPSFilter(char *indent) { return NULL; }
   virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual FILE *getFile() { return str->getFile(); }
+  virtual BaseFile getFile() { return str->getFile(); }
   virtual Dict *getDict() { return str->getDict(); }
   virtual GBool isEncoder() { return gTrue; }
 
index b843ea28dc874faa61d4c4e70d522a7cf4ff015c..e8874c7ecf683d259ae1981a6b05417510700055 100644 (file)
@@ -16,6 +16,7 @@
 #include <stdio.h>
 #include "gtypes.h"
 #include "Object.h"
+#include "BaseFile.h"
 
 class Dict;
 class FileStream;
@@ -60,7 +61,7 @@ public:
 
 private:
 
-  FILE *file;                  // input file
+  BaseFile file;               // input file
   int start;                   // offset in file (to allow for garbage
                                //   at beginning of file)
   XRefEntry *entries;          // xref entries
index be263eb54ef9c1a245e57d9ec08e4092f8ab8d74..c69dbeeb3dd933593fc59e55383143996d387f6b 100644 (file)
@@ -49,7 +49,8 @@ CORBA_ORB orb;
 typedef struct {
   GnomeEmbeddable *bonobo_object;
 
-  PDFDoc *pdf;
+  PDFDoc       *pdf;
+  GNOME_Stream  stream; /* To free it later */
 
   GList *views;
 } bonobo_object_data_t;
@@ -169,7 +170,6 @@ static int
 load_image_from_stream (GnomePersistStream *ps, GNOME_Stream stream, void *data)
 {
        bonobo_object_data_t *bonobo_object_data = (bonobo_object_data_t *)data;
-       CORBA_Environment ev;
        CORBA_long length;
        GNOME_Stream_iobuf *buffer;
        guint lp;
@@ -177,7 +177,17 @@ load_image_from_stream (GnomePersistStream *ps, GNOME_Stream stream, void *data)
        FILE *hack;
        char *name;
 
-       buffer = GNOME_Stream_iobuf__alloc ();
+       if (bonobo_object_data->pdf ||
+           bonobo_object_data->stream) {
+         g_warning ("Won't overwrite pre-existing stream: you wierdo");
+         return 0;
+       }
+
+       /* We need this for later */
+       CORBA_Object_duplicate (stream, &ev);
+       g_return_val_if_fail (ev._major == CORBA_NO_EXCEPTION, 0);
+
+/*     buffer = GNOME_Stream_iobuf__alloc ();
        length = GNOME_Stream_length (stream, &ev);
 
        name = tempnam (NULL, "xpdf-hack");
@@ -200,9 +210,12 @@ load_image_from_stream (GnomePersistStream *ps, GNOME_Stream stream, void *data)
 
        fclose (hack);
 
-       CORBA_free (buffer);
+       CORBA_free (buffer);*/
 
-       bonobo_object_data->pdf = new PDFDoc (new GString (name));
+       printf ("Loading PDF from persiststream\n");
+       bonobo_object_data->stream = stream;
+       bonobo_object_data->pdf = new PDFDoc (stream, new GString ("Bonobo.pdf"));
+       printf ("Done load\n");
        if (!(bonobo_object_data->pdf->isOk())) {
          g_warning ("Duff pdf data\n");
          delete bonobo_object_data->pdf;
index 171b21695e80f2c901c0f9dcd472cb0ec7b29939..b57e75a4f52b84d0f1b439fcf531001e8da9c3b3 100644 (file)
@@ -155,7 +155,9 @@ static PDFDoc *
 getPDF (GString *fname)
 {
   PDFDoc *pdf;
-  pdf = new PDFDoc(fname);
+  BaseFile *file;
+
+  pdf = new PDFDoc(bxpdfopen(fname), fname);
   if (!pdf->isOk()) {
     delete pdf;
     return NULL;
index 1dd59f0b2d77125a214b222cf893159ec23cbc1a..9d7a484799381d07ba89695ba6fc729d78e5e4c7 100644 (file)
@@ -74,7 +74,7 @@ int main(int argc, char *argv[]) {
 
   // open PDF fihe
   xref = NULL;
-  doc = new PDFDoc(fileName);
+  doc = new PDFDoc(bxpdfopen(fileName), fileName);
   if (!doc->isOk()) {
     goto err1;
   }
index 2c183c8385d77f288e8719b93f79a2102d656fcc..78664aa2ba482b896c7b3e9576081006587a57f3 100644 (file)
@@ -61,7 +61,7 @@ int main(int argc, char *argv[]) {
 
   // open PDF file
   xref = NULL;
-  doc = new PDFDoc(fileName);
+  doc = new PDFDoc(bxpdfopen(fileName), fileName);
   if (!doc->isOk())
     exit(1);
 
index 6cfe83059f9918af01ec5256516786973d713705..51adb491baa1057d47c99f68b5b1f26eca61914b 100644 (file)
@@ -74,7 +74,7 @@ int main(int argc, char *argv[]) {
 
   // open PDF file
   xref = NULL;
-  doc = new PDFDoc(fileName);
+  doc = new PDFDoc(bxpdfopen(fileName), fileName);
   if (!doc->isOk())
     exit(1);
 
index d6fd6534258de72c0d12915936f610ff1cc97a37..d79681e44c20c8b1997ffb530d2f03cf467b865c 100644 (file)
@@ -87,7 +87,7 @@ int main(int argc, char *argv[]) {
 
   // open PDF file
   xref = NULL;
-  doc = new PDFDoc(fileName);
+  doc = new PDFDoc(bxpdfopen(fileName), fileName);
   if (!doc->isOk()) {
     goto err1;
   }
index 189d4898fc89c333d115f409e5dde1c26fd87036..f0b2b3a8261ed999de9ed9d8b353fe793b0302e0 100644 (file)
@@ -84,7 +84,7 @@ int main(int argc, char *argv[]) {
 
   // open PDF file
   xref = NULL;
-  doc = new PDFDoc(fileName);
+  doc = new PDFDoc(bxpdfopen(fileName), fileName);
   if (!doc->isOk()) {
     goto err1;
   }
index 4e5a2a8cc807d920a9f7a15adb09c10e5833e512..60cb629d986f878f6bd63286c1aef78bd8d7d39c 100644 (file)
@@ -679,7 +679,7 @@ static GBool loadFile(GString *fileName) {
     win->setBusyCursor(gTrue);
 
   // open PDF file
-  newDoc = new PDFDoc(fileName);
+  newDoc = new PDFDoc(bxpdfopen(fileName), fileName);
   if (!newDoc->isOk()) {
     delete newDoc;
     if (win)