https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38573

--- Comment #13 from Frederic Marchal <fmarchal at perso dot be> ---
(In reply to Roland Illig from comment #12)
> (In reply to Frederic Marchal from comment #11)
> > I suspect a misunderstanding here. Forgive me if I state the obvious.
> > 
> > The fix is not to move the translation mark around.
> 
> I think moving the translation mark "_(...)" into each case of the switch
> statement would solve the problem, so maybe I misunderstood you here.

Ah yes, I see your point. The string literal may be translated with _() when it
is assigned to symstd_msg. It doesn't have to be translated later when
symstd_msg is assigned to symstd.

So moving _() is fine:

  symstd_msg = _("available since Fortran 77");
  if (symstd)
    *symstd = symstd_msg;

Sorry, the misunderstanding was on my side. I was stuck with this pattern:

  symstd_msg = N_("available since Fortran 77");
  if (symstd)
    *symstd = _(symstd_msg);

Reply via email to