Move oidset_parse_file() to oidset.c
Signed-off-by: Barret Rhoden <brho@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									24eb33ebc5
								
							
						
					
					
						commit
						f93895f8fc
					
				
							
								
								
									
										35
									
								
								fsck.c
								
								
								
								
							
							
						
						
									
										35
									
								
								fsck.c
								
								
								
								
							|  | @ -181,41 +181,6 @@ static int fsck_msg_type(enum fsck_msg_id msg_id, | ||||||
| 	return msg_type; | 	return msg_type; | ||||||
| } | } | ||||||
|  |  | ||||||
| void oidset_parse_file(struct oidset *set, const char *path) |  | ||||||
| { |  | ||||||
| 	FILE *fp; |  | ||||||
| 	struct strbuf sb = STRBUF_INIT; |  | ||||||
| 	struct object_id oid; |  | ||||||
|  |  | ||||||
| 	fp = fopen(path, "r"); |  | ||||||
| 	if (!fp) |  | ||||||
| 		die("could not open object name list: %s", path); |  | ||||||
| 	while (!strbuf_getline(&sb, fp)) { |  | ||||||
| 		const char *p; |  | ||||||
| 		const char *name; |  | ||||||
|  |  | ||||||
| 		/* |  | ||||||
| 		 * Allow trailing comments, leading whitespace |  | ||||||
| 		 * (including before commits), and empty or whitespace |  | ||||||
| 		 * only lines. |  | ||||||
| 		 */ |  | ||||||
| 		name = strchr(sb.buf, '#'); |  | ||||||
| 		if (name) |  | ||||||
| 			strbuf_setlen(&sb, name - sb.buf); |  | ||||||
| 		strbuf_trim(&sb); |  | ||||||
| 		if (!sb.len) |  | ||||||
| 			continue; |  | ||||||
|  |  | ||||||
| 		if (parse_oid_hex(sb.buf, &oid, &p) || *p != '\0') |  | ||||||
| 			die("invalid object name: %s", sb.buf); |  | ||||||
| 		oidset_insert(set, &oid); |  | ||||||
| 	} |  | ||||||
| 	if (ferror(fp)) |  | ||||||
| 		die_errno("Could not read '%s'", path); |  | ||||||
| 	fclose(fp); |  | ||||||
| 	strbuf_release(&sb); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static int parse_msg_type(const char *str) | static int parse_msg_type(const char *str) | ||||||
| { | { | ||||||
| 	if (!strcmp(str, "error")) | 	if (!strcmp(str, "error")) | ||||||
|  |  | ||||||
							
								
								
									
										35
									
								
								oidset.c
								
								
								
								
							
							
						
						
									
										35
									
								
								oidset.c
								
								
								
								
							|  | @ -35,3 +35,38 @@ void oidset_clear(struct oidset *set) | ||||||
| 	kh_release_oid(&set->set); | 	kh_release_oid(&set->set); | ||||||
| 	oidset_init(set, 0); | 	oidset_init(set, 0); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void oidset_parse_file(struct oidset *set, const char *path) | ||||||
|  | { | ||||||
|  | 	FILE *fp; | ||||||
|  | 	struct strbuf sb = STRBUF_INIT; | ||||||
|  | 	struct object_id oid; | ||||||
|  |  | ||||||
|  | 	fp = fopen(path, "r"); | ||||||
|  | 	if (!fp) | ||||||
|  | 		die("could not open object name list: %s", path); | ||||||
|  | 	while (!strbuf_getline(&sb, fp)) { | ||||||
|  | 		const char *p; | ||||||
|  | 		const char *name; | ||||||
|  |  | ||||||
|  | 		/* | ||||||
|  | 		 * Allow trailing comments, leading whitespace | ||||||
|  | 		 * (including before commits), and empty or whitespace | ||||||
|  | 		 * only lines. | ||||||
|  | 		 */ | ||||||
|  | 		name = strchr(sb.buf, '#'); | ||||||
|  | 		if (name) | ||||||
|  | 			strbuf_setlen(&sb, name - sb.buf); | ||||||
|  | 		strbuf_trim(&sb); | ||||||
|  | 		if (!sb.len) | ||||||
|  | 			continue; | ||||||
|  |  | ||||||
|  | 		if (parse_oid_hex(sb.buf, &oid, &p) || *p != '\0') | ||||||
|  | 			die("invalid object name: %s", sb.buf); | ||||||
|  | 		oidset_insert(set, &oid); | ||||||
|  | 	} | ||||||
|  | 	if (ferror(fp)) | ||||||
|  | 		die_errno("Could not read '%s'", path); | ||||||
|  | 	fclose(fp); | ||||||
|  | 	strbuf_release(&sb); | ||||||
|  | } | ||||||
|  |  | ||||||
							
								
								
									
										8
									
								
								oidset.h
								
								
								
								
							
							
						
						
									
										8
									
								
								oidset.h
								
								
								
								
							|  | @ -73,6 +73,14 @@ int oidset_remove(struct oidset *set, const struct object_id *oid); | ||||||
|  */ |  */ | ||||||
| void oidset_clear(struct oidset *set); | void oidset_clear(struct oidset *set); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Add the contents of the file 'path' to an initialized oidset.  Each line is | ||||||
|  |  * an unabbreviated object name.  Comments begin with '#', and trailing comments | ||||||
|  |  * are allowed.  Leading whitespace and empty or white-space only lines are | ||||||
|  |  * ignored. | ||||||
|  |  */ | ||||||
|  | void oidset_parse_file(struct oidset *set, const char *path); | ||||||
|  |  | ||||||
| struct oidset_iter { | struct oidset_iter { | ||||||
| 	kh_oid_t *set; | 	kh_oid_t *set; | ||||||
| 	khiter_t iter; | 	khiter_t iter; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Barret Rhoden
						Barret Rhoden