From 98a1e3f36567639344f12932b629e526a8783aa8 Mon Sep 17 00:00:00 2001 From: sandman Date: Sat, 13 Apr 2002 00:47:20 +0000 Subject: CVS import of QPdf --- (limited to 'noncore/unsupported/qpdf/gooStub.cpp') diff --git a/noncore/unsupported/qpdf/gooStub.cpp b/noncore/unsupported/qpdf/gooStub.cpp new file mode 100644 index 0000000..cc29685 --- a/dev/null +++ b/noncore/unsupported/qpdf/gooStub.cpp @@ -0,0 +1,60 @@ + +extern "C" { + +#include +#include +#include +#include +#include +#include + +#include +} + +#include +#include + +#include + + +// replacement stubs to simplify (and speed up) operations + +void *gmalloc ( int size ) { return malloc ( size ); } +void *grealloc ( void *p, int size ) { return realloc ( p, size ); } +void gfree ( void *p ) { free ( p ); } +char *copyString ( char *str ) { return strdup ( str ); } +char *getLine(char *buf, int size, FILE *f) { return fgets ( buf, size, f ); } +GString *getHomeDir ( ) { return new GString ( QDir::home ( ). absPath ( ). local8Bit ( )); } +GString *appendToPath ( GString *path, char *fileName ) { return new GString ( QDir ( path-> getCString ( )). absFilePath ( fileName ). local8Bit ( )); } + +// mostly taken from XPDF, but simplified... + +GBool openTempFile ( GString **name, FILE **f, char *mode, char *ext ) +{ + char *s, *p; + int fd; + + if ( !ext ) + ext = ".tmp"; + + if (!( s = tmpnam ( 0 ))) + return gFalse; + + *name = new GString ( "qpdf_" ); + (*name)-> append ( s ); + + s = (*name)-> getCString ( ); + if (( p = strrchr ( s, '.' ))) + (*name)-> del ( p - s, (*name)-> getLength ( ) - ( p - s )); + + (*name)-> append ( ext ); + + fd = open ((*name)-> getCString ( ), O_WRONLY | O_CREAT | O_EXCL, 0600 ); + + if ( fd < 0 || !( *f = fdopen ( fd, mode ))) { + delete *name; + return gFalse; + } + + return gTrue; +} -- cgit v0.9.0.2