On 2026-02-21T01:51:09+0100, Bruno Haible wrote:
> Paul Eggert wrote:
> > Right, and if we're going to change that kind of code, I suggest this:
> > 
> >    bool output_is_library = str_endswith (output_file, ".dll");
> > 
> > instead of using strnul.
> 
> I agree. Done:

Nice!

> 
> 
> 2026-02-20  Bruno Haible  <[email protected]>
> 
>       csharpcomp: Use str_endswith.
>       Suggested by Paul Eggert in
>       <https://lists.gnu.org/archive/html/bug-gnulib/2026-02/msg00129.html>.
>       * lib/csharpcomp.c (compile_csharp_using_mono,
>       compile_csharp_using_dotnet, compile_csharp_using_sscli,
>       compile_csharp_class): Use str_endswith.
>       * modules/csharpcomp (Depends-on): Add str_endswith.
> 
> diff --git a/lib/csharpcomp.c b/lib/csharpcomp.c
> index afbd65a9da..1a17addcf1 100644
> --- a/lib/csharpcomp.c
> +++ b/lib/csharpcomp.c
> @@ -177,9 +177,7 @@ compile_csharp_using_mono (const char * const *sources,
>          for (unsigned int i = 0; i < sources_count; i++)
>            {
>              const char *source_file = sources[i];
> -            if (strlen (source_file) >= 10
> -                && memeq (source_file + strlen (source_file) - 10,
> -                          ".resources", 10))
> +            if (str_endswith (source_file, ".resources"))
>                {
>                  char *option = (char *) xmalloca (10 + strlen (source_file) 
> + 1);
>  
> @@ -588,10 +586,7 @@ compile_csharp_using_dotnet (const char * const *sources,
>              const char *source_file = sources[i];
>              char *source_file_converted = cygpath_w (source_file);
>              *mallocedp++ = source_file_converted;
> -            if (strlen (source_file_converted) >= 10
> -                && memeq ((source_file_converted
> -                           + strlen (source_file_converted) - 10),
> -                          ".resources", 10))
> +            if (str_endswith (source_file_converted, ".resources"))
>                {
>                  char *option =
>                    (char *) xmalloc (10 + strlen (source_file_converted) + 1);
> @@ -771,10 +766,7 @@ compile_csharp_using_dotnet (const char * const *sources,
>                  const char *source_file = sources[i];
>                  char *source_file_converted = cygpath_w (source_file);
>                  *mallocedp++ = source_file_converted;
> -                if (strlen (source_file_converted) >= 10
> -                    && memeq ((source_file_converted
> -                               + strlen (source_file_converted) - 10),
> -                              ".resources", 10))
> +                if (str_endswith (source_file_converted, ".resources"))
>                    {
>                      char *option =
>                        (char *) xmalloc (10 + strlen (source_file_converted) 
> + 1);
> @@ -934,10 +926,7 @@ compile_csharp_using_sscli (const char * const *sources,
>              const char *source_file = sources[i];
>              char *source_file_converted = cygpath_w (source_file);
>              *mallocedp++ = source_file_converted;
> -            if (strlen (source_file_converted) >= 10
> -                && memeq ((source_file_converted
> -                           + strlen (source_file_converted) - 10),
> -                          ".resources", 10))
> +            if (str_endswith (source_file_converted, ".resources"))
>                {
>                  char *option =
>                    (char *) xmalloc (10 + strlen (source_file_converted) + 1);
> @@ -990,9 +979,7 @@ compile_csharp_class (const char * const *sources,
>                        bool optimize, bool debug,
>                        bool verbose)
>  {
> -  bool output_is_library =
> -    (strlen (output_file) >= 4
> -     && memeq (output_file + strlen (output_file) - 4, ".dll", 4));
> +  bool output_is_library = str_endswith (output_file, ".dll");
>  
>    int result;
>  
> diff --git a/modules/csharpcomp b/modules/csharpcomp
> index 0e9c226fae..76d7ddb268 100644
> --- a/modules/csharpcomp
> +++ b/modules/csharpcomp
> @@ -19,6 +19,7 @@ alphasort
>  sh-quote
>  safe-read
>  stringeq
> +str_endswith
>  xmalloca
>  xvasprintf
>  gettext-h
> 
> 
> 

-- 
<https://www.alejandro-colomar.es>

Attachment: signature.asc
Description: PGP signature

Reply via email to