mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2026-04-15 08:21:47 -04:00
scanner: Fix oddities in copyright printing
Some copyright strings could result in broken generated header files with unmatched */ This change: Runs the loop long enough so the copyright[i] == 0 test can actually happen. (if there was no \n no copyright text was printed, */ still was) Prints the opening /* even if there was whitespace at the start of the very first line. Only emits a */ if a /* was printed. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
This commit is contained in:
parent
816a0ae09b
commit
369b6466a7
1 changed files with 10 additions and 6 deletions
|
|
@ -1284,25 +1284,29 @@ emit_structs(struct wl_list *message_list, struct interface *interface, enum sid
|
||||||
static void
|
static void
|
||||||
format_copyright(const char *copyright)
|
format_copyright(const char *copyright)
|
||||||
{
|
{
|
||||||
int bol = 1, start = 0, i;
|
int bol = 1, start = 0, i, length;
|
||||||
|
bool comment_started = false;
|
||||||
|
|
||||||
for (i = 0; copyright[i]; i++) {
|
length = strlen(copyright);
|
||||||
|
for (i = 0; i <= length; i++) {
|
||||||
if (bol && (copyright[i] == ' ' || copyright[i] == '\t')) {
|
if (bol && (copyright[i] == ' ' || copyright[i] == '\t')) {
|
||||||
continue;
|
continue;
|
||||||
} else if (bol) {
|
} else if (bol) {
|
||||||
bol = 0;
|
bol = 0;
|
||||||
start = i;
|
start = i;
|
||||||
}
|
}
|
||||||
|
if (copyright[i] == '\n' ||
|
||||||
if (copyright[i] == '\n' || copyright[i] == '\0') {
|
(copyright[i] == '\0' && !(start == i))) {
|
||||||
printf("%s%s%.*s\n",
|
printf("%s%s%.*s\n",
|
||||||
i == 0 ? "/*" : " *",
|
comment_started ? " *" : "/*",
|
||||||
i > start ? " " : "",
|
i > start ? " " : "",
|
||||||
i - start, copyright + start);
|
i - start, copyright + start);
|
||||||
bol = 1;
|
bol = 1;
|
||||||
|
comment_started = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf(" */\n\n");
|
if (comment_started)
|
||||||
|
printf(" */\n\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue