diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2015-07-27 21:35:54 -0700 | 
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2015-07-27 21:35:54 -0700 | 
| commit | 62cb38bf8a826125fba0034221343aa70dd3d415 (patch) | |
| tree | 67348fa88068e1fdb2fca04d74c0ce60072bd280 /src/buffer.c | |
| parent | aca7161e53ec40f6979d024d84afeb36fa911292 (diff) | |
Use clang-format, llvm style, for formatting.
* Reformatted all source files.
* Added 'format' target to Makefile.
* Removed 'astyle' target.
* Updated .editorconfig.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 460 | 
1 files changed, 219 insertions, 241 deletions
| diff --git a/src/buffer.c b/src/buffer.c index 509eb6c..9d31881 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -16,323 +16,301 @@  unsigned char cmark_strbuf__initbuf[1];  #ifndef MIN -#define MIN(x,y)  ((x<y) ? x : y) +#define MIN(x, y) ((x < y) ? x : y)  #endif -void cmark_strbuf_init(cmark_strbuf *buf, bufsize_t initial_size) -{ -	buf->asize = 0; -	buf->size = 0; -	buf->ptr = cmark_strbuf__initbuf; +void cmark_strbuf_init(cmark_strbuf *buf, bufsize_t initial_size) { +  buf->asize = 0; +  buf->size = 0; +  buf->ptr = cmark_strbuf__initbuf; -	if (initial_size > 0) -		cmark_strbuf_grow(buf, initial_size); +  if (initial_size > 0) +    cmark_strbuf_grow(buf, initial_size);  } -void cmark_strbuf_overflow_err() -{ -	fprintf(stderr, "String buffer overflow"); -	abort(); +void cmark_strbuf_overflow_err() { +  fprintf(stderr, "String buffer overflow"); +  abort();  } -static inline void -S_strbuf_grow_by(cmark_strbuf *buf, size_t add) -{ -	size_t target_size = (size_t)buf->size + add; +static inline void S_strbuf_grow_by(cmark_strbuf *buf, size_t add) { +  size_t target_size = (size_t)buf->size + add; -	if (target_size < add             /* Integer overflow. */ -	    || target_size > BUFSIZE_MAX  /* Truncation overflow. */ -	   ) { -		cmark_strbuf_overflow_err(); -		return; /* unreachable */ -	} +  if (target_size < add            /* Integer overflow. */ +      || target_size > BUFSIZE_MAX /* Truncation overflow. */ +      ) { +    cmark_strbuf_overflow_err(); +    return; /* unreachable */ +  } -	if ((bufsize_t)target_size >= buf->asize) -		cmark_strbuf_grow(buf, (bufsize_t)target_size); +  if ((bufsize_t)target_size >= buf->asize) +    cmark_strbuf_grow(buf, (bufsize_t)target_size);  } -void cmark_strbuf_grow(cmark_strbuf *buf, bufsize_t target_size) -{ -	unsigned char *new_ptr; - -	if (target_size < buf->asize) -		return; - -	if (buf->asize == 0) { -		new_ptr = NULL; -	} else { -		new_ptr = buf->ptr; -	} - -	/* Oversize the buffer by 50% to guarantee amortized linear time -	 * complexity on append operations. */ -	size_t new_size = (size_t)target_size + (size_t)target_size / 2; - -	/* Account for terminating null byte. */ -	new_size += 1; - -	/* round allocation up to multiple of 8 */ -	new_size = (new_size + 7) & ~7; - -	if (new_size < (size_t)target_size  /* Integer overflow. */ -	    || new_size > BUFSIZE_MAX       /* Truncation overflow. */ -	   ) { -		if (target_size >= BUFSIZE_MAX) { -			/* No space for terminating null byte. */ -			cmark_strbuf_overflow_err(); -			return; /* unreachable */ -		} -		/* Oversize by the maximum possible amount. */ -		new_size = BUFSIZE_MAX; -	} - -	new_ptr = (unsigned char *)realloc(new_ptr, new_size); - -	if (!new_ptr) { -		perror("realloc in cmark_strbuf_grow"); -		abort(); -	} - -	buf->asize = (bufsize_t)new_size; -	buf->ptr   = new_ptr; +void cmark_strbuf_grow(cmark_strbuf *buf, bufsize_t target_size) { +  unsigned char *new_ptr; + +  if (target_size < buf->asize) +    return; + +  if (buf->asize == 0) { +    new_ptr = NULL; +  } else { +    new_ptr = buf->ptr; +  } + +  /* Oversize the buffer by 50% to guarantee amortized linear time +   * complexity on append operations. */ +  size_t new_size = (size_t)target_size + (size_t)target_size / 2; + +  /* Account for terminating null byte. */ +  new_size += 1; + +  /* round allocation up to multiple of 8 */ +  new_size = (new_size + 7) & ~7; + +  if (new_size < (size_t)target_size /* Integer overflow. */ +      || new_size > BUFSIZE_MAX      /* Truncation overflow. */ +      ) { +    if (target_size >= BUFSIZE_MAX) { +      /* No space for terminating null byte. */ +      cmark_strbuf_overflow_err(); +      return; /* unreachable */ +    } +    /* Oversize by the maximum possible amount. */ +    new_size = BUFSIZE_MAX; +  } + +  new_ptr = (unsigned char *)realloc(new_ptr, new_size); + +  if (!new_ptr) { +    perror("realloc in cmark_strbuf_grow"); +    abort(); +  } + +  buf->asize = (bufsize_t)new_size; +  buf->ptr = new_ptr;  } -bufsize_t cmark_strbuf_len(const cmark_strbuf *buf) -{ -	return buf->size; -} +bufsize_t cmark_strbuf_len(const cmark_strbuf *buf) { return buf->size; } -void cmark_strbuf_free(cmark_strbuf *buf) -{ -	if (!buf) return; +void cmark_strbuf_free(cmark_strbuf *buf) { +  if (!buf) +    return; -	if (buf->ptr != cmark_strbuf__initbuf) -		free(buf->ptr); +  if (buf->ptr != cmark_strbuf__initbuf) +    free(buf->ptr); -	cmark_strbuf_init(buf, 0); +  cmark_strbuf_init(buf, 0);  } -void cmark_strbuf_clear(cmark_strbuf *buf) -{ -	buf->size = 0; +void cmark_strbuf_clear(cmark_strbuf *buf) { +  buf->size = 0; -	if (buf->asize > 0) -		buf->ptr[0] = '\0'; +  if (buf->asize > 0) +    buf->ptr[0] = '\0';  } -void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data, bufsize_t len) -{ -	if (len <= 0 || data == NULL) { -		cmark_strbuf_clear(buf); -	} else { -		if (data != buf->ptr) { -			if (len >= buf->asize) -				cmark_strbuf_grow(buf, len); -			memmove(buf->ptr, data, len); -		} -		buf->size = len; -		buf->ptr[buf->size] = '\0'; -	} +void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data, +                      bufsize_t len) { +  if (len <= 0 || data == NULL) { +    cmark_strbuf_clear(buf); +  } else { +    if (data != buf->ptr) { +      if (len >= buf->asize) +        cmark_strbuf_grow(buf, len); +      memmove(buf->ptr, data, len); +    } +    buf->size = len; +    buf->ptr[buf->size] = '\0'; +  }  } -void cmark_strbuf_sets(cmark_strbuf *buf, const char *string) -{ -	cmark_strbuf_set(buf, (const unsigned char *)string, -	                 string ? cmark_strbuf_safe_strlen(string) : 0); +void cmark_strbuf_sets(cmark_strbuf *buf, const char *string) { +  cmark_strbuf_set(buf, (const unsigned char *)string, +                   string ? cmark_strbuf_safe_strlen(string) : 0);  } -void cmark_strbuf_putc(cmark_strbuf *buf, int c) -{ -	S_strbuf_grow_by(buf, 1); -	buf->ptr[buf->size++] = c; -	buf->ptr[buf->size] = '\0'; +void cmark_strbuf_putc(cmark_strbuf *buf, int c) { +  S_strbuf_grow_by(buf, 1); +  buf->ptr[buf->size++] = c; +  buf->ptr[buf->size] = '\0';  } -void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data, bufsize_t len) -{ -	if (len <= 0) -		return; +void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data, +                      bufsize_t len) { +  if (len <= 0) +    return; -	S_strbuf_grow_by(buf, len); -	memmove(buf->ptr + buf->size, data, len); -	buf->size += len; -	buf->ptr[buf->size] = '\0'; +  S_strbuf_grow_by(buf, len); +  memmove(buf->ptr + buf->size, data, len); +  buf->size += len; +  buf->ptr[buf->size] = '\0';  } -void cmark_strbuf_puts(cmark_strbuf *buf, const char *string) -{ -	cmark_strbuf_put(buf, (const unsigned char *)string, -	                 cmark_strbuf_safe_strlen(string)); +void cmark_strbuf_puts(cmark_strbuf *buf, const char *string) { +  cmark_strbuf_put(buf, (const unsigned char *)string, +                   cmark_strbuf_safe_strlen(string));  } -void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize, const cmark_strbuf *buf) -{ -	bufsize_t copylen; +void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize, +                            const cmark_strbuf *buf) { +  bufsize_t copylen; -	assert(buf); -	if (!data || datasize <= 0) -		return; +  assert(buf); +  if (!data || datasize <= 0) +    return; -	data[0] = '\0'; +  data[0] = '\0'; -	if (buf->size == 0 || buf->asize <= 0) -		return; +  if (buf->size == 0 || buf->asize <= 0) +    return; -	copylen = buf->size; -	if (copylen > datasize - 1) -		copylen = datasize - 1; -	memmove(data, buf->ptr, copylen); -	data[copylen] = '\0'; +  copylen = buf->size; +  if (copylen > datasize - 1) +    copylen = datasize - 1; +  memmove(data, buf->ptr, copylen); +  data[copylen] = '\0';  } -void cmark_strbuf_swap(cmark_strbuf *buf_a, cmark_strbuf *buf_b) -{ -	cmark_strbuf t = *buf_a; -	*buf_a = *buf_b; -	*buf_b = t; +void cmark_strbuf_swap(cmark_strbuf *buf_a, cmark_strbuf *buf_b) { +  cmark_strbuf t = *buf_a; +  *buf_a = *buf_b; +  *buf_b = t;  } -unsigned char *cmark_strbuf_detach(cmark_strbuf *buf) -{ -	unsigned char *data = buf->ptr; +unsigned char *cmark_strbuf_detach(cmark_strbuf *buf) { +  unsigned char *data = buf->ptr; -	if (buf->asize == 0) { -		/* return an empty string */ -		return (unsigned char *)calloc(1, 1); -	} +  if (buf->asize == 0) { +    /* return an empty string */ +    return (unsigned char *)calloc(1, 1); +  } -	cmark_strbuf_init(buf, 0); -	return data; +  cmark_strbuf_init(buf, 0); +  return data;  } -int cmark_strbuf_cmp(const cmark_strbuf *a, const cmark_strbuf *b) -{ -	int result = memcmp(a->ptr, b->ptr, MIN(a->size, b->size)); -	return (result != 0) ? result : -	       (a->size < b->size) ? -1 : (a->size > b->size) ? 1 : 0; +int cmark_strbuf_cmp(const cmark_strbuf *a, const cmark_strbuf *b) { +  int result = memcmp(a->ptr, b->ptr, MIN(a->size, b->size)); +  return (result != 0) ? result +                       : (a->size < b->size) ? -1 : (a->size > b->size) ? 1 : 0;  } -bufsize_t cmark_strbuf_strchr(const cmark_strbuf *buf, int c, bufsize_t pos) -{ -	if (pos >= buf->size) -		return -1; -	if (pos < 0) -		pos = 0; +bufsize_t cmark_strbuf_strchr(const cmark_strbuf *buf, int c, bufsize_t pos) { +  if (pos >= buf->size) +    return -1; +  if (pos < 0) +    pos = 0; -	const unsigned char *p = (unsigned char *)memchr(buf->ptr + pos, c, buf->size - pos); -	if (!p) -		return -1; +  const unsigned char *p = +      (unsigned char *)memchr(buf->ptr + pos, c, buf->size - pos); +  if (!p) +    return -1; -	return (bufsize_t)(p - (const unsigned char *)buf->ptr); +  return (bufsize_t)(p - (const unsigned char *)buf->ptr);  } -bufsize_t cmark_strbuf_strrchr(const cmark_strbuf *buf, int c, bufsize_t pos) -{ -	if (pos < 0 || buf->size == 0) -		return -1; -	if (pos >= buf->size) -		pos = buf->size - 1; +bufsize_t cmark_strbuf_strrchr(const cmark_strbuf *buf, int c, bufsize_t pos) { +  if (pos < 0 || buf->size == 0) +    return -1; +  if (pos >= buf->size) +    pos = buf->size - 1; -	for (bufsize_t i = pos; i >= 0; i--) { -		if (buf->ptr[i] == (unsigned char) c) -			return i; -	} +  for (bufsize_t i = pos; i >= 0; i--) { +    if (buf->ptr[i] == (unsigned char)c) +      return i; +  } -	return -1; +  return -1;  } -void cmark_strbuf_truncate(cmark_strbuf *buf, bufsize_t len) -{ -	if (len < 0) -		len = 0; +void cmark_strbuf_truncate(cmark_strbuf *buf, bufsize_t len) { +  if (len < 0) +    len = 0; -	if (len < buf->size) { -		buf->size = len; -		buf->ptr[buf->size] = '\0'; -	} +  if (len < buf->size) { +    buf->size = len; +    buf->ptr[buf->size] = '\0'; +  }  } -void cmark_strbuf_drop(cmark_strbuf *buf, bufsize_t n) -{ -	if (n > 0) { -		if (n > buf->size) -			n = buf->size; -		buf->size = buf->size - n; -		if (buf->size) -			memmove(buf->ptr, buf->ptr + n, buf->size); - -		buf->ptr[buf->size] = '\0'; -	} +void cmark_strbuf_drop(cmark_strbuf *buf, bufsize_t n) { +  if (n > 0) { +    if (n > buf->size) +      n = buf->size; +    buf->size = buf->size - n; +    if (buf->size) +      memmove(buf->ptr, buf->ptr + n, buf->size); + +    buf->ptr[buf->size] = '\0'; +  }  } -void cmark_strbuf_rtrim(cmark_strbuf *buf) -{ -	if (!buf->size) -		return; +void cmark_strbuf_rtrim(cmark_strbuf *buf) { +  if (!buf->size) +    return; -	while (buf->size > 0) { -		if (!cmark_isspace(buf->ptr[buf->size - 1])) -			break; +  while (buf->size > 0) { +    if (!cmark_isspace(buf->ptr[buf->size - 1])) +      break; -		buf->size--; -	} +    buf->size--; +  } -	buf->ptr[buf->size] = '\0'; +  buf->ptr[buf->size] = '\0';  } -void cmark_strbuf_trim(cmark_strbuf *buf) -{ -	bufsize_t i = 0; +void cmark_strbuf_trim(cmark_strbuf *buf) { +  bufsize_t i = 0; -	if (!buf->size) -		return; +  if (!buf->size) +    return; -	while (i < buf->size && cmark_isspace(buf->ptr[i])) -		i++; +  while (i < buf->size && cmark_isspace(buf->ptr[i])) +    i++; -	cmark_strbuf_drop(buf, i); +  cmark_strbuf_drop(buf, i); -	cmark_strbuf_rtrim(buf); +  cmark_strbuf_rtrim(buf);  }  // Destructively modify string, collapsing consecutive  // space and newline characters into a single space. -void cmark_strbuf_normalize_whitespace(cmark_strbuf *s) -{ -	bool last_char_was_space = false; -	bufsize_t r, w; - -	for (r = 0, w = 0; r < s->size; ++r) { -		switch (s->ptr[r]) { -		case ' ': -		case '\n': -			if (last_char_was_space) -				break; - -			s->ptr[w++] = ' '; -			last_char_was_space = true; -			break; - -		default: -			s->ptr[w++] = s->ptr[r]; -			last_char_was_space = false; -		} -	} - -	cmark_strbuf_truncate(s, w); +void cmark_strbuf_normalize_whitespace(cmark_strbuf *s) { +  bool last_char_was_space = false; +  bufsize_t r, w; + +  for (r = 0, w = 0; r < s->size; ++r) { +    switch (s->ptr[r]) { +    case ' ': +    case '\n': +      if (last_char_was_space) +        break; + +      s->ptr[w++] = ' '; +      last_char_was_space = true; +      break; + +    default: +      s->ptr[w++] = s->ptr[r]; +      last_char_was_space = false; +    } +  } + +  cmark_strbuf_truncate(s, w);  }  // Destructively unescape a string: remove backslashes before punctuation chars. -extern void cmark_strbuf_unescape(cmark_strbuf *buf) -{ -	bufsize_t r, w; +extern void cmark_strbuf_unescape(cmark_strbuf *buf) { +  bufsize_t r, w; -	for (r = 0, w = 0; r < buf->size; ++r) { -		if (buf->ptr[r] == '\\' && cmark_ispunct(buf->ptr[r + 1])) -			r++; +  for (r = 0, w = 0; r < buf->size; ++r) { +    if (buf->ptr[r] == '\\' && cmark_ispunct(buf->ptr[r + 1])) +      r++; -		buf->ptr[w++] = buf->ptr[r]; -	} +    buf->ptr[w++] = buf->ptr[r]; +  } -	cmark_strbuf_truncate(buf, w); +  cmark_strbuf_truncate(buf, w);  } | 
