On Tue, Feb 02, 2016 at 02:56:57PM -0600, Derek Foreman wrote:
> 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 <[email protected]>
Reviewed-by: Bryce Harrington <[email protected]>

> ---
>  src/scanner.c | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/src/scanner.c b/src/scanner.c
> index dda5473..d3e2328 100644
> --- a/src/scanner.c
> +++ b/src/scanner.c
> @@ -1284,25 +1284,29 @@ emit_structs(struct wl_list *message_list, struct 
> interface *interface, enum sid
>  static void
>  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')) {
>                       continue;
>               } else if (bol) {
>                       bol = 0;
>                       start = i;
>               }
> -
> -             if (copyright[i] == '\n' || copyright[i] == '\0') {
> +             if (copyright[i] == '\n' ||
> +                 (copyright[i] == '\0' && !(start == i))) {
>                       printf("%s%s%.*s\n",
> -                            i == 0 ? "/*" : " *",
> +                            comment_started ? " *" : "/*",
>                              i > start ? " " : "",
>                              i - start, copyright + start);
>                       bol = 1;
> +                     comment_started = true;
>               }
>       }
> -     printf(" */\n\n");
> +     if (comment_started)
> +             printf(" */\n\n");
>  }
>  
>  static void
> -- 
> 2.7.0
> 
> _______________________________________________
> wayland-devel mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to