Skip to content
Snippets Groups Projects
Commit f68bfa4f authored by Steve Murphy's avatar Steve Murphy
Browse files

(closes issue #13420)

Reported by: alex70
Patches:
      13420.13539.patch uploaded by murf (license 17)
Tested by: murf, awk

This fixes two problems: a spurious linefeed insertion
probably left over from pre-precomment times. Only
generated when category had no previous comments.

The other problem: Insertions could get the line-numbering
out of whack and generate negative line numbers, causing 
chunks of line numbers to be emitted, on the scale of the
number of lines up to that point in the file. In such cases,
abort the looping, and all is well.




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157302 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 1287486d
No related branches found
No related tags found
No related merge requests found
......@@ -1552,7 +1552,10 @@ static void insert_leading_blank_lines(FILE *fp, struct inclfile *fi, struct ast
stored in the precomments, but not printed back out.
I did have to make sure that comments following
the ;! header comments were not also deleted in the process */
for (i=fi->lineno;i<lineno - precomment_lines; i++) {
if (lineno - precomment_lines - fi->lineno < 0) { /* insertions can mess up the line numbering and produce negative numbers that mess things up */
return;
}
for (i=fi->lineno; i<lineno - precomment_lines; i++) {
fprintf(fp,"\n");
}
fi->lineno = lineno+1; /* Advance the file lineno */
......@@ -1641,7 +1644,7 @@ int ast_config_text_file_save(const char *configfile, const struct ast_config *c
}
}
}
insert_leading_blank_lines(f, fi, cat->precomments, cat->lineno);
/* Dump section with any appropriate comment */
for (cmt = cat->precomments; cmt; cmt=cmt->next) {
......@@ -1655,8 +1658,6 @@ int ast_config_text_file_save(const char *configfile, const struct ast_config *c
if (cmtp)
fprintf(f,"%s", cmtp);
}
if (!cat->precomments)
fprintf(f,"\n");
fprintf(f, "[%s]", cat->name);
if (cat->ignored || !AST_LIST_EMPTY(&cat->template_instances)) {
fprintf(f, "(");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment