Пример #1
0
void printbuf_terminate_string(struct printbuf *const p)
{
  if (p->size <= p->bpos + 1) {
    if (printbuf_extend(p, p->bpos + 1) < 0)
      --p->bpos; /* overwrite last byte, best we can do */
  }
  p->buf[p->bpos]= '\0';
}
Пример #2
0
/* add a single character to printbuf */
void printbuf_memappend_char(struct printbuf *p, const char c)
{
  if (p->size <= p->bpos + 1) {
    if (printbuf_extend(p, p->bpos + 1) < 0)
       /* ignore new data, best we can do */
       return;
  }
 p->buf[p->bpos++]= c;
}
Пример #3
0
/* same as printbuf_memappend(), but contains some performance enhancements */
void printbuf_memappend_no_nul(struct printbuf *p, const char *buf, const int size)
{
  if (p->size <= p->bpos + size) {
    if (printbuf_extend(p, p->bpos + size) < 0)
       /* ignore new data, best we can do */
       return;
  }
  memcpy(p->buf + p->bpos, buf, size);
  p->bpos += size;
}
Пример #4
0
size_t printbuf_memappend(struct printbuf *p, const char *buf, size_t size)
{
  if (p->size <= p->bpos + size + 1) {
    if (printbuf_extend(p, p->bpos + size + 1) < 0)
      return -1;
  }
  memcpy(p->buf + p->bpos, buf, size);
  p->bpos += size;
  p->buf[p->bpos]= '\0';
  return size;
}
Пример #5
0
int printbuf_memset(struct printbuf *pb, int offset, int charvalue, int len)
{
	int size_needed;

	if (offset == -1)
		offset = pb->bpos;
	size_needed = offset + len;
	if (pb->size < size_needed) {
		if (printbuf_extend(pb, size_needed) < 0)
			return -1;
	}

	memset(pb->buf + offset, charvalue, len);
	if (pb->bpos < size_needed)
		pb->bpos = size_needed;

	return 0;
}