[Tcsh] [PATCH] nls: fix localized string for limit error message

Corinna Vinschen vinschen at redhat.com
Mon Jan 26 11:57:59 UTC 2026


On Jan 26 12:28, Corinna Vinschen wrote:
> The expression is
> 
>   xprintf(CGETS(15, 1, "%s: %s: Can't %s%s limit (%s)\n"), bname,
>             lp->limname, op, type, strerror(err))
> 
> but the localized strings are only equivalent to the part up to the
> parentheses, thus neglecting to print the strerror text.

Btw., Cygwin is using the NetBSD gencat.c verbatim to create the message
catalog files.  The nls/C/set15 file contains this line:

  4 \040hard

When I perform a `make install.catalogs' and restart tcsh, the output
of this error message doesn't print the space, e.g.

  limit: maxproc: Can't sethard limit (Operation not permitted)
                          ^^

It turns out that this is a tiny bug in NetBSD gencat:

diff --git a/winsup/utils/gencat.c b/winsup/utils/gencat.c
index a583a884381f..9902ef75514c 100644
--- a/winsup/utils/gencat.c
+++ b/winsup/utils/gencat.c
@@ -374,6 +374,7 @@ getmsg(int fd, char *cptr, char quote)
 							*tptr += (*cptr - '0');
 							++cptr;
 						}
+						++tptr;
 					} else {
 						warning(cptr, "unrecognized escape sequence");
 					}

That means, the space is correctly created, but because tptr doesn't
move forward afterwards, the sapce is simply overwritten with the next
character.

Does anybody here have a better contact to, or is even a part of to the
NetBSD team and would be willing to push this upstream?


Thanks,
Corinna



More information about the Tcsh mailing list