mirror of
git://projects.qi-hardware.com/eda-tools.git
synced 2024-11-29 20:53:55 +02:00
eeshow/ (file_read, vcs_git_read): now pass 0 return from parse()
This commit is contained in:
parent
e5f010797d
commit
dfebad4e6a
@ -178,25 +178,24 @@ void file_open(struct file *file, const char *name, const struct file *related)
|
||||
}
|
||||
|
||||
|
||||
void file_read(struct file *file,
|
||||
bool file_read(struct file *file,
|
||||
bool (*parse)(const struct file *file, void *user, const char *line),
|
||||
void *user)
|
||||
{
|
||||
char buf[1000];
|
||||
char *nl;
|
||||
|
||||
if (file->vcs) {
|
||||
vcs_read(file->vcs, file, parse, user);
|
||||
return;
|
||||
}
|
||||
if (file->vcs)
|
||||
return vcs_read(file->vcs, file, parse, user);
|
||||
while (fgets(buf, sizeof(buf), file->file)) {
|
||||
nl = strchr(buf, '\n');
|
||||
if (nl)
|
||||
*nl = 0;
|
||||
file->lineno++;
|
||||
if (!parse(file, user, buf))
|
||||
break;
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
@ -32,7 +32,7 @@ char *file_graft_relative(const char *base, const char *name);
|
||||
|
||||
void file_open(struct file *file, const char *name,
|
||||
const struct file *related);
|
||||
void file_read(struct file *file,
|
||||
bool file_read(struct file *file,
|
||||
bool (*parse)(const struct file *file, void *user, const char *line),
|
||||
void *user);
|
||||
void file_close(struct file *file);
|
||||
|
@ -455,7 +455,7 @@ struct vcs_git *vcs_git_open(const char *revision, const char *name,
|
||||
}
|
||||
|
||||
|
||||
void vcs_git_read(void *ctx, struct file *file,
|
||||
bool vcs_git_read(void *ctx, struct file *file,
|
||||
bool (*parse)(const struct file *file, void *user, const char *line),
|
||||
void *user)
|
||||
{
|
||||
@ -467,14 +467,13 @@ void vcs_git_read(void *ctx, struct file *file,
|
||||
while (p != end) {
|
||||
nl = memchr(p, '\n', end - p);
|
||||
file->lineno++;
|
||||
if (!nl) {
|
||||
send_line(p, end - p, parse, user, file);
|
||||
return;
|
||||
}
|
||||
if (!nl)
|
||||
return send_line(p, end - p, parse, user, file);
|
||||
if (!send_line(p, nl - p, parse, user, file))
|
||||
return;
|
||||
return 0;
|
||||
p = nl + 1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
@ -33,7 +33,7 @@ void vcs_git_init(void);
|
||||
|
||||
struct vcs_git *vcs_git_open(const char *revision, const char *name,
|
||||
const struct vcs_git *related);
|
||||
void vcs_git_read(void *ctx, struct file *file,
|
||||
bool vcs_git_read(void *ctx, struct file *file,
|
||||
bool (*parse)(const struct file *file, void *user, const char *line),
|
||||
void *user);
|
||||
void vcs_git_close(void *ctx);
|
||||
|
Loading…
Reference in New Issue
Block a user