view src/vbuf.h @ 358:6abc3054cba2

From Jeffrey Morlan: If a readpst child process fails with a nonzero status code for whatever reason (killed, segfault, out-of-memory, ...) the parent process will continue and likely end up exiting with status 0, tricking the caller into thinking readpst was successful when it was not.
author Carl Byington <carl@five-ten-sg.com>
date Wed, 06 Jul 2016 10:19:01 -0700
parents b65e8d0a088a
children
line wrap: on
line source


#ifndef __PST_VBUF_H
#define __PST_VBUF_H

#include "common.h"


// Variable-length buffers
struct pst_varbuf {
	size_t dlen; 	//length of data stored in buffer
	size_t blen; 	//length of buffer
	char *buf; 	    //buffer
	char *b;	    //start of stored data
};


typedef struct pst_varbuf pst_vbuf;

pst_vbuf  *pst_vballoc(size_t len);
void       pst_vbgrow(pst_vbuf *vb, size_t len);    // grow buffer by len bytes, data are preserved
void       pst_vbset(pst_vbuf *vb, void *data, size_t len);
void       pst_vbappend(pst_vbuf *vb, void *data, size_t length);
void       pst_unicode_init();
size_t     pst_vb_utf16to8(pst_vbuf *dest, const char *inbuf, int iblen);
size_t     pst_vb_utf8to8bit(pst_vbuf *dest, const char *inbuf, int iblen, const char* charset);
size_t     pst_vb_8bit2utf8(pst_vbuf *dest, const char *inbuf, int iblen, const char* charset);


#endif