static void fix_name(char *name)
{
- unsigned int i, j;
+ unsigned int i;
- for (i = j = 0; name[i]; i++) {
- if (isalnum(name[i]) || name[i] == '_')
- name[j++] = toupper(name[i]);
+ for (i = 0; name[i]; i++) {
+ if (isalnum(name[i]))
+ name[i] = toupper(name[i]);
+ else
+ name[i] = '_';
}
- name[j] = '\0';
}
static void handle_idem(struct manifest *m, struct score *score)
/* Main header gets CCAN_FOO_H, others CCAN_FOO_XXX_H */
if (strstarts(e->file->name, m->basename)
- || strlen(e->file->name) != strlen(m->basename) + 2)
+ || strlen(e->file->name) == strlen(m->basename) + 2)
name = talloc_asprintf(score, "CCAN_%s_H", m->basename);
else
- name = talloc_asprintf(score, "CCAN_%s_%s_H",
+ name = talloc_asprintf(score, "CCAN_%s_%s",
m->basename, e->file->name);
fix_name(name);
/* FIXME: We assume small headers probably uninteresting. */
return true;
- score->error = "Headers are not idempotent";
for (i = 0; i < f->num_lines; i++) {
if (line_info[i].type == DOC_LINE
|| line_info[i].type == COMMENT_LINE)
list_for_each(&m->h_files, f, list) {
if (!check_idem(f, score))
- return;
+ score->error = "Headers are not idempotent";
+ }
+ if (!score->error) {
+ score->pass = true;
+ score->score = score->total;
}
- score->pass = true;
- score->score = score->total;
}
struct ccanlint idempotent = {