log_working_directory() at the end of main.c from make-3.79.1 has a
bug that leads to grammatical errors in several translated messages
(at least for Russian, but I suspect that other languages could be
affected too).
The thing is that message is splitted in two parts for "optimization",
while it should be translated in its entirety.
Here is a patch to main.c:
--- make-3.79.1/main.c Sat Jul 29 01:15:47 2000
+++ make-3.79.1-fixed/main.c Fri Mar 9 13:01:36 2001
@@ -2795,7 +2795,6 @@
int entering;
{
static int entered = 0;
- char *msg = entering ? _("Entering") : _("Leaving");
/* Print nothing without the flag. Don't print the entering message
again if we already have. Don't print the leaving message if we
@@ -2809,12 +2808,20 @@
fputs ("# ", stdout);
if (makelevel == 0)
- printf ("%s: %s ", program, msg);
+ printf ("%s: ", program);
else
- printf ("%s[%u]: %s ", program, makelevel, msg);
+ printf ("%s[%u]: ", program, makelevel);
if (starting_directory == 0)
- puts (_("an unknown directory"));
+ if (entering) {
+ puts (_("Entering an unknown directory"));
+ } else {
+ puts (_("Leaving an unknown directory"));
+ }
else
- printf (_("directory `%s'\n"), starting_directory);
+ if (entering) {
+ printf (_("Entering directory `%s'\n"), starting_directory);
+ } else {
+ printf (_("Leaving directory `%s'\n"), starting_directory);
+ }
}
I've also updated Russian message catalog file (Oleg Tihonov could
approve its correctness, if any) wrt to changes by this patch.
Unfortunately, Russian catalog has not been updated long ago, so the
patch could be somewhat fuzzy. I'm attaching it, not inserting into
this mail, because it contains characters in 'koi8-r' encoding:
make-ru.po-patch
I hope that this patch will be included in make distribution, or at
least into Debian, for a while. I've Cc'd this messages to many
persons whom I think are appropriate for that, including translators
for other catalogs. If the bug fixed affected your language, then
please, send your updates too.
Enjoy,
--alexm