Fix various things that sparse complains about:
 - use NULL instead of 0
 - make sure we declare everything properly, or mark it static
 - use proper function declarations ("fn(void)" instead of "fn()")
Sparse is always right.
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			807 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			807 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include "strbuf.h"
 | 
						|
#include "cache.h"
 | 
						|
 | 
						|
void strbuf_init(struct strbuf *sb) {
 | 
						|
	sb->buf = NULL;
 | 
						|
	sb->eof = sb->alloc = sb->len = 0;
 | 
						|
}
 | 
						|
 | 
						|
static void strbuf_begin(struct strbuf *sb) {
 | 
						|
	free(sb->buf);
 | 
						|
	strbuf_init(sb);
 | 
						|
}
 | 
						|
 | 
						|
static void inline strbuf_add(struct strbuf *sb, int ch) {
 | 
						|
	if (sb->alloc <= sb->len) {
 | 
						|
		sb->alloc = sb->alloc * 3 / 2 + 16;
 | 
						|
		sb->buf = xrealloc(sb->buf, sb->alloc);
 | 
						|
	}
 | 
						|
	sb->buf[sb->len++] = ch;
 | 
						|
}
 | 
						|
 | 
						|
static void strbuf_end(struct strbuf *sb) {
 | 
						|
	strbuf_add(sb, 0);
 | 
						|
}
 | 
						|
 | 
						|
void read_line(struct strbuf *sb, FILE *fp, int term) {
 | 
						|
	int ch;
 | 
						|
	strbuf_begin(sb);
 | 
						|
	if (feof(fp)) {
 | 
						|
		sb->eof = 1;
 | 
						|
		return;
 | 
						|
	}
 | 
						|
	while ((ch = fgetc(fp)) != EOF) {
 | 
						|
		if (ch == term)
 | 
						|
			break;
 | 
						|
		strbuf_add(sb, ch);
 | 
						|
	}
 | 
						|
	if (ch == EOF && sb->len == 0)
 | 
						|
		sb->eof = 1;
 | 
						|
	strbuf_end(sb);
 | 
						|
}
 | 
						|
 |