PLplot  5.15.0
pdfutils.c File Reference
#include "plplotP.h"

Go to the source code of this file.

Macros

#define NEED_PLDEBUG
 

Functions

static void print_ieeef (float *, U_LONG *)
 
static int pdf_wrx (const U_CHAR *x, long nitems, PDFstrm *pdfs)
 
void pdf_set (char *option, int value)
 
PDFstrmpdf_fopen (PLCHAR_VECTOR filename, PLCHAR_VECTOR mode)
 
PDFstrmpdf_bopen (U_CHAR *buffer, size_t bufmax)
 
PDFstrmpdf_finit (FILE *file)
 
int pdf_close (PDFstrm *pdfs)
 
int pdf_putc (int c, PDFstrm *pdfs)
 
int pdf_getc (PDFstrm *pdfs)
 
int pdf_ungetc (int c, PDFstrm *pdfs)
 
int pdf_rdx (U_CHAR *x, long nitems, PDFstrm *pdfs)
 
int pdf_wr_header (PDFstrm *pdfs, PLCHAR_VECTOR header)
 
int pdf_rd_header (PDFstrm *pdfs, char *header)
 
int pdf_wr_string (PDFstrm *pdfs, PLCHAR_VECTOR string)
 
int pdf_rd_string (PDFstrm *pdfs, char *string, int nmax)
 
int pdf_wr_1byte (PDFstrm *pdfs, U_CHAR s)
 
int pdf_rd_1byte (PDFstrm *pdfs, U_CHAR *ps)
 
int pdf_wr_2bytes (PDFstrm *pdfs, U_SHORT s)
 
int pdf_rd_2bytes (PDFstrm *pdfs, U_SHORT *ps)
 
int pdf_wr_2nbytes (PDFstrm *pdfs, U_SHORT *s, PLINT n)
 
int pdf_rd_2nbytes (PDFstrm *pdfs, U_SHORT *s, PLINT n)
 
int pdf_wr_4bytes (PDFstrm *pdfs, U_LONG s)
 
int pdf_rd_4bytes (PDFstrm *pdfs, U_LONG *ps)
 
int pdf_wr_ieeef (PDFstrm *pdfs, float f)
 
int pdf_rd_ieeef (PDFstrm *pdfs, float *pf)
 

Variables

static int debug = 0
 

Detailed Description

These functions do the low-level reading/writing of portable data files. Data can be written to/read from either a file handle or memory buffer.

Definition in file pdfutils.c.

Macro Definition Documentation

◆ NEED_PLDEBUG

#define NEED_PLDEBUG

Definition at line 37 of file pdfutils.c.

Function Documentation

◆ pdf_bopen()

PDFstrm* pdf_bopen ( U_CHAR buffer,
size_t  bufmax 
)

Initializes a PDFstrm for reading/writing to a memory buffer. If buffer is NULL, a standard buffer is allocated.

Parameters
bufferUser allocated memory, can be NULL.
bufmaxSize of buffer, or the desired buffer.
Returns
A PDFstrm structure.

Definition at line 152 of file pdfutils.c.

◆ pdf_close()

int pdf_close ( PDFstrm pdfs)

Closes a PDFstrm. Used exactly like fclose().

Parameters
pdfsThe file stream to close.
Returns
0

Definition at line 238 of file pdfutils.c.

◆ pdf_finit()

PDFstrm* pdf_finit ( FILE *  file)

Initializes a PDFstrm for a file oriented device. Like pdf_fopen() but an existing file handle is specified.

Parameters
fileA open file handle.
Returns
A PDFstrm structure.

Definition at line 204 of file pdfutils.c.

◆ pdf_fopen()

PDFstrm* pdf_fopen ( PLCHAR_VECTOR  filename,
PLCHAR_VECTOR  mode 
)

Initializes a PDFstrm for a file oriented device. Used exactly like fopen().

Parameters
filenameThe filename of the file to open.
modeFile access mode, as would be used by fopen.

Definition at line 74 of file pdfutils.c.

◆ pdf_getc()

int pdf_getc ( PDFstrm pdfs)

Reads a single character.

Parameters
pdfsThe stream to read the character from.
Returns
The character read or EOF.

Definition at line 325 of file pdfutils.c.

◆ pdf_putc()

int pdf_putc ( int  c,
PDFstrm pdfs 
)

Writes a single character.

Parameters
cThe character to write.
pdfsThe stream to write it to.
Returns
The character written or EOF.

Definition at line 276 of file pdfutils.c.

◆ pdf_rd_1byte()

int pdf_rd_1byte ( PDFstrm pdfs,
U_CHAR ps 
)

Reads a single byte, storing into a U_CHAR.

Parameters
pdfsThe stream to read the byte from.
psStorage for the byte.
Returns
0 if successful.

Definition at line 660 of file pdfutils.c.

◆ pdf_rd_2bytes()

int pdf_rd_2bytes ( PDFstrm pdfs,
U_SHORT ps 
)

Reads a U_SHORT from two single bytes, low end first.

Parameters
pdfsThe stream to read the two bytes from.
psPre-allocated storage for the two bytes.
Returns
0 if successful.

Definition at line 710 of file pdfutils.c.

◆ pdf_rd_2nbytes()

int pdf_rd_2nbytes ( PDFstrm pdfs,
U_SHORT s,
PLINT  n 
)

Reads n U_SHORT's from 2n single bytes, low end first.

Parameters
pdfsThe stream to read the shorts from.
sPre-allocated storage for the shorts.
nSize of s.
Returns
0 if successful.

Definition at line 771 of file pdfutils.c.

◆ pdf_rd_4bytes()

int pdf_rd_4bytes ( PDFstrm pdfs,
U_LONG ps 
)

Reads an unsigned long from 4 single bytes, low end first.

Parameters
pdfsThe stream to read the unsigned long from.
psPre-allocated storage for the unsigned long.
Returns
0 is successful.

Definition at line 832 of file pdfutils.c.

◆ pdf_rd_header()

int pdf_rd_header ( PDFstrm pdfs,
char *  header 
)

Reads a newline-terminated header string from PDFstrm *pdfs, and converts to a usual NULL-terminated string. 80 chars maximum assumed.

Parameters
pdfsThe stream to read the header from.
headerPre-allocated storage for the header.
Returns
0 if successful.

Definition at line 542 of file pdfutils.c.

◆ pdf_rd_ieeef()

int pdf_rd_ieeef ( PDFstrm pdfs,
float *  pf 
)

Reads a float from a IEEE single precision (32 bit) format.

Parameters
pdfsThe stream to read the float from.
pfPre-allocated storage for the float.
Returns
0 if successful.

Definition at line 992 of file pdfutils.c.

◆ pdf_rd_string()

int pdf_rd_string ( PDFstrm pdfs,
char *  string,
int  nmax 
)

Reads a null-terminated string from PDFstrm *pdfs. A max of nmax chars are read.

Parameters
pdfsThe stream to read the string from.
stringPre-allocated storage for the string.
nmaxThe size of string.
Returns
0 if successful.

Definition at line 604 of file pdfutils.c.

◆ pdf_rdx()

int pdf_rdx ( U_CHAR x,
long  nitems,
PDFstrm pdfs 
)

Reads a record.

Parameters
xStorage for the data to read.
nitemsThe length of the x.
pdfsThe stream to read it from.
Returns
The number of bytes read.

Definition at line 464 of file pdfutils.c.

◆ pdf_set()

void pdf_set ( char *  option,
int  value 
)

Set an option. Pretty sparse right now but you never know.

Parameters
optionThe option string.
valueThe value to set it to.

Definition at line 56 of file pdfutils.c.

◆ pdf_ungetc()

int pdf_ungetc ( int  c,
PDFstrm pdfs 
)

Push back the last command read.

Parameters
cThe character to pushback.
pdfsThe stream to push it back into.
Returns
The character pushed back, or EOF.

Definition at line 365 of file pdfutils.c.

◆ pdf_wr_1byte()

int pdf_wr_1byte ( PDFstrm pdfs,
U_CHAR  s 
)

Writes a U_CHAR as a single byte.

Parameters
pdfsThe stream to write the byte too.
sThe byte to write.
Returns
0 if successful.

Definition at line 636 of file pdfutils.c.

◆ pdf_wr_2bytes()

int pdf_wr_2bytes ( PDFstrm pdfs,
U_SHORT  s 
)

Writes a U_SHORT as two single bytes, low end first.

Parameters
pdfsThe stream to write the two bytes to.
sThe two bytes to write.
Returns
0 if successful.

Definition at line 684 of file pdfutils.c.

◆ pdf_wr_2nbytes()

int pdf_wr_2nbytes ( PDFstrm pdfs,
U_SHORT s,
PLINT  n 
)

Writes n U_SHORT's as 2n single bytes, low end first.

Parameters
pdfsThe stream to write the shorts to.
sAn array of shorts.
nSize of s.
Returns
0 if successful.

Definition at line 741 of file pdfutils.c.

◆ pdf_wr_4bytes()

int pdf_wr_4bytes ( PDFstrm pdfs,
U_LONG  s 
)

Writes an unsigned long as four single bytes, low end first.

Parameters
pdfsThe stream to write the unsigned long to.
sThe unsigned long to write.
Returns
0 if successful.

Definition at line 804 of file pdfutils.c.

◆ pdf_wr_header()

int pdf_wr_header ( PDFstrm pdfs,
PLCHAR_VECTOR  header 
)

Writes a header string. Input string must be NULL-terminated. The written string is terminated by a new-line, not a NULL. This is done so you can type e.g. "% strings <file> | head" and get sensible output.

Parameters
pdfsThe stream to which to write the header.
headerThe header.
Returns
0 if there was no error.

Definition at line 509 of file pdfutils.c.

◆ pdf_wr_ieeef()

int pdf_wr_ieeef ( PDFstrm pdfs,
float  f 
)

Writes a float in IEEE single precision (32 bit) format.

Parameters
pdfsThe stream to write the float to.
fThe float.
Returns
0 if successful.

Definition at line 916 of file pdfutils.c.

◆ pdf_wr_string()

int pdf_wr_string ( PDFstrm pdfs,
PLCHAR_VECTOR  string 
)

Writes a null-terminated string.

Parameters
pdfsThe stream to write the string to.
stringThe string to write.
Returns
0 if successful.

Definition at line 574 of file pdfutils.c.

◆ pdf_wrx()

static int pdf_wrx ( const U_CHAR x,
long  nitems,
PDFstrm pdfs 
)
static

Writes a record.

Parameters
xThe data to write.
nitemsThe length of x.
pdfsThe stream to write it to.
Returns
The number of bytes actually written.

Definition at line 411 of file pdfutils.c.

◆ print_ieeef()

static void print_ieeef ( float *  vx,
U_LONG vy 
)
static

Prints binary representation for numbers pointed to by arguments. The first argument is the original float, the second is the IEEE representation. They should be the same on any machine that uses IEEE floats.

Parameters
vxThe original float?
vyThe IEEE representation?

Definition at line 1048 of file pdfutils.c.

Variable Documentation

◆ debug

int debug = 0
static

Definition at line 43 of file pdfutils.c.